Manuál PHP

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

Sestavil

Lukáš Jelínek
Jakub Vrána

22-04-2004

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

Předmluva
I. Začínáme
1. Introduction
2. A simple tutorial
3. Instalace
4. Runtime Configuration
II. Reference jazyka
5. Základní syntaxe
6. Types
7. Proměnné
8. Konstanty
9. Výrazy
10. Operátory
11. Řídicí struktury
12. Funkce
13. Classes and Objects
14. Vysvětlení referencí (odkazů)
III. Bezpečnost
15. Bezpečnost
IV. Vlastnosti
16. HTTP autentikace a PHP
17. Cookies
18. Zpracování uploadu souborů
19. Použití vzdálených souborů
20. Obsluha spojení
21. Persistentní databázová spojení
22. Bezpečný režim
23. Použití PHP z příkazové řádky
V. Reference funkcí
I. Funkce specifické pro Apache
II. Funkce pro práci s poli
III. Aspell funkce [zastaralé]
IV. BCMath funkce pro výpočty s libovolnou přesností
V. Kompresní funkce bzip2
VI. Kalendářové funkce
VII. CCVS API Functions
VIII. Funkce na podporu COM ve Windows
IX. Funkce pro práci s třídami/objekty
X. ClibPDF Functions
XI. Crack Functions
XII. Funkce pro práci s CURL, Client URL Library
XIII. Cybercash platební funkce
XIV. Cyrus IMAP administration Functions
XV. Character Type Functions
XVI. Database (dbm-style) Abstraction Layer Functions
XVII. Funkce pro datum a čas
XVIII. dBase Functions
XIX. DBM Funkce [zastaralé]
XX. dbx Functions
XXI. DB++ Functions
XXII. Direct IO Functions
XXIII. Adresářové funkce
XXIV. DOM XML Functions
XXV. .NET Functions
XXVI. Error Handling and Logging Functions
XXVII. File Alteration Monitor Functions
XXVIII. FrontBase Functions
XXIX. filePro funkce
XXX. Funkce filesystému
XXXI. Forms Data Format Functions
XXXII. FriBiDi Functions
XXXIII. FTP Functions
XXXIV. Funkce pro práci s funkcemi
XXXV. Gettext
XXXVI. GMP Functions
XXXVII. HTTP funkce
XXXVIII. Hyperwave Functions
XXXIX. Hyperwave API Functions
XL. iconv Functions
XLI. Image Functions
XLII. IMAP, POP3 and NNTP Functions
XLIII. Informix Functions
XLIV. InterBase Functions
XLV. Ingres II Functions
XLVI. IRC Gateway Functions
XLVII. PHP / Java Integration
XLVIII. LDAP Functions
XLIX. LZF Functions
L. Mailové funkce
LI. mailparse Functions
LII. Matematické funkce
LIII. Multibyte String Functions
LIV. MCAL Functions
LV. Mcrypt Encryption Functions
LVI. MCVE Payment Functions
LVII. Mhash funkce
LVIII. Mimetype Functions
LIX. Microsoft SQL Server Functions
LX. Ming functions for Flash
LXI. Různé funkce
LXII. mnoGoSearch Functions
LXIII. mSQL Functions
LXIV. MySQL funkce
LXV. Improved MySQL Extension
LXVI. Mohawk Software Session Handler Functions
LXVII. muscat Functions
LXVIII. Síťové funkce
LXIX. Ncurses Terminal Screen Control Functions
LXX. Lotus Notes Functions
LXXI. NSAPI-specific Functions
LXXII. Unified ODBC Functions
LXXIII. Object Aggregation/Composition Functions
LXXIV. Oracle 8 functions
LXXV. OpenSSL funkce
LXXVI. Oracle Functions
LXXVII. Ovrimos SQL Functions
LXXVIII. Funkce pro řízení výstupu
LXXIX. Object property and method call overloading
LXXX. PDF funkce
LXXXI. Funkce pro práci s Verisign Payflow Pro
LXXXII. PHP volby a informace
LXXXIII. POSIX Functions
LXXXIV. PostgreSQL Functions
LXXXV. Process Control Functions
LXXXVI. Funkce spouštění programů
LXXXVII. Printer Functions
LXXXVIII. Pspell Functions
LXXXIX. GNU Readline
XC. GNU Recode funkce
XCI. Regular Expression Functions (Perl-Compatible)
XCII. qtdom Functions
XCIII. Regular Expression Functions (POSIX Extended)
XCIV. Semaphore, Shared Memory and IPC Functions
XCV. SESAM Database Functions
XCVI. Session Handling Functions
XCVII. Funkce pro práci se sdílenou pamětí
XCVIII. SimpleXML functions
XCIX. SOAP Functions
C. SQLite
CI. Shockwave Flash Functions
CII. SNMP Functions
CIII. Socket Functions
CIV. Standard PHP Library (SPL) Functions
CV. Stream Functions
CVI. Funkce pro práci s řetězci
CVII. Sybase Functions
CVIII. TCP Wrappers Functions
CIX. Tidy Functions
CX. Tokenizer Functions
CXI. URL funkce
CXII. Variable Functions
CXIII. vpopmail Functions
CXIV. W32api Functions
CXV. WDDX funkce
CXVI. XML Parser Functions
CXVII. XML-RPC Functions
CXVIII. xdiff Functions
CXIX. XSL functions
CXX. XSLT funkce
CXXI. YAZ Functions
CXXII. Funkce pro práci s YP/NIS
CXXIII. Zip File Functions (Read Only Access)
CXXIV. Zlib Compression Functions
VI. Zend API
24. Overview
25. Extension Possibilities
26. Source Layout
27. PHP's Automatic Build System
28. Creating Extensions
29. Using Extensions
30. Troubleshooting
31. Source Discussion
32. Accepting Arguments
33. Creating Variables
34. Duplicating Variable Contents: The Copy Constructor
35. Returning Values
36. Printing Information
37. Startup and Shutdown Functions
38. Calling User Functions
39. Initialization File Support
40. Where to Go from Here
41. Reference: Some Configuration Macros
42. API Macros
VII. PHP API: Rozhraní pro autory rozšíření PHP
43. Streams API for PHP Extension Authors
VIII. FAQ: Často kladené otázky
44. Obecné informace
45. E-mailové konference (mailing lists)
46. Získání PHP
47. Záležitosti databází
48. Instalace
49. Sestavovací (kompilační) problémy
50. Používání PHP
51. PHP a HTML
52. PHP a COM
53. PHP a jiné jazyky
54. Přechod z PHP 2 na PHP 3
55. Přechod z PHP 3 na PHP 4
56. Ostatní otázky
IX. Dodatky
A. Historie PHP a souvisejících projektů
B. Migrating from PHP 4 to PHP 5
C. Přechod z PHP 3 na PHP 4
D. Přechod z PHP/FI 2 na PHP 3
E. Ladění (debugging) PHP
F. Extending PHP 3
G. Seznam aliasů funkcí
H. Seznam vyhrazených slov
I. List of Resource Types
J. List of Supported Protocols/Wrappers
K. List of Available Filters
L. List of Supported Socket Transports
M. PHP type comparison tables
N. List of Parser Tokens
O. O tomto manuálu
P. Open Publication License
Q. Rejstřík funkcí
R. Co zde chybí
X. Vydání HTML Help
57. O tomto vydání
58. Použití prohlížeče HTML nápovědy
59. The Full Text Search
60. Specialities of this Edition
61. Integrating the PHP Manual
62. Skin development
63. CHM Edition Credits

Další
Předmluva


Předmluva

PHP, což znamená "PHP: Hypertext Preprocessor", je široce používaný mnohoúčelový skriptovací jazyk, šířený pod Open Source licencí, zvlášť vhodný pro vývoj WWW aplikací a způsobilý pro vkládání do HTML. Velká část jeho syntaxe je vypůjčená z C, Javy a Perlu. Cílem tohoto jazyka je je umožnit webovým vývojářum rychle psát dynamicky generované stránky - ale s PHP můžete dělat mnohem víc!

Tento manuál je tvořen především referenční příručkou funkcí, ale obsahuje také refereční příručku jazyka, vysvětlení hlavních vlastností a možností PHP a různé doplňkové informace.

Manuál si můžete stáhnout v různých formátech na http://www.php.net/download-docs.php. Více informací o tom, jak je tento manuál vytvářen, najdete v dodatku 'O manuálu'.

Viz také Historie PHP

Předcházející | Domů | Další
Manuál PHP |  | Začínáme


Začínáme

Manuál PHP
Předcházející Další

I. Začínáme

Obsah
1. Introduction
2. A simple tutorial
3. Instalace
4. Runtime Configuration

Předcházející | Domů | Další
Předmluva |  | Introduction


Introduction

Manuál PHP
Předcházející Další

Kapitola 1. Introduction

Obsah
What is PHP?
What can PHP do?

What is PHP?

PHP (recursive acronym for "PHP: Hypertext Preprocessor") is a widely-used Open Source general-purpose scripting language that is especially suited for Web development and can be embedded into HTML.

Simple answer, but what does that mean? An example:

Příklad 1-1. An introductory example

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

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

    </body>
</html>

Notice how this is different from a script written in other languages like Perl or C -- instead of writing a program with lots of commands to output HTML, you write an HTML script with some embedded code to do something (in this case, output some text). The PHP code is enclosed in special start and end tags that allow you to jump into and out of "PHP mode".

What distinguishes PHP from something like client-side JavaScript is that the code is executed on the server. If you were to have a script similar to the above on your server, the client would receive the results of running that script, with no way of determining what the underlying code may be. You can even configure your web server to process all your HTML files with PHP, and then there's really no way that users can tell what you have up your sleeve.

The best things in using PHP are that it is extremely simple for a newcomer, but offers many advanced features for a professional programmer. Don't be afraid reading the long list of PHP's features. You can jump in, in a short time, and start writing simple scripts in a few hours.

Although PHP's development is focused on server-side scripting, you can do much more with it. Read on, and see more in the What can PHP do? section.

Předcházející | Domů | Další
Začínáme | Nahoru | What can PHP do?


What can PHP do?

Anything. PHP is mainly focused on server-side scripting, so you can do anything any other CGI program can do, such as collect form data, generate dynamic page content, or send and receive cookies. But PHP can do much more.

There are three main fields where PHP scripts are used.

  • Server-side scripting. This is the most traditional and main target field for PHP. You need three things to make this work. The PHP parser (CGI or server module), a webserver and a web browser. You need to run the webserver, with a connected PHP installation. You can access the PHP program output with a web browser, viewing the PHP page through the server. See the installation instructions section for more information.

  • Command line scripting. You can make a PHP script to run it without any server or browser. You only need the PHP parser to use it this way. This type of usage is ideal for scripts regularly executed using cron (on *nix or Linux) or Task Scheduler (on Windows). These scripts can also be used for simple text processing tasks. See the section about Command line usage of PHP for more information.

  • Writing client-side GUI applications. PHP is probably not the very best language to write windowing applications, but if you know PHP very well, and would like to use some advanced PHP features in your client-side applications you can also use PHP-GTK to write such programs. You also have the ability to write cross-platform applications this way. PHP-GTK is an extension to PHP, not available in the main distribution. If you are interested in PHP-GTK, visit its own website.

PHP can be used on all major operating systems, including Linux, many Unix variants (including HP-UX, Solaris and OpenBSD), Microsoft Windows, Mac OS X, RISC OS, and probably others. PHP has also support for most of the web servers today. This includes Apache, Microsoft Internet Information Server, Personal Web Server, Netscape and iPlanet servers, Oreilly Website Pro server, Caudium, Xitami, OmniHTTPd, and many others. For the majority of the servers PHP has a module, for the others supporting the CGI standard, PHP can work as a CGI processor.

So with PHP, you have the freedom of choosing an operating system and a web server. Furthermore, you also have the choice of using procedural programming or object oriented programming, or a mixture of them. Although not every standard OOP feature is realized in the current version of PHP, many code libraries and large applications (including the PEAR library) are written only using OOP code.

With PHP you are not limited to output HTML. PHP's abilities includes outputting images, PDF files and even Flash movies (using libswf and Ming) generated on the fly. You can also output easily any text, such as XHTML and any other XML file. PHP can autogenerate these files, and save them in the file system, instead of printing it out, forming a server-side cache for your dynamic content.

One of the strongest and most significant feature in PHP is its support for a wide range of databases. Writing a database-enabled web page is incredibly simple. The following databases are currently supported:

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

We also have a DBX database abstraction extension allowing you to transparently use any database supported by that extension. Additionally PHP supports ODBC, the Open Database Connection standard, so you can connect to any other database supporting this world standard.

PHP also has support for talking to other services using protocols such as LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (on Windows) and countless others. You can also open raw network sockets and interact using any other protocol. PHP has support for the WDDX complex data exchange between virtually all Web programming languages. Talking about interconnection, PHP has support for instantiation of Java objects and using them transparently as PHP objects. You can also use our CORBA extension to access remote objects.

PHP has extremely useful text processing features, from the POSIX Extended or Perl regular expressions to parsing XML documents. For parsing and accessing XML documents, we support the SAX and DOM standards. You can use our XSLT extension to transform XML documents.

While using PHP in the e-commerce field, you'll find the Cybercash payment, CyberMUT, VeriSign Payflow Pro and CCVS functions useful for your online payment programs.

At last but not least, we have many other interesting extensions, the mnoGoSearch search engine functions, the IRC Gateway functions, many compression utilities (gzip, bz2), calendar conversion, translation...

As you can see this page is not enough to list all the features and benefits PHP can offer. Read on in the sections about installing PHP, and see the function reference part for explanation of the extensions mentioned here.

Předcházející | Domů | Další
Introduction | Nahoru | A simple tutorial


A simple tutorial

Manuál PHP
Předcházející Další

Kapitola 2. A simple tutorial

Obsah
What do I need?
Your first PHP-enabled page
Something Useful
Dealing with Forms
Dealing with XForms
Using old code with new versions of PHP
What's next?

Here we would like to show the very basics of PHP in a short, simple tutorial. This text only deals with dynamic webpage creation with PHP, though PHP is not only capable of creating webpages. See the section titled What can PHP do for more information.

PHP-enabled web pages are treated just like regular HTML pages and you can create and edit them the same way you normally create regular HTML pages.

What do I need?

In this tutorial we assume that your server has activated support for PHP and that all files ending in .php are handled by PHP. On most servers, this is the default extension for PHP files, but ask your server administrator to be sure. If your server supports PHP, then you do not need to do anything. Just create your .php files, put them in your web directory and the server will automatically parse them for you. There is no need to compile anything nor do you need to install any extra tools. Think of these PHP-enabled files as simple HTML files with a whole new family of magical tags that let you do all sorts of things. Most web hosts offer PHP support, but if your host does not, consider reading the PHP Links section for resources on finding PHP enabled web hosts.

Let us say you want to save precious bandwidth and develop locally. In this case, you will want to install a web server, such as Apache, and of course PHP. You will most likely want to install a database as well, such as MySQL. You can either install these individually or choose a simpler way. Locate a pre-configured package which automatically installs all of these with just a few mouse clicks. It is easy to setup a web server with PHP support on any operating system, including Linux and Windows. On Linux, you may find rpmfind and PBone helpful for locating RPMs. You may also want to visit apt-get to find packages for Debian.

Předcházející | Domů | Další
What can PHP do? | Nahoru | Your first PHP-enabled page


Your first PHP-enabled page

Create a file named hello.php and put it in your web server's root directory (DOCUMENT_ROOT) with the following content:

Příklad 2-1. Our first PHP script: hello.php

<html>
 <head>
  <title>PHP Test</title>
 </head>
 <body>
 <?php echo '<p>Hello World</p>'; ?>
 </body>
</html>

Use your browser to access the file with your web server's URL, ending with the "/hello.php" file reference. When developing locally this URL will be something like http://localhost/hello.php or http://127.0.0.1/hello.php but this depends on the web server's configuration. Although this is outside the scope of this tutorial, see also the DocumentRoot and ServerName directives in your web server's configuration file (for Apache, this is httpd.conf). If everything is configured correctly, this file will be parsed by PHP and the following output will be sent to your browser:

<html>
 <head>
  <title>PHP Test</title>
 </head>
 <body>
 <p>Hello World</p>
 </body>
</html>

Note that this is not like a CGI script. The file does not need to be executable or special in any way. Think of it as a normal HTML file which happens to have a set of special tags available to you that do a lot of interesting things.

This program is extremely simple and you really did not need to use PHP to create a page like this. All it does is display: Hello World using the PHP echo() statement.

If you tried this example and it did not output anything, it prompted for download, or you see the whole file as text, chances are that the server you are on does not have PHP enabled. Ask your administrator to enable it for you using the Installation chapter of the manual. If you are developing locally, also read the installation chapter to make sure everything is configured properly. If the problems persist, do not hesitate to use one of the many PHP support options.

The point of the example is to show the special PHP tag format. In this example we used <?php to indicate the start of a PHP tag. Then we put the PHP statement and left PHP mode by adding the closing tag, ?>. You may jump in and out of PHP mode in an HTML file like this all you want. For more details, read the manual section on basic PHP syntax.

A Note on Text Editors: There are many text editors and Integrated Development Environments (IDEs) that you can use to create, edit and manage PHP files. A partial list of these tools is maintained at PHP Editors List. If you wish to recommend an editor, please visit the above page and ask the page maintainer to add the editor to the list. Having an editor with syntax highlighting can be helpful.

A Note on Word Processors: Word processors such as StarOffice Writer, Microsoft Word and Abiword are not optimal for editing PHP files. If you wish to use one for this test script, you must ensure that you save the file as PLAIN TEXT or PHP will not be able to read and execute the script.

A Note on Windows Notepad: If you are writing your PHP scripts using Windows Notepad, you will need to ensure that your files are saved with the .php extension. (Notepad adds a .txt extension to files automatically unless you take one of the following steps to prevent it.) When you save the file and are prompted to provide a name for the file, place the filename in quotes (i.e. "hello.php"). Alternatively, you can click on the 'Text Documents' drop-down menu in the 'Save' dialog box and change the setting to "All Files". You can then enter your filename without quotes.

Now that you have successfully created a working PHP script, it is time to create the most famous PHP script! Make a call to the phpinfo() function and you will see a lot of useful information about your system and setup such as available predefined variables, loaded PHP modules, and configuration settings. Take some time and review this important information.

Předcházející | Domů | Další
A simple tutorial | Nahoru | Something Useful


Something Useful

Let us do something more useful now. We are going to check what sort of browser the visitor is using. For that, we check the user agent string the browser sends as part of the HTTP request. This information is stored in a variable. Variables always start with a dollar-sign in PHP. The variable we are interested in right now is $_SERVER['HTTP_USER_AGENT'].

Poznámka: $_SERVER is a special reserved PHP variable that contains all web server information. It is known as an autoglobal (or superglobal). See the related manual page on superglobals for more information. These special variables were introduced in PHP 4.1.0. Before this time, we used the older $HTTP_*_VARS arrays instead, such as $HTTP_SERVER_VARS. Although deprecated, these older variables still exist. (See also the note on old code.)

To display this variable, you can simply do:

Příklad 2-2. Printing a variable (Array element)

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

A sample output of this script may be:

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

There are many types of variables available in PHP. In the above example we printed an Array element. Arrays can be very useful.

$_SERVER is just one variable that PHP automatically makes available to you. A list can be seen in the Reserved Variables section of the manual or you can get a complete list of them by creating a file that looks like this:

Příklad 2-3. Show all predefined variables with phpinfo()

<?php phpinfo(); ?>

When you load up this file in your browser, you will see a page full of information about PHP along with a list of all the variables available to you.

You can put multiple PHP statements inside a PHP tag and create little blocks of code that do more than just a single echo. For example, if you want to check for Internet Explorer you can do this:

Příklad 2-4. Example using control structures and functions

<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) {
    echo 'You are using Internet Explorer<br />';
}
?>

A sample output of this script may be:

You are using Internet Explorer<br />

Here we introduce a couple of new concepts. We have an if statement. If you are familiar with the basic syntax used by the C language, this should look logical to you. Otherwise, you should probably pick up any introductory PHP book and read the first couple of chapters, or read the Language Reference part of the manual. You can find a list of PHP books at http://www.php.net/books.php.

The second concept we introduced was the strpos() function call. strpos() is a function built into PHP which searches a string for another string. In this case we are looking for 'MSIE' (so-called needle) inside $_SERVER['HTTP_USER_AGENT'] (so-called haystack). If the needle is found inside the haystack, the function returns the position of the needle relative to the start of the haystack. Otherwise, it returns FALSE. If it does not return FALSE, the if expression evaluates to TRUE and the code within its {braces} is executed. Otherwise, the code is not run. Feel free to create similar examples, with if, else, and other functions such as strtoupper() and strlen(). Each related manual page contains examples too. If you are unsure how to use functions, you will want to read both the manual page on how to read a function definition and the section about PHP functions.

We can take this a step further and show how you can jump in and out of PHP mode even in the middle of a PHP block:

Příklad 2-5. Mixing both HTML and PHP modes

<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) {
?>
<h3>strpos must have returned non-false</h3>
<center><b>You are using Internet Explorer</b></center>
<?php
} else {
?>
<h3>strpos must have returned false</h3>
<center><b>You are not using Internet Explorer</b></center>
<?php
}
?>

A sample output of this script may be:

<h3>strpos must have returned non-false</h3>
<center><b>You are using Internet Explorer</b></center>

Instead of using a PHP echo statement to output something, we jumped out of PHP mode and just sent straight HTML. The important and powerful point to note here is that the logical flow of the script remains intact. Only one of the HTML blocks will end up getting sent to the viewer depending on the result of strpos(). In other words, it depends on whether the string MSIE was found or not.

Předcházející | Domů | Další
Your first PHP-enabled page | Nahoru | Dealing with Forms


Dealing with Forms

One of the most powerful features of PHP is the way it handles HTML forms. The basic concept that is important to understand is that any form element in a form will automatically be available to your PHP scripts. Please read the manual section on Variables from outside of PHP for more information and examples on using forms with PHP. Here is an example HTML form:

Příklad 2-6. A simple HTML form

<form action="action.php" method="post">
 Your name: <input type="text" name="name" />
 Your age: <input type="text" name="age" />
 <input type="submit" />
</form>

There is nothing special about this form. It is a straight HTML form with no special tags of any kind. When the user fills in this form and hits the submit button, the action.php page is called. In this file you would write something like this:

Příklad 2-7. Printing data from our form

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

A sample output of this script may be:

Hi Joe. You are 22 years old.

It should be obvious what this does. There is nothing more to it. The $_POST['name'] and $_POST['age'] variables are automatically set for you by PHP. Earlier we used the $_SERVER autoglobal; above we just introduced the $_POST autoglobal which contains all POST data. Notice how the method of our form is POST. If we used the method GET then our form information would live in the $_GET autoglobal instead. You may also use the $_REQUEST autoglobal, if you do not care about the source of your request data. It contains the merged information of GET, POST and COOKIE data. Also see the import_request_variables() function.

Předcházející | Domů | Další
Something Useful | Nahoru | Dealing with XForms


Dealing with XForms

XForms defines a variation on traditional webforms which allows them to be used on a wider variety of platforms and browsers or even non-traditional media such as PDF documents.

The first key difference in xforms is how the form is sent to the client. XForms for HTML Authors contains a detailed description of how to create XForms, for the purpose of this tutorial we'll only be looking at a simple example.

Příklad 2-8. A simple XForms search form

<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>

The above form displays a text input box (named q), and a submit button. When the submit button is clicked, the form will be sent to the page referred to by action.

Here's where it starts to look different from your web application's point of view. In a normal HTML form, the data would be sent as application/x-www-form-urlencoded, in the XForms world however, this information is sent as XML formatted data.

If you're choosing to work with XForms then you probably want that data as XML, in that case, look in $HTTP_RAW_POST_DATA where you'll find the XML document generated by the browser which you can pass into your favorite XSLT engine or document parser.

If you're not interrested in formatting and just want your data to be loaded into the traditional $_POST variable, you can instruct the client browser to send it as application/x-www-form-urlencoded by changing the method attribute to urlencoded-post.

Příklad 2-9. Using an XForm to populate $_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>

Poznámka: As of this writing, many browsers do not support XForms. Check your browser version if the above examples fail.

Předcházející | Domů | Další
Dealing with Forms | Nahoru | Using old code with new versions of PHP


Using old code with new versions of PHP

Now that PHP has grown to be a popular scripting language, there are a lot of public repositories/libraries containing code you can reuse. The PHP developers have largely tried to preserve backwards compatibility, so a script written for an older version will run (ideally) without changes in a newer version of PHP. In practice, some changes will usually be needed.

Two of the most important recent changes that affect old code are:

  • The deprecation of the old $HTTP_*_VARS arrays (which need to be indicated as global when used inside a function or method). The following autoglobal arrays were introduced in PHP 4.1.0. They are: $_GET, $_POST, $_COOKIE, $_SERVER, $_FILES, $_ENV, $_REQUEST, and $_SESSION. The older $HTTP_*_VARS arrays, such as $HTTP_POST_VARS, still exist as they have since PHP 3. Od PHP 5.0.0 mohou být dlouhé předdefinované pole zakázané direktivou register_long_arrays.

  • External variables are no longer registered in the global scope by default. In other words, as of PHP 4.2.0 the PHP directive register_globals is off by default in php.ini. The preferred method of accessing these values is via the autoglobal arrays mentioned above. Older scripts, books, and tutorials may rely on this directive being on. If it were on, for example, one could use $id from the URL http://www.example.com/foo.php?id=42. Whether on or off, $_GET['id'] is available.

For more details on these changes, see the section on predefined variables and links therein.

Předcházející | Domů | Další
Dealing with XForms | Nahoru | What's next?


What's next?

With your new knowledge you should be able to understand most of the manual and also the various example scripts available in the example archives. You can also find other examples on the php.net websites in the links section: http://www.php.net/links.php.

To view various slide presentations that show more of what PHP can do, see the PHP Conference Material Sites: http://conf.php.net/ and http://talks.php.net/

Předcházející | Domů | Další
Using old code with new versions of PHP | Nahoru | Instalace


Instalace

Manuál PHP
Předcházející Další

Kapitola 3. Instalace

Obsah
General Installation Considerations
Unix/HP-UX installs
Unix/Linux installs
Unix/Mac OS X installs
Unix/OpenBSD installs
Unix/Solaris installs
Installation on Unix systems
Installation on Windows systems
Servers-CGI/Commandline
Servers-Apache
Servers-Apache 2.0
Servers-Caudium
Servers-fhttpd
Servers-IIS/PWS
Servers-Netscape, iPlanet and SunONE
Servers-OmniHTTPd Server
Servers-Oreilly Website Pro
Servers-Sambar
Servers-Xitami
Servers-Other web servers
Problems?
Miscellaneous configure options

General Installation Considerations

Before installing first, you need to know what do you want to use PHP for. There are three main fields you can use PHP, as described in the What can PHP do? section:

  • Server-side scripting

  • Command line scripting

  • Client-side GUI applications

For the first and most common form, you need three things: PHP itself, a web server and a web browser. You probably already have a web browser, and depending on your operating system setup, you may also have a web server (e.g. Apache on Linux or IIS on Windows). You may also rent webspace at a company. This way, you don't need to set up anything on your own, only write your PHP scripts, upload it to the server you rent, and see the results in your browser.

While setting up the server and PHP on your own, you have two choices for the method of connecting PHP to the server. For many servers PHP has a direct module interface (also called SAPI). These servers include Apache, Microsoft Internet Information Server, Netscape and iPlanet servers. Many other servers have support for ISAPI, the Microsoft module interface (OmniHTTPd for example). If PHP has no module support for your web server, you can always use it as a CGI processor. This means you set up your server to use the command line executable of PHP (php.exe on Windows) to process all PHP file requests on the server.

If you are also interested to use PHP for command line scripting (e.g. write scripts autogenerating some images for you offline, or processing text files depending on some arguments you pass to them), you always need the command line executable. For more information, read the section about writing command line PHP applications. In this case, you need no server and no browser.

With PHP you can also write client side GUI applications using the PHP-GTK extension. This is a completely different approach than writing web pages, as you do not output any HTML, but manage windows and objects within them. For more information about PHP-GTK, please visit the site dedicated to this extension. PHP-GTK is not included in the official PHP distribution.

From now on, this section deals with setting up PHP for web servers on Unix and Windows with server module interfaces and CGI executables.

Downloading PHP, the source code, and binary distributions for Windows can be found at http://www.php.net/downloads.php. We recommend you to choose a mirror nearest to you for downloading the distributions.

Předcházející | Domů | Další
What's next? | Nahoru | Unix/HP-UX installs


Unix/HP-UX installs

This section contains notes and hints specific to installing PHP on HP-UX systems. (Contributed by paul_mckay at clearwater-it dot co dot uk).

Poznámka: These tips were written for PHP 4.0.4 and Apache 1.3.9.

  1. You need gzip, download a binary distribution from http://hpux.connect.org.uk/ftp/hpux/Gnu/gzip-1.2.4a/gzip-1.2.4a-sd-10.20.depot.Z uncompress the file and install using swinstall.

  2. You need gcc, download a binary distribution from http://gatekeep.cs.utah.edu/ftp/hpux/Gnu/gcc-2.95.2/gcc-2.95.2-sd-10.20.depot.gz. uncompress this file and install gcc using swinstall.

  3. You need the GNU binutils, you can download a binary distribution from http://hpux.connect.org.uk/ftp/hpux/Gnu/binutils-2.9.1/binutils-2.9.1-sd-10.20.depot.gz. uncompress this file and install binutils using swinstall.

  4. You now need bison, you can download a binary distribution from http://hpux.connect.org.uk/ftp/hpux/Gnu/bison-1.28/bison-1.28-sd-10.20.depot.gz, install as above.

  5. You now need flex, you need to download the source from one of the http://www.gnu.org mirrors. It is in the non-gnu directory of the ftp site. Download the file, gunzip, then tar -xvf it. Go into the newly created flex directory and run ./configure, followed by make, and then make install.

    If you have errors here, it's probably because gcc etc. are not in your PATH so add them to your PATH.

  6. Download the PHP and apache sources.

  7. gunzip and tar -xvf them. We need to hack a couple of files so that they can compile OK.

  8. Firstly the configure file needs to be hacked because it seems to lose track of the fact that you are a hpux machine, there will be a better way of doing this but a cheap and cheerful hack is to put lt_target=hpux10.20 on line 47286 of the configure script.

  9. Next, the Apache GuessOS file needs to be hacked. Under apache_1.3.9/src/helpers change line 89 from echo "hp${HPUXMACH}-hpux${HPUXVER}"; exit 0 to: echo "hp${HPUXMACH}-hp-hpux${HPUXVER}"; exit 0

  10. You cannot install PHP as a shared object under HP-UX so you must compile it as a static, just follow the instructions at the Apache page.

  11. PHP and Apache should have compiled OK, but Apache won't start. you need to create a new user for Apache, e.g. www, or apache. You then change lines 252 and 253 of the conf/httpd.conf in Apache so that instead of

    User nobody
Group nogroup

    you have something like

    User www
Group sys

    This is because you can't run Apache as nobody under hp-ux. Apache and PHP should then work.

Předcházející | Domů | Další
Instalace | Nahoru | Unix/Linux installs


Unix/Linux installs

This section contains notes and hints specific to installing PHP on Linux distributions.

Using Packages

Many Linux distributions have some sort of package installation system, such as RPM. This can assist in setting up a standard configuration, but if you need to have a different set of features (such as a secure server, or a different database driver), you may need to build PHP and/or your webserver. If you are unfamiliar with building and compiling your own software, it is worth checking to see whether somebody has already built a packaged version of PHP with the features you need.

Předcházející | Domů | Další
Unix/HP-UX installs | Nahoru | Unix/Mac OS X installs


Unix/Mac OS X installs

This section contains notes and hints specific to installing PHP on Mac OS X Server.

Using Packages

There are a few pre-packaged and pre-compiled versions of PHP for Mac OS X. This can help in setting up a standard configuration, but if you need to have a different set of features (such as a secure server, or a different database driver), you may need to build PHP and/or your web server yourself. If you are unfamiliar with building and compiling your own software, it's worth checking whether somebody has already built a packaged version of PHP with the features you need.

Compiling for OS X server

There are two slightly different versions of Mac OS X, client and server. The following is for OS X Server.

Mac OS X server install.

  1. Get the latest distributions of Apache and PHP.

  2. Untar them, and run the configure program on Apache like so.
    ./configure --exec-prefix=/usr \
--localstatedir=/var \
--mandir=/usr/share/man \
--libexecdir=/System/Library/Apache/Modules \
--iconsdir=/System/Library/Apache/Icons \
--includedir=/System/Library/Frameworks/Apache.framework/Versions/1.3/Headers \
--enable-shared=max \
--enable-module=most \
--target=apache

  3. If you want the compiler to do some optimization., you may also want to add this line:
    setenv OPTIM=-O2

  4. Next, go to the PHP 4 source directory and configure it.
    ./configure --prefix=/usr \
    --sysconfdir=/etc \
    --localstatedir=/var \
    --mandir=/usr/share/man \
    --with-xml \
    --with-apache=/src/apache_1.3.12
    If you have any other additions (MySQL, GD, etc.), be sure to add them here. For the --with-apache string, put in the path to your apache source directory, for example /src/apache_1.3.12.

  5. Type make and make install. This will add a directory to your Apache source directory under src/modules/php4.

  6. Now, reconfigure Apache to build in PHP 4.
    ./configure --exec-prefix=/usr \
--localstatedir=/var \
--mandir=/usr/share/man \
--libexecdir=/System/Library/Apache/Modules \
--iconsdir=/System/Library/Apache/Icons \
--includedir=/System/Library/Frameworks/Apache.framework/Versions/1.3/Headers \
--enable-shared=max \
--enable-module=most \
--target=apache \
--activate-module=src/modules/php4/libphp4.a
    You may get a message telling you that libmodphp4.a is out of date. If so, go to the src/modules/php4 directory inside your apache source directory and run this command: ranlib libmodphp4.a. Then go back to the root of the apache source directory and run the above configure command again. That'll bring the link table up to date. Run make and make install again.

  7. Copy and rename the php.ini-dist file to your bin directory from your PHP 4 source directory: cp php.ini-dist /usr/local/bin/php.ini or (if your don't have a local directory) cp php.ini-dist /usr/bin/php.ini.

Compiling for MacOS X client

Those tips are graciously provided by Marc Liyanage.

The PHP module for the Apache web server included in Mac OS X. This version includes support for the MySQL and PostgreSQL databases.

NOTE: Be careful when you do this, you could screw up your Apache web server!

Do this to install:

  1. Open a terminal window.

  2. Type wget http://www.diax.ch/users/liyanage/software/macosx/libphp4.so.gz, wait for the download to finish.

  3. Type gunzip libphp4.so.gz.

  4. Type sudo apxs -i -a -n php4 libphp4.so

  5. Now type sudo open -a TextEdit /etc/httpd/httpd.conf. TextEdit will open with the web server configuration file. Locate these two lines towards the end of the file: (Use the Find command)
    #AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps
    Remove the two hash marks (#), then save the file and quit TextEdit.

  6. Finally, type sudo apachectl graceful to restart the web server.

PHP should now be up and running. You can test it by dropping a file into your Sites folder which is called test.php. Into that file, write this line: <?php phpinfo() ?>.

Now open up 127.0.0.1/~your_username/test.php in your web browser. You should see a status table with information about the PHP module.

Předcházející | Domů | Další
Unix/Linux installs | Nahoru | Unix/OpenBSD installs


Unix/OpenBSD installs

This section contains notes and hints specific to installing PHP on OpenBSD 3.4.

Using Binary Packages

Using binary packages to install PHP on OpenBSD is the recommended and simplest method. The core package has been separated from the various modules, and each can be installed and removed independently from the others. The files you need can be found on your OpenBSD CD or on the FTP site.

The main package you need to install is php4-core-4.3.3.tgz, which contains the basic engine (plus gettext and iconv). Next, take a look at the module packages, such as php4-mysql-4.3.3.tgz or php4-imap-4.3.3.tgz. You need to use the phpxs command to activate and deactivate these modules in your php.ini.

Příklad 3-1. OpenBSD Package Install Example

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

Read the packages(7) manual page for more information about binary packages on OpenBSD.

Using Ports

You can also compile up PHP from source using the ports tree. However, this is only recommended for users familiar with OpenBSD. The PHP 4 port is split into two sub-directories: core and extensions. The extensions directory generates sub-packages for all of the supported PHP modules. If you find you do not want to create some of these modules, use the no_* FLAVOR. For example, to skip building the imap module, set the FLAVOR to no_imap.

Common Problems

  • The default install of Apache runs inside a chroot(2) jail, which will restrict PHP scripts to accessing files under /var/www. You will therefore need to create a /var/www/tmp directory for PHP session files to be stored, or use an alternative session backend. In addition, database sockets need to be placed inside the jail or listen on the localhost interface. If you use network functions, some files from /etc such as /etc/resolv.conf and /etc/services will need to be moved into /var/www/etc. The OpenBSD PEAR package automatically installs into the correct chroot directories, so no special modification is needed there. More information on the OpenBSD Apache is available in the OpenBSD FAQ.

  • The OpenBSD 3.4 package for the gd extension requires XFree86 to be installed. If you do not wish to use some of the font features that require X11, install the php4-gd-4.3.3-no_x11.tgz package instead.

Older Releases

Older releases of OpenBSD used the FLAVORS system to compile up a statically linked PHP. Since it is hard to generate binary packages using this method, it is now deprecated. You can still use the old stable ports trees if you wish, but they are unsupported by the OpenBSD team. If you have any comments about this, the current maintainer for the port is Anil Madhavapeddy (avsm at openbsd dot org).

Předcházející | Domů | Další
Unix/Mac OS X installs | Nahoru | Unix/Solaris installs


Unix/Solaris installs

This section contains notes and hints specific to installing PHP on Solaris systems.

Required software

Solaris installs often lack C compilers and their related tools. Read this FAQ for information on why using GNU versions for some of these tools is necessary. The required software is as follows:

  • gcc (recommended, other C compilers may work)

  • make

  • flex

  • bison

  • m4

  • autoconf

  • automake

  • perl

  • gzip

  • tar

  • GNU sed

In addition, you will need to install (and possibly compile) any additional software specific to your configuration, such as Oracle or MySQL.

Using Packages

You can simplify the Solaris install process by using pkgadd to install most of your needed components.

Předcházející | Domů | Další
Unix/OpenBSD installs | Nahoru | Installation on Unix systems


Installation on Unix systems

This section will guide you through the general configuration and installation of PHP on Unix systems. Be sure to investigate any sections specific to your platform or web server before you begin the process.

Prerequisite knowledge and software:

  • Basic Unix skills (being able to operate "make" and a C compiler, if compiling)

  • An ANSI C compiler (if compiling)

  • flex (for compiling)

  • bison (for compiling)

  • A web server

  • Any module specific components (such as gd, pdf libs, etc.)

There are several ways to install PHP for the Unix platform, either with a compile and configure process, or through various pre-packaged methods. This documentation is mainly focused around the process of compiling and configuring PHP.

The initial PHP setup and configuration process is controlled by the use of the commandline options of the configure script. This page outlines the usage of the most common options, but there are many others to play with. Check out the Complete list of configure options for an exhaustive rundown. There are several ways to install PHP:

  • As an Apache 1.x module or an Apache 2.x module.

  • As an Pike module for Caudium

  • For use with AOLServer, NSAPI, phttpd, Pi3Web, Roxen, thttpd, or Zeus.

  • As a CGI executable

Apache Module Quick Reference

PHP can be compiled in a number of different ways, but one of the most popular is as an Apache module. The following is a quick installation overview.

Příklad 3-2. Quick Installation Instructions for PHP 4 (Apache Module Version)

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

18. Use your normal procedure for restarting the Apache server. (You must
    stop and restart the server, not just cause the server to reload by
    use a HUP or USR1 signal.)

Building

When PHP is configured, you are ready to build the CGI executable. The command make should take care of this. If it fails and you can't figure out why, see the Problems section.

Předcházející | Domů | Další
Unix/Solaris installs | Nahoru | Installation on Windows systems


Installation on Windows systems

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

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

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

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

Windows InstallShield

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

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

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

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

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

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

Varování

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

Manual Installation Steps

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

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

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

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

Varování

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

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

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

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

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

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

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

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

    C:\Windows\System for Windows 9x/ME
    C:\WINNT\System32 for Windows NT/2000 or C:\WINNT40\System32 for NT/2000 server
    C:\Windows\System32 for Windows XP

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

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

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

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

The following steps are optional.

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

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

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

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

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

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

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

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

  • .. the Netscape/iPlanet servers.

  • .. the OmniHTTPd server.

  • .. the Oreilly Website Pro server.

  • .. the Sambar server.

  • .. the Xitami server.

Building from source

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

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

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

Požadavky

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

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

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

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

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

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

Putting it all together

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

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

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

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

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

Following this steps your directory structure looks like this:

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

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

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

Configure MVC ++

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

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

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

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

Build resolv.lib

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

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

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

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

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

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

Compiling

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

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

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

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

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

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

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

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

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

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

Installation of Windows extensions

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

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

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

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

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

    extension_dir = c:/php/extensions/

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

    Příklad 3-3. Enable Bzip2 extension for PHP-Windows

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

// ... to
extension=php_bz2.dll

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

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

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

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

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

Tabulka 3-1. PHP Extensions

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

Předcházející | Domů | Další
Installation on Unix systems | Nahoru | Servers-CGI/Commandline


Servers-CGI/Commandline

The default is to build PHP as a CGI program. This creates a commandline interpreter, which can be used for CGI processing, or for non-web-related PHP scripting. If you are running a web server PHP has module support for, you should generally go for that solution for performance reasons. However, the CGI version enables Apache users to run different PHP-enabled pages under different user-ids. Please make sure you read through the Security chapter if you are going to run PHP as a CGI.

As of PHP 4.3.0, some important additions have happened to PHP. A new SAPI named CLI also exists and it has the same name as the CGI binary. What is installed at {PREFIX}/bin/php depends on your configure line and this is described in detail in the manual section named Using PHP from the command line. For further details please read that section of the manual.

Testing

If you have built PHP as a CGI program, you may test your build by typing make test. It is always a good idea to test your build. This way you may catch a problem with PHP on your platform early instead of having to struggle with it later.

Benchmarking

If you have built PHP 3 as a CGI program, you may benchmark your build by typing make bench. Note that if bezpečný režim is on by default, the benchmark may not be able to finish if it takes longer then the 30 seconds allowed. This is because the set_time_limit() can not be used in bezpečný režim. Use the max_execution_time configuration setting to control this time for your own scripts. make bench ignores the configuration file.

Poznámka: make bench is only available for PHP 3.

Using Variables

Some server supplied environment variables are not defined in the current CGI/1.1 specification. Only the following variables are defined there; everything else should be treated as 'vendor extensions': AUTH_TYPE, CONTENT_LENGTH, CONTENT_TYPE, GATEWAY_INTERFACE, PATH_INFO, PATH_TRANSLATED, QUERY_STRING, REMOTE_ADDR, REMOTE_HOST, REMOTE_IDENT, REMOTE_USER, REQUEST_METHOD, SCRIPT_NAME, SERVER_NAME, SERVER_PORT, SERVER_PROTOCOL and SERVER_SOFTWARE

Předcházející | Domů | Další
Installation on Windows systems | Nahoru | Servers-Apache


Servers-Apache

This section contains notes and hints specific to Apache installs of PHP, both for Unix and Windows versions. We also have instructions and notes for Apache 2 on a separate page.

Details of installing PHP with Apache on Unix

You can select arguments to add to the configure on line 10 below from the Complete list of configure options. The version numbers have been omitted here, to ensure the instructions are not incorrect. You will need to replace the 'xxx' here with the correct values from your files.

Příklad 3-4. Installation Instructions (Apache Shared Module Version) for PHP

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

10. Now, configure your PHP.  This is where you customize your PHP
    with various options, like which extensions will be enabled.  Do a
    ./configure --help for a list of available options.  In our example
    we'll do a simple configure with Apache 1 and MySQL support.  Your
    path to apxs may differ from our example.

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

11. make
12. make install

    If you decide to change your configure options after installation,
    you only need to repeat the last three steps. You only need to
    restart apache for the new module to take effect. A recompile of
    Apache is not needed.

    Note that unless told otherwise, 'make install' will also install PEAR,
    various PHP tools such as phpize, install the PHP CLI, and more.

13. Setup your php.ini file:

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

    You may edit your .ini file to set PHP options.  If you prefer your
    php.ini in another location, use --with-config-file-path=/some/path in
    step 10.

    If you instead choose php.ini-recommended, be certain to read the list
    of changes within, as they affect how PHP behaves.

14. Edit your httpd.conf to load the PHP module.  The path on the right hand
    side of the LoadModule statement must point to the path of the PHP
    module on your system.  The make install from above may have already
    added this for you, but be sure to check.

    For PHP 4:

      LoadModule php4_module libexec/libphp4.so

    For PHP 5:

      LoadModule php5_module libexec/libphp5.so

15. And in the AddModule section of httpd.conf, somewhere under the
    ClearModuleList, add this:

    For PHP 4:

      AddModule mod_php4.c

    For PHP 5:

      AddModule mod_php5.c

16. Tell Apache to parse certain extensions as PHP.  For example,
    let's have Apache parse the .php extension as PHP.  You could
    have any extension(s) parse as PHP by simply adding more, with
    each separated by a space.  We'll add .phtml to demonstrate.

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

    It's also common to setup the .phps extension to show highlighted PHP
    source, this can be done with:

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

17. Use your normal procedure for starting the Apache server. (You must
    stop and restart the server, not just cause the server to reload by
    using a HUP or USR1 signal.)

Depending on your Apache install and Unix variant, there are many possible ways to stop and restart the server. Below are some typical lines used in restarting the server, for different apache/unix installations. You should replace /path/to/ with the path to these applications on your systems.

Příklad 3-5. Example commands for restarting Apache

1. Several Linux and SysV variants:
/etc/rc.d/init.d/httpd restart

2. Using apachectl scripts:
/path/to/apachectl stop
/path/to/apachectl start

3. httpdctl and httpsdctl (Using OpenSSL), similar to apachectl:
/path/to/httpsdctl stop
/path/to/httpsdctl start

4. Using mod_ssl, or another SSL server, you may want to manually
stop and start:
/path/to/apachectl stop
/path/to/apachectl startssl

The locations of the apachectl and http(s)dctl binaries often vary. If your system has locate or whereis or which commands, these can assist you in finding your server control programs.

Different examples of compiling PHP for apache are as follows:

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

This will create a libphp4.so shared library that is loaded into Apache using a LoadModule line in Apache's httpd.conf file. The PostgreSQL support is embedded into this libphp4.so library.

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

This will create a libphp4.so shared library for Apache, but it will also create a pgsql.so shared library that is loaded into PHP either by using the extension directive in php.ini file or by loading it explicitly in a script using the dl() function.

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

This will create a libmodphp4.a library, a mod_php4.c and some accompanying files and copy this into the src/modules/php4 directory in the Apache source tree. Then you compile Apache using --activate-module=src/modules/php4/libphp4.a and the Apache build system will create libphp4.a and link it statically into the httpd binary. The PostgreSQL support is included directly into this httpd binary, so the final result here is a single httpd binary that includes all of Apache and all of PHP.

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

Same as before, except instead of including PostgreSQL support directly into the final httpd you will get a pgsql.so shared library that you can load into PHP from either the php.ini file or directly using dl().

When choosing to build PHP in different ways, you should consider the advantages and drawbacks of each method. Building as a shared object will mean that you can compile apache separately, and don't have to recompile everything as you add to, or change, PHP. Building PHP into apache (static method) means that PHP will load and run faster. For more information, see the Apache webpage on DSO support.

Poznámka: Apache's default httpd.conf currently ships with a section that looks like this:

User nobody
Group "#-1"

Unless you change that to "Group nogroup" or something like that ("Group daemon" is also very common) PHP will not be able to open files.

Poznámka: Make sure you specify the installed version of apxs when using --with-apxs=/path/to/apxs. You must NOT use the apxs version that is in the apache sources but the one that is actually installed on your system.

Installing PHP on Windows with Apache 1.3.x

There are two ways to set up PHP to work with Apache 1.3.x on Windows. One is to use the CGI binary (php.exe), the other is to use the Apache module DLL. In either case you need to stop the Apache server, and edit your httpd.conf to configure Apache to work with PHP.

It is worth noting here that now the SAPI module has been made more stable under Windows, we recommend it's use above the CGI binary, since it is more transparent and secure.

Although there can be a few variations of configuring PHP under Apache, these are simple enough to be used by the newcomer. Please consult the Apache Docs for further configuration directives.

If you unziped the PHP package to c:\php\ as described in the Manual Installation Steps section, you need to insert these lines to your Apache configuration file to set up the CGI binary:

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

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

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

Note that the second line in the list above can be found in the actual versions of httpd.conf, but it is commented out. Remember also to substitute the c:/php/ for your actual path to PHP.

Varování

By using the CGI setup, your server is open to several possible attacks. Please read our CGI security section to learn how to defend yourself from attacks.

If you would like to use PHP as a module in Apache, be sure to copy php4ts.dll to the windows/system (for Windows 9x/Me), winnt/system32 (for Windows NT/2000) or windows/system32 (for Windows XP) directory, overwriting any older file. Then you should add the following lines to your Apache httpd.conf file:

  • Open httpd.conf with your favorite editor and locate the LoadModule directive and add the following line at the end of the list for PHP 4: LoadModule php4_module "c:/php/sapi/php4apache.dll" or the following for PHP 5: LoadModule php5_module "c:/php/sapi/php5apache.dll"

  • You may find after using the Windows installer for Apache that you need to define the AddModule directive for mod_php4.c. This is especially important if the ClearModuleList directive is defined, which you will find by scrolling down a few lines. You will see a list of AddModule entries, add the following line at the end of the list: AddModule mod_php4.c For PHP 5, instead use AddModule mod_php5.c

  • Search for a phrase similar to # AddType allows you to tweak mime.types. You will see some AddType entries, add the following line at the end of the list: AddType application/x-httpd-php .php. You can choose any extension you want to parse through PHP here. .php is simply the one we suggest. You can even include .html, and .php3 can be added for backwards compatibility.

After changing the configuration file, remember to restart the server, for example, NET STOP APACHE followed by NET START APACHE, if you run Apache as a Windows Service, or use your regular shortcuts.

There are two ways you can use the source code highlighting feature, however their ability to work depends on your installation. If you have configured Apache to use PHP as an SAPI module, then by adding the following line to your httpd.conf (at the same place you inserted AddType application/x-httpd-php .php, see above) you can use this feature: AddType application/x-httpd-php-source .phps.

If you chose to configure Apache to use PHP as a CGI binary, you will need to use the show_source() function. To do this simply create a PHP script file and add this code: <?php show_source ("original_php_script.php"); ?>. Substitute original_php_script.php with the name of the file you wish to show the source of.

Poznámka: On Win-Apache all backslashes in a path statement such as "c:\directory\file.ext", must be converted to forward slashes, as "c:/directory/file.ext".

Předcházející | Domů | Další
Servers-CGI/Commandline | Nahoru | Servers-Apache 2.0


Servers-Apache 2.0

This section contains notes and hints specific to Apache 2.0 installs of PHP, both for Unix and Windows versions.

Varování

Do not use Apache 2.0 and PHP in a production environment neither on Unix nor on Windows.

You are highly encouraged to take a look at the Apache Documentation to get a basic understanding of the Apache 2.0 Server.

PHP and Apache 2.0 compatibility notes

The following versions of PHP are known to work with the most recent version of Apache 2.0:

  • PHP 4.3.0 or later available at http://www.php.net/downloads.php.
  • the latest stable development version. Get the source code http://snaps.php.net/php4-latest.tar.gz or download binaries for Windows http://snaps.php.net/win32/php4-win32-latest.zip.
  • a prerelease version downloadable from http://qa.php.net/.
  • you have always the option to obtain PHP through anonymous CVS.
These versions of PHP are compatible to Apache 2.0.40 and later.

Poznámka: Apache 2.0 SAPI-support started with PHP 4.2.0. PHP 4.2.3 works with Apache 2.0.39, don't use any other version of Apache with PHP 4.2.3. However, the recommended setup is to use PHP 4.3.0 or later with the most recent version of Apache2.

All mentioned versions of PHP will work still with Apache 1.3.x.

PHP and Apache 2 on Linux

Download the most recent version of Apache 2.0 and a fitting PHP version from the above mentioned places. This quick guide covers only the basics to get started with Apache 2.0 and PHP. For more information read the Apache Documentation. The version numbers have been omitted here, to ensure the instructions are not incorrect. You will need to replace the 'NN' here with the correct values from your files.

Příklad 3-6. Installation Instructions (Apache 2 Shared Module Version)

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

    Now you have Apache 2.0.NN available under /usr/local/apache2,
    configured with loadable module support and the standard MPM prefork.
    To test the installation use your normal procedure for starting
    the Apache server, e.g.:
    /usr/local/apache2/bin/apachectl start
    and stop the server to go on with the configuration for PHP:
    /usr/local/apache2/bin/apachectl stop.

9.  cd ../php-NN

10. Now, configure your PHP.  This is where you customize your PHP
    with various options, like which extensions will be enabled.  Do a
    ./configure --help for a list of available options.  In our example
    we'll do a simple configure with Apache 2 and MySQL support.  Your
    path to apxs may differ, in fact, the binary may even be named apxs2 on
    your system.

      ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql

11. make
12. make install

    If you decide to change your configure options after installation,
    you only need to repeat the last three steps. You only need to
    restart apache for the new module to take effect. A recompile of
    Apache is not needed.

    Note that unless told otherwise, 'make install' will also install PEAR,
    various PHP tools such as phpize, install the PHP CLI, and more.

13. Setup your php.ini

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

    You may edit your .ini file to set PHP options.  If you prefer having
    php.ini in another location, use --with-config-file-path=/some/path in
    step 10.

    If you instead choose php.ini-recommended, be certain to read the list
    of changes within, as they affect how PHP behaves.

14. Edit your httpd.conf to load the PHP module.  The path on the right hand
    side of the LoadModule statement must point to the path of the PHP
    module on your system.  The make install from above may have already
    added this for you, but be sure to check.

    For PHP 4:

      LoadModule php4_module libexec/libphp4.so

    For PHP 5:

      LoadModule php5_module libexec/libphp5.so

15. Tell Apache to parse certain extensions as PHP.  For example,
    let's have Apache parse the .php extension as PHP.  You could
    have any extension(s) parse as PHP by simply adding more, with
    each separated by a space.  We'll add .phtml to demonstrate.

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

    It's also common to setup the .phps extension to show highlighted PHP
    source, this can be done with:

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

16. Use your normal procedure for starting the Apache server, e.g.:

      /usr/local/apache2/bin/apachectl start

Following the steps above you will have a running Apache 2.0 with support for PHP as SAPI module. Of course there are many more configuration options available for both, Apache and PHP. For more information use ./configure --help in the corresponding source tree. In case you wish to build a multithreaded version of Apache 2.0 you must overwrite the standard MPM-Module prefork either with worker or perchild. To do so append to your configure line in step 6 above either the option --with-mpm=worker or --with-mpm=perchild. Take care about the consequences and understand what you are doing. For more information read the Apache documentation about the MPM-Modules.

Poznámka: To build a multithreaded version of Apache your system must support threads. This also implies to build PHP with experimental Zend Thread Safety (ZTS). Therefore not all extensions might be available. The recommended setup is to build Apache with the standard prefork MPM-Module.

PHP and Apache 2.0 on Windows

Consider to read the Windows specific notes for Apache 2.0.

Varování

Apache 2.0 is designed to run on Windows NT 4.0, Windows 2000 or Windows XP. At this time, support for Windows 9x is incomplete. Apache 2.0 is not expected to work on those platforms at this time.

Download the most recent version of Apache 2.0 and a fitting PHP version from the above mentioned places. Follow the Manual Installation Steps and come back to go on with the integration of PHP and Apache.

There are two ways to set up PHP to work with Apache 2.0 on Windows. One is to use the CGI binary the other is to use the Apache module DLL. In either case you need to stop the Apache server, and edit your httpd.conf to configure Apache to work with PHP.

You need to insert these three lines to your Apache httpd.conf configuration file to set up the CGI binary:

Příklad 3-7. PHP and Apache 2.0 as CGI

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

If you would like to use PHP as a module in Apache 2.0, be sure to move php4ts.dll for PHP 4, or php5ts.dll for PHP 5, to winnt/system32 (for Windows NT/2000) or windows/system32 (for Windows XP), overwriting any older file. You need to insert these two lines to your Apache httpd.conf configuration file to set up the PHP-Module for Apache 2.0:

Příklad 3-8. PHP and Apache 2.0 as Module

; For PHP 4 do something like this:
LoadModule php4_module "c:/php/sapi/php4apache2.dll"
AddType application/x-httpd-php .php

; For PHP 5 do something like this:
LoadModule php5_module "c:/php/sapi/php5apache2.dll"
AddType application/x-httpd-php .php

Poznámka: Remember to substitute the c:/php/ for your actual path to PHP in the above examples. Take care to use either php4apache2.dll or php5apache2.dll in your LoadModule directive and not php4apache.dll or php5apache.dll as the latter ones are designed to run with Apache 1.3.x.

Varování

Don't mix up your installation with dll files from different PHP versions . You have the only choice to use the dll's and extensions that ship with your downloaded PHP version.

Předcházející | Domů | Další
Servers-Apache | Nahoru | Servers-Caudium


Servers-Caudium

PHP 4 can be built as a Pike module for the Caudium webserver. Note that this is not supported with PHP 3. Follow the simple instructions below to install PHP 4 for Caudium.

Příklad 3-9. Caudium Installation Instructions

1.  Make sure you have Caudium installed prior to attempting to
    install PHP 4. For PHP 4 to work correctly, you will need Pike
    7.0.268 or newer. For the sake of this example we assume that
    Caudium is installed in /opt/caudium/server/.
2.  Change directory to php-x.y.z (where x.y.z is the version number).
3.  ./configure --with-caudium=/opt/caudium/server
4.  make
5.  make install
6.  Restart Caudium if it's currently running.
7.  Log into the graphical configuration interface and go to the
    virtual server where you want to add PHP 4 support.
8.  Click Add Module and locate and then add the PHP 4 Script Support module.
9.  If the documentation says that the 'PHP 4 interpreter isn't
    available', make sure that you restarted the server. If you did
    check /opt/caudium/logs/debug/default.1 for any errors related to
    <filename>PHP4.so</filename>. Also make sure that
    <filename>caudium/server/lib/[pike-version]/PHP4.so</filename>
    is present.
10. Configure the PHP Script Support module if needed.

You can of course compile your Caudium module with support for the various extensions available in PHP 4. See the complete list of configure options for an exhaustive rundown.

Poznámka: When compiling PHP 4 with MySQL support you must make sure that the normal MySQL client code is used. Otherwise there might be conflicts if your Pike already has MySQL support. You do this by specifying a MySQL install directory the --with-mysql option.

Předcházející | Domů | Další
Servers-Apache 2.0 | Nahoru | Servers-fhttpd


Servers-fhttpd

To build PHP as an fhttpd module, answer "yes" to "Build as an fhttpd module?" (the --with-fhttpd=DIR option to configure) and specify the fhttpd source base directory. The default directory is /usr/local/src/fhttpd. If you are running fhttpd, building PHP as a module will give better performance, more control and remote execution capability.

Poznámka: Support for fhttpd is no longer available as of PHP 4.3.0.

Předcházející | Domů | Další
Servers-Caudium | Nahoru | Servers-IIS/PWS


Servers-IIS/PWS

This section contains notes and hints specific to IIS (Microsoft Internet Information Server). Installing PHP for PWS/IIS 3, PWS 4 or newer and IIS 4 or newer versions.

Important for CGI users: Read the faq on cgi.force_redirect for important details. This directive needs to be set to 0.

Windows and PWS/IIS 3

The recommended method for configuring these servers is to use the REG file included with the distribution (pws-php4cgi.reg). You may want to edit this file and make sure the extensions and PHP install directories match your configuration. Or you can follow the steps below to do it manually.

Varování

These steps involve working directly with the Windows registry. One error here can leave your system in an unstable state. We highly recommend that you back up your registry first. The PHP Development team will not be held responsible if you damage your registry.

  • Run Regedit.

  • Navigate to: HKEY_LOCAL_MACHINE /System /CurrentControlSet /Services /W3Svc /Parameters /ScriptMap.

  • On the edit menu select: New->String Value.

  • Type in the extension you wish to use for your php scripts. For example .php

  • Double click on the new string value and enter the path to php.exe in the value data field. ex: c:\php\php.exe.

  • Repeat these steps for each extension you wish to associate with PHP scripts.

The following steps do not affect the web server installation and only apply if you want your PHP scripts to be executed when they are run from the command line (ex. run c:\myscripts\test.php) or by double clicking on them in a directory viewer window. You may wish to skip these steps as you might prefer the PHP files to load into a text editor when you double click on them.

  • Navigate to: HKEY_CLASSES_ROOT

  • On the edit menu select: New->Key.

  • Name the key to the extension you setup in the previous section. ex: .php

  • Highlight the new key and in the right side pane, double click the "default value" and enter phpfile.

  • Repeat the last step for each extension you set up in the previous section.

  • Now create another New->Key under HKEY_CLASSES_ROOT and name it phpfile.

  • Highlight the new key phpfile and in the right side pane, double click the "default value" and enter PHP Script.

  • Right click on the phpfile key and select New->Key, name it Shell.

  • Right click on the Shell key and select New->Key, name it open.

  • Right click on the open key and select New->Key, name it command.

  • Highlight the new key command and in the right side pane, double click the "default value" and enter the path to php.exe. ex: c:\php\php.exe -q %1. (don't forget the %1).

  • Exit Regedit.

  • If using PWS on Windows, reboot to reload the registry.

PWS and IIS 3 users now have a fully operational system. IIS 3 users can use a nifty tool from Steven Genusa to configure their script maps.

Windows and PWS 4 or newer

When installing PHP on Windows with PWS 4 or newer version, you have two options. One to set up the PHP CGI binary, the other is to use the ISAPI module DLL.

If you choose the CGI binary, do the following:

  • Edit the enclosed pws-php4cgi.reg file (look into the SAPI dir) to reflect the location of your php.exe. Backslashes should be escaped, for example: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters\Script Map] ".php"="c:\\php\\php.exe" Now merge this registery file into your system; you may do this by double-clicking it.

  • In the PWS Manager, right click on a given directory you want to add PHP support to, and select Properties. Check the 'Execute' checkbox, and confirm.

If you choose the ISAPI module, do the following:

  • Edit the enclosed pws-php4isapi.reg file (look into the SAPI dir) to reflect the location of your php4isapi.dll. Backslashes should be escaped, for example: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters\Script Map] ".php"="c:\\php\\sapi\\php4isapi.dll" Now merge this registery file into your system; you may do this by double-clicking it.

  • In the PWS Manager, right click on a given directory you want to add PHP support to, and select Properties. Check the 'Execute' checkbox, and confirm.

Windows NT/2000/XP and IIS 4 or newer

To install PHP on an NT/2000/XP Server running IIS 4 or newer, follow these instructions. You have two options to set up PHP, using the CGI binary (php.exe) or with the ISAPI module.

In either case, you need to start the Microsoft Management Console (may appear as 'Internet Services Manager', either in your Windows NT 4.0 Option Pack branch or the Control Panel=>Administrative Tools under Windows 2000/XP). Then right click on your Web server node (this will most probably appear as 'Default Web Server'), and select 'Properties'.

If you want to use the CGI binary, do the following:

  • Under 'Home Directory', 'Virtual Directory', or 'Directory', click on the 'Configuration' button, and then enter the App Mappings tab.

  • Click Add, and in the Executable box, type: c:\php\php.exe (assuming that you have unziped PHP in c:\php\).

  • In the Extension box, type the file name extension you want associated with PHP scripts. Leave 'Method exclusions' blank, and check the Script engine checkbox. You may also like to check the 'check that file exists' box - for a small performance penalty, IIS (or PWS) will check that the script file exists and sort out authentication before firing up php. This means that you will get sensible 404 style error messages instead of cgi errors complaining that PHP did not output any data.

    You must start over from the previous step for each extension you want associated with PHP scripts. .php and .phtml are common, although .php3 may be required for legacy applications.

  • Set up the appropriate security. (This is done in Internet Service Manager), and if your NT Server uses NTFS file system, add execute rights for I_USR_ to the directory that contains php.exe.

To use the ISAPI module, do the following:

  • If you don't want to perform HTTP Authentication using PHP, you can (and should) skip this step. Under ISAPI Filters, add a new ISAPI filter. Use PHP as the filter name, and supply a path to the php4isapi.dll.

  • Under 'Home Directory', click on the 'Configuration' button. Add a new entry to the Application Mappings. Use the path to the php4isapi.dll as the Executable, supply .php as the extension, leave Method exclusions blank, and check the Script engine checkbox.

  • Stop IIS completely (NET STOP iisadmin)

  • Start IIS again (NET START w3svc)

Předcházející | Domů | Další
Servers-fhttpd | Nahoru | Servers-Netscape, iPlanet and SunONE


Servers-Netscape, iPlanet and SunONE

This section contains notes and hints specific to Netscape, iPlanet and SunONE webserver installs of PHP, both for Sun Solaris and Windows versions.

From PHP 4.3.3 on you can use PHP scripts with the NSAPI module to generate custom directory listings and error pages. Additional functions for Apache compatibility are also available. For support in current webservers read the note about subrequests.

You can find more information about setting up PHP for the Netscape Enterprise Server (NES) here: http://benoit.noss.free.fr/php/install-php4.html

Installing PHP with NES/iPlanet/SunONE Webserver on Sun Solaris

To build PHP with NES/iPlanet/SunONE webservers, enter the proper install directory for the --with-nsapi=[DIR] option. The default directory is usually /opt/netscape/suitespot/. Please also read /php-xxx-version/sapi/nsapi/nsapi-readme.txt.

  1. Install the following packages from http://www.sunfreeware.com/ or another download site:

    autoconf-2.13
    automake-1.4
    bison-1_25-sol26-sparc-local
    flex-2_5_4a-sol26-sparc-local
    gcc-2_95_2-sol26-sparc-local
    gzip-1.2.4-sol26-sparc-local
    m4-1_4-sol26-sparc-local
    make-3_76_1-sol26-sparc-local
    mysql-3.23.24-beta (if you want mysql support)
    perl-5_005_03-sol26-sparc-local
    tar-1.13 (GNU tar)

  2. Make sure your path includes the proper directories PATH=.:/usr/local/bin:/usr/sbin:/usr/bin:/usr/ccs/bin and make it available to your system export PATH.

  3. gunzip php-x.x.x.tar.gz (if you have a .gz dist, otherwise go to 4).

  4. tar xvf php-x.x.x.tar

  5. Change to your extracted PHP directory: cd ../php-x.x.x

  6. For the following step, make sure /opt/netscape/suitespot/ is where your netscape server is installed. Otherwise, change to the correct path and run:
    ./configure --with-mysql=/usr/local/mysql \
--with-nsapi=/opt/netscape/suitespot/ \
--enable-libgcc

  7. Run make followed by make install.

After performing the base install and reading the appropriate readme file, you may need to perform some additional configuration steps.

Configuration Instructions for NES/iPlanet/SunONE. Firstly you may need to add some paths to the LD_LIBRARY_PATH environment for SunONE to find all the shared libs. This can best done in the start script for your SunONE webserver. Windows users can probably skip this step. The start script is often located in: /path/to/server/https-servername/start. You may also need to edit the configuration files that are located in: /path/to/server/https-servername/config/.

  1. Add the following line to mime.types (you can do that by the administration server):
    type=magnus-internal/x-httpd-php exts=php

  2. Edit magnus.conf (for servers >= 6) or obj.conf (for servers < 6) and add the following, shlib will vary depending on your OS, for Unix it will be something like /opt/netscape/suitespot/bin/libphp4.so. You should place the following lines after mime types init.
    Init fn="load-modules" funcs="php4_init,php4_execute,php4_auth_trans" shlib="/opt/netscape/suitespot/bin/libphp4.so"
Init fn="php4_init" LateInit="yes" errorString="Failed to initialize PHP!" [php_ini="/path/to/php.ini"]
    (PHP >= 4.3.3) The php_ini parameter is optional but with it you can place your php.ini in your webserver config directory.

  3. Configure the default object in obj.conf (for virtual server classes [SunONE 6.0+] in their vserver.obj.conf):
    <Object name="default">
.
.
.
.#NOTE this next line should happen after all 'ObjectType' and before all 'AddLog' lines
Service fn="php4_execute" type="magnus-internal/x-httpd-php" [inikey=value inikey=value ...]
.
.
</Object>
    (PHP >= 4.3.3) As additional parameters you can add some special php.ini-values, for example you can set a docroot="/path/to/docroot" specific to the context php4_execute is called. For boolean ini-keys please use 0/1 as value, not "On","Off",... (this will not work correctly), e.g. zlib.output_compression=1 instead of zlib.output_compression="On"

  4. This is only needed if you want to configure a directory that only consists of PHP scripts (same like a cgi-bin directory):
    <Object name="x-httpd-php">
ObjectType fn="force-type" type="magnus-internal/x-httpd-php"
Service fn=php4_execute [inikey=value inikey=value ...]
</Object>
    After that you can configure a directory in the Administration server and assign it the style x-httpd-php. All files in it will get executed as PHP. This is nice to hide PHP usage by renaming files to .html.

  5. Setup of authentication: PHP authentication cannot be used with any other authentication. ALL AUTHENTICATION IS PASSED TO YOUR PHP SCRIPT. To configure PHP Authentication for the entire server, add the following line to your default object:
    <Object name="default">
AuthTrans fn=php4_auth_trans
.
.
.
</Object>

  6. To use PHP Authentication on a single directory, add the following:
    <Object ppath="d:\path\to\authenticated\dir\*">
AuthTrans fn=php4_auth_trans
</Object>

Poznámka: The stacksize that PHP uses depends on the configuration of the webserver. If you get crashes with very large PHP scripts, it is recommended to raise it with the Admin Server (in the section "MAGNUS EDITOR").

Installing PHP with NES/iPlanet/SunONE on Windows

To Install PHP as CGI (for Netscape Enterprise Server, iPlanet, SunONE, perhaps Fastrack), do the following:

  • Copy php4ts.dll to your systemroot (the directory where you installed Windows)

  • Make a file association from the command line. Type the following two lines:
    assoc .php=PHPScript
ftype PHPScript=c:\php\php.exe %1 %*

  • In the Netscape Enterprise Administration Server create a dummy shellcgi directory and remove it just after (this step creates 5 important lines in obj.conf and allow the web server to handle shellcgi scripts).

  • In the Netscape Enterprise Administration Server create a new mime type (Category: type, Content-Type: magnus-internal/shellcgi, File Suffix:php).

  • Do it for each web server instance you want PHP to run

More details about setting up PHP as a CGI executable can be found here: http://benoit.noss.free.fr/php/install-php.html

To Install PHP as NSAPI (for Netscape Enterprise Server, iPlanet, SunONE, perhaps Fastrack), do the following:

  • Copy php4ts.dll to your systemroot (the directory where you installed Windows)

  • Make a file association from the command line. Type the following two lines:
    assoc .php=PHPScript
ftype PHPScript=c:\php\php.exe %1 %*

  • In the Netscape Enterprise Administration Server create a new mime type (Category: type, Content-Type: magnus-internal/x-httpd-php, File Suffix: php).

  • Edit magnus.conf (for servers >= 6) or obj.conf (for servers < 6) and add the following: You should place the lines after mime types init.
    Init fn="load-modules" funcs="php4_init,php4_execute,php4_auth_trans" shlib="c:/php/sapi/php4nsapi.dll"
Init fn="php4_init" LateInit="yes" errorString="Failed to initialise PHP!" [php_ini="c:/path/to/php.ini"]
    (PHP >= 4.3.3) The php_ini parameter is optional but with it you can place your php.ini in your webserver config directory.

  • Configure the default object in obj.conf (for virtual server classes [SunONE 6.0+] in their vserver.obj.conf): In the <Object name="default"> section, place this line necessarily after all 'ObjectType' and before all 'AddLog' lines:
    Service fn="php4_execute" type="magnus-internal/x-httpd-php" [inikey=value inikey=value ...]
    (PHP >= 4.3.3) As additional parameters you can add some special php.ini-values, for example you can set a docroot="/path/to/docroot" specific to the context php4_execute is called. For boolean ini-keys please use 0/1 as value, not "On","Off",... (this will not work correctly), e.g. zlib.output_compression=1 instead of zlib.output_compression="On"

  • This is only needed if you want to configure a directory that only consists of PHP scripts (same like a cgi-bin directory):
    <Object name="x-httpd-php">
ObjectType fn="force-type" type="magnus-internal/x-httpd-php"
Service fn=php4_execute [inikey=value inikey=value ...]
</Object>
    After that you can configure a directory in the Administration server and assign it the style x-httpd-php. All files in it will get executed as PHP. This is nice to hide PHP usage by renaming files to .html.

  • Restart your web service and apply changes

  • Do it for each web server instance you want PHP to run

Poznámka: More details about setting up PHP as an NSAPI filter can be found here: http://benoit.noss.free.fr/php/install-php4.html

Poznámka: The stacksize that PHP uses depends on the configuration of the webserver. If you get crashes with very large PHP scripts, it is recommended to raise it with the Admin Server (in the section "MAGNUS EDITOR").

CGI environment and recommended modifications in php.ini

Important when writing PHP scripts is the fact that iPlanet/SunONE/Netscape is a multithreaded web server. Because of that all requests are running in the same process space (the space of the webserver itsself) and this space has only one environment. If you want to get CGI variables like PATH_INFO, HTTP_HOST etc. it is not the correct way to try this in the old PHP 3.x way with getenv() or a similar way (register globals to environment, $_ENV). You would only get the environment of the running webserver without any valid CGI variables!

Poznámka: Why are there (invalid) CGI variables in the environment?

Answer: This is because you started the webserver process from the admin server which runs the startup script of the webserver, you wanted to start, as a CGI script (a CGI script inside of the admin server!). This is why the environment of the started webserver has some CGI environment variables in it. You can test this by starting the webserver not from the administration server. Use the Unix command line as root user and start it manually - you will see there are no CGI-like environment variables.

Simply change your scripts to get CGI variables in the correct way for PHP 4.x by using the superglobal $_SERVER. If you have older scripts which use $HTTP_HOST,..., you should turn on register_globals in php.ini and change the variable order to (important: remove "E" from it, because you do not need the environment here):
variables_order = "GPCS"
register_globals = On

Special use for error pages or self-made directory listings (PHP >= 4.3.3)

You can use PHP to generate the error pages for "404 Not Found" or similar. Add the following line to the object in obj.conf for every error page you want to overwrite:
Error fn="php4_execute" code=XXX script="/path/to/script.php" [inikey=value inikey=value...]
where XXX is the HTTP error code. Please delete any other Error directives which could interfere with yours. If you want to place a page for all errors that could exist, leave the code parameter out. Your script can get the HTTP status code with $_SERVER['ERROR_TYPE'].

Another possibility is to generate self-made directory listings. Just create a PHP script which displays a directory listing and replace the corresponding default Service line for type="magnus-internal/directory" in obj.conf with the following:
Service fn="php4_execute" type="magnus-internal/directory" script="/path/to/script.php" [inikey=value inikey=value...]
For both error and directory listing pages the original URI and translated URI are in the variables $_SERVER['PATH_INFO'] and $_SERVER['PATH_TRANSLATED'].

Note about nsapi_virtual() and subrequests (PHP >= 4.3.3)

The NSAPI module now supports the nsapi_virtual() function (alias: virtual()) to make subrequests on the webserver and insert the result in the webpage. The problem is, that this function uses some undocumented features from the NSAPI library.

Under Unix this is not a problem, because the module automatically looks for the needed functions and uses them if available. If not, nsapi_virtual() is disabled.

Under Windows limitations in the DLL handling need the use of a automatic detection of the most recent ns-httpdXX.dll file. This is tested for servers till version 6.1. If a newer version of the SunONE server is used, the detection fails and nsapi_virtual() is disabled.

If this is the case, try the following: Add the following parameter to php4_init in magnus.conf/obj.conf:
Init fn=php4_init ... server_lib="ns-httpdXX.dll"
where XX is the correct DLL version number. To get it, look in the server-root for the correct DLL name. The DLL with the biggest filesize is the right one.

You can check the status by using the phpinfo() function.

Poznámka: But be warned: Support for nsapi_virtual() is EXPERIMENTAL!!!

Předcházející | Domů | Další
Servers-IIS/PWS | Nahoru | Servers-OmniHTTPd Server


Servers-OmniHTTPd Server

This section contains notes and hints specific to OmniHTTPd.

OmniHTTPd 2.0b1 and up for Windows

You need to complete the following steps to make PHP work with OmniHTTPd. This is a CGI executable setup. SAPI is supported by OmniHTTPd, but some tests have shown that it is not so stable to use PHP as an ISAPI module.

Important for CGI users: Read the faq on cgi.force_redirect for important details. This directive needs to be set to 0.

  1. Install OmniHTTPd server.

  2. Right click on the blue OmniHTTPd icon in the system tray and select Properties

  3. Click on Web Server Global Settings

  4. On the 'External' tab, enter: virtual = .php | actual = c:\path-to-php-dir\php.exe, and use the Add button.

  5. On the Mime tab, enter: virtual = wwwserver/stdcgi | actual = .php, and use the Add button.

  6. Click OK

Repeat steps 2 - 6 for each extension you want to associate with PHP.

Poznámka: Some OmniHTTPd packages come with built in PHP support. You can choose at setup time to do a custom setup, and uncheck the PHP component. We recommend you to use the latest PHP binaries. Some OmniHTTPd servers come with PHP 4 beta distributions, so you should choose not to set up the built in support, but install your own. If the server is already on your machine, use the Replace button in Step 4 and 5 to set the new, correct information.

Předcházející | Domů | Další
Servers-Netscape, iPlanet and SunONE | Nahoru | Servers-Oreilly Website Pro


Servers-Oreilly Website Pro

This section contains notes and hints specific to Oreilly Website Pro.

Oreilly Website Pro 2.5 and up for Windows

This list describes how to set up the PHP CGI binary or the ISAPI module to work with Oreilly Website Pro on Windows.

  • Edit the Server Properties and select the tab "Mapping".

  • From the List select "Associations" and enter the desired extension (.php) and the path to the CGI exe (ex. c:\php\php.exe) or the ISAPI DLL file (ex. c:\php\sapi\php4isapi.dll).

  • Select "Content Types" add the same extension (.php) and enter the content type. If you choose the CGI executable file, enter 'wwwserver/shellcgi', if you choose the ISAPI module, enter 'wwwserver/isapi' (both without quotes).

Předcházející | Domů | Další
Servers-OmniHTTPd Server | Nahoru | Servers-Sambar


Servers-Sambar

This section contains notes and hints specific to the Sambar server for Windows.

Sambar Windows

This list describes how to set up the ISAPI module to work with the Sambar server on Windows.

  • Find the file called mappings.ini (in the config directory) in the Sambar install directory.

  • Open mappings.ini and add the following line under [ISAPI]:

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

    (This line assumes that PHP was installed in c:\php.)

  • Now restart the Sambar server for the changes to take effect.

Předcházející | Domů | Další
Servers-Oreilly Website Pro | Nahoru | Servers-Xitami


Servers-Xitami

This section contains notes and hints specific to Xitami.

Xitami for Windows

This list describes how to set up the PHP CGI binary to work with Xitami on Windows.

Important for CGI users: Read the faq on cgi.force_redirect for important details. This directive needs to be set to 0.

  • Make sure the webserver is running, and point your browser to xitamis admin console (usually http://127.0.0.1/admin), and click on Configuration.

  • Navigate to the Filters, and put the extension which PHP should parse (i.e. .php) into the field File extensions (.xxx).

  • In Filter command or script put the path and name of your PHP executable i.e. c:\php\php.exe.

  • Press the 'Save' icon.

  • Restart the server to reflect changes.

Předcházející | Domů | Další
Servers-Sambar | Nahoru | Servers-Other web servers


Servers-Other web servers

PHP can be built to support a large number of web servers. Please see Server-related options for a full list of server-related configure options. The PHP CGI binaries are compatible with almost all webservers supporting the CGI standard.

Předcházející | Domů | Další
Servers-Xitami | Nahoru | Problems?


Problems?

Read the FAQ

Some problems are more common than others. The most common ones are listed in the PHP FAQ, part of this manual.

Other problems

If you are still stuck, someone on the PHP installation mailing list may be able to help you. You should check out the archive first, in case someone already answered someone else who had the same problem as you. The archives are available from the support page on http://www.php.net/support.php. To subscribe to the PHP installation mailing list, send an empty mail to php-install-subscribe@lists.php.net. The mailing list address is php-install@lists.php.net.

If you want to get help on the mailing list, please try to be precise and give the necessary details about your environment (which operating system, what PHP version, what web server, if you are running PHP as CGI or a server module, bezpečný režim, etc...), and preferably enough code to make others able to reproduce and test your problem.

Bug reports

If you think you have found a bug in PHP, please report it. The PHP developers probably don't know about it, and unless you report it, chances are it won't be fixed. You can report bugs using the bug-tracking system at http://bugs.php.net/. Please do not send bug reports in mailing list or personal letters. The bug system is also suitable to submit feature requests.

Read the How to report a bug document before submitting any bug reports!

Předcházející | Domů | Další
Servers-Other web servers | Nahoru | Miscellaneous configure options


Miscellaneous configure options

Below is a partial list of configure options used by the PHP configure scripts when compiling in Unix-like environments. Most configure options are listed in their appropriate locations and not here. For a complete up-to-date list of configure options, run ./configure --help in your PHP source directory after running autoconf (see also the Installation chapter). You may also be interested in reading the GNU configure documentation for information on additional configure options such as --prefix=PREFIX.

Poznámka: These are only used at compile time. If you want to alter PHP's runtime configuration, please see the chapter on Runtime Configuration.

  • Graphics

  • Miscellaneous

  • PHP Behaviour

  • Server

Configure Options in PHP 4

Poznámka: These options are only used in PHP 4 as of PHP 4.1.0. Some are available in older versions of PHP 4, some even in PHP 3, some only in PHP 4.1.0. If you want to compile an older version, some options will probably not be available.

Graphics options

--with-imagick

The imagick extension has been moved to PECL in PEAR and can be found at http://pear.php.net/imagick. Install instructions for PHP 4 can be found on the PEAR site.

Simply doing --with-imagick is only supported in PHP 3 unless you follow the instructions found on the PEAR site.

Misc options

--enable-debug

Compile with debugging symbols.

--with-layout=TYPE

Sets how installed files will be laid out. Type is one of PHP (default) or GNU.

--with-pear=DIR

Install PEAR in DIR (default PREFIX/lib/php).

--without-pear

Do not install PEAR.

--enable-sigchild

Enable PHP's own SIGCHLD handler.

--disable-rpath

Disable passing additional runtime library search paths.

--enable-libgcc

Enable explicitly linking against libgcc.

--enable-php-streams

Include experimental PHP streams. Do not use unless you are testing the code!

--with-zlib-dir=<DIR>

Define the location of zlib install directory.

--enable-trans-sid

Enable transparent session id propagation. Only valid for PHP 4.1.2 or less. From PHP 4.2.0, trans-sid feature is always compiled.

--with-tsrm-pthreads

Use POSIX threads (default).

--enable-shared[=PKGS]

Build shared libraries [default=yes].

--enable-static[=PKGS]

Build static libraries [default=yes].

--enable-fast-install[=PKGS]

Optimize for fast installation [default=yes].

--with-gnu-ld

Assume the C compiler uses GNU ld [default=no].

--disable-libtool-lock

Avoid locking (might break parallel builds).

--with-pic

Try to use only PIC/non-PIC objects [default=use both].

--enable-memory-limit

Compile with memory limit support.

--disable-url-fopen-wrapper

Disable the URL-aware fopen wrapper that allows accessing files via HTTP or FTP.

--enable-versioning

Export only required symbols. See INSTALL for more information.

--with-imsp[=DIR]

Include IMSp support (DIR is IMSP's include dir and libimsp.a dir). PHP 3 only!

--with-mck[=DIR]

Include Cybercash MCK support. DIR is the cybercash mck build directory, defaults to /usr/src/mck-3.2.0.3-linux for help look in extra/cyberlib. PHP 3 only!

--with-mod-dav=DIR

Include DAV support through Apache's mod_dav, DIR is mod_dav's installation directory (Apache module version only!) PHP 3 only!

--enable-debugger

Compile with remote debugging functions. PHP 3 only!

--enable-versioning

Take advantage of versioning and scoping provided by Solaris 2.x and Linux. PHP 3 only!

PHP options

--enable-maintainer-mode

Enable make rules and dependencies not useful (and sometimes confusing) to the casual installer.

--with-config-file-path=PATH

Sets the path in which to look for php.ini, defaults to PREFIX/lib.

--enable-safe-mode

Enable safe mode by default.

--with-exec-dir[=DIR]

Only allow executables in DIR when in safe mode defaults to /usr/local/php/bin.

--enable-magic-quotes

Enable magic quotes by default.

--disable-short-tags

Disable the short-form <? start tag by default.

SAPI options

The following list contains the available SAPI&s (Server Application Programming Interface) for PHP.

--with-aolserver=DIR

Specify path to the installed AOLserver.

--with-apxs[=FILE]

Build shared Apache module. FILE is the optional pathname to the Apache apxs tool; defaults to apxs. Make sure you specify the version of apxs that is actually installed on your system and NOT the one that is in the apache source tarball.

--with-apache[=DIR]

Build a static Apache module. DIR is the top-level Apache build directory, defaults to /usr/local/apache.

--with-mod_charset

Enable transfer tables for mod_charset (Russian Apache).

--with-apxs2[=FILE]

Build shared Apache 2.0 module. FILE is the optional pathname to the Apache apxs tool; defaults to apxs.

--with-caudium=DIR

Build PHP as a Pike module for use with Caudium. DIR is the Caudium server dir, with the default value /usr/local/caudium/server.

--disable-cli

Available with PHP 4.3.0. Disable building the CLI version of PHP (this forces --without-pear). More information is available in the section about Using PHP from the command line.

--enable-embed[=TYPE]

Enable building of the embedded SAPI library. TYPE is either shared or static, which defaults to shared. Available with PHP 4.3.0.

--with-fhttpd[=DIR]

Build fhttpd module. DIR is the fhttpd sources directory, defaults to /usr/local/src/fhttpd. No longer available as of PHP 4.3.0.

--with-isapi=DIR

Build PHP as an ISAPI module for use with Zeus.

--with-nsapi=DIR

Specify path to the installed Netscape/iPlanet/SunONE Webserver.

--with-phttpd=DIR

No information yet.

--with-pi3web=DIR

Build PHP as a module for use with Pi3Web.

--with-roxen=DIR

Build PHP as a Pike module. DIR is the base Roxen directory, normally /usr/local/roxen/server.

--enable-roxen-zts

Build the Roxen module using Zend Thread Safety.

--with-servlet[=DIR]

Include servlet support. DIR is the base install directory for the JSDK. This SAPI requires the java extension must be built as a shared dl.

--with-thttpd=SRCDIR

Build PHP as thttpd module.

--with-tux=MODULEDIR

Build PHP as a TUX module (Linux only).

--with-webjames=SRCDIR

Build PHP as a WebJames module (RISC OS only)

--disable-cgi

Disable building CGI version of PHP. Available with PHP 4.3.0.

--enable-force-cgi-redirect

Enable the security check for internal server redirects. You should use this if you are running the CGI version with Apache.

--enable-discard-path

If this is enabled, the PHP CGI binary can safely be placed outside of the web tree and people will not be able to circumvent .htaccess security.

--with-fastcgi

Build PHP as FastCGI application. No longer available as of PHP 4.3.0, instead you should use --enable-fastcgi.

--enable-fastcgi

If this is enabled, the CGI module will be built with support for FastCGI also. Available since PHP 4.3.0

--disable-path-info-check

If this is disabled, paths such as /info.php/test?a=b will fail to work. Available since PHP 4.3.0. For more information see the Apache Manual.

Předcházející | Domů | Další
Problems? | Nahoru | Runtime Configuration


Runtime Configuration

Manuál PHP
Předcházející Další

Kapitola 4. Runtime Configuration

Obsah
The configuration file
How to change configuration settings
Miscellaneous configuration directives

The configuration file

The configuration file (called php3.ini in PHP 3.0, and simply php.ini as of PHP 4.0) is read when PHP starts up. For the server module versions of PHP, this happens only once when the web server is started. For the CGI and CLI version, it happens on every invocation.

The default location of php.ini is a compile time option (see the FAQ entry), but can be changed for the CGI and CLI version with the -c command line switch, see the chapter about using PHP from the command line. You can also use the environment variable PHPRC for an additional path to search for a php.ini file.

Poznámka: The Apache web server changes the directory to root at startup causing PHP to attempt to read php.ini from the root filesystem if it exists.

Not every PHP directive is documented below. For a list of all directives, please read your well commented php.ini file. You may want to view the latest php.ini here from CVS.

Poznámka: The default value for the PHP directive register_globals changed from on to off in PHP 4.2.0.

Příklad 4-1. php.ini example

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

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

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

Předcházející | Domů | Další
Miscellaneous configure options | Nahoru | How to change configuration settings


How to change configuration settings

Running PHP as Apache module

When using PHP as an Apache module, you can also change the configuration settings using directives in Apache configuration files (e.g. httpd.conf) and .htaccess files (You will need "AllowOverride Options" or "AllowOverride All" privileges)

With PHP 4.0, there are several Apache directives that allow you to change the PHP configuration from within the Apache configuration files. For a listing of which directives are PHP_INI_ALL, PHP_INI_PERDIR, or PHP_INI_SYSTEM, have a look at the table found within the ini_set() documentation.

Poznámka: With PHP 3.0, there are Apache directives that correspond to each configuration setting in the php3.ini name, except the name is prefixed by "php3_".

php_value name value

Sets the value of the specified directive. Can be used only with PHP_INI_ALL and PHP_INI_PERDIR type directives. To clear a previously set value use none as the value.

Poznámka: Don't use php_value to set boolean values. php_flag (see below) should be used instead.

php_flag name on|off

Used to set a Boolean configuration directive. Can be used only with PHP_INI_ALL and PHP_INI_PERDIR type directives.

php_admin_value name value

Sets the value of the specified directive. This can NOT be used in .htaccess files. Any directive type set with php_admin_value can not be overridden by .htaccess or virtualhost directives. To clear a previously set value use none as the value.

php_admin_flag name on|off

Used to set a Boolean configuration directive. This can NOT be used in .htaccess files. Any directive type set with php_admin_flag can not be overridden by .htaccess or virtualhost directives.

Příklad 4-2. Apache configuration example

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

Výstraha

PHP constants do not exist outside of PHP. For example, in httpd.conf you can not use PHP constants such as E_ALL or E_NOTICE to set the error_reporting directive as they will have no meaning and will evaluate to 0. Use the associated bitmask values instead. These constants can be used in php.ini

Changing PHP configuration via the Windows registry

When running PHP on Windows, the configuration values can be modified on per-directory basis using the Windows registry. The configuration values are stored in the registry key HKLM\SOFTWARE\PHP\Per Directory Values, in the sub-keys corresponding to the path names. For example, configuration values for the directory c:\inetpub\wwwroot would be stored in the key HKLM\SOFTWARE\PHP\Per Directory Values\c\inetpub\wwwroot. The settings for the directory would be active for any script running from this directory or any subdirectory of it. The values under the key should have the name of PHP configuration directive and the string value. PHP constants in the values would not be parsed.

Other interfaces to PHP

Regardless of the interface to PHP you can change certain values at runtime of your scripts through ini_set(). The following table provides an overview at which level a directive can be set/changed.

Tabulka 4-1. Definition of PHP_INI_* constants

Constant | Value | Meaning
PHP_INI_USER | 1 | Entry can be set in user scripts
PHP_INI_PERDIR | 2 | Entry can be set in php.ini, .htaccess or httpd.conf
PHP_INI_SYSTEM | 4 | Entry can be set in php.ini or httpd.conf
PHP_INI_ALL | 7 | Entry can be set anywhere

You can view the settings of the configuration values in the output of phpinfo(). You can also access the values of individual configuration directives using ini_get() or get_cfg_var().

Předcházející | Domů | Další
Runtime Configuration | Nahoru | Miscellaneous configuration directives


Miscellaneous configuration directives

This is not a complete list of PHP directives. Directives are listed in their appropriate locations so for example information on session directives is located in the sessions chapter.

Httpd Options

Tabulka 4-2. Httpd Options

Name | Default | Changeable
async_send | "0" | PHP_INI_ALL

Language Options

Tabulka 4-3. Language and Misc Configuration Options

Name | Default | Changeable
short_open_tag | On | PHP_INI_SYSTEM|PHP_INI_PERDIR
asp_tags | Off | PHP_INI_SYSTEM|PHP_INI_PERDIR
precision | "14" | PHP_INI_ALL
y2k_compliance | Off | PHP_INI_ALL
allow_call_time_pass_reference | On | PHP_INI_SYSTEM|PHP_INI_PERDIR
expose_php | On | PHP_INI_SYSTEM

Zde je stručné vysvětlení konfiguračních direktiv.

short_open_tag boolean

Tells whether the short form (<? ?>) of PHP's open tag should be allowed. If you want to use PHP in combination with XML, you can disable this option in order to use <?xml ?> inline. Otherwise, you can print it with PHP, for example: <?php echo '<?xml version="1.0"'; ?>. Also if disabled, you must use the long form of the PHP open tag (<?php ?>).

Poznámka: This directive also affects the shorthand <?=, which is identical to <? echo. Use of this shortcut requires short_open_tag to be on.

asp_tags boolean

Enables the use of ASP-like <% %> tags in addition to the usual <?php ?> tags. This includes the variable-value printing shorthand of <%= $value %>. For more information, see Escaping from HTML.

Poznámka: Support for ASP-style tags was added in 3.0.4.

precision integer

The number of significant digits displayed in floating point numbers.

y2k_compliance boolean

Enforce year 2000 compliance (will cause problems with non-compliant browsers)

allow_call_time_pass_reference boolean

Whether to enable the ability to force arguments to be passed by reference at function call time. This method is deprecated and is likely to be unsupported in future versions of PHP/Zend. The encouraged method of specifying which arguments should be passed by reference is in the function declaration. You're encouraged to try and turn this option Off and make sure your scripts work properly with it in order to ensure they will work with future versions of the language (you will receive a warning each time you use this feature, and the argument will be passed by value instead of by reference).

See also References Explained.

expose_php boolean

Decides whether PHP may expose the fact that it is installed on the server (e.g. by adding its signature to the Web server header). It is no security threat in any way, but it makes it possible to determine whether you use PHP on your server or not.

Resource Limits

Tabulka 4-4. Resource Limits

Name | Default | Changeable
memory_limit | "8M" | PHP_INI_ALL

Zde je stručné vysvětlení konfiguračních direktiv.

memory_limit integer

This sets the maximum amount of memory in bytes that a script is allowed to allocate. This helps prevent poorly written scripts for eating up all available memory on a server. In order to use this directive you must have enabled it at compile time. So, your configure line would have included: --enable-memory-limit. Note that you have to set it to -1 if you don't want any limit for your memory.

As of PHP 4.3.2, and when memory_limit is enabled, the PHP function memory_get_usage() is made available.

See also: max_execution_time.

Data Handling

Tabulka 4-5. Data Handling Configuration Options

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

Zde je stručné vysvětlení konfiguračních direktiv.

track_vars boolean

If enabled, then Environment, GET, POST, Cookie, and Server variables can be found in the global associative arrays $_ENV, $_GET, $_POST, $_COOKIE, and $_SERVER.

Note that as of PHP 4.0.3, track_vars is always turned on.

arg_separator.output string

The separator used in PHP generated URLs to separate arguments.

arg_separator.input string

List of separator(s) used by PHP to parse input URLs into variables.

Poznámka: Every character in this directive is considered as separator!

variables_order string

Set the order of the EGPCS (Environment, GET, POST, Cookie, Server) variable parsing. The default setting of this directive is "EGPCS". Setting this to "GP", for example, will cause PHP to completely ignore environment variables, cookies and server variables, and to overwrite any GET method variables with POST-method variables of the same name.

See also register_globals.

register_globals boolean

Tells whether or not to register the EGPCS (Environment, GET, POST, Cookie, Server) variables as global variables. For example; if register_globals = on, the URL http://www.example.com/test.php?id=3 will produce $id. Or, $DOCUMENT_ROOT from $_SERVER['DOCUMENT_ROOT']. You may want to turn this off if you don't want to clutter your scripts' global scope with user data. As of PHP 4.2.0, this directive defaults to off. It's preferred to go through PHP Predefined Variables instead, such as the superglobals: $_ENV, $_GET, $_POST, $_COOKIE, and $_SERVER. Please read the security chapter on Using register_globals for related information.

Please note that register_globals cannot be set at runtime (ini_set()). Although, you can use .htaccess if your host allows it as described above. An example .htaccess entry: php_flag register_globals on.

Poznámka: register_globals is affected by the variables_order directive.

register_argc_argv boolean

Tells PHP whether to declare the argv & argc variables (that would contain the GET information).

See also command line. Also, this directive became available in PHP 4.0.0 and was always "on" before that.

register_long_arrays boolean

Tells PHP whether or not to register the deprecated long $HTTP_*_VARS type predefined variables. When On (default), long predefined PHP variables like $HTTP_GET_VARS will be defined. If you're not using them, it's recommended to turn them off, for performance reasons. Instead, use the superglobal arrays, like $_GET.

This directive became available in PHP 5.0.0.

post_max_size integer

Sets max size of post data allowed. This setting also affects file upload. To upload large files, this value must be larger than upload_max_filesize.

If memory limit is enabled by your configure script, memory_limit also affects file uploading. Generally speaking, memory_limit should be larger than post_max_size.

gpc_order string

Set the order of GET/POST/COOKIE variable parsing. The default setting of this directive is "GPC". Setting this to "GP", for example, will cause PHP to completely ignore cookies and to overwrite any GET method variables with POST-method variables of the same name.

Poznámka: This option is not available in PHP 4. Use variables_order instead.

auto_prepend_file string

Specifies the name of a file that is automatically parsed before the main file. The file is included as if it was called with the include() function, so include_path is used.

The special value none disables auto-prepending.

auto_append_file string

Specifies the name of a file that is automatically parsed after the main file. The file is included as if it was called with the include() function, so include_path is used.

The special value none disables auto-appending.

Poznámka: If the script is terminated with exit(), auto-append will not occur.

default_mimetype string

default_charset string

As of 4.0b4, PHP always outputs a character encoding by default in the Content-type: header. To disable sending of the charset, simply set it to be empty.

always_populate_raw_post_data boolean

Always populate the $HTTP_RAW_POST_DATA variable.

allow_webdav_methods boolean

Allow handling of WebDAV http requests within PHP scripts (eg. PROPFIND, PROPPATCH, MOVE, COPY, etc..) If you want to get the post data of those requests, you have to set always_populate_raw_post_data as well.

See also: magic_quotes_gpc, magic-quotes-runtime, and magic_quotes_sybase.

Paths and Directories

Tabulka 4-6. Paths and Directories Configuration Options

Name | Default | Changeable
include_path | PHP_INCLUDE_PATH | PHP_INI_ALL
doc_root | PHP_INCLUDE_PATH | PHP_INI_SYSTEM
user_dir | NULL | PHP_INI_SYSTEM
extension_dir | PHP_EXTENSION_DIR | PHP_INI_SYSTEM
cgi.fix_pathinfo | "0" | PHP_INI_SYSTEM
cgi.force_redirect | "1" | PHP_INI_SYSTEM
cgi.redirect_status_env | "" | PHP_INI_SYSTEM
fastcgi.impersonate | "0" | PHP_INI_SYSTEM
cgi.rfc2616_headers | "0" | PHP_INI_SYSTEM

Zde je stručné vysvětlení konfiguračních direktiv.

include_path string

Specifies a list of directories where the require(), include() and fopen_with_path() functions look for files. The format is like the system's PATH environment variable: a list of directories separated with a colon in Unix or semicolon in Windows.

Příklad 4-3. Unix include_path

include_path=".:/php/includes"

Příklad 4-4. Windows include_path

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

Using a . in the include path allows for relative includes as it means the current directory.

doc_root string

PHP's "root directory" on the server. Only used if non-empty. If PHP is configured with bezpečný režim, no files outside this directory are served. If PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root if you are running PHP as a CGI under any web server (other than IIS) The alternative is to use the cgi.force_redirect configuration below.

user_dir string

The base name of the directory used on a user's home directory for PHP files, for example public_html.

extension_dir string

In what directory PHP should look for dynamically loadable extensions. See also: enable_dl, and dl().

extension string

Which dynamically loadable extensions to load when PHP starts up.

cgi.fix_pathinfo boolean

Provides real PATH_INFO/PATH_TRANSLATED support for CGI. PHP's previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting this to 1 will cause PHP CGI to fix it's paths to conform to the spec. A setting of zero causes PHP to behave as before. Default is zero. You should fix your scripts to use SCRIPT_FILENAME rather than PATH_TRANSLATED.

cgi.force_redirect boolean

cgi.force_redirect is necessary to provide security running PHP as a CGI under most web servers. Left undefined, PHP turns this on by default. You can turn it off AT YOUR OWN RISK.

Poznámka: Windows Users: You CAN safely turn this off for IIS, in fact, you MUST. To get OmniHTTPD or Xitami to work you MUST turn it off.

cgi.redirect_status_env string

If cgi.force_redirect is turned on, and you are not running under Apache or Netscape (iPlanet) web servers, you MAY need to set an environment variable name that PHP will look for to know it is OK to continue execution.

Poznámka: Setting this variable MAY cause security issues, KNOW WHAT YOU ARE DOING FIRST.

fastcgi.impersonate string

FastCGI under IIS (on WINNT based OS) supports the ability to impersonate security tokens of the calling client. This allows IIS to define the security context that the request runs under. mod_fastcgi under Apache does not currently support this feature (03/17/2002) Set to 1 if running under IIS. Default is zero.

cgi.rfc2616_headers int

Tells PHP what type of headers to use when sending HTTP response code. If it's set 0, PHP sends a Status: header that is supported by Apache and other web servers. When this option is set to 1, PHP will send RFC 2616 compliant headers. Leave it set to 0 unless you know what you're doing.

File Uploads

Tabulka 4-7. File Uploads Configuration Options

Name | Default | Changeable
file_uploads | "1" | PHP_INI_SYSTEM
upload_tmp_dir | NULL | PHP_INI_SYSTEM
upload_max_filesize | "2M" | PHP_INI_SYSTEM|PHP_INI_PERDIR

Zde je stručné vysvětlení konfiguračních direktiv.

file_uploads boolean

Whether or not to allow HTTP file uploads. See also the upload_max_filesize, upload_tmp_dir, and post_max_size directives.

upload_tmp_dir string

The temporary directory used for storing files when doing file upload. Must be writable by whatever user PHP is running as. If not specified PHP will use the system's default.

upload_max_filesize integer

The maximum size of an uploaded file.

General SQL

Tabulka 4-8. General SQL Configuration Options

Name | Default | Changeable
sql.safe_mode | "0" | PHP_INI_SYSTEM

Zde je stručné vysvětlení konfiguračních direktiv.

sql.safe_mode boolean

Debugger Configuration Directives

Výstraha

Only PHP 3 implements a default debugger, for more information see E.

debugger.host string

DNS name or IP address of host used by the debugger.

debugger.port string

Port number used by the debugger.

debugger.enabled boolean

Whether the debugger is enabled.

Předcházející | Domů | Další
How to change configuration settings | Nahoru | Reference jazyka


Reference jazyka

Manuál PHP
Předcházející Další

II. Reference jazyka

Obsah
5. Základní syntaxe
6. Types
7. Proměnné
8. Konstanty
9. Výrazy
10. Operátory
11. Řídicí struktury
12. Funkce
13. Classes and Objects
14. Vysvětlení referencí (odkazů)

Předcházející | Domů | Další
Miscellaneous configuration directives |  | Základní syntaxe


Základní syntaxe

Manuál PHP
Předcházející Další

Kapitola 5. Základní syntaxe

Obsah
Opuštění HTML
Oddělování instrukcí
Komentáře

Opuštění HTML

Jsou čtyři způsoby jak opustit HTML a vstoupit to "PHP módu":

Příklad 5-1. Způsoby opuštění HTML

1.  <? echo ("toto je nejjednodušší SGML zpracovatelská instrukce\n"); ?>

2.  <?php echo("pokud chcete zpracovávat XHTML nebo XML dokumenty, používejte toto\n"); ?>

3.  <script language="php">
        echo ("některé editory (například FrontPage) nemají zpracovatelské instrukce v lásce");
    </script>

4.  <% echo ("případně můžete používat ASP tagy"); %>
    <%= $variable; # toto je zkratka za "<%echo .." %>

První způsob je dostupný pouze, pokud jsou povoleny krátké tagy. To se dá udělat povolením konfigurační direktivy short_open_tag v konfiguračním souboru PHP, nebo kompilací PHP s configure volbou --enable-short-tags.

Obecně preferovanou metodou je druhý způsob, protože umožňuje snadnou implementaci dalšího generování XHTML z PHP.

Čtvrtý způsob je dostupný, pouze pokud byly povoleny ASP tagy pomocí konfigurační direktivy asp_tags.

Poznámka: Podpora ASP tagů byla přidána v 3.0.4.

Případná bezprostředně následující sekvence konce řádku je součástí uzavírajícího tagu.

Předcházející | Domů | Další
Reference jazyka | Nahoru | Oddělování instrukcí


Oddělování instrukcí

Instrukce se oddělují stejně jako v C nebo Perlu - ukončujte každý výraz středníkem.

Uzavírající tag (?>) také implikuje konec výrazu, takže následující ukázky jsou ekvivalentní:

<?php
    echo "Toto je test";
?>

<?php echo "Toto je test" ?>

Předcházející | Domů | Další
Základní syntaxe | Nahoru | Komentáře


Komentáře

PHP podporuje komentářové notace jazyků 'C', 'C++' a Unixového shellu. Například:

<?php
    echo "Toto je test"; // Toto je jednořádkový komentář typu C++
    /* Toto je víceřádkový komentář
       a ještě jeden komentář */
    echo "Toto je další test";
    echo "Poslední Test"; # Toto je komentář shellového typu
?>

Jednořádkové typy komentářů ve skutečnosti komentují do konce řádku nebo současného bloku PHP kódu, podle toho, co se vyskytuje dřív.

<h1>Toto je  <?php # echo "malý";?> příklad.</h1>
<p>Hlavička na předchozím řádku bude 'Toto je příklad'.

Měli byste si dát pozor na vnořování komentářů typu 'C++', ke kterému může dojít při zakomentování velkých bloků.

<?php
 /*
    echo "Toto je test"; /* Tento komentář způsobí problém */
 */
?>

Předcházející | Domů | Další
Oddělování instrukcí | Nahoru | Types


Types

Manuál PHP
Předcházející Další

Kapitola 6. Types

Obsah
Introduction
Booleans
Integers
Floating point numbers
Strings
Arrays
Objects
Resource
NULL
Pseudo-types used in this documentation
Type Juggling

Introduction

PHP supports eight primitive types.

Four scalar types:

  • boolean

  • integer

  • float (floating-point number, aka 'double')

  • string

Two compound types:

  • array

  • object

And finally two special types:

  • resource

  • NULL

This manual also introduces some pseudo-types for readability reasons:

  • mixed

  • number

  • callback

You may also find some references to the type "double". Consider double the same as float, the two names exist only for historic reasons.

The type of a variable is usually not set by the programmer; rather, it is decided at runtime by PHP depending on the context in which that variable is used.

Poznámka: If you want to check out the type and value of a certain expression, use var_dump().

Poznámka: If you simply want a human-readable representation of the type for debugging, use gettype(). To check for a certain type, do not use gettype(), but use the is_type functions. Some examples:

<?php
$bool = TRUE;   // a boolean
$str  = "foo";  // a string
$int  = 12;     // an integer

echo gettype($bool); // prints out "boolean"
echo gettype($str);  // prints out "string"

// If this is an integer, increment it by four
if (is_int($int)) {
    $int += 4;
}

// If $bool is a string, print it out
// (does not print out anything)
if (is_string($bool)) {
    echo "String: $bool";
}
?>

If you would like to force a variable to be converted to a certain type, you may either cast the variable or use the settype() function on it.

Note that a variable may be evaluated with different values in certain situations, depending on what type it is at the time. For more information, see the section on Type Juggling. Also, you may be interested in viewing the type comparison tables, as they show examples of various type related comparisons.

Předcházející | Domů | Další
Komentáře | Nahoru | Booleans


Booleans

This is the easiest type. A boolean expresses a truth value. It can be either TRUE or FALSE.

Poznámka: The boolean type was introduced in PHP 4.

Syntax

To specify a boolean literal, use either the keyword TRUE or FALSE. Both are case-insensitive.

<?php
$foo = True; // assign the value TRUE to $foo
?>

Usually you use some kind of operator which returns a boolean value, and then pass it on to a control structure.

<?php
// == is an operator which test
// equality and returns a boolean
if ($action == "show_version") {
    echo "The version is 1.23";
}

// this is not necessary...
if ($show_separators == TRUE) {
    echo "<hr>\n";
}

// ...because you can simply type
if ($show_separators) {
    echo "<hr>\n";
}
?>

Converting to boolean

To explicitly convert a value to boolean, use either the (bool) or the (boolean) cast. However, in most cases you do not need to use the cast, since a value will be automatically converted if an operator, function or control structure requires a boolean argument.

See also Type Juggling.

When converting to boolean, the following values are considered FALSE:

  • the boolean FALSE itself

  • the integer 0 (zero)

  • the float 0.0 (zero)

  • the empty string, and the string "0"

  • an array with zero elements

  • an object with zero member variables

  • the special type NULL (including unset variables)

Every other value is considered TRUE (including any resource).

Varování

-1 is considered TRUE, like any other non-zero (whether negative or positive) number!

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

Předcházející | Domů | Další
Types | Nahoru | Integers


Integers

An integer is a number of the set Z = {..., -2, -1, 0, 1, 2, ...}.

See also: Arbitrary length integer / GMP, Floating point numbers, and Arbitrary precision / BCMath

Syntax

Integers can be specified in decimal (10-based), hexadecimal (16-based) or octal (8-based) notation, optionally preceded by a sign (- or +).

If you use the octal notation, you must precede the number with a 0 (zero), to use hexadecimal notation precede the number with 0x.

Příklad 6-1. Integer literals

<?php
$a = 1234; # decimal number
$a = -123; # a negative number
$a = 0123; # octal number (equivalent to 83 decimal)
$a = 0x1A; # hexadecimal number (equivalent to 26 decimal)
?>
Formally the possible structure for integer literals is:

decimal     : [1-9][0-9]*
            | 0

hexadecimal : 0[xX][0-9a-fA-F]+

octal       : 0[0-7]+

integer     : [+-]?decimal
            | [+-]?hexadecimal
            | [+-]?octal

The size of an integer is platform-dependent, although a maximum value of about two billion is the usual value (that's 32 bits signed). PHP does not support unsigned integers.

Integer overflow

If you specify a number beyond the bounds of the integer type, it will be interpreted as a float instead. Also, if you perform an operation that results in a number beyond the bounds of the integer type, a float will be returned instead.

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

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

// this goes also for hexadecimal specified integers:
var_dump( 0x80000000 );
// output: float(2147483648)

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

Varování

Unfortunately, there was a bug in PHP so that this does not always work correctly when there are negative numbers involved. For example: when you do -50000 * $million, the result will be -429496728. However, when both operands are positive there is no problem.

This is solved in PHP 4.1.0.

There is no integer division operator in PHP. 1/2 yields the float 0.5. You can cast the value to an integer to always round it downwards, or you can use the round() function.

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

Converting to integer

To explicitly convert a value to integer, use either the (int) or the (integer) cast. However, in most cases you do not need to use the cast, since a value will be automatically converted if an operator, function or control structure requires an integer argument. You can also convert a value to integer with the function intval().

See also type-juggling.

From booleans

FALSE will yield 0 (zero), and TRUE will yield 1 (one).

From floating point numbers

When converting from float to integer, the number will be rounded towards zero.

If the float is beyond the boundaries of integer (usually +/- 2.15e+9 = 2^31), the result is undefined, since the float hasn't got enough precision to give an exact integer result. No warning, not even a notice will be issued in this case!

Varování

Never cast an unknown fraction to integer, as this can sometimes lead to unexpected results.

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

See for more information the warning about float-precision.

From strings

See String conversion to numbers

From other types

Výstraha

Behaviour of converting to integer is undefined for other types. Currently, the behaviour is the same as if the value was first converted to boolean. However, do not rely on this behaviour, as it can change without notice.

Předcházející | Domů | Další
Booleans | Nahoru | Floating point numbers


Floating point numbers

Floating point numbers (AKA "floats", "doubles" or "real numbers") can be specified using any of the following syntaxes:

<?php
$a = 1.234;
$b = 1.2e3;
$c = 7E-10;
?>

Formally:

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

The size of a float is platform-dependent, although a maximum of ~1.8e308 with a precision of roughly 14 decimal digits is a common value (that's 64 bit IEEE format).

Floating point precision

It is quite usual that simple decimal fractions like 0.1 or 0.7 cannot be converted into their internal binary counterparts without a little loss of precision. This can lead to confusing results: for example, floor((0.1+0.7)*10) will usually return 7 instead of the expected 8 as the result of the internal representation really being something like 7.9999999999....

This is related to the fact that it is impossible to exactly express some fractions in decimal notation with a finite number of digits. For instance, 1/3 in decimal form becomes 0.3333333. . ..

So never trust floating number results to the last digit and never compare floating point numbers for equality. If you really need higher precision, you should use the arbitrary precision math functions or gmp functions instead.

Converting to float

For information on when and how strings are converted to floats, see the section titled String conversion to numbers. For values of other types, the conversion is the same as if the value would have been converted to integer and then to float. See the Converting to integer section for more information.

Předcházející | Domů | Další
Integers | Nahoru | Strings


Strings

A string is series of characters. In PHP, a character is the same as a byte, that is, there are exactly 256 different characters possible. This also implies that PHP has no native support of Unicode. See utf8_encode() and utf8_decode() for some Unicode support.

Poznámka: It is no problem for a string to become very large. There is no practical bound to the size of strings imposed by PHP, so there is no reason at all to worry about long strings.

Syntax

A string literal can be specified in three different ways.

  • single quoted

  • double quoted

  • heredoc syntax

Single quoted

The easiest way to specify a simple string is to enclose it in single quotes (the character ').

To specify a literal single quote, you will need to escape it with a backslash (\), like in many other languages. If a backslash needs to occur before a single quote or at the end of the string, you need to double it. Note that if you try to escape any other character, the backslash will also be printed! So usually there is no need to escape the backslash itself.

Poznámka: In PHP 3, a warning will be issued at the E_NOTICE level when this happens.

Poznámka: Unlike the two other syntaxes, variables and escape sequences for special characters will not be expanded when they occur in single quoted strings.

<?php
echo 'this is a simple string';

echo 'You can also have embedded newlines in
strings this way as it is
okay to do';

// Outputs: Arnold once said: "I'll be back"
echo 'Arnold once said: "I\'ll be back"';

// Outputs: You deleted C:\*.*?
echo 'You deleted C:\\*.*?';

// Outputs: You deleted C:\*.*?
echo 'You deleted C:\*.*?';

// Outputs: This will not expand: \n a newline
echo 'This will not expand: \n a newline';

// Outputs: Variables do not $expand $either
echo 'Variables do not $expand $either';
?>

Double quoted

If the string is enclosed in double-quotes ("), PHP understands more escape sequences for special characters:

Tabulka 6-1. Escaped characters

sequence | meaning
\n | linefeed (LF or 0x0A (10) in ASCII)
\r | carriage return (CR or 0x0D (13) in ASCII)
\t | horizontal tab (HT or 0x09 (9) in ASCII)
\\ | backslash
\$ | dollar sign
\" | double-quote
\[0-7]{1,3} | the sequence of characters matching the regular expression is a character in octal notation
\x[0-9A-Fa-f]{1,2} | the sequence of characters matching the regular expression is a character in hexadecimal notation

Again, if you try to escape any other character, the backslash will be printed too!

But the most important feature of double-quoted strings is the fact that variable names will be expanded. See string parsing for details.

Heredoc

Another way to delimit strings is by using heredoc syntax ("<<<"). One should provide an identifier after <<<, then the string, and then the same identifier to close the quotation.

The closing identifier must begin in the first column of the line. Also, the identifier used must follow the same naming rules as any other label in PHP: it must contain only alphanumeric characters and underscores, and must start with a non-digit character or underscore.

Varování

It is very important to note that the line with the closing identifier contains no other characters, except possibly a semicolon (;). That means especially that the identifier may not be indented, and there may not be any spaces or tabs after or before the semicolon. It's also important to realize that the first character before the closing identifier must be a newline as defined by your operating system. This is \r on Macintosh for example.

If this rule is broken and the closing identifier is not "clean" then it's not considered to be a closing identifier and PHP will continue looking for one. If in this case a proper closing identifier is not found then a parse error will result with the line number being at the end of the script.

Heredoc text behaves just like a double-quoted string, without the double-quotes. This means that you do not need to escape quotes in your here docs, but you can still use the escape codes listed above. Variables are expanded, but the same care must be taken when expressing complex variables inside a here doc as with strings.

Příklad 6-2. Heredoc string quoting example

<?php
$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;

/* More complex example, with variables. */
class foo
{
    var $foo;
    var $bar;

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

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

echo <<<EOT
My name is "$name". I am printing some $foo->foo.
Now, I am printing some {$foo->bar[1]}.
This should print a capital 'A': \x41
EOT;
?>

Poznámka: Heredoc support was added in PHP 4.

Variable parsing

When a string is specified in double quotes or with heredoc, variables are parsed within it.

There are two types of syntax: a simple one and a complex one. The simple syntax is the most common and convenient. It provides a way to parse a variable, an array value, or an object property.

The complex syntax was introduced in PHP 4, and can be recognised by the curly braces surrounding the expression.

Simple syntax

If a dollar sign ($) is encountered, the parser will greedily take as many tokens as possible to form a valid variable name. Enclose the variable name in curly braces if you want to explicitly specify the end of the name.

<?php
$beer = 'Heineken';
echo "$beer's taste is great"; // works, "'" is an invalid character for varnames
echo "He drank some $beers";   // won't work, 's' is a valid character for varnames
echo "He drank some ${beer}s"; // works
echo "He drank some {$beer}s"; // works
?>

Similarly, you can also have an array index or an object property parsed. With array indices, the closing square bracket (]) marks the end of the index. For object properties the same rules apply as to simple variables, though with object properties there doesn't exist a trick like the one with variables.

<?php
// These examples are specific to using arrays inside of strings.
// When outside of a string, always quote your array string keys
// and do not use {braces} when outside of strings either.

// Let's show all errors
error_reporting(E_ALL);

$fruits = array('strawberry' => 'red', 'banana' => 'yellow');

// Works but note that this works differently outside string-quotes
echo "A banana is $fruits[banana].";

// Works
echo "A banana is {$fruits['banana']}.";

// Works but PHP looks for a constant named banana first
// as described below.
echo "A banana is {$fruits[banana]}.";

// Won't work, use braces.  This results in a parse error.
echo "A banana is $fruits['banana'].";

// Works
echo "A banana is " . $fruits['banana'] . ".";

// Works
echo "This square is $square->width meters broad.";

// Won't work. For a solution, see the complex syntax.
echo "This square is $square->width00 centimeters broad.";
?>

For anything more complex, you should use the complex syntax.

Complex (curly) syntax

This isn't called complex because the syntax is complex, but because you can include complex expressions this way.

In fact, you can include any value that is in the namespace in strings with this syntax. You simply write the expression the same way as you would outside the string, and then include it in { and }. Since you can't escape '{', this syntax will only be recognised when the $ is immediately following the {. (Use "{\$" or "\{$" to get a literal "{$"). Some examples to make it clear:

<?php
// Let's show all errors
error_reporting(E_ALL);

$great = 'fantastic';

// Won't work, outputs: This is { fantastic}
echo "This is { $great}";

// Works, outputs: This is fantastic
echo "This is {$great}";
echo "This is ${great}";

// Works
echo "This square is {$square->width}00 centimeters broad.";

// Works
echo "This works: {$arr[4][3]}";

// This is wrong for the same reason as $foo[bar] is wrong
// outside a string.  In other words, it will still work but
// because PHP first looks for a constant named foo, it will
// throw an error of level E_NOTICE (undefined constant).
echo "This is wrong: {$arr[foo][3]}";

// Works.  When using multi-dimensional arrays, always use
// braces around arrays when inside of strings
echo "This works: {$arr['foo'][3]}";

// Works.
echo "This works: " . $arr['foo'][3];

echo "You can even write {$obj->values[3]->name}";

echo "This is the value of the var named $name: {${$name}}";
?>

String access and modification by character

Characters within strings may be accessed and modified by specifying the zero-based offset of the desired character after the string in curly braces.

Poznámka: For backwards compatibility, you can still use array-brackets for the same purpose. However, this syntax is deprecated as of PHP 4.

Příklad 6-3. Some string examples

<?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';

?>

Useful functions and operators

Strings may be concatenated using the '.' (dot) operator. Note that the '+' (addition) operator will not work for this. Please see String operators for more information.

There are a lot of useful functions for string modification.

See the string functions section for general functions, the regular expression functions for advanced find&replacing (in two tastes: Perl and POSIX extended).

There are also functions for URL-strings, and functions to encrypt/decrypt strings (mcrypt and mhash).

Finally, if you still didn't find what you're looking for, see also the character type functions.

Converting to string

You can convert a value to a string using the (string) cast, or the strval() function. String conversion is automatically done in the scope of an expression for you where a string is needed. This happens when you use the echo() or print() functions, or when you compare a variable value to a string. Reading the manual sections on Types and Type Juggling will make the following clearer. See also settype().

A boolean TRUE value is converted to the string "1", the FALSE value is represented as "" (empty string). This way you can convert back and forth between boolean and string values.

An integer or a floating point number (float) is converted to a string representing the number with its digits (including the exponent part for floating point numbers).

Arrays are always converted to the string "Array", so you cannot dump out the contents of an array with echo() or print() to see what is inside them. To view one element, you'd do something like echo $arr['foo']. See below for tips on dumping/viewing the entire contents.

Objects are always converted to the string "Object". If you would like to print out the member variable values of an object for debugging reasons, read the paragraphs below. If you would like to find out the class name of which an object is an instance of, use get_class().

Resources are always converted to strings with the structure "Resource id #1" where 1 is the unique number of the resource assigned by PHP during runtime. If you would like to get the type of the resource, use get_resource_type().

NULL is always converted to an empty string.

As you can see above, printing out the arrays, objects or resources does not provide you any useful information about the values themselfs. Look at the functions print_r() and var_dump() for better ways to print out values for debugging.

You can also convert PHP values to strings to store them permanently. This method is called serialization, and can be done with the function serialize(). You can also serialize PHP values to XML structures, if you have WDDX support in your PHP setup.

String conversion to numbers

When a string is evaluated as a numeric value, the resulting value and type are determined as follows.

The string will evaluate as a float if it contains any of the characters '.', 'e', or 'E'. Otherwise, it will evaluate as an integer.

The value is given by the initial portion of the string. If the string starts with valid numeric data, this will be the value used. Otherwise, the value will be 0 (zero). Valid numeric data is an optional sign, followed by one or more digits (optionally containing a decimal point), followed by an optional exponent. The exponent is an 'e' or 'E' followed by one or more digits.

<?php
$foo = 1 + "10.5";                // $foo is float (11.5)
$foo = 1 + "-1.3e3";              // $foo is float (-1299)
$foo = 1 + "bob-1.3e3";           // $foo is integer (1)
$foo = 1 + "bob3";                // $foo is integer (1)
$foo = 1 + "10 Small Pigs";       // $foo is integer (11)
$foo = 4 + "10.2 Little Piggies"; // $foo is float (14.2)
$foo = "10.0 pigs " + 1;          // $foo is float (11)
$foo = "10.0 pigs " + 1.0;        // $foo is float (11)
?>

For more information on this conversion, see the Unix manual page for strtod(3).

If you would like to test any of the examples in this section, you can cut and paste the examples and insert the following line to see for yourself what's going on:

<?php
echo "\$foo==$foo; type is " . gettype ($foo) . "<br />\n";
?>

Do not expect to get the code of one character by converting it to integer (as you would do in C for example). Use the functions ord() and chr() to convert between charcodes and characters.

Předcházející | Domů | Další
Floating point numbers | Nahoru | Arrays


Arrays

An array in PHP is actually an ordered map. A map is a type that maps values to keys. This type is optimized in several ways, so you can use it as a real array, or a list (vector), hashtable (which is an implementation of a map), dictionary, collection, stack, queue and probably more. Because you can have another PHP array as a value, you can also quite easily simulate trees.

Explanation of those data structures is beyond the scope of this manual, but you'll find at least one example for each of them. For more information we refer you to external literature about this broad topic.

Syntax

Specifying with array()

An array can be created by the array() language-construct. It takes a certain number of comma-separated key => value pairs.

array( [key =>] value
     , ...
     )
// key may be an integer or string
// value may be any value

<?php
$arr = array("foo" => "bar", 12 => true);

echo $arr["foo"]; // bar
echo $arr[12];    // 1
?>

A key may be either an integer or a string. If a key is the standard representation of an integer, it will be interpreted as such (i.e. "8" will be interpreted as 8, while "08" will be interpreted as "08"). There are no different indexed and associative array types in PHP; there is only one array type, which can both contain integer and string indices.

A value can be of any PHP type.

<?php
$arr = array("somearray" => array(6 => 5, 13 => 9, "a" => 42));

echo $arr["somearray"][6];    // 5
echo $arr["somearray"][13];   // 9
echo $arr["somearray"]["a"];  // 42
?>

If you do not specify a key for a given value, then the maximum of the integer indices is taken, and the new key will be that maximum value + 1. If you specify a key that already has a value assigned to it, that value will be overwritten.

<?php
// This array is the same as ...
array(5 => 43, 32, 56, "b" => 12);

// ...this array
array(5 => 43, 6 => 32, 7 => 56, "b" => 12);
?>

Varování

As of PHP 4.3.0, the index generation behaviour described above has changed. Now, if you append to an array in which the current maximum key is negative, then the next key created will be zero (0). Before, the new index would have been set to the largest existing key + 1, the same as positive indices are.

Using TRUE as a key will evaluate to integer 1 as key. Using FALSE as a key will evaluate to integer 0 as key. Using NULL as a key will evaluate to the empty string. Using the empty string as key will create (or overwrite) a key with the empty string and its value; it is not the same as using empty brackets.

You cannot use arrays or objects as keys. Doing so will result in a warning: Illegal offset type.

Creating/modifying with square-bracket syntax

You can also modify an existing array by explicitly setting values in it.

This is done by assigning values to the array while specifying the key in brackets. You can also omit the key, add an empty pair of brackets ("[]") to the variable name in that case.
$arr[key] = value;
$arr[] = value;
// key may be an integer or string
// value may be any value
If $arr doesn't exist yet, it will be created. So this is also an alternative way to specify an array. To change a certain value, just assign a new value to an element specified with its key. If you want to remove a key/value pair, you need to unset() it.

<?php
$arr = array(5 => 1, 12 => 2);

$arr[] = 56;    // This is the same as $arr[13] = 56;
                // at this point of the script

$arr["x"] = 42; // This adds a new element to
                // the array with key "x"

unset($arr[5]); // This removes the element from the array

unset($arr);    // This deletes the whole array
?>

Poznámka: As mentioned above, if you provide the brackets with no key specified, then the maximum of the existing integer indices is taken, and the new key will be that maximum value + 1 . If no integer indices exist yet, the key will be 0 (zero). If you specify a key that already has a value assigned to it, that value will be overwritten.

Varování

As of PHP 4.3.0, the index generation behaviour described above has changed. Now, if you append to an array in which the current maximum key is negative, then the next key created will be zero (0). Before, the new index would have been set to the largest existing key + 1, the same as positive indices are.

Note that the maximum integer key used for this need not currently exist in the array. It simply must have existed in the array at some time since the last time the array was re-indexed. The following example illustrates:

<?php
// Create a simple array.
$array = array(1, 2, 3, 4, 5);
print_r($array);

// Now delete every item, but leave the array itself intact:
foreach ($array as $i => $value) {
    unset($array[$i]);
}
print_r($array);

// Append an item (note that the new key is 5, instead of 0 as you
// might expect).
$array[] = 6;
print_r($array);

// Re-index:
$array = array_values($array);
$array[] = 7;
print_r($array);
?>

The above example would produce the following output:
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)
Array
(
)
Array
(
    [5] => 6
)
Array
(
    [0] => 6
    [1] => 7
)

Useful functions

There are quite a few useful functions for working with arrays. See the array functions section.

Poznámka: The unset() function allows unsetting keys of an array. Be aware that the array will NOT be reindexed. If you only use "usual integer indices" (starting from zero, increasing by one), you can achieve the reindex effect by using array_values().

<?php
$a = array(1 => 'one', 2 => 'two', 3 => 'three');
unset($a[2]);
/* will produce an array that would have been defined as
   $a = array(1 => 'one', 3 => 'three');
   and NOT
   $a = array(1 => 'one', 2 =>'three');
*/

$b = array_values($a);
// Now $b is array(0 => 'one', 1 =>'three')
?>

The foreach control structure exists specifically for arrays. It provides an easy way to traverse an array.

Array do's and don'ts

Why is $foo[bar] wrong?

You should always use quotes around a string literal array index. For example, use $foo['bar'] and not $foo[bar]. But why is $foo[bar] wrong? You might have seen the following syntax in old scripts:

<?php
$foo[bar] = 'enemy';
echo $foo[bar];
// etc
?>

This is wrong, but it works. Then, why is it wrong? The reason is that this code has an undefined constant (bar) rather than a string ('bar' - notice the quotes), and PHP may in future define constants which, unfortunately for your code, have the same name. It works because PHP automatically converts a bare string (an unquoted string which does not correspond to any known symbol) into a string which contains the bare string. For instance, if there is no defined constant named bar, then PHP will substitute in the string 'bar' and use that.

Poznámka: This does not mean to always quote the key. You do not want to quote keys which are constants or variables, as this will prevent PHP from interpreting them.

<?php
error_reporting(E_ALL);
ini_set('display_errors', true);
ini_set('html_errors', false);
// Simple array:
$array = array(1, 2);
$count = count($array);
for ($i = 0; $i < $count; $i++) {
    echo "\nChecking $i: \n";
    echo "Bad: " . $array['$i'] . "\n";
    echo "Good: " . $array[$i] . "\n";
    echo "Bad: {$array['$i']}\n";
    echo "Good: {$array[$i]}\n";
}
?>

Poznámka: The output from the above is:
Checking 0:
Notice: Undefined index:  $i in /path/to/script.html on line 9
Bad:
Good: 1
Notice: Undefined index:  $i in /path/to/script.html on line 11
Bad:
Good: 1

Checking 1:
Notice: Undefined index:  $i in /path/to/script.html on line 9
Bad:
Good: 2
Notice: Undefined index:  $i in /path/to/script.html on line 11
Bad:
Good: 2

More examples to demonstrate this fact:

<?php
// Let's show all errors
error_reporting(E_ALL);

$arr = array('fruit' => 'apple', 'veggie' => 'carrot');

// Correct
print $arr['fruit'];  // apple
print $arr['veggie']; // carrot

// Incorrect.  This works but also throws a PHP error of
// level E_NOTICE because of an undefined constant named fruit
//
// Notice: Use of undefined constant fruit - assumed 'fruit' in...
print $arr[fruit];    // apple

// Let's define a constant to demonstrate what's going on.  We
// will assign value 'veggie' to a constant named fruit.
define('fruit', 'veggie');

// Notice the difference now
print $arr['fruit'];  // apple
print $arr[fruit];    // carrot

// The following is okay as it's inside a string.  Constants are not
// looked for within strings so no E_NOTICE error here
print "Hello $arr[fruit]";      // Hello apple

// With one exception, braces surrounding arrays within strings
// allows constants to be looked for
print "Hello {$arr[fruit]}";    // Hello carrot
print "Hello {$arr['fruit']}";  // Hello apple

// This will not work, results in a parse error such as:
// Parse error: parse error, expecting T_STRING' or T_VARIABLE' or T_NUM_STRING'
// This of course applies to using autoglobals in strings as well
print "Hello $arr['fruit']";
print "Hello $_GET['foo']";

// Concatenation is another option
print "Hello " . $arr['fruit']; // Hello apple
?>

When you turn error_reporting() up to show E_NOTICE level errors (such as setting it to E_ALL) then you will see these errors. By default, error_reporting is turned down to not show them.

As stated in the syntax section, there must be an expression between the square brackets ('[' and ']'). That means that you can write things like this:

<?php
echo $arr[somefunc($bar)];
?>

This is an example of using a function return value as the array index. PHP also knows about constants, as you may have seen the E_* ones before.

<?php
$error_descriptions[E_ERROR]   = "A fatal error has occured";
$error_descriptions[E_WARNING] = "PHP issued a warning";
$error_descriptions[E_NOTICE]  = "This is just an informal notice";
?>

Note that E_ERROR is also a valid identifier, just like bar in the first example. But the last example is in fact the same as writing:

<?php
$error_descriptions[1] = "A fatal error has occured";
$error_descriptions[2] = "PHP issued a warning";
$error_descriptions[8] = "This is just an informal notice";
?>

because E_ERROR equals 1, etc.

As we already explained in the above examples, $foo[bar] still works but is wrong. It works, because bar is due to its syntax expected to be a constant expression. However, in this case no constant with the name bar exists. PHP now assumes that you meant bar literally, as the string "bar", but that you forgot to write the quotes.

So why is it bad then?

At some point in the future, the PHP team might want to add another constant or keyword, or you may introduce another constant into your application, and then you get in trouble. For example, you already cannot use the words empty and default this way, since they are special reserved keywords.

Poznámka: To reiterate, inside a double-quoted string, it's valid to not surround array indexes with quotes so "$foo[bar]" is valid. See the above examples for details on why as well as the section on variable parsing in strings.

Converting to array

For any of the types: integer, float, string, boolean and resource, if you convert a value to an array, you get an array with one element (with index 0), which is the scalar value you started with.

If you convert an object to an array, you get the properties (member variables) of that object as the array's elements. The keys are the member variable names.

If you convert a NULL value to an array, you get an empty array.

Comparing

It is possible to compare arrays by array_diff() and by Array operators.

Examples

The array type in PHP is very versatile, so here will be some examples to show you the full power of arrays.

<?php
// this
$a = array( 'color' => 'red',
            'taste' => 'sweet',
            'shape' => 'round',
            'name'  => 'apple',
                       4        // key will be 0
          );

// is completely equivalent with
$a['color'] = 'red';
$a['taste'] = 'sweet';
$a['shape'] = 'round';
$a['name']  = 'apple';
$a[]        = 4;        // key will be 0

$b[] = 'a';
$b[] = 'b';
$b[] = 'c';
// will result in the array array(0 => 'a' , 1 => 'b' , 2 => 'c'),
// or simply array('a', 'b', 'c')
?>

Příklad 6-4. Using array()

<?php
// Array as (property-)map
$map = array( 'version'    => 4,
              'OS'         => 'Linux',
              'lang'       => 'english',
              'short_tags' => true
            );

// strictly numerical keys
$array = array( 7,
                8,
                0,
                156,
                -10
              );
// this is the same as array(0 => 7, 1 => 8, ...)

$switching = array(         10, // key = 0
                    5    =>  6,
                    3    =>  7,
                    'a'  =>  4,
                            11, // key = 6 (maximum of integer-indices was 5)
                    '8'  =>  2, // key = 8 (integer!)
                    '02' => 77, // key = '02'
                    0    => 12  // the value 10 will be overwritten by 12
                  );

// empty array
$empty = array();
?>

Příklad 6-5. Collection

<?php
$colors = array('red', 'blue', 'green', 'yellow');

foreach ($colors as $color) {
    echo "Do you like $color?\n";
}

?>

This will output:

Do you like red?
Do you like blue?
Do you like green?
Do you like yellow?

Note that it is currently not possible to change the values of the array directly in such a loop. A workaround is the following:

Příklad 6-6. Collection

<?php
foreach ($colors as $key => $color) {
    // won't work:
    //$color = strtoupper($color);

    // works:
    $colors[$key] = strtoupper($color);
}
print_r($colors);
?>

This will output:

Array
(
    [0] => RED
    [1] => BLUE
    [2] => GREEN
    [3] => YELLOW
)

This example creates a one-based array.

Příklad 6-7. One-based index

<?php
$firstquarter  = array(1 => 'January', 'February', 'March');
print_r($firstquarter);
?>

This will output:

Array
(
    [1] => 'January'
    [2] => 'February'
    [3] => 'March'
)

Příklad 6-8. Filling an array

<?php
// fill an array with all items from a directory
$handle = opendir('.');
while (false !== ($file = readdir($handle))) {
    $files[] = $file;
}
closedir($handle);
?>

Arrays are ordered. You can also change the order using various sorting functions. See the array functions section for more information. You can count the number of items in an array using the count() function.

Příklad 6-9. Sorting an array

<?php
sort($files);
print_r($files);
?>

Because the value of an array can be anything, it can also be another array. This way you can make recursive and multi-dimensional arrays.

Příklad 6-10. Recursive and multi-dimensional arrays

<?php
$fruits = array ( "fruits"  => array ( "a" => "orange",
                                       "b" => "banana",
                                       "c" => "apple"
                                     ),
                  "numbers" => array ( 1,
                                       2,
                                       3,
                                       4,
                                       5,
                                       6
                                     ),
                  "holes"   => array (      "first",
                                       5 => "second",
                                            "third"
                                     )
                );

// Some examples to address values in the array above
echo $fruits["holes"][5];    // prints "second"
echo $fruits["fruits"]["a"]; // prints "orange"
unset($fruits["holes"][0]);  // remove "first"

// Create a new multi-dimensional array
$juices["apple"]["green"] = "good";
?>

You should be aware that array assignment always involves value copying. You need to use the reference operator to copy an array by reference.

<?php
$arr1 = array(2, 3);
$arr2 = $arr1;
$arr2[] = 4; // $arr2 is changed,
             // $arr1 is still array(2, 3)

$arr3 = &$arr1;
$arr3[] = 4; // now $arr1 and $arr3 are the same
?>

Předcházející | Domů | Další
Strings | Nahoru | Objects


Objects

Object Initialization

To initialize an object, you use the new statement to instantiate the object to a variable.

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

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

For a full discussion, please read the section Classes and Objects.

Converting to object

If an object is converted to an object, it is not modified. If a value of any other type is converted to an object, a new instance of the stdClass built in class is created. If the value was null, the new instance will be empty. For any other value, a member variable named scalar will contain the value.

<?php
$obj = (object) 'ciao';
echo $obj->scalar;  // outputs 'ciao'
?>

Předcházející | Domů | Další
Arrays | Nahoru | Resource


Resource

A resource is a special variable, holding a reference to an external resource. Resources are created and used by special functions. See the appendix for a listing of all these functions and the corresponding resource types.

Poznámka: The resource type was introduced in PHP 4

Converting to resource

As resource types hold special handlers to opened files, database connections, image canvas areas and the like, you cannot convert any value to a resource.

Freeing resources

Due to the reference-counting system introduced with PHP 4's Zend Engine, it is automatically detected when a resource is no longer referred to (just like Java). When this is the case, all resources that were in use for this resource are made free by the garbage collector. For this reason, it is rarely ever necessary to free the memory manually by using some free_result function.

Poznámka: Persistent database links are special, they are not destroyed by the garbage collector. See also the section about persistent connections.

Předcházející | Domů | Další
Objects | Nahoru | NULL


NULL

The special NULL value represents that a variable has no value. NULL is the only possible value of type NULL.

Poznámka: The null type was introduced in PHP 4

A variable is considered to be NULL if

  • it has been assigned the constant NULL.

  • it has not been set to any value yet.

  • it has been unset().

Syntax

There is only one value of type NULL, and that is the case-insensitive keyword NULL.

<?php
$var = NULL;
?>

See also is_null() and unset().

Předcházející | Domů | Další
Resource | Nahoru | Pseudo-types used in this documentation


Pseudo-types used in this documentation

mixed

mixed indicates that a parameter may accept multiple (but not necessarily all) types.

gettype() for example will accept all PHP types, while str_replace() will accept strings and arrays.

number

number indicates that a parameter can be either integer or float.

callback

Some functions like call_user_func() or usort() accept user defined callback functions as a parameter. Callback functions can not only be simple functions but also object methods including static class methods.

A PHP function is simply passed by its name as a string. You can
pass any builtin or user defined function with the exception of
array(),
echo(),
empty(),
eval(),
exit(),
isset(),
list(),
print() and
unset().

A method of an instantiated object is passed as an array containing an object as the element with index 0 and a method name as the element with index 1.

Static class methods can also be passed without instantiating an object of that class by passing the class name instead of an object as the element with index 0.

Příklad 6-11. Callback function examples

<?php

// simple callback example
function my_callback_function() {
    echo 'hello world!';
}
call_user_func('my_callback_function');

// method callback examples
class MyClass {
    function myCallbackMethod() {
        echo 'Hello World!';
    }
}

// static class method call without instantiating an object
call_user_func(array('MyClass', 'myCallbackMethod'));

// object method call
$obj = new MyClass();
call_user_func(array(&$obj, 'myCallbackMethod'));
?>

Předcházející | Domů | Další
NULL | Nahoru | Type Juggling


Type Juggling

PHP does not require (or support) explicit type definition in variable declaration; a variable's type is determined by the context in which that variable is used. That is to say, if you assign a string value to variable $var, $var becomes a string. If you then assign an integer value to $var, it becomes an integer.

An example of PHP's automatic type conversion is the addition operator '+'. If any of the operands is a float, then all operands are evaluated as floats, and the result will be a float. Otherwise, the operands will be interpreted as integers, and the result will also be an integer. Note that this does NOT change the types of the operands themselves; the only change is in how the operands are evaluated.

<?php
$foo = "0";  // $foo is string (ASCII 48)
$foo += 2;   // $foo is now an integer (2)
$foo = $foo + 1.3;  // $foo is now a float (3.3)
$foo = 5 + "10 Little Piggies"; // $foo is integer (15)
$foo = 5 + "10 Small Pigs";     // $foo is integer (15)
?>

If the last two examples above seem odd, see String conversion to numbers.

If you wish to force a variable to be evaluated as a certain type, see the section on Type casting. If you wish to change the type of a variable, see settype().

If you would like to test any of the examples in this section, you can use the var_dump() function.

Poznámka: The behaviour of an automatic conversion to array is currently undefined.

<?php
$a = "1";     // $a is a string
$a[0] = "f";  // What about string offsets? What happens?
?>

Since PHP (for historical reasons) supports indexing into strings via offsets using the same syntax as array indexing, the example above leads to a problem: should $a become an array with its first element being "f", or should "f" become the first character of the string $a?

The current versions of PHP interpret the second assignment as a string offset identification, so $a becomes "f", the result of this automatic conversion however should be considered undefined. PHP 4 introduced the new curly bracket syntax to access characters in string, use this syntax instead of the one presented above:

<?php
$a    = "abc"; // $a is a string
$a{1} = "f";   // $a is now "afc"
?>

See the section titled String access by character for more information.

Type Casting

Type casting in PHP works much as it does in C: the name of the desired type is written in parentheses before the variable which is to be cast.

<?php
$foo = 10;   // $foo is an integer
$bar = (boolean) $foo;   // $bar is a boolean
?>

The casts allowed are:

  • (int), (integer) - cast to integer

  • (bool), (boolean) - cast to boolean

  • (float), (double), (real) - cast to float

  • (string) - cast to string

  • (array) - cast to array

  • (object) - cast to object

Note that tabs and spaces are allowed inside the parentheses, so the following are functionally equivalent:

<?php
$foo = (int) $bar;
$foo = ( int ) $bar;
?>

Poznámka: Instead of casting a variable to string, you can also enclose the variable in double quotes.

<?php
$foo = 10;            // $foo is an integer
$str = "$foo";        // $str is a string
$fst = (string) $foo; // $fst is also a string

// This prints out that "they are the same"
if ($fst === $str) {
    echo "they are the same";
}
?>

It may not be obvious exactly what will happen when casting between certain types. For more info, see these sections:

  • Converting to boolean

  • Converting to integer

  • Converting to float

  • Converting to string

  • Converting to array

  • Converting to object

  • Converting to resource

  • The type comparison tables

Předcházející | Domů | Další
Pseudo-types used in this documentation | Nahoru | Proměnné


Proměnné

Manuál PHP
Předcházející Další

Kapitola 7. Proměnné

Obsah
Základy
Předdefinované proměnné
Kontext ("scope") proměnné
Proměnné s proměnnými názvy
Promměné zvenčí PHP

Základy

Proměnné jsou v PHP reprezentovány znakem dolaru, následovaným názvem příslušné proměnné. V názvech proměnných se rozlišuje velikost písmen.

Názvy proměnných jsou podřízeny stejným pravidlům jako jiná návěští v PHP. Platný název proměnné začíná písmenem nebo podtržítkem, následovaným libovolným počtem písmen, číslic nebo potržítek. Jako regulární výraz to lze zapsat takto: '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'

Poznámka: Pro naše účely zde budeme za písmena považovat znaky a-z, A-Z a ASCII znaky od 127 do 255 (0x7f-0xff).

$var = "Bob";
$Var = "Joe";
echo "$var, $Var";      // vypíše "Bob, Joe"

$4site = 'not yet';     // neplatné; začíná číslicí
$_4site = 'not yet';    // platné; začíná podtržítkem
$täyte = 'mansikka';    // platné; 'ä' je ASCII 228.

V PHP 3 mají proměnné vždy přiřazenu hodnotu. To znamená, že když přiřadíte výraz do proměnné, celá hodnota původního výrazu se zkopíruje do cílové proměnné. Tedy, například, po přiřazení hodnoty jedné proměnné do druhé, změna jedné z nich se na druhé neprojeví. Více informací o tomto způsobu přiřazení viz Výrazy.

PHP nabízí jiný způsob přiřazení hodnot proměnným: přiřazení odkazu. To znamená, že nová proměnná jednoduše odkazuje (jinými slovy, "stává se aliasem" nebo "ukazuje na") na původní proměnnou. Změny na nové proměnné se projeví na té původní a naopak. To také znamená, že se nic nekopíruje; proto je přiřazení rychlejší. Avšak toto zrychlení bude zjistitelné pouze v těsných cyklech nebo při přiřazování velkých polí či objektů.

Pro přiřazení odkazu stačí jednoduše před proměnnou, která bude přiřazována (zdrojová proměnná), předřadit ampersand (&). Například následující kus kódu vypíše dvakrát 'Jmenuji se Bob':

<?php
$foo = 'Bob';              // Přiřadí hodnotu 'Bob' do $foo
$bar = &$foo;              // Odkaz $foo přes $bar.
$bar = "Jmenuji se $bar";  // Změna $bar...
echo $bar;
echo $foo;                 // $foo je také změněno.
?>

Jednou z důležitých věcí, které je třeba si uvědomit, je to, že přes odkazy lze přiřazovat pouze pojmenované proměnné.

<?php
$foo = 25;
$bar = &$foo;      // Toto je platné přiřazení.
$bar = &(24 * 7);  // Neplatné; odkazuje se nepojmenovaný výraz.

function test()
{
   return 25;
}

$bar = &test();    // Neplatné.
?>

Předcházející | Domů | Další
Type Juggling | Nahoru | Předdefinované proměnné


Předdefinované proměnné

PHP poskytuje velké množství předdefinovaných proměnných jakémukoli skriptu, který provádí. Mnoho těchto proměnných, bohužel, nemůže být plně zdokumentováno, protože závisejí na tom, na kterém serveru skript běží, na verzi a nastavení serveru a dalších faktorech. Některé z těchto proměnných nebudou dostupné, když PHP poběží z příkazové řádky. Seznam proměnných - viz sekce Předdefinované proměnné.

Varování

V PHP 4.2.0 a pozdějších se změnila implicitní sada předdefinovaných proměnných, které jsou globálně dostupné. Individuální vstupní a serverové proměnné se implicitně neumísťují do globálního kontextu; namísto toho jsou v následujících superglobálních polích.

Můžete však stále vynutit staré chování nastavením register_globals v souboru php.ini na 'On'.

Pro více informací a pozadí těchto změn prosím nahlédněte do PHP 4.1.0 Release Announcement.

Od verze 4.1.0 poskytuje PHP sadu předdefinovaných polí, obsahujících proměnné WWW serveru (pokud to jde), prostředí a uživatelského vstupu. Tato nová pole mají tu zvláštnost, že jsou automaticky globální -- tedy např. automaticky dostupné v každém kontextu. Z tohoto důvodu jsou často známa jako "autoglobální" nebo "superglobální". (V PHP neexistuje mechanismus pro uživatelskou definici superglobálních proměnných). Superglobální proměnné jsou vypsány níže; pro seznam jejich obsahů a další diskusi o předdefinovaných proměnných v PHP a jejich charakteru však musíte nahlédnout do části Předdefinované proměnné.

PHP superglobals (superglobální proměnné)

$GLOBALS

Obsahuje odkaz na každou proměnnou, která je momentálně dostupná v globálním kontextu skriptu. Klíči tohoto pole jsou názvy globálních proměnných.

$_SERVER

Proměnné nastavované WWW serveru nebo jinak přímo spjaté s prováděcím prostředím aktuálního skriptu. Analogické starému poli $HTTP_SERVER_VARS (které je stále dostupné, ale zavržené).

$_GET

Proměnné poskytované skriptu přes HTTP GET. Analogické starému poli $HTTP_GET_VARS (které je stále dostupné, ale zavržené).

$_POST

Proměnné poskytované skriptu přes HTTP POST. Analogické starému poli $HTTP_POST_VARS (které je stále dostupné, ale zavržené).

$_COOKIE

Proměnné poskytované skriptu přes HTTP cookies. Analogické starému poli $HTTP_COOKIE_VARS (které je stále dostupné, ale zavržené).

$_FILES

Proměnné poskytované skriptu přes HTTP post uploady souborů. Analogické uploads. Analogické starému poli $HTTP_POST_FILES (které je stále dostupné, ale zavržené). Více informací - viz Upload metodou POST.

$_ENV

Proměnné poskytované skriptu z prostředí. Analogické starému poli $HTTP_ENV_VARS (které je stále dostupné, ale zavržené).

$_REQUEST

Proměnné poskytované skriptu přes libovolný vstupní mechanismus a kterým proto nelze důvěřovat. Pozn.: při běhu z příkazové řádky zde nebudou přítomny položky argv a argc; nacházejí se v poli $_SERVER. Přítomnost a pořadí proměnných v tomto poli se definuje podle konfigurační direktivy variables_order. Toto pole nemá přímou analogii ve verzích PHP před 4.1.0.

$_SESSION

Proměnné, které jsou momentálně registrovány v aktuální relaci skriptu. Analogické starému poli $HTTP_SESSION_VARS (které je stále dostupné, ale zavržené). Více informací - viz Funkce pro obsluhu sessions.

Předcházející | Domů | Další
Proměnné | Nahoru | Kontext ("scope") proměnné


Kontext ("scope") proměnné

Kontext proměnné je oblast, ve které je definována. Většina proměnných v PHP má pouze jediný kontext. Ten zahrnuje i soubory vložené pomocí "include" nebo "require". Například:

$a = 1;
include "b.inc";

Zde bude proměnná $a dostupná ve vloženém skriptu b.inc. Avšak uvnitř uživatelsky definovaných funkcí se zakládá jejich lokální kontext. Jakákoli proměnná použitá uvnitř funkce je implicitně omezena na tento místní kontext. Například:

$a = 1; /* globální kontext */

function Test()
{
    echo $a; /* odkaz na proměnnou v lokálním kontextu */
}

Test();

Tento skript nevyprodukuje žádný výstup, protože konstrukt "echo" odkazuje na lokální verzi proměnné $a, a ta nemá v tomto kontextu přiřazenu žádnou hodnotu. Můžete si všimnout, že to je trochu jiné než v jazyce C, kde jsou globální funkce automaticky dostupné ve funkcích, pokud nejsou specificky zastíněny lokální definicí. To může způsobit problémy tím, že člověk může nechtěně změnit globální proměnnou. V PHP musí být globální proměnné deklarovány uvnitř funkce jako globální, pokud se v ní mají používat. Příklad:

$a = 1;
$b = 2;

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

    $b = $a + $b;
}

Sum();
echo $b;

Výše uvedený skript vytiskne "3". Deklarací $a a $b ve funkci jako globálních proměnných se dosáhne toho, že při odkazování na proměnné se pracuje s jejich globální verzí. Počet globálních proměnných, se kterými lze ve funkci manipulovat, není omezen.

Druhým způsobem, jak přistupovat k proměnným z globálního kontextu, je použití speciálního pole $GLOBALS, definovaného v PHP. Předchozí příklad lze přepsat:

$a = 1;
$b = 2;

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

Sum();
echo $b;

Pole $GLOBALS je asociativní pole s názvem globální proměnné jako klíčem a obsahem příslušné proměnné jako obsahem elementu pole.

Jinou důležitou vlastností rozlišování kontextů proměnných je možnost používání static proměnných. Statická proměnná existuje pouze v lokálním kontextu funkce, ale neztrácí svoji hodnotu, pokud provádění programu tento kontext opustí. Uvažujme následující příklad:

function Test ()
{
    $a = 0;
    echo $a;
    $a++;
}

Tato funkce je poněkud neužitečná, neboť při každém volání nastavuje $a na 0 a tiskne "0". Konstrukt $a++, který inkrementuje proměnnou, nemá žádný význam, protože při skončení vykonávání funkce se obsah proměnné $a ztrácí. Aby měla funkce skutečný význam čítače a hodnota se neztrácela, deklaruje se proměnná $a jako statická:

function Test()
{
    static $a = 0;
    echo $a;
    $a++;
}

Nyní se při každém volání funkce Test() vytiskne hodnota proměnné $a a inkrementuje se.

Statické proměnné také poskytují způsob, jak řešit rekurzívní funkce. Rekurzívní funkce je taková funkce, která volá sama sebe. Psaní rekurzívních funkcí je třeba věnovat zvláštní péči, protože může vzniknout nekonečný cyklus volání. Musíte se ujistit, že máte rekurzi adekvátně ukončenu. Následující jednoduchá funkce rekurzívně počítá do 10 za použití statické proměnné $count ke zjištění okamžiku pro ukončení:

function Test()
{
    static $count = 0;

    $count++;
    echo $count;
    if ($count < 10) {
        Test ();
    }
    $count--;
}

Předcházející | Domů | Další
Předdefinované proměnné | Nahoru | Proměnné s proměnnými názvy


Proměnné s proměnnými názvy

Někdy je vhodné, aby se názvy proměnných mohly měnit, tj. aby mohly být dynamicky nastavovány a používány. Normální proměnná se nastavuje takovýmto příkazem:

$a = "ahoj";

Proměnná s proměnným názvem vezme hodnotu proměnné a použije ji jako název proměnné. Ve výše uvedeném příkladu, ahoj lze použít jako název proměnné uvedením dvou symbolů dolaru:

$$a = "světe";

V této chvíli byly definovány dvě proměnné a byly uloženy do stromu symbolů PHP: $a s obsahem "ahoj" a $ahoj s obsahem "světe". Proto příkaz:

echo "$a ${$a}";

provede přesně totéž jako:

echo "$a $ahoj";

tedy oba vyprodukují: ahoj světe.

Při použití proměnných s proměnnými názvy s poli musíte vyřešit problém víceznačnosti. Tj. když napíšete $$a[1], parser potřebuje vědět, máte-li na mysli použití $a[1] jako proměnné nebo chcete $$a jako proměnnou a potom index [1] v této proměnné. Syntaxe pro řešení této víceznačnosti je ${$a[1]} pro první případ a ${$a}[1] pro druhý.

Předcházející | Domů | Další
Kontext ("scope") proměnné | Nahoru | Promměné zvenčí PHP


Promměné zvenčí PHP

HTML formuláře (GET a POST)

Když se odešle formulář do PHP skriptu, jakékoli proměnné z tohoto formuláře budou automaticky dostupné v tomto skriptu. Je-li zapnuta konfigurační volba track_vars, budou tyto proměnné umístěny v asociativních polích $HTTP_POST_VARS, $HTTP_GET_VARS, a/nebo $HTTP_POST_FILES v závislosti na zdroji proměnných.

Pro více informací o těchto proměnných si laskavě přečtěte Předdefinované proměnné.

Příklad 7-1. Jednoduchá proměnná formuláře

<form action="foo.php" method="post">
    Name: <input type="text" name="username"><br>
    <input type="submit">
</form>

Když se výše uvedený formulář odešle, hodnota vstupního textu bude dostupná v $HTTP_POST_VARS['username']. Je-li zapnuta konfigurační direktiva register_globals, proměnná bude dostupná i jako $username v globálním kontextu.

Poznámka: The magic_quotes_gpc configuration directive affects Get, Post and Cookie values. If turned on, value (It's "PHP!") will automagically become (It\'s \"PHP!\"). Escaping is needed for DB insertion. Also see addslashes(), stripslashes() and magic_quotes_sybase.

PHP also understands arrays in the context of form variables (see the related faq). You may, for example, group related variables together, or use this feature to retrieve values from a multiple select input:

Příklad 7-2. More complex form variables

<form action="array.php" method="post">
    Name: <input type="text" name="personal[name]"><br>
    Email: <input type="text" name="personal[email]"><br>
    Beer: <br>
    <select multiple name="beer[]">
        <option value="warthog">Warthog
        <option value="guinness">Guinness
        <option value="stuttgarter">Stuttgarter Schwabenbräu
        </select>
    <input type="submit">
</form>

In PHP 3, the array form variable usage is limited to single-dimensional arrays. In PHP 4, no such restriction applies.

IMAGE SUBMIT variable names

When submitting a form, it is possible to use an image instead of the standard submit button with a tag like:

<input type="image" src="image.gif" name="sub">

When the user clicks somewhere on the image, the accompanying form will be transmitted to the server with two additional variables, sub_x and sub_y. These contain the coordinates of the user click within the image. The experienced may note that the actual variable names sent by the browser contains a period rather than an underscore, but PHP converts the period to an underscore automatically.

HTTP Cookies

PHP transparently supports HTTP cookies as defined by Netscape's Spec. Cookies are a mechanism for storing data in the remote browser and thus tracking or identifying return users. You can set cookies using the setcookie() function. Cookies are part of the HTTP header, so the SetCookie function must be called before any output is sent to the browser. This is the same restriction as for the header() function. Any cookies sent to you from the client will automatically be turned into a PHP variable just like GET and POST method data.

If you wish to assign multiple values to a single cookie, just add [] to the cookie name. For example:

setcookie("MyCookie[]", "Testing", time()+3600);

Note that a cookie will replace a previous cookie by the same name in your browser unless the path or domain is different. So, for a shopping cart application you may want to keep a counter and pass this along. i.e.

Příklad 7-3. SetCookie Example

$Count++;
setcookie("Count", $Count, time()+3600);
setcookie("Cart[$Count]", $item, time()+3600);

Environment variables

PHP automatically makes environment variables available as normal PHP variables.

echo $HOME;  /* Shows the HOME environment variable, if set. */

Since information coming in via GET, POST and Cookie mechanisms also automatically create PHP variables, it is sometimes best to explicitly read a variable from the environment in order to make sure that you are getting the right version. The getenv() function can be used for this. You can also set an environment variable with the putenv() function.

Dots in incoming variable names

Typically, PHP does not alter the names of variables when they are passed into a script. However, it should be noted that the dot (period, full stop) is not a valid character in a PHP variable name. For the reason, look at it:
$varname.ext;  /* invalid variable name */
Now, what the parser sees is a variable named $varname, followed by the string concatenation operator, followed by the barestring (i.e. unquoted string which doesn't match any known key or reserved words) 'ext'. Obviously, this doesn't have the intended result.

For this reason, it is important to note that PHP will automatically replace any dots in incoming variable names with underscores.

Determining variable types

Because PHP determines the types of variables and converts them (generally) as needed, it is not always obvious what type a given variable is at any one time. PHP includes several functions which find out what type a variable is. They are gettype(), is_array(), is_float(), is_int(), is_object(), and is_string().

Předcházející | Domů | Další
Proměnné s proměnnými názvy | Nahoru | Konstanty


Konstanty

Manuál PHP
Předcházející Další

Kapitola 8. Konstanty

PHP definuje několik konstant a poskytuje mechanismus pro definici dalších za běhu. Konstanty se hodně podobají proměnným s výjimkou dvou skutečností: konstanty se musí definovat pomocí funkce define(), a nemohou později nabývat jiných hodnot.

Předdefinované konstanty (dostupné vždy) jsou:

__FILE__

Název souboru skriptu, který je právě čten. Pokud je použita v souboru, který byl vložen pomocí "include" nebo "require", obsahuje název vloženého souboru, nikoli rodičovského.

__LINE__

Číslo řádku ve skriptu, který je právě čten. Pokud je použita v souboru vloženého pomocí "include" nebo "require", obsahuje pozici v rámci tohoto souboru.

PHP_VERSION

Textové vyjádření verze běžícího PHP parseru, např. '3.0.8-dev'.

PHP_OS

Název operačního systému, na kterém PHP parser běží, např. 'Linux'.

TRUE

Pravdivá hodnota (logická jednička).

FALSE

Nepravdivá hodnota (logická nula).

E_ERROR

Označuje neošetřitelnou chybu jinou než "parse error".

E_WARNING

Označuje stav, kdy PHP ví, že je něco špatně, ale bude dál pokračovat. Tyto stavy se dají ošetřit v samotném skriptu. Příkladem by byl neplatný "regexp" (regulární výraz) ve funkci ereg().

E_PARSE

Chyba při syntaktické analýze skriptu (chybná syntaxe). Ošetření není možné.

E_NOTICE

Došlo k něčemu, co by mohlo být chybou. Provádění skriptu pokračuje. Mezi příklady patří textový index pole neopatřený uvozovkami nebo práce s proměnnou, která ještě nebyla definována.

E_ALL

Všechny E_* konstanty shrnuté do jedné. Při použití s funkcí error_reporting() způsobí hlášení úplně všech problému zaregistrovaných PHP.

E_* konstanty se typicky používají s funkcí error_reporting() nastavení hladiny hlášení chyb. Viz všechny tyto konstanty v Ošetření chyb.

Další konstanty můžete definovat pomocí funkce define().

Všimněte si, že toto jsou konstanty, ne céčkovská makra; konstanty mohou reprezentovat pouze platná skalární data.

Příklad 8-1. Definice konstant

<?php
define("CONSTANT", "Hello world.");
echo CONSTANT; // vytiskne "Hello world."
?>

Příklad 8-2. Použití __FILE__ a __LINE__

<?php
function report_error($file, $line, $message) {
    echo "Došlo k chybě v souboru $file na řádku $line: $message.";
}

report_error(__FILE__,__LINE__, "Něco je špatně!");
?>

Předcházející | Domů | Další
Promměné zvenčí PHP | Nahoru | Výrazy


Výrazy

Manuál PHP
Předcházející Další

Kapitola 9. Výrazy

Výrazy jsou nejdůležitějšími stavebními kameny PHP. V PHP je téměř vše, co napíšete, výraz. Nejjednodušší, a přece nejpřesnější definicí výrazu je "všechno, co má hodnotu".

Nejzákladnějšími formami výrazů jsou konstanty a proměnné. Když napíšete "$a = 5", přiřazujete '5' do $a. '5' má, pochopitelně, hodnotu 5, nebo jinými slovy, '5' je výraz s hodnotou 5 (v tomto případě je '5' celočíselnou konstantou).

Po tomto přiřazení budete očekávat, že hodnota $a bude 5, takže kdybyste napsali $b = $a, očekávali byste totéž, jako při napsání $b = 5. Jinými slovy, $a je tedy výraz s hodnotou 5. Pokud vše pracuje správně, přesně to se také stane.

O něco složitějším příkladem výrazů jsou funkce. Uvažujme např. tuto funkci:

function foo ()
{
    return 5;
}

Za předpokladu, že jste dobře seznámeni s konceptem funkcí (pokud ne, nahlédněte do kapitoly o funkcích), byste předpokládali, že napsání $c = foo() je v zásadě totéž jako $c = 5, a máte pravdu. Funkce jsou výrazy s hodnotou jejich návratové hodnoty. Funkce foo() vrací 5, tudíž hodnota výrazu 'foo()' je 5. Obvykle funkce nevracejí konstantní hodnotu, nýbrž něco vypočítávají.

Hodnoty v PHP samozřejmě nemusejí být pouze celá čísla, a velmi často také nejsou. PHP podporuje tři typy skalárních hodnot: celočíselné, reálné (pohyblivá řádová čárka) a řetězce (skalární hodnoty jsou hodnoty, které nejde "rozbít" na menší části, narozdíl např. od polí). PHP podporuje také dva kompozitní (neskalární) typy: pole a objekty. Každý z těchto typů hodnot může být přiřazen do proměnné nebo vracen z funkce.

Uživatelé PHP/FI 2 by neměli pocítit změnu. Ale PHP jde ve výrazech mnohem dále, stejně jako mnoho jiných programovacích jazyků. PHP je výrazově orientovaný jazyk, ve smyslu, že téměř vše je výraz. Uvažujme příklad, kterým jsme se již zabývali, '$a = 5'. Ihned vidíme, že jsou zde zahrnuty dvě hodnoty, celočíselná konstanta '5' a hodnota $a, která je aktualizována na 5. Ale je pravda, že je tu ještě jedna hodnota, je to hodnota samotného přiřazení. Přiřazení jako takové ohodnocuje přiřazovanou hodnotu, v tomto případě 5. V praxi to znamená, že '$a = 5', bez ohledu na to co dělá, je výraz s hodnotou 5. Proto je '$b = ($a = 5)' totéž jako '$a = 5; $b = 5;' (středník označuje konec výrazu). Protože přiřazení jsou parsována zprava doleva, můžete také napsat '$b = $a = 5'.

Jiným dobrým příkladem orientace na výrazy je pre- a post-inkrementace a dekrementace. Uživatelé PHP/FI 2 a mnoha jiných jazyků znají notaci proměnná++ a proměnná--. To jsou inkrementační a dekrementační operátory. V PHP/FI 2 nemělo '$a++' žádnou hodnotu (není to výraz), a proto nešlo přiřadit nebo jinak použít. PHP rozšiřuje schopnosti přeměnou těchto konstrukcí ve výrazy, jako v C. V PHP, stejně jako v C, existují dva typy inkrementace - pre-inkrementace a post-inkrementace. Oba ve své podstatě inkrementují proměnnou a efekt na tuto proměnnou je totožný. Rozdíl je v hodnotě inkrementačního výrazu. Pre-inkrementace, zapsaná jako '++$var', ohodnocuje výraz inkrementovanou hodnotou (PHP inkrementuje proměnnou dříve, než přečte její hodnotu, proto "pre-inkrementace"). Post-inkrementace, zapsaná jako '$var++', ohodnocuje výraz původní hodnotou proměnné $var, před inkrementací (PHP inkrementuje proměnnou po přečtení její hodnoty, proto "post-inkrement").

Velmi častým typem výrazů jsou výrazy porovnávací. Tyto výrazy se ohodnocují 0 a 1 ve významu FALSE, resp. TRUE. PHP podporuje > (větší než), >= (větší nebo rovno), == (rovná se), != (nerovná se), < (menší než) a <= (menší nebo rovno). Tyto výrazy se nejčastěji používají v podmínkách, jako je if.

Posledním příkladem výrazů, kterým se budeme zabývat, je kombinací přiřazení a operátorů. Již víte, že když chcete inkrementovat $a o jedničku, jednoduše napíšete '$a++' nebo '++$a'. Ale co když chcete hodnotu zvýšit o jiné číslo, např. o 3? Mohli byste napsat '$a++' víckrát za sebou, ale to samozřejmě není efektivní ani pohodlné. Mnohem praktičtější je napsat '$a = $a + 3'. Výraz '$a + 3' ohodnocuje hodnotu $a plus 3 a je přiřazen zpět do $a, což dává $a inkrementované o 3. V PHP, stejně jako v řadě jiných jazyků (jako je C), to můžete napsat kratším způsobem, který se časem stane jasnější i rychlejší k pochopení. Přičtení 3 k aktuální hodnotě $a lze zapsat jako '$a += 3'. Přesně to znamená "vezmi hodnotu $a, přičti k ní 3 a přiřaď zpět do $a". Kromě kratšího a přehlednějšího zápisu je výhodou také rychlejší provedení. Hodnota '$a += 3', jako hodnota regulérního přiřazení, je přiřazovaná hodnota. Uvědomte si, že to NENÍ 3, nýbrž $a plus 3 (což je hodnota výrazu přiřazovaného do $a). Takto lze použít jakýkoli binární operátor, například '$a -= 5' (odečti 5 od hodnoty $a), '$b *= 7' (vynásob hodnotu $b číslem 7) apod.

Je tu ještě jeden výraz, který se může zdát zvláštní, pokud jste ho ještě neviděli v jiných jazycích: ternární podmíněný operátor:

$prvni ? $druhy : $treti

Pokud hodnota prvního podvýrazu je TRUE (nenulová), je ohodnocen druhý podvýraz a je výsledkem celého podmíněného výrazu. Jinak je ohodnocen třetí podvýraz a je pak hodotou celého výrazu.

Následující příklad by měl pomoci lépe pochopit pre- a post-inkrementaci i výrazy obecně:

function double($i)
{
    return $i*2;
}
$b = $a = 5;        /* přiřaď hodnotu pět do proměnných $a a $b */
$c = $a++;          /* proveď post-inkrement, přiřaď původní hodnotu $a
                       (5) do $c */
$e = $d = ++$b;     /* proveď pre-inkrement, přiřaď inkrementovanou hodnotu
                       $b (6) do $d a $e */

/* nyní jsou hodnoty proměnných $d a $e rovny 6 */

$f = double($d++);  /* přiřaď dvakrát hodnotu $d <emphasis>před</emphasis>
                       inkrementací, 2*6 = 12, do $f */
$g = double(++$e);  /* přiřaď dvakrát hodnotu $e <emphasis>po</emphasis>
                       inkrementaci, 2*7 = 14 do $g */
$h = $g += 10;      /* nejdříve je $g inkrementováno o 10 má pak hodnotu 24.
                       Hodnota přiřazení (24) se přiřadí do $h a $h tím
                       získává také hodnotu 24. */

Na začátku kapitoly bylo řečeno, že si popíšeme různé typy příkazů, a jak bylo slíbeno, výrazy mohou být příkazy. V tomto případě mají y formát 'expr' ';', což znamená "výraz následovaný středníkem. V u '$b=$a=5;', je $a=5 platný výraz, ale samo o sobě to není .'$b=$a=5;' je i platný .

Poslední věcí, která si zaslouží zmínku, je pravdivostní hodnota výrazů. V mnoha případech, hlavně podmínkách a cyklech, vás nezajímá konkrétní hodnota výrazu, nýbrž pouze to, jestli je TRUE nebo FALSE. Konstanty TRUE a FALSE (malá/velká písmena nehrají roli) představují dvě možné boolovské (pravdivostní) hodnoty. V případě potřeby je výraz automaticky převeden na typ boolean. Detailnější informace o způsobu konverze - viz sekce o typové konverzi.

PHP poskytuje plnou a silnou implementaci výrazů a úplně je zdokumentovat přesahuje rozsah tohoto manuálu. Výše uvedené příklady by vám měli naznačit, co jsou vůbec výrazy a jak konstruovat užitečné výrazy. Ve zbývající části manuálu budeme psát expr jakožto jakýkoli platný PHP výraz.

Předcházející | Domů | Další
Konstanty | Nahoru | Operátory


Operátory

Manuál PHP
Předcházející Další

Kapitola 10. Operátory

Obsah
Aritmetické operátory
Operátory přiřazení
Bitové operátory
Operátory porovnání
Operátory řízení chyb
Prováděcí operátory
Inkrementační/Dekrementační operátory
Logické operátory
Priorita operátorů
Řetězcové operátory

Aritmetické operátory

Vzpomínáte si na základní aritmetiku ze školy? Tohle je úplně stejné.

Tabulka 10-1. Aritmetické operátory

Příklad | Název | Výsledek
$a + $b | Sčítání | Součet $a a $b.
$a - $b | Odčítání | ROzdíl $a a $b.
$a * $b | Násobení | Součin $a a $b.
$a / $b | Dělení | Podíl $a a $b.
$a % $b | Zbytek | Zbytek po dělení $a a $b.

Operátor dělení ("/") vrací celočíselnou hodnotu (výsledek celočíselného dělení) právě tehdy, když oba operandy jsou celá čísla (nebo řetězce, které se dají převést na celá čísla) a podíl je celé číslo. Pokud některý z operandů celočíselný není nebo výsledek není celé číslo, vrátí se hodnota v plovoucí řádové čárce (float).

Předcházející | Domů | Další
Výrazy | Nahoru | Operátory přiřazení


Operátory přiřazení

Základním přiřazovacím operátorem je "=". Mohli byste si zprvu myslet, že se jedná o "rovná se". Nikoliv. Skutečně to znamená, že se levému operandu přiřadí hodnota výrazu vpravo (tj. "nastav na", "přiřaď do" atd.).

Hodnotou výrazu přiřazení je hodnota, která se přiřazuje. Tj. hodnotou "$a = 3" je číslo 3. To vám umožňuje provádět různé triky:

$a = ($b = 4) + 5; // $a se ted rovná 9, a $b bylo nastaveno na 4.

Kromě základního operátoru přiřazení existují ještě "kombinované operátory" pro všechny binární aritmetické a řetězové operátory, které umožňují použít hodnotu ve výrazu a pak hodnotu tohoto výrazu přiřadit zpět. Například:

$a = 3;
$a += 5; // nastaví $a na hodnotu 8, jako kdybychom řekli: $a = $a + 5;
$b = "Ahoj ";
$b .= "tam!"; // nastaví $b na "Ahoj tam!", přesně tak, jako $b = $b . "tam!";

Uvědomte si, že přiřazení zkopíruje hodnotu původní proměnné do nové proměnné (přiřazení hodnoty), takže změny jedné z nich se na druhé proměnné neprojeví. To může mít význam také tehdy, když potřebujete zkopírovat něco jako obrovské pole uvnitř krátkého cyklu. PHP 4 podporuje přiřazení odkazem použitím syntaxe $var = &$othervar;, ale v PHP 3 to provést nelze. "Přiřazení odkazem" znamená, že obě proměnné ukazují na tatáž data a nic se nikam nekopíruje. Chcete-li se o odkazech dozvědět více, čtěte prosím Vysvětlení referencí.

Předcházející | Domů | Další
Operátory | Nahoru | Bitové operátory


Bitové operátory

Bitové operátory umožňují "přehodit" konkrétní bit v celočíselné hodnotě (integer) na jedničku nebo nulu. Pokud jsou jak levý, tak pravý parametr řetězce, pracují bitové operátory na znacích v těchto řetezcích.

<?php
    echo 12 ^ 9; // Vypíše '5'

    echo "12" ^ "9"; // Vypíše znak Backspace (ascii 8)
                     // ('1' (ascii 49)) ^ ('9' (ascii 57)) = #8

    echo "hallo" ^ "hello"; // Vypíše ascii hodnoty #0 #4 #0 #0 #0
                            // 'a' ^ 'e' = #4
?>

Tabulka 10-2. Bitové operátory

Příklad | Název | Výsledek
$a & $b | And (log. součin) | Nastavují se bity, kde je jednička v $a i v $b.
$a | $b | Or(log. součet) | Nastavují se bity, kde je jednička v $a nebo v $b (i v obou současně).
$a ^ $b | Xor (exkluzívní log. součet) | Nastavují se bity, kde je jednička v $a nebo v $b, ale ne v obou současně.
~ $a | Not (negace) | Tam, kde je nula, bude jednička, a naopak.
$a << $b | Posun vlevo | Posune bity v $a o $b kroků (míst) vlevo (každý krok znamená "násobení dvěma").
$a >> $b | Posun vpravo | Posune bity v $a o $b kroků (míst) vpravo (každý krok znamená "dělení dvěma").

Předcházející | Domů | Další
Operátory přiřazení | Nahoru | Operátory porovnání


Operátory porovnání

Operátory porovnání, jak název napovídá, slouží k porovnání dvou hodnot.

Tabulka 10-3. Operátory porovnání

Příklad | Název | Výsledek
$a == $b | Rovnost | TRUE, právě když je $a rovno $b.
$a === $b | Identita | TRUE když je $a rovno $b a navíc tétož typu (pouze PHP 4).
$a != $b | Nerovnost | TRUE právě když $a není rovno $b.
$a <> $b | Nerovnost | TRUE právě když $a není rovno $b.
$a !== $b | Neidentita | TRUE když $a není rovno $b nebo nejsou téhož typu (pouze PHP 4).
$a < $b | Menší než | TRUE když je $a ostře menší než $b.
$a > $b | Větší než | TRUE když je $a ostře větší než $b.
$a <= $b | Menší nebo rovno | TRUE když je $a menší nebo rovno $b.
$a >= $b | Větší nebo rovno | TRUE když je $a větší nebo rovno $b.

Jiným podmínkovým operátorem je "?:" (ternární) operátor, který funguje stejně jako v C a mnohých jiných jazycích.

(expr1) ? (expr2) : (expr3);

Výraz je ohodnocen jako hodnota expr2 když má expr1 hodnotu TRUE, a expr3 když má expr1 hodnotu FALSE.

Předcházející | Domů | Další
Bitové operátory | Nahoru | Operátory řízení chyb


Operátory řízení chyb

PHP podporuje jeden operátor řízení chyb: znak at (@). Když ho předřadíte výrazu v PHP, jakékoli chybové zprávy, které se mohou generovat ve výrazu, budou ignorovány.

Pokud je zapnutotrack_errors, budou se všechny chybové zprávy generované výrazem ukládat do globální proměnné $php_errormsg. Tato proměnná bude přepsána při každé chybě, takže ji testujte vždy co nejdříve, pokud ji chcete používat.

<?php
/* Intentional file error */
$my_file = @file ('non_existent_file') or
    die ("Failed opening file: error was '$php_errormsg'");

// this works for any expression, not just functions:
$value = @$cache[$key];
// will not issue a notice if the index $key doesn't exist.

?>

Poznámka: Operátor @ pracuje pouze na výrazech. Platí jednoduché pravidlo: můžete-li získat hodnotu něčeho, můžete před to dát operátor @. To se týká například proměnných, funkcí, volání include() konstant a podobně. Nemůžete ho předřadit definicím funkcí nebo tříd a podmínkovým strukturám typu if nebo foreach.

Viz také error_reporting().

Varování

V současnosti předřazení operátoru řízení chyb "@" vyřadí i hlášení kritických chyb, které způsobí ukončení provádění skriptu. To mj. znamená, že pokud použijete "@" k potlačení chyb z nějaké funkce, a tato funkce není k dispozici nebo obsahuje chyby, skript zde skončí bez jakékoli indikace, co se stalo.

Předcházející | Domů | Další
Operátory porovnání | Nahoru | Prováděcí operátory


Prováděcí operátory

PHP podporuje jeden prováděcí operátor: obrácené apostrofy (``). Uvědomte si, že to nejsou obyčejné apostrofy! PHP se pokusí provést obsah uzavřený mezi těmito znaky jako příkaz shellu; výstup je vrácen (tzn. nebude pouze vypsán na výstupů může být přiřazen proměnné).

$output = `ls -al`;
echo "<pre>$output</pre>";

Poznámka: Operátor může být vyřazen, pokud je aktivní bezpečný režim nebo je vypnuto shell_exec().

Viz také escapeshellcmd(), exec(),
passthru(), popen(),
shell_exec(), a system().

Předcházející | Domů | Další
Operátory řízení chyb | Nahoru | Inkrementační/Dekrementační operátory


Inkrementační/Dekrementační operátory

PHP podporuje pre- a post inkrementační a dekrementační operátory ve stylu C.

Tabulka 10-4. Inkrementační/dekrementační operátory

Příklad | Název | Účinek
++$a | Pre-inkrementace | Inkrementuje $a o jedničku, potom vrátí $a.
$a++ | Post-inkrementace | Vrátí $a, potom inkrementuje $a o jedničku.
--$a | Pre-dekrementace | Dekrementuje $a o jedničku, potom vrátí $a.
$a-- | Post-dekrementace | Vrátí $a, potom dkrementuje $a o jedničku.

Zde je příklad jednoduchého skriptu:

<?php
echo "<h3&gt;Postinkrementace</h3&gt;";
$a = 5;
echo "Mělo by být 5: " . $a++ . "<br>\n";
echo "Mělo by být 6: " . $a . "<br>\n";

echo "<h3>Preinkrementace</h3>";
$a = 5;
echo "Mělo by být 6: " . ++$a . "<br>\n";
echo "Mělo by být 6: " . $a . "<br>\n";

echo "<h3>Postdekrementace</h3>";
$a = 5;
echo "Mělo by být 5: " . $a-- . "<br>\n";
echo "Mělo by být: " . $a . "<br>\n";

echo "<h3>Predekrementace</h3>";
$a = 5;
echo "Mělo by být 4: " . --$a . "<br>\n";
echo "Mělo by být 4: " . $a . "<br>\n";
?>

Předcházející | Domů | Další
Prováděcí operátory | Nahoru | Logické operátory


Logické operátory

Tabulka 10-5. Logické operátory

Příklad | Název | Výsledek
$a and $b | And | TRUE když $a i $b jsou TRUE.
$a or $b | Or | TRUE když $a nebo $b je TRUE.
$a xor $b | Xor | TRUE když $a nebo $b je TRUE, ale ne oba současně.
! $a | Not | TRUE když $a není TRUE.
$a && $b | And | TRUE když $a i $b jsou TRUE.
$a || $b | Or | TRUE když $a nebo $b je TRUE.

Důvodem pro dvě různé varianty operátorů "and" a "or" je to, že mají jinou prioritu. (Viz Priorita operátorů.)

Předcházející | Domů | Další
Inkrementační/Dekrementační operátory | Nahoru | Priorita operátorů


Priorita operátorů

Priorita operátoru specifikuje, jak "těsně" váže dva výrazy mezi sebou. Například výraz 1 + 5 * 3, výsledkem je 16 a nikoli 18, protože operátor násobení ("*") má vyšší prioritu než operátor sčítání ("+"). K vynucení priority můžeme v případě potřeby použít závorky. Kupř. (1 + 5) * 3 má hodnotu 18.

Následující tabulka ukazuje přehled operátorů vzestupně seřazených podle priority.

Tabulka 10-6. Priorita operátorů

Asociativita | Operátory
levá | ,
levá | or
levá | xor
levá | and
pravá | print
levá | = += -= *= /= .= %= &= |= ^= ~= <<= >>=
levá | ? :
levá | ||
levá | &&
levá | |
levá | ^
levá | &
bez asociativity | == != === !==
bez asociativity | < <= > >=
levá | << >>
levá | + - .
levá | * / %
pravá | ! ~ ++ -- (int) (double) (string) (array) (object) @
pravá | [
bez asociativity | new

Předcházející | Domů | Další
Logické operátory | Nahoru | Řetězcové operátory


Řetězcové operátory

Existují dva řetezcové operátory. Jedním je operátor spojení ('.'), který vrací spojení pravého a levého argumentu. Druhým je operátor spojujícího přiřazení ('.='), jenž připojí argument na pravé straně k argumentu na straně levé. Pro více informací si laskavě přečtěte Operátory přiřazení.

$a = "Ahoj ";
$b = $a . "světe!"; // nyní $b obsahuje "Ahoj světe!"

$a = "Ahoj ";
$a .= "světe!";     // nyní $a obsahuje "Ahoj světe!"

Předcházející | Domů | Další
Priorita operátorů | Nahoru | Řídicí struktury


Řídicí struktury

Manuál PHP
Předcházející Další

Kapitola 11. Řídicí struktury

Obsah
if
else
elseif
Alternativní syntaxe řídicích struktur
while
do..while
for
foreach
break
continue
switch
declare
return
require()
include()
require_once()
include_once()

Jakýkoli PHP skript je složen ze série příkazů. Příkaz může být přiřazení, volání funkce, cyklus, podmínka, stejně jako příkaz, který nic nedělá (prázdný příkaz). Příkaz obvykle končí středníkem. Navíc lze příkazy seskupit do skupiny (bloku) uzavřené složenými závorkami. Tento blok je sám o sobě příkazem. V této kapitole jsou popsány různé typy příkazů.

if

Příkaz if je jedním z nejdůležitějších prvků v mnoha jazycích, včetně PHP. Umožňuje podmíněné provádění kusu kódu. Struktura if v PHP je podobná struktuře v C:

if (expr)
    statement

Jak je popsáno v sekci o výrazech, výraz expr je ohodnoce svou boolovskou hodnotou. Poku je expr ohodnocen jako TRUE, PHP provede statement; je-li ohodnocen jako FALSE, neprovede se nic. Více informací o to, jak se výrazy ohodnocují jako FALSE najdete v části 'Konverze na typ boolean'.

Následující příklad by vypsal a je větší než b, pokud $a je větší než $b:

if ($a > $b)
    print "a je větší než b";

Často byste chtěli, aby se podmíněně prováděl více než jeden příkaz. Není samozřejmě nutné každý příkaz zabalit do struktury if. Místo toho můžete seskupit více příkazů do bloku. Například tento kód by zobrazil a je větší než b, pokud $a je větší než $b a přiřadil by hodnotu $a do $b:

if ($a > $b) {
    print "a je větší než b";
    $b = $a;
}

Příkazy if mohou být libovolně vnořovány do jiných příkazů if, což poskytuje plnou flexibilitu podmíněného provádění různých částí programu.

Předcházející | Domů | Další
Řetězcové operátory | Nahoru | else


Alternativní syntaxe řídicích struktur

PHP nabízí alternativní syntaxi pro některé z řídicích struktur, jmenovitě if, while, for, foreach, a switch. V každém z těchto případů je základním formátem alternativní syntaxe záměna otvírací závorky za dvojtečku (:) a uzavírací závorky za endif;, endwhile;, endfor;, endforeach;, resp. endswitch;.

<?php if ($a == 5): ?>
A se rovná 5
<?php endif; ?>

Ve výše uvedeném příkladu je HTML blok vnořen do příkazu if napsaném alternativní syntaxí. Tento HTML blok by se zobrazil pouze v případě, že je $a rovno 5.

Alternativní syntaxi lze použít i pro else a elseif. Následující příklad ukazuje strukturu if, elseif a else v alternativním formátu:

if ($a == 5):
    print "a se rovná 5";
    print "...";
elseif ($a == 6):
    print "a se rovná 6";
    print "!!!";
else:
    print "a není ani 5, ani 6";
endif;

Další příklady - viz také while, for, a if.

Předcházející | Domů | Další
elseif | Nahoru | while


return

Zavolán uvnitř funkce, příkaz return() okamžitě ukončí provádění této funkce a vrací svůj argument jako hodnotu volání funkce. return() také obdobně ukončí provádění příkazu eval() nebo celého skriptu.

Pokud se volá z globálního kontextu, provádění skriptu se ukončí. Byl-li aktuální skript vložen pomocí include() nebo require(), předá se řízení volajícímu souboru. Navíc, bylo-li použito include(), bude hodnota specifikovaná v return() vrácena jako hodnota volání include(). Pokud se return() zavolá z hlavního souboru skriptu, provádění skončí. Když se jedná o soubor specifikovaný pomocí konfiguračních voleb auto_prepend_file nebo auto_append_file v konfiguračním souboru, zpracování souboru končí.

Více informací - viz Návratové hodnoty.

Poznámka: Uvědomte si, že return() je jazykový příkaz, a nikoli funkce -- uzavření argumentů do závorek není nutné. Obvykle se vynechávají, ale nezáleží na tom, zda se použijí či nikoli.

Předcházející | Domů | Další
declare | Nahoru | require()


Funkce

Manuál PHP
Předcházející Další

Kapitola 12. Funkce

Obsah
Uživatelsky definované funkce
Argumenty funkcí
Návratové hodnoty
old_function
Funkce v proměnných

Uživatelsky definované funkce

Funkce může být definována pomocí syntaxe podobné této:

function foo ($arg_1, $arg_2, ..., $arg_n)
{
    echo "Ukázková funkce.\n";
    return $retval;
}

Do funkce může být vložen jakýkoli platný PHP kód, dokonce i definice jiných funkcí a tříd.

V PHP 3 musí být funkce definovány dříve, než je na ně odkazováno. V PHP už tento požadavek neplatí.

PHP nepodporuje přetěžování funkcí, není možné ani oddefinování nebo předefinovaná dříve deklarovaných funkcí.

PHP 3 nepodporuje proměnný počet argumentů funkcí, zatímco implicitní argumenty jsou podporovány (více informací - viz Implicitní hodnoty argumentů). PHP 4 podporuje obojí: více informací - viz Seznam argumentů proměnné délky a reference funkcí func_num_args(), func_get_arg(), a func_get_args().

Předcházející | Domů | Další
include_once() | Nahoru | Argumenty funkcí


Argumenty funkcí

Informace mohou být do funkcí předávány přes seznam argumentů, což je seznam proměnných a/nebo konstant oddělených čárkou.

PHP podporuje předávání argumentů hodnotou (implicitní), předávání odkazem, a implicitní hodnoty argumentů. Proměnná délka seznamu argumentů je podporována pouze v PHP 4 a pozdějších; viz Seznam argumentů proměnné délky a reference funkcí func_num_args(), func_get_arg(), a func_get_args(). Podobný efekt může být v PHP 3 dosažen předáním pole argumentů do funkce:

function takes_array($input)
{
    echo "$input[0] + $input[1] = ", $input[0]+$input[1];
}

Předávání argumentů odkazem

Implicitně jsou argumenty funkcí předávány hodnotou (takže když změníte hodnotu argumentu ve funkci, nezmění se mimo funkci). Pokud chcete umožnit funkci modifikovat své argumenty, musíte je předávat odkazem.

Pokud chcete, aby byl argument do funkce předáván vždy odkazem, můžete před název argumentu v definici funkce předřadit ampersand (&):

function add_some_extra(&$string)
{
    $string .= 'a něco navíc.';
}
$str = 'Toto je řetězec ';
add_some_extra($str);
echo $str;    // vypíše 'Toto je řetězec a něco navíc.'

Implicitní hodnoty argumentů

Funkce může ve stylu C++ definovat implicitní hodnoty pro skalární argumenty takto:

function makecoffee ($type = "cappucina")
{
    return "Dělám šálek $type.\n";
}
echo makecoffee ();
echo makecoffee ("espressa");

Výstupem výše uvedeného kódu je:
Dělám šálek cappucina.
Dělám šálek espressa.

Implicitní hodnota musí být konstantní výraz, ne (například) proměnná nebo položka třídy.

Uvědomte si, že když používáte implicitní argumenty, jakékoli implicitní hodnoty by měly být na pravé staně neimplicitního argumentu; jinak to nebude pracovat podle očekávání. Uvažujme tento kus kódu:

function makeyogurt ($type = "acidophilus", $flavour)
{
    return "Dělám kelímek jogurtu $type $flavour.\n";
}

echo makeyogurt ("malina");   // nebude pracovat podle očekávání

Výstupem uvedeného příkladu bude:
Warning: Missing argument 2 in call to makeyogurt() in
/usr/local/etc/httpd/htdocs/php3test/functest.html on line 41
Dělám kelímek jogurtu malina.

A nyní to porovnejme s tímto:

function makeyogurt ($flavour, $type = "acidophilus")
{
    return "Dělám kelímek jogurtu $type $flavour.\n";
}

echo makeyogurt ("malina");   // pracuje podle očekávání

Příklad vytiskne:
Dělám kelímek jogurtu acidophilus malina.

Seznam argumentů proměnné délky

PHP 4 má podporu pro seznam argumentů proměnné délky v uživatelských
funkcích. Je to opravdu jednoduché, použitím funkcí
func_num_args(),
func_get_arg(), a
func_get_args().

Není třeba žádná zvláštní syntaxe, seznam argumentů může být stále explicitně poskytován definicemi funkcí a bude se chovat jako normálně.

Předcházející | Domů | Další
Funkce | Nahoru | Návratové hodnoty


Návratové hodnoty

Hodnoty jsou vraceny pomocí nepovinné klausule return. Může být vracen libovolný typ, včetně seznamů a objektů. Klasule způsobuje, že funkce okamžitě ukončí svůj běh a předá řízení zpět na řádek, odkud byla volána. Pro více informací viz return().

function square ($num)
{
    return $num * $num;
}
echo square (4);   // vypíše '16'.

Z funkce nemůžete vracet více hodnot, ale podobného výsledku může být dosaženo vrácením seznamu.

function small_numbers()
{
    return array (0, 1, 2);
}
list ($zero, $one, $two) = small_numbers();

K vrácení odkazu z funkce musíte použít referenční operátor & jak v deklaraci funkce, tak při přiřazování vrácené hodnoty do proměnné:

function &returns_reference()
{
    return $someref;
}

$newref =& returns_reference();

Pro další informace o odkazech se laskavě podívejte na Vysvětlení odkazů.

Předcházející | Domů | Další
Argumenty funkcí | Nahoru | old_function


Funkce v proměnných

PHP podporuje koncept funkcí v proměnných. To znamená, že když má název proměnné připojeny závorky, PHP bude hledat funkci se stejným názvem, jako má hodnota proměnné, a pokusí se ji provést. To lze mj. použít k implementací zpětných volání, tabulek funkcí atd.

Funkce v proměnných nebudou fungovat s jazykovými konstrukty jinými než print(), jako je echo(), unset(), isset() a empty(). To je jeden z velkých rozdílů mezi funkcemi PHP a jazykovými konstrukty.

Příklad 12-1. Příklad na funkce v proměnných

<?php
function foo()
{
    echo "V foo()<br>\n";
}

function bar($arg = '')
{
    echo "V bar(); byl argument '$arg'.<br>\n";
}

$func = 'foo';
$func();
$func = 'bar';
$func('test');
?>

Předcházející | Domů | Další
old_function | Nahoru | Classes and Objects


Classes and Objects

Manuál PHP
Předcházející Další

Kapitola 13. Classes and Objects

Obsah
class
extends
Constructors
::
parent
Serializing objects - objects in sessions
The magic functions __sleep and __wakeup
References inside the constructor
Comparing objects in PHP 4
Comparing objects in PHP 5

class

A class is a collection of variables and functions working with these variables. A class is defined using the following syntax:

<?php
class Cart {
    var $items;  // Items in our shopping cart

    // Add $num articles of $artnr to the cart

    function add_item($artnr, $num) {
        $this->items[$artnr] += $num;
    }

    // Take $num articles of $artnr out of the cart

    function remove_item($artnr, $num) {
        if ($this->items[$artnr] > $num) {
            $this->items[$artnr] -= $num;
            return true;
        } else {
            return false;
        }
    }
}
?>

This defines a class named Cart that consists of an associative array of articles in the cart and two functions to add and remove items from this cart.

Varování

You can NOT break up a class definition into multiple files, or multiple PHP blocks. The following will not work:

<?php
class test {
?>
<?php
    function test() {
        print 'OK';
    }
}
?>

The following cautionary notes are valid for PHP 4.

Výstraha

The name stdClass is used interally by Zend and is reserved. You cannot have a class named stdClass in PHP.

Výstraha

The function names __sleep and __wakeup are magical in PHP classes. You cannot have functions with these names in any of your classes unless you want the magic functionality associated with them. See below for more information.

Výstraha

PHP reserves all function names starting with __ as magical. It is recommended that you do not use function names with __ in PHP unless you want some documented magic functionality.

In PHP 4, only constant initializers for var variables are allowed. To initialize variables with non-constant values, you need an initialization function which is called automatically when an object is being constructed from the class. Such a function is called a constructor (see below).

<?php
class Cart {
    /* None of these will work in PHP 4. */
    var $todays_date = date("Y-m-d");
    var $name = $firstname;
    var $owner = 'Fred ' . 'Jones';
    /* Arrays containing constant values will, though. */
    var $items = array("VCR", "TV");
}

/* This is how it should be done. */
class Cart {
    var $todays_date;
    var $name;
    var $owner;
    var $items = array("VCR", "TV");

    function Cart() {
        $this->todays_date = date("Y-m-d");
        $this->name = $GLOBALS['firstname'];
        /* etc. . . */
    }
}
?>

Classes are types, that is, they are blueprints for actual variables. You have to create a variable of the desired type with the new operator.

<?php
$cart = new Cart;
$cart->add_item("10", 1);

$another_cart = new Cart;
$another_cart->add_item("0815", 3);
?>

This creates the objects $cart and $another_cart, both of the class Cart. The function add_item() of the $cart object is being called to add 1 item of article number 10 to the $cart. 3 items of article number 0815 are being added to $another_cart.

Both, $cart and $another_cart, have functions add_item(), remove_item() and a variable items. These are distinct functions and variables. You can think of the objects as something similar to directories in a filesystem. In a filesystem you can have two different files README.TXT, as long as they are in different directories. Just like with directories where you'll have to type the full pathname in order to reach each file from the toplevel directory, you have to specify the complete name of the function you want to call: In PHP terms, the toplevel directory would be the global namespace, and the pathname separator would be ->. Thus, the names $cart->items and $another_cart->items name two different variables. Note that the variable is named $cart->items, not $cart->$items, that is, a variable name in PHP has only a single dollar sign.

<?php
// correct, single $
$cart->items = array("10" => 1);

// invalid, because $cart->$items becomes $cart->""
$cart->$items = array("10" => 1);

// correct, but may or may not be what was intended:
// $cart->$myvar becomes $cart->items
$myvar = 'items';
$cart->$myvar = array("10" => 1);
?>

Within a class definition, you do not know under which name the object will be accessible in your program: at the time the Cart class was written, it was unknown that the object will be named $cart or $another_cart later. Thus, you cannot write $cart->items within the Cart class itself. Instead, in order to be able to access it's own functions and variables from within a class, one can use the pseudo-variable $this which can be read as 'my own' or 'current object'. Thus, '$this->items[$artnr] += $num' can be read as 'add $num to the $artnr counter of my own items array' or 'add $num to the $artnr counter of the items array within the current object'.

Poznámka: There are some nice functions to handle classes and objects. You might want to take a look at the Class/Object Functions

Předcházející | Domů | Další
Funkce v proměnných | Nahoru | extends


Serializing objects - objects in sessions

Poznámka: In PHP 3, objects will lose their class association throughout the process of serialization and unserialization. The resulting variable is of type object, but has no class and no methods, thus it is pretty useless (it has become just like an array with a funny syntax).

Výstraha

The following information is valid for PHP 4 only.

serialize() returns a string containing a byte-stream representation of any value that can be stored in PHP. unserialize() can use this string to recreate the original variable values. Using serialize to save an object will save all variables in an object. The functions in an object will not be saved, only the name of the class.

In order to be able to unserialize() an object, the class of that object needs to be defined. That is, if you have an object $a of class A on page1.php and serialize this, you'll get a string that refers to class A and contains all values of variabled contained in $a. If you want to be able to unserialize this on page2.php, recreating $a of class A, the definition of class A must be present in page2.php. This can be done for example by storing the class definition of class A in an include file and including this file in both page1.php and page2.php.

<?php
// classa.inc:

  class A {
      var $one = 1;

      function show_one() {
          echo $this->one;
      }
  }

// page1.php:

  include("classa.inc");

  $a = new A;
  $s = serialize($a);
  // store $s somewhere where page2.php can find it.
  $fp = fopen("store", "w");
  fwrite($fp, $s);
  fclose($fp);

// page2.php:

  // this is needed for the unserialize to work properly.
  include("classa.inc");

  $s = implode("", @file("store"));
  $a = unserialize($s);

  // now use the function show_one() of the $a object.
  $a->show_one();
?>

If you are using sessions and use session_register() to register objects, these objects are serialized automatically at the end of each PHP page, and are unserialized automatically on each of the following pages. This basically means that these objects can show up on any of your pages once they become part of your session.

It is strongly recommended that you include the class definitions of all such registered objects on all of your pages, even if you do not actually use these classes on all of your pages. If you don't and an object is being unserialized without its class definition being present, it will lose its class association and become an object of class stdClass without any functions available at all, that is, it will become quite useless.

So if in the example above $a became part of a session by running session_register("a"), you should include the file classa.inc on all of your pages, not only page1.php and page2.php.

Předcházející | Domů | Další
parent | Nahoru | The magic functions __sleep and __wakeup


References inside the constructor

Creating references within the constructor can lead to confusing results. This tutorial-like section helps you to avoid problems.

<?php
class Foo {
    function Foo($name) {
        // create a reference inside the global array $globalref
        global $globalref;
        $globalref[] = &$this;
        // set name to passed value
        $this->setName($name);
        // and put it out
        $this->echoName();
    }

    function echoName() {
        echo "<br />", $this->name;
    }

    function setName($name) {
        $this->name = $name;
    }
}
?>

Let us check out if there is a difference between $bar1 which has been created using the copy = operator and $bar2 which has been created using the reference =& operator...

<?php
$bar1 = new Foo('set in constructor');
$bar1->echoName();
$globalref[0]->echoName();

/* output:
set in constructor
set in constructor
set in constructor */

$bar2 =& new Foo('set in constructor');
$bar2->echoName();
$globalref[1]->echoName();

/* output:
set in constructor
set in constructor
set in constructor */
?>

Apparently there is no difference, but in fact there is a very significant one: $bar1 and $globalref[0] are _NOT_ referenced, they are NOT the same variable. This is because "new" does not return a reference by default, instead it returns a copy.

Poznámka: There is no performance loss (since PHP 4 and up use reference counting) returning copies instead of references. On the contrary it is most often better to simply work with copies instead of references, because creating references takes some time where creating copies virtually takes no time (unless none of them is a large array or object and one of them gets changed and the other(s) one(s) subsequently, then it would be wise to use references to change them all concurrently).

To prove what is written above let us watch the code below.

<?php
// now we will change the name. what do you expect?
// you could expect that both $bar1 and $globalref[0] change their names...
$bar1->setName('set from outside');

// as mentioned before this is not the case.
$bar1->echoName();
$globalref[0]->echoName();

/* output:
set from outside
set in constructor */

// let us see what is different with $bar2 and $globalref[1]
$bar2->setName('set from outside');

// luckily they are not only equal, they are the same variable
// thus $bar2->name and $globalref[1]->name are the same too
$bar2->echoName();
$globalref[1]->echoName();

/* output:
set from outside
set from outside */
?>

Another final example, try to understand it.

<?php
class A {
    function A($i) {
        $this->value = $i;
        // try to figure out why we do not need a reference here
        $this->b = new B($this);
    }

    function createRef() {
        $this->c = new B($this);
    }

    function echoValue() {
        echo "<br />","class ",get_class($this),': ',$this->value;
    }
}

class B {
    function B(&$a) {
        $this->a = &$a;
    }

    function echoValue() {
        echo "<br />","class ",get_class($this),': ',$this->a->value;
    }
}

// try to understand why using a simple copy here would yield
// in an undesired result in the *-marked line
$a =& new A(10);
$a->createRef();

$a->echoValue();
$a->b->echoValue();
$a->c->echoValue();

$a->value = 11;

$a->echoValue();
$a->b->echoValue(); // *
$a->c->echoValue();

?>

This example will output:

class A: 10
class B: 10
class B: 10
class A: 11
class B: 11
class B: 11

Předcházející | Domů | Další
The magic functions __sleep and __wakeup | Nahoru | Comparing objects in PHP 4


Comparing objects in PHP 4

In PHP 4, objects are compared in a very simple manner, namely: Two object instances are equal if they have the same attributes and values, and are instances of the same class. Similar rules are applied when comparing two objects using the identity operator (===).

If we were to execute the code in the example below:

Příklad 13-1. Example of object comparison in PHP 4

<?php
function bool2str($bool) {
    if ($bool === false) {
            return 'FALSE';
    } else {
            return 'TRUE';
    }
}

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 {
    var $flag;

    function Flag($flag=true) {
            $this->flag = $flag;
    }
}

class SwitchableFlag extends Flag {

    function turnOn() {
        $this->flag = true;
    }

    function turnOff() {
        $this->flag = false;
    }
}

$o = new Flag();
$p = new Flag(false);
$q = new Flag();

$r = new SwitchableFlag();

echo "Compare instances created with the same parameters\n";
compareObjects($o, $q);

echo "\nCompare instances created with different parameters\n";
compareObjects($o, $p);

echo "\nCompare an instance of a parent class with one from a subclass\n";
compareObjects($o, $r);
?>
We will see:
Compare instances created with the same parameters
o1 == o2 : TRUE
o1 != o2 : FALSE
o1 === o2 : TRUE
o1 !== o2 : FALSE

Compare instances created with different parameters
o1 == o2 : FALSE
o1 != o2 : TRUE
o1 === o2 : FALSE
o1 !== o2 : TRUE

Compare an instance of a parent class with one from a subclass
o1 == o2 : FALSE
o1 != o2 : TRUE
o1 === o2 : FALSE
o1 !== o2 : TRUE
Which is the output we will expect to obtain given the comparison rules above. Only instances with the same values for their attributes and from the same class are considered equal and identical.

Even in the cases where we have object composition, the same comparison rules apply. In the example below we create a container class that stores an associative array of Flag objects.

Příklad 13-2. Compound object comparisons in PHP 4

<?php
class FlagSet {
    var $set;

    function FlagSet($flagArr = array()) {
        $this->set = $flagArr;
    }

    function addFlag($name, $flag) {
        $this->set[$name] = $flag;
    }

    function removeFlag($name) {
        if (array_key_exists($name, $this->set)) {
            unset($this->set[$name]);
        }
    }
}

$u = new FlagSet();
$u->addFlag('flag1', $o);
$u->addFlag('flag2', $p);
$v = new FlagSet(array('flag1'=>$q, 'flag2'=>$p));
$w = new FlagSet(array('flag1'=>$q));

echo "\nComposite objects u(o,p) and v(q,p)\n";
compareObjects($u, $v);

echo "\nu(o,p) and w(q)\n";
compareObjects($u, $w);
?>
Which gives the expected output:
Composite objects u(o,p) and v(q,p)
o1 == o2 : TRUE
o1 != o2 : FALSE
o1 === o2 : TRUE
o1 !== o2 : FALSE

u(o,p) and w(q)
o1 == o2 : FALSE
o1 != o2 : TRUE
o1 === o2 : FALSE
o1 !== o2 : TRUE

Předcházející | Domů | Další
References inside the constructor | Nahoru | Comparing objects in PHP 5


Comparing objects in PHP 5

Varování

Toto rozšíření je EXPERIMENTÁLNÍ. Chování tohoto rozšíření, názvy funkcí a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může bez ohlášení změnit. Berte to v úvahu a používejte tento modul na vlastní nebezpečí.

In PHP 5, object comparison is a more complicated than in PHP 4 and more in accordance to what one will expect from an Object Oriented Language (not that PHP 5 is such a language).

When using the comparison operator (==), object variables are compared in a simple manner, namely: Two object instances are equal if they have the same attributes and values, and are instances of the same class.

On the other hand, when using the identity operator (===), object variables are identical if and only if they refer to the same instance of the same class.

An example will clarify these rules.

Příklad 13-3. Example of object comparison in PHP 5

<?php
function bool2str($bool) {
    if ($bool === false) {
            return 'FALSE';
    } else {
            return 'TRUE';
    }
}

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 {
    var $flag;

    function Flag($flag=true) {
            $this->flag = $flag;
    }
}

class OtherFlag {
    var $flag;

    function OtherFlag($flag=true) {
            $this->flag = $flag;
    }
}

$o = new Flag();
$p = new Flag();
$q = $o;
$r = new OtherFlag();

echo "Two instances of the same class\n";
compareObjects($o, $p);

echo "\nTwo references to the same instance\n";
compareObjects($o, $q);

echo "\nInstances of two different classes\n";
compareObjects($o, $r);
?>
This example will output:
Two instances of the same class
o1 == o2 : TRUE
o1 != o2 : FALSE
o1 === o2 : FALSE
o1 !== o2 : TRUE

Two references to the same instance
o1 == o2 : TRUE
o1 != o2 : FALSE
o1 === o2 : TRUE
o1 !== o2 : FALSE

Instances of two different classes
o1 == o2 : FALSE
o1 != o2 : TRUE
o1 === o2 : FALSE
o1 !== o2 : TRUE

Předcházející | Domů | Další
Comparing objects in PHP 4 | Nahoru | Vysvětlení referencí (odkazů)


Vysvětlení referencí (odkazů)

Manuál PHP
Předcházející Další

Kapitola 14. Vysvětlení referencí (odkazů)

Obsah
Co jsou reference
Co reference dělají
Co reference nejsou
Předávání referencí (odkazem)
Vracení referencí
Odnastavení odkazů
Další výskyt referencí

Co jsou reference

Reference (odkazy) jsou prostředek, jak v PHP přistupovat k témuž obsahu proměnné pod různými jmény. Nejsou to ukazatele (pointery) jako v C, jsou to aliasy v tabulce symbolů. Uvědomte si, že v PHP je rozdíl mezi názvem proměnné a jejím obsahem, takže stejný obsah může mít různé názvy. Nejbližší analogií jsou názvy souborů a soubory v UNIXu - názvy proměnných jsou položky adresáře, obsahy proměnných samotné soubory. Na reference může být nazíráno jako na hardlinky v UNIXovém systému souborů.

Předcházející | Domů | Další
Comparing objects in PHP 5 | Nahoru | Co reference dělají


Co reference dělají

PHP reference umožňují zajistit, aby dvě proměnné odkazovaly na tentýž obsah. Tzn. když provedete:

$a =& $b

znamená to, že $a a $b ukazují na stejnou proměnnou.

Poznámka: $a a $b jsou zde úplně ekvivalentní, tj. nikoliv že $a ukazuje na $b apod., nýbrž že $a a $b ukazují na stejné místo.

Stejná syntaxe se může použít s funkcemi, které vrací reference a s operátorem new (v PHP 4.0.4 a pozdějších):

$bar =& new fooclass();
$foo =& find_var ($bar);

Poznámka: Nepoužití operátoru & způsobí zkopírování objektu. Když ve třídě použijete $this, bude se pracovat s aktuální instancí třídy. Přiřazení bez & zkopíruje instanci (např. objektu) a $this bude pracovat s touto kopií, což není vždy to, co se požaduje. Většinou chcete mít jedinou instanci, s níž budete pracovat, kvůli rychlosti a alokaci paměti.

Druhou věcí, kterou reference dělají, je předávání proměnných odkazem. To se dělá vytvořením lokální proměnné ve funkci a proměnné v kontextu volajícího prostředí, kdy se odkazuje na tentýž obsah. Například:

function foo (&$var)
{
    $var++;
}

$a=5;
foo ($a);

nastaví do $a hodnotu 6. To proto, že ve funkci foo proměnná $var odkazuje tentýž obsah jako $a. Viz detailnější vysvětlení o předávání odkazem.

Třetí věcí, kterou mohou reference dělat, je vracení přes reference.

Předcházející | Domů | Další
Vysvětlení referencí (odkazů) | Nahoru | Co reference nejsou


Co reference nejsou

Jak již bylo řečeno, reference nejsou ukazatele. To znamená, že tento příkaz nebude dělat to, co očekáváte:

function foo (&$var)
{
    $var =& $GLOBALS["baz"];
}
foo($bar);

Nastane to, že $var ve funkci foo bude přiřazena $bar ve volajícím kontextu, avšak poté bude přiřazena $GLOBALS["baz"]. Není způsob, jak přiřadit $bar ve volajícím kontextu něčemu jinému za použití mechanismu referencí, protože $bar není ve funkci foo dostupná (je reprezentována $var, ale $var má pouze obsah a nikoli spojení názvu s hodnotou v tabulce symbolů).

Předcházející | Domů | Další
Co reference dělají | Nahoru | Předávání referencí (odkazem)


Předávání referencí (odkazem)

Můžete předávat proměnnou do funkce pomocí odkazu, takže funkce může modifikovat její argumenty. Syntaxe je následující:

function foo (&$var)
{
    $var++;
}

$a=5;
foo ($a);
// $a je teď 6

Všimněte si, že ve volání funkce není znak reference - pouze v její definici. Samotná definice funkce stačí na správné předávání argumentu odkazem.

Následující věci lze předávat referencí:

  • Proměnná, např. foo($a)

  • Konstrukt s new, např. foo(new foobar())

  • Reference, vracená z funkce, např.:

    function &bar()
{
    $a = 5;
    return $a;
}
foo(bar());

    Viz také vysvětlení vracení přes reference.

Žádné jiné výrazy nemohou být předávány odkazem, výsledek tohoto není definován. Například, následující ukázky předávání odkazem jsou neplatné:

function bar() // Všimněte si chybějícího &
{
    $a = 5;
    return $a;
}
foo(bar());

foo($a = 5) // Výraz, nikoli proměnná
foo(5) // Konstanta, nikoli proměnná

Tyto požadavky platí pro PHP 4.0.4 a pozdější.

Předcházející | Domů | Další
Co reference nejsou | Nahoru | Vracení referencí


Vracení referencí

Vracení odkazem je užitečné, když chcete použít funkci k nalezení proměnné, která by měla být odkazu přiřazena. Při vracení referencí použijte tuto syntaxi:

function &find_var ($param)
{
    ...nějaký kód...
    return $found_var;
}

$foo =& find_var ($bar);
$foo->x = 2;

V tomto příkladu by bylo funkcí find_var nastaveno vlastnictví téhož objektu, nikoli jeho kopie, jak by se stalo bez použití syntaxe bez odkazů.

Poznámka: Narozdíl od předávání parametru, zde musíte & použít na obou místech - k indikaci, že vracíte odkaz a nikoli kopii jako obvykle, a k indikaci přiřazení reference do $foo namísto běžného přiřazení (hodnoty).

Předcházející | Domů | Další
Předávání referencí (odkazem) | Nahoru | Odnastavení odkazů


Odnastavení odkazů

Když odnastavíte referenci, přerušíte vazbu mezi názvem proměnné a jejím obsahem. To neznamená, že by obsah byl zničen. Například:

$a = 1;
$b =& $a;
unset ($a);

neodnastaví $b, nýbrž pouze $a.

Znovu je dobré si připomenout analogii s UNIXovým příkazem unlink.

Předcházející | Domů | Další
Vracení referencí | Nahoru | Další výskyt referencí


Další výskyt referencí

Mnoho jazykových konstruktů v PHP je implementováno přes odkazový mechanismus, takže vše, co bylo řečeno výše o přiřazování referencí, platí i na tyto konstrukty. Některé konstrukty, jako předávání a vracení přes odkazy, byly již zmíněny. Ostatní konstrukty používající reference jsou:

odkazy global

Když deklarujete proměnnou jako global $var, ve skutečnosti vytváříte odkaz na globální proměnnou. Tzn. je to totéž, jako:

$var =& $GLOBALS["var"];

To znamená, například, že odnastavení $var neodnastaví globální proměnnou.

$this

V metodě objektu je $this vždy odkazem na volající objekt.

Předcházející | Domů | Další
Odnastavení odkazů | Nahoru | Bezpečnost


Bezpečnost

Manuál PHP
Předcházející Další

III. Bezpečnost

Obsah
15. Bezpečnost

Předcházející | Domů | Další
Další výskyt referencí |  | Bezpečnost


Bezpečnost

Manuál PHP
Předcházející Další

Kapitola 15. Bezpečnost

Obsah
Obecné úvahy
Instalace PHP jako CGI binární aplikace
Instalace jako modulu do Apache
Bezpečnost souborového systému
Bezpečnost databází
Hlášení chyb
Registrace globálních proměnných (Register Globals)
Data posílaná uživatelem
Skrývání PHP
Udržování aktuálnosti

PHP je výkonný jazyk a interpret, ať již vložený do WWW serveru jako modul či spouštěný zvlášt jako CGI aplikace, a může přistupovat k souborům, provádět systémové příkazy a otvírat na serveru sítová spojení. Tyto vlastnosti činí jakýkoli běh PHP na webovském serveru implicitně nebezpečným. PHP je navrženo jako jazyk, který by měl být pro psaní CGI programů bezpečnější než Perl nebo C, a se správnou volbou kompilačních a běhových nastavení, současně se správnými praktikami kódování, může poskytnout přesně takovou kombinaci svobody a bezpečnosti, jakou potřebujete.

Protože existuje mnoho různých způsobů použití PHP, je také mnoho konfiguračních nastavení ovládajících jeho chování. Široká škála nastavení zaručuje, že můžete PHP používat k mnoha účelům, ale také to znamená, že jsou kombinace těchto voleb a konfigurace serveru, které vedou k nebezpečnému nastavení.

Konfigurační flexibilita PHP rovnocenně soupeří s flexibilitou kódu. PHP lze použít na vybudování kompletních serverových aplikací s plnou silou klasického ("shellového") uživatele, ale stejně tak i pro jednoduché serverové skripty s malým rizikem v "sešněrovaném" prostředí. Jak vybudujete takové prostředí, a jak bude bezpečné, je především záležitostí vývojáře v PHP.

Tato kapitola začíná některými obecnými bezpečnostními radami, vysvětluje různé kombinace konfiguračních voleb a situace, kdy mohou být bezpečně použity, a popisuje různé úvahy o kódování pro různé úrovně bezpečnosti.

Obecné úvahy

Naprosto bezpečný systém je pouhý sen, takže jako přiblížení se v oblasti bezpečnosti volí určitý kompromis mezi bezpečím a použitelností. Pokud každá proměnná odesílaná uživatelem vyžaduje dva způsoby biometrické validace (např. obraz oční sítnice a a otisk prstu), můžete získat extrémně vysokou úroveň zabezpečení. Ale také znamenat, že vyplnění běžného formuláře bude trvat půl hodiny, a proto to povede k tomu, že uživatelé budou hledat způsoby, jak zabezpečení obejít.

Nejlepší bezpečnost je často dost nevtíravá na to, aby vyhověla požadavkům, bez bránění uživatelům v práci nebo přetěžování autora kódu nadměrnou složitostí. Věru, některé bezpečnostní útoky jsou pouze prolomení tohoto druhu přehnaně stavěné bezpečnosti, která během času povoluje.

Fráze hodná zapamatování: Systém je jen tak dobrý, jako jeho nejslabší článek. Pokud jsou všechny transakce přesně zaznamenávány (na základě času, místa, typu transakce atd.), ale uživatel je ověřován pouze na základě jednoduché "sušenky" (cookie), vazba mezi uživateli a záznamem transakcí je podstatně oslabena.

Při testování mějte na paměti, že nebudete schopni otestovat všechny možnosti ani pro nejjednodušší stránky. Vstupy, které můžete očekávát, nebudou mít absolutně nic společného se vstupy zadávanými nespokojeným zaměstnancem, crackerem s měsíci času k dispozici nebo kočkou domácí pochodující přes klávesnici. To je důvod, proč je nejlepší se dívat na kód z logické perspektivy, ke zjištění, kde se mohou objevit neočekávaná data, a potom kde mohou být následně měněna, redukována nebo zesilována.

Internet je plný lidí, kteří si pokoušejí udělat jméno prolamováním vašeho kódu, zbouráním stránky, odesíláním nevhodných dat do systému nebo jiným "zpříjemněním" vašeho dne. Nezáleží, máte-li malý nebo velký web, jste cílem jednoduše tím, že jste online, že máte server, ke kterému se lze připojit. Mnoho crackovacích programů nerozlišuje podle velikosti, jednoduše procházejí celé obrovské bloky IP adres a hledají oběti. Zkuste se nestát jednou z nich.

Předcházející | Domů | Další
Bezpečnost | Nahoru | Instalace PHP jako CGI binární aplikace


Instalace PHP jako CGI binární aplikace

Možné útoky

Používání PHP jako CGI aplikace je volba pro instalace, kdy si z nějakých důvodů nepřejete integrovat PHP jako modul do serveru (jako je Apache), nebo budete používat PHP s různými druhy CGI wrapperů k vytvoření bezpečných prostředí pro skripty pomocí chroot a setuid. Toto nastavení obvykle zahrnuje nainstalování PHP programu do adresáře cgi-bin na serveru. Poradenství CERT CA-96.11 se staví proti umísťování jakýchkoli interpretů do cgi-bin. Přesto když se PHP aplikace používá jako samostatný interpret, je PHP navrženo tak, aby zabránilo útokům, které by při tomto používání hrozily:

  • Přístup k systému souborů: http://my.host/cgi-bin/php?/etc/passwd

    Dotazová informace v URL za otazníkem (?) se předává jako argumenty příkazové řádky přes CGI rozhraní do interpretu. Interprety obvykle otevřou a spustí soubor uvedený jako první argument příkazové řádky.

    Při zavolání jako CGI binární aplikace PHP odmítne interpretovat argumenty příkazové řádky.

  • Přístup k jakýmkoli WWW dokumentům na serveru: http://my.host/cgi-bin/php/secret/doc.html

    Cesta obsažená v URL za názvem PHP aplikace, /secret/doc.html, se standardně používá ke specifikaci souboru, který se má otevřít a interpretovat CGI programem. Obvykle se k přesměrování požadavků na dokumenty do PHP interpretu používají některé konfigurační direktivy web serveru (Apache: Action), jako http://my.host/secret/script.php. V tomto nastavení web server nejprve ověří přístupová práva k adresáři /secret, a potom vytvoří přesměrovaný požadavek http://my.host/cgi-bin/php/secret/script.php. Bohužel, je-li původní požadavek zadán v této formě, žádná ověření práv web serverem pro soubor /secret/script.php se nekonají, ověřuje se pouze soubor /cgi-bin/php. Tento způsob umožňuje libovolnému uživateli, který má přístup k /cgi-bin/php, přistupovat ke kterémukoli chráněnému dokumentu na serveru.

    V PHP lze k prevenci proti tomuto útoku použít kompilační konfigurační volbu --enable-force-cgi-redirect a běhové konfigurační direktivy doc_root a user_dir, pokud strom dokumentů na serveru obsahuje nějaké adresáře s omezením přístupu. Viz níže pro kompletní vysvětlení různých kombinací.

Případ 1: poskytují se pouze veřejné soubory

Pokud server neposkytuje žádný obsah chráněný heslem nebo řízením přístupu na bázi IP adres, není třeba používat tyto konfigurační volby. Nedovoluje-li váš server provádět přesměrování nebo nemá způsob, jak PHP programu sdělit, že je bezpečně přesměrovatelný, můžete do konfiguračního skriptu specifikovat volbu --enable-force-cgi-redirect. Nadále musíte zajistit, že vaše PHP skripty nespoléhají na ten či onen způsob volání skriptu, jak přímo http://my.host/cgi-bin/php/dir/script.php, tak přes přesměrování http://my.host/dir/script.php.

Přesměrování lze v serveru Apache nakonfigurovat pomocí direktiv AddHandler a Action (viz níže).

Případ 2: použití --enable-force-cgi-redirect

Tato kompilační volba zabraňuje komukoli ve volání PHP přímo přes URL jako http://my.host/cgi-bin/php/secretdir/script.php. PHP zde bude v tomto režimu parsovat skript pouze tehdy, přistupovalo-li se k němu přes přesměrovací pravidlo WWW serveru.

Přesměrování se v konfiguraci Apache obvykle nastavuje následujícími direktivami:

Action php-script /cgi-bin/php
AddHandler php-script .php

Tato volba byla testována pouze s web serverem Apache a spoléhá na to, že Apache nastavuje nestandardní proměnnou prostředí pro CGI na přesměrování požadavků: REDIRECT_STATUS. Nepodporuje-li váš WWW server žádný způsob, jak říci, zda je požadavek přímý nebo přesměrovaný, nemůžete tuto volbu používat a musíte použít jeden z dalších zde zdokumnetovaných způsobů spouštění CGI verze PHP.

Případ 3: nastavení doc_root nebo user_dir

Při vkládání aktivního obsahu, jako jsou skripty a programy, u web serveru někdy dochází k nebezpečných praktikám. Pokud nejsou, kvůli nějaké konfigurační chybě, skripty prováděny, nýbrž zobrazovány jako běžné HTML dokumenty, může dojít k úniku duševního vlastnictví nebo bezpečenostních informací (např. hesel). Proto bude mnoho správců nastavení jiné adresářové struktury pro skripty, ke kterých lze přistupovat pouze přes PHP CGI, a jsou tedy vždy interpretovány a nikdy zobrazovány.

Také není-li k dispozici metoda k zajištění, že budou požadavky přesměrovávány, jak je popsáno v předchozí sekci, je třeba nastavit skriptový doc_root na jinou hodnotu (umístění) než na kořenový adresář webových dokumentů.

Skriptový kořenový adresář můžete nastavit konfigurační direktivou doc_root v konfiguračním souboru nebo lze také nastavit proměnnou prostředí PHP_DOCUMENT_ROOT. Je-li toto nastaveno, CGI verze PHP vždy zkonstruuje název souboru k otevření s tímto parametrem doc_root a s informací o cestě v požadavku, takže si můžete být jisti, že se nespustí žádný skript mimo tento adresář (kromě user_dir - viz níže).

Jinou zde použitelnou možností je parametr user_dir. Není-li nastaven, jedinou věcí, která řídí určení názvu otevíraného souboru, je parametr doc_root. Otevření URL jako http://my.host/~user/doc.php nezpůsobí otevření souboru pod domovským adresářem uživatele, nýbrž souboru nazvaného ~user/doc.php pod doc_root (ano, adresáře s názvem začínajícím vlnovkou [~]).

Je-li parametr user_dir nastaven např. na public_phppožadavek na http://my.host/~user/doc.php otevře soubor s názvem doc.php v adresáři public_php pod domovským adresářem uživatele. Je-li domovským adresářem /home/user, spuštěným souborem bude /home/user/public_php/doc.php.

Expanze user_dir se děje bez ohledu na nastavení parametru doc_root, takže můžete přístup do kořenového adresáře dokumnetů a do domovských adresářů řídit odděleně.

Případ 4: PHP parser mimo WWW strom

Velmi bezpečnou možností je umístit soubor s PHP parserem někam mimo webový strom. Např. do adresáře /usr/local/bin. Jedinou skutečnou nevýhodou je, že budete nyní muset vložit řádek podobný tomuto:

#!/usr/local/bin/php

jako první řádek každého souboru obsahujícího PHP příkazy. Navíc budete muset soubor nastavit jako spustitelný. Tj. naložit s ním naprosto stejně, jako byste naložili s jakýmkoli jiným CGI skriptem napsaným v Perlu, sh nebo jiném běžném skriptovacím jazyce, který používá ke svému spouštění tzv. shell-escape (#!) mechanismus.

Aby se v této konfiguraci správně zpracovaly informace PATH_INFO a PATH_TRANSLATED, PHP parser by měl být zkompilován s volbou --enable-discard-path.

Předcházející | Domů | Další
Bezpečnost | Nahoru | Instalace jako modulu do Apache


Instalace jako modulu do Apache

Používá-li se PHP jako modul do Apache, dědí přístupová práva uživatele Apache (typicky uživatele "nobody"). To přináší určité problémy s bezpečností a autorizací. Používáte-li například PHP pro přístup k databázi, aniž by tato databáze měla zabudované řízení přístupu, budete muset tuto databázi zpřístupnit uživateli "nobody". To znamená, že škodlivý skript může přistupovat k databázi a měnit ji bez uživatelského jména a hesla. Je vcelku možné, že webový pavouk projde přes administrátorskou stránku a zničí všechny vaše databáze. Proti tomu se můžete chránit pomocí autorizace Apache nebo vytvořit vlastní přístupový model za pomoci LDAP, souborů .htaccess, apod., a vkládat tento kód do vašich PHP skriptů.

Často, když už se bezpečnostní řešení umístí do bodu, kde má PHP uživatel (v tomto případě Apache uživatel) malá rizika s tím spojená, se zjistí, že se PHP zamezilo zapisovat jakékoli soubory do uživatelských adresářů. Nebo že se zamezilo přístupu nebo změně databáze. To se rovná ochraně před zápisem dobrých i špatných souborů, nebo provádění dobrých i špatných databázových transakcí.

Častou bezpečnostní chybou, která se v tomto místě dělá, je přidělení superuživatelských (root) práv serveru Apache nebo jiné posílení jeho pravomocí.

Posílení práv uživatele Apache na superuživatele je extrémně nebezpečné a může zkompromitovat celý systém, takže kdo není bezpečnostní profesionál, neměl by zde používat "su", "chroot" a podobně pracující příkazy.

Existují jednodušší řešení. Použitím open_basedir můžete řídit a omezovat, které adresáře lze v PHP používat. Můžete také nastavit oblasti pouze pro Apache a omezit tak všechny webové aktivity na ne-uživatelské nebo ne-systémové soubory.

Předcházející | Domů | Další
Instalace PHP jako CGI binární aplikace | Nahoru | Bezpečnost souborového systému


Bezpečnost souborového systému

PHP pracuje v rámci bezpečnostního modelu zabudovaného do většiny serverových systémů, fungujících na bázi práv k souborům a adresářům. To umožňuje určovat, které soubory z filesystému se smějí číst. Je třeba si dát pozor u souborů, které jsou čitelné "celému světu", z hlediska zajištění, aby byly bezpečně čitelné pro všechny uživatele, kteří mají k tomuto souborovému systému přístup.

Jelikož bylo PHP navrženo pro umožnění přístupu k filesystému na uživatelské úrovni, je vcelku možné napsat PHP skript, který umožní číst systémové soubory jako /etc/passwd, modifikovat vaše ethernetová připojení, odesílat masivní tiskové úlohy apod. To má jasné důsledky, kdy musíte zajistit, že soubory, ze kterých se čte nebo do kterých se zapisuje, jsou ty správné.

Uvažme následující skript, kde uživatel indikuje, že by chtěl smazat soubor v domovském adresáři. To předpokládá situaci, kde webové rozhraní PHP je normálně použito ke správě souborů, takže uživatel Apache má právo mazat soubory v domovských adresářích uživatelů.

Příklad 15-1. Chabá kontrola proměnných vede k....

<?php
// odstraň soubor z domovského adresáře uživatele
$username = $_POST['user_submitted_name'];
$homedir = "/home/$username";
$file_to_delete = "$userfile";
unlink ("$homedir/$userfile");
echo "$file_to_delete byl smazán!";
?>
Jelikož lze uživatelské jméno poslat z formuláře, lze poslat uživatelské jméno a název souboru kohokoliv jiného a mazat jeho soubory. V takovém případě byste měli chtít používat nějakou formu ověření identity. Uvažte, co se může stát, kdyby odeslané proměnné byly "../etc/" a "passwd". Kód by pak mohl efektivně číst:

Příklad 15-2. ... Útok na filesystém

<?php
// odstraní soubor odkudkoli na disku, kam má PHP uživatel přístup.
// Má-li PHP práva roota:
$username = "../etc/";
$homedir = "/home/../etc/";
$file_to_delete = "passwd";
unlink ("/home/../etc/passwd");
echo "/home/../etc/passwd byl smazán!";
?>
Existují dvě důležitá omezení, která by měla podobným případům zabránit.

  • Povolte pouze omezená práva k PHP programu.

  • Ověřujte všechny proměnné, které jsou odesílány na server.

Tady je vylepšený skript:

Příklad 15-3. Bezpečnější ověřování názvu souboru

<?php
// odstraní soubor na disku, kam má PHP uživatel přístup.
$username = $_SERVER['REMOTE_USER']; // použití autentizačního mechanismu

$homedir = "/home/$username";

$file_to_delete = basename("$userfile"); // oříznutí cesty
unlink ($homedir/$file_to_delete);

$fp = fopen("/home/logging/filedelete.log","+a"); //záznam smazání
$logstring = "$username $homedir $file_to_delete";
fputs ($fp, $logstring);
fclose($fp);

echo "$file_to_delete byl smazán!";
?>
However, even this is not without it's flaws. If your authentication system allowed users to create their own user logins, and a user chose the login "../etc/", the system is once again exposed. For this reason, you may prefer to write a more customized check:

Příklad 15-4. Bezpečnější test názvu souboru

<?php
$username = $_SERVER['REMOTE_USER']; // using an authentication mechanisim
$homedir = "/home/$username";

if (!ereg('^[^./][^/]*$', $userfile))
     die('bad filename'); //die, do not process

if (!ereg('^[^./][^/]*$', $username))
     die('bad username'); //die, do not process
//etc...
?>

Depending on your operating system, there are a wide variety of files which you should be concerned about, including device entries (/dev/ or COM1), configuration files (/etc/ files and the .ini files), well known file storage areas (/home/, My Documents), etc. For this reason, it's usually easier to create a policy where you forbid everything except for what you explicitly allow.

Předcházející | Domů | Další
Instalace jako modulu do Apache | Nahoru | Bezpečnost databází


Bezpečnost databází

Nowadays, databases are cardinal components of any web based application by enabling websites to provide varying dynamic content. Since very sensitive or secret information can be stored in a database, you should strongly consider protecting your databases.

To retrieve or to store any information you need to connect to the database, send a legitimate query, fetch the result, and close the connection. Nowadays, the commonly used query language in this interaction is the Structured Query Language (SQL). See how an attacker can tamper with an SQL query.

As you can surmise, PHP cannot protect your database by itself. The following sections aim to be an introduction into the very basics of how to access and manipulate databases within PHP scripts.

Keep in mind this simple rule: defense in depth. The more places you take action to increase the protection of your database, the less probability of an attacker succeeding in exposing or abusing any stored information. Good design of the database schema and the application deals with your greatest fears.

Návrh databází

The first step is always to create the database, unless you want to use one from a third party. When a database is created, it is assigned to an owner, who executed the creation statement. Usually, only the owner (or a superuser) can do anything with the objects in that database, and in order to allow other users to use it, privileges must be granted.

Applications should never connect to the database as its owner or a superuser, because these users can execute any query at will, for example, modifying the schema (e.g. dropping tables) or deleting its entire content.

You may create different database users for every aspect of your application with very limited rights to database objects. The most required privileges should be granted only, and avoid that the same user can interact with the database in different use cases. This means that if intruders gain access to your database using your applications credentials, they can only effect as many changes as your application can.

You are encouraged not to implement all the business logic in the web application (i.e. your script), instead do it in the database schema using views, triggers or rules. If the system evolves, new ports will be intended to open to the database, and you have to re-implement the logic in each separate database client. Over and above, triggers can be used to transparently and automatically handle fields, which often provides insight when debugging problems with your application or tracing back transactions.

Připojení na databázi

You may want to estabilish the connections over SSL to encrypt client/server communications for increased security, or you can use ssh to encrypt the network connection between clients and the database server. If either of these is used, then monitoring your traffic and gaining information about your database will be difficult for a would-be attacker.

Šifrovaný model uložení dat

SSL/SSH protects data travelling from the client to the server, SSL/SSH does not protect the persistent data stored in a database. SSL is an on-the-wire protocol.

Once an attacker gains access to your database directly (bypassing the webserver), the stored sensitive data may be exposed or misused, unless the information is protected by the database itself. Encrypting the data is a good way to mitigate this threat, but very few databases offer this type of data encryption.

The easiest way to work around this problem is to first create your own encryption package, and then use it from within your PHP scripts. PHP can assist you in this with several extensions, such as Mcrypt and Mhash, covering a wide variety of encryption algorithms. The script encrypts the data before inserting it into the database, and decrypts it when retrieving. See the references for further examples of how encryption works.

In case of truly hidden data, if its raw representation is not needed (i.e. not be displayed), hashing may also be taken into consideration. The well-known example for the hashing is storing the MD5 hash of a password in a database, instead of the password itself. See also crypt() and md5().

Příklad 15-5. Using hashed password field

// storing password hash
$query  = sprintf("INSERT INTO users(name,pwd) VALUES('%s','%s');",
            addslashes($username), md5($password));
$result = pg_exec($connection, $query);

// querying if user submitted the right password
$query = sprintf("SELECT 1 FROM users WHERE name='%s' AND pwd='%s';",
            addslashes($username), md5($password));
$result = pg_exec($connection, $query);

if (pg_numrows($result) > 0) {
    echo "Welcome, $username!";
}
else {
    echo "Authentication failed for $username.";
}

SQL Injection (vpašování SQL kódu)

Many web developers are unaware of how SQL queries can be tampered with, and assume that an SQL query is a trusted command. It means that SQL queries are able to circumvent access controls, thereby bypassing standard authentication and authorization checks, and sometimes SQL queries even may allow access to host operating system level commands.

Direct SQL Command Injection is a technique where an attacker creates or alters existing SQL commands to expose hidden data, or to override valuable ones, or even to execute dangerous system level commands on the database host. This is accomplished by the application taking user input and combining it with static parameters to build a SQL query. The following examples are based on true stories, unfortunately.

Owing to the lack of input validation and connecting to the database on behalf of a superuser or the one who can create users, the attacker may create a superuser in your database.

Příklad 15-6. Splitting the result set into pages ... and making superusers (PostgreSQL and MySQL)

$offset = argv[0]; // beware, no input validation!
$query  = "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;";
// with PostgreSQL
$result = pg_exec($conn, $query);
// with MySQL
$result = mysql_query($query);
Normal users click on the 'next', 'prev' links where the $offset is encoded into the URL. The script expects that the incoming $offset is a decimal number. However, what if someone tries to break in by appending a urlencode()'d form of the following to the URL

// in case of PostgreSQL
0;
insert into pg_shadow(usename,usesysid,usesuper,usecatupd,passwd)
    select 'crack', usesysid, 't','t','crack'
    from pg_shadow where usename='postgres';
--

// in case of MySQL
0;
UPDATE user SET Password=PASSWORD('crack') WHERE user='root';
FLUSH PRIVILEGES;

If it happened, then the script would present a superuser access to him. Note that 0; is to supply a valid offset to the original query and to terminate it.

Poznámka: It is common technique to force the SQL parser to ignore the rest of the query written by the developer with -- which is the comment sign in SQL.

A feasible way to gain passwords is to circumvent your search result pages. The only thing the attacker needs to do is to see if there are any submitted variables used in SQL statements which are not handled properly. These filters can be set commonly in a preceding form to customize WHERE, ORDER BY, LIMIT and OFFSET clauses in SELECT statements. If your database supports the UNION construct, the attacker may try to append an entire query to the original one to list passwords from an arbitrary table. Using encrypted password fields is strongly encouraged.

Příklad 15-7. Listing out articles ... and some passwords (any database server)

$query  = "SELECT id, name, inserted, size FROM products
                  WHERE size = '$size'
                  ORDER BY $order LIMIT $limit, $offset;";
$result = odbc_exec($conn, $query);
The static part of the query can be combined with another SELECT statement which reveals all passwords:

'
union select '1', concat(uname||'-'||passwd) as name, '1971-01-01', '0' from usertable;
--

If this query (playing with the ' and --) were assigned to one of the variables used in $query, the query beast awakened.

SQL UPDATE's are also susceptible to attack. These queries are also threatened by chopping and appending an entirely new query to it. But the attacker might fiddle with the SET clause. In this case some schema information must be possessed to manipulate the query successfully. This can be acquired by examining the form variable names, or just simply brute forcing. There are not so many naming conventions for fields storing passwords or usernames.

Příklad 15-8. From resetting a password ... to gaining more privileges (any database server)

$query = "UPDATE usertable SET pwd='$pwd' WHERE uid='$uid';";
But a malicious user sumbits the value ' or uid like'%admin%'; -- to $uid to change the admin's password, or simply sets $pwd to "hehehe', admin='yes', trusted=100 " (with a trailing space) to gain more privileges. Then, the query will be twisted:

// $uid == ' or uid like'%admin%'; --
$query = "UPDATE usertable SET pwd='...' WHERE uid='' or uid like '%admin%'; --";

// $pwd == "hehehe', admin='yes', trusted=100 "
$query = "UPDATE usertable SET pwd='hehehe', admin='yes', trusted=100 WHERE ...;"

A frightening example how operating system level commands can be accessed on some database hosts.

Příklad 15-9. Attacking the database hosts operating system (MSSQL Server)

$query  = "SELECT * FROM products WHERE id LIKE '%$prod%'";
$result = mssql_query($query);
If attacker submits the value a%' exec master..xp_cmdshell 'net user test testpass /ADD' -- to $prod, then the $query will be:

$query  = "SELECT * FROM products
                    WHERE id LIKE '%a%'
                    exec master..xp_cmdshell 'net user test testpass /ADD'--";
$result = mssql_query($query);

MSSQL Server executes the SQL statements in the batch including a command to add a new user to the local accounts database. If this application were running as sa and the MSSQLSERVER service is running with sufficient privileges, the attacker would now have an account with which to access this machine.

Poznámka: Some of the examples above is tied to a specific database server. This does not mean that a similar attack is impossible against other products. Your database server may be similarly vulnerable in another manner.

Techniky ochrany

You may plead that the attacker must possess a piece of information about the database schema in most examples. You are right, but you never know when and how it can be taken out, and if it happens, your database may be exposed. If you are using an open source, or publicly available database handling package, which may belong to a content management system or forum, the intruders easily produce a copy of a piece of your code. It may be also a security risk if it is a poorly designed one.

These attacks are mainly based on exploiting the code not being written with security in mind. Never trust any kind of input, especially that which comes from the client side, even though it comes from a select box, a hidden input field or a cookie. The first example shows that such a blameless query can cause disasters.

  • Nikdy se nepřipojujte na databázi jako superuživatel nebo vlastník databáze. Vždy používejte zvláštní uživatele s velmi omezenými právy.

  • Check if the given input has the expected data type. PHP has a wide range of input validating functions, from the simplest ones found in Variable Functions and in Character Type Functions (e.g. is_numeric(), ctype_digit() respectively) and onwards to the Perl compatible Regular Expressions support.

  • If the application waits for numerical input, consider verifying data with is_numeric(), or silently change its type using settype(), or use its numeric representation by sprintf().

    Příklad 15-10. A more secure way to compose a query for paging

    settype($offset, 'integer');
$query = "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;";

// please note %d in the format string, using %s would be meaningless
$query = sprintf("SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET %d;",
                 $offset);

  • Quote each non numeric user input which is passed to the database with addslashes() or addcslashes(). See the first example. As the examples shows, quotes burnt into the static part of the query is not enough, and can be easily cracked.

  • Do not print out any database specific information, especially about the schema, by fair means or foul. See also Error Reporting and Error Handling and Logging Functions.

  • You may use stored procedures and previously defined cursors to abstract data access so that users do not directly access tables or views, but this solution has another impacts.

Besides these, you benefit from logging queries either within your script or by the database itself, if it supports logging. Obviously, the logging is unable to prevent any harmful attempt, but it can be helpful to trace back which application has been circumvented. The log is not useful by itself, but through the information it contains. More detail is generally better than less.

Předcházející | Domů | Další
Bezpečnost souborového systému | Nahoru | Hlášení chyb


Hlášení chyb

With PHP security, there are two sides to error reporting. One is beneficial to increasing security, the other is detrimental.

A standard attack tactic involves profiling a system by feeding it improper data, and checking for the kinds, and contexts, of the errors which are returned. This allows the system cracker to probe for information about the server, to determine possible weaknesses. For example, if an attacker had gleaned information about a page based on a prior form submission, they may attempt to override variables, or modify them:

Příklad 15-11. Attacking Variables with a custom HTML page

<form method="post" action="attacktarget?username=badfoo&password=badfoo">
<input type="hidden" name="username" value="badfoo" />
<input type="hidden" name="password" value="badfoo" />
</form>

The PHP errors which are normally returned can be quite helpful to a developer who is trying to debug a script, indicating such things as the function or file that failed, the PHP file it failed in, and the line number which the failure occured in. This is all information that can be exploited. It is not uncommon for a php developer to use show_source(), highlight_string(), or highlight_file() as a debugging measure, but in a live site, this can expose hidden variables, unchecked syntax, and other dangerous information. Especially dangerous is running code from known sources with built-in debugging handlers, or using common debugging techniques. If the attacker can determine what general technique you are using, they may try to brute-force a page, by sending various common debugging strings:

Příklad 15-12. Exploiting common debugging variables

<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>

Regardless of the method of error handling, the ability to probe a system for errors leads to providing an attacker with more information.

For example, the very style of a generic PHP error indicates a system is running PHP. If the attacker was looking at an .html page, and wanted to probe for the back-end (to look for known weaknesses in the system), by feeding it the wrong data they may be able to determine that a system was built with PHP.

A function error can indicate whether a system may be running a specific database engine, or give clues as to how a web page or programmed or designed. This allows for deeper investigation into open database ports, or to look for specific bugs or weaknesses in a web page. By feeding different pieces of bad data, for example, an attacker can determine the order of authentication in a script, (from the line number errors) as well as probe for exploits that may be exploited in different locations in the script.

A filesystem or general PHP error can indicate what permissions the webserver has, as well as the structure and organization of files on the web server. Developer written error code can aggravate this problem, leading to easy exploitation of formerly "hidden" information.

There are three major solutions to this issue. The first is to scrutinize all functions, and attempt to compensate for the bulk of the errors. The second is to disable error reporting entirely on the running code. The third is to use PHP's custom error handling functions to create your own error handler. Depending on your security policy, you may find all three to be applicable to your situation.

One way of catching this issue ahead of time is to make use of PHP's own error_reporting(), to help you secure your code and find variable usage that may be dangerous. By testing your code, prior to deployment, with E_ALL, you can quickly find areas where your variables may be open to poisoning or modification in other ways. Once you are ready for deployment, by using E_NONE, you insulate your code from probing.

Příklad 15-13. Finding dangerous variables with 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");
}
?>

Předcházející | Domů | Další
Bezpečnost databází | Nahoru | Registrace globálních proměnných (Register Globals)


Registrace globálních proměnných (Register Globals)

Perhaps the most controversial change in PHP is when the default value for the PHP directive register_globals went from ON to OFF in PHP 4.2.0. Reliance on this directive was quite common and many people didn't even know it existed and assumed it's just how PHP works. This page will explain how one can write insecure code with this directive but keep in mind that the directive itself isn't insecure but rather it's the misuse of it.

When on, register_globals will inject (poison) your scripts will all sorts of variables, like request variables from HTML forms. This coupled with the fact that PHP doesn't require variable initialization means writing insecure code is that much easier. It was a difficult decision, but the PHP community decided to disable this directive by default. When on, people use variables yet really don't know for sure where they come from and can only assume. Internal variables that are defined in the script itself get mixed up with request data sent by users and disabling register_globals changes this. Let's demonstrate with an example misuse of register_globals:

Příklad 15-14. Example misuse with register_globals = on

<?php
// define $authorized = true only if user is authenticated
if (authenticated_user()) {
    $authorized = true;
}

// Because we didn't first initialize $authorized as false, this might be
// defined through register_globals, like from GET auth.php?authorized=1
// So, anyone can be seen as authenticated!
if ($authorized) {
    include "/highly/sensitive/data.php";
}
?>

When register_globals = on, our logic above may be compromised. When off, $authorized can't be set via request so it'll be fine, although it really is generally a good programming practice to initialize variables first. For example, in our example above we might have first done $authorized = false. Doing this first means our above code would work with register_globals on or off as users by default would be unauthorized.

Another example is that of sessions. When register_globals = on, we could also use $username in our example below but again you must realize that $username could also come from other means, such as GET (through the URL).

Příklad 15-15. Example use of sessions with register_globals on or off

<?php
// We wouldn't know where $username came from but do know $_SESSION is
// for session data
if (isset($_SESSION['username'])) {

    echo "Hello <b>{$_SESSION['username']}</b>";

} else {

    echo "Hello <b>Guest</b><br />";
    echo "Would you like to login?";

}
?>

It's even possible to take preventative measures to warn when forging is being attempted. If you know ahead of time exactly where a variable should be coming from, you can check to see if the submitted data is coming from an inappropriate kind of submission. While it doesn't guarantee that data has not been forged, it does require an attacker to guess the right kind of forging. If you don't care where the request data comes from, you can use $_REQUEST as it contains a mix of GET, POST and COOKIE data. See also the manual section on using variables from outside of PHP.

Příklad 15-16. Detecting simple variable poisoning

<?php
if (isset($_COOKIE['MAGIC_COOKIE'])) {

    // MAGIC_COOKIE comes from a cookie.
    // Be sure to validate the cookie data!

} elseif (isset($_GET['MAGIC_COOKIE']) || isset($_POST['MAGIC_COOKIE'])) {

   mail("admin@example.com", "Possible breakin attempt", $_SERVER['REMOTE_ADDR']);
   echo "Security violation, admin has been alerted.";
   exit;

} else {

   // MAGIC_COOKIE isn't set through this REQUEST

}
?>

Of course, simply turning off register_globals does not mean your code is secure. For every piece of data that is submitted, it should also be checked in other ways. Always validate your user data and initialize your variables! To check for unitialized variables you may turn up error_reporting() to show E_NOTICE level errors.

dostupnost superglobálních proměnných: Od PHP 4.1.0 jsou k dispozici superglobální pole jako $_GET , $_POST a $_SERVER. Pro více informací viz část manuálu o superglobals

Předcházející | Domů | Další
Hlášení chyb | Nahoru | Data posílaná uživatelem


Data posílaná uživatelem

The greatest weakness in many PHP programs is not inherent in the language itself, but merely an issue of code not being written with security in mind. For this reason, you should always take the time to consider the implications of a given piece of code, to ascertain the possible damage if an unexpected variable is submitted to it.

Příklad 15-17. Dangerous Variable Usage

<?php
// remove a file from the user's home directory... or maybe
// somebody else's?
unlink ($evil_var);

// Write logging of their access... or maybe an /etc/passwd entry?
fputs ($fp, $evil_var);

// Execute something trivial.. or rm -rf *?
system ($evil_var);
exec ($evil_var);

?>
You should always carefully examine your code to make sure that any variables being submitted from a web browser are being properly checked, and ask yourself the following questions:

  • Will this script only affect the intended files?

  • Can unusual or undesirable data be acted upon?

  • Can this script be used in unintended ways?

  • Can this be used in conjunction with other scripts in a negative manner?

  • Will any transactions be adequately logged?

By adequately asking these questions while writing the script, rather than later, you prevent an unfortunate re-write when you need to increase your security. By starting out with this mindset, you won't guarantee the security of your system, but you can help improve it.

You may also want to consider turning off register_globals, magic_quotes, or other convenience settings which may confuse you as to the validity, source, or value of a given variable. Working with PHP in error_reporting(E_ALL) mode can also help warn you about variables being used before they are checked or initialized (so you can prevent unusual data from being operated upon).

Předcházející | Domů | Další
Registrace globálních proměnných (Register Globals) | Nahoru | Skrývání PHP


Skrývání PHP

In general, security by obscurity is one of the weakest forms of security. But in some cases, every little bit of extra security is desirable.

A few simple techniques can help to hide PHP, possibly slowing down an attacker who is attempting to discover weaknesses in your system. By setting expose_php = off in your php.ini file, you reduce the amount of information available to them.

Another tactic is to configure web servers such as apache to parse different filetypes through PHP, either with an .htaccess directive, or in the apache configuration file itself. You can then use misleading file extensions:

Příklad 15-18. Hiding PHP as another language

# Make PHP code look like other code types
AddType application/x-httpd-php .asp .py .pl
Or obscure it completely:

Příklad 15-19. Using unknown types for PHP extensions

# Make PHP code look like unknown types
AddType application/x-httpd-php .bop .foo .133t
Or hide it as HTML code, which has a slight performance hit because all HTML will be parsed through the PHP engine:

Příklad 15-20. Using HTML types for PHP extensions

# Make all PHP code look like HTML
AddType application/x-httpd-php .htm .html
For this to work effectively, you must rename your PHP files with the above extensions. While it is a form of security through obscurity, it's a minor preventative measure with few drawbacks.

Předcházející | Domů | Další
Data posílaná uživatelem | Nahoru | Udržování aktuálnosti


Udržování aktuálnosti

PHP, jako jakýkoli jiný velký systém, je podrobován neustálé kontrole a vylepšování. Každá nová verze často zahrnuje jak velké, tak malé změny, které jej rozšiřují a opravují bezpečnostní chyby, konfigurační nepřijemnosti a jiné skutečnosti, které mají vliv na celkovou bezpečnost a stabilitu vašeho systému.

Jako u jiných skriptovacích jazyků a programů běžících na systémové úrovni, je nejlepší cestou často aktualizovat a hlídat si dostupnost nejnovějších verzí a jejich změny.

Předcházející | Domů | Další
Skrývání PHP | Nahoru | Vlastnosti


Vlastnosti

Manuál PHP
Předcházející Další

IV. Vlastnosti

Obsah
16. HTTP autentikace a PHP
17. Cookies
18. Zpracování uploadu souborů
19. Použití vzdálených souborů
20. Obsluha spojení
21. Persistentní databázová spojení
22. Bezpečný režim
23. Použití PHP z příkazové řádky

Předcházející | Domů | Další
Udržování aktuálnosti |  | HTTP autentikace a PHP


HTTP autentikace a PHP

Manuál PHP
Předcházející Další

Kapitola 16. HTTP autentikace a PHP

Prostředky HTTP autentikace jsou v PHP přístupné pouze pokud PHP běží jako modul Apache, tudíž nejsou přístupné v CGI verzi. V PHP skriptu běžícím pod modulem Apache lze použít funkci header() k odeslání zprávy "Authentication Required" klientskému browseru, což vyvolá zobrazení dialogového okna pro vložení uživatelského jména a hesla. Jakmile uživatel zadá jméno a heslo, URL obsahující tento PHP skript se zavolá znovu s proměnnými $PHP_AUTH_USER, $PHP_AUTH_PW and $PHP_AUTH_TYPE obsahujícími jméno, heslo a typ autentikace. V současnosti je podporována pouze "Basic" autentikace. Více informací viz funkce header().

Následující fragment kódu může posloužit jako ukázka vyžádání autentikace uživatele na stránce:

Příklad 16-1. Ukázka HTTP Autentikace

<?php
  if(!isset($PHP_AUTH_USER)) {
    Header("WWW-Authenticate: Basic realm=\"My Realm\"");
    Header("HTTP/1.0 401 Unauthorized");
    echo "Text, který se odešle, pokud uživatel zmáčkne tlačítko Cancel\n";
    exit;
  } else {
    echo "Ahoj $PHP_AUTH_USER.<P>";
    echo "Jako heslo jsi zadal $PHP_AUTH_PW.<P>";
  }
?>

Místo protého vytištění $PHP_AUTH_USER a $PHP_AUTH_PW byste asi chtěli ověřit platnost zadaného jména a hesla. Například dotazem v databázi nebo vyhledáním uživatele v dbm souboru.

Pozor na chybové browsery Internet Explorer. Zdá se, že jsou velice vybíravé, pokud jde o pořadí hlaviček. Zdá se, že odeslání hlavičky WWW-Authenticate před hlavičkou HTTP/1.0 401 zabírá.

Aby se zabránilo psaní skriptů odhalujících hesla na stránkách autentikovaných některým z tradičních externích mechanismů, PHP_AUTH proměnné se nevytvoří, pokud je pro tu kterou stránku zapnuta externí autentikace. V takovém případě můžete k identifikaci externě autentikovaného uživatele použít proměnnou $REMOTE_USER.

Všimněte si nicméně, že výše uvedené nezabrání krádežím hesel z autentikovaných URL osobou, která ovládá neautentikovanou URL na stejném serveru.

Jak Netscape, tak Internet Explorer po přijetí response kódu 401 vyprázdní autentikační cache současného realmu. Tak můžete uživatele v podstatě "odlogovat". Někteří lidé toho využívají k "vypršení" přihlášení nebo tvorbě odhlašovacího tlačítka.

Příklad 16-2. Ukázka HTTP autentikace vyžadující nové jméno a heslo

<?php
  function authenticate() {
    Header( "WWW-Authenticate: Basic realm=\"Test Authentication System\"");
    Header( "HTTP/1.0 401 Unauthorized");
    echo "K přístupu na tento zdroj musíte zadat platné ID a heslo\n";
    exit;
  }

  if(!isset($PHP_AUTH_USER) || ($SeenBefore == 1 && !strcmp($OldAuth, $PHP_AUTH_USER)) ) {
   authenticate();
  }
  else {
   echo "Welcome: $PHP_AUTH_USER<BR>";
   echo "Old: $OldAuth";
   echo "<FORM ACTION=\"$PHP_SELF\" METHOD=POST>\n";
   echo "<INPUT TYPE=HIDDEN NAME=\"SeenBefore\" VALUE=\"1\">\n";
   echo "<INPUT TYPE=HIDDEN NAME=\"OldAuth\" VALUE=\"$PHP_AUTH_USER\">\n";
   echo "<INPUT TYPE=Submit VALUE=\"Re Authenticate\">\n";
   echo "</FORM>\n";
  }
?>

Podle standardu HTTP Basic authentication se toto chování nevyžaduje, takže byste na to nikdy neměli spoléhat. Pokusy s Lynxem ukázaly, že Lynx po přijetí response kódu 401 nevyprázdní autentikační údaje, takže po stisknutí back a forward se znovu ukáže požadovaný zdroj (pokud se nezměnily požadavky na údaje).

Dále si všimněte, že tato vlastnost při použití IIS serveru a CGI verze PHP díky omezením IIS nefunguje.

Předcházející | Domů | Další
Vlastnosti | Nahoru | Cookies


Cookies

Manuál PHP
Předcházející Další

Kapitola 17. Cookies

PHP transparentně podporuje HTTP cookies. Cookies jsou mechanismem na ukládání dat ve vzdáleném browseru a tudíž sledování nebo identifikaci vracejících se uživatelů. Cookies můžete nastavovat pomocí funkce setcookie(). Cookies jsou součástí HTTP hlavičky, tudíž setcookie() se musí volat před odesláním výstupu do browseru. To je stejné omezení, jako má funkce header().

Všechny cookies přijaté od klienta se automaticky stávají PHP proměnnou stejně jako u GET a POST dat. Pokud chcete přiřadit jednomu cookie více hodnot, přidejte [] na konec jména cookie. Více detailů viz funkce setcookie().

Předcházející | Domů | Další
HTTP autentikace a PHP | Nahoru | Zpracování uploadu souborů


Zpracování uploadu souborů

Manuál PHP
Předcházející Další

Kapitola 18. Zpracování uploadu souborů

Obsah
Uploading metodou POST
Častá úskalí
Uploading více souborů
Podpora metody PUT

Uploading metodou POST

PHP umožňuje zpracování uploadu souborů z jakéhokoli prohlížeče vyhovujícího RFC-1867 (což zahrnuje mj. Netscape Navigator 3 a pozdější, Microsoft Internet Explorer 3 se záplatou od Microsoftu, nebo pozdější bez záplaty). Tato schopnost umožňuje lidem uploadovat textové i binární soubory. S autentizací poskytovanou PHP a s funkcemi pro manipulaci se soubory máte plnou kontrolu nad tím, kdo smí uploadovat a co se má udělat s uploadovaným souborem.

Nezapomeňte, že PHP podporuje také uploady metodou PUT tak, jak se používá v Netscape Composeru a v editoru Amaya od W3C. Pro bližší detaily viz Podpora metody PUT.

Obrazovka pro upload souboru může být tvořena speciálním formulářem, který vypadá podobně jako tento:

Příklad 18-1. Formulář pro upload souboru

<form enctype="multipart/form-data" action="_URL_" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="1000">
Send this file: <input name="userfile" type="file">
<input type="submit" value="Send File">
</form>
_URL_ by mělo označovat PHP soubor. Skryté pole MAX_FILE_SIZE musí předcházet pole pro vložení souboru a jeho hodnota specifikuje maximální akceptovanou velikost souboru. Hodnota je v bytech.

Varování

Hodnota MAX_FILE_SIZE je z hlediska prohlížeče pouze informativní. Je snadné ji obejít. Takže nepočítejte s tím, že prohlížeč se bude chovat tak, jak si přejete. Nastavení maximální velikosti v PHP však samozřejmě nemůže být obelstěno.

Proměnné definované pro uploadované soubory se liší v závislosti na verzi a konfiguraci PHP. Pokud je aktivní volba track_vars, bude inicializováno pole $HTTP_POST_FILES/$_FILES. Konečně, související proměnné mohou být inicializovány jako globální, pokud je zapnuta volba register_globals. Ovšem používání globálních proměnných není doporučeno. Po úspěšném uploadu budou v cílovém skriptu definovány následující proměnné:

Poznámka: track_vars je od PHP 4.0.3 vždy zapnuto. U PHP 4.1.0 a pozdějších může být použito $_FILES namísto $HTTP_POST_FILES. $_FILES je vždy globální proměnná, takže by se neměla používat specifikace global pro proměnnou $_FILES.

$HTTP_POST_FILES/$_FILES obsahuje informace o uploadovaném souboru.

Obsah $HTTP_POST_FILES je takovýto (uvědomte si, že se předpokládá použití názvu uploadovaného souboru 'userfile' tak, jako v příkladu výše):

$HTTP_POST_FILES['userfile']['name']

Originální název souboru na klientském počítači.

$HTTP_POST_FILES['userfile']['type']

MIME typ souboru, pokud prohlížeč tuto informaci poskytuje (např. "image/gif").

$HTTP_POST_FILES['userfile']['size']

Velikost uploadovaného souboru v bytech.

$HTTP_POST_FILES['userfile']['tmp_name']

Dočasný název souboru, pod nímž byl uploadovaný soubor uložen na server.

Poznámka: PHP 4.1.0 a pozdější podporují zkrácený název proměnné $_FILES. PHP 3 nepodporuje $HTTP_POST_FILES.

Obsah proměnnách v situaci, kdy je proměnná register_globals zapnuta nastavením v souboru php.ini (uvědomte si, že se předpokládá použití názvu uploadovaného souboru 'userfile' tak, jako v příkladu výše):

  • $userfile - Dočasný název souboru, pod kterým byl uploadovaný soubor uložen na server.

  • $userfile_name - Originální název souboru nebo cesta na odesílajícím systému.

  • $userfile_size - Velikost uploadovaného souboru v bytech.

  • $userfile_type - MIME typ souboru, pokud prohlížeč tuto informaci poskytuje (např. "image/gif").

Uvědomte si, že proměnná "$userfile" ve skutečnosti představuje název pole <input> se specifikací type="file" ve formuláři. Pro výše uvedený příklad jsme zvolili název "userfile".

Poznámka: Nastavení register_globals = On se nedoporučuje z bezpečnostních a výkonnostních důvodů.

Soubory se implicitně ukládají do systémového adresáře pro dočasné soubory, pokud nebylo direktivou upload_tmp_dir v souboru php.ini stanoveno jinak. Systémový adresář pro dočasné soubory může být změněn nastavení proměnné prostředí TMPDIR v prostředí, kde PHP běží. Nastavení za použití putenv() z PHP skriptu nebude fungovat. Tato proměnná prostředí může být také použita k ujištění se, že všechny ostatní operace pracují s uploadovanými soubory.

Příklad 18-2. Ověřování uploadu souboru

Následující příklady jsou pro verze PHP 4 vyšší než PHP 4.0.2. (viz funkce is_uploaded_file() a move_uploaded_file()).

<?php
// V PHP 4.1.0 a pozdějších by mělo být použito $_FILES namísto $HTTP_POST_FILES.
if (is_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'])) {
    copy($HTTP_POST_FILES['userfile']['tmp_name'], "/place/to/put/uploaded/file");
} else {
    echo "Possible file upload attack. Filename: " . $HTTP_POST_FILES['userfile']['name'];
}
/* ...or... */
move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], "/place/to/put/uploaded/file");
?>

PHP skript, který přijímá uploadované soubory, by měl implementovat veškerou logiku pro stanovení, co by se mělo udělat s uploadovaným souborem. Můžete např. použít proměnnou $HTTP_POST_FILES['userfile']['size'] pro zahození souborů, které jsou příliš malé nebo velké. Mohli byste použít také proměnnou $HTTP_POST_FILES['userfile']['type'] pro filtraci souborů podle MIME datového typu. Bez ohledu na řešení, soubor by měl být smazán nebo přesunut jinam.

Soubor bude automaticky smazán z dočasného adresáře na konci skriptu, pokud nebyl přesunut jinam nebo přejmenován.

Předcházející | Domů | Další
Cookies | Nahoru | Častá úskalí


Častá úskalí

MAX_FILE_SIZE nemůže specifikovat velikost souboru větší než je ta, která byla nastavena pomocí upload_max_filesize v konfiguraci PHP. Implicitně jsou to 2 MB.

Pokud je zapnut limit paměti, může být potřeba větší hodnota memory_limit. Ujistěte se, že je hodnota memory_limit dostatečně velká.

Pokud je nastavená hodnota max_execution_time příliš malá, doba provádění skriptu ji může překročit. Ujistěte se, že je hodnota max_execution_time dostatečně velká.

Pokud je nastavená hodnota post_max_size příliš malá, nemůže být uploadován větší soubor. Ujistěte se, že je hodnota post_max_size dostatečně velká.

Neověřování, se kterým souborem se pracuje, může znamenat, že se uživatelé mohou dostat k citlivým informacím v jiných adresářích.

Uvědomte si prosím, že server CERN httpd odstraňuje všechno, co počínaje první bílou mezerou (whitespace) v MIME hlavičce Content-Type obdrží od klienta. Za existence tohoto jevu nebude CERN httpd podporovat uploading souborů.

Předcházející | Domů | Další
Zpracování uploadu souborů | Nahoru | Uploading více souborů


Uploading více souborů

Více souborů může být uploadování za použití různých názvů name pro souborové pole input.

Je také možné uploadovat více souborů současně a nechat informace automaticky zorganizovat v polích. V takovém případě je třeba použít stejnou syntaxi v HTML formuláři jako pro vícenásobné výběry a zaškrtávací políčka (checkboxy).

Poznámka: Podpora pro upload více souborů byla přidána ve verzi 3.0.10.

Příklad 18-3. Uploading více souborů

<form action="file-upload.php" method="post" enctype="multipart/form-data">
  Send these files:<br>
  <input name="userfile[]" type="file"><br>
  <input name="userfile[]" type="file"><br>
  <input type="submit" value="Send files">
</form>

Pokud je výše uvedený formulář odeslán, pole $HTTP_POST_FILES['userfile'], $HTTP_POST_FILES['userfile']['name'], a $HTTP_POST_FILES['userfile']['size'] budou inicializována (jak $_FILES v PHP 4.1.0 a pozdějším, tak $HTTP_POST_VARS v PHP 3. Pokud je nastavení register_globals aktivní globální proměnné pro uploadované soubory jsou také inicializovány). Každé z nich bude číselně indexované pole odpovídajících hodnot pro odeslané soubory.

Kupříkladu předpokládejme, že se posílají soubory s názvy /home/test/review.html a /home/test/xwp.out. V tom případě by $HTTP_POST_FILES['userfile']['name'][0] obsahovalo hodnotu review.html a $HTTP_POST_FILES['userfile']['name'][1] hodnotu xwp.out. Podobně $HTTP_POST_FILES['userfile']['size'][0] by obsahovalo velikost review.html atd.

$HTTP_POST_FILES['userfile']['name'][0], $HTTP_POST_FILES['userfile']['tmp_name'][0], $HTTP_POST_FILES['userfile']['size'][0] a $HTTP_POST_FILES['userfile']['type'][0] budou rovněž nastaveny.

Předcházející | Domů | Další
Častá úskalí | Nahoru | Podpora metody PUT


Podpora metody PUT

PHP poskytuje podporu pro HTTP PUT metodu používanou klienty jako Netscape Composer nebo W3C Amaya. Požadavky s metodou PUT jsou mnohem jednodušší než upload souborů a vypadají přibližně takto:

PUT /path/filename.html HTTP/1.1

Toto by normálně znamenalo, že by chtěl klient uložit obsah, který následuje za názvem /path/filename.html, do svého webového stromu. To samozřejmě není dobrý nápad, aby Apache nebo PHP automaticky nechal kohokoli přepsat jakékoli soubory ve stromě. Takže, pro zpracování takového požadavku je třeba nejdřív řici vašemu WWW serveru, že chcete požadavek zpracovávat konkrétním PHP skriptem. U serveru Apache se to provede direktivou Script. Může být umístěna kdekoli v konfiguračním souboru Apache. Častými místy jsou bloky <Directory> a <Virtualhost>. Použije se k tomu řádek podobný tomuto:

Skript PUT /put.php

Toto řekne serveru Apache, aby všechny PUT požadavky na nějaký URI vyhovující kontextu posílal skriptu put.php. To pochopitelně předpokládá, že máte povoleno PHP pro příponu .php a PHP je aktivní.

V souboru put.php byste potom mohli napsat něco jako:

<?php copy($PHP_UPLOADED_FILE_NAME,$DOCUMENT_ROOT.$REQUEST_URI); ?>

Toto by mělo zkopírovat soubor na místo požadované vzdáleným klientem. Pravděpodobně byste chtěli provést nějaká ověření a/nebo autentizace uživatele před provedením tohoto zkopírování. Jediným použitelným trikem je, že PHP uloží přenesený soubor do dočasného adresáře podobně, jako při použití metody POST. Až skript skončí, dočasný soubor bude odstraněn. Takže váš PHP skipt pro zpracování PUT požadavků musí soubor zkopírovat jinam. Název souboru v dočasném umístění je uložen v proměnné $PHP_PUT_FILENAME a požadovaný název cílového souboru v proměnné $REQUEST_URI (může se lišit u serverů jiných než Apache). Toto cílové jméno je to jediné, co klient specifikoval. Nemusíte ho poslechnout. Mohli byste, například, kopírovat všechny uploadované soubory do speciálního uploadového adresáře.

Předcházející | Domů | Další
Uploading více souborů | Nahoru | Použití vzdálených souborů


Použití vzdálených souborů

Manuál PHP
Předcházející Další

Kapitola 19. Použití vzdálených souborů

Pokud při konfiguraci PHP aktivujete podporu "URL fopen wrapper" (standardně je zapnutá, ledaže pro configure explicitně zadáte --disable-url-fopen-wrapper příznak (verze do 4.0.3), nebo (u novějších verzí) nastavíte allow_url_fopen v php.ini na off), můžete ve voláních většiny funkcí, které očekávají jako argument název souboru (včetně require() a include()) uvést HTTP nebo FTP URL.

Poznámka: Na Windows nelze používat vzdálené soubory v include() a require() výrazech.

Můžete například otevřít soubor na vzdáleném web serveru, vyseparovat z výstupu data, která potřebujete, a tato data potom použít v dotazu na databázi, nebo je prostě začlenit do výstupu stylem odpovídajícím zbytku vaší web site.

Příklad 19-1. Získání názvu vzdálené stránky

<?php
$file = fopen ("http://www.php.net/", "r");
if (!$file) {
    echo "<p>Nelze otevřít vzdálený soubor.\n";
    exit;
}
while (!feof ($file)) {
    $line = fgets ($file, 1024);
    /* Toto bude fungovat pouze pokud jsou tagy a název na jedné řádce */
    if (eregi ("<title>(.*)</title>", $line, $out)) {
        $title = $out[1];
        break;
    }
}
fclose($file);
?>

Pokud se připojíte jako uživatel s dostatečnými právy, a daný soubor už neexistuje, můžete data také ukládat po FTP. Pokud se chcete připojit jako jiný uživatel než 'anonymous', musíte v URL udat uživatelské jméno (a pravděpodobně i heslo), např. 'ftp://uzivatel:heslo@ftp.example.com/path/to/file'. (Pro přístup k souborům přes HTTP, které vyžadují Basic authentication, můžete použít stejnou syntaxi.)

Příklad 19-2. Uložení dat na vzdáleném serveru

<?php
$file = fopen ("ftp://ftp.php.net/incoming/outputfile", "w");
if (!$file) {
    echo "<p>Nelze otevřít vzdálený soubor pro zápis.\n";
    exit;
}
/* Zapíšeme data. */
fputs ($file, "$HTTP_USER_AGENT\n");
fclose ($file);
?>

Poznámka: Z výše uvedeného příkladu by vás mohlo napadnout využít tuto techniku k zápisu do vzdáleného logu, ale jak už bylo zmíněno výše, pomocí URL fopen() wrapperu můžete zapisovat pouze do nového souboru. Pokud máte zájem o distribuované logování, podívejte se na syslog().

Předcházející | Domů | Další
Podpora metody PUT | Nahoru | Obsluha spojení


Obsluha spojení

Manuál PHP
Předcházející Další

Kapitola 20. Obsluha spojení

Poznámka: Následující text platí pro verzi 3.0.7 a vyšší.

Stav spojení se v PHP interně sleduje. Jsou tři možné stavy:

  • 0 - NORMAL (normální)

  • 1 - ABORTED (zrušeno)

  • 2 - TIMEOUT (vypršel časový limit)

Při normálním běhu PHP skriptu je aktivní stav NORMAL. Pokud se klient odpojí, nastaví se příznak ABORTED. K odpojení vzdáleného klienta typicky dochází, když uživatel zmáčkne tlačítko STOP. Pokud se dosáhne časového limitu (viz set_time_limit()), nastaví se stavový příznak TIMEOUT.

Můžete se rozhodnout jestli chcete, aby odpojení klienta způsobilo předčasné ukončení vašeho skriptu. Někdy je užitečné nechat skripty doběhnout do konce, přestože není vzdáleného browseru, který by přijímal výstup. Výchozí chování je nicméně takové, že při odpojení vzdáleného klienta dojde k ukončení běhu skriptu. Toto chování se dá změnit skrze konfigurační direktivu ignore_user_abort v php3.ini, odpovídající direktivu php3_ignore_user_abort v .conf souboru Apache, či funkci ignore_user_abort(). Pokud nedáte PHP pokyn ignorovat odpojení uživatele a ten se odpojí, váš skript se ukončí. Výjimkou je, pokud máte pomocí register_shutdown_function() zaregistrovanou funkci pro provedení při ukončení skriptu. V tom případě, pokud vzdálený uživatel zmáčkne tlačítko STOP, při dalším pokusu tohoto skriptu odeslat výstup PHP detekuje, že spojení bylo zrušeno, a zavolá se funkce zaregistrovaná pro provedení při ukončení skriptu. Tato funkce se zavolá také na konci běhu skriptu končícím normálně, takže pokud chcete po zrušeném spojení udělat něco jiného, můžete použít connection_aborted(). Tato funkce vrátí TRUE, pokud bylo spojení zrušeno.

Váš skript může také ukončit vestavěný čítač času. Výchozí časový limit je 30 sekund. To se dá změnit max_execution_time direktivou v phpš.ini nebo odpovídající php3_max_execution_time direktivou v .conf souboru Apahe, či voláním funkce set_time_limit(). Když čítač času doběhne, skript se ukončí, a jako ve výše uvedeném případě uživatelského odpojení, pokud je zaregistrovaná funkce pro provedení při ukončení skriptu, tato se zavolá. Uvnitř této funkce můžte zkontrolovat, jestli její zavolání způsobilo doběhnutí čítače času zavoláním funkce connection_timeout(). Tato funkce vrátí TRUE, pokud volání funkce registrované pro provedení při ukončení skriptu způsobilo doběhnutí čítače času.

Skutečností hodnou povšimnutí je, že stavy ABORTED a TIMEOUT mohou být aktivní současně. Možné je to v případě, že nařídíte PHP ignorovat odpojení uživatee. PHP i tak bude vědět, že uživatel přerušil spojení, ale skript poběží dál. Pokud potom dosáhne časového limitu, bude ukončen, a zavolá se vaše funkce pro provedení při ukončení skriptu, pokud existuje. V tomto okamžiku zjistíte, že jak connection_timeout(), tak connection_aborted() vracejí TRUE. Oba stavy můžete zkontrolovat jediným voláním funkce connection_status(). Tato funkce vrací bitové pole aktivních stavů. Takže například, pokud jsou aktivní oba tyto stavy, vrátí 3.

Předcházející | Domů | Další
Použití vzdálených souborů | Nahoru | Persistentní databázová spojení


Persistentní databázová spojení

Manuál PHP
Předcházející Další

Kapitola 21. Persistentní databázová spojení

Trvalá spojení jsou SQL spojení, která se nezavírají na konci průběhu skriptu. Při požadavku na trvalé spojení PHP nejdříve zkontroluje, jestli už neexistuje identické spojení (které zůstalo otevřeno z dřívějška) - a pokud existuje, použije ho. Pokud neexistuje, PHP ho otevře. "Identické" spojení je spojení, které bylo otevřeno se stejným serverem, uživatelským jménem a heslem (pokud je zadáte).

Poznámka: Existují i další rozšíření, která vytváří trvalá spojení, například Rozšíření IMAP.

Lidé, kteří nejsou důkladně obeznámeni se způsobem, jakým web servery fungují a distribuují zátěž, mohou pokládat trvalá spojení za něco čím nejsou. Zvláště neumožňují otvírání "uživatelských sessions" na stejném SQL spojení, neumožňují efektivní tvorbu transakcí, a neumožňují spoustu dalších věcí. Dokonce, aby o tom bylo opravdu a důkladně jasno, vám trvalá spojení nedají žádnou funkcionalitu, která by nebyla možná s jejich netrvalými protějšky.

Proč?

To je dáno způsobem, jakým fungují webové servery. Jsou tři způsoby, jakými váš web server může využít PHP ke generování webových stránek.

První metodou je použít PHP jako CGI "obal". V tomto režimu se vytváří a ničí jedna instance PHP interpretru pro každý požadavek (na PHP strnánku) na vašem web serveru. Protože je zničena po obsloužení požadavku, všechny zdroje, které získá (jako třeba spojení s databázovým serverem) jsou při jejím zničení zavřeny. V tomto případě pokusem o použití trvalých spojení nic nezískáte - prostě nevydrží.

Druhou, a nejpopulárnější, metodou, je provozovat PHP jako modul v multiprocesním web serveru, což je množina, která v současnosti obsahuje pouze Apache. Multiprocesní web server má typicky jeden proces (rodiče), který řídí skupinu procesů (svých dětí), které dělají vlastní práci - servírují stránky. Každý požadavek, který přijde od klienta, je obsloužen jedním z dětí, které právě neobsluhuje jiného klienta. To znamená, že když stejný klient vznese další požadavek na stejný server, tento může být obsloužen jiným dětským procesem než ten první. Trvalá spojení zajišťují, aby se každý dětský proces musel na váš SQL server přihlásit pouze při prvním odeslání stránky, která takové spojení využívá. Když spojení s SQL serverem vyžaduje další stránka, může použít spojení, které toto dítě otevřelo už dříve.

Poslední metodou je použít PHP jako plug-in v multivláknovém web serveru. Aktuálně PHP 4 má tuto podporu pro ISAPI, WSAPI a NSAPI (na Windows), což umožnuje používat PHP jako plug-in v multivláknových serverech jako Netscape FastTrack (iPlanet), Microsoft Internet Information Server (IIS), a O'Reilly's WebSite Pro. Chování je stejné jako u multiprocesním modelu popsaném dříve. Podpora pro SAPI není dostupná v PHP 3.

Pokud trvalá spojení neposkytují žádnou přidanou funkcionalitu, k čemu jsou dobrá?

Odpověď na tuto otázku je velmi jednoduchá - efektivita. Trvalá spojení jsou dobrá, pokud má tvorba spojení s vaším SQL serverem vysokou režii. Reálná výše této režie záleží na mnoha faktorech. Například jaký je to typ databáze, jestli sídlí na stejném počítači jako váš webserver, jak zatížený je stroj, na kterém váš SQL server běží a tak dále. Pointa je, že pokud je spojovací režie vysoká, trvalá spojení vám znatelně pomohou. Umožní dětskému procesu připojit se pouze jednou za celý jeho životní cyklus místo každého zpracování stránky, která vyžaduje spojení s SQL serverem. To znamená, že každé dítě, které otevřelo trvalé spojení, bude mít otevřené vlastní trvalé spojení se serverem. Pokud například máte 20 dětských procesů, které spustily skript, který otevřel trvalé spojení s vaším SQL serverem, máte 20 nezávislých spojení s SQL serverem, po jednom z každého dítěte.

Všimněte si nicméně, že to může mít nevýhody, pokud používate databázi s omezeným počtem připojení, který trvalá spojení dětí překročí. Pokud má vaše databáze limit 16 současných připojení, a v rušném okamžiku se pokusí připojit 17 dětských procesů, jednomu se to nepodaří. Pokud máte ve svých skriptech chyby, které brání zavírání spojení (např. nekonečné smyčky), databáze s pouhými 32 spojeními bude brzy zaplavena. Vyhledejte si v dokumentaci vaší databáze informace o obsluze opuštěných nebo nečinných spojení.

Varování

Zde je několik dodatečných námitek, které se usadily v mysli během používání trvalých spojení. Jedna z nich je, když používáte zamknuté tabulky při trvalém spojení a skript z jakéhokoli důvodu nemůže uvolnit zámek, pak následující skript, který používá stejné spojení, bude nejspíše na trvalo zablokován a možná bude nutné, abyste pokaždé restartovali http server nebo databázový server. Dále pak v případě použití transakcí se transakční blok přenese i do dalšího skriptu používajícího stejné spojení, pokud jeho vykonání končí dříve než transakční blok. V každém případě můžete použít register_shutdown_function() k registraci a jednoduchému vyčištění funkce pro odemknutí tabulek nebo zrušení běžící transakce (roll back). Nejlépe se problému vyvarujete úplně nepoužíváním trvalých spojení ve skriptech, ve kterých se zamykají tabulky nebo používají transakce (můžete je stále používat na mnohých dalších místech).

Důležitý souhrn. Trvalá spojení byla navržena tak, aby odpovídala jedna k jedné normálním spojením. To znamená, že byste vždy měli být schopni nahradit trvalá spojení netrvalými beze změny fungování vašeho skriptu. Může to (a pravděpodobně bude) mít vliv na efektivitu tohoto skriptu, ale ne jeho chování!

Dále také:
 fbsql_pconnect(),
ibase_pconnect(),  ifx_pconnect(),
imap_popen(), ingres_pconnect(),
msql_pconnect(), mssql_pconnect(),
mysql_pconnect(), OCIPLogon(),
odbc_pconnect(), Ora_pLogon(),
pfsockopen(), pg_pconnect() a
sybase_pconnect().

Předcházející | Domů | Další
Obsluha spojení | Nahoru | Bezpečný režim


Bezpečný režim

Manuál PHP
Předcházející Další

Kapitola 22. Bezpečný režim

Obsah
Funkce omezené/deaktivované v bezpečném režimu

Bezpečný režim PHP je pokus o řešení bezpečnosti sdílených serverů. Je architekturálně nekorektní pokoušet se řešit tento problém na úrovni PHP, ale protože řešení na úrovni webovského serveru a operačního systému nejsou příliš realistická, mnoho lidí, zvlaště ISP, používá nyní bezpečný režim.

Konfigurační direktivy, které ovládají bezpečný režim:
safe_mode = Off
open_basedir =
safe_mode_exec_dir =
safe_mode_allowed_env_vars = PHP_
safe_mode_protected_env_vars = LD_LIBRARY_PATH
disable_functions =

Pokud je safe_mode zapnutý, PHP kontroluje, je-li vlastník běžícího skriptu vlastníkem souboru, s nímž se má manipulovat. Například:
-rw-rw-r--    1 rasmus   rasmus       33 Jul  1 19:20 script.php
-rw-r--r--    1 root     root       1116 May 26 18:01 /etc/passwd
Spuštění skriptu script.php
<?php
 readfile('/etc/passwd');
?>
bude mít v bezpečném režimu za výsledek tuto chybu:
Warning: SAFE MODE Restriction in effect. The script whose uid is 500 is not
allowed to access /etc/passwd owned by uid 0 in /docroot/script.php on line 2

Pokud namísto safe_mode nastavíte adresář open_basedir, potom všechny operace se soubory budou omezeny pod specifikovaný adresář. Například (příklad Apache httpd.conf):
<Directory /docroot>
  php_admin_value open_basedir /docroot
</Directory>
Když spustíte tentýž soubor script.php s timto nastavením open_basedir, dostanete tento výsledek:
Warning: open_basedir restriction in effect. File is in wrong directory in
/docroot/script.php on line 2

Můžete také vypnout jednotlivé funkce. Pokud přidáme toto do souboru php.ini:
disable_functions readfile,system
získáme takovýto výstup:
Warning: readfile() has been disabled for security reasons in
/docroot/script.php on line 2

Funkce omezené/deaktivované v bezpečném režimu

Toto je pravděpodobně neúplný a možná nesprávný přehled funkcí omezených v bezpečném režimu.

Tabulka 22-1. Funkce omezené v bezpečném režimu

Funkce | Omezení
dbmopen() | Kontroluje, zda soubory/adresáře, se kterými pracujete, mají stejné UID jako spuštěný skript.
dbase_open() | Kontroluje, zda soubory/adresáře, se kterými pracujete, mají stejné UID jako spuštěný skript.
filepro() | Kontroluje, zda soubory/adresáře, se kterými pracujete, mají stejné UID jako spuštěný skript.
filepro_rowcount() | Kontroluje, zda soubory/adresáře, se kterými pracujete, mají stejné UID jako spuštěný skript.
filepro_retrieve() | Kontroluje, zda soubory/adresáře, se kterými pracujete, mají stejné UID jako spuštěný skript.
ifx_*() | sql_safe_mode restrictions, (!= safe mode)
ingres_*() | sql_safe_mode restrictions, (!= safe mode)
mysql_*() | sql_safe_mode restrictions, (!= safe mode)
pg_loimport() | Kontroluje, zda soubory/adresáře, se kterými pracujete, mají stejné UID jako spuštěný skript.
posix_mkfifo() | Kontroluje, zda adresář, ve kterém pracujete, má stejné UID jako spuštěný skript.
putenv() | Obeys the safe_mode_protected_env_vars and safe_mode_allowed_env_vars ini-directives. Viz také dokumentaci putenv()
move_uploaded_file() | Kontroluje, zda soubory/adresáře, se kterými pracujete, mají stejné UID jako spuštěný skript.
chdir() | Kontroluje, zda adresář, ve kterém pracujete, má stejné UID jako spuštěný skript.
dl() | Tyto funkce jsou v bezpečném režimu (safe-mode) deaktivovány.
backtick operátor | Tyto funkce jsou v bezpečném režimu (safe-mode) deaktivovány.
shell_exec() (funkční ekvivalent backticks) | Tyto funkce jsou v bezpečném režimu (safe-mode) deaktivovány.
exec() | Můžete spouštět programy pouze uvnitř adresáře safe_mode_exec_dir. Z praktických důvodů není momentálně možné mít v cestě k souboru s programem komponenty ...
system() | Můžete spouštět programy pouze uvnitř adresáře safe_mode_exec_dir. Z praktických důvodů není momentálně možné mít v cestě k souboru s programem komponenty ...
passthru() | Můžete spouštět programy pouze uvnitř adresáře safe_mode_exec_dir. Z praktických důvodů není momentálně možné mít v cestě k souboru s programem komponenty ...
popen() | Můžete spouštět programy pouze uvnitř adresáře safe_mode_exec_dir. Z praktických důvodů není momentálně možné mít v cestě k souboru s programem komponenty ...
mkdir() | Kontroluje, zda adresář, ve kterém pracujete, má stejné UID jako spuštěný skript.
rmdir() | Kontroluje, zda soubory/adresáře, se kterými pracujete, mají stejné UID jako spuštěný skript.
rename() | Kontroluje, zda soubory/adresáře, se kterými pracujete, mají stejné UID jako spuštěný skript. Kontroluje, zda adresář, ve kterém pracujete, má stejné UID jako spuštěný skript.
unlink() | Kontroluje, zda soubory/adresáře, se kterými pracujete, mají stejné UID jako spuštěný skript. Kontroluje, zda adresář, ve kterém pracujete, má stejné UID jako spuštěný skript.
copy() | Kontroluje, zda soubory/adresáře, se kterými pracujete, mají stejné UID jako spuštěný skript. Kontroluje, zda adresář, ve kterém pracujete, má stejné UID jako spuštěný skript. (pro source a target)
chgrp() | Kontroluje, zda soubory/adresáře, se kterými pracujete, mají stejné UID jako spuštěný skript.
chown() | Kontroluje, zda soubory/adresáře, se kterými pracujete, mají stejné UID jako spuštěný skript.
chmod() | Kontroluje, zda soubory/adresáře, se kterými pracujete, mají stejné UID jako spuštěný skript. Navíc nemůžete nastavovat SUID, SGID a sticky bit
touch() | Kontroluje, zda soubory/adresáře, se kterými pracujete, mají stejné UID jako spuštěný skript. Kontroluje, zda adresář, ve kterém pracujete, má stejné UID jako spuštěný skript.
symlink() | Kontroluje, zda soubory/adresáře, se kterými pracujete, mají stejné UID jako spuštěný skript. Kontroluje, zda adresář, ve kterém pracujete, má stejné UID jako spuštěný skript. (pozn.: testován je pouze cíl)
link() | Kontroluje, zda soubory/adresáře, se kterými pracujete, mají stejné UID jako spuštěný skript. Kontroluje, zda adresář, ve kterém pracujete, má stejné UID jako spuštěný skript. (pozn.: testován je pouze cíl)
getallheaders() | V bezpečném režimu nebudou hlavičky začínající 'authorization' (bez ohledu na velikost písmen) vraceny. Varování: toto nefunguje s aol-server implementací getallheaders()!
Jakékoli funkce které používají php4/main/fopen_wrappers.c | ??

Předcházející | Domů | Další
Persistentní databázová spojení | Nahoru | Použití PHP z příkazové řádky


Použití PHP z příkazové řádky

Manuál PHP
Předcházející Další

Kapitola 23. Použití PHP z příkazové řádky

Možnosti PHP při spouštění z příkazové řádky přinášejí mnoho užitku, pokud chcete ladit nebo testovat vaše nastavení PHP, hodí se však i pro případy, kdy byste rádi použili PHP pro jiné účely než WWW skriptování.

Uvědomte si, že můžete vždy směrovat výstup programu PHP do vnějšího souboru pomocí znaku >, takže php -q test.php > test.html vytiskne výstup test.php bez HTTP hlaviček do test.html ve stejném adresáři.

Možnosti příkazové řádky můžete využívat pouze tehdy, máte-li (spustitelný) program PHP. Pokud jste zkompilovali pouze modul do serveru a nemáte na počítači žádnou CGI verzi, nemůžete příkazovou řádku používat. Pro uživatele Windows je v binárním balíčku jak serverový modul, tak spustitelný soubor nazvaný php.exe.

Tento seznem voleb pro příkazovou řádku je konzistentní s PHP 4.0.6. Aktuální seznam včetně jednořádkových popisů můžete získat pomocí parametru -h. Výstup php -h by měl vypadat přibližně takto:
Usage: php [-q] [-h] [-s [-v] [-i] [-f <file>] |  {<file> [args...]}
  -q             Quiet-mode.  Suppress HTTP Header output.
  -s             Display colour syntax highlighted source.
  -f <file>      Parse <file>.  Implies `-q'
  -v             Version number
  -C             Do not chdir to the script's directory
  -c <path>      Look for php.ini file in this directory
  -d foo[=bar]   Define INI entry foo with value 'bar'
  -e             Generate extended information for debugger/profiler
  -z <file>      Load Zend extension <file>.
  -l             Syntax check only (lint)
  -m             Show compiled in modules
  -i             PHP information
  -h             This help

Zde uvádíme některé z nejdůležitějších voleb s detailním vysvětlením.

Tabulka 23-1. Volby pro příkazovou řádku

Volba | Popis
-q | Potlačí výstup HTTP hlaviček. Normálně PHP tiskne HTTP hlavičky pro volající program (typicky WWW server) k předání prohlížeči. Při použití pro aplikace spouštěné z příkazové řádky nemají hlavičky smysl.
-s | Zobrazí barevně vysvícený zdrojový soubor s daným názvem. Je to totéž, jako když se zdroj vytiskne pomocí funkce highlight_file() v PHP skriptu.
-f | Parsuje daný soubor a hledá syntaktické a fatální chyby. Tato volba implikuje -q. Použijte pro ladicí účely (debugging).
-v | Zavoláním PHP s tímto přepínačem si můžete vypsat číslo verze, např. 4.0.6.
-C | Za normálních okolností PHP mění pracovní adresář na ten, kde se nachází spouštěný skript. To například umožňuje otvírat soubory ve stejném adresáři určením pouhého názvu souboru (bez cesty). Pokud byste toto chtěli potlačit, použijte tuto volbu.
-c | Použitím tohoto argumentu můžete specifikovat alternativní umístění souboru php.ini, takže PHP bude hledat konfigurační soubor zde namísto implicitního umístění.
-d | Touto volbou můžete provést individuální nastavení php.ini během provádění skriptu.
-l | Otestuje daný soubor na syntaktické chyby. Tato volba implikuje -q. Použijte ji pro účely ladění. Nebudou se hledat fatální chyby (jako jsou nedefinované funkce). Pokud chcete hledat i fatální chyby, použijte -f.
-m | Použitím této volby PHP vypíše zabudované (a načtené) PHP a Zend moduly, čísla verzí PHP a Zend, a také krátkou informaci o autorských právech k jádru Zend.
-i | Tento přepínač zavolá funkci phpinfo() a vypíše její výsledek. Pokud PHP nepracuje správně, je dobré spustit php -i a podívat se, zda se nevypsala nějaká chybová hlášení před nebo uvnitř informačních tabulek.
-h | Touto volbou získáte informace o aktuálních volbách příkazové řádky a jednořádkové popisy o tom, co dělají.

Spustitelná verze PHP může být použita pro spouštění skriptů absolutně nezávisle na webovském serveru. Pokud jste na unixovém systému, můžete do PHP skriptu přidat speciální první řádek a udělat z něj spustitelný program - systém bude vědět, jaký program by měl skript zpracovávat. Na Windows můžete asociovat php.exe -q se souborovou příponou .php (pro spouštění dvojklikem), nebo můžete vytvořit dávkový soubor pro spuštění skriptu přes PHP. První řádek skriptu pro práci v Unixu nebude ve Windows vadit, takže tímto způsobem můžete psát programy pro více platforem. Jednoduchý příklad psaní PHP programu pro příkazovou řádku je uveden níže.

Příklad 23-1. Skript určený ke spouštění z příkazové řádky (script.php)

#!/usr/bin/php -q
<?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];
}
?>

Ve výše uvedeném skriptu jsme použili speciální první řádek k indikaci, že by tento soubor měl být spouštěn pomocí PHP a neměl by vypisovat HTTP hlavičky. Jsou zde dvě proměnné, které můžete použít při psaní aplikací pro PHP spouštěných z příkazové řádky: $argc a $argv. První z nich je počet argumentů + 1 (název běžícího skriptu). Druhá je pole obsahující argumenty, počínaje názvem skriptu jako číslo 0 ($argv[0]).

V ukázkovém programu se testuje, zda je argumentů více či méně než jeden. Pokud by argument byl --help, -help, -h nebo -?, vytiskne se nápověda k programu včetně skutečného názvu skriptu. Pokud by byly přidány nějaké další argumenty, vytisknou se na výstup.

Pokud byste chtěli spouštět uvedený skript pod Unixem, musíte ho udělat spustitelným (nastavit práva pro spouštění), a pak jednoduše napsat script.php vypis_tohle nebo script.php -h. Na Windows musíte pro tento úkol vytvořit dávkový soubor:

Příklad 23-2. Dávkový soubor pro spouštění PHP skriptu z příkazové řádky (script.bat)

@c:\php\php.exe -q script.php %1 %2 %3 %4

Za předpokladu, že jste výše uvedený program nazvali script.php a soubor php.exe máte uložený jako c:\php\php.exe, můžete tento dávkový soubor spouštět takto: script.bat echothis nebo script.bat -h.

Viz také dokumentaci rozšíření Readline, kde najdete více funkcí pro použití k aplikacím PHP spouštěných z příkazové řádky.

Předcházející | Domů | Další
Bezpečný režim | Nahoru | Reference funkcí


Reference funkcí

Manuál PHP
Předcházející Další

V. Reference funkcí

Obsah
I. Funkce specifické pro Apache
II. Funkce pro práci s poli
III. Aspell funkce [zastaralé]
IV. BCMath funkce pro výpočty s libovolnou přesností
V. Kompresní funkce bzip2
VI. Kalendářové funkce
VII. CCVS API Functions
VIII. Funkce na podporu COM ve Windows
IX. Funkce pro práci s třídami/objekty
X. ClibPDF Functions
XI. Crack Functions
XII. Funkce pro práci s CURL, Client URL Library
XIII. Cybercash platební funkce
XIV. Cyrus IMAP administration Functions
XV. Character Type Functions
XVI. Database (dbm-style) Abstraction Layer Functions
XVII. Funkce pro datum a čas
XVIII. dBase Functions
XIX. DBM Funkce [zastaralé]
XX. dbx Functions
XXI. DB++ Functions
XXII. Direct IO Functions
XXIII. Adresářové funkce
XXIV. DOM XML Functions
XXV. .NET Functions
XXVI. Error Handling and Logging Functions
XXVII. File Alteration Monitor Functions
XXVIII. FrontBase Functions
XXIX. filePro funkce
XXX. Funkce filesystému
XXXI. Forms Data Format Functions
XXXII. FriBiDi Functions
XXXIII. FTP Functions
XXXIV. Funkce pro práci s funkcemi
XXXV. Gettext
XXXVI. GMP Functions
XXXVII. HTTP funkce
XXXVIII. Hyperwave Functions
XXXIX. Hyperwave API Functions
XL. iconv Functions
XLI. Image Functions
XLII. IMAP, POP3 and NNTP Functions
XLIII. Informix Functions
XLIV. InterBase Functions
XLV. Ingres II Functions
XLVI. IRC Gateway Functions
XLVII. PHP / Java Integration
XLVIII. LDAP Functions
XLIX. LZF Functions
L. Mailové funkce
LI. mailparse Functions
LII. Matematické funkce
LIII. Multibyte String Functions
LIV. MCAL Functions
LV. Mcrypt Encryption Functions
LVI. MCVE Payment Functions
LVII. Mhash funkce
LVIII. Mimetype Functions
LIX. Microsoft SQL Server Functions
LX. Ming functions for Flash
LXI. Různé funkce
LXII. mnoGoSearch Functions
LXIII. mSQL Functions
LXIV. MySQL funkce
LXV. Improved MySQL Extension
LXVI. Mohawk Software Session Handler Functions
LXVII. muscat Functions
LXVIII. Síťové funkce
LXIX. Ncurses Terminal Screen Control Functions
LXX. Lotus Notes Functions
LXXI. NSAPI-specific Functions
LXXII. Unified ODBC Functions
LXXIII. Object Aggregation/Composition Functions
LXXIV. Oracle 8 functions
LXXV. OpenSSL funkce
LXXVI. Oracle Functions
LXXVII. Ovrimos SQL Functions
LXXVIII. Funkce pro řízení výstupu
LXXIX. Object property and method call overloading
LXXX. PDF funkce
LXXXI. Funkce pro práci s Verisign Payflow Pro
LXXXII. PHP volby a informace
LXXXIII. POSIX Functions
LXXXIV. PostgreSQL Functions
LXXXV. Process Control Functions
LXXXVI. Funkce spouštění programů
LXXXVII. Printer Functions
LXXXVIII. Pspell Functions
LXXXIX. GNU Readline
XC. GNU Recode funkce
XCI. Regular Expression Functions (Perl-Compatible)
XCII. qtdom Functions
XCIII. Regular Expression Functions (POSIX Extended)
XCIV. Semaphore, Shared Memory and IPC Functions
XCV. SESAM Database Functions
XCVI. Session Handling Functions
XCVII. Funkce pro práci se sdílenou pamětí
XCVIII. SimpleXML functions
XCIX. SOAP Functions
C. SQLite
CI. Shockwave Flash Functions
CII. SNMP Functions
CIII. Socket Functions
CIV. Standard PHP Library (SPL) Functions
CV. Stream Functions
CVI. Funkce pro práci s řetězci
CVII. Sybase Functions
CVIII. TCP Wrappers Functions
CIX. Tidy Functions
CX. Tokenizer Functions
CXI. URL funkce
CXII. Variable Functions
CXIII. vpopmail Functions
CXIV. W32api Functions
CXV. WDDX funkce
CXVI. XML Parser Functions
CXVII. XML-RPC Functions
CXVIII. xdiff Functions
CXIX. XSL functions
CXX. XSLT funkce
CXXI. YAZ Functions
CXXII. Funkce pro práci s YP/NIS
CXXIII. Zip File Functions (Read Only Access)
CXXIV. Zlib Compression Functions

Předcházející | Domů | Další
Použití PHP z příkazové řádky |  | Funkce specifické pro Apache


Funkce specifické pro Apache

Manuál PHP
Předcházející Další

I. Funkce specifické pro Apache

Úvod

Tyto funkce jsou k dispozici pouze pokud PHP běží jako modul Apache 1.x.

Instalace

Instalaci PHP v Apache 1.x viz část Apache kapitoly o instalaci.

Konfigurace běhu

The behaviour of the Apache PHP module is affected by settings in php.ini. Configuration settings from php.ini may be overridden by php_flag settings in the server configuration file or local .htaccess files.

Příklad 1. Turning off PHP parsing for a directory using .htaccess

php_flag engine off

Tabulka 1. Apache configuration options

Name | Default | Changeable | Function
engine | On | PHP_INI_ALL | turns PHP parsing on or off
child_terminate | Off | PHP_INI_ALL | specify whether PHP scripts may request child process termination on end of request, see also apache_child_terminate()
last_modified | Off | PHP_INI_ALL | send PHP scripts modification date as Last-Modified: header for this request
xbithack | Off | PHP_INI_ALL | parse files with executable bit set as PHP regardless of their file ending

Zde je stručné vysvětlení konfiguračních direktiv.

engine boolean

This directive is really only useful in the Apache module version of PHP. It is used by sites that would like to turn PHP parsing on and off on a per-directory or per-virtual server basis. By putting engine off in the appropriate places in the httpd.conf file, PHP can be enabled or disabled.

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Obsah
apache_child_terminate -- Terminate apache process after this request
apache_get_modules -- Get a list of loaded Apache modules
apache_get_version -- Fetch Apache version
apache_getenv -- Get an Apache subprocess_env variable
apache_lookup_uri -- Provádí částečný požadavek na zadanou URI a vrací všechno info o ní
apache_note -- Získává a nastavuje poznámky požadavku u Apache.
apache_request_headers -- Fetch all HTTP request headers
apache_response_headers -- Fetch all HTTP response headers
apache_setenv -- Set an Apache subprocess_env variable
ascii2ebcdic -- Překládá řetězec z ASCII do EBCDIC
ebcdic2ascii -- Překládá řetězec z EBCDIC do ASCII
getallheaders -- Získává všechny hlavičky HTTP požadavku
virtual -- Provádí sub-požadavek Apache

Předcházející | Domů | Další
Reference funkcí | Nahoru | apache_child_terminate


apache_child_terminate

(PHP 4 >= 4.0.5, PHP 5)

apache_child_terminate -- Terminate apache process after this request

Description

bool apache_child_terminate ( void )

apache_child_terminate() will register the Apache process executing the current PHP request for termination once execution of PHP code it is completed. It may be used to terminate a process after a script with high memory consumption has been run as memory will usually only be freed internally but not given back to the operating system.

Poznámka: The availability of this feature is controlled by the php.ini directive child_terminate, which is set to off by default.

This feature is also not available on multithreaded versions of apache like the win32 version.

See also exit().

Předcházející | Domů | Další
Funkce specifické pro Apache | Nahoru | apache_get_modules


apache_get_modules

(PHP 4 >= 4.3.2, PHP 5)

apache_get_modules -- Get a list of loaded Apache modules

Description

array apache_get_modules ( void )

This function returns an array with the loaded Apache modules.

Příklad 1. apache_get_modules() example

<?php
print_r(apache_get_modules());
?>

The above example will output something similar to:

Array
(
    [0] => core
    [1] => http_core
    [2] => mod_so
    [3] => sapi_apache2
    [4] => mod_mime
    [5] => mod_rewrite
)

Předcházející | Domů | Další
apache_child_terminate | Nahoru | apache_get_version


apache_get_version

(PHP 4 >= 4.3.2, PHP 5)

apache_get_version -- Fetch Apache version

Description

string apache_get_version ( void )

apache_get_version() returns the version of Apache as string, or FALSE on failure.

Příklad 1. apache_get_version() example

<?php
$version = apache_get_version();
echo "$version\n";
?>

The printout of the above program will look similar to:

Apache/1.3.29 (Unix) PHP/4.3.4

See also phpinfo().

Předcházející | Domů | Další
apache_get_modules | Nahoru | apache_getenv


apache_getenv

(PHP 4 >= 4.3.0, PHP 5)

apache_getenv -- Get an Apache subprocess_env variable

Description

string apache_getenv ( string variable [, bool walk_to_top])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
apache_get_version | Nahoru | apache_lookup_uri


apache_lookup_uri

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

apache_lookup_uri -- Provádí částečný požadavek na zadanou URI a vrací všechno info o ní

Popis

class apache_lookup_uri ( string filename)

Tato funkce provádí částečný požadavek na URI. Jde jen tak daleko, aby získala všechny důležité informace o daném zdroji a vrací tyto informace ve třídě. Vlastnosti této třídy jsou:

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

Poznámka: apache_lookup_uri() pouze, pokud je PHP nainstalováno jako modul Apache.

Předcházející | Domů | Další
apache_getenv | Nahoru | apache_note


apache_note

(PHP 3>= 3.0.2, PHP 4 , PHP 5)

apache_note -- Získává a nastavuje poznámky požadavku u Apache.

Popis

string apache_note ( string note_name [, string note_value])

apache_note() je funkce specifická pro Apache, která získává a nastavuje hodnoty v tabulce poznámek požadavku. Při volání s jedním argumentem vrací současnou hodnotu poznámky note_name. Při volání se dvěma argumenty nastavuje hodnotu poznámky note_name na note_value, a vrací předchozí hodnotu poznámky note_name.

Předcházející | Domů | Další
apache_lookup_uri | Nahoru | apache_request_headers


apache_request_headers

(PHP 4 >= 4.3.0, PHP 5)

apache_request_headers -- Fetch all HTTP request headers

Description

array apache_request_headers ( void )

apache_request_headers() returns an associative array of all the HTTP headers in the current request. This is only supported when PHP runs as an Apache module.

Příklad 1. apache_request_headers() example

<?php
$headers = apache_request_headers();

foreach ($headers as $header => $value) {
    echo "$header: $value <br />\n";
}
?>

Poznámka:
      Prior to PHP 4.3.0, apache_request_headers() was
      called getallheaders().  After PHP 4.3.0,
      getallheaders() is an alias for
      apache_request_headers().

Poznámka: You can also get at the value of the common CGI variables by reading them from the environment, which works whether or not you are using PHP as an Apache module. Use phpinfo() to see a list of all of the available environment variables.

Poznámka: From PHP 4.3.3 on you can use this function with the NSAPI server module in Netscape/iPlanet/SunONE webservers, too.

See also apache_response_headers().

Předcházející | Domů | Další
apache_note | Nahoru | apache_response_headers


apache_response_headers

(PHP 4 >= 4.3.0, PHP 5)

apache_response_headers -- Fetch all HTTP response headers

Description

array apache_response_headers ( void )

Returns an array of all Apache response headers. This functionality is only available in PHP 4.3.0 and greater.

Poznámka: From PHP 4.3.3 on you can use this function with the NSAPI server module in Netscape/iPlanet/SunONE webservers, too.

See also apache_request_headers(), and headers_sent().

Předcházející | Domů | Další
apache_request_headers | Nahoru | apache_setenv


apache_setenv

(PHP 4 >= 4.2.0, PHP 5)

apache_setenv -- Set an Apache subprocess_env variable

Description

int apache_setenv ( string variable, string value [, bool walk_to_top])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
apache_response_headers | Nahoru | ascii2ebcdic


ascii2ebcdic

(PHP 3>= 3.0.17)

ascii2ebcdic -- Překládá řetězec z ASCII do EBCDIC

Popis

int ascii2ebcdic ( string ascii_str)

ascii2ebcdic() je funkce specifická pro Apache dostupná pouze na operačních systémech založených na EBCDIC (OS/390, BS2000). Překládá (binárně bezpečně) řežězec v ASCII kódování ascii_str na jeho ekvivalentní EBCDIC reprezentaci, a vrací výsledek.

Viz také opačnou funkci ebcdic2ascii()

Předcházející | Domů | Další
apache_setenv | Nahoru | ebcdic2ascii


ebcdic2ascii

(PHP 3>= 3.0.17)

ebcdic2ascii -- Překládá řetězec z EBCDIC do ASCII

Popis

int ebcdic2ascii ( string ebcdic_str)

ebcdic2ascii() je funkce specifická pro Apache dostupná pouze na operačních systémech založených na EBCDIC (OS/390, BS2000). Překládá (binárně bezpečně) řežězec v kódování EBCDIC ascii_str na jeho ekvivalentní ASCII reprezentaci, a vrací výsledek.

Viz také opačnou funkci ascii2ebcdic()

Předcházející | Domů | Další
ascii2ebcdic | Nahoru | getallheaders


getallheaders

(PHP 3, PHP 4 , PHP 5)

getallheaders -- Získává všechny hlavičky HTTP požadavku

Popis

array getallheaders ( void )

Tato funkce vrací asociativní pole všech HTTP hlaviček v současném požadavku.

Poznámka: Hodnotu běžných CGI proměnných můžete také získat tím, že je přečtete z prostředí, což funguje, ať používáte PHP jako modu Apache nebo ne. Pokud chcete vidět seznam všech systémových proměnných definovaných tímto způsobem, použijte phpinfo().

Příklad 1. getallheaders() Example

$headers = getallheaders();
while (list ($header, $value) = each ($headers)) {
    echo "$header: $value<br>\n";
}

Tento příklad zobrazí všechny hlavičky současného požadavku.

Poznámka: getallheaders() je v současnosti podporována jen když PHP běží jako modul Apache.

Předcházející | Domů | Další
ebcdic2ascii | Nahoru | virtual


virtual

(PHP 3, PHP 4 , PHP 5)

virtual -- Provádí sub-požadavek Apache

Popis

int virtual ( string filename)

virtual() je funkce specifická pro Apache ekvivalentní s <!--#include virtual...--> v mod_include. Provádí sub-požadavek Apache. Je užitečná pro vkládání CGI skriptů nebo .shtml souborů, nebo čehokoliv jiného, co má Apache parsovat. CGI skripty musí generovat platné CGI hlavičky. To znamená, že musí přinejmenším generovat Content-type hlavičku. Pro PHP soubory musíte použít include() nebo require(); virtual() se nedá použít k vložení dokumentu, který je sám PHP skriptem.

Předcházející | Domů | Další
getallheaders | Nahoru | Funkce pro práci s poli


Funkce pro práci s poli

Manuál PHP
Předcházející Další

II. Funkce pro práci s poli

Úvod

Tyto funkce vám umožňují manipulovat a interagovat různými způsoby s poli. Pole jsou nezbytná pro ukládání a práci se sadami proměnných.

Podporována jsou jednoduchá a vícerozměrná pole; vytvářet se dají uživatelsky i jako výstup funkce. Existují databázové funkce na plnění polí výsledky databázových dotazů, a několik dalších funkcí vrací pole.

Viz také část manuálu pole pro detailní popis toho, jak jsou pole v PHP implementovány a jak se používají.

Požadavky

Tyto funkce jsou k dispozici jako součást standardního modulu, který je vždy dostupný.

Instalace

K používání těchto funkcí není třeba žádná instalace, jsou součástí jádra PHP.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Konstanty z tohoto seznamu jsou vždy dostupné jako součást jádra PHP.

CASE_LOWER (integer)

CASE_LOWER is used with array_change_key_case() and is used to convert array keys to lower case. This is also the default case for array_change_key_case().

CASE_UPPER (integer)

CASE_UPPER is used with array_change_key_case() and is used to convert array keys to upper case.

Sorting order flags:

SORT_ASC (integer)

SORT_ASC is used with array_multisort() to sort in ascending order.

SORT_DESC (integer)

SORT_DESC is used with array_multisort() to sort in descending order.

Sorting type flags: used by various sort functions

SORT_REGULAR (integer)

SORT_REGULAR is used to compare items normally.

SORT_NUMERIC (integer)

SORT_NUMERIC is used to compare items numerically.

SORT_STRING (integer)

SORT_STRING is used to compare items as strings.

COUNT_NORMAL (integer)

COUNT_RECURSIVE (integer)

EXTR_OVERWRITE (integer)

EXTR_SKIP (integer)

EXTR_PREFIX_SAME (integer)

EXTR_PREFIX_ALL (integer)

EXTR_PREFIX_INVALID (integer)

EXTR_PREFIX_IF_EXISTS (integer)

EXTR_IF_EXISTS (integer)

EXTR_REFS (integer)

Viz také

Viz také is_array(), explode(),
implode(), split(),
preg_split() a unset().

Obsah
array_change_key_case -- Returns an array with all string keys lowercased or uppercased
array_chunk -- Split an array into chunks
array_combine -- Creates an array by using one array for keys and another for its values
array_count_values -- Spočítat všechny hodnoty v poli
array_diff_assoc -- Computes the difference of arrays with additional index check
array_diff_uassoc -- Computes the difference of arrays with additional index check which is performed by a user supplied callback function.
array_diff -- Spočítat rozdíl polí
array_fill -- Fill an array with values
array_filter -- Filters elements of an array using a callback function
array_flip -- Prohodit klíče a hodnoty pole
array_intersect_assoc -- Computes the intersection of arrays with additional index check
array_intersect -- Spočítat průnik polí
array_key_exists -- Checks if the given key or index exists in the array
array_keys -- Vrátit všechny klíče pole
array_map -- Applies the callback to the elements of the given arrays
array_merge_recursive -- Rekurzivně sloučit dvě nebo více polí
array_merge -- Sloučit dvě nebo více polí
array_multisort -- Třídit více polí, nebo vícerozměrné pole
array_pad -- Doplnit pole hodnotou na určenou délku
array_pop -- Odstranit prvek z konce pole
array_push -- Přidat jeden nebo více prvků na konec pole
array_rand -- Vybrat náhodně jeden nebo více prvků pole
array_reduce -- Iteratively reduce the array to a single value using a callback function
array_reverse -- Vrátit pole s prvky v opačném pořadí
array_search -- Searches the array for a given value and returns the corresponding key if successful
array_shift -- Odstranit prvek ze začátku pole
array_slice -- Vytáhnout část pole
array_splice -- Odstranit část pole a nahradit ji něčím jiným
array_sum -- Calculate the sum of values in an array.
array_udiff_assoc -- Computes the difference of arrays with additional index check. The data is compared by using a callback function.
array_udiff_uassoc -- Computes the difference of arrays with additional index check. The data is compared by using a callback function. The index check is done by a callback function also
array_udiff -- Computes the difference of arrays by using a callback function for data comparison.
array_unique -- Odstranit z pole duplicitní hodnoty
array_unshift -- Připojit jeden nebo více prvků na začátek pole
array_values -- Vrátit všechny hodnoty v poli
array_walk -- Použít uživatelskou funkci na všechny prvky pole
array -- Vytvořit pole
arsort -- Třídit pole sestupně se zachováním klíčů
asort -- Třídit pole se zachováním indexů
compact -- Vytvořit pole obsahující proměnné a jejich hodnoty
count -- Spočítat prvky v proměnné
current -- Vrátit současný prvek pole
each -- Vrací další klíč/hodnota pár z pole
end -- Nastavit vnitřní ukazatel pole na jeho poslední prvek
extract -- Importovat proměnné z pole do symbolové tabulky
in_array -- Ověřit, zda v poli existuje daná hodnota
key -- Fetch a key from an associative array
krsort -- Třídit pole sestupně podle klíčů
ksort -- Třídit pole podle klíčů
list -- Přiřadit hodnoty přoměnným jako kdyby byly polem
natcasesort -- Třídit pole s využitím algoritmu "přirozeného třídění" (case-insensitive)
natsort -- Třídit pole s využitím algoritmu "přirozeného třídění"
next -- Posunout interní ukazatel pole
pos -- Získat současný prvek pole
prev -- Rewind interní ukazatel pole
range -- Vytvořit pole obsahující rozsah integerů
reset -- Nastavit interní ukazatel pole na jeho první prvek
rsort -- Třídit pole sestupně
shuffle -- Zamíchat pole
sizeof -- Zjistit počet prvků v poli
sort -- Třídit pole
uasort -- Třídit pole pomocí uživatelsky definované porovnávací funkce se zachováním klíčů
uksort -- Třídit pole podle klíčů pomocí uživatelsky definovane porovnávací funkce
usort -- Třídit pole podle hodnot pomocí uživatelsky definované porovnávací funkce

Předcházející | Domů | Další
virtual | Nahoru | array_change_key_case


array_change_key_case

(PHP 4 >= 4.2.0, PHP 5)

array_change_key_case -- Returns an array with all string keys lowercased or uppercased

Description

array array_change_key_case ( array input [, int case])

array_change_key_case() changes the keys in the input array to be all lowercase or uppercase. The change depends on the last optional case parameter. You can pass two constants there, CASE_UPPER and CASE_LOWER. The default is CASE_LOWER. The function will leave number indices as is.

Příklad 1. array_change_key_case() example

<?php
$input_array = array("FirSt" => 1, "SecOnd" => 4);
print_r(array_change_key_case($input_array, CASE_UPPER));
?>

The printout of the above program will be:

Array
(
    [FIRST] => 1
    [SECOND] => 4
)

If an array has indices that will be the same once run through this function (e.g. "keY" and "kEY"), the value that is later in the array will override other indices.

Předcházející | Domů | Další
Funkce pro práci s poli | Nahoru | array_chunk


array_chunk

(PHP 4 >= 4.2.0, PHP 5)

array_chunk -- Split an array into chunks

Description

array array_chunk ( array input, int size [, bool preserve_keys])

array_chunk() splits the array into several arrays with size values in them. You may also have an array with less values at the end. You get the arrays as members of a multidimensional array indexed with numbers starting from zero.

By setting the optional preserve_keys parameter to TRUE, you can force PHP to preserve the original keys from the input array. If you specify FALSE new number indices will be used in each resulting array with indices starting from zero. The default is FALSE.

Příklad 1. array_chunk() example

<?php
$input_array = array('a', 'b', 'c', 'd', 'e');
print_r(array_chunk($input_array, 2));
print_r(array_chunk($input_array, 2, true));
?>

The printout of the above program will be:

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
        )

)

Předcházející | Domů | Další
array_change_key_case | Nahoru | array_combine


array_combine

(PHP 5)

array_combine -- Creates an array by using one array for keys and another for its values

Description

array array_combine ( array keys, array values)

Returns an array by using the values from the keys array as keys and the values from the values array as the corresponding values.

Returns FALSE if the number of elements for each array isn't equal or if the arrays are empty.

Příklad 1. A simple array_combine() example

<?php
$a = array('green', 'red', 'yellow');
$b = array('avocado', 'apple', 'banana');
$c = array_combine($a, $b);

print_r($c);
?>

Outputs:

Array
(
    [green]  => avocado
    [red]    => apple
    [yellow] => banana
)

See also array_merge(),
array_walk(), and
array_values().

Předcházející | Domů | Další
array_chunk | Nahoru | array_count_values


array_count_values

(PHP 4 , PHP 5)

array_count_values -- Spočítat všechny hodnoty v poli

Popis

array array_count_values ( array input)

array_count_values() vrací pole používající hodnoty z input jako klíče a jejich četnosti v input jako hodnoty.

Příklad 1. Ukázka array_count_values()

$array = array (1, "hello", 1, "world", "hello");
array_count_values ($array); // vrací array(1=>2, "hello"=>2, "world"=>1)

Předcházející | Domů | Další
array_combine | Nahoru | array_diff_assoc


array_diff_assoc

(PHP 4 >= 4.3.0, PHP 5)

array_diff_assoc -- Computes the difference of arrays with additional index check

Description

array array_diff_assoc ( array array1, array array2 [, array ...])

array_diff_assoc() returns an array containing all the values from array1 that are not present in any of the other arguments. Note that the keys are used in the comparison unlike array_diff().

Příklad 1. array_diff_assoc() example

<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>

The result is:

Array
(
    [b] => brown
    [c] => blue
    [0] => red
)

In our example above you see the "a" => "green" pair is present in both arrays and thus it is not in the ouput from the function. Unlike this, the pair 0 => "red" is in the ouput because in the second argument "red" has key which is 1.

Two values from key => value pairs are considered equal only if (string) $elem1 === (string) $elem2 . In other words a strict check takes place so the string representations must be the same.

Poznámka: Please note that this function only checks one dimension of a n-dimensional array. Of course you can check deeper dimensions by using, for example, array_diff_assoc($array1[0], $array2[0]);.

See also array_diff(),
array_intersect(),
and array_intersect_assoc().

Předcházející | Domů | Další
array_count_values | Nahoru | array_diff_uassoc


array_diff_uassoc

(PHP 5)

array_diff_uassoc -- Computes the difference of arrays with additional index check which is performed by a user supplied callback function.

Description

array array_diff_assoc ( array array1, array array2 [, array ..., callback key_compare_func])

array_diff_uassoc() returns an array containing all the values from array1 that are not present in any of the other arguments. Note that the keys are used in the comparison unlike array_diff(). This comparison is done by a user supplied callback function. It must return an integer less than, equal to, or greater than zero if the first argument is considered to be respectively less than, equal to, or greater than the second. This is unlike array_diff_assoc() where an internal function for comparing the indices is used.

Příklad 1. array_diff_uassoc() example

<?php
function key_compare_func($a, $b)
{
    if ($a === $b) {
        return 0;
    }
    return ($a > $b)? 1:-1;
}

$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
$result = array_diff_uassoc($array1, $array2, "key_compare_func");
?>

The result is:

Array
(
    [b] => brown
    [c] => blue
    [0] => red
)

In our example above you see the "a" => "green" pair is present in both arrays and thus it is not in the ouput from the function. Unlike this, the pair 0 => "red" is in the ouput because in the second argument "red" has key which is 1.

The equality of 2 indices is checked by the user supplied callback function.

Poznámka: Please note that this function only checks one dimension of a n-dimensional array. Of course you can check deeper dimensions by using, for example, array_diff_uassoc($array1[0], $array2[0], "key_compare_func");.

See also
array_diff(),
array_diff_assoc(),
array_udiff(),
array_udiff_assoc(),
array_udiff_uassoc(),
array_intersect(),
array_intersect_assoc(),
array_uintersect(),
array_uintersect_assoc() and
array_uintersect_uassoc().

Předcházející | Domů | Další
array_diff_assoc | Nahoru | array_diff


array_diff

(PHP 4 >= 4.0.1, PHP 5)

array_diff -- Spočítat rozdíl polí

Popis

array array_diff ( array array1, array array2 [, array ...])

array_diff() vrací pole obsahující všechny hodnoty z array1, které se nevyskytují v žádném z dalších argumentů. Klíče jsou zachovány.

Příklad 1. Ukázka array_diff()

$array1 = array ("a" => "green", "red", "blue");
$array2 = array ("b" => "green", "yellow", "red");
$result = array_diff ($array1, $array2);

$result obsahuje array ("blue");

Viz také: array_intersect().

Předcházející | Domů | Další
array_diff_uassoc | Nahoru | array_fill


array_fill

(PHP 4 >= 4.2.0, PHP 5)

array_fill -- Fill an array with values

Description

array array_fill ( int start_index, int num, mixed value)

array_fill() fills an array with num entries of the value of the value parameter, keys starting at the start_index parameter. Note that num must be a number greater than zero, or PHP will throw a warning.

Příklad 1. array_fill() example

<?php
$a = array_fill(5, 6, 'banana');
print_r($a);
?>

$a now is:

Array
(
    [5]  => banana
    [6]  => banana
    [7]  => banana
    [8]  => banana
    [9]  => banana
    [10] => banana
)

See also str_repeat() and range().

Předcházející | Domů | Další
array_diff | Nahoru | array_filter


array_filter

(PHP 4 >= 4.0.6, PHP 5)

array_filter -- Filters elements of an array using a callback function

Description

array array_filter ( array input [, callback callback])

array_filter() iterates over each value in the input array passing them to the callback function. If the callback function returns true, the current value from input is returned into the result array. Array keys are preserved.

Příklad 1. array_filter() example

<?php
function odd($var)
{
    return($var % 2 == 1);
}

function even($var)
{
    return($var % 2 == 0);
}

$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$array2 = array(6, 7, 8, 9, 10, 11, 12);

echo "Odd :\n";
print_r(array_filter($array1, "odd"));
echo "Even:\n";
print_r(array_filter($array2, "even"));
?>

The printout of the program above will be:

Odd :
Array
(
    [a] => 1
    [c] => 3
    [e] => 5
)
Even:
Array
(
    [0] => 6
    [2] => 8
    [4] => 10
    [6] => 12
)

Users may not change the array itself from the callback function. e.g. Add/delete an element, unset the array that array_filter() is applied to. If the array is changed, the behavior of this function is undefined.

If the callback function is not supplied, array_filter() will remove all the entries of input that are equal to FALSE. See converting to boolean for more information.

Příklad 2. array_filter() without callback

<?php

$entry = array(
             0 => 'foo',
             1 => false,
             2 => -1,
             3 => null,
             4 => ''
          );

print_r(array_filter($entry));
?>

This will output :

Array
(
    [0] => foo
    [2] => -1
)

See also array_map(), array_reduce(), and array_walk().

Předcházející | Domů | Další
array_fill | Nahoru | array_flip


array_flip

(PHP 4 , PHP 5)

array_flip -- Prohodit klíče a hodnoty pole

Popis

array array_flip ( array trans)

array_flip() pole s prohozenými klíči a hodnotami.

Příklad 1. Ukázka array_flip()

$trans = array_flip ($trans);
$original = strtr ($str, $trans);

Předcházející | Domů | Další
array_filter | Nahoru | array_intersect_assoc


array_intersect_assoc

(PHP 4 >= 4.3.0, PHP 5)

array_intersect_assoc -- Computes the intersection of arrays with additional index check

Description

array array_intersect_assoc ( array array1, array array2 [, array ...])

array_intersect_assoc() returns an array containing all the values of array1 that are present in all the arguments. Note that the keys are used in the comparison unlike in array_intersect().

Příklad 1. array_intersect_assoc() example

<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
$result_array = array_intersect_assoc($array1, $array2);
?>

$result_array will look like:

Array
(
    [a] => green
)

In our example you see that only the pair "a" => "green" is present in both arrays and thus is returned. The value "red" is not returned because in $array1 its key is 0 while the key of "red" in $array2 is 1.

The two values from the key => value pairs are considered equal only if (string) $elem1 === (string) $elem2 . In otherwords a strict type check is executed so the string representation must be the same.

See also array_intersect(),
array_diff() and
array_diff_assoc().

Předcházející | Domů | Další
array_flip | Nahoru | array_intersect


array_intersect

(PHP 4 >= 4.0.1, PHP 5)

array_intersect -- Spočítat průnik polí

Popis

array array_intersect ( array array1, array array2 [, array ...])

array_intersect() vrací pole obsahující všechny hodnoty z array1, které se vyskytují ve všech argumentech. Klíče jsou zachovány.

Příklad 1. Ukázka array_intersect()

$array1 = array ("a" => "green", "red", "blue");
$array2 = array ("b" => "green", "yellow", "red");
$result = array_intersect ($array1, $array2);

$result obsahuje array ("a" => "green", "red");

Viz také: array_diff().

Předcházející | Domů | Další
array_intersect_assoc | Nahoru | array_key_exists


array_key_exists

(PHP 4 >= 4.1.0, PHP 5)

array_key_exists -- Checks if the given key or index exists in the array

Description

bool array_key_exists ( mixed key, array search)

array_key_exists() returns TRUE if the given key is set in the array. key can be any value possible for an array index.

Příklad 1. array_key_exists() example

<?php
$search_array = array("first" => 1, "second" => 4);
if (array_key_exists("first", $search_array)) {
    echo "The 'first' element is in the array";
}
?>

Poznámka: The name of this function is key_exists() in PHP 4.0.6.

See also isset(),
array_keys(), and
in_array().

Předcházející | Domů | Další
array_intersect | Nahoru | array_keys


array_keys

(PHP 4 , PHP 5)

array_keys -- Vrátit všechny klíče pole

Popis

array array_keys ( array input [, mixed search_value])

array_keys() vrací klíče, numerické i textové, z pole input.

Pokud je přítomen volitelný argument search_value, vrací pouze klíče této hodnoty. Jinak vrací všechny klíče z pole input.

Příklad 1. Ukázka array_keys()

$array = array (0 => 100, "color" => "red");
array_keys ($array);       // vrací array (0, "color")

$array = array ("blue", "red", "green", "blue", "blue");
array_keys ($array, "blue");  //  vrací array (0, 3, 4)

$array = array ("color" => array("blue", "red", "green"), "size" => array("small", "medium", "large"));
array_keys ($array);  //  vrací array ("color", "size")

Poznámka: Tato funkce byla přidána v PHP 4, dále je uvedena implementace pro ty, kteří stále používají PHP 3.

Příklad 2. Implementace array_keys() pro uživatele PHP 3

function array_keys ($arr, $term="") {
    $t = array();
    while (list($k,$v) = each($arr)) {
        if ($term && $v != $term)
            continue;
            $t[] = $k;
        }
        return $t;
}

Viz také: array_values().

Předcházející | Domů | Další
array_key_exists | Nahoru | array_map


array_map

(PHP 4 >= 4.0.6, PHP 5)

array_map -- Applies the callback to the elements of the given arrays

Description

array array_map ( mixed callback, array arr1 [, array ...])

array_map() returns an array containing all the elements of arr1 after applying the callback function to each one. The number of parameters that the callback function accepts should match the number of arrays passed to the array_map()

Příklad 1. array_map() example

<?php
function cube($n)
{
    return($n * $n * $n);
}

$a = array(1, 2, 3, 4, 5);
$b = array_map("cube", $a);
print_r($b);
?>

This makes $b have:

Array
(
    [0] => 1
    [1] => 8
    [2] => 27
    [3] => 64
    [4] => 125
)

Příklad 2. array_map() - using more arrays

<?php
function show_Spanish($n, $m)
{
    return("The number $n is called $m in Spanish");
}

function map_Spanish($n, $m)
{
    return(array($n => $m));
}

$a = array(1, 2, 3, 4, 5);
$b = array("uno", "dos", "tres", "cuatro", "cinco");

$c = array_map("show_Spanish", $a, $b);
print_r($c);

$d = array_map("map_Spanish", $a , $b);
print_r($d);
?>

This results:

// printout of $c
Array
(
    [0] => The number 1 is called uno in Spanish
    [1] => The number 2 is called dos in Spanish
    [2] => The number 3 is called tres in Spanish
    [3] => The number 4 is called cuatro in Spanish
    [4] => The number 5 is called cinco in Spanish
)

// printout of $d
Array
(
    [0] => Array
        (
            [1] => uno
        )

    [1] => Array
        (
            [2] => dos
        )

    [2] => Array
        (
            [3] => tres
        )

    [3] => Array
        (
            [4] => cuatro
        )

    [4] => Array
        (
            [5] => cinco
        )

)

Usually when using two or more arrays, they should be of equal length because the callback function is applied in parallel to the corresponding elements. If the arrays are of unequal length, the shortest one will be extended with empty elements.

An interesting use of this function is to construct an array of arrays, which can be easily performed by using NULL as the name of the callback function

Příklad 3. Creating an array of arrays

<?php
$a = array(1, 2, 3, 4, 5);
$b = array("one", "two", "three", "four", "five");
$c = array("uno", "dos", "tres", "cuatro", "cinco");

$d = array_map(null, $a, $b, $c);
print_r($d);
?>

The printout of the program above will be:

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
        )

)

See also array_filter(),
array_reduce(), and
array_walk().

Předcházející | Domů | Další
array_keys | Nahoru | array_merge_recursive


array_merge_recursive

(PHP 4 >= 4.0.1, PHP 5)

array_merge_recursive -- Rekurzivně sloučit dvě nebo více polí

Popis

array array_merge_recursive ( array array1, array array2 [, array ...])

array_merge_recursive() sloučí prvky dvou nebo více polí tak, že hodnoty pole se připojí na konec předchozího pole. Vrací výsledné pole.

Pokud obsahují vstupní pole stejný textový klíč, hodnoty těchto klíčů se rekurzivně sloučí do pole tak, že pokud je jedna z hodnot sama pole, tato funkce ji také sloučí s odpovídající položkou z dalšího pole. Pokud ale tato pole mají stejný číselný klíč, pozdější hodnota nepřepíše tu dřívější, ale připojí se.

Příklad 1. Ukázka array_merge_recursive()

$ar1 = array ("color" => array ("favorite" => "red"), 5);
$ar2 = array (10, "color" => array ("favorite" => "green", "blue"));
$result = array_merge_recursive ($ar1, $ar2);

Výsledné pole bude array ("color" => array ("favorite" => array ("red", "green"), "blue"), 5, 10).

Viz také: array_merge().

Předcházející | Domů | Další
array_map | Nahoru | array_merge


array_merge

(PHP 4 , PHP 5)

array_merge -- Sloučit dvě nebo více polí

Popis

array array_merge ( array array1, array array2 [, array ...])

array_merge() sloučí prvky dvou nebo více polí dohromady tak, že hodnoty každého pole se připojí na konec předchozího. Vrací výsledné pole.

Pokud mají vstupní pole stejný textový klíč, pozdější hodnota přepíše dřívější hodnotu. Pokud ale mají stejný číselný klíč, pozdější hodnota tu púvodní nepřepíše, ale připojí se k ní.

Příklad 1. Ukázka array_merge()

$array1 = array ("color" => "red", 2, 4);
$array2 = array ("a", "b", "color" => "green", "shape" => "trapezoid", 4);
array_merge ($array1, $array2);

Výsledné pole bude array("color" => "green", 2, 4, "a", "b", "shape" => "trapezoid", 4).

Viz také: array_merge_recursive().

Předcházející | Domů | Další
array_merge_recursive | Nahoru | array_multisort


array_multisort

(PHP 4 , PHP 5)

array_multisort -- Třídit více polí, nebo vícerozměrné pole

Popis

bool array_multisort ( array ar1 [, mixed arg [, mixed ... [, array ...]]])

array_multisort() se dá využít k třídění několika polí najednou nebo k třídění vícerozměrného pole XXX according by one of more dimensions. Při třídění udržuje asociace klíčů.

Vstupní pole jsou manipulována jako sloupce tabulky, která se má třídit podle řádků - připomíná to funkcionalitu SQL klauzule ORDER BY. První pole je to, podle kterého se bude třídit. Řádky (hodnoty) v tomto poli that compare the same are sorted by the next input array, and so on.

Struktura argumentů této funkce je trochu neobvyklá, ale pružná. První argument musí být pole. Každý další argument může být buď pole nebo jeden z příznak z následujících seznamů:

Příznaky směru třídění:

  • SORT_ASC - třídit vzestupně

  • SORT_DESC - třídit sestupně

Příznaky typu třídění:

  • SORT_REGULAR - porovnávat položky normálně

  • SORT_NUMERIC - porovnávat položky číselně

  • SORT_STRING - porovnávat položky jako řetězce

Po každém poli můžete specifikovat jeden příznak každého typu. Příznaky třídění specifikované po každém poli platí pouze pro toto pole - pro další pole se resetují na defaultní SORT_ASC a SORT_REGULAR.

Při úspěchu vrací TRUE, při selhání FALSE.

Příklad 1. Třídění více polí

$ar1 = array ("10", 100, 100, "a");
$ar2 = array (1, 3, "2", 1);
array_multisort ($ar1, $ar2);

V této ukázce bude po setřídění první pole obsahovat 10, "a", 100, 100. Druhé pole bude obsahovat 1, 1, 2, "3". Položky druhého pole odpovídající identickým položkám v prvním poli (100 a 100) byly také setříděny.

Příklad 2. Třídění vícerozměrného pole

$ar = array (array ("10", 100, 100, "a"), array (1, 3, "2", 1));
array_multisort ($ar[0], SORT_ASC, SORT_STRING,
                 $ar[1], SORT_NUMERIC, SORT_DESC);

V této ukázce bude po setřídění první pole obsahovat 10, 100, 100, "a" (bylo tříděno vzestupně jako řetězce) a druhé pole bude obsahovat 1, 3, "2", 1 (tříděno jako čísla, sestupně).

Předcházející | Domů | Další
array_merge | Nahoru | array_pad


array_pad

(PHP 4 , PHP 5)

array_pad -- Doplnit pole hodnotou na určenou délku

Popis

array array_pad ( array input, int pad_size, mixed pad_value)

array_pad() vrací kopii pole input doplněnou na velikost pad_size hodnotou pad_value. Pokud je pad_size kladná, pole je doplněno zprava, pokud je negativní, zleva. Pokud je absolutní hodnota pad_size menší nebo rovna velikosti input, k doplnění nedojde.

Příklad 1. Ukázka array_pad()

$input = array (12, 10, 9);

$result = array_pad ($input, 5, 0);
// výsledek je array (12, 10, 9, 0, 0)

$result = array_pad ($input, -7, -1);
// výsledek je array (-1, -1, -1, -1, 12, 10, 9)

$result = array_pad ($input, 2, "noop");
// nedoplněno

Předcházející | Domů | Další
array_multisort | Nahoru | array_pop


array_pop

(PHP 4 , PHP 5)

array_pop -- Odstranit prvek z konce pole

Popis

mixed array_pop ( array array)

array_pop() odstraní a vrátí poslední hodnotu pole array, čímž ho zkrátí o jeden prvek.

Příklad 1. Ukázka array_pop()

$stack = array ("orange", "apple", "raspberry");
$fruit = array_pop ($stack);

$stack má teď pouze dva prvky: "orange" a "apple", a $fruit obsahuje "raspberry".

Viz také: array_push(),
array_shift() a
array_unshift().

Předcházející | Domů | Další
array_pad | Nahoru | array_push


array_push

(PHP 4 , PHP 5)

array_push -- Přidat jeden nebo více prvků na konec pole

Popis

int array_push ( array array, mixed var [, mixed ...])

array_push() připojuje předané proměnné na konec array. Délka array se zvětšuje o počet přidaných proměnných. Účinek je stejný jako:
$array[] = $var;
opakované pro každou var.

Vrací nový počet prvků v poli.

Příklad 1. Ukázka array_push()

$stack = array (1, 2);
array_push ($stack, "+", 3);

Výsledkem této ukázky by byl $stack obsahující 4 prvky: 1, 2, "+" a 3.

Viz také: array_pop(),
array_shift() a
array_unshift().

Předcházející | Domů | Další
array_pop | Nahoru | array_rand


array_rand

(PHP 4 , PHP 5)

array_rand -- Vybrat náhodně jeden nebo více prvků pole

Popis

mixed array_rand ( array input [, int num_req])

array_rand() je poměrně užitečná, když chcete z pole vybrat náhodně jednu nebo více hodnot. Přijímá pole input a volitelný argument num_req, který určuje, kolik položek chcete. Jeho defaultní hodnota je 1.

Pokud vybíráte pouze jednu položku, array_rand() vrací klíč náhodné položky. Jinak vrací pole klíčů náhodně vybraných položek. Takto můžete vybírat náhodně hodnoty i klíče.

Nezapomeňte inicializovat generátor náhodných čísel pomocí srand().

Příklad 1. Ukázka array_rand()

srand ((double) microtime() * 10000000);
$input = array ("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$rand_keys = array_rand ($input, 2);
print $input[$rand_keys[0]]."\n";
print $input[$rand_keys[1]]."\n";

Předcházející | Domů | Další
array_push | Nahoru | array_reduce


array_reduce

(PHP 4 >= 4.0.5, PHP 5)

array_reduce -- Iteratively reduce the array to a single value using a callback function

Description

mixed array_reduce ( array input, callback function [, int initial])

array_reduce() applies iteratively the function function to the elements of the array input, so as to reduce the array to a single value. If the optional initial is available, it will be used at the beginning of the process, or as a final result in case the array is empty.

Příklad 1. array_reduce() example

<?php
function rsum($v, $w)
{
    $v += $w;
    return $v;
}

function rmul($v, $w)
{
    $v *= $w;
    return $v;
}

$a = array(1, 2, 3, 4, 5);
$x = array();
$b = array_reduce($a, "rsum");
$c = array_reduce($a, "rmul", 10);
$d = array_reduce($x, "rsum", 1);
?>

This will result in $b containing 15, $c containing 1200 (= 1*2*3*4*5*10), and $d containing 1.

See also array_filter(),
array_map(),
array_unique(), and
array_count_values().

Předcházející | Domů | Další
array_rand | Nahoru | array_reverse


array_reverse

(PHP 4 , PHP 5)

array_reverse -- Vrátit pole s prvky v opačném pořadí

Popis

array array_reverse ( array array [, bool preserve_keys])

array_reverse() takes input array and returns a new array with the order of the elements reversed, preserving the keys if preserve_keys is TRUE.

Příklad 1. array_reverse() example

$input = array ("php", 4.0, array ("green", "red"));
$result = array_reverse ($input);
$result_keyed = array_reverse ($input, true);

$result teď obsahuje array (array ("green", "red"), 4.0, "php"). Ale $result2[0] je stále "php".

Poznámka: Druhý argument byl přidán v PHP 4.0.3.

Předcházející | Domů | Další
array_reduce | Nahoru | array_search


array_search

(PHP 4 >= 4.0.5, PHP 5)

array_search -- Searches the array for a given value and returns the corresponding key if successful

Description

mixed array_search ( mixed needle, array haystack [, bool strict])

Searches haystack for needle and returns the key if it is found in the array, FALSE otherwise.

Poznámka: If needle is a string, the comparison is done in a case-sensitive manner.

Poznámka: Prior to PHP 4.2.0, array_search() returns NULL on failure instead of FALSE.

If the optional third parameter strict is set to TRUE then the array_search() will also check the types of the needle in the haystack.

If needle is found in haystack more than once, the first matching key is returned. To return the keys for all matching values, use array_keys() with the optional search_value parameter instead.

Příklad 1. array_search() example

<?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;
?>

Varování

Tato funkce může vracet booleovskou hodnotu FALSE, ale také nebooleovskou hodnotu odpovídající ohodnocení FALSE, například 0 nebo "". Čtěte prosím sekci o typu Boolean, kde najdete více informací. Pro testování návratové hodnoty této funkce použijte operátor ===.

See also array_keys(),
array_values(),
array_key_exists(), and
in_array().

Předcházející | Domů | Další
array_reverse | Nahoru | array_shift


array_shift

(PHP 4 , PHP 5)

array_shift -- Odstranit prvek ze začátku pole

Popis

mixed array_shift ( array array)

array_shift() vrací první položku array a odstraní ji, čímž zkrátí array o jeden prvek a ostatní posune dolů.

Příklad 1. Ukázka array_shift()

$args = array ("-v", "-f");
$opt = array_shift ($args);

$args teď má jeden prvek: "-f" a $opt je "-v".

Viz také: array_unshift(),
array_push() a
array_pop().

Předcházející | Domů | Další
array_search | Nahoru | array_slice


array_slice

(PHP 4 , PHP 5)

array_slice -- Vytáhnout část pole

Popis

array array_slice ( array array, int offset [, int length])

array_slice() vrací sekvenci prvků array určených argumenty offset a length.

Pokud je offset kladný, tato sekvence začne offset položek od začátku array. Pokud je offset záporný, tato sekvence začne tolik položek od konce array.

Pokud je length kladná, tato sekvence bude obsahovat tolik prvků. Pokud je length záporná, tato sekvence skončí tolik prvků od konce array. Pokud length vynecháte, tato sekvence bude obsahovat všechny prvky array od offset do konce.

Příklad 1. Ukázka array_slice()

$input = array ("a", "b", "c", "d", "e");

$output = array_slice ($input, 2);      // returns "c", "d", and "e"
$output = array_slice ($input, 2, -1);  // returns "c", "d"
$output = array_slice ($input, -2, 1);  // returns "d"
$output = array_slice ($input, 0, 3);   // returns "a", "b", and "c"

Viz také: array_splice().

Předcházející | Domů | Další
array_shift | Nahoru | array_splice


array_splice

(PHP 4 , PHP 5)

array_splice -- Odstranit část pole a nahradit ji něčím jiným

Popis

array array_splice ( array input, int offset [, int length [, array replacement]])

array_splice() odstraňuje prvky pole input určené argumenty offset a length, a případně je nahrazuje prvky volitelného argumentu (pole) replacement.

Pokud je offset kladný, tato odstraněná část začne offset položek od začátku array. Pokud je offset záporný, začne tolik položek od konce array.

Pokud vynecháte length, array_splice() odstraní všechno od offset do konce pole. Pokud je length kladná, odstraní se právě tolik prvků. Pokud je length záporná, konec odstraněné části bude právě tolik prvků od konce pole. Tip: k odstranění všech prvků od offset do konce pole při současně určeném argumentu replacement použijte jako length count($input).

Pokud zadáte replacement pole, odstraněné prvky se nahradí prvky tohoto pole. Pokud argumenty offset a length definovány tak, že se nic neodstraní, prvky pole replacement se vloží na místo určené argumentem offset. Tip: pokud je replacement jen jedna hodnota, není nutno ji umisťovat do array(), ledaže chcete, aby tato položka byla opravdu pole.

Následující volání jsou ekvivalentní:
array_push ($input, $x, $y)     array_splice ($input, count ($input), 0,
                                             array ($x, $y))
array_pop ($input)              array_splice ($input, -1)
array_shift ($input)            array_splice ($input, 0, 1)
array_unshift ($input, $x, $y)  array_splice ($input, 0, 0, array ($x, $y))
$a[$x] = $y                     array_splice ($input, $x, 1, $y)

Vrací pole odstraněných prvků.

Příklad 1. Ukázky array_splice()

$input = array ("red", "green", "blue", "yellow");

array_splice ($input, 2);      // $input is now array ("red", "green")
array_splice ($input, 1, -1);  // $input is now array ("red", "yellow")
array_splice ($input, 1, count($input), "orange");
                               // $input is now array ("red", "orange")
array_splice ($input, -1, 1, array("black", "maroon"));
                               // $input is now array ("red", "green",
                               //          "blue", "black", "maroon")

Viz také: array_slice().

Předcházející | Domů | Další
array_slice | Nahoru | array_sum


array_sum

(PHP 4 >= 4.0.4, PHP 5)

array_sum -- Calculate the sum of values in an array.

Description

mixed array_sum ( array array)

array_sum() returns the sum of values in an array as an integer or float.

Příklad 1. array_sum() examples

<?php
$a = array(2, 4, 6, 8);
echo "sum(a) = " . array_sum($a) . "\n";

$b = array("a" => 1.2, "b" => 2.3, "c" => 3.4);
echo "sum(b) = " . array_sum($b) . "\n";
?>

The printout of the program above will be:

sum(a) = 20
sum(b) = 6.9

Poznámka: PHP versions prior to 4.2.1 modified the passed array itself and converted strings to numbers (which most of the time converted them to zero, depending on their value).

Předcházející | Domů | Další
array_splice | Nahoru | array_udiff_assoc


array_udiff_assoc

(PHP 5)

array_udiff_assoc -- Computes the difference of arrays with additional index check. The data is compared by using a callback function.

Description

array array_udiff_assoc ( array array1, array array2 [, array ..., callback data_compare_func])

array_udiff_assoc() returns an array containing all the values from array1 that are not present in any of the other arguments. Note that the keys are used in the comparison unlike array_diff() and array_udiff(). The comparison of arrays' data is performed by using an user-supplied callback. In this aspect the behaviour is opposite to the behaviour of array_diff_assoc() which uses internal function for comparison.

Příklad 1. array_udiff_assoc() example

<?php
class cr {
    private $priv_member;
    function cr($val)
    {
        $this->priv_member = $val;
    }

    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);
?>

The result is:

Array
(
    [0.1] => cr Object
        (
            [priv_member:private] => 9
        )

    [0.5] => cr Object
        (
            [priv_member:private] => 12
        )

    [0] => cr Object
        (
            [priv_member:private] => 23
        )
)

In our example above you see the "1" => new cr(4) pair is present in both arrays and thus it is not in the ouput from the function.

For comparison is used the user supplied callback function. It must return an integer less than, equal to, or greater than zero if the first argument is considered to be respectively less than, equal to, or greater than the second.

Poznámka: Please note that this function only checks one dimension of a n-dimensional array. Of course you can check deeper dimensions by using, for example, array_udiff_assoc($array1[0], $array2[0], "some_comparison_func");.

See also
array_diff(),
array_diff_assoc(),
array_diff_uassoc(),
array_udiff(),
array_udiff_uassoc(),
array_intersect(),
array_intersect_assoc(),
array_uintersect(),
array_uintersect_assoc() and
array_uintersect_uassoc().

Předcházející | Domů | Další
array_sum | Nahoru | array_udiff_uassoc


array_udiff_uassoc

(PHP 5)

array_udiff_uassoc -- Computes the difference of arrays with additional index check. The data is compared by using a callback function. The index check is done by a callback function also

Description

array array_udiff_uassoc ( array array1, array array2 [, array ..., callback data_compare_func, callback key_compare_func])

array_udiff_uassoc() returns an array containing all the values from array1 that are not present in any of the other arguments. Note that the keys are used in the comparison unlike array_diff() and array_udiff(). The comparison of arrays' data is performed by using an user-supplied callback : data_compare_func. In this aspect the behaviour is opposite to the behaviour of array_diff_assoc() which uses internal function for comparison. The comparison of keys (indices) is done also by the callback function key_compare_func. This behaviour is unlike what array_udiff_assoc() does, since the latter compares the indices by using an internal function.

Příklad 1. array_udiff_uassoc() example

<?php
class cr {
    private $priv_member;
    function cr($val)
    {
        $this->priv_member = $val;
    }

    function comp_func_cr($a, $b)
    {
        if ($a->priv_member === $b->priv_member) return 0;
        return ($a->priv_member > $b->priv_member)? 1:-1;
    }

    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);
?>

The result is:

Array
(
    [0.1] => cr Object
        (
            [priv_member:private] => 9
        )

    [0.5] => cr Object
        (
            [priv_member:private] => 12
        )

    [0] => cr Object
        (
            [priv_member:private] => 23
        )
)

In our example above you see the "1" => new cr(4) pair is present in both arrays and thus it is not in the ouput from the function. Keep in mind that you have to supply 2 callback functions.

For comparison is used the user supplied callback function. It must return an integer less than, equal to, or greater than zero if the first argument is considered to be respectively less than, equal to, or greater than the second.

Poznámka: Please note that this function only checks one dimension of a n-dimensional array. Of course you can check deeper dimensions by using, for example, array_udiff_uassoc($array1[0], $array2[0], "data_compare_func", "key_compare_func");.

See also
array_diff(),
array_diff_assoc(),
array_diff_uassoc(),
array_udiff(),
array_udiff_assoc(),
array_intersect(),
array_intersect_assoc(),
array_uintersect(),
array_uintersect_assoc() and
array_uintersect_uassoc().

Předcházející | Domů | Další
array_udiff_assoc | Nahoru | array_udiff


array_udiff

(PHP 5)

array_udiff -- Computes the difference of arrays by using a callback function for data comparison.

Description

array array_udiff ( array array1, array array2 [, array ..., callback data_compare_func])

array_udiff() returns an array containing all the values of array1 that are not present in any of the other arguments. Note that keys are preserved. For the comparison of the data data_compare_func is used. It must return an integer less than, equal to, or greater than zero if the first argument is considered to be respectively less than, equal to, or greater than the second. This is unlike array_diff() which uses an internal function for comparing the data.

Příklad 1. array_udiff() example

<?php
class cr {
    private $priv_member;
    function cr($val)
    {
        $this->priv_member = $val;
    }

    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($a, $b, array("cr", "comp_func_cr"));
print_r($result);
?>

The result is:

Array
(
    [0.5] => cr Object
        (
            [priv_member:private] => 12
        )

    [0] => cr Object
        (
            [priv_member:private] => 23
        )

)

Poznámka: Two elements are considered equal if and only if (string) $elem1 === (string) $elem2. In words: when the string representation is the same.

Poznámka: Please note that this function only checks one dimension of a n-dimensional array. Of course you can check deeper dimensions by using array_udiff($array1[0], $array2[0], "data_compare_func");.

See also
array_diff(),
array_diff_assoc(),
array_diff_uassoc(),
array_udiff_assoc(),
array_udiff_uassoc(),
array_intersect(),
array_intersect_assoc(),
array_uintersect(),
array_uintersect_assoc() and
array_uintersect_uassoc().

Předcházející | Domů | Další
array_udiff_uassoc | Nahoru | array_unique


array_unique

(PHP 4 >= 4.0.1, PHP 5)

array_unique -- Odstranit z pole duplicitní hodnoty

Popis

array array_unique ( array array)

array_unique() přijímá pole array a vrací nové pole bez duplicitních hodnot. Klíče jsou zachovány.

Příklad 1. Ukázka array_unique()

$input = array ("a" => "green", "red", "b" => "green", "blue", "red");
$result = array_unique ($input);

$result teď obsahuje array ("a" => "green", "red", "blue");.

Předcházející | Domů | Další
array_udiff | Nahoru | array_unshift


array_unshift

(PHP 4 , PHP 5)

array_unshift -- Připojit jeden nebo více prvků na začátek pole

Popis

int array_unshift ( array array, mixed var [, mixed ...])

array_unshift() připojí předané prvky na začátek array. Všechny prvky jsou přidány jako celek, čili přidané prvky si zachovávají pořadí.

vrací nový počet prvků v array.

Příklad 1. Ukázka array_unshift()

$queue = array ("p1", "p3");
array_unshift ($queue, "p4", "p5", "p6");

$queue bude mít 5 prvků: "p4", "p5", "p6", "p1" a "p3".

Viz také: array_shift(),
array_push() a
array_pop().

Předcházející | Domů | Další
array_unique | Nahoru | array_values


array_values

(PHP 4 , PHP 5)

array_values -- Vrátit všechny hodnoty v poli

Popis

array array_values ( array input)

array_values() vrací všechny hodnoty pole input.

Příklad 1. Ukázka array_values()

$array = array ("size" => "XL", "color" => "gold");
array_values ($array);    // vrátí array ("XL", "gold")

Poznámka: Tato funkce byla přidána v PHP 4, následuje implementace pro ty, kdo stále používají PHP 3.

Příklad 2. Implementace array_values() pro uživatele PHP 3

function array_values ($arr) {
    $t = array();
    while (list($k, $v) = each ($arr)) {
        $t[] = $v;
        return $t;
    }
}

Předcházející | Domů | Další
array_unshift | Nahoru | array_walk


array_walk

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

array_walk -- Použít uživatelskou funkci na všechny prvky pole

Popis

int array_walk ( array arr, string func, mixed userdata)

Aplikuje funkci func na všechny prvky pole arr. Funkci func se jako první argument předá hodnota a jako druhý klíč. Pokud je přítomen argument userdata, bude uživatelské funkci předán jako třetí argument.

Pokud func vyžaduje více než dva nebo tři argumenty (v závislosti na userdata), pro každé volání func z array_walk() se vygeneruje varování. Tato varování se dají potlačit přidáním znaku '@' před volání array_walk() nebo pomocí error_reporting().

Poznámka: Pokud func potřebuje pracovat přímo s daným polem, první argument func se musí předávat odkazem. Všechny změny těchto hodnot se pak promítnou přímo v arr.

Poznámka: Druhý a třetí argument func byly přidány v PHP 4.0.

V PHP 4 je třeba volat podle potřeby reset(), protože array_walk() sama vstupní pole neresetuje.

Příklad 1. Ukázka array_walk()

$fruits = array ("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");

function test_alter (&$item1, $key, $prefix) {
    $item1 = "$prefix: $item1";
}

function test_print ($item2, $key) {
    echo "$key. $item2<br>\n";
}

array_walk ($fruits, 'test_print');
reset ($fruits);
array_walk ($fruits, 'test_alter', 'fruit');
reset ($fruits);
array_walk ($fruits, 'test_print');

Viz také: each() a list().

Předcházející | Domů | Další
array_values | Nahoru | array


array

(PHP 3, PHP 4, PHP 5 )

array -- Vytvořit pole

Popis

array array ( [mixed ...])

Vrací pole argumentů. Argumentům může být přiřazen index pomocí operátoru =>. Viz část o typu pole pro bližší vysvětlení toho, co to pole je.

Poznámka: array() je jazykový konstrukt používaný k reprezentaci polí, nikoliv běžná funkce.

Syntaxe "index => hodnota", s čárkou jako oddělovačem, definuje indexy a hodnoty. Index může být řetězec nebo číslo. Pokud se index vynechá, automaticky se generuje číselný index začínající na 0. Pokud je index integer, další generovaný index bude nejvyšší celočíselný index + 1. Pozn.: pokud jsou definovány dva identické indexy, první se přepíše posledním.

Následující ukázka demonstruje jak vytvořit dvourozměrné pole, jak určit klíče v asociativních polích, a jak přeskakovat číselné indexy v normálních polích.

Příklad 1. Ukázka array()

<?php
$ovoce = array (
    "fruits"  => array("a" => "pomeranč", "b" => "banán", "c" => "jablko"),
    "numbers" => array(1, 2, 3, 4, 5, 6),
    "holes"   => array("první", 5 => "druhý", "třetí")
)
?>

Příklad 2. Automatický index a array()

<?php
$array = array(1, 1, 1, 1,  1, 8 => 1,  4 => 1, 19, 3 => 13);
print_r($array);
?>
výstup bude následující:

Array
(
    [0] => 1
    [1] => 1
    [2] => 1
    [3] => 13
    [4] => 1
    [8] => 1
    [9] => 19
)

Index 3 je definován dvakrát, a podrží si poslední hodnotu 13. Index 4 je definován po indexu 8 a další generovaný index (hodnota 19) je 9, protože nejvyšší index byl 8.

Tato ukázka vytvoří pole číslované od 1.

Příklad 3. Index začínající 1 s array()

<?php
$prvni_kvartal = array(1 => 'leden', 'únor', 'březen');
print_r($prvni_kvartal);
?>
toto bude výstup:

Array
(
    [1] => leden
    [2] => únor
    [3] => březen
)

Viz také array_pad(), list(), foreach a range().

Předcházející | Domů | Další
array_walk | Nahoru | arsort


arsort

(PHP 3, PHP 4 , PHP 5)

arsort -- Třídit pole sestupně se zachováním klíčů

Popis

void arsort ( array array [, int sort_flags])

arsort() třídí pole tak, že indexy pole si zachovávají korelace s prvky, se kterými jsou asociovány. Toto je užitečné hlavně při třídění asociativních polí, kde je pořadí prvků signifikantní.

Příklad 1. Ukázka arsort()

$fruits = array ("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");
arsort ($fruits);
reset ($fruits);
while (list ($key, $val) = each ($fruits)) {
    echo "$key = $val\n";
}

Tato ukázka zobrazí:

fruits[a] = orange
fruits[d] = lemon
fruits[b] = banana
fruits[c] = apple

Ovoce bylo sestupně setříděno podle abecedy, a indexy asociované s jednotlivými prvky byly zachovány.

Chování třídění můžete upravit pomocí volitelného argumentu sort_flags, detaily viz sort().

Viz také: asort(),
rsort(),
ksort() a
sort().

Předcházející | Domů | Další
array | Nahoru | asort


asort

(PHP 3, PHP 4 , PHP 5)

asort -- Třídit pole se zachováním indexů

Popis

void asort ( array array [, int sort_flags])

asort() třídí pole tak, že si indexy zachovají corelace s prvky, se kterými jsou spojeny. To je užitečné hlavně při třídění asociativních polí, u kterých je pořadí prvků signifikantní.

Příklad 1. Ukázka asort()

$fruits = array ("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");
asort ($fruits);
reset ($fruits);
while (list ($key, $val) = each ($fruits)) {
    echo "$key = $val\n";
}

Tato ukázka zobrazí:

fruits[c] = apple
fruits[b] = banana
fruits[d] = lemon
fruits[a] = orange

Ovoce bylo setříděno podle abecedy a indexy spojené s jednotlivými prvky byly zachovány.

Chování třídění můžete upravit pomocí volitelného argumentu sort_flags, detaily viz sort().

Viz také: arsort(),
rsort(),
ksort() a
sort().

Předcházející | Domů | Další
arsort | Nahoru | compact


compact

(PHP 4 , PHP 5)

compact -- Vytvořit pole obsahující proměnné a jejich hodnoty

Popis

array compact ( mixed varname [, mixed ...])

compact() přijímá proměnný počet argumentů. Každý argument může být buď řetězec obsahující název proměnné nebo pole názvů proměnných. Toto pole může také obsahovat pole názvů proměnnýchů; compact() je rekurzivně zpracuje.

Pro každý z řetězců compact() vyhledá v aktivní symbolové tabulce proměnnou tohoto jména a přidá ji do výsledného pole tak, že název této proměnné se stane klíčem a obsah této proměnné hodnotou tohoto klíče. Stručně řečeno, dělá pravý opak toho, co extract(). Vrací pole obsahující všechny tyto proměnné.

Řetězce, které neobsahují názvy platných proměnných se přeskočí.

Příklad 1. Ukázka compact()

$city = "San Francisco";
$state = "CA";
$event = "SIGGRAPH";

$location_vars = array ("city", "state");

$result = compact ("event", "nothing_here", $location_vars);

$result bude array ("event" => "SIGGRAPH", "city" => "San Francisco", "state" => "CA").

Viz také: extract().

Předcházející | Domů | Další
asort | Nahoru | count


count

(PHP 3, PHP 4 , PHP 5)

count -- Spočítat prvky v proměnné

Popis

int count ( mixed var [, int mode])

Vrací počet prvků v var, která je typicky pole (jelikož všechno ostatní má jeden prvek).

Vrací 1, pokud var není pole (výjimka: count(NULL) je 0).

Pokud je volitelný parametr mode nastaven na COUNT_RECURSIVE (nebo 1), tak funkce count() spočítá pole rekurzivně. To je obzvláště užitečné pro spočítání všech prvků vícerozměrného pole. Výchozí hodota parametru mode je 0.

Výstraha

count() vrací 0 pro proměnné, které nejsou inicializovány, ale vrací také 0 pro proměnné, které obsahují prázdné pole. Pokud potřebujete zjistit, jestli dotyčná proměnná existuje, použijte isset().

Bližší vysvětlení toho, jak jsou v PHP implementována a používána pole, najdete v části Pole

Příklad 1. Ukázka count()

<?php
$a[0] = 1;
$a[1] = 3;
$a[2] = 5;
$result = count($a);
// $result == 3

$b[0]  = 7;
$b[5]  = 9;
$b[10] = 11;
$result = count($b);
// $result == 3;
?>

Příklad 2. příklad na rekurzivní count() (PHP >= 4.2.0)

<?php
$jidlo = array('ovoce' => array('pomeranč', 'banán', 'jablko'),
              'zelenina' => array('mrkev', 'petržel', 'hrášek'));

// rekurzivní počet
echo count($jidlo, COUNT_RECURSIVE);  // vypíše 8

// normálí počet
echo count($jidlo);                  // vypíše 2

?>

Poznámka: Funkce sizeof() je alias funkce count().

Viz také is_array(),
isset() a
strlen().

Předcházející | Domů | Další
compact | Nahoru | current


current

(PHP 3, PHP 4 , PHP 5)

current -- Vrátit současný prvek pole

Popis

mixed current ( array array)

Každé pole má vnitřní ukazatel na jeho "současny" prvek, který se inicializuje na první prvek vložený do tohoto pole.

current() vrací prvek, na který tento interní ukazatel právě ukazuje. Nijak tento ukazatel nemění. Pokud teto vnitřní ukazatel ukazuje za konec seznamu prvků, current() returns FALSE.

Varování

Pokud toto pole obsahuje prázdné prvky (0 nebo "", prázdný řetězec), tato funkce pro tyto prvky také vrátí FALSE. Je proto nemožné určit pomocí current(), jestli jste opravdu na konci pole. To properly traverse an array that may contain empty elements, use the each() function.

Viz také: end(),
next(),
prev() a
reset().

Předcházející | Domů | Další
count | Nahoru | each


each

(PHP 3, PHP 4 , PHP 5)

each -- Vrací další klíč/hodnota pár z pole

Popis

array each ( array array)

Vrací současný klíč/hodnota pár z pole array a posune interní ukazatel pole. Tento pár se vrací jako pole čtyř prvků s klíči 0, 1, key a value. Prvky 0 a key obsahují název klíče tohoto prvku pole a 1 a value obsahují hodnotu.

Pokud interní ukazatel pole ukazuje za konec tohoto pole, each() vrací FALSE.

Příklad 1. Ukázky each()

$foo = array ("bob", "fred", "jussi", "jouni", "egon", "marliese");
$bar = each ($foo);

$bar teď obsahuje následující klíč/hodnota páry:

  • 0 => 0
  • 1 => 'bob'
  • key => 0
  • value => 'bob'
$foo = array ("Robert" => "Bob", "Seppo" => "Sepi");
$bar = each ($foo);

$bar teď obsahuje následující klíč/hodnota páry:

  • 0 => 'Robert'
  • 1 => 'Bob'
  • key => 'Robert'
  • value => 'Bob'

each() se většinou používa s list() k průchodu polem, např. $HTTP_POST_VARS:

Příklad 2. Průchod $HTTP_POST_VARS pomocí each()

echo "Hodnoty odeslané metodou POST:<br>";
reset ($HTTP_POST_VARS);
while (list ($key, $val) = each ($HTTP_POST_VARS)) {
    echo "$key => $val<br>";
}

Poté, co proběhne each(), se interní ukazatel pole posune na další prvek pole nebo zůstane na posledním prvku pole, pokud dojde na konec.

Viz také: key(),
list(),
current(),
reset(),
next() a
prev().

Předcházející | Domů | Další
current | Nahoru | end


end

(PHP 3, PHP 4 , PHP 5)

end -- Nastavit vnitřní ukazatel pole na jeho poslední prvek

Popis

mixed end ( array array)

end() posune vnitřní ukazatel pole array na jeho poslední prvek a vrací tento prvek.

Viz také: current(),
each(),
end(),
next() a
reset().

Předcházející | Domů | Další
each | Nahoru | extract


extract

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

extract -- Importovat proměnné z pole do symbolové tabulky

Popis

int extract ( array var_array [, int extract_type [, string prefix]])

Tato funkce se používá k importu proměnných z pole do aktivní symbolové tabulky. Přijímá pole var_array; z klíčů vytváří názvy proměnných a z hodnot hodnoty těchto proměnných. Vytváří jednu proměnnou z každého klíč/hodnota páru (s ohledem na argumenty extract_type a prefix).

Poznámka: Od PHP 4.0.5 tato funkce vrací počet extrahovaných proměnných.

extract() ověřuje, jestli všechny klíče tvoří platné názvy proměnných, a také jestli nekolidují s proměnnými existujícími v aktivní symbolové tabulce. Způsob, jakým se nakládá s neplatnými/numerickými klíči a kolizemi závisí na extract_type. Ten může mít jednu z následujících hodnot.

EXTR_OVERWRITE

Pokud existuje kolize, přepsat existující proměnnou.

EXTR_SKIP

Pokud existuje kolize, nepřepsat existující proměnnou.

EXTR_PREFIX_SAME

Pokud existuje kolize, předřadit před název nové proměnné prefix.

EXTR_PREFIX_ALL

Opatřit prefixem prefix všechny názvy proměnných. Od PHP 4.0.5 toto zahrnuje i číselné indexy.

EXTR_PREFIX_INVALID

Prefixem prefix opatřit pouze neplatné/číselné názvy proměnných. Tento příznak byl přidán v PHP 4.0.5.

Defaultní extract_type je EXTR_OVERWRITE.

Pozn.: prefix se vyžaduje pouze pokud je extract_type EXTR_PREFIX_SAME, EXTR_PREFIX_ALL nebo EXTR_PREFIX_INVALID. Pokud výsledný název (vč. prefixu) není platný název proměnné, nenaimportuje se do symbolové tabulky.

extract() vrací počet proměnných úspěšně naimportovaných do symbolové tabulky.

Možné využití extract() je import proměnných do symbolové tabulky z asociativního pole vráceného wddx_deserialize().

Příklad 1. Ukázka extract()

<?php

/* Předpokládejme, že $var_array je pole vrácené
   z wddx_deserialize */

$size = "large";
$var_array = array ("color" => "blue",
                    "size"  => "medium",
                    "shape" => "sphere");
extract ($var_array, EXTR_PREFIX_SAME, "wddx");

print "$color, $size, $shape, $wddx_size\n";

?>

Výše uvedená ukázka vytiskne:
blue, large, sphere, medium

$size se nepřepsala, protože bylo specifikováno EXTR_PREFIX_SAME, tudíž se vytvořila proměnná $wddx_size. Pokud by bylo zadáno EXTR_SKIP, nevytvořila by se ani $wddx_size. EXTR_OVERWRITE by způsobilo přepsání hodnoty $size na "medium", a EXTR_PREFIX_ALL by vytvořilo nové proměnné pojmenované $wddx_color, $wddx_size a $wddx_shape.

U PHP verzí nižších než 4.0.5 musíte použít asociativní pole.

Viz také: compact().

Předcházející | Domů | Další
end | Nahoru | in_array


in_array

(PHP 4 , PHP 5)

in_array -- Ověřit, zda v poli existuje daná hodnota

Popis

bool in_array ( mixed needle, array haystack [, bool strict])

Hledá v haystack hodnotu needle a pokud ji najde, vrací TRUE, jinak FALSE.

Pokud je třetí argument strict nastaven na TRUE, tak funkce in_array() také kontroluje typ needle v haystack.

Poznámka: Pokud je needle řetězec, tak porovnání rozlišuje velká a malá písmena.

Poznámka: V PHP starších než 4.2.0 nemohl být parametr needle pole.

Příklad 1. Ukázka in_array()

<?php
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
    echo "Máme Irix";
}
if (in_array("mac", $os)) {
    echo "Máme mac";
}
?>

Druhá podmínka neuspěje, protože funkce in_array() rozlišuje velká a malá písmen, takže program vypíše:

Máme Irix

Příklad 2. Ukázka in_array() s parametrem strict

<?php
$a = array('1.10', 12.4, 1.13);

if (in_array('12.4', $a, true)) {
    echo "'12.4' bylo nalezeno s omezením strict\n";
}

if (in_array(1.13, $a, true)) {
    echo "1.13 bylo nalezeno s omezením strict\n";
}
?>

Vypíše:

1.13 bylo nalezeno s omezením strict

Příklad 3. in_array() při hledání pole

<?php
$a = array(array('p', 'h'), array('p', 'r'), 'o');

if (in_array(array('p', 'h'), $a)) {
    echo "'ph' nalezeno\n";
}

if (in_array(array('f', 'i'), $a)) {
    echo "'fi' nalezeno\n";
}

if (in_array('o', $a)) {
    echo "'o' nalezeno\n";
}
?>

Vypíše:

'ph' nalezeno
  'o' nalezeno

Viz také array_search(),
array_key_exists() a
isset().

Předcházející | Domů | Další
extract | Nahoru | key


key

(PHP 3, PHP 4 , PHP 5)

key -- Fetch a key from an associative array

Popis

mixed key ( array array)

key() vrací index současného prvku pole.

Viz také: current() a next().

Předcházející | Domů | Další
in_array | Nahoru | krsort


krsort

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

krsort -- Třídit pole sestupně podle klíčů

Popis

int krsort ( array array [, int sort_flags])

Třídí pole sestupně podle klíčů se zachování asociací indexů. To je užitečné hlavně při práci s asociativními poli.

Příklad 1. krsort() example

$fruits = array ("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");
krsort ($fruits);
reset ($fruits);
while (list ($key, $val) = each ($fruits)) {
    echo "$key -> $val\n";
}

Tato ukázka vytiskne:

fruits[d] = lemon
fruits[c] = apple
fruits[b] = banana
fruits[a] = orange

Vlastnosti třídění lze upravit pomocí volitelného argumentu sort_flags, detaily viz sort().

Viz také: asort(),
arsort(),
ksort(),
sort(),
natsort() a
rsort().

Předcházející | Domů | Další
key | Nahoru | ksort


ksort

(PHP 3, PHP 4 , PHP 5)

ksort -- Třídit pole podle klíčů

Popis

int ksort ( array array [, int sort_flags])

Třídí pole podle klíčů se zachování asociací indexů. To je užitečné hlavně při práci s asociativními poli.

Příklad 1. ksort() example

$fruits = array ("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");
ksort ($fruits);
reset ($fruits);
while (list ($key, $val) = each ($fruits)) {
    echo "$key -> $val\n";
}

Tato ukázka vytiskne:

fruits[a] = orange
fruits[b] = banana
fruits[c] = apple
fruits[d] = lemon

Vlastnosti třídění lze upravit pomocí volitelného argumentu sort_flags, detaily viz sort().

Viz také: asort(),
arsort(),
sort(),
natsort() a
rsort().

Poznámka: Druhý argument byl přidán v PHP 4.

Předcházející | Domů | Další
krsort | Nahoru | list


list

(PHP 3, PHP 4, PHP 5 )

list -- Přiřadit hodnoty přoměnným jako kdyby byly polem

Popis

void list ( mixed ...)

Stejně jako array(), list() vlastně není funkce, ale jazykový konstrukt. Používá se k přiřazení hodnot více proměnným v jedné operaci.

Příklad 1. Ukázka list()

<table>
 <tr>
  <th>Employee name</th>
  <th>Salary</th>
 </tr>

<?php

$result = mysql ($conn, "SELECT id, name, salary FROM employees");
while (list ($id, $name, $salary) = mysql_fetch_row ($result)) {
    print (" <tr>\n".
           "  <td><a href=\"info.php3?id=$id\">$name</a></td>\n".
           "  <td>$salary</td>\n".
           " </tr>\n");
}

?>

</table>

Viz také: each() a array().

Předcházející | Domů | Další
ksort | Nahoru | natcasesort


natcasesort

(PHP 4 , PHP 5)

natcasesort -- Třídit pole s využitím algoritmu "přirozeného třídění" (case-insensitive)

Popis

void natcasesort ( array array)

Tato funkce implementuje srovnávací algoritmus který třídí alfanumerické řetězce stejným způsobem jako člověk, toto se popisuje jako "přirozené třídění".

natcasesort() je case-insensitive verze natsort(). Ukázka rozdílu mezi tímto algoritmem a běžným počítačovým tříděním řetězců viz natsort().

Více informací viz stránka Martina Poola Natural Order String Comparison.

Viz také: sort(),
natsort(),
strnatcmp() and
strnatcasecmp().

Předcházející | Domů | Další
list | Nahoru | natsort


natsort

(PHP 4 , PHP 5)

natsort -- Třídit pole s využitím algoritmu "přirozeného třídění"

Popis

void natsort ( array array)

Tato funkce implementuje srovnávací algoritmus který třídí alfanumerické řetězce stejným způsobem jako člověk, toto se popisuje jako "přirozené třídění". Ukázka rozdílu mězi tímto algoritmem a běžnými počítačovými algoritmy pro řazení řetězců (např. sort()):

Příklad 1. Ukázka natsort()

$array1 = $array2 = array ("img12.png","img10.png","img2.png","img1.png");

sort($array1);
echo "Standardní třídění\n";
print_r($array1);

natsort($array2);
echo "\nPřirozené třídění\n";
print_r($array2);

Výše uvedený kód vygeneruje následující výstup:

Standardní třídění
Array
(
    [0] => img1.png
    [1] => img10.png
    [2] => img12.png
    [3] => img2.png
)

Přirozené třídění
Array
(
    [3] => img1.png
    [2] => img2.png
    [1] => img10.png
    [0] => img12.png
)

Více informací viz stránka Martina Poola Natural Order String Comparison.

Viz také: natcasesort(),
strnatcmp() a
strnatcasecmp().

Předcházející | Domů | Další
natcasesort | Nahoru | next


next

(PHP 3, PHP 4 , PHP 5)

next -- Posunout interní ukazatel pole

Popis

mixed next ( array array)

Vrací další prvek pole nebo FALSE, pokud prvky došly.

next() se chová jako current(), s jedním rozdílem: posouvá interní ukazatel pole o jeden prvek a vrací prvek, na který tento ukazatel ukazuje po posunu. To znamená, že vrací další prvek pole a posouvá interní ukazatel o jeden. Pokud by ukazatel po psunu ukazoval mimo pole, next() vrací FALSE.

Varování

Pokud toto pole obsahuje prázdné prvky, nebo prvky, jejichž index je 0, tato funkce vrátí FALSE i pro tyto prvky. Ke správnému průchodu polem, které může obsahovat prázdné prvky nebo prvky s indexem 0 použijte each().

Viz také:
current(),
end(),
prev() a
reset().

Předcházející | Domů | Další
natsort | Nahoru | pos


pos

(PHP 3, PHP 4 , PHP 5)

pos -- Získat současný prvek pole

Popis

mixed pos ( array array)

Toto je alias k current().

Viz také: end(),
next(),
prev() a
reset().

Předcházející | Domů | Další
next | Nahoru | prev


prev

(PHP 3, PHP 4 , PHP 5)

prev -- Rewind interní ukazatel pole

Popis

mixed prev ( array array)

Vrací prvek pole před tím prvkem, na který ukazuje interní ukazatel pole, nebo FALSE, pokud prvky došly.

Varování

Pokud toto pole obsahuje prázdné prvky, tato funkce vrátí FALSE i pro tyto prvky. Ke správnému průchodu polem, které může obsahovat prázdné prvky použijte each().

prev() se chová stejně jako next(), ale posouvá interní ukazatel pole o jedno místo zpátky místo dopředu.

Viz také: current(),
end(),
next() a
reset().

Předcházející | Domů | Další
pos | Nahoru | range


range

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

range -- Vytvořit pole obsahující rozsah integerů

Popis

array range ( int low, int high)

range() vrací pole integerů od low po high včetně.

Ukázka použití viz shuffle().

Předcházející | Domů | Další
prev | Nahoru | reset


reset

(PHP 3, PHP 4 , PHP 5)

reset -- Nastavit interní ukazatel pole na jeho první prvek

Popis

mixed reset ( array array)

reset() přetočí interní ukazatel pole array na jeho první prvek a vrátí hodnotu prvního prvku pole.

Příklad 1. Příklad funkce reset()

<?php

$array = array('krok jedna', 'krok dva', 'krok tři', 'krok čtyři');

// na začátku je ukazatel na prvním prvku
echo current($array) . "<br />\n"; // "krok jedna"

// přeskočit dva prvky
next($array);
next($array);
echo current($array) . "<br />\n"; // "krok tři"

// vynulovat ukazatel, začít znovu na prvním prvku
reset($array);
echo current($array) . "<br />\n"; // "krok jedna"

?>

Viz také current(),
each(), next()
a prev().

Předcházející | Domů | Další
range | Nahoru | rsort


rsort

(PHP 3, PHP 4 , PHP 5)

rsort -- Třídit pole sestupně

Popis

void rsort ( array array [, int sort_flags])

Tato funkce sestupně třídí pole.

Příklad 1. Ukázka rsort()

$fruits = array ("lemon", "orange", "banana", "apple");
rsort ($fruits);
reset ($fruits);
while (list ($key, $val) = each ($fruits)) {
    echo "$key -> $val\n";
}

Tato ukázka zobrazí:

fruits[0] = orange
fruits[1] = lemon
fruits[2] = banana
fruits[3] = apple

Ovoce bylo setříděno podle abecedy sestupně.

Vlastnosti třídění lze upravit pomocí volitelného argumentu sort_flags, detaily viz sort().

Viz také: arsort(),
asort(),
ksort(),
sort() a
usort().

Předcházející | Domů | Další
reset | Nahoru | shuffle


shuffle

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

shuffle -- Zamíchat pole

Popis

void shuffle ( array array)

shuffle() zamíchá (náhodně změní pořadí prvků) pole. Musíte inicializovat generátor náhodných čísel pomocí srand().

Příklad 1. Ukázka shuffle()

$numbers = range (1,20);
srand ((double)microtime()*1000000);
shuffle ($numbers);
while (list (, $number) = each ($numbers)) {
    echo "$number ";
}

Viz také: arsort(),
asort(),
ksort(),
rsort(),
sort() a
usort().

Předcházející | Domů | Další
rsort | Nahoru | sizeof


sizeof

(PHP 3, PHP 4 , PHP 5)

sizeof -- Zjistit počet prvků v poli

Popis

int sizeof ( array array)

Vrací počet prvků v poli.

Viz také: count().

Předcházející | Domů | Další
shuffle | Nahoru | sort


sort

(PHP 3, PHP 4 , PHP 5)

sort -- Třídit pole

Popis

void sort ( array array [, int sort_flags])

sort() třídí pole. Prvky se uspořádají od nejmenšího k největšímu.

Poznámka: Tato funkce přiřadí prvkům pole nové klíče. Odstraní jakékoliv existující klíče. Nepřeuspořádá klíče, jak byste možná čekali.

Vrací TRUE při úspěchu, FALSE při selhání.

Příklad 1. Ukázka sort()

<?php

$ovoce = array("citrón", "pomeranč", "banán", "jablko");
sort($ovoce);
reset($ovoce);
while (list($key, $val) = each($ovoce)) {
    echo "ovoce[" . $key . "] = " . $val . "\n";
}

?>

Tato ukázka zobrazí:

fruits[0] = banán
fruits[1] = citrón
fruits[2] = jablko
fruits[3] = pomeranč

Ovoce bylo seřazeno podle abecedy.

Vlastnosti třídění lze upravit pomocí volitelného argumentu sort_flags, který může nabývat těchto hodnot:

Typy třídění:

  • SORT_REGULAR - normální porovnávání

  • SORT_NUMERIC - numerické porovnávání

  • SORT_STRING - textové porovnávání

Poznámka: Druhý parametr byl přidán v PHP 4.

Viz také arsort(),
asort(), ksort(),
natsort(), natcasesort(),
rsort(), usort(),
array_multisort() a
uksort().

Předcházející | Domů | Další
sizeof | Nahoru | uasort


uasort

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

uasort -- Třídit pole pomocí uživatelsky definované porovnávací funkce se zachováním klíčů

Popis

void uasort ( array array, function cmp_function)

Tato funkce třídí pole tak, že si indexy uchovávají spojení s hodnotami. To je užitečné hlavně při třídění asociativních polí, kde je důležité pořadí prvků. Srovnávací funkce je uživatelsky definována.

Poznámka: Ukázky uživatelsky definovaných porovnávacích funkcí viz usort() a uksort().

Viz také: usort(),
uksort(),
sort(),
asort(),
arsort(),
ksort() a
rsort().

Předcházející | Domů | Další
sort | Nahoru | uksort


uksort

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

uksort -- Třídit pole podle klíčů pomocí uživatelsky definovane porovnávací funkce

Popis

void uksort ( array array, function cmp_function)

Tato funkce třídí pole podle klíčů pomocí uživatelsky definované porovnávací funkce. Pokud potřebujete třídit pole podle komplikovanějších kritérií, měli byste použít tuto funkci.

Příklad 1. Ukázka uksort()

function cmp ($a, $b) {
    if ($a == $b) return 0;
    return ($a > $b) ? -1 : 1;
}

$a = array (4 => "four", 3 => "three", 20 => "twenty", 10 => "ten");

uksort ($a, "cmp");

while (list ($key, $value) = each ($a)) {
    echo "$key: $value\n";
}

Tato ukázka zobrazí:

20: twenty
10: ten
4: four
3: three

Viz také: usort(),
uasort(),
sort(),
asort(),
arsort(),
ksort(),
natsort() a
rsort().

Předcházející | Domů | Další
uasort | Nahoru | usort


usort

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

usort -- Třídit pole podle hodnot pomocí uživatelsky definované porovnávací funkce

Popis

void usort ( array array, string cmp_function)

Tato funkce třídí pole podle hodnot pomocí uživatelsky definované porovnávací funkce. Pokud potřebujete třídit pole podle komplikovanějších kritérií, měli byste použít tuto funkci.

Porovnávací funkce musí vrace integer menší než 0, 0, a větší než 0, pokud je první argument menší než, stejný, nebo větší než druhý argument. Pokud jsou dvě porovnávané hodnoty stejné, jejich pořadí v tříděném poli je nedefinováno.

Příklad 1. Ukázka usort()

function cmp ($a, $b) {
    if ($a == $b) return 0;
    return ($a > $b) ? -1 : 1;
}

$a = array (3, 2, 5, 6, 1);

usort ($a, "cmp");

while (list ($key, $value) = each ($a)) {
    echo "$key: $value\n";
}

Tato ukázka zobrazí:

0: 6
1: 5
2: 3
3: 2
4: 1

Poznámka: V tomto jednoduchém případě by pochopitelně bylo vhodnější použít rsort().

Příklad 2. Ukázka usort() s vícerozměrným polem

function cmp ($a, $b) {
    return strcmp($a["fruit"],$b["fruit"]);
}

$fruits[0]["fruit"] = "lemons";
$fruits[1]["fruit"] = "apples";
$fruits[2]["fruit"] = "grapes";

usort($fruits, "cmp");

while (list ($key, $value) = each ($fruits)) {
    echo "\$fruits[$key]: " . $value["fruit"] . "\n";
}

Při třídění vícerozměrného pole $a a $b obsahují reference na první index pole.

Tato ukázka zobrazí:

$fruits[0]: apples
$fruits[1]: grapes
$fruits[2]: lemons

Varování

Použitá quicksort funkce v některých C knihovnách (např. na systémech Solaris) může způsobit zhroucení PHP, pokud porovnávací funkce nevrací konsistentní hodnoty.

Viz také: uasort(),
uksort(),
sort(),
asort(),
arsort(),
ksort(),
natsort() a
rsort().

Předcházející | Domů | Další
uksort | Nahoru | Aspell funkce [zastaralé]


Aspell funkce [zastaralé]

Manuál PHP
Předcházející Další

III. Aspell funkce [zastaralé]

Úvod

aspell() funkce umožňují ověřit hláskování slova a nabídnout možné opravy.

Poznámka: Toto rozšíření bylo z PHP odebráno a od PHP 4.3.0 není k dispozici. Pokud chcete v PHP použít kontrolu hláskování, použijte místo toho pspell. Využívá pspell knihovnu, a pracuje s novějšími verzemi aspellu.

Požadavky

Rozšíření aspell funguje pouze s velmi starými (do přibližně .27.*) verzemi aspell knihovny. Tento modul, ani tyto verze aspell knihovny už nejsou podporovány. Budete potřebovat knihovnu aspell dostupnou na: http://aspell.sourceforge.net/.

Instalace

In PHP 4, these functions are only available if PHP was configured with --with-aspell=[DIR].

Viz také

Viz také pspell.

Obsah
aspell_check_raw -- Zkontrolovat slovo beze změny velikosti písmen nebo pokusů o ořezání
aspell_check -- Zkontrolovat slovo
aspell_new -- Načíst nový slovník
aspell_suggest -- Nabídnout možné hláskování slova

Předcházející | Domů | Další
usort | Nahoru | aspell_check_raw


aspell_check_raw

(PHP 3>= 3.0.7, PHP 4 <= 4.2.3)

aspell_check_raw -- Zkontrolovat slovo beze změny velikosti písmen nebo pokusů o ořezání

Popis

boolean aspell_check_raw ( int dictionary_link, string word)

aspell_check_raw() zkontroluje hláskování slova beze změn velikosti písmen nebo pokusů ho jakýmkoliv způsobem ořezat, a vrátí TRUE, pokud je hláskování správné, a FALSE, pokud není.

Příklad 1. aspell_check_raw()

$aspell_link=aspell_new ("english");
if (aspell_check_raw ($aspell_link, "test")) {
    echo "Toto je platné hláskování";
} else {
    echo "Pardon, špatné hláskování";
}

Předcházející | Domů | Další
Aspell funkce [zastaralé] | Nahoru | aspell_check


aspell_check

(PHP 3>= 3.0.7, PHP 4 <= 4.2.3)

aspell_check -- Zkontrolovat slovo

Popis

boolean aspell_check ( int dictionary_link, string word)

aspell_check() zkontroluje hláskování slova a vrátí TRUE, pokud je hláskování správné, a FALSE, pokud není.

Příklad 1. aspell_check()

$aspell_link=aspell_new ("english");
if (aspell_check ($aspell_link, "testt")) {
    echo "Toto je platné hláskování";
} else {
    echo "Pardon, špatné hláskování";
}

Předcházející | Domů | Další
aspell_check_raw | Nahoru | aspell_new


aspell_new

(PHP 3>= 3.0.7, PHP 4 <= 4.2.3)

aspell_new -- Načíst nový slovník

Popis

int aspell_new ( string master, string personal)

aspell_new() otevře nový slovník, a vrátí identifikátor spojení na tento slovník využitelný s dalšími aspell funkcemi.

Příklad 1. aspell_new()

$aspell_link=aspell_new ("english");

Předcházející | Domů | Další
aspell_check | Nahoru | aspell_suggest


aspell_suggest

(PHP 3>= 3.0.7, PHP 4 <= 4.2.3)

aspell_suggest -- Nabídnout možné hláskování slova

Popis

array aspell_suggest ( int dictionary_link, string word)

aspell_suggest() vrátí pole možných hláskování daného slova.

Příklad 1. aspell_suggest()

$aspell_link=aspell_new ("english");

if (!aspell_check ($aspell_link, "test")) {
    $suggestions=aspell_suggest ($aspell_link, "test");

    for ($i=0; $i < count ($suggestions); $i++) {
        echo "Možné hláskování: " . $suggestions[$i] . "<br>";
    }
}

Předcházející | Domů | Další
aspell_new | Nahoru | BCMath funkce pro výpočty s libovolnou přesností


BCMath funkce pro výpočty s libovolnou přesností

Manuál PHP
Předcházející Další

IV. BCMath funkce pro výpočty s libovolnou přesností

Úvod

Pro práci s čísly libovolné přesnosti PHP nabízí Binary Calculator, který podporuje čísla libovolně velká a s libovolnou přesností, která jsou reprezentována jako řetězce.

Požadavky

Od PHP 4.0.4 je knihovna libbcmath dodávána s PHP. Pro toto rozšíření tedy nepotřebujete žádné externí knihovny.

Instalace

Tyto funkce jsou v PHP 4 dostupné pouze pokud bylo PHP zkonfigurováno s volbou --enable-bcmath. V PHP 3 jsou dostupné, pokud nebylo zkonfigurováno s volbou --disable-bcmath.

Verze PHP pro Windows má vestavěnou podporu pro toto rozšíření. K použití těchto funkcí není třeba načítat žádná další rozšíření.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 1. BC math configuration options

Name | Default | Changeable
bcmath.scale | 0 | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Zde je stručné vysvětlení konfiguračních direktiv.

bcmath.scale integer

Number of decimal digits for all bcmath functions. See also bcscale().

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Obsah
bcadd -- Sečíst dvě čísla s libovolnou přesností
bccomp -- Porovnat dvě čísla s libovolnou přesností
bcdiv -- Dělit dvě čísla s libovolnou přesností
bcmod -- Získat modulus čísla s libovolnou přesností
bcmul -- Vynásobit dvě čísla s libovolnou přesností
bcpow -- Umocnit jedno číslo na jiné s libovolnou přesností
bcpowmod -- Raise an arbitrary precision number to another, reduced by a specified modulus.
bcscale -- Nastavit výchozí škálu pro všechny bc math funkce
bcsqrt -- Získat druhou odmocninu čísla s libovolnou přesností
bcsub -- Odečíst jedno číslo od druhého s libovolnou přesností

Předcházející | Domů | Další
aspell_suggest | Nahoru | bcadd


bcadd

(PHP 3, PHP 4 , PHP 5)

bcadd -- Sečíst dvě čísla s libovolnou přesností

Popis

string bcadd ( string left operand, string right operand [, int scale])

Přičte left operand k right operand a vrátí součet v řetězci. Volitelný argument scale se používá k určení počtu desetinných míst ve výsledku.

Viz také bcsub().

Předcházející | Domů | Další
BCMath funkce pro výpočty s libovolnou přesností | Nahoru | bccomp


bccomp

(PHP 3, PHP 4 , PHP 5)

bccomp -- Porovnat dvě čísla s libovolnou přesností

Popis

int bccomp ( string left operand, string right operand [, int scale])

Porovná left operand s right operand a vrátí výsledek jako integer. Volitelný argument scale se používá k určení počtu desetinných míst použitých při porovnání. Návratová hodnota je 0, pokud jsou si oba operandy rovné. Pokud je left operand větší než right operand, návratová hodnota je +1, a pokud je left operand menší než right operand, návratová hodnota je -1.

Předcházející | Domů | Další
bcadd | Nahoru | bcdiv


bcdiv

(PHP 3, PHP 4 , PHP 5)

bcdiv -- Dělit dvě čísla s libovolnou přesností

Popis

string bcdiv ( string left operand, string right operand [, int scale])

Vydělí argument left operand argumentem right operand a vrátí výsledek. Volitelný argument scale se používá k určení počtu desetinných míst ve výsledku.

Viz také bcmul().

Předcházející | Domů | Další
bccomp | Nahoru | bcmod


bcmod

(PHP 3, PHP 4 , PHP 5)

bcmod -- Získat modulus čísla s libovolnou přesností

Popis

string bcmod ( string left operand, string modulus)

Vrátí modulus argumentu left operand s použitím argumentu modulus.

Viz také bcdiv().

Předcházející | Domů | Další
bcdiv | Nahoru | bcmul


bcmul

(PHP 3, PHP 4 , PHP 5)

bcmul -- Vynásobit dvě čísla s libovolnou přesností

Popis

string bcmul ( string left operand, string right operand [, int scale])

Vynásobí argument left operand argumentem right operand a vrátí výsledek. Volitelný argument scale se používá k určení počtu desetinných míst ve výsledku.

Viz také bcdiv().

Předcházející | Domů | Další
bcmod | Nahoru | bcpow


bcpow

(PHP 3, PHP 4 , PHP 5)

bcpow -- Umocnit jedno číslo na jiné s libovolnou přesností

Popis

string bcpow ( string x, string y [, int scale])

Umocní x na y. Volitelný argument scale se používá k určení počtu desetinných míst ve výsledku.

Viz také bcsqrt().

Předcházející | Domů | Další
bcmul | Nahoru | bcpowmod


bcpowmod

(PHP 5)

bcpowmod -- Raise an arbitrary precision number to another, reduced by a specified modulus.

Description

string bcpowmod ( string x, string y, string modulus [, int scale])

Use the fast-exponentiation method to raise x to the power y with respect to the modulus modulus. The optional scale can be used to set the number of digits after the decimal place in the result.

The following two statements are functionally identical. The bcpowmod() version however, executes in less time and can accept larger parameters.

<?php
$a = bcpowmod($x, $y, $mod);

$b = bcmod(bcpow($x, $y), $mod);

// $a and $b are equal to each other.

?>

Poznámka: Because this method uses the modulus operation, non-natural numbers may give unexpected results. A natural number is any positive non-zero integer.

See also bcpow(), and bcmod().

Předcházející | Domů | Další
bcpow | Nahoru | bcscale


bcscale

(PHP 3, PHP 4 , PHP 5)

bcscale -- Nastavit výchozí škálu pro všechny bc math funkce

Popis

string bcscale ( int scale)

Tato funkce nastaví výchozí škálu pro všechna následná volání bc math funkcí, ktera neudávají explicitně škálu přesnosti.

Předcházející | Domů | Další
bcpowmod | Nahoru | bcsqrt


bcsqrt

(PHP 3, PHP 4 , PHP 5)

bcsqrt -- Získat druhou odmocninu čísla s libovolnou přesností

Popis

string bcsqrt ( string operand, int scale)

Vrátí druhou odmocninu argumentu operand. Volitelný argument scale se používá k určení počtu desetinných míst ve výsledku.

Viz také bcpow().

Předcházející | Domů | Další
bcscale | Nahoru | bcsub


bcsub

(PHP 3, PHP 4 , PHP 5)

bcsub -- Odečíst jedno číslo od druhého s libovolnou přesností

Popis

string bcsub ( string left operand, string right operand [, int scale])

Odečte argument right operand od argumentu left operand a vrátí výsledek v řetězci. Volitelný argument scale se používá k určení počtu desetinných míst ve výsledku.

Viz také bcadd().

Předcházející | Domů | Další
bcsqrt | Nahoru | Kompresní funkce bzip2


Kompresní funkce bzip2

Manuál PHP
Předcházející Další

V. Kompresní funkce bzip2

Úvod

Funkce bzip2 se používají k transparentnímu čtení a zápisu souborů komprimovaných algoritmem bzip2 (.bz2).

Požadavky

Tento modul používá funkce z knihovny bzip2 od Juliana Sewarda. Tento modul vyžaduje bzip2/libbzip2 verze >= 1.0.x.

Instalace

Podpora bzip2 není v PHP implicitně k dispozici. K aktivaci budete muset při kompilaci PHP použít konfigurační volbu --with-bz2[=DIR].

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

Toto rozšíření definuje jeden typ prostředku: souborový ukazatel identifikující soubor bz2, nad kterým se pracuje.

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Příklady

Tento příklad otevře dočasný soubor a zapíše do něj testovací řetezec; potom vypíše obsah souboru.

Příklad 1. Malý příklad na bzip2

<?php

$filename = "/tmp/testfile.bz2";
$str = "Toto je testovací řetězec.\n";

// otevři soubor pro zápis
$bz = bzopen($filename, "w");

// zapoš řetězec do souboru
bzwrite($bz, $str);

// zavři soubor
bzclose($bz);

// otevři soubor pro čtení
$bz = bzopen($filename, "r");

// přečti 10 znaků
print bzread($bz, 10);

// tiskni dokud není konec souboru (nebo následující 1024. znak) a zavři soubor
print bzread($bz);

bzclose($bz);

?>
Obsah
bzclose -- Zavře ukazatel na soubor bzip2
bzcompress -- Zkomprimuje řetězec algoritmem bzip2
bzdecompress -- Dekomprimuje data komprimovaná pomocí bzip2
bzerrno -- Vrací číslo chyby bzip2
bzerror -- Vrací v poli číslo a popis chyby bzip2
bzerrstr -- Vrací popis chyby bzip2
bzflush -- Vynutí zápis všech bufferovaných dat
bzopen -- Otevře soubor komprimovaný pomocí bzip2
bzread -- Binárně bezpečné čtení ze souboru bzip2
bzwrite -- Binárně bezpečný zápis do souboru bzip2

Předcházející | Domů | Další
bcsub | Nahoru | bzclose


bzclose

(PHP 4 >= 4.0.4, PHP 5)

bzclose -- Zavře ukazatel na soubor bzip2

Popis

int bzclose ( resource bz)

Zavře soubor bzip2 odkazovaný ukazatelem bz.

Vrací TRUE při úspěchu, FALSE při selhání.

Ukazatel na soubor musí být platný a musí ukazovat na soubor úspěšně otevřený pomocí bzopen().

Viz také bzopen().

Předcházející | Domů | Další
Kompresní funkce bzip2 | Nahoru | bzcompress


bzcompress

(PHP 4 >= 4.0.4, PHP 5)

bzcompress -- Zkomprimuje řetězec algoritmem bzip2

Popis

string bzcompress ( string source [, int blocksize [, int workfactor]])

bzcompress() komprimuje řetězec source a vrací ho ve formě dat získaných pomocí algoritmu bzip2.

Nepovinný parametr blocksize specifikuje velikost bloku použitou při komprimaci; mělo by to být číslo od 1 do 9, kde 9 znamená nejúčinnější kompresi, ale s většími nároky na potřebné prostředky. Implicitní hodnota blocksize je 4.

Nepovinný parametr workfactor určuje, jak se kompresní mechanismus chová v případě nejhorších, velmi se opakujících, vstupnách dat. Může nabývat hodnot mezi 0 a 250; 0 představuje speciální případ, 30 je implicitní hodnota. Generovaný výstup je bez ohledu na workfactor vždy stejný.

Příklad 1. bzcompress() Příklad

<?php
$str = "zkušební data";
$bzstr = bzcompress($str, 9);
echo $bzstr;
?>

Viz také bzdecompress().

Předcházející | Domů | Další
bzclose | Nahoru | bzdecompress


bzdecompress

(PHP 4 >= 4.0.4, PHP 5)

bzdecompress -- Dekomprimuje data komprimovaná pomocí bzip2

Popis

string bzdecompress ( string source [, int small])

bzdecompress() dekomprimuje řetězec source obsahující data komprimovaná pomocí algoritmu bzip2, a vrací je. Pokud má nepovinný parametr small hodnotu TRUE, použije se alternativní dekompresní algoritmus s nižšími nároky na paměť (maximální pamětové požadavky klesnou na cca 2300 KB), ale zhruba poloviční rychlostí. Více informací najdete v dokumentaci k bzip2.

Příklad 1. bzdecompress()

<?php
$start_str = "Tohle není upřímný obličej?";
$bzstr = bzcompress($start_str);

echo "Komprimovaný řetězec: ";
echo $bzstr;
echo "\n<br>\n";

$str = bzdecompress($bzstr);
echo "Dekomprimovaný řetezec: ";
echo $str;
echo "\n<br>\n";
?>

Viz také bzcompress().

Předcházející | Domů | Další
bzcompress | Nahoru | bzerrno


bzerrno

(PHP 4 >= 4.0.4, PHP 5)

bzerrno -- Vrací číslo chyby bzip2

Popis

int bzerrno ( resource bz)

Vrací chybové číslo jakékoli chyby bzip2 podle souborového ukazatele bz.

Vuz také bzerror() a bzerrstr().

Předcházející | Domů | Další
bzdecompress | Nahoru | bzerror


bzerror

(PHP 4 >= 4.0.4, PHP 5)

bzerror -- Vrací v poli číslo a popis chyby bzip2

Popis

array bzerror ( resource bz)

Vrací číslo chyby a chybový řetězec (popis) v asociativním poli pro jakoukoli chybu bzip2 podle souborového ukazatele bz.

Příklad 1. Příklad - bzerror()

<?php
$error = bzerror($bz);

echo $error["errno"];
echo $error["errstr"];
?>

Viz také bzerrno() a bzerrstr().

Předcházející | Domů | Další
bzerrno | Nahoru | bzerrstr


bzerrstr

(PHP 4 >= 4.0.4, PHP 5)

bzerrstr -- Vrací popis chyby bzip2

Popis

string bzerrstr ( resource bz)

Vrací chybový řetězec (popis) pro jakoukoli chybu bzip2 podle souborového ukazatele bz.

Viz také bzerrno() a bzerror().

Předcházející | Domů | Další
bzerror | Nahoru | bzflush


bzflush

(PHP 4 >= 4.0.4, PHP 5)

bzflush -- Vynutí zápis všech bufferovaných dat

Popis

int bzflush ( resource bz)

Vynutí zápis všech bufferovaných dat pro souborový ukazatel bz.

Vrací TRUE při úspěchu, FALSE při selhání.

Viz také bzread() a bzwrite().

Předcházející | Domů | Další
bzerrstr | Nahoru | bzopen


bzopen

(PHP 4 >= 4.0.4, PHP 5)

bzopen -- Otevře soubor komprimovaný pomocí bzip2

Popis

resource bzopen ( string filename, string mode)

Otevře soubor bzip2 (.bz2) pro čtení nebo zápis. filename je název otvíraného souboru. Parametr mode má podobný význam jako u funkce fopen() (`r' pro čtení, `w' pro zápis atd.).

Pokud otvírání selže, vrací funkce FALSE, jinak vrací ukazatel (deskriptor) na nově otevřený soubor.

Příklad 1. Příklad - bzopen()

<?php
$bz = bzopen("/tmp/foo.bz2", "r");
$decompressed_file = '';
while (!feof($bz)) {
    $decompressed_file .= bzread($bz, 4096);
}
bzclose($bz);

echo "Obsah souboru /tmp/foo.bz2 je: ";
echo "\n<br>\n";
echo $decompressed_file;
?>

Viz také bzclose().

Předcházející | Domů | Další
bzflush | Nahoru | bzread


bzread

(PHP 4 >= 4.0.4, PHP 5)

bzread -- Binárně bezpečné čtení ze souboru bzip2

Popis

string bzread ( resource bz [, int length])

bzread() přečte nejvýše length bytů z bzip2 souboru odkazovaného pomocí bz. Čtení končí, je-li přečteno length (nekomprimovaných) bytů nebo se dosáhne konce souboru - podle toho, co nastane dřív. Není-li specifikován nepovinný parametr length, funkce bzread() přečte najednou 1024 (nekomprimovaných) bytů.

Příklad 1. Příklad - bzread()

<?php
$bz = bzopen("/tmp/foo.bz2", "r");
$str = bzread($bz, 2048);
echo $str;
?>

Viz také bzwrite() a bzopen().

Předcházející | Domů | Další
bzopen | Nahoru | bzwrite


bzwrite

(PHP 4 >= 4.0.4, PHP 5)

bzwrite -- Binárně bezpečný zápis do souboru bzip2

Popis

int bzwrite ( resource bz, string data [, int length])

bzwrite() zapíše obsah řetězce data do souboru bzip2 odkazovaného pomocí bz. Je-li přítomen nepovinný parametr length, zápis skončí poté, co bude zapsáno length (nekomprimovaných) bytů nebo bude dosaženo konce řetězce - podle toho, co nastane dřív.

Příklad 1. Příklad bzwrite()

<?php
$str = "nekomprimovaná data";
$bz = bzopen("/tmp/foo.bz2", "w");
bzwrite($bz, $str, strlen($str));
bzclose($bz);
?>

Viz také bzread() a bzopen().

Předcházející | Domů | Další
bzread | Nahoru | Kalendářové funkce


Kalendářové funkce

Manuál PHP
Předcházející Další

VI. Kalendářové funkce

Úvod

Toto rozšíření představuje sadu funkcí určených ke zjednodušení převodů mezi různými kalendáři. Prostředníkem nebo standardem, na kterém je založena, je Julian Day Count. To je počet dní začínající daleko před jakýmkoli datem o které by se většina lidí zajímala (někde kolem 4000 př. n. l.). Pokud chcete převádět mezi kalendářovými systémy, musíte nejdřív převést na Julian Day Count, potom na kýžený kalendář. Julian Day Count se velmi liší od Juliánského kaledáře! Pro více informací o Julian Day Count viz http://www.hermetic.ch/cal_stud/jdn.htm. Pro více informací o kalendářových systémech viz http://www.boogle.com/info/cal-overview.html. Tyto instrukce obsahují výňatky z této stránky (v uvozovkách).

Instalace

Pro práci tohoto rozšíření musíte PHP zkompilovat s volbou --enable-calendar.

Verze PHP pro Windows má vestavěnou podporu pro toto rozšíření. K použití těchto funkcí není třeba načítat žádná další rozšíření.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

CAL_GREGORIAN (integer)

CAL_JULIAN (integer)

CAL_JEWISH (integer)

CAL_FRENCH (integer)

CAL_NUM_CALS (integer)

CAL_DOW_DAYNO (integer)

CAL_DOW_SHORT (integer)

CAL_DOW_LONG (integer)

CAL_MONTH_GREGORIAN_SHORT (integer)

CAL_MONTH_GREGORIAN_LONG (integer)

CAL_MONTH_JULIAN_SHORT (integer)

CAL_MONTH_JULIAN_LONG (integer)

CAL_MONTH_JEWISH (integer)

CAL_MONTH_FRENCH (integer)

The following constants are available since PHP 4.3.0 :

CAL_EASTER_DEFAULT (integer)

CAL_EASTER_ROMAN (integer)

CAL_EASTER_ALWAYS_GREGORIAN (integer)

CAL_EASTER_ALWAYS_JULIAN (integer)

The following constants are available since PHP 5.0.0 :

CAL_JEWISH_ADD_ALAFIM_GERESH (integer)

CAL_JEWISH_ADD_ALAFIM (integer)

CAL_JEWISH_ADD_GERESHAYIM (integer)

Obsah
cal_days_in_month -- Return the number of days in a month for a given year and calendar
cal_from_jd -- Converts from Julian Day Count to a supported calendar
cal_info -- Returns information about a particular calendar
cal_to_jd -- Converts from a supported calendar to Julian Day Count
easter_date -- Zjistit UNIXový timestamp Velikonoční půlnoci v daném roce
easter_days -- Get number of days after March 21 on which Easter falls for a given year
FrenchToJD -- Převést datum z Francouzského republikánského kalendáře na Julian Day Count
GregorianToJD -- Převést Gregoriánské datum na Julian Day Count
JDDayOfWeek -- Vrátit den v týdnu
JDMonthName -- Vrátit název měsíce
JDToFrench -- Převést Julian Day Count na Francouzský republikánský kalendář
JDToGregorian -- Převést Julian Day Count na Gregoriánské datum
JDToJewish -- Převést Julian Day Count na idovský kalendář
JDToJulian -- Převést Julian Day Count na Juliánské datum
jdtounix -- Převést Julian Day Count na UNIXový timestamp
JewishToJD -- Převést datum podle idovského kalendáře na Julian Day Count
JulianToJD -- Převést Juliánské datum na Julian Day Count
unixtojd -- Převést UNIXový timestamp na Julian Day Count

Předcházející | Domů | Další
bzwrite | Nahoru | cal_days_in_month


cal_days_in_month

(PHP 4 >= 4.1.0, PHP 5)

cal_days_in_month -- Return the number of days in a month for a given year and calendar

Description

int cal_days_in_month ( int calendar, int month, int year)

This function will return the number of days in the month of year for the specified calendar.

Příklad 1. cal_days_in_month() example

<?php
$num = cal_days_in_month(CAL_GREGORIAN, 8, 2003); // 31
echo "There was $num days in August 2003";
?>

See also jdtounix().

Předcházející | Domů | Další
Kalendářové funkce | Nahoru | cal_from_jd


cal_from_jd

(PHP 4 >= 4.1.0, PHP 5)

cal_from_jd -- Converts from Julian Day Count to a supported calendar

Description

array cal_from_jd ( int jd, int calendar)

cal_from_jd() converts the Julian day given in jd into a date of the specified calendar. Supported calendar values are CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH and CAL_FRENCH.

Příklad 1. cal_from_jd() example

<?php
$today = unixtojd(mktime(0, 0, 0, 8, 16, 2003));
print_r(cal_from_jd($today, CAL_GREGORIAN));
?>

This will output :

Array
(
    [date] => 8/16/2003
    [month] => 8
    [day] => 16
    [year] => 2003
    [dow] => 6
    [abbrevdayname] => Sat
    [dayname] => Saturday
    [abbrevmonth] => Aug
    [monthname] => August
)

See also cal_to_jd().

Předcházející | Domů | Další
cal_days_in_month | Nahoru | cal_info


cal_info

(PHP 4 >= 4.1.0, PHP 5)

cal_info -- Returns information about a particular calendar

Description

array cal_info ( [int calendar])

cal_info() returns information on the specified calendar or on all supported calendars if no calendar is specified.

Calendar information is returned as an array containing the elements calname, calsymbol, month, abbrevmonth and maxdaysinmonth.

If no calendar is specified information on all supported calendars is returned as an array. This functionality will be available beginning with PHP 5.

Předcházející | Domů | Další
cal_from_jd | Nahoru | cal_to_jd


cal_to_jd

(PHP 4 >= 4.1.0, PHP 5)

cal_to_jd -- Converts from a supported calendar to Julian Day Count

Description

int cal_to_jd ( int calendar, int month, int day, int year)

cal_to_jd() calculates the Julian day count for a date in the specified calendar. Supported calendars are CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH and CAL_FRENCH.

See also cal_to_jd().

Předcházející | Domů | Další
cal_info | Nahoru | easter_date


easter_date

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

easter_date -- Zjistit UNIXový timestamp Velikonoční půlnoci v daném roce

Popis

int easter_date ( int year)

Vrací UNIXový timestamp odpovídající Velikonoční půlnoci v daném roce. Default year je současný rok.

Varování: Tato funkce vygeneruje varování, pokud je year mimo rozsah UNIXových timestampů (tj. před 1970 nebo po 2037).

Příklad 1. Ukázka easter_date()

echo date ("M-d-Y", easter_date(1999));        /* "Apr-04-1999" */
echo date ("M-d-Y", easter_date(2000));        /* "Apr-23-2000" */
echo date ("M-d-Y", easter_date(2001));        /* "Apr-15-2001" */

Datum Velikonoc bylo definováno Nicaejským koncilem v r. 325 n. l. jako neděle po prvním úplňku který připadá na nebo po jarní rovnodennosti. Rovnodennost se vždy předpokládá na 21. března, takže se výpočet redukuje na určení data úplňku a data následující neděle. Zde použitý algoritmus byl poprvé použit kolem roku 532 Dionysiem Exiguem. V Juliánském kalendáři (pro léta před 1753) se na sledování fází Měsíce používal jednoduchý devatenáctiletý cyklus. V Gregoriánském kalendáři (pro léta po 1753 - navržen Claviem a Liliem a zaveden papežem Řehořem XIII v říjnu 1582, v Británii a jejích koloniích v září 1752) se přidávají dva faktory, které tento cyklus zpřesňují.

(Kód je založen na C programu od Simona Kershawa, <webmaster@ely.anglican.org>)

Výpočet Velikonoc před rokem 1970 nebo po roce 2037 viz easter_days().

Předcházející | Domů | Další
cal_to_jd | Nahoru | easter_days


easter_days

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

easter_days -- Get number of days after March 21 on which Easter falls for a given year

Popis

int easter_days ( int year)

Vrací počet dní od 21. března do Velikonoc v daném roce. Default year je současný rok.

Tato funkce je využitelná místo easter_date() na výpočty Velikonoc pro roky které spadají mimo rozsah UNIXových timestampů (tj. před rokem 1970 a po roce 2037).

Příklad 1. Ukázka easter_date()

echo easter_days (1999);        /* 14, i.e. April 4   */
echo easter_days (1492);        /* 32, i.e. April 22  */
echo easter_days (1913);        /*  2, i.e. March 23  */

Datum Velikonoc bylo definováno Nicaejským koncilem v r. 325 n. l. jako neděle po prvním úplňku který připadá na nebo po jarní rovnodennosti. Rovnodennost se vždy předpokládá na 21. března, takže se výpočet redukuje na určení data úplňku a data následující neděle. Zde použitý algoritmus byl poprvé použit kolem roku 532 Dionysiem Exiguem. V Juliánském kalendáři (pro léta před 1753) se na sledování fází Měsíce používal jednoduchý devatenáctiletý cyklus. V Gregoriánském kalendáři (pro léta po 1753 - navržen Claviem a Liliem a zaveden papežem Řehořem XIII v říjnu 1582, v Británii a jejích koloniích v září 1752) se přidávají dva faktory, které tento cyklus zpřesňují.

(Kód je založen na C programu od Simona Kershawa, <webmaster@ely.anglican.org>)

Viz také: easter_date().

Předcházející | Domů | Další
easter_date | Nahoru | FrenchToJD


FrenchToJD

(PHP 3, PHP 4 , PHP 5)

FrenchToJD -- Převést datum z Francouzského republikánského kalendáře na Julian Day Count

Popis

int frenchtojd ( int month, int day, int year)

Převádí datum z Francouzského republikánského kalendáře na Julian Day Count.

Tyto rutiny konvertují pouze data v letech 1 až 14 (Gregoriánská data 22. září 1792 až 22. září 1806). To více než dostatečně pokrývá období, po které se tento kalendář používal.

Předcházející | Domů | Další
easter_days | Nahoru | GregorianToJD


GregorianToJD

(PHP 3, PHP 4 , PHP 5)

GregorianToJD -- Převést Gregoriánské datum na Julian Day Count

Popis

int gregoriantojd ( int month, int day, int year)

Platný rozsah Gregoriánského kalendáře je 4714 př. n. l. až 9999 n. l.

Jakkoli tento software zvládá data až do 4714 př. n. l., takové použití asi nemá smysl. Gregoriánský kalendář byl založen až 15. října 1582 (5. října 1582 podle Juliánského kalendáře). Některé země ho přijaly mnohem později, Řecko až v r. 1923. Většina evropským států před Gregoriánským kalendářem používala Juliánský.

Příklad 1. Kalendářové funkce

<?php
$jd = GregorianToJD (10,11,1970);
echo "$jd\n";
$gregorian = JDToGregorian ($jd);
echo "$gregorian\n";
?>

Předcházející | Domů | Další
FrenchToJD | Nahoru | JDDayOfWeek


JDDayOfWeek

(PHP 3, PHP 4 , PHP 5)

JDDayOfWeek -- Vrátit den v týdnu

Popis

mixed jddayofweek ( int julianday, int mode)

Vrací den v týdnu. V závislosti na módu vrací řetězec nebo integer.

Tabulka 1. Kalendářové týdenní módy

Mód | Význam
0 | Vrací číslo dne jako integer (0=sunday, 1=monday, etc)
1 | Vrací řetězec obsahující název dne v týdnu (anglický gregoriánský)
2 | Vrací řetězec obsahující zkrácený název dne v týdnu (anglický gregoriánský)

Předcházející | Domů | Další
GregorianToJD | Nahoru | JDMonthName


JDMonthName

(PHP 3, PHP 4 , PHP 5)

JDMonthName -- Vrátit název měsíce

Popis

string jdmonthname ( int julianday, int mode)

Vrací řetězec obsahující název měsíce. mode určuje, na který kalendář se má Julian Day Count konvertovat a jaký typ jména se má vrátit.

Tabulka 1. Kalendářové módy

Mód | Význam
0 | Gregoriánský - zkrácený
1 | Gregoriánský
2 | Juliánský - zkrácený
3 | Juliánský
4 | idovský
5 | Francouzský republikánský

Předcházející | Domů | Další
JDDayOfWeek | Nahoru | JDToFrench


JDToFrench

(PHP 3, PHP 4 , PHP 5)

JDToFrench -- Převést Julian Day Count na Francouzský republikánský kalendář

Popis

string jdtofrench ( int juliandaycount)

Převádí Julian Day Count na Francouzský republikánský kalendář.

Předcházející | Domů | Další
JDMonthName | Nahoru | JDToGregorian


JDToGregorian

(PHP 3, PHP 4 , PHP 5)

JDToGregorian -- Převést Julian Day Count na Gregoriánské datum

Popis

string jdtogregorian ( int julianday)

Převádí Julian Day Count na řetězec obsahující Gregoriánské datum ve formátu "měsíc/den/rok".

Předcházející | Domů | Další
JDToFrench | Nahoru | JDToJewish


JDToJewish

(PHP 3, PHP 4 , PHP 5)

JDToJewish -- Převést Julian Day Count na idovský kalendář

Popis

string jdtojewish ( int julianday)

Převádí Julian Day Count na idovský kalendář.

Předcházející | Domů | Další
JDToGregorian | Nahoru | JDToJulian


JDToJulian

(PHP 3, PHP 4 , PHP 5)

JDToJulian -- Převést Julian Day Count na Juliánské datum

Popis

string jdtojulian ( int julianday)

Převádí Julian Day Count na řetězec obsahující Juliánské datum ve formátu "měsíc/den/rok".

Předcházející | Domů | Další
JDToJewish | Nahoru | jdtounix


jdtounix

(PHP 4 , PHP 5)

jdtounix -- Převést Julian Day Count na UNIXový timestamp

Popis

int jdtounix ( int jday)

jdtounix() vrací UNIXový timestamp odpovídající Julian Day Countu danému v jday nebo FALSE, pokud je jday mimo UNIXovou epochu (Gregoriánské roky mezi 1970 a 2037, nebo-li 2440588 <= jday <= 2465342 )

Viz také: jdtounix().

Poznámka: Tato funkce byla přidána v PHP 4 RC2.

Předcházející | Domů | Další
JDToJulian | Nahoru | JewishToJD


JewishToJD

(PHP 3, PHP 4 , PHP 5)

JewishToJD -- Převést datum podle idovského kalendáře na Julian Day Count

Popis

int jewishtojd ( int month, int day, int year)

Platný rozsah Jakkoli tento software zvládá data až do roku 1 (3761 př. n. l.), takové použití asi nemá smysl.

idovský kalendář se používá několik tisíc let, ale zpočátku neexistoval vzorec na určení začátku měsíce. Nový měsíc začínal, když byl poprvé spatřen nový Měsíc.

Předcházející | Domů | Další
jdtounix | Nahoru | JulianToJD


JulianToJD

(PHP 3, PHP 4 , PHP 5)

JulianToJD -- Převést Juliánské datum na Julian Day Count

Popis

int juliantojd ( int month, int day, int year)

Platný rozsah pro Juliánský kalendář je 4713 př. n. l. až 9999 n. l.

Jakkoli tento software zvládá data až do 4713 př. n. l., takové použití asi nemá smysl. Tento kalendář byl vytvořen v roce 46 př. n. l., ale detaily se nestabilizovaly nejméně do 8 n. l., a možná až do konce 4. století. Navíc začátek roku se lišil od kultury ke kultuře - ne všechny přijímaly leden jako první měsíc roku.

Předcházející | Domů | Další
JewishToJD | Nahoru | unixtojd


unixtojd

(PHP 4 , PHP 5)

unixtojd -- Převést UNIXový timestamp na Julian Day Count

Popis

int unixtojd ( [int timestamp])

Vrací Julian Day Count pro UNIXový timestamp (sekundy od 1.1.1970), nebo pro aktuální den, pokud není dán timestamp.

Viz také: jdtounix().

Poznámka: Tato funkce byla přidána v PHP 4 RC2.

Předcházející | Domů | Další
JulianToJD | Nahoru | CCVS API Functions


CCVS API Functions

Manuál PHP
Předcházející Další

VII. CCVS API Functions

Úvod

Tyto funkce představují interface k CCVS API, a umožnují tak přímo pracovat s CCVS z vašich PHP skriptů. CCVS je RedHatí řešení "zprostředkovatele" ve zpracování kreditních karet. Umož%nuje vám oslovovat přímo zpracovatele kreditních karet přes váš *nix systém a modem. Pomocí CCVS modulu pro PHP můžete zpracovávat kreditní karty přes CCVS ve vašich PHP skriptech. Následující reference tento proces přiblíží.

Poznámka: CCVS bylo firmou RedHat pozastaveno a nemá v plánu vydávat další klíče nebo podporovat kontrakty. Pokud hledáte náhradu, zvažte MCVE firmy Main Street Softworks jako možnou náhradu. Má podobný design a dokumentovanou podporu PHP!

Toto rozšíření bylo z PHP odstraněno a od verze 4.3.0 není k dispozici. Pokud chcete používat funkce pro zpracování kreditních karet, můžete místo toho použít rozšíření MCVE.

Instalace

Pokud chcete zapnout CCVS podporu v PHP, zjistěte si nejdříve instalační adresář CCVS. Potom budete muset PHP zkonfigurovat s --with-ccvs. Pokud toto použijete be udání cesty k vaší instalaci CCVS, PHP se pokusí podívat do defaultní instalační lokace CCVS (/usr/local/ccvs). Pokud je CCVS na nestandardním místě, spustěte configure s: --with-ccvs=$ccvs_path, kde $ccvs_path je cesta k vaší instalaci CVS. Pozn.: Podpora CCVS vyžaduje existenci $ccvs_path/lib a $ccvs_path/include, a přítomnost cv_api.h v adresáři include a libccvs.a v adresáři lib.

Dále je potřeba, aby běžel proces ccvsd. Navíc, PHP processy musí běžet pod stejným uživatelem, pod kterým běhá CCVS (např. pokud jste instalovali ccvs jako 'ccvs', vaše PHP procesy musí také běžet jako 'ccvs').

Viz také

RedHat přerušil podporu CCVS, přesto je mírně zastaralá dokumentace k dispozici na http://redhat.com/docs/manuals/ccvs/.

Obsah
ccvs_add -- Add data to a transaction
ccvs_auth -- Perform credit authorization test on a transaction
ccvs_command -- Performs a command which is peculiar to a single protocol, and thus is not available in the general CCVS API
ccvs_count -- Find out how many transactions of a given type are stored in the system
ccvs_delete -- Delete a transaction
ccvs_done -- Terminate CCVS engine and do cleanup work
ccvs_init -- Initialize CCVS for use
ccvs_lookup -- Look up an item of a particular type in the database #
ccvs_new -- Create a new, blank transaction
ccvs_report -- Return the status of the background communication process
ccvs_return -- Transfer funds from the merchant to the credit card holder
ccvs_reverse -- Perform a full reversal on an already-processed authorization
ccvs_sale -- Transfer funds from the credit card holder to the merchant
ccvs_status -- Check the status of an invoice
ccvs_textvalue -- Get text return value for previous function call
ccvs_void -- Perform a full reversal on a completed transaction

Předcházející | Domů | Další
unixtojd | Nahoru | ccvs_add


ccvs_add

(4.0.2 - 4.2.3 only)

ccvs_add -- Add data to a transaction

Description

string ccvs_add ( string session, string invoice, string argtype, string argval)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
CCVS API Functions | Nahoru | ccvs_auth


ccvs_auth

(4.0.2 - 4.2.3 only)

ccvs_auth -- Perform credit authorization test on a transaction

Description

string ccvs_auth ( string session, string invoice)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ccvs_add | Nahoru | ccvs_command


ccvs_command

(4.0.2 - 4.2.3 only)

ccvs_command -- Performs a command which is peculiar to a single protocol, and thus is not available in the general CCVS API

Description

string ccvs_command ( string session, string type, string argval)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ccvs_auth | Nahoru | ccvs_count


ccvs_count

(4.0.2 - 4.2.3 only)

ccvs_count -- Find out how many transactions of a given type are stored in the system

Description

int ccvs_count ( string session, string type)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ccvs_command | Nahoru | ccvs_delete


ccvs_delete

(4.0.2 - 4.2.3 only)

ccvs_delete -- Delete a transaction

Description

string ccvs_delete ( string session, string invoice)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ccvs_count | Nahoru | ccvs_done


ccvs_done

(4.0.2 - 4.2.3 only)

ccvs_done -- Terminate CCVS engine and do cleanup work

Description

string ccvs_done ( string sess)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ccvs_delete | Nahoru | ccvs_init


ccvs_init

(4.0.2 - 4.2.3 only)

ccvs_init -- Initialize CCVS for use

Description

string ccvs_init ( string name)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ccvs_done | Nahoru | ccvs_lookup


ccvs_lookup

(4.0.2 - 4.2.3 only)

ccvs_lookup -- Look up an item of a particular type in the database #

Description

string ccvs_lookup ( string session, string invoice, int inum)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ccvs_init | Nahoru | ccvs_new


ccvs_new

(4.0.2 - 4.2.3 only)

ccvs_new -- Create a new, blank transaction

Description

string ccvs_new ( string session, string invoice)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ccvs_lookup | Nahoru | ccvs_report


ccvs_report

(4.0.2 - 4.2.3 only)

ccvs_report -- Return the status of the background communication process

Description

string ccvs_report ( string session, string type)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ccvs_new | Nahoru | ccvs_return


ccvs_return

(4.0.2 - 4.2.3 only)

ccvs_return -- Transfer funds from the merchant to the credit card holder

Description

string ccvs_return ( string session, string invoice)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ccvs_report | Nahoru | ccvs_reverse


ccvs_reverse

(4.0.2 - 4.2.3 only)

ccvs_reverse -- Perform a full reversal on an already-processed authorization

Description

string ccvs_reverse ( string session, string invoice)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ccvs_return | Nahoru | ccvs_sale


ccvs_sale

(4.0.2 - 4.2.3 only)

ccvs_sale -- Transfer funds from the credit card holder to the merchant

Description

string ccvs_sale ( string session, string invoice)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ccvs_reverse | Nahoru | ccvs_status


ccvs_status

(4.0.2 - 4.2.3 only)

ccvs_status -- Check the status of an invoice

Description

string ccvs_status ( string session, string invoice)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ccvs_sale | Nahoru | ccvs_textvalue


ccvs_textvalue

(4.0.2 - 4.2.3 only)

ccvs_textvalue -- Get text return value for previous function call

Description

string ccvs_textvalue ( string session)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ccvs_status | Nahoru | ccvs_void


ccvs_void

(4.0.2 - 4.2.3 only)

ccvs_void -- Perform a full reversal on a completed transaction

Description

string ccvs_void ( string session, string invoice)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ccvs_textvalue | Nahoru | Funkce na podporu COM ve Windows


Funkce na podporu COM ve Windows

Manuál PHP
Předcházející Další

VIII. Funkce na podporu COM ve Windows

Úvod

COM je technologie, která umožňuje znovupoužít kód napsaný v jakémkoliv jazyce za použití standardního volání a schováním implementačních detailů - jako na kterém počítači je komponenta uložena a který spustitelný soubor ji uchovává - za API. Lze si to představit jako rozšířený mechanismus vzdáleného volání procedur (RPC) se základy objektů. COM odděluje implementaci od rozhraní.

COM podporuje verzování, oddělení implementace od rozhraní a skrytí implementačních detailů jako je umístění spustitelného souboru a jazyku, který byl použit.

Požadavky

Tyto funkce jsou dostupné pouze ve Windows verzi PHP.

Instalace

K používání těchto funkcí není třeba žádná instalace, jsou součástí jádra PHP.

Verze PHP pro Windows má vestavěnou podporu pro toto rozšíření. K použití těchto funkcí není třeba načítat žádná další rozšíření.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 1. Com configuration options

Name | Default | Changeable
com.allow_dcom | "0" | PHP_INI_SYSTEM
com.autoregister_typelib | "0" | PHP_INI_SYSTEM
com.autoregister_verbose | "0" | PHP_INI_SYSTEM
com.autoregister_casesensitive | "1" | PHP_INI_SYSTEM
com.typelib_file | "" | PHP_INI_SYSTEM
For further details and definition of the PHP_INI_* constants see ini_set().

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

CLSCTX_INPROC_SERVER (integer)

CLSCTX_INPROC_HANDLER (integer)

CLSCTX_LOCAL_SERVER (integer)

CLSCTX_REMOTE_SERVER (integer)

CLSCTX_SERVER (integer)

CLSCTX_ALL (integer)

VT_NULL (integer)

VT_EMPTY (integer)

VT_UI1 (integer)

VT_I2 (integer)

VT_I4 (integer)

VT_R4 (integer)

VT_R8 (integer)

VT_BOOL (integer)

VT_ERROR (integer)

VT_CY (integer)

VT_DATE (integer)

VT_BSTR (integer)

VT_DECIMAL (integer)

VT_UNKNOWN (integer)

VT_DISPATCH (integer)

VT_VARIANT (integer)

VT_I1 (integer)

VT_UI2 (integer)

VT_UI4 (integer)

VT_INT (integer)

VT_UINT (integer)

VT_ARRAY (integer)

VT_BYREF (integer)

CP_ACP (integer)

CP_MACCP (integer)

CP_OEMCP (integer)

CP_UTF7 (integer)

CP_UTF8 (integer)

CP_SYMBOL (integer)

CP_THREAD_ACP (integer)

Viz také

Více informací o COM naleznete ve specifikaci COM nebo se třeba podívejte na Yet Another COM Library (YACL) Dona Boxe.

Obsah
COM -- COM class
VARIANT -- VARIANT class
com_addref -- Increases the components reference counter.
com_get -- Získává hodnotu vlastnosti COM komponenty
com_invoke -- Volá metodu COM komponenty.
com_isenum -- Grabs an IEnumVariant
com_load_typelib -- Loads a Typelib
com_load -- Vytvoří nový odkaz na COM komponentu
com_propget -- Získává hodnotu vlastnosti COM komponenty
com_propput -- Přiřazuje hodnotu vlastnosti COM komponenty.
com_propset -- Přiřazuje hodnotu vlastnosti COM komponenty.
com_release -- Decreases the components reference counter.
com_set -- Přiřazuje hodnotu vlastnosti COM komponenty.

Předcházející | Domů | Další
ccvs_void | Nahoru | COM


COM

(no version information, might be only in CVS)

COM -- COM class

Přehled

$obj = new COM("server.object")

Description

The COM class provides a framework to integrate (D)COM components into your PHP scripts.

Methods

string COM::COM ( string module_name [, string server_name [, int codepage]])

COM class constructor. Parameters:

module_name

name or class-id of the requested component.

server_name

name of the DCOM server from which the component should be fetched. If NULL, localhost is assumed. To allow DCOM com.allow_dcom has to be set to TRUE in php.ini.

codepage

specifies the codepage that is used to convert php-strings to unicode-strings and vice versa. Possible values are CP_ACP, CP_MACCP, CP_OEMCP, CP_SYMBOL, CP_THREAD_ACP, CP_UTF7 and CP_UTF8.

Příklad 1. COM example (1)

<?php
// starting word
$word = new COM("word.application") or die("Unable to instanciate 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->Release();
$word = null;
?>

Příklad 2. COM example (2)

<?php

$conn = new COM("ADODB.Connection") or die("Cannot start ADO");
$conn->Open("Provider=SQLOLEDB; Data Source=localhost;
Initial Catalog=database; User ID=user; Password=password");

$rs = $conn->Execute("SELECT * FROM sometable");    // Recordset

$num_columns = $rs->Fields->Count();
echo $num_columns . "\n";

for ($i=0; $i < $num_columns; $i++) {
    $fld[$i] = $rs->Fields($i);
}

$rowcount = 0;
while (!$rs->EOF) {
    for ($i=0; $i < $num_columns; $i++) {
        echo $fld[$i]->value . "\t";
    }
    echo "\n";
    $rowcount++;            // increments rowcount
    $rs->MoveNext();
}

$rs->Close();
$conn->Close();

$rs->Release();
$conn->Release();

$rs = null;
$conn = null;

?>

Předcházející | Domů | Další
Funkce na podporu COM ve Windows | Nahoru | VARIANT


VARIANT

(no version information, might be only in CVS)

VARIANT -- VARIANT class

Přehled

$vVar = new VARIANT($var)

Description

A simple container to wrap variables into VARIANT structures.

Methods

string VARIANT::VARIANT ( [mixed value [, int type [, int codepage]]])

VARIANT class constructor. Parameters:

value

initial value. if omitted an VT_EMPTY object is created.

type

specifies the content type of the VARIANT object. Possible values are VT_UI1, VT_UI2, VT_UI4, VT_I1, VT_I2, VT_I4, VT_R4, VT_R8, VT_INT, VT_UINT, VT_BOOL, VT_ERROR, VT_CY, VT_DATE, VT_BSTR, VT_DECIMAL, VT_UNKNOWN, VT_DISPATCH and VT_VARIANT. These values are mutual exclusive, but they can be combined with VT_BYREF to specify being a value. If omitted, the type of value is used. Consult the MSDN library for additional information.

codepage

specifies the codepage that is used to convert php-strings to unicode-strings and vice versa. Possible values are CP_ACP, CP_MACCP, CP_OEMCP, CP_SYMBOL, CP_THREAD_ACP, CP_UTF7 and CP_UTF8.

Předcházející | Domů | Další
COM | Nahoru | com_addref


com_addref

(PHP 4 >= 4.1.0)

com_addref -- Increases the components reference counter.

Description

void com_addref ( void )

Increases the components reference counter.

Předcházející | Domů | Další
VARIANT | Nahoru | com_get


com_get

(PHP 3>= 3.0.3, PHP 4 >= 4.0.5)

com_get -- Získává hodnotu vlastnosti COM komponenty

Popis

mixed com_get ( resource com_object, string property)

Vrací hodnotu property COM komponenty odkazované com_object. Při chybě vrací FALSE.

Předcházející | Domů | Další
com_addref | Nahoru | com_invoke


com_invoke

(PHP 3>= 3.0.3)

com_invoke -- Volá metodu COM komponenty.

Popis

mixed com_invoke ( resource com_object, string function_name [, mixed parametry funkce, ...])

com_invoke() volá metodu COM komponenty odkazované com_object. Pokud dojde k chybě, vrací FALSE, při úspěchu vrací návratovou hodnotu metody function_name.

Předcházející | Domů | Další
com_get | Nahoru | com_isenum


com_isenum

(PHP 4 >= 4.1.0)

com_isenum -- Grabs an IEnumVariant

Description

void com_isenum ( object com_module)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
com_invoke | Nahoru | com_load_typelib


com_load_typelib

(PHP 4 >= 4.1.0, PHP 5)

com_load_typelib -- Loads a Typelib

Description

void com_load_typelib ( string typelib_name [, int case_insensitive])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
com_isenum | Nahoru | com_load


com_load

(PHP 3>= 3.0.3)

com_load -- Vytvoří nový odkaz na COM komponentu

Popis

string com_load ( string module name [, string server name])

com_load() vytváří novou COM komponentu a vrací odkaz na ni. Při neúspěchu vrací FALSE.

Předcházející | Domů | Další
com_load_typelib | Nahoru | com_propget


com_propget

(PHP 3>= 3.0.3, PHP 4 >= 4.0.5)

com_propget -- Získává hodnotu vlastnosti COM komponenty

Popis

mixed com_propget ( resource com_object, string property)

Tato funkce je alias k com_get().

Předcházející | Domů | Další
com_load | Nahoru | com_propput


com_propput

(PHP 3>= 3.0.3, PHP 4 >= 4.0.5)

com_propput -- Přiřazuje hodnotu vlastnosti COM komponenty.

Popis

void com_propput ( resource com_object, string property, mixed value)

Tato funkce je alias ke com_set().

Předcházející | Domů | Další
com_propget | Nahoru | com_propset


com_propset

(PHP 3>= 3.0.3, PHP 4 >= 4.0.5)

com_propset -- Přiřazuje hodnotu vlastnosti COM komponenty.

Popis

void com_propset ( resource com_object, string property, mixed value)

Tato funkce je alias ke com_set().

Předcházející | Domů | Další
com_propput | Nahoru | com_release


com_release

(PHP 4 >= 4.1.0)

com_release -- Decreases the components reference counter.

Description

void com_release ( void )

Decreases the components reference counter.

Předcházející | Domů | Další
com_propset | Nahoru | com_set


com_set

(PHP 3>= 3.0.3, PHP 4 >= 4.0.5)

com_set -- Přiřazuje hodnotu vlastnosti COM komponenty.

Popis

void com_set ( resource com_object, string property, mixed value)

Nastavuje hodnotu vlastnosti property COM komponent odkazované com_object. Vrací TRUE, pokud je property nastaveno. Při chybě vrací FALSE.

Předcházející | Domů | Další
com_release | Nahoru | Funkce pro práci s třídami/objekty


Funkce pro práci s třídami/objekty

Manuál PHP
Předcházející Další

IX. Funkce pro práci s třídami/objekty

Úvod

Tyto funkce vám umožňují získávat informace o třídách a instancích. Můžete zjistit název třídy do které objekt patří nebo jeho proměnné a metody. Pomocí těchto funkcí můžete zjistit nejen příslušnost objektu k třídě, ale i jeho předka (tj. kterou třídu třída tohoto objektu rozšiřuje).

Požadavky

Tyto funkce jsou k dispozici jako součást standardního modulu, který je vždy dostupný.

Instalace

K používání těchto funkcí není třeba žádná instalace, jsou součástí jádra PHP.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Příklady

V této ukázce nejdříve definujeme základní třídu a rozšíření této třídy. Základní třída popisuje obecnou zeleninu, ať už je jedlá nebo ne a bez ohledu na její barvu. Podtřída Spenat přidává metodu na uvaření této zeleniny a další, která zjistí, jestli je vařená.

Příklad 1. classes.inc

<?php

// základní třída s členskými proměnnými a metodami
class Zelenina {

    var $jedla;
    var $barva;

    function Zelenina( $jedla, $barva="green" ) {
        $this->jedla = $jedla;
        $this->barva = $barva;
    }

    function je_jedla() {
        return $this->jedla;
    }

    function jaka_barva() {
        return $this->barva;
    }

} // konec třídy Zelenina

// rozšiřuje základní třídu
class Spenat extends Zelenina {

    var $varena = false;

    function Spenat() {
        $this->Zelenina( true, "zelena" );
    }

    function cook_it() {
        $this->varena = true;
    }

    function je_varena() {
        return $this->varena;
    }

} // konec třídy Spenat

?>

Potom z těchto tříd vytvoříme 2 objekty a vytiskneme informace o nich, vč. rodičovských tříd. Také definujeme některé pomocné funkce, především kvůli pohodlnému tisku informací.

Příklad 2. test_script.php

<pre>
<?php

include "classes.inc";

// pomocné funkce

function vytiskni_promenne($obj) {
    $pole = get_object_vars($obj);
    while (list($vlastnost, $hodnota) = each($pole))
        echo "\t$vlastnost = $hodnota\n";
}

function vytiskni_metody($obj) {
    $pole = get_class_methods(get_class($obj));
    foreach ($pole as $metoda)
        echo "\tfunction $metoda()\n";
}

function class_parentage($obj, $class) {
    if (is_subclass_of($GLOBALS[$obj], $class)) {
        echo "Objekt $obj patří do třídy ".get_class($$obj);
        echo ", která je podtřídou $class\n";
    } else {
        echo "Objekt $obj nepatří do podtřídy třídy $class\n";
    }
}

// instancujeme 2 objekty

$zeleninka = new Zelenina(true,"modrá");
$listnaty = new Spenat();

// vytisknout informace o obou objektech
echo "zeleninka: CLASS ".get_class($zeleninka)."\n";
echo "listnatý: CLASS ".get_class($listnaty);
echo ", PARENT ".get_parent_class($listnaty)."\n";

// vytisknout vlastnosti zeleninky
echo "\nzeleninka: Vlastnosti\n";
vytiskni_promenne($zeleninka);

// a metody objektu listnatý
echo "\nlistnatý: Metody\n";
vytiskni_metody($listnaty);

echo "\nRodič:\n";
class_parentage("listnaty", "Spenat");
class_parentage("listnaty", "Zelenina");
?>
</pre>

Je třeba poznamenat, že ve výše uvedené ukázce je objekt $listnaty instancí třídy Spenat, která je podtřídou třídy Zelenina, a poslední část výše uvedeného skriptu tudíž vytiskne:

[...]
Rodič:
Objekt listnaty nepatří do podtřídy třídy Spenat
Object listnaty patří do třídy Spenat, která je podtřídou Zelenina

Obsah
call_user_method_array -- Call a user method given with an array of parameters [deprecated]
call_user_method -- Zavolat uživatelsky definouvanou metodu určitého objektu
class_exists -- Zjistit, jestli je třída definována
get_class_methods -- Vrátit pole názvů metod třídy
get_class_vars -- Vrátit pole defaultních vlastností třídy
get_class -- Vrátit jméno třídy objektu
get_declared_classes -- Vrátit pole názvů definovaných tříd
get_declared_interfaces -- Returns an array of all declared interfaces.
get_object_vars -- Vrátit asociativní pole vlastností objektu
get_parent_class -- Vrátit název rodičovské třídy objektu
is_a -- Returns TRUE if the object is of this class or has this class as one of its parents
is_subclass_of -- Zjistit, jestli objekt patří do podtřídy určité třídy
method_exists -- Zjistit, jestli má třída určitou metodu

Předcházející | Domů | Další
com_set | Nahoru | call_user_method_array


call_user_method_array

(PHP 4 >= 4.0.5, PHP 5)

call_user_method_array -- Call a user method given with an array of parameters [deprecated]

Description

mixed call_user_method_array ( string method_name, object obj [, array paramarr])

Varování

The call_user_method_array() function is deprecated as of PHP 4.1.0, use the call_user_func_array() variety with the array(&$obj, "method_name") syntax instead.

Calls the method referred by method_name from the user defined obj object, using the parameters in paramarr.

See also: call_user_func_array(), and call_user_func().

Předcházející | Domů | Další
Funkce pro práci s třídami/objekty | Nahoru | call_user_method


call_user_method

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

call_user_method -- Zavolat uživatelsky definouvanou metodu určitého objektu

Popis

mixed call_user_method ( string method_name, object obj [, mixed parameter [, mixed ...]])

Zavolá metodu method_name objektu obj. Ukázka využití je níže, kde definujeme třídu, vytvoříme objekt a použijeme call_user_method() k nepřímému volání její print_info metody.

<?php
class Country {
    var $NAME;
    var $TLD;

    function Country($name, $tld) {
        $this->NAME = $name;
        $this->TLD = $tld;
    }

    function print_info($prestr="") {
        echo $prestr."Country: ".$this->NAME."\n";
        echo $prestr."Top Level Domain: ".$this->TLD."\n";
    }
}

$cntry = new Country("Peru","pe");

echo "* Calling the object method directly\n";
$cntry->print_info();

echo "\n* Calling the same method indirectly\n";
call_user_method ("print_info", $cntry, "\t");
?>

Viz také call_user_func().

Předcházející | Domů | Další
call_user_method_array | Nahoru | class_exists


class_exists

(PHP 4 , PHP 5)

class_exists -- Zjistit, jestli je třída definována

Popis

bool class_exists ( string class_name)

Tato funkce vrátí TRUE, pokud je třída class_name definována, jinak FALSE.

Předcházející | Domů | Další
call_user_method | Nahoru | get_class_methods


get_class_methods

(PHP 4 , PHP 5)

get_class_methods -- Vrátit pole názvů metod třídy

Popis

array get_class_methods ( string class_name)

Tato funkce vrací pole názvů metod definovaných pro třídu specifikovanou argumentem class_name.

Viz také get_class_vars(), get_object_vars()

Předcházející | Domů | Další
class_exists | Nahoru | get_class_vars


get_class_vars

(PHP 4 , PHP 5)

get_class_vars -- Vrátit pole defaultních vlastností třídy

Popis

array get_class_vars ( string class_name)

Tato funkce vrací pole defaultních vlastností třídy class_name.

Viz také get_class_methods(), get_object_vars()

Předcházející | Domů | Další
get_class_methods | Nahoru | get_class


get_class

(PHP 4 , PHP 5)

get_class -- Vrátit jméno třídy objektu

Popis

string get_class ( object obj)

Tato funkce vrací název třídy jíž je objekt obj instancí.

Viz také get_parent_class(), is_subclass_of()

Předcházející | Domů | Další
get_class_vars | Nahoru | get_declared_classes


get_declared_classes

(PHP 4 , PHP 5)

get_declared_classes -- Vrátit pole názvů definovaných tříd

Popis

array get_declared_classes ( void )

Tato funkce vrací pole názvů tříd definovaných v současném skriptu.

Poznámka: V PHP 4.0.1pl2 jsou na začátku pole vráceny ještě tři další třídy: stdClass (definovaná v Zend/zend.c), OverloadedTestClass (definovaná v ext/standard/basic_functions.c) a Directory (definovaná v ext/standard/dir.c).

Předcházející | Domů | Další
get_class | Nahoru | get_declared_interfaces


get_declared_interfaces

(PHP 5)

get_declared_interfaces -- Returns an array of all declared interfaces.

Description

array get_declared_interfaces ( void )

This function returns an array of the names of the declared interfaces in the current script.

Příklad 1. get_declared_interfaces() example

<?php
print_r(get_declared_interfaces());
?>

The above example will output something similar to: :

Array
(
    [0] => Traversable
    [1] => IteratorAggregate
    [2] => Iterator
    [3] => ArrayAccess
    [4] => reflector
    [5] => RecursiveIterator
    [6] => SeekableIterator
)

Předcházející | Domů | Další
get_declared_classes | Nahoru | get_object_vars


get_object_vars

(PHP 4 , PHP 5)

get_object_vars -- Vrátit asociativní pole vlastností objektu

Popis

array get_object_vars ( object obj)

Tato funkce vrací asociativní pole definovaných vlastností objektu obj. Proměnným deklarovaným v třídě jíž je obj instancí, kterým nebyla přiřazena hodnota, nejsou ve vráceném poli obsaženy.

Příklad 1. Použití get_object_vars()

<?php
class Point2D {
    var $x, $y;
    var $label;

    function Point2D($x, $y) {
        $this->x = $x;
        $this->y = $y;
    }

    function setLabel($label) {
        $this->label = $label;
    }

    function getPoint() {
        return array("x" => $this->x,
                     "y" => $this->y,
                     "label" => $this->label);
    }
}

$p1 = new Point2D(1.233, 3.445);
print_r(get_object_vars($p1));
// "$label" is declared but not defined
// Array
// (
//     [x] => 1.233
//     [y] => 3.445
// )

$p1->setLabel("point #1");
print_r(get_object_vars($p1));
// Array
// (
//     [x] => 1.233
//     [y] => 3.445
//     [label] => point #1
// )

?>

Viz také get_class_methods(), get_class_vars()

Předcházející | Domů | Další
get_declared_interfaces | Nahoru | get_parent_class


get_parent_class

(PHP 4 , PHP 5)

get_parent_class -- Vrátit název rodičovské třídy objektu

Popis

string get_parent_class ( object obj)

Tato funkce vrací název rodičovské třídy objektu obj.

Viz také get_class(), is_subclass_of()

Předcházející | Domů | Další
get_object_vars | Nahoru | is_a


is_a

(PHP 4 >= 4.2.0, PHP 5)

is_a -- Returns TRUE if the object is of this class or has this class as one of its parents

Description

bool is_a ( object object, string class_name)

This function returns TRUE if the object is of this class or has this class as one of its parents, FALSE otherwise.

Příklad 1. is_a() example

<?php
// define a class
class WidgetFactory
{
  var $oink = 'moo';
}

// create a new object
$WF = new WidgetFactory();

if (is_a($WF, 'WidgetFactory')) {
  echo "yes, \$WF is still a WidgetFactory\n";
}
?>

See also get_class(),
get_parent_class(), and
is_subclass_of().

Předcházející | Domů | Další
get_parent_class | Nahoru | is_subclass_of


is_subclass_of

(PHP 4 , PHP 5)

is_subclass_of -- Zjistit, jestli objekt patří do podtřídy určité třídy

Popis

bool is_subclass_of ( object obj, string superclass)

Tato funkce vrací TRUE, pokud je objekt obj instancí třídy, která je podtřídou superclass, jinak FALSE.

Viz také get_class(), get_parent_class()

Předcházející | Domů | Další
is_a | Nahoru | method_exists


method_exists

(PHP 4 , PHP 5)

method_exists -- Zjistit, jestli má třída určitou metodu

Popis

bool method_exists ( object object, string method_name)

Tato funkce vrací TRUE, pokud má object definovánu metodu method_name, jinak FALSE.

Předcházející | Domů | Další
is_subclass_of | Nahoru | ClibPDF Functions


ClibPDF Functions

Manuál PHP
Předcházející Další

X. ClibPDF Functions

Úvod

ClibPDF lets you create PDF documents with PHP. ClibPDF functionality and API are similar to PDFlib. This documentation should be read alongside the ClibPDF manual since it explains the library in much greater detail.

Many functions in the native ClibPDF and the PHP module, as well as in PDFlib, have the same name. All functions except for cpdf_open() take the handle for the document as their first parameter.

Currently this handle is not used internally since ClibPDF does not support the creation of several PDF documents at the same time. Actually, you should not even try it, the results are unpredictable. I can't oversee what the consequences in a multi threaded environment are. According to the author of ClibPDF this will change in one of the next releases (current version when this was written is 1.10). If you need this functionality use the pdflib module.

A nice feature of ClibPDF (and PDFlib) is the ability to create the pdf document completely in memory without using temporary files. It also provides the ability to pass coordinates in a predefined unit length. (This feature can also be simulated by pdf_translate() when using the PDFlib functions.)

Another nice feature of ClibPDF is the fact that any page can be modified at any time even if a new page has been already opened. The function cpdf_set_current_page() allows to leave the current page and presume modifying an other page.

Most of the functions are fairly easy to use. The most difficult part is probably creating a very simple PDF document at all. The following example should help you to get started. It creates a document with one page. The page contains the text "Times-Roman" in an outlined 30pt font. The text is underlined.

Poznámka: If you're interested in alternative free PDF generators that do not utilize external PDF libraries, see this related FAQ.

Požadavky

In order to use the ClibPDF functions you need to install the ClibPDF package. It is available for download from FastIO, but requires that you purchase a license for commercial use. PHP requires that you use cpdflib >= 2.

Instalace

To get these functions to work, you have to compile PHP with --with-cpdflib[=DIR]. DIR is the cpdflib install directory, defaults to /usr. In addition you can specify the jpeg library and the tiff library for ClibPDF to use. To do so add to your configure line the options --with-jpeg-dir[=DIR] --with-tiff-dir[=DIR].

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

CPDF_PM_NONE (integer)

CPDF_PM_OUTLINES (integer)

CPDF_PM_THUMBS (integer)

CPDF_PM_FULLSCREEN (integer)

CPDF_PL_SINGLE (integer)

CPDF_PL_1COLUMN (integer)

CPDF_PL_2LCOLUMN (integer)

CPDF_PL_2RCOLUMN (integer)

Příklady

Příklad 1. Simple ClibPDF Example

<?php
$cpdf = cpdf_open(0);
cpdf_page_init($cpdf, 1, 0, 595, 842, 1.0);
cpdf_add_outline($cpdf, 0, 0, 0, 1, "Page 1");
cpdf_begin_text($cpdf);
cpdf_set_font($cpdf, "Times-Roman", 30, "WinAnsiEncoding");
cpdf_set_text_rendering($cpdf, 1);
cpdf_text($cpdf, "Times Roman outlined", 50, 750);
cpdf_end_text($cpdf);
cpdf_moveto($cpdf, 50, 740);
cpdf_lineto($cpdf, 330, 740);
cpdf_stroke($cpdf);
cpdf_finalize($cpdf);
Header("Content-type: application/pdf");
cpdf_output_buffer($cpdf);
cpdf_close($cpdf);
?>

The pdflib distribution contains a more complex example which creates a series of pages with an analog clock. Here is that example converted into PHP using the ClibPDF extension:

Příklad 2. pdfclock example from pdflib 2.0 distribution

<?php
$radius = 200;
$margin = 20;
$pagecount = 40;

$pdf = cpdf_open(0);
cpdf_set_creator($pdf, "pdf_clock.php");
cpdf_set_title($pdf, "Analog Clock");

while ($pagecount-- > 0) {
  cpdf_page_init($pdf, $pagecount+1, 0, 2 * ($radius + $margin), 2 * ($radius + $margin), 1.0);

  cpdf_set_page_animation($pdf, 4, 0.5, 0, 0, 0);  /* wipe */

  cpdf_translate($pdf, $radius + $margin, $radius + $margin);
  cpdf_save($pdf);
  cpdf_setrgbcolor($pdf, 0.0, 0.0, 1.0);

  /* minute strokes */
  cpdf_setlinewidth($pdf, 2.0);
  for ($alpha = 0; $alpha < 360; $alpha += 6) {
    cpdf_rotate($pdf, 6.0);
    cpdf_moveto($pdf, $radius, 0.0);
    cpdf_lineto($pdf, $radius-$margin/3, 0.0);
    cpdf_stroke($pdf);
  }

  cpdf_restore($pdf);
  cpdf_save($pdf);

  /* 5 minute strokes */
  cpdf_setlinewidth($pdf, 3.0);
  for ($alpha = 0; $alpha < 360; $alpha += 30) {
    cpdf_rotate($pdf, 30.0);
    cpdf_moveto($pdf, $radius, 0.0);
    cpdf_lineto($pdf, $radius-$margin, 0.0);
    cpdf_stroke($pdf);
  }

  $ltime = getdate();

  /* draw hour hand */
  cpdf_save($pdf);
  cpdf_rotate($pdf, -(($ltime['minutes']/60.0) + $ltime['hours'] - 3.0) * 30.0);
  cpdf_moveto($pdf, -$radius/10, -$radius/20);
  cpdf_lineto($pdf, $radius/2, 0.0);
  cpdf_lineto($pdf, -$radius/10, $radius/20);
  cpdf_closepath($pdf);
  cpdf_fill($pdf);
  cpdf_restore($pdf);

  /* draw minute hand */
  cpdf_save($pdf);
  cpdf_rotate($pdf, -(($ltime['seconds']/60.0) + $ltime['minutes'] - 15.0) * 6.0);
  cpdf_moveto($pdf, -$radius/10, -$radius/20);
  cpdf_lineto($pdf, $radius * 0.8, 0.0);
  cpdf_lineto($pdf, -$radius/10, $radius/20);
  cpdf_closepath($pdf);
  cpdf_fill($pdf);
  cpdf_restore($pdf);

  /* draw second hand */
  cpdf_setrgbcolor($pdf, 1.0, 0.0, 0.0);
  cpdf_setlinewidth($pdf, 2);
  cpdf_save($pdf);
  cpdf_rotate($pdf, -(($ltime['seconds'] - 15.0) * 6.0));
  cpdf_moveto($pdf, -$radius/5, 0.0);
  cpdf_lineto($pdf, $radius, 0.0);
  cpdf_stroke($pdf);
  cpdf_restore($pdf);

  /* draw little circle at center */
  cpdf_circle($pdf, 0, 0, $radius/30);
  cpdf_fill($pdf);

  cpdf_restore($pdf);

  cpdf_finalize_page($pdf, $pagecount+1);
}

cpdf_finalize($pdf);
Header("Content-type: application/pdf");
cpdf_output_buffer($pdf);
cpdf_close($pdf);
?>

Viz také

See also the PDFlib extension documentation.

Obsah
cpdf_add_annotation -- Adds annotation
cpdf_add_outline -- Adds bookmark for current page
cpdf_arc -- Draws an arc
cpdf_begin_text -- Starts text section
cpdf_circle -- Draw a circle
cpdf_clip -- Clips to current path
cpdf_close -- Closes the pdf document
cpdf_closepath_fill_stroke -- Close, fill and stroke current path
cpdf_closepath_stroke -- Close path and draw line along path
cpdf_closepath -- Close path
cpdf_continue_text -- Output text in next line
cpdf_curveto -- Draws a curve
cpdf_end_text -- Ends text section
cpdf_fill_stroke -- Fill and stroke current path
cpdf_fill -- Fill current path
cpdf_finalize_page -- Ends page
cpdf_finalize -- Ends document
cpdf_global_set_document_limits -- Sets document limits for any pdf document
cpdf_import_jpeg -- Opens a JPEG image
cpdf_lineto -- Draws a line
cpdf_moveto -- Sets current point
cpdf_newpath -- Starts a new path
cpdf_open -- Opens a new pdf document
cpdf_output_buffer -- Outputs the pdf document in memory buffer
cpdf_page_init -- Starts new page
cpdf_place_inline_image -- Places an image on the page
cpdf_rect -- Draw a rectangle
cpdf_restore -- Restores formerly saved environment
cpdf_rlineto -- Draws a line
cpdf_rmoveto -- Sets current point
cpdf_rotate_text -- Sets text rotation angle
cpdf_rotate -- Sets rotation
cpdf_save_to_file -- Writes the pdf document into a file
cpdf_save -- Saves current environment
cpdf_scale -- Sets scaling
cpdf_set_action_url -- Sets hyperlink
cpdf_set_char_spacing -- Sets character spacing
cpdf_set_creator -- Sets the creator field in the pdf document
cpdf_set_current_page -- Sets current page
cpdf_set_font_directories -- Sets directories to search when using external fonts
cpdf_set_font_map_file -- Sets fontname to filename translation map when using external fonts
cpdf_set_font -- Select the current font face and size
cpdf_set_horiz_scaling -- Sets horizontal scaling of text
cpdf_set_keywords -- Sets the keywords field of the pdf document
cpdf_set_leading -- Sets distance between text lines
cpdf_set_page_animation -- Sets duration between pages
cpdf_set_subject -- Sets the subject field of the pdf document
cpdf_set_text_matrix -- Sets the text matrix
cpdf_set_text_pos -- Sets text position
cpdf_set_text_rendering -- Determines how text is rendered
cpdf_set_text_rise -- Sets the text rise
cpdf_set_title -- Sets the title field of the pdf document
cpdf_set_viewer_preferences -- How to show the document in the viewer
cpdf_set_word_spacing -- Sets spacing between words
cpdf_setdash -- Sets dash pattern
cpdf_setflat -- Sets flatness
cpdf_setgray_fill -- Sets filling color to gray value
cpdf_setgray_stroke -- Sets drawing color to gray value
cpdf_setgray -- Sets drawing and filling color to gray value
cpdf_setlinecap -- Sets linecap parameter
cpdf_setlinejoin -- Sets linejoin parameter
cpdf_setlinewidth -- Sets line width
cpdf_setmiterlimit -- Sets miter limit
cpdf_setrgbcolor_fill -- Sets filling color to rgb color value
cpdf_setrgbcolor_stroke -- Sets drawing color to rgb color value
cpdf_setrgbcolor -- Sets drawing and filling color to rgb color value
cpdf_show_xy -- Output text at position
cpdf_show -- Output text at current position
cpdf_stringwidth -- Returns width of text in current font
cpdf_stroke -- Draw line along path
cpdf_text -- Output text with parameters
cpdf_translate -- Sets origin of coordinate system

Předcházející | Domů | Další
method_exists | Nahoru | cpdf_add_annotation


cpdf_add_annotation

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

cpdf_add_annotation -- Adds annotation

Description

bool cpdf_add_annotation ( int pdf_document, float llx, float lly, float urx, float ury, string title, string content [, int mode])

The cpdf_add_annotation() adds a note with the lower left corner at (llx, lly) and the upper right corner at (urx, ury). Vrací TRUE při úspěchu, FALSE při selhání.

Nepovinný parametr mode určuje délku jednotky. Když je nastaven na 0 nebo není uveden, je použita výchozí jednotka stránky. Jinak jsou souřadnice měřeny v bodech PostScript bez ohledu na aktuální jednotku.

Předcházející | Domů | Další
ClibPDF Functions | Nahoru | cpdf_add_outline


cpdf_add_outline

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

cpdf_add_outline -- Adds bookmark for current page

Description

int cpdf_add_outline ( int pdf_document, int lastoutline, int sublevel, int open, int pagenr, string text)

The cpdf_add_outline() function adds a bookmark with text text that points to the current page.

Příklad 1. Adding a page outline

<?php
$cpdf = cpdf_open(0);
cpdf_page_init($cpdf, 1, 0, 595, 842);
cpdf_add_outline($cpdf, 0, 0, 0, 1, "Page 1");
// ...
// some drawing
// ...
cpdf_finalize($cpdf);
Header("Content-type: application/pdf");
cpdf_output_buffer($cpdf);
cpdf_close($cpdf);
?>

Předcházející | Domů | Další
cpdf_add_annotation | Nahoru | cpdf_arc


cpdf_arc

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_arc -- Draws an arc

Description

bool cpdf_arc ( int pdf_document, float x-coor, float y-coor, float radius, float start, float end [, int mode])

The cpdf_arc() function draws an arc with center at point (x-coor, y-coor) and radius radius, starting at angle start and ending at angle end. Vrací TRUE při úspěchu, FALSE při selhání.

Nepovinný parametr mode určuje délku jednotky. Když je nastaven na 0 nebo není uveden, je použita výchozí jednotka stránky. Jinak jsou souřadnice měřeny v bodech PostScript bez ohledu na aktuální jednotku.

See also cpdf_circle().

Předcházející | Domů | Další
cpdf_add_outline | Nahoru | cpdf_begin_text


cpdf_begin_text

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_begin_text -- Starts text section

Description

bool cpdf_begin_text ( int pdf_document)

The cpdf_begin_text() function starts a text section. Vrací TRUE při úspěchu, FALSE při selhání. The created text section must be ended with cpdf_end_text().

Příklad 1. Text output

<?php
cpdf_begin_text($pdf);
cpdf_set_font($pdf, 16, "Helvetica", "WinAnsiEncoding");
cpdf_text($pdf, 100, 100, "Some text");
cpdf_end_text($pdf)
?>

See also cpdf_end_text().

Předcházející | Domů | Další
cpdf_arc | Nahoru | cpdf_circle


cpdf_circle

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_circle -- Draw a circle

Description

bool cpdf_circle ( int pdf_document, float x-coor, float y-coor, float radius [, int mode])

The cpdf_circle() function draws a circle with center at point (x-coor, y-coor) and radius radius. Vrací TRUE při úspěchu, FALSE při selhání.

Nepovinný parametr mode určuje délku jednotky. Když je nastaven na 0 nebo není uveden, je použita výchozí jednotka stránky. Jinak jsou souřadnice měřeny v bodech PostScript bez ohledu na aktuální jednotku.

See also cpdf_arc().

Předcházející | Domů | Další
cpdf_begin_text | Nahoru | cpdf_clip


cpdf_clip

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_clip -- Clips to current path

Description

bool cpdf_clip ( int pdf_document)

The cpdf_clip() function clips all drawing to the current path. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
cpdf_circle | Nahoru | cpdf_close


cpdf_close

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_close -- Closes the pdf document

Description

bool cpdf_close ( int pdf_document)

The cpdf_close() function closes the pdf document. Vrací TRUE při úspěchu, FALSE při selhání. This should be the last function even after cpdf_finalize(), cpdf_output_buffer() and cpdf_save_to_file().

See also cpdf_open().

Předcházející | Domů | Další
cpdf_clip | Nahoru | cpdf_closepath_fill_stroke


cpdf_closepath_fill_stroke

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_closepath_fill_stroke -- Close, fill and stroke current path

Description

bool cpdf_closepath_fill_stroke ( int pdf_document)

The cpdf_closepath_fill_stroke() function closes, fills the interior of the current path with the current fill color and draws current path. Vrací TRUE při úspěchu, FALSE při selhání.

See also cpdf_closepath(),
cpdf_stroke(),
cpdf_fill(),
cpdf_setgray_fill(),
cpdf_setgray(),
cpdf_setrgbcolor_fill() and
cpdf_setrgbcolor().

Předcházející | Domů | Další
cpdf_close | Nahoru | cpdf_closepath_stroke


cpdf_closepath_stroke

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_closepath_stroke -- Close path and draw line along path

Description

bool cpdf_closepath_stroke ( int pdf_document)

The cpdf_closepath_stroke() function is a
combination of cpdf_closepath() and
cpdf_stroke(). Then clears the path.
Vrací TRUE při úspěchu, FALSE při selhání.

See also cpdf_closepath() and cpdf_stroke().

Předcházející | Domů | Další
cpdf_closepath_fill_stroke | Nahoru | cpdf_closepath


cpdf_closepath

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_closepath -- Close path

Description

bool cpdf_closepath ( int pdf_document)

The cpdf_closepath() function closes the current path. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
cpdf_closepath_stroke | Nahoru | cpdf_continue_text


cpdf_continue_text

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_continue_text -- Output text in next line

Description

bool cpdf_continue_text ( int pdf_document, string text)

The cpdf_continue_text() function outputs the string in text in the next line. Vrací TRUE při úspěchu, FALSE při selhání.

See also cpdf_show_xy(),
cpdf_text(),
cpdf_set_leading() and
cpdf_set_text_pos().

Předcházející | Domů | Další
cpdf_closepath | Nahoru | cpdf_curveto


cpdf_curveto

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_curveto -- Draws a curve

Description

bool cpdf_curveto ( int pdf_document, float x1, float y1, float x2, float y2, float x3, float y3 [, int mode])

The cpdf_curveto() function draws a Bezier curve from the current point to the point (x3, y3) using (x1, y1) and (x2, y2) as control points. Vrací TRUE při úspěchu, FALSE při selhání.

Nepovinný parametr mode určuje délku jednotky. Když je nastaven na 0 nebo není uveden, je použita výchozí jednotka stránky. Jinak jsou souřadnice měřeny v bodech PostScript bez ohledu na aktuální jednotku.

See also cpdf_moveto(),
cpdf_rmoveto(),
cpdf_rlineto() and
cpdf_lineto().

Předcházející | Domů | Další
cpdf_continue_text | Nahoru | cpdf_end_text


cpdf_end_text

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_end_text -- Ends text section

Description

bool cpdf_end_text ( int pdf_document)

The cpdf_end_text() function ends a text section which was started with cpdf_begin_text(). Vrací TRUE při úspěchu, FALSE při selhání.

Příklad 1. Text output

<?php
cpdf_begin_text($pdf);
cpdf_set_font($pdf, 16, "Helvetica", "WinAnsiEncoding");
cpdf_text($pdf, 100, 100, "Some text");
cpdf_end_text($pdf)
?>

See also cpdf_begin_text().

Předcházející | Domů | Další
cpdf_curveto | Nahoru | cpdf_fill_stroke


cpdf_fill_stroke

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_fill_stroke -- Fill and stroke current path

Description

bool cpdf_fill_stroke ( int pdf_document)

The cpdf_fill_stroke() function fills the interior of the current path with the current fill color and draws current path. Vrací TRUE při úspěchu, FALSE při selhání.

See also cpdf_closepath(),
cpdf_stroke(),
cpdf_fill(),
cpdf_setgray_fill(),
cpdf_setgray(),
cpdf_setrgbcolor_fill() and
cpdf_setrgbcolor().

Předcházející | Domů | Další
cpdf_end_text | Nahoru | cpdf_fill


cpdf_fill

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_fill -- Fill current path

Description

bool cpdf_fill ( int pdf_document)

The cpdf_fill() function fills the interior of the current path with the current fill color. Vrací TRUE při úspěchu, FALSE při selhání.

See also cpdf_closepath(),
cpdf_stroke(),
cpdf_setgray_fill(),
cpdf_setgray(),
cpdf_setrgbcolor_fill() and
cpdf_setrgbcolor().

Předcházející | Domů | Další
cpdf_fill_stroke | Nahoru | cpdf_finalize_page


cpdf_finalize_page

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

cpdf_finalize_page -- Ends page

Description

bool cpdf_finalize_page ( int pdf_document, int page_number)

The cpdf_finalize_page() function ends the page with page number page_number. Vrací TRUE při úspěchu, FALSE při selhání.

This function is only for saving memory. A finalized page takes less memory but cannot be modified anymore.

See also cpdf_page_init().

Předcházející | Domů | Další
cpdf_fill | Nahoru | cpdf_finalize


cpdf_finalize

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_finalize -- Ends document

Description

bool cpdf_finalize ( int pdf_document)

The cpdf_finalize() function ends the document. You still have to call cpdf_close(). Vrací TRUE při úspěchu, FALSE při selhání.

See also cpdf_close().

Předcházející | Domů | Další
cpdf_finalize_page | Nahoru | cpdf_global_set_document_limits


cpdf_global_set_document_limits

(PHP 4 , PHP 5)

cpdf_global_set_document_limits -- Sets document limits for any pdf document

Description

bool cpdf_global_set_document_limits ( int maxpages, int maxfonts, int maximages, int maxannotations, int maxobjects)

The cpdf_global_set_document_limits() function sets several document limits. This function has to be called before cpdf_open() to take effect. It sets the limits for any document open afterwards. Vrací TRUE při úspěchu, FALSE při selhání.

See also cpdf_open().

Předcházející | Domů | Další
cpdf_finalize | Nahoru | cpdf_import_jpeg


cpdf_import_jpeg

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

cpdf_import_jpeg -- Opens a JPEG image

Description

int cpdf_import_jpeg ( int pdf_document, string file_name, float x-coor, float y-coor, float angle, float width, float height, float x-scale, float y-scale, int gsave [, int mode])

The cpdf_import_jpeg() function opens an image stored in the file with the name file_name. The format of the image has to be jpeg. The image is placed on the current page at position (x-coor, y-coor). The image is rotated by angle degrees. gsave should be non-zero to allow this function to operate correctly.

Nepovinný parametr mode určuje délku jednotky. Když je nastaven na 0 nebo není uveden, je použita výchozí jednotka stránky. Jinak jsou souřadnice měřeny v bodech PostScript bez ohledu na aktuální jednotku.

See also cpdf_place_inline_image().

Předcházející | Domů | Další
cpdf_global_set_document_limits | Nahoru | cpdf_lineto


cpdf_lineto

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_lineto -- Draws a line

Description

bool cpdf_lineto ( int pdf_document, float x-coor, float y-coor [, int mode])

The cpdf_lineto() function draws a line from the current point to the point with coordinates (x-coor, y-coor). Vrací TRUE při úspěchu, FALSE při selhání.

Nepovinný parametr mode určuje délku jednotky. Když je nastaven na 0 nebo není uveden, je použita výchozí jednotka stránky. Jinak jsou souřadnice měřeny v bodech PostScript bez ohledu na aktuální jednotku.

See also cpdf_moveto(),
cpdf_rmoveto() and
cpdf_curveto().

Předcházející | Domů | Další
cpdf_import_jpeg | Nahoru | cpdf_moveto


cpdf_moveto

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_moveto -- Sets current point

Description

bool cpdf_moveto ( int pdf_document, float x-coor, float y-coor [, int mode])

The cpdf_moveto() function set the current point to the coordinates x-coor and y-coor. Vrací TRUE při úspěchu, FALSE při selhání.

Nepovinný parametr mode určuje délku jednotky. Když je nastaven na 0 nebo není uveden, je použita výchozí jednotka stránky. Jinak jsou souřadnice měřeny v bodech PostScript bez ohledu na aktuální jednotku.

Předcházející | Domů | Další
cpdf_lineto | Nahoru | cpdf_newpath


cpdf_newpath

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

cpdf_newpath -- Starts a new path

Description

bool cpdf_newpath ( int pdf_document)

The cpdf_newpath() starts a new path on the document given by the pdf_document parameter. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
cpdf_moveto | Nahoru | cpdf_open


cpdf_open

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_open -- Opens a new pdf document

Description

int cpdf_open ( int compression [, string filename])

The cpdf_open() function opens a new pdf document. The first parameter turns document compression on if it is unequal to 0. The second optional parameter sets the file in which the document is written. If it is omitted the document is created in memory and can either be written into a file with the cpdf_save_to_file() or written to standard output with cpdf_output_buffer().

Poznámka: The return value will be needed in further versions of ClibPDF as the first parameter in all other functions which are writing to the pdf document.

The ClibPDF library takes the filename "-" as a synonym for stdout. If PHP is compiled as an apache module this will not work because the way ClibPDF outputs to stdout does not work with apache. You can solve this problem by skipping the filename and using cpdf_output_buffer() to output the pdf document.

See also cpdf_close() and cpdf_output_buffer().

Předcházející | Domů | Další
cpdf_newpath | Nahoru | cpdf_output_buffer


cpdf_output_buffer

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

cpdf_output_buffer -- Outputs the pdf document in memory buffer

Description

bool cpdf_output_buffer ( int pdf_document)

The cpdf_output_buffer() function outputs the pdf document to stdout. The document has to be created in memory which is the case if cpdf_open() has been called with no filename parameter. Vrací TRUE při úspěchu, FALSE při selhání.

See also cpdf_open().

Předcházející | Domů | Další
cpdf_open | Nahoru | cpdf_page_init


cpdf_page_init

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_page_init -- Starts new page

Description

bool cpdf_page_init ( int pdf_document, int page_number, int orientation, float height, float width [, float unit])

The cpdf_page_init() function starts a new page with height height and width width. Vrací TRUE při úspěchu, FALSE při selhání. The page has number page_number and orientation orientation. orientation can be 0 for portrait and 1 for landscape. The last optional parameter unit sets the unit for the coordinate system. The value should be the number of postscript points per unit. Since one inch is equal to 72 points, a value of 72 would set the unit to one inch. The default is also 72.

See also cpdf_set_current_page().

Předcházející | Domů | Další
cpdf_output_buffer | Nahoru | cpdf_place_inline_image


cpdf_place_inline_image

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

cpdf_place_inline_image -- Places an image on the page

Description

bool cpdf_place_inline_image ( int pdf_document, int image, float x-coor, float y-coor, float angle, float width, float height [, int mode])

The cpdf_place_inline_image() function places an image created with the PHP image functions on the page at position (x-coor, y-coor). The image can be scaled at the same time. Vrací TRUE při úspěchu, FALSE při selhání.

Nepovinný parametr mode určuje délku jednotky. Když je nastaven na 0 nebo není uveden, je použita výchozí jednotka stránky. Jinak jsou souřadnice měřeny v bodech PostScript bez ohledu na aktuální jednotku.

See also cpdf_import_jpeg().

Předcházející | Domů | Další
cpdf_page_init | Nahoru | cpdf_rect


cpdf_rect

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_rect -- Draw a rectangle

Description

bool cpdf_rect ( int pdf_document, float x-coor, float y-coor, float width, float height [, int mode])

The cpdf_rect() function draws a rectangle with its lower left corner at point (x-coor, y-coor). This width is set to width. This height is set to height. Vrací TRUE při úspěchu, FALSE při selhání.

Nepovinný parametr mode určuje délku jednotky. Když je nastaven na 0 nebo není uveden, je použita výchozí jednotka stránky. Jinak jsou souřadnice měřeny v bodech PostScript bez ohledu na aktuální jednotku.

Příklad 1. Drawing a rectangle

<?php

$cpdf = cpdf_open(0);
cpdf_page_init($cpdf, 1, 0, 595, 842, 1.0);

// set the fill color to red
cpdf_setrgbcolor($cpdf, 1, 0, 0);

// draw a (180 * 100) rectangle
cpdf_rect($cpdf, 645, 400, 180, 100);

// fill the rectangle
cpdf_fill($cpdf);

cpdf_finalize($cpdf);
Header("Content-type: application/pdf");
cpdf_output_buffer($cpdf);
cpdf_close($cpdf);

?>

Předcházející | Domů | Další
cpdf_place_inline_image | Nahoru | cpdf_restore


cpdf_restore

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_restore -- Restores formerly saved environment

Description

bool cpdf_restore ( int pdf_document)

The cpdf_restore() function restores the environment saved with cpdf_save(). It works like the postscript command grestore. Very useful if you want to translate or rotate an object without effecting other objects. Vrací TRUE při úspěchu, FALSE při selhání.

Příklad 1. Save/Restore

<?php
cpdf_save($pdf);
// do all kinds of rotations, transformations, ...
cpdf_restore($pdf)
?>

See also cpdf_save().

Předcházející | Domů | Další
cpdf_rect | Nahoru | cpdf_rlineto


cpdf_rlineto

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

cpdf_rlineto -- Draws a line

Description

bool cpdf_rlineto ( int pdf_document, float x-coor, float y-coor [, int mode])

The cpdf_rlineto() function draws a line from the current point to the relative point with coordinates (x-coor, y-coor). Vrací TRUE při úspěchu, FALSE při selhání.

Nepovinný parametr mode určuje délku jednotky. Když je nastaven na 0 nebo není uveden, je použita výchozí jednotka stránky. Jinak jsou souřadnice měřeny v bodech PostScript bez ohledu na aktuální jednotku.

See also cpdf_moveto(),
cpdf_rmoveto() and
cpdf_curveto().

Předcházející | Domů | Další
cpdf_restore | Nahoru | cpdf_rmoveto


cpdf_rmoveto

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

cpdf_rmoveto -- Sets current point

Description

bool cpdf_rmoveto ( int pdf_document, float x-coor, float y-coor [, int mode])

The cpdf_rmoveto() function set the current point relative to the coordinates x-coor and y-coor. Vrací TRUE při úspěchu, FALSE při selhání.

Nepovinný parametr mode určuje délku jednotky. Když je nastaven na 0 nebo není uveden, je použita výchozí jednotka stránky. Jinak jsou souřadnice měřeny v bodech PostScript bez ohledu na aktuální jednotku.

See also cpdf_moveto().

Předcházející | Domů | Další
cpdf_rlineto | Nahoru | cpdf_rotate_text


cpdf_rotate_text

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

cpdf_rotate_text -- Sets text rotation angle

Description

bool cpdf_rotate_text ( int pdfdoc, float angle)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
cpdf_rmoveto | Nahoru | cpdf_rotate


cpdf_rotate

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_rotate -- Sets rotation

Description

bool cpdf_rotate ( int pdf_document, float angle)

The cpdf_rotate() function set the rotation in degrees to angle. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
cpdf_rotate_text | Nahoru | cpdf_save_to_file


cpdf_save_to_file

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_save_to_file -- Writes the pdf document into a file

Description

bool cpdf_save_to_file ( int pdf_document, string filename)

The cpdf_save_to_file() function outputs the pdf document into a file if it has been created in memory. Vrací TRUE při úspěchu, FALSE při selhání.

This function is not needed if the pdf document has been open by specifying a filename as a parameter of cpdf_open().

See also cpdf_output_buffer() and cpdf_open().

Předcházející | Domů | Další
cpdf_rotate | Nahoru | cpdf_save


cpdf_save

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_save -- Saves current environment

Description

bool cpdf_save ( int pdf_document)

The cpdf_save() function saves the current environment. It works like the postscript command gsave. Very useful if you want to translate or rotate an object without effecting other objects. Vrací TRUE při úspěchu, FALSE při selhání.

See also cpdf_restore().

Předcházející | Domů | Další
cpdf_save_to_file | Nahoru | cpdf_scale


cpdf_scale

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_scale -- Sets scaling

Description

bool cpdf_scale ( int pdf_document, float x-scale, float y-scale)

The cpdf_scale() function set the scaling factor in both directions. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
cpdf_save | Nahoru | cpdf_set_action_url


cpdf_set_action_url

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

cpdf_set_action_url -- Sets hyperlink

Description

bool cpdf_set_action_url ( int pdfdoc, float xll, float yll, float xur, float xur, string url [, int mode])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
cpdf_scale | Nahoru | cpdf_set_char_spacing


cpdf_set_char_spacing

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_set_char_spacing -- Sets character spacing

Description

bool cpdf_set_char_spacing ( int pdf_document, float space)

The cpdf_set_char_spacing() function sets the spacing between characters. Vrací TRUE při úspěchu, FALSE při selhání.

See also cpdf_set_word_spacing() and cpdf_set_leading().

Předcházející | Domů | Další
cpdf_set_action_url | Nahoru | cpdf_set_creator


cpdf_set_creator

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_set_creator -- Sets the creator field in the pdf document

Description

bool cpdf_set_creator ( int pdf_document, string creator)

The cpdf_set_creator() function sets the creator of a pdf document. Vrací TRUE při úspěchu, FALSE při selhání.

See also cpdf_set_subject(),
cpdf_set_title() and
cpdf_set_keywords().

Předcházející | Domů | Další
cpdf_set_char_spacing | Nahoru | cpdf_set_current_page


cpdf_set_current_page

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

cpdf_set_current_page -- Sets current page

Description

bool cpdf_set_current_page ( int pdf_document, int page_number)

The cpdf_set_current_page() function set the page on which all operations are performed. One can switch between pages until a page is finished with cpdf_finalize_page(). Vrací TRUE při úspěchu, FALSE při selhání.

See also cpdf_finalize_page().

Předcházející | Domů | Další
cpdf_set_creator | Nahoru | cpdf_set_font_directories


cpdf_set_font_directories

(PHP 4 >= 4.0.6, PHP 5)

cpdf_set_font_directories -- Sets directories to search when using external fonts

Description

bool cpdf_set_font_directories ( int pdfdoc, string pfmdir, string pfbdir)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
cpdf_set_current_page | Nahoru | cpdf_set_font_map_file


cpdf_set_font_map_file

(PHP 4 >= 4.0.6, PHP 5)

cpdf_set_font_map_file -- Sets fontname to filename translation map when using external fonts

Description

bool cpdf_set_font_map_file ( int pdfdoc, string filename)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
cpdf_set_font_directories | Nahoru | cpdf_set_font


cpdf_set_font

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_set_font -- Select the current font face and size

Description

bool cpdf_set_font ( int pdf_document, string font_name, float size, string encoding)

The cpdf_set_font() function sets the current font face, font size and encoding. Currently only the standard postscript fonts are supported. Vrací TRUE při úspěchu, FALSE při selhání.

The last parameter encoding can take the following values: "MacRomanEncoding", "MacExpertEncoding", "WinAnsiEncoding", and "NULL". "NULL" stands for the font's built-in encoding.

See the ClibPDF Manual for more information, especially how to support Asian fonts.

Předcházející | Domů | Další
cpdf_set_font_map_file | Nahoru | cpdf_set_horiz_scaling


cpdf_set_horiz_scaling

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_set_horiz_scaling -- Sets horizontal scaling of text

Description

bool cpdf_set_horiz_scaling ( int pdf_document, float scale)

The cpdf_set_horiz_scaling() function sets the horizontal scaling to scale percent. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
cpdf_set_font | Nahoru | cpdf_set_keywords


cpdf_set_keywords

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_set_keywords -- Sets the keywords field of the pdf document

Description

bool cpdf_set_keywords ( int pdf_document, string keywords)

The cpdf_set_keywords() function sets the keywords of a pdf document. Vrací TRUE při úspěchu, FALSE při selhání.

See also cpdf_set_title(),
cpdf_set_creator() and
cpdf_set_subject().

Předcházející | Domů | Další
cpdf_set_horiz_scaling | Nahoru | cpdf_set_leading


cpdf_set_leading

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_set_leading -- Sets distance between text lines

Description

bool cpdf_set_leading ( int pdf_document, float distance)

The cpdf_set_leading() function sets the distance between text lines. This will be used if text is output by cpdf_continue_text(). Vrací TRUE při úspěchu, FALSE při selhání.

See also cpdf_continue_text().

Předcházející | Domů | Další
cpdf_set_keywords | Nahoru | cpdf_set_page_animation


cpdf_set_page_animation

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

cpdf_set_page_animation -- Sets duration between pages

Description

bool cpdf_set_page_animation ( int pdf_document, int transition, float duration)

The cpdf_set_page_animation() function set the transition between following pages. Vrací TRUE při úspěchu, FALSE při selhání.

The value of transition can be

0 for none,
1 for two lines sweeping across the screen reveal the page,
2 for multiple lines sweeping across the screen reveal the page,
3 for a box reveals the page,
4 for a single line sweeping across the screen reveals the page,
5 for the old page dissolves to reveal the page,
6 for the dissolve effect moves from one screen edge to another,
7 for the old page is simply replaced by the new page (default)

The value of duration is the number of seconds between page flipping.

Předcházející | Domů | Další
cpdf_set_leading | Nahoru | cpdf_set_subject


cpdf_set_subject

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_set_subject -- Sets the subject field of the pdf document

Description

bool cpdf_set_subject ( int pdf_document, string subject)

The cpdf_set_subject() function sets the subject of a pdf document. Vrací TRUE při úspěchu, FALSE při selhání.

See also cpdf_set_title(),
cpdf_set_creator() and
cpdf_set_keywords().

Předcházející | Domů | Další
cpdf_set_page_animation | Nahoru | cpdf_set_text_matrix


cpdf_set_text_matrix

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_set_text_matrix -- Sets the text matrix

Description

bool cpdf_set_text_matrix ( int pdf_document, array matrix)

The cpdf_set_text_matrix() function sets a matrix which describes a transformation applied on the current text font. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
cpdf_set_subject | Nahoru | cpdf_set_text_pos


cpdf_set_text_pos

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_set_text_pos -- Sets text position

Description

bool cpdf_set_text_pos ( int pdf_document, float x-coor, float y-coor [, int mode])

The cpdf_set_text_pos() function sets the position of text for the next cpdf_show() function call. Vrací TRUE při úspěchu, FALSE při selhání.

Nepovinný parametr mode určuje délku jednotky. Když je nastaven na 0 nebo není uveden, je použita výchozí jednotka stránky. Jinak jsou souřadnice měřeny v bodech PostScript bez ohledu na aktuální jednotku.

See also cpdf_show() and cpdf_text().

Předcházející | Domů | Další
cpdf_set_text_matrix | Nahoru | cpdf_set_text_rendering


cpdf_set_text_rendering

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_set_text_rendering -- Determines how text is rendered

Description

bool cpdf_set_text_rendering ( int pdf_document, int rendermode)

The cpdf_set_text_rendering() function determines how text is rendered. Vrací TRUE při úspěchu, FALSE při selhání.

The possible values for rendermode are 0=fill text, 1=stroke text, 2=fill and stroke text, 3=invisible, 4=fill text and add it to clipping path, 5=stroke text and add it to clipping path, 6=fill and stroke text and add it to clipping path, 7=add it to clipping path.

Předcházející | Domů | Další
cpdf_set_text_pos | Nahoru | cpdf_set_text_rise


cpdf_set_text_rise

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_set_text_rise -- Sets the text rise

Description

bool cpdf_set_text_rise ( int pdf_document, float value)

The cpdf_set_text_rise() function sets the text rising to value units. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
cpdf_set_text_rendering | Nahoru | cpdf_set_title


cpdf_set_title

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_set_title -- Sets the title field of the pdf document

Description

bool cpdf_set_title ( int pdf_document, string title)

The cpdf_set_title() function sets the title of a pdf document. Vrací TRUE při úspěchu, FALSE při selhání.

See also cpdf_set_subject(),
cpdf_set_creator() and
cpdf_set_keywords().

Předcházející | Domů | Další
cpdf_set_text_rise | Nahoru | cpdf_set_viewer_preferences


cpdf_set_viewer_preferences

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

cpdf_set_viewer_preferences -- How to show the document in the viewer

Description

bool cpdf_set_viewer_preferences ( int pdfdoc, array preferences)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
cpdf_set_title | Nahoru | cpdf_set_word_spacing


cpdf_set_word_spacing

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_set_word_spacing -- Sets spacing between words

Description

bool cpdf_set_word_spacing ( int pdf_document, float space)

The cpdf_set_word_spacing() function sets the spacing between words. Vrací TRUE při úspěchu, FALSE při selhání.

See also cpdf_set_char_spacing() and cpdf_set_leading().

Předcházející | Domů | Další
cpdf_set_viewer_preferences | Nahoru | cpdf_setdash


cpdf_setdash

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_setdash -- Sets dash pattern

Description

bool cpdf_setdash ( int pdf_document, float white, float black)

The cpdf_setdash() function set the dash pattern white white units and black black units. If both are 0 a solid line is set. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
cpdf_set_word_spacing | Nahoru | cpdf_setflat


cpdf_setflat

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_setflat -- Sets flatness

Description

bool cpdf_setflat ( int pdf_document, float value)

The cpdf_setflat() function set the flatness to a value between 0 and 100. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
cpdf_setdash | Nahoru | cpdf_setgray_fill


cpdf_setgray_fill

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_setgray_fill -- Sets filling color to gray value

Description

bool cpdf_setgray_fill ( int pdf_document, float value)

The cpdf_setgray_fill() function sets the current gray value to fill a path. Vrací TRUE při úspěchu, FALSE při selhání.

See also cpdf_setrgbcolor_fill().

Předcházející | Domů | Další
cpdf_setflat | Nahoru | cpdf_setgray_stroke


cpdf_setgray_stroke

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_setgray_stroke -- Sets drawing color to gray value

Description

bool cpdf_setgray_stroke ( int pdf_document, float gray_value)

The cpdf_setgray_stroke() function sets the current drawing color to the given gray value. Vrací TRUE při úspěchu, FALSE při selhání.

See also cpdf_setrgbcolor_stroke().

Předcházející | Domů | Další
cpdf_setgray_fill | Nahoru | cpdf_setgray


cpdf_setgray

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_setgray -- Sets drawing and filling color to gray value

Description

bool cpdf_setgray ( int pdf_document, float gray_value)

The cpdf_setgray() function sets the current drawing and filling color to the given gray value. Vrací TRUE při úspěchu, FALSE při selhání.

See also cpdf_setrgbcolor_stroke() and cpdf_setrgbcolor_fill().

Předcházející | Domů | Další
cpdf_setgray_stroke | Nahoru | cpdf_setlinecap


cpdf_setlinecap

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_setlinecap -- Sets linecap parameter

Description

bool cpdf_setlinecap ( int pdf_document, int value)

The cpdf_setlinecap() function set the linecap parameter between a value of 0 and 2. 0 = butt end, 1 = round, 2 = projecting square. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
cpdf_setgray | Nahoru | cpdf_setlinejoin


cpdf_setlinejoin

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_setlinejoin -- Sets linejoin parameter

Description

bool cpdf_setlinejoin ( int pdf_document, int value)

The cpdf_setlinejoin() function set the linejoin parameter between a value of 0 and 2. 0 = miter, 1 = round, 2 = bevel. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
cpdf_setlinecap | Nahoru | cpdf_setlinewidth


cpdf_setlinewidth

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_setlinewidth -- Sets line width

Description

bool cpdf_setlinewidth ( int pdf_document, float width)

The cpdf_setlinewidth() function set the line width to width. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
cpdf_setlinejoin | Nahoru | cpdf_setmiterlimit


cpdf_setmiterlimit

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_setmiterlimit -- Sets miter limit

Description

bool cpdf_setmiterlimit ( int pdf_document, float value)

The cpdf_setmiterlimit() function set the miter limit to a value greater or equal than 1. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
cpdf_setlinewidth | Nahoru | cpdf_setrgbcolor_fill


cpdf_setrgbcolor_fill

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_setrgbcolor_fill -- Sets filling color to rgb color value

Description

bool cpdf_setrgbcolor_fill ( int pdf_document, float red_value, float green_value, float blue_value)

The cpdf_setrgbcolor_fill() function sets the current rgb color value to fill a path. Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: The values are expected to be floating point values between 0.0 and 1.0. (i.e black is (0.0, 0.0, 0.0) and white is (1.0, 1.0, 1.0)).

See also cpdf_setrgbcolor_stroke() and cpdf_setrgbcolor().

Předcházející | Domů | Další
cpdf_setmiterlimit | Nahoru | cpdf_setrgbcolor_stroke


cpdf_setrgbcolor_stroke

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_setrgbcolor_stroke -- Sets drawing color to rgb color value

Description

bool cpdf_setrgbcolor_stroke ( int pdf_document, float red_value, float green_value, float blue_value)

The cpdf_setrgbcolor_stroke() function sets the current drawing color to the given rgb color value. Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: The values are expected to be floating point values between 0.0 and 1.0. (i.e black is (0.0, 0.0, 0.0) and white is (1.0, 1.0, 1.0)).

See also cpdf_setrgbcolor_fill() and cpdf_setrgbcolor().

Předcházející | Domů | Další
cpdf_setrgbcolor_fill | Nahoru | cpdf_setrgbcolor


cpdf_setrgbcolor

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_setrgbcolor -- Sets drawing and filling color to rgb color value

Description

bool cpdf_setrgbcolor ( int pdf_document, float red_value, float green_value, float blue_value)

The cpdf_setrgbcolor() function sets the current drawing and filling color to the given rgb color value. Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: The values are expected to be floating point values between 0.0 and 1.0. (i.e black is (0.0, 0.0, 0.0) and white is (1.0, 1.0, 1.0)).

See also cpdf_setrgbcolor_stroke() and cpdf_setrgbcolor_fill().

Předcházející | Domů | Další
cpdf_setrgbcolor_stroke | Nahoru | cpdf_show_xy


cpdf_show_xy

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_show_xy -- Output text at position

Description

bool cpdf_show_xy ( int pdf_document, string text, float x-coor, float y-coor [, int mode])

The cpdf_show_xy() function outputs the string text at position with coordinates (x-coor, y-coor). Vrací TRUE při úspěchu, FALSE při selhání.

Nepovinný parametr mode určuje délku jednotky. Když je nastaven na 0 nebo není uveden, je použita výchozí jednotka stránky. Jinak jsou souřadnice měřeny v bodech PostScript bez ohledu na aktuální jednotku.

Poznámka: The function cpdf_show_xy() is identical to cpdf_text() without the optional parameters.

See also cpdf_text().

Předcházející | Domů | Další
cpdf_setrgbcolor | Nahoru | cpdf_show


cpdf_show

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_show -- Output text at current position

Description

bool cpdf_show ( int pdf_document, string text)

The cpdf_show() function outputs the string in text at the current position. Vrací TRUE při úspěchu, FALSE při selhání.

See also cpdf_text(),
cpdf_begin_text() and
cpdf_end_text().

Předcházející | Domů | Další
cpdf_show_xy | Nahoru | cpdf_stringwidth


cpdf_stringwidth

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_stringwidth -- Returns width of text in current font

Description

float cpdf_stringwidth ( int pdf_document, string text)

The cpdf_stringwidth() function returns the width of the string in text. It requires a font to be set before.

See also cpdf_set_font().

Předcházející | Domů | Další
cpdf_show | Nahoru | cpdf_stroke


cpdf_stroke

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_stroke -- Draw line along path

Description

bool cpdf_stroke ( int pdf_document)

The cpdf_stroke() function draws a line along current path. Vrací TRUE při úspěchu, FALSE při selhání.

See also cpdf_closepath() and cpdf_closepath_stroke().

Předcházející | Domů | Další
cpdf_stringwidth | Nahoru | cpdf_text


cpdf_text

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_text -- Output text with parameters

Description

bool cpdf_text ( int pdf_document, string text, float x-coor, float y-coor [, int mode [, float orientation [, int alignmode]]])

The cpdf_text() function outputs the string text at position with coordinates (x-coor, y-coor). Vrací TRUE při úspěchu, FALSE při selhání.

Nepovinný parametr mode určuje délku jednotky. Když je nastaven na 0 nebo není uveden, je použita výchozí jednotka stránky. Jinak jsou souřadnice měřeny v bodech PostScript bez ohledu na aktuální jednotku.

The optional parameter orientation is the rotation of the text in degree.

The optional parameter alignmode determines how the text is aligned.

See the ClibPDF documentation for possible values.

See also cpdf_show_xy().

Předcházející | Domů | Další
cpdf_stroke | Nahoru | cpdf_translate


cpdf_translate

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

cpdf_translate -- Sets origin of coordinate system

Description

bool cpdf_translate ( int pdf_document, float x-coor, float y-coor [, int mode])

The cpdf_translate() function set the origin of coordinate system to the point (x-coor, y-coor). Vrací TRUE při úspěchu, FALSE při selhání.

Nepovinný parametr mode určuje délku jednotky. Když je nastaven na 0 nebo není uveden, je použita výchozí jednotka stránky. Jinak jsou souřadnice měřeny v bodech PostScript bez ohledu na aktuální jednotku.

Předcházející | Domů | Další
cpdf_text | Nahoru | Crack Functions


Crack Functions

Manuál PHP
Předcházející Další

XI. Crack Functions

Úvod

These functions allow you to use the CrackLib library to test the 'strength' of a password. The 'strength' of a password is tested by that checks length, use of upper and lower case and checked against the specified CrackLib dictionary. CrackLib will also give helpful diagnostic messages that will help 'strengthen' the password.

Poznámka: Toto rozšíření bylo odstraněno podle PHP 5 a přesunuto do repozitáře PECL.

Požadavky

More information regarding CrackLib along with the library can be found at http://www.crypticide.org/users/alecm/.

Instalace

In order to use these functions, you must compile PHP with Crack support by using the --with-crack[=DIR] option.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 1. Crack configuration options

Name | Default | Changeable
crack.default_dictionary | NULL | PHP_INI_SYSTEM
For further details and definition of the PHP_INI_* constants see ini_set().

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Příklady

This example shows how to open a CrackLib dictionary, test a given password, retrieve any diagnostic messages, and close the dictionary.

Příklad 1. CrackLib example

<?php
// Open CrackLib Dictionary
$dictionary = crack_opendict('/usr/local/lib/pw_dict')
     or die('Unable to open CrackLib dictionary');

// Perform password check
$check = crack_check($dictionary, 'gx9A2s0x');

// Retrieve messages
$diag = crack_getlastmessage();
echo $diag; // 'strong password'

// Close dictionary
crack_closedict($dictionary);
?>

Poznámka: If crack_check() returns TRUE, crack_getlastmessage() will return 'strong password'.

Obsah
crack_check -- Performs an obscure check with the given password
crack_closedict -- Closes an open CrackLib dictionary
crack_getlastmessage -- Returns the message from the last obscure check
crack_opendict -- Opens a new CrackLib dictionary

Předcházející | Domů | Další
cpdf_translate | Nahoru | crack_check


crack_check

(PHP 4 >= 4.0.5)

crack_check -- Performs an obscure check with the given password

Description

bool crack_check ( [resource dictionary, string password])

Returns TRUE if password is strong, or FALSE otherwise.

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

crack_check() performs an obscure check with the given password on the specified dictionary . If dictionary is not specified, the last opened dictionary is used.

Předcházející | Domů | Další
Crack Functions | Nahoru | crack_closedict


crack_closedict

(PHP 4 >= 4.0.5)

crack_closedict -- Closes an open CrackLib dictionary

Description

bool crack_closedict ( [resource dictionary])

Vrací TRUE při úspěchu, FALSE při selhání.

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

crack_closedict() closes the specified dictionary identifier. If dictionary is not specified, the current dictionary is closed.

Předcházející | Domů | Další
crack_check | Nahoru | crack_getlastmessage


crack_getlastmessage

(PHP 4 >= 4.0.5)

crack_getlastmessage -- Returns the message from the last obscure check

Description

string crack_getlastmessage ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

crack_getlastmessage() returns the message from the last obscure check.

Předcházející | Domů | Další
crack_closedict | Nahoru | crack_opendict


crack_opendict

(PHP 4 >= 4.0.5)

crack_opendict -- Opens a new CrackLib dictionary

Description

resource crack_opendict ( string dictionary)

Returns a dictionary resource identifier on success, or FALSE on failure.

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

crack_opendict() opens the specified CrackLib dictionary for use with crack_check().

Poznámka: Only one dictionary may be open at a time.

See also: crack_check(), and crack_closedict().

Předcházející | Domů | Další
crack_getlastmessage | Nahoru | Funkce pro práci s CURL, Client URL Library


Funkce pro práci s CURL, Client URL Library

Manuál PHP
Předcházející Další

XII. Funkce pro práci s CURL, Client URL Library

Úvod

PHP podporuje libcurl, knihovnu vytvořenou Danielem Stenbergem, která umožňuje spojení a komunikaci s mnoha různými typy serverů v mnoha různých typech protokolů. libcurl v současné době podporuje http, https, ftp, gopher, telnet, dict, file a ldap protokoly. libcurl také podporuje HTTPS certifikáty, HTTP POST, HTTP PUT, FTP uploady (toto umožňuje i ftp extenze PHP), HTTP formulářové uploady, proxy, cookies a user+password autentikaci.

Tyto funkce byly přidány v PHP 4.0.2.

Požadavky

Pokud chcete používat CURL funkce, musíte nainstalovat CURL. PHP vyžaduje použití CURL 7.0.2-beta nebo vyšší. S verzemi CURL staršími než 7.0.2-beta PHP nebude pracovat. V PHP 4.2.3 budete potřebovat CURL 7.9.0 nebo vyšší. Od PHP 4.3.0 budete potřebovat CURL 7.9.8 nebo vyšší. PHP 5.0.0 bude nejspíš potřebovat CURL verze větší než 7.10.5

Instalace

Dále musíte PHP zkompilovat s volbou --with-curl[=DIR], kde DIR je umístění adresáře obsahujícího lib a include adresáře. V "include" adresáři by měl být adresář pojmenovaný "curl", který by měl obsahovat soubory easy.h and curl.h. V adresáři "lib" by měl být soubor pojmenovaný "libcurl.a". Počínaje PHP 4.3.0 můžete PHP nakonfigurovat tak, aby požívalo CURL pro url-streamy pomocí direktivy --with-curlwrappers.

Poznámka pro Win32 uživatele: Pro zajištění funkce tohoto rozšíření ve Windows musíte zkopírovat knihovny libeay32.dll a ssleay32.dll z adresáře DLL distribuce PHP/Win32 do adresáře SYSTEM. (Např.: C:\WINNT\SYSTEM32 or C:\WINDOWS\SYSTEM)

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

CURLOPT_PORT (integer)

CURLOPT_FILE (integer)

CURLOPT_INFILE (integer)

CURLOPT_INFILESIZE (integer)

CURLOPT_URL (integer)

CURLOPT_PROXY (integer)

CURLOPT_VERBOSE (integer)

CURLOPT_HEADER (integer)

CURLOPT_HTTPHEADER (integer)

CURLOPT_NOPROGRESS (integer)

CURLOPT_NOBODY (integer)

CURLOPT_FAILONERROR (integer)

CURLOPT_UPLOAD (integer)

CURLOPT_POST (integer)

CURLOPT_FTPLISTONLY (integer)

CURLOPT_FTPAPPEND (integer)

CURLOPT_NETRC (integer)

CURLOPT_FOLLOWLOCATION (integer)

CURLOPT_FTPASCII (integer)

CURLOPT_PUT (integer)

CURLOPT_MUTE (integer)

CURLOPT_USERPWD (integer)

CURLOPT_PROXYUSERPWD (integer)

CURLOPT_RANGE (integer)

CURLOPT_TIMEOUT (integer)

CURLOPT_POSTFIELDS (integer)

CURLOPT_REFERER (integer)

CURLOPT_USERAGENT (integer)

CURLOPT_FTPPORT (integer)

CURLOPT_LOW_SPEED_LIMIT (integer)

CURLOPT_LOW_SPEED_TIME (integer)

CURLOPT_RESUME_FROM (integer)

CURLOPT_COOKIE (integer)

CURLOPT_SSLCERT (integer)

CURLOPT_SSLCERTPASSWD (integer)

CURLOPT_WRITEHEADER (integer)

CURLOPT_SSL_VERIFYHOST (integer)

CURLOPT_COOKIEFILE (integer)

CURLOPT_SSLVERSION (integer)

CURLOPT_TIMECONDITION (integer)

CURLOPT_TIMEVALUE (integer)

CURLOPT_CUSTOMREQUEST (integer)

CURLOPT_STDERR (integer)

CURLOPT_TRANSFERTEXT (integer)

CURLOPT_RETURNTRANSFER (integer)

CURLOPT_QUOTE (integer)

CURLOPT_POSTQUOTE (integer)

CURLOPT_INTERFACE (integer)

CURLOPT_KRB4LEVEL (integer)

CURLOPT_HTTPPROXYTUNNEL (integer)

CURLOPT_FILETIME (integer)

CURLOPT_WRITEFUNCTION (integer)

CURLOPT_READFUNCTION (integer)

CURLOPT_PASSWDFUNCTION (integer)

CURLOPT_HEADERFUNCTION (integer)

CURLOPT_MAXREDIRS (integer)

CURLOPT_MAXCONNECTS (integer)

CURLOPT_CLOSEPOLICY (integer)

CURLOPT_FRESH_CONNECT (integer)

CURLOPT_FORBID_REUSE (integer)

CURLOPT_RANDOM_FILE (integer)

CURLOPT_EGDSOCKET (integer)

CURLOPT_CONNECTTIMEOUT (integer)

CURLOPT_SSL_VERIFYPEER (integer)

CURLOPT_CAINFO (integer)

CURLOPT_COOKIEJAR (integer)

CURLOPT_SSL_CIPHER_LIST (integer)

CURLOPT_BINARYTRANSFER (integer)

CURLCLOSEPOLICY_LEAST_RECENTLY_USED (integer)

CURLCLOSEPOLICY_LEAST_TRAFFIC (integer)

CURLCLOSEPOLICY_SLOWEST (integer)

CURLCLOSEPOLICY_CALLBACK (integer)

CURLCLOSEPOLICY_OLDEST (integer)

CURLINFO_EFFECTIVE_URL (integer)

CURLINFO_HTTP_CODE (integer)

CURLINFO_HEADER_SIZE (integer)

CURLINFO_REQUEST_SIZE (integer)

CURLINFO_TOTAL_TIME (integer)

CURLINFO_NAMELOOKUP_TIME (integer)

CURLINFO_CONNECT_TIME (integer)

CURLINFO_PRETRANSFER_TIME (integer)

CURLINFO_SIZE_UPLOAD (integer)

CURLINFO_SIZE_DOWNLOAD (integer)

CURLINFO_SPEED_DOWNLOAD (integer)

CURLINFO_SPEED_UPLOAD (integer)

CURLINFO_FILETIME (integer)

CURLINFO_SSL_VERIFYRESULT (integer)

CURLINFO_CONTENT_LENGTH_DOWNLOAD (integer)

CURLINFO_CONTENT_LENGTH_UPLOAD (integer)

CURLE_OK (integer)

CURLE_UNSUPPORTED_PROTOCOL (integer)

CURLE_FAILED_INIT (integer)

CURLE_URL_MALFORMAT (integer)

CURLE_URL_MALFORMAT_USER (integer)

CURLE_COULDNT_RESOLVE_PROXY (integer)

CURLE_COULDNT_RESOLVE_HOST (integer)

CURLE_COULDNT_CONNECT (integer)

CURLE_FTP_WEIRD_SERVER_REPLY (integer)

CURLE_FTP_ACCESS_DENIED (integer)

CURLE_FTP_USER_PASSWORD_INCORRECT (integer)

CURLE_FTP_WEIRD_PASS_REPLY (integer)

CURLE_FTP_WEIRD_USER_REPLY (integer)

CURLE_FTP_WEIRD_PASV_REPLY (integer)

CURLE_FTP_WEIRD_227_FORMAT (integer)

CURLE_FTP_CANT_GET_HOST (integer)

CURLE_FTP_CANT_RECONNECT (integer)

CURLE_FTP_COULDNT_SET_BINARY (integer)

CURLE_PARTIAL_FILE (integer)

CURLE_FTP_COULDNT_RETR_FILE (integer)

CURLE_FTP_WRITE_ERROR (integer)

CURLE_FTP_QUOTE_ERROR (integer)

CURLE_HTTP_NOT_FOUND (integer)

CURLE_WRITE_ERROR (integer)

CURLE_MALFORMAT_USER (integer)

CURLE_FTP_COULDNT_STOR_FILE (integer)

CURLE_READ_ERROR (integer)

CURLE_OUT_OF_MEMORY (integer)

CURLE_OPERATION_TIMEOUTED (integer)

CURLE_FTP_COULDNT_SET_ASCII (integer)

CURLE_FTP_PORT_FAILED (integer)

CURLE_FTP_COULDNT_USE_REST (integer)

CURLE_FTP_COULDNT_GET_SIZE (integer)

CURLE_HTTP_RANGE_ERROR (integer)

CURLE_HTTP_POST_ERROR (integer)

CURLE_SSL_CONNECT_ERROR (integer)

CURLE_FTP_BAD_DOWNLOAD_RESUME (integer)

CURLE_FILE_COULDNT_READ_FILE (integer)

CURLE_LDAP_CANNOT_BIND (integer)

CURLE_LDAP_SEARCH_FAILED (integer)

CURLE_LIBRARY_NOT_FOUND (integer)

CURLE_FUNCTION_NOT_FOUND (integer)

CURLE_ABORTED_BY_CALLBACK (integer)

CURLE_BAD_FUNCTION_ARGUMENT (integer)

CURLE_BAD_CALLING_ORDER (integer)

CURLE_HTTP_PORT_FAILED (integer)

CURLE_BAD_PASSWORD_ENTERED (integer)

CURLE_TOO_MANY_REDIRECTS (integer)

CURLE_UNKNOWN_TELNET_OPTION (integer)

CURLE_TELNET_OPTION_SYNTAX (integer)

CURLE_OBSOLETE (integer)

CURLE_SSL_PEER_CERTIFICATE (integer)

Příklady

Pokud máte PHP zkompilované s podporou CURL, můžete začít používat CURL funkce. Základní principem těchto funkcí je, že pomocí curl_init() inicializujete CURL session, potom pomocí curl_exec() nastavíte hodnoty přenosu a nakonec session zavřete pomocí curl_close(). Následuje ukázka, která využíva CURL funkce ke stažení homepage PHP do souboru:

Příklad 1. Použití CURL extenze ke stažení homepage PHP

<?php

$ch = curl_init ("http://www.example.com/");
$fp = fopen ("example_homepage.txt", "w");

curl_setopt ($ch, CURLOPT_FILE, $fp);
curl_setopt ($ch, CURLOPT_HEADER, 0);

curl_exec ($ch);
curl_close ($ch);
fclose ($fp);
?>

Obsah
curl_close -- Zavřít CURL session
curl_errno -- Return the last error number
curl_error -- Return a string containing the last error for the current session
curl_exec -- Provést CURL session
curl_getinfo -- Get information regarding a specific transfer
curl_init -- Inicializovat CURL session
curl_multi_add_handle -- Add a normal cURL handle to a cURL multi handle
curl_multi_close -- Close a set of cURL handles
curl_multi_exec -- Run the sub-connections of the current cURL handle
curl_multi_getcontent -- Return the content of a cURL handle if CURLOPT_RETURNTRANSFER is set
curl_multi_info_read -- Get information about the current transfers
curl_multi_init -- Returns a new cURL multi handle
curl_multi_remove_handle -- Remove a multi handle from a set of cURL handles
curl_multi_select -- Get all the sockets associated with the cURL extension, which can then be "selected"
curl_setopt -- Nastavit parametr CURL transferu
curl_version -- Vrátit verzi CURL

Předcházející | Domů | Další
crack_opendict | Nahoru | curl_close


curl_close

(PHP 4 >= 4.0.2, PHP 5)

curl_close -- Zavřít CURL session

Popis

void curl_close ( int ch)

Tato funkce zavře CURL session a uvolní všechny zdroje. CURL handle, ch, se také smaže.

Předcházející | Domů | Další
Funkce pro práci s CURL, Client URL Library | Nahoru | curl_errno


curl_errno

(PHP 4 >= 4.0.3, PHP 5)

curl_errno -- Return the last error number

Description

int curl_errno ( resource ch)

Returns the error number for the last cURL operation on the resource ch, or 0 (zero) if no error occurred.

See also curl_error().

Předcházející | Domů | Další
curl_close | Nahoru | curl_error


curl_error

(PHP 4 >= 4.0.3, PHP 5)

curl_error -- Return a string containing the last error for the current session

Description

string curl_error ( resource ch)

Returns a clear text error message for the last cURL operation on the resource ch, or '' (the empty string) if no error occurred.

See also curl_errno().

Předcházející | Domů | Další
curl_errno | Nahoru | curl_exec


curl_exec

(PHP 4 >= 4.0.2, PHP 5)

curl_exec -- Provést CURL session

Popis

bool curl_exec ( int ch)

Tuto funkci byste měli zavolat po inicializaci CURL session a nastavení všech jejích parametrů. Jejím účelem je provést předdefinovanou CURL session (určenou argumentem ch).

Předcházející | Domů | Další
curl_error | Nahoru | curl_getinfo


curl_getinfo

(PHP 4 >= 4.0.4, PHP 5)

curl_getinfo -- Get information regarding a specific transfer

Description

string curl_getinfo ( resource ch [, int opt])

Returns information about the last transfer, opt may be one of the following:

  • "CURLINFO_EFFECTIVE_URL" - Last effective URL

  • "CURLINFO_HTTP_CODE" - Last received HTTP code

  • "CURLINFO_FILETIME" - Remote time of the retrieved document, if -1 is returned the time of the document is unknown

  • "CURLINFO_TOTAL_TIME" - Total transaction time in seconds for last transfer

  • "CURLINFO_NAMELOOKUP_TIME" - Time in seconds until name resolving was complete

  • "CURLINFO_CONNECT_TIME" - Time in seconds it took to establish the connection

  • "CURLINFO_PRETRANSFER_TIME" - Time in seconds from start until just before file transfer begins

  • "CURLINFO_STARTTRANSFER_TIME" - Time in seconds until the first byte is about to be transferred

  • "CURLINFO_REDIRECT_TIME" - Time in seconds of all redirection steps before final transaction was started

  • "CURLINFO_SIZE_UPLOAD" - Total number of bytes uploaded

  • "CURLINFO_SIZE_DOWNLOAD" - Total number of bytes downloaded

  • "CURLINFO_SPEED_DOWNLOAD" - Average download speed

  • "CURLINFO_SPEED_UPLOAD" - Average upload speed

  • "CURLINFO_HEADER_SIZE" - Total size of all headers received

  • "CURLINFO_REQUEST_SIZE" - Total size of issued requests, currently only for HTTP requests

  • "CURLINFO_SSL_VERIFYRESULT" - Result of SSL certification verification requested by setting CURLOPT_SSL_VERIFYPEER

  • "CURLINFO_CONTENT_LENGTH_DOWNLOAD" - content-length of download, read from Content-Length: field

  • "CURLINFO_CONTENT_LENGTH_UPLOAD" - Specified size of upload

  • "CURLINFO_CONTENT_TYPE" - Content-type of downloaded object, NULL indicates server did not send valid Content-Type: header

If called without the optional parameter opt an associative array is returned with the following array elements which correspond to opt options:

  • "url"

  • "content_type"

  • "http_encode"

  • "header_size"

  • "request_size"

  • "filetime"

  • "ssl_verify_result"

  • "redirect_count"

  • "total_time"

  • "namelookup_time"

  • "connect_time"

  • "pretransfer_time"

  • "size_upload"

  • "size_download"

  • "speed_download"

  • "speed_upload"

  • "download_content_length"

  • "upload_content_length"

  • "starttransfer_time"

  • "redirect_time"

Předcházející | Domů | Další
curl_exec | Nahoru | curl_init


curl_init

(PHP 4 >= 4.0.2, PHP 5)

curl_init -- Inicializovat CURL session

Popis

int curl_init ( [string url])

curl_init() inicializuje novou session a vrací CURL handle pro použití s funkcemi curl_setopt(), curl_exec() a curl_close(). Pokud je přítomen volitelný argument url, CURLOPT_URL se nastaví na hodnotu tohoto argumentu. Můžete to udělat i ručně, pomocí funkce curl_setopt().

Příklad 1. Inicializace nové CURL session a stažení webové stránky

<?php
$ch = curl_init();

curl_setopt ($ch, CURLOPT_URL, "http://www.zend.com/");
curl_setopt ($ch, CURLOPT_HEADER, 0);

curl_exec ($ch);

curl_close ($ch);
?>

Viz také: curl_close(), curl_setopt()

Předcházející | Domů | Další
curl_getinfo | Nahoru | curl_multi_add_handle


curl_multi_add_handle

(PHP 5)

curl_multi_add_handle -- Add a normal cURL handle to a cURL multi handle

Description

int curl_multi_add_handle ( resource mh, resource ch)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

See also
curl_multi_init(),
curl_init(), and
curl_multi_remove_handle().

Předcházející | Domů | Další
curl_init | Nahoru | curl_multi_close


curl_multi_close

(PHP 5)

curl_multi_close -- Close a set of cURL handles

Description

void curl_multi_close ( resource mh)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

See also curl_multi_init() and curl_close().

Předcházející | Domů | Další
curl_multi_add_handle | Nahoru | curl_multi_exec


curl_multi_exec

(PHP 5)

curl_multi_exec -- Run the sub-connections of the current cURL handle

Description

int curl_multi_exec ( resource mh)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

See also curl_multi_init() and curl_exec().

Předcházející | Domů | Další
curl_multi_close | Nahoru | curl_multi_getcontent


curl_multi_getcontent

(PHP 5)

curl_multi_getcontent -- Return the content of a cURL handle if CURLOPT_RETURNTRANSFER is set

Description

string curl_multi_getcontent ( resource ch)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

See also curl_multi_init().

Předcházející | Domů | Další
curl_multi_exec | Nahoru | curl_multi_info_read


curl_multi_info_read

(PHP 5)

curl_multi_info_read -- Get information about the current transfers

Description

array curl_multi_info_read ( resource mh)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

See also curl_multi_init().

Předcházející | Domů | Další
curl_multi_getcontent | Nahoru | curl_multi_init


curl_multi_init

(PHP 5)

curl_multi_init -- Returns a new cURL multi handle

Description

resource curl_multi_init ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

See also curl_init() and curl_multi_close().

Předcházející | Domů | Další
curl_multi_info_read | Nahoru | curl_multi_remove_handle


curl_multi_remove_handle

(PHP 5)

curl_multi_remove_handle -- Remove a multi handle from a set of cURL handles

Description

int curl_multi_remove_handle ( resource mh, resource ch)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

See also
curl_multi_init(),
curl_init(), and
curl_multi_add_handle().

Předcházející | Domů | Další
curl_multi_init | Nahoru | curl_multi_select


curl_multi_select

(PHP 5)

curl_multi_select -- Get all the sockets associated with the cURL extension, which can then be "selected"

Description

int curl_multi_select ( resource mh [, float timeout])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

See also curl_multi_init().

Předcházející | Domů | Další
curl_multi_remove_handle | Nahoru | curl_setopt


curl_setopt

(PHP 4 >= 4.0.2, PHP 5)

curl_setopt -- Nastavit parametr CURL transferu

Popis

bool curl_setopt ( int ch, string option, mixed value)

curl_setopt() nastavuje parametry CURL session ch. option je parametr, který chcete nastavit a value je hodnota, na kterou se má option nastavit.

Argument value by měl u následujících hodnot argumentu option obsahovat integer:

  • CURLOPT_INFILESIZE: Tento parametr by měl u uploadů obsahovat velikost uploadovaného souboru.

  • CURLOPT_VERBOSE: Pokud chcete, aby CURL podávala zprávy o všem co se děje, nastavte tento parametr na nenulovou hodnotu.

  • CURLOPT_HEADER: Pokud chcete, aby výstup obsahoval hlavičky, nastavte tento parametr na nenulovou hodnotu.

  • CURLOPT_NOPROGRESS: Pokud PHP nemá zobrazit měřidlo postupu CURL transferu, nastavte tento parametr na nenulovou hodnotu.

    Poznámka: PHP tento parametr automaticky nastavuje na nenulovou hodnotu, změna je vhodná pouze pro účely ladění.

  • CURLOPT_NOBODY: Pokud nechete, aby bylo ve výstupu zahrnuto tělo výstupu, nastavte tento parametr na nenulovou hodnotu.

  • CURLOPT_FAILONERROR: Pokud má PHP tiše ukončit transfer po přijetí HTTP server kódu většího než 300, nastavte tento parametr na nenulovou hodnotu. Defaultní chování je ignorovat návratový kód a normálně vrátit stránku.

  • CURLOPT_UPLOAD: Pokud chcete PHP připravit na upload, nastavte tento parametr na nenulovou hodnotu.

  • CURLOPT_POST: Pokud chcete, aby PHP provedl běžný HTTP POST pořadavek, nastavte tento parametr na nenulovou hodnotu. Jedná se o běžný application/x-www-from-urlencoded POST požadavek, který se většinou používá u HTML formulářů.

  • CURLOPT_FTPLISTONLY: Pokud chcete, aby PHP vypsalo názvy souborů v FTP adresáři, nastavte tento parametr na nenulovou hodnotu.

  • CURLOPT_FTPAPPEND: Pokud chcete, aby PHP místo přepsání vzdáleného souboru připojilo upload k jeho obsahu, nastavte tento parametr na nenulovou hodnotu.

  • CURLOPT_NETRC: Pokud má PHP ve vašem ~./netrc souboru hledat vaše uživatelské jméno a heslo pro server ke kterému se připojujete.

  • CURLOPT_FOLLOWLOCATION: Pokud má PHP provádět přesměrování u případných "Location: " hlaviček vrácených serverem. (Pozn.: rekurzivní, PHP provede přesměrování pro všechny "Location: " hlavičky, které přijme.)

  • CURLOPT_PUT: Pokud chcete uploadovat soubor pomocí HTTP metody PUT, nastavte tento parametr na nenulovou hodnotu. Uploadovaný soubor musí být určen parametry CURLOPT_INFILE a CURLOPT_INFILESIZE.

  • CURLOPT_MUTE: Pokud má být PHP naprosto tiché ohledně CURL funkcí, nastavte tento parametr na nenulovou hodnotu.

  • CURLOPT_TIMEOUT: Integer určující maximální čas ve vteřinách, který mohou CURL funkce zabrat.

  • CURLOPT_LOW_SPEED_LIMIT: Integer určující minimální rychlost přenosu v bytech za sekundu. Pokud rychlost přenosu klesne pod tento limit po dobu CURLOPT_LOW_SPEED_TIME sekund, PHP ukončí transfer.

  • CURLOPT_LOW_SPEED_TIME: Integer určující čas ve vteřinách. Pokud rychlost přenosu klesne na tuto dobu pod CURLOPT_LOW_SPEED_LIMIT, PHP zruší transfer.

  • CURLOPT_RESUME_FROM: Integer určující offset v bytech, na kterém má transfer začít.

  • CURLOPT_SSLVERSION: Integer určující, jaká verze SSL (2 nebo 3) se má použít. Defaultně se PHP pokusí určit verzi samo, ale v některých případech je nutno verzi určit manuálně.

  • CURLOPT_TIMECONDITION: Definující chování CURLOPT_TIMEVALUE. Tento parametr může nabýt buď hodnoty TIMECOND_IFMODSINCE nebo TIMECOND_ISUNMODSINCE. Funguje pouze u HTTP přenosů.

  • CURLOPT_TIMEVALUE: Integer určující počet vteřin od 1. ledna 1970. Tento čas se použije podle intervalu CURLOPT_TIMEVALUE, default je použití TIMECOND_IFMODSINCE.

Argument value by měl u následujících hodnot argumentu option obsahovat řetězec:

  • CURLOPT_URL: Toto je URL, kterou má PHP stáhnout. Tento parametr můžete také nastavit při inicializaci CURL session pomocí funkce curl_init().

  • CURLOPT_USERPWD: Řetězec ve tvaru [username]:[password] pro použití při spojení.

  • CURLOPT_PROXYUSERPWD: Řetězec ve tvaru [username]:[password] pro použití při spojení s HTTP proxy.

  • CURLOPT_RANGE: Pass the specified range you want. It should be in the "X-Y" format, where X or Y may be left out. The HTTP transfers also support several intervals, seperated with commas as in X-Y,N-M.

  • CURLOPT_POSTFIELDS: Řetězec obsahující kompletní data, která se mají odeslat v HTTP POST požadavku.

  • CURLOPT_REFERER: Řetězec obsahující "referer" hlavičku pro použití v HTTP požadavku.

  • CURLOPT_USERAGENT: Řetězec obsahující "user-agent" hlavičku pro použití v HTTP požadavku.

  • CURLOPT_FTPPORT: Řetězec, na jehož základě se získá IP adresa pro FTP "POST" instrukci. POST instrukce říká serveru, aby se připojil na danou IP adresu. Tento řetězec může obsahovat IP adresu, hostname, a network interface name (under UNIX) nebo '-' (použije se defaultní IP adresa systému).

  • CURLOPT_COOKIE: Řetězec obsahující cookie, který se má poslat v HTTP hlavičce tohoto přenosu.

  • CURLOPT_SSLCERT: Řetězec obsahující název souboru PEM certifikátu.

  • CURLOPT_SSLCERTPASSWD: Řetězec obsahující heslo vyžadované pro použití CURLOPT_SSLCERT certifikátu.

  • CURLOPT_COOKIEFILE: Řetězec obsahující název souboru obsahujícího cookie data. Cookie soubor může být buď v Netscape formátu nebo obsahovat HTTP hlavičky.

  • CURLOPT_CUSTOMREQUEST: Řetězec, který se má v HTTP požadavku použít místo GET nebo HEAD. Toto je užitečné při DELETE či jiných, obskurnějších HTTP požadavcích.

    Poznámka: Používejte pouze v případě, že váš server tento příkaz podporuje.

Následující parametry očekávají deskriptor vrácený funkcí fopen():

  • CURLOPT_FILE: Soubor, do kterého se má umístit výstup CURL transferu. Default je STDOUT.

  • CURLOPT_INFILE: Soubor, který obsahuje vstup CURL transferu.

  • CURLOPT_WRITEHEADER: Soubor, do kterého se mají zapsat hlavičky výstupu.

  • CURLOPT_STDERR: Soubor, do kterého se mají zapisovat chyby místo na STDERR.

Předcházející | Domů | Další
curl_multi_select | Nahoru | curl_version


curl_version

(PHP 4 >= 4.0.2, PHP 5)

curl_version -- Vrátit verzi CURL

Popis

string curl_version ( void )

curl_version() vrací řetězec obsahující použitou verzi CURL.

Předcházející | Domů | Další
curl_setopt | Nahoru | Cybercash platební funkce


Cybercash platební funkce

Manuál PHP
Předcházející Další

XIII. Cybercash platební funkce

Instalace

Tyto funkce jsou dostupné pouze pokud bylo PHP zkompilováno s volbou --with-cybercash=[DIR].

Tyto funkce byly v PHP 4.3.0 přesunuty do depozitíře PECL.

Pokud máte dotazy k poslednímu stavu knihovny CyberCash, pomůže vám odkaz CyberCash Faq. Ve zkratce lze říci, že CyberCash byl uveden firmou VeriSign a i když služby CyberCash nadále existují, VeriSign doporučuje uživatelům přechod. Pro bližší informace viz FAQ a odkaz na PECL.

Obsah
cybercash_base64_decode -- base64 decode data for Cybercash
cybercash_base64_encode -- base64 encode data for Cybercash
cybercash_decr -- Cybercash dešifrování
cybercash_encr -- Cybercash zašifrování

Předcházející | Domů | Další
curl_version | Nahoru | cybercash_base64_decode


cybercash_base64_decode

(PHP 4 <= 4.2.3)

cybercash_base64_decode -- base64 decode data for Cybercash

Description

string cybercash_base64_decode ( string inbuff)

Předcházející | Domů | Další
Cybercash platební funkce | Nahoru | cybercash_base64_encode


cybercash_base64_encode

(PHP 4 <= 4.2.3)

cybercash_base64_encode -- base64 encode data for Cybercash

Description

string cybercash_base64_encode ( string inbuff)

Předcházející | Domů | Další
cybercash_base64_decode | Nahoru | cybercash_decr


cybercash_decr

(PHP 4 <= 4.2.3)

cybercash_decr -- Cybercash dešifrování

Popis

array cybercash_decr ( string wmk, string sk, string inbuff)

Tato funkce vrací asociativní pole s elementem "errcode", a pokud je "errcode" FALSE, "outbuff" (string), tak "outLth" (long) a "macbuff" (string).

Předcházející | Domů | Další
cybercash_base64_encode | Nahoru | cybercash_encr


cybercash_encr

(PHP 4 <= 4.2.3)

cybercash_encr -- Cybercash zašifrování

Popis

array cybercash_encr ( string wmk, string sk, string inbuff)

Tato funkce vrací asociativní pole s elementem "errcode", a pokud je "errcode" FALSE, tak "outbuff" (string), "outLth" (long) and "macbuff" (string).

Předcházející | Domů | Další
cybercash_decr | Nahoru | Cyrus IMAP administration Functions


Cyrus IMAP administration Functions

Manuál PHP
Předcházející Další

XIV. Cyrus IMAP administration Functions

Úvod

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Poznámka: Toto rozšíření není k dispozici na platformách Windows.

Instalace

To enable Cyrus IMAP support and to use these functions you have to compile PHP with the --with-cyrus option.

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

CYRUS_CONN_NONSYNCLITERAL (integer)

CYRUS_CONN_INITIALRESPONSE (integer)

CYRUS_CALLBACK_NUMBERED (integer)

CYRUS_CALLBACK_NOLITERAL (integer)

Obsah
cyrus_authenticate -- Authenticate against a Cyrus IMAP server
cyrus_bind -- Bind callbacks to a Cyrus IMAP connection
cyrus_close -- Close connection to a Cyrus IMAP server
cyrus_connect -- Connect to a Cyrus IMAP server
cyrus_query -- Send a query to a Cyrus IMAP server
cyrus_unbind -- Unbind ...

Předcházející | Domů | Další
cybercash_encr | Nahoru | cyrus_authenticate


cyrus_authenticate

(PHP 4 >= 4.1.0)

cyrus_authenticate -- Authenticate against a Cyrus IMAP server

Description

bool cyrus_authenticate ( resource connection [, string mechlist [, string service [, string user [, int minssf [, int maxssf]]]]])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
Cyrus IMAP administration Functions | Nahoru | cyrus_bind


cyrus_bind

(PHP 4 >= 4.1.0)

cyrus_bind -- Bind callbacks to a Cyrus IMAP connection

Description

bool cyrus_bind ( resource connection, array callbacks)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
cyrus_authenticate | Nahoru | cyrus_close


cyrus_close

(PHP 4 >= 4.1.0)

cyrus_close -- Close connection to a Cyrus IMAP server

Description

bool cyrus_close ( resource connection)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
cyrus_bind | Nahoru | cyrus_connect


cyrus_connect

(PHP 4 >= 4.1.0)

cyrus_connect -- Connect to a Cyrus IMAP server

Description

resource cyrus_connect ( [string host [, string port [, int flags]]])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
cyrus_close | Nahoru | cyrus_query


cyrus_query

(PHP 4 >= 4.1.0)

cyrus_query -- Send a query to a Cyrus IMAP server

Description

bool cyrus_query ( resource connection, string query)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
cyrus_connect | Nahoru | cyrus_unbind


cyrus_unbind

(PHP 4 >= 4.1.0)

cyrus_unbind -- Unbind ...

Description

bool cyrus_unbind ( resource connection, string trigger_name)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
cyrus_query | Nahoru | Character Type Functions


Character Type Functions

Manuál PHP
Předcházející Další

XV. Character Type Functions

Úvod

The functions provided by this extension check whether a character or string falls into a certain character class according to the current locale (see also setlocale()).

When called with an integer argument these functions behave exactly like their C counterparts from ctype.h.

When called with a string argument they will check every character in the string and will only return TRUE if every character in the string matches the requested criteria. When called with an empty string the result will always be TRUE.

Passing anything else but a string or integer will return FALSE immediately.

Požadavky

None besides functions from the standard C library which are always available.

Instalace

Beginning with PHP 4.2.0 these functions are enabled by default. For older versions you have to configure and compile PHP with --enable-ctype. You can disable ctype support with --disable-ctype.

Verze PHP pro Windows má vestavěnou podporu pro toto rozšíření. K použití těchto funkcí není třeba načítat žádná další rozšíření.

Poznámka: Builtin support for ctype is available with PHP 4.3.0.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Obsah
ctype_alnum -- Check for alphanumeric character(s)
ctype_alpha -- Check for alphabetic character(s)
ctype_cntrl -- Check for control character(s)
ctype_digit -- Check for numeric character(s)
ctype_graph -- Check for any printable character(s) except space
ctype_lower -- Check for lowercase character(s)
ctype_print -- Check for printable character(s)
ctype_punct -- Check for any printable character which is not whitespace or an alphanumeric character
ctype_space -- Check for whitespace character(s)
ctype_upper -- Check for uppercase character(s)
ctype_xdigit -- Check for character(s) representing a hexadecimal digit

Předcházející | Domů | Další
cyrus_unbind | Nahoru | ctype_alnum


ctype_alnum

(PHP 4 >= 4.0.4, PHP 5)

ctype_alnum -- Check for alphanumeric character(s)

Description

bool ctype_alnum ( string text)

Returns TRUE if every character in text is either a letter or a digit, FALSE otherwise. In the standard C locale letters are just [A-Za-z] and the function is equivalent to preg_match('/^[a-z0-9]*$/i', $text).

Příklad 1. A ctype_alnum() example (using the default locale)

<?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";
    }
}
?>

This example will output :

The string AbCd1zyZ9 consists of all letters or digits.
The string foo!#$bar does not consists of all letters or digits.

See also ctype_alpha(), ctype_digit(), and setlocale().

Předcházející | Domů | Další
Character Type Functions | Nahoru | ctype_alpha


ctype_alpha

(PHP 4 >= 4.0.4, PHP 5)

ctype_alpha -- Check for alphabetic character(s)

Description

bool ctype_alpha ( string text)

Returns TRUE if every character in text is a letter from the current locale, FALSE otherwise. In the standard C locale letters are just [A-Za-z] and ctype_alpha() is equivalent to (ctype_upper($text) || ctype_lower($text)) if $text is just a single character, but other languages have letters that are considered neither upper nor lower case.

Příklad 1. A ctype_alpha() example (using the default locale)

<?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";
    }
}
?>

This example will output :

The string KjgWZC consists of all letters.
The string arf12 does not consists of all letters.

See also ctype_upper(),
ctype_lower(), and
setlocale().

Předcházející | Domů | Další
ctype_alnum | Nahoru | ctype_cntrl


ctype_cntrl

(PHP 4 >= 4.0.4, PHP 5)

ctype_cntrl -- Check for control character(s)

Description

bool ctype_cntrl ( string text)

Returns TRUE if every character in text has a special control function, FALSE otherwise. Control characters are e.g. line feed, tab, esc.

Příklad 1. A ctype_cntrl() example

<?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";
    }
}
?>

This example will output :

The string 'string1' consists of all control characters.
The string 'string2' does not consists of all control characters.

Předcházející | Domů | Další
ctype_alpha | Nahoru | ctype_digit


ctype_digit

(PHP 4 >= 4.0.4, PHP 5)

ctype_digit -- Check for numeric character(s)

Description

bool ctype_digit ( string text)

Returns TRUE if every character in text is a decimal digit, FALSE otherwise.

Příklad 1. A ctype_digit() example

<?php
$strings = array('1820.20', '10002', 'wsl!12');
foreach ($strings as $testcase) {
    if (ctype_digit($testcase)) {
        echo "The string $testcase consists of all digits.\n";
    } else {
        echo "The string $testcase does not consist of all digits.\n";
    }
}
?>

This example will output :

The string 1820.20 does not consists of all digits.
The string 10002 consists of all digits.
The string wsl!12 does not consists of all digits.

See also ctype_alnum() and ctype_xdigit().

Předcházející | Domů | Další
ctype_cntrl | Nahoru | ctype_graph


ctype_graph

(PHP 4 >= 4.0.4, PHP 5)

ctype_graph -- Check for any printable character(s) except space

Description

bool ctype_graph ( string text)

Returns TRUE if every character in text is printable and actually creates visible output (no white space), FALSE otherwise.

Příklad 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";
    }
}
?>

This example will output :

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.

See also ctype_alnum(), ctype_print(), and ctype_punct().

Předcházející | Domů | Další
ctype_digit | Nahoru | ctype_lower


ctype_lower

(PHP 4 >= 4.0.4, PHP 5)

ctype_lower -- Check for lowercase character(s)

Description

bool ctype_lower ( string text)

Returns TRUE if every character in text is a lowercase letter in the current locale.

Příklad 1. A ctype_lower() example (using the default locale)

<?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";
    }
}
?>

This example will output :

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.

See also ctype_alpha(), ctype_upper(), and setlocale().

Předcházející | Domů | Další
ctype_graph | Nahoru | ctype_print


ctype_print

(PHP 4 >= 4.0.4, PHP 5)

ctype_print -- Check for printable character(s)

Description

bool ctype_print ( string text)

Returns TRUE if every character in text will actually create output (including blanks). Returns FALSE if text contains control characters or characters that do not have any output or control function at all.

Příklad 1. A ctype_print() example

<?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";
    }
}
?>

This example will output :

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.

See also ctype_cntrl(), ctype_graph(), and ctype_punct().

Předcházející | Domů | Další
ctype_lower | Nahoru | ctype_punct


ctype_punct

(PHP 4 >= 4.0.4, PHP 5)

ctype_punct -- Check for any printable character which is not whitespace or an alphanumeric character

Description

bool ctype_punct ( string text)

Returns TRUE if every character in text is printable, but neither letter, digit or blank, FALSE otherwise.

Příklad 1. A ctype_punct() example

<?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";
    }
}
?>

This example will output :

The string ABasdk!@!$# does not consist of all punctuation.
The string !@ # $ does not consist of all punctuation.
The string *&$() consists of all punctuation.

See also ctype_cntrl() and ctype_graph().

Předcházející | Domů | Další
ctype_print | Nahoru | ctype_space


ctype_space

(PHP 4 >= 4.0.4, PHP 5)

ctype_space -- Check for whitespace character(s)

Description

bool ctype_space ( string text)

Returns TRUE if every character in text creates some sort of white space, FALSE otherwise. Besides the blank character this also includes tab, vertical tab, line feed, carriage return and form feed characters.

Příklad 1. A ctype_space() example

<?php
$strings = array('string1' => "\n\r\t", 'string2' => "\narf12", 'string3' => '\n\r\t');
foreach ($strings as $name => $testcase) {
    if (ctype_space($testcase)) {
        echo "The string '$name' consists of all whitespace characters.\n";
    } else {
        echo "The string '$name' does not consist of all whitespace characters.\n";
    }
}
?>

This example will output :

The string 'string1' consists of all whitespace characters.
The string 'string2' does not consist of all whitespace characters.
The string 'string3' does not consist of all whitespace characters.

See also ctype_cntrl(), ctype_graph(), and ctype_punct().

Předcházející | Domů | Další
ctype_punct | Nahoru | ctype_upper


ctype_upper

(PHP 4 >= 4.0.4, PHP 5)

ctype_upper -- Check for uppercase character(s)

Description

bool ctype_upper ( string text)

Returns TRUE if every character in text is an uppercase letter in the current locale.

Příklad 1. A ctype_upper() example (using the default locale)

<?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";
    }
}
?>

This example will output :

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.

See also ctype_alpha(), ctype_lower(), and setlocale().

Předcházející | Domů | Další
ctype_space | Nahoru | ctype_xdigit


ctype_xdigit

(PHP 4 >= 4.0.4, PHP 5)

ctype_xdigit -- Check for character(s) representing a hexadecimal digit

Description

bool ctype_xdigit ( string text)

Returns TRUE if every character in text is a hexadecimal 'digit', that is a decimal digit or a character from [A-Fa-f] , FALSE otherwise.

Příklad 1. A ctype_xdigit() example

<?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";
    }
}
?>

This example will output :

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.

See also ctype_digit().

Předcházející | Domů | Další
ctype_upper | Nahoru | Database (dbm-style) Abstraction Layer Functions


Database (dbm-style) Abstraction Layer Functions

Manuál PHP
Předcházející Další

XVI. Database (dbm-style) Abstraction Layer Functions

Úvod

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 Sleepycat Software's DB2. (This is not to be confused with IBM's DB2 software, which is supported through the ODBC functions.)

Požadavky

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.

Tabulka 1. 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 Sleepycat Software's DB2. 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 Sleepycat Software's DB3.
db4 | DB4 is Sleepycat Software's DB4. This is available since PHP 4.3.2.
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. And since PHP 4.3.0 we support writing (not updating) through the internal cdb library.
cdb_make | Since PHP 4.3.0 we support creation (not updating) of cdb files when the bundled cdb library is used.
flatfile | This is available since PHP 4.3.0 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 since PHP 4.3.3 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 a new function dba_key_split() available since PHP 5 which allows to convert the string keys into array keys without loosing FALSE.
qdbm | This is available since PHP 5.0.0. The qdbm library can be loaded from http://qdbm.sourceforge.net.

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().

Instalace

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 configure switch to your PHP configure line.

Varování

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 malfaunctioning single handlers but not combinations.

Tabulka 2. Supported DBA handlers

Handler | Configure Switch
dbm To enable support for dbm add --with-dbm[=DIR].

Poznámka: 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].

Poznámka: 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 db2 add --with-db2[=DIR].

Poznámka: db2 conflicts with db3 and db4.

db3 To enable support for db3 add --with-db3[=DIR].

Poznámka: db3 conflicts with db2 and db4.

db4 To enable support for db4 add --with-db4[=DIR].

Poznámka: db4 conflicts with db2 and db3.

Poznámka: This was added in PHP 4.3.2. In earlier versions of PHP you need to use --with-db3=DIR with DIR being the path to db4 library. It is not possible to use db versions starting from 4.1 with PHP prior to version 4.3.0. Also, the db libraries with versions 4.1 through 4.1.24 cannot be used in any PHP version.

cdb To enable support for cdb add --with-cdb[=DIR].

Poznámka: Since PHP 4.3.0 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 --with-flatfile.

Poznámka: This was added in PHP 4.3.0 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 --with-inifile.

Poznámka: This was added in PHP 5.0.0 and allows to read and set microsoft style ini files (like the php.ini file).

qdbm To enable support for qdbm add --with-qdbm[=DIR].

Poznámka: qdbm conflicts with dbm and gdbm.

Poznámka: This was added in PHP 5.0.0. The qdbm library can be loaded from http://qdbm.sourceforge.net.

Poznámka: Up to PHP 4.3.0 you are able to add both db2 and db3 handler but only one of them can be used internally. That means that you cannot have both file formats. Starting with PHP 5.0.0 there is a configuration check avoid such missconfigurations.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

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.

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Příklady

Příklad 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.

Příklad 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);
}

for ($i = 0; $i < count($handle_later); $i++) {
    dba_delete($handle_later[$i], $id);
}

?>

Obsah
dba_close -- Close database
dba_delete -- Delete 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 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

Předcházející | Domů | Další
ctype_xdigit | Nahoru | dba_close


dba_close

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

dba_close -- Close database

Description

void dba_close ( resource handle)

dba_close() closes the established database and frees all resources specified by handle.

handle is a database handle returned by dba_open().

dba_close() does not return any value.

See also: dba_open() and dba_popen()

Předcházející | Domů | Další
Database (dbm-style) Abstraction Layer Functions | Nahoru | dba_delete


dba_delete

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

dba_delete -- Delete entry specified by key

Description

bool dba_delete ( string key, resource handle)

dba_delete() deletes the entry specified by key from the database specified with handle.

key is the key of the entry which is deleted.

handle is a database handle returned by dba_open().

dba_delete() returns TRUE or FALSE, if the entry is deleted or not deleted, respectively.

See also: dba_exists(),
dba_fetch(), dba_insert(),
and dba_replace().

Předcházející | Domů | Další
dba_close | Nahoru | dba_exists


dba_exists

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

dba_exists -- Check whether key exists

Description

bool dba_exists ( string key, resource handle)

dba_exists() checks whether the specified key exists in the database specified by handle.

Key is the key the check is performed for.

Handle is a database handle returned by dba_open().

dba_exists() returns TRUE or FALSE, if the key is found or not found, respectively.

See also: dba_fetch(),
dba_delete(), dba_insert(),
and dba_replace().

Předcházející | Domů | Další
dba_delete | Nahoru | dba_fetch


dba_fetch

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

dba_fetch -- Fetch data specified by key

Description

string dba_fetch ( string key, resource handle)

string dba_fetch ( string key, int skip, resource handle)

dba_fetch() fetches the data specified by key from the database specified with handle.

Key is the key the data is specified by.

Skip is 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.

Handle is a database handle returned by dba_open().

dba_fetch() returns the associated string or FALSE, if the key/data pair is found or not found, respectively.

See also: dba_exists(),
dba_delete(), dba_insert(),
dba_replace() and dba_key_split().

Poznámka: The skip parameter is available since PHP 4.3 to support cdb's capability of multiple keys having the same name.

Poznámka: 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().

Předcházející | Domů | Další
dba_exists | Nahoru | dba_firstkey


dba_firstkey

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

dba_firstkey -- Fetch first key

Description

string dba_firstkey ( resource handle)

dba_firstkey() returns the first key of the database specified by handle and resets the internal key pointer. This permits a linear search through the whole database.

Handle is a database handle returned by dba_open().

dba_firstkey() returns the key or FALSE depending on whether it succeeds or fails, respectively.

See also: dba_firstkey(), dba_key_split() and example 2 in the DBA examples

Předcházející | Domů | Další
dba_fetch | Nahoru | dba_handlers


dba_handlers

(PHP 4 >= 4.3.0, PHP 5)

dba_handlers -- List handlers available

Description

array dba_handlers ( void )

dba_handlers() returns an array with all handlers supported by this extension.

When the internal cdb library is used you will see 'cdb' and 'cdb_make'.

Předcházející | Domů | Další
dba_firstkey | Nahoru | dba_insert


dba_insert

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

dba_insert -- Insert entry

Description

bool dba_insert ( string key, string value, resource handle)

dba_insert() inserts the entry described with key and value into the database specified by handle. It fails, if an entry with the same key already exists.

key is the key of the entry to be inserted.

value is the value to be inserted.

handle is a database handle returned by dba_open().

dba_insert() returns TRUE or FALSE, depending on whether it succeeds of fails, respectively.

See also:
dba_exists()
dba_delete()
dba_fetch()
dba_replace()

Předcházející | Domů | Další
dba_handlers | Nahoru | dba_key_split


dba_key_split

(PHP 5)

dba_key_split -- Splits a key in string representation into array representation

Description

mixed dba_key_split ( mixed key)

dba_key_split() returns an array of the form array(0=>group,1=>value_name). This function will return FALSE if key is NULL or FALSE.

key is the key in string representation.

See also
dba_firstkey(),
dba_nextkey() and
dba_fetch().

Předcházející | Domů | Další
dba_insert | Nahoru | dba_list


dba_list

(PHP 4 >= 4.3.0, PHP 5)

dba_list -- List all open database files

Description

array dba_list ( void )

dba_list() returns an associative array with all open database files. This array is in the form: resourceid=>filename.

Předcházející | Domů | Další
dba_key_split | Nahoru | dba_nextkey


dba_nextkey

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

dba_nextkey -- Fetch next key

Description

string dba_nextkey ( resource handle)

dba_nextkey() returns the next key of the database specified by handle and advances the internal key pointer.

handle is a database handle returned by dba_open().

dba_nextkey() returns the key or FALSE depending on whether it succeeds or fails, respectively.

See also: dba_firstkey(), dba_key_split() and example 2 in the DBA examples

Předcházející | Domů | Další
dba_list | Nahoru | dba_open


dba_open

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

dba_open -- Open database

Description

resource dba_open ( string path, string mode, string handler [, ...])

dba_open() establishes a database instance for path with mode using handler.

path is commonly a regular path in your filesystem.

mode 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. Additional you can set the database lock method with the next char. Use "l" to lock the database with an .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".

handler is 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.

dba_open() returns a positive handle or FALSE, in the case the database was opened successfull or fails, respectively.

Poznámka: There can only be one writer for one database file. When you use dba on a webserver 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:

Tabulka 1. 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 successfull.
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.

Poznámka: Since PHP 4.3.0 it is possible to open database files over network connection. However in cases a socket connection will be used (as with http or ftp) the connection will be locked instead of the resource itself. This is important to know since in such cases locking is simply ignored on the resource and other solutions have to be found.

Poznámka: Locking and the mode modifiers "l", "d", "-" and "t" were added in PHP 4.3.0. In PHP versions before PHP 4.3.0 you must use semaphores to guard against simultaneous database access for any database handler with the exception of GDBM. See System V semaphore support.

Poznámka: Up to PHP 4.3.5 open mode 'c' is broken for several internal handlers and truncates the database instead of appending data to an existant database. Also dbm and ndbm fail on mode 'c' in typical configurations (this cannot be fixed).

See also: dba_popen() dba_close()

Předcházející | Domů | Další
dba_nextkey | Nahoru | dba_optimize


dba_optimize

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

dba_optimize -- Optimize database

Description

bool dba_optimize ( resource handle)

dba_optimize() optimizes the underlying database specified by handle.

handle is a database handle returned by dba_open().

dba_optimize() returns TRUE or FALSE, if the optimization succeeds or fails, respectively.

See also: dba_sync()

Předcházející | Domů | Další
dba_open | Nahoru | dba_popen


dba_popen

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

dba_popen -- Open database persistently

Description

resource dba_popen ( string path, string mode, string handler [, ...])

dba_popen() establishes a persistent database instance for path with mode using handler.

path is commonly a regular path in your filesystem.

mode 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 is 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.

dba_popen() returns a positive handle or FALSE, in the case the open is successful or fails, respectively.

See also: dba_open() dba_close()

Předcházející | Domů | Další
dba_optimize | Nahoru | dba_replace


dba_replace

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

dba_replace -- Replace or insert entry

Description

bool dba_replace ( string key, string value, resource handle)

dba_replace() replaces or inserts the entry described with key and value into the database specified by handle.

key is the key of the entry to be inserted.

value is the value to be inserted.

handle is a database handle returned by dba_open().

dba_replace() returns TRUE or FALSE, depending on whether it succeeds of fails, respectively.

See also: dba_exists(),
dba_delete(), dba_fetch(),
and dba_insert().

Předcházející | Domů | Další
dba_popen | Nahoru | dba_sync


dba_sync

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

dba_sync -- Synchronize database

Description

bool dba_sync ( resource handle)

dba_sync() synchronizes the database specified by handle. This will probably trigger a physical write to disk, if supported.

handle is a database handle returned by dba_open().

dba_sync() returns TRUE or FALSE, if the synchronization succeeds or fails, respectively.

See also: dba_optimize()

Předcházející | Domů | Další
dba_replace | Nahoru | Funkce pro datum a čas


Funkce pro datum a čas

Manuál PHP
Předcházející Další

XVII. Funkce pro datum a čas

Úvod

Tyto funkce vám umožňují získat datum a čas ze serveru, na kterém běží PHP skripty. Lze je použít k formátování zápisu času a data mnoha různými způsoby.

Poznámka: Uvědomte si prosím, že tyto funkce závisí na národním nastavení vašeho serveru. Zvláštní pozornost věnujte letnímu času a přestupným rokům!

Požadavky

Tyto funkce jsou k dispozici jako součást standardního modulu, který je vždy dostupný.

Instalace

K používání těchto funkcí není třeba žádná instalace, jsou součástí jádra PHP.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Obsah
checkdate -- Zkontroluje gregoriánské datum
date -- Formátuje místní datum/čas
getdate -- Vrací informaci o datu/čase
gettimeofday -- Vrací aktuální čas
gmdate -- Formátuje datum/čas GMT/UTC
gmmktime -- Vrací UNIXové časové razítko pro datum/čas v GMT
gmstrftime -- Formátuje datum/čas v GMT/UTC vzhledem k národnímu nastavení
localtime -- Vrací místní čas
microtime -- Vrací aktuální UNIXové časové razítko s mikrosekundami
mktime -- Vrací UNIXové časové razítko pro datum/čas
strftime -- Formátuje místní čas/datum s ohledem na nastavení národních specifik
strtotime -- Parse about any English textual datetime description into a Unix timestamp
time -- Return current Unix timestamp

Předcházející | Domů | Další
dba_sync | Nahoru | checkdate


checkdate

(PHP 3, PHP 4 , PHP 5)

checkdate -- Zkontroluje gregoriánské datum

Popis

bool checkdate ( int month, int day, int year)

Vrací TRUE, je-li dané datum platné; v ostatních případech FALSE. Platnost se ověřuje u data složeného z hodnot v argumentech. Datum je ohodnoceno jako platné, pokud:

  • rok je mezi 1 a 32767 včetně

  • měsíc je mezi 1 a 12 včetně

  • Den day je v mezích povoleného počtu dnů pro daný měsíc month. Přestupné roky jsou brány v úvahu.

Viz také mktime() a strtotime().

Předcházející | Domů | Další
Funkce pro datum a čas | Nahoru | date


date

(PHP 3, PHP 4 , PHP 5)

date -- Formátuje místní datum/čas

Popis

string date ( string format [, int timestamp])

Vrací řetězec formátovaný podle daného formátovacího řetězce s použitím daného celočíselného časového razítka timestamp nebo aktuálního místního času (není-li časové razítko zadáno). Jinými slovy, parametr timestamp je nepovinný a jeho výchozí hodnota je výsledek funkce time().

Poznámka: Platný rozsah pro časové razítko je typicky od pátku 13.12.1901 20:45:54 GMT do úterý 19.1.2038 03:14:07 GMT. (Tyto hodnoty odpovídají minimální a maximální hodnotě 32-bitového celého čísla se znaménkem). Na Windows je tento rozsah omezen na období 1.1.1970 až 19.1.2038.

K vygenerování časového razítka z řetězce reprezentujícího datum lze použít funkci strtotime(). Navíc některé databáze mají funkce, které konvertují jejich datové formáty na časová razítka (např. funce UNIX_TIMESTAMP v MySQL).

Tabulka 1. Ve formátovacím řetězci lze používat tyto znaky:

znak parametru format | Popis | Ukázka vracených hodnot
a | Příznak dopoledne/odpoledne malými písmeny | am nebo pm
A | Příznak dopoledne/odpoledne velkými písmeny | AM nebo PM
B | Internetový čas Swatch | 000 až 999
d | Den měsíce, dvě číslice s úvodními nulami | 01 až 31
D | Textová reprezentace dne, tři znaky | Mon až Sun
F | Plná textová reprezentace měsíce typu January nebo March | January až December
g | 12-hodinový formát hodiny bez úvodních nul | 1 až 12
G | 24-hodinový formát hodiny bez úvodních nul | 0 až 23
h | 12-hodinový formát hodiny s úvodními nulami | 01 až 12
H | 24-hodinový formát hodiny s úvodními nulami | 00 až 23
i | Minuty s úvodními nulami | 00 až 59
I (velké i) | Zjištění, zda je letní čas | 1 pokud je letní čas, 0 jinak.
j | Den měsíce bez úvodních nul | 1 až 31
l (malé 'L') | Plná textová reprezentace dne v týdnu | Sunday až Saturday
L | Zjištění, zda je rok přestupný | 1 pokud je přestupný rok, 0 jinak.
m | Číselná reprezentace měsíce s úvodními nulami | 01 až 12
M | Krátká textová reprezentace měsíce, tři znaky | Jan až Dec
n | Číselná reprezentace měsíce bez úvodních nul | 1 až 12
O | Odchylka od Greenwichského času (GMT) v hodinách | Příklad: +0200
r | Datum formátované podle RFC 822 | Příklad: Thu, 21 Dec 2000 16:01:07 +0200
s | Sekundy s úvodními nulami | 00 až 59
S | Anglická pořadová přípona dne v měsíci, 2 znaky | st, nd, rd nebo th. Dobře funguje s j
t | Počet dní v daném měsíci | 28 až 31
T | Nastavení časového pásma na tomto počítači | Příklady: EST, MDT ...
U | Sekundy od počátku éry Unix (1. ledna 1970 00:00:00 GMT) | Viz také time()
w | Číselná reprezentace dne v týdnu | 0 (pro neděli) až 6 (pro sobotu)
W | Číslo týdne podle ISO-8601, týdny začínají v pondělí (doplněno v PHP 4.1.0) | Příklad: 42 (42. týden v roce)
Y | Plná číselná reprezentace roku, 4 číslice | Příklady: 1999 nebo 2003
y | Dvouciferná reprezentace roku | Příklady: 99 nebo 03
z | Den v roce | 0 až 366
Z | Posun časového pásma v sekundách. Posun časových pásem západně od UTC je vždy záporný, východně od UTC je vždy kladný. | -43200 až 43200

Nerozpoznané znaky ve formátovacím řetězci se vytiskou tak, jak jsou. Při použití gmdate() má formát Z vždy hodnotu 0.

Příklad 1. Příklady - date()

<?php
// Vytiskne něco jako: Wednesday
echo date("l");

// Vytiskne něco jako: Wednesday 15th of January 2003 05:51:38 AM
echo date ("l dS of F Y h:i:s A");

// Vytiskne: July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " . date ("l", mktime(0,0,0,7,1,2000));
?>

Rozpoznávané znaky ve formátovacím řetězci můžete ochránit před zpracováním tak, že jim předřadíte obrácené lomítko. Pokud už má znak s obráceným lomítkem speciální význam, je třeba před něj přidat ještě jedno obrácené lomítko.

Příklad 2. Ochrana znaků ve funkci date()

<?php
// vytiskne něco jako 'Saturday the 8th'
echo date("l \\t\h\e jS");
?>

Je možné použít společně date() a mktime() k nalezení dat v budoucnosti či v minulosti.

Příklad 3. Příklad - date() a 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);
?>

Poznámka: Toto může být spolehlivější než prosté přičítání nebo odčítání sekund ve dni nebo měsíci (kvůli letnímu času).

Několik příkladů formátování pomocí date(). Nezapomeňte, že byste měli předřadit obrácené lomítko všem ostatním znakům, protože ty, které mají nyní speciální význam, budou způsobovat neočekávané výsledky, a ostatním může být přiřazen význam v budoucích verzích PHP. Ve všech takových případech také musíte používat apostrofy (k ohraničení řetězce), abyste zabránili znakům jako \n v odřádkování.

Příklad 4. Formátování pomocí date()

<?php
// Předpokládejme, že dnes je 10. března 2001, 17:16:18
$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 z ');  // 05-16-17, 10-03-01, 1631 1618 6 Fripm01
$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 15:16:08 MST 2001
$today = date('H:m:s \m \i\s\ \m\o\n\t\h');     // 17:03:17 m is month
$today = date("H:i:s");                         // 17:16:17
?>

Pro formátování dat v jiných jazycích je třeba použít funkce setlocale() a strftime().

Viz také getlastmod(), gmdate(),
mktime(), strftime()
a time().

Předcházející | Domů | Další
checkdate | Nahoru | getdate


getdate

(PHP 3, PHP 4 , PHP 5)

getdate -- Vrací informaci o datu/čase

Popis

array getdate ( [int timestamp])

Vrací asociativní pole obsahující informaci o datu (čase) v argumentu timestamp nebo aktuální místní čas (pokud není argument přítomen), jako tyto elementy:

Tabulka 1. Klíče vráceného asociativního pole

Klíč | Popis | Ukázka vracených hodnot
"seconds" | Číselná reprezentace sekund | 0 až 59
"minutes" | Číselná reprezentace minut | 0 až 59
"hours" | Číselná reprezentace hodin | 0 až 23
"mday" | Číselná reprezentace dne v měsíci | 1 až 31
"wday" | Číselná reprezentace dne v týdnu | 0 (pro neděli) až 6 (pro sobotu)
"mon" | Číselná reprezentace měsíce | 1 až 12
"year" | Plná číselná reprezentace roku, 4 číslice | Příklady: 1999 nebo 2003
"yday" | Číselná reprezentace dne v roce | 0 až 366
"weekday" | Plná textová reprezentace dne v týdnu | Sunday až Saturday
"month" | Plná textová reprezentace měsíce | January až December
0 | Sekundy éry Unixu, obdobně jako hodnoty vracené funkcí time() a používané funkcí date(). | Závislé na systému, typicky -2147483648 až 2147483647.

Příklad 1. Příklad - getdate()

<?php
$today = getdate();
print_r($today);
?>

Výstup bude vypadat zhruba takto:

Array
(
    [seconds] => 40
    [minutes] => 58
    [hours]   => 21
    [mday]    => 17
    [wday]    => 2
    [mon]     => 6
    [year]    => 2003
    [yday]    => 167
    [weekday] => Tuesday
    [month]   => June
    [0]       => 1055901520
)

Viz také date(),
time() a
setlocale().

Předcházející | Domů | Další
date | Nahoru | gettimeofday


gettimeofday

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

gettimeofday -- Vrací aktuální čas

Popis

array gettimeofday ( void )

Toto je rozhraní k volání gettimeofday(2). Vrací asociativní pole obsahující data vrácená tímto systémovým voláním.

  • "sec" - sekundy

  • "usec" - mikrosekundy

  • "minuteswest" - minuty západně od Greenwiche

  • "dsttime" - typ korekce letního času

Předcházející | Domů | Další
getdate | Nahoru | gmdate


gmdate

(PHP 3, PHP 4 , PHP 5)

gmdate -- Formátuje datum/čas GMT/UTC

Popis

string gmdate ( string format [, int timestamp])

Identické k funkci date() kromě toho, že vrácený čas je Greenwich Mean Time (GMT). Například při spuštění ve Finsku (GMT +0200) vypíše první níže uvedený řádek "Jan 01 1998 00:00:00", zatímco druhý "Dec 31 1997 22:00:00".

Příklad 1. Příklad - gmdate()

<?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));
?>

Poznámka: V operačním systému Microsoft Windows jsou systémové knihovny implementující tuto funkci poškozené, takže funkce gmdate() nepodporuje negativní hodnoty parametru timestamp. Blíže viz bug-reporty: #22620, #22457 a #14391.

K tomuto problému nedochází v operačních systémech Unix/Linux, kde se systémové knihovny chovají podle očekávání.

PHP nemá moc opravit poškozené systémové knihovny. Kontaktujte prodejce svého OS, aby tento a podobné problémy opravil.

Viz také date(), mktime(), gmmktime() a strftime().

Předcházející | Domů | Další
gettimeofday | Nahoru | gmmktime


gmmktime

(PHP 3, PHP 4 , PHP 5)

gmmktime -- Vrací UNIXové časové razítko pro datum/čas v GMT

Popis

int gmmktime ( [int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]])

Identické k mktime(), kromě toho, že parametry reprezentují datum/čas v GMT.

Podobně jako u funkce mktime() mohou být parametry vynechány v pořadí zprava doleva. Neuvedené parametry budou nastaveny na odpovídající hodnotu současného GMT.

Předcházející | Domů | Další
gmdate | Nahoru | gmstrftime


gmstrftime

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

gmstrftime -- Formátuje datum/čas v GMT/UTC vzhledem k národnímu nastavení

Popis

string gmstrftime ( string format [, int timestamp])

Chová se stejně jako strftime(), avšak vrácený čas je v Greenwich Mean Time (GMT). Například při spuštění v čase EST (východní standardní čas, GMT -0500) vypíše první níže uvedený řádek "Dec 31 1998 20:00:00", zatímco druhý "Jan 01 1999 01:00:00".

Příklad 1. gmstrftime() example

<?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";
?>

Viz také strftime().

Předcházející | Domů | Další
gmmktime | Nahoru | localtime


localtime

(PHP 4 , PHP 5)

localtime -- Vrací místní čas

Popis

array localtime ( [int timestamp [, bool is_associative]])

Funkce localtime() vrací pole strukturálně identické k návratové hodnotě volání v C. První argument funkce localtime() je časové razítko; není-li dáno, použije se aktuální čas, který vrátí funkce time(). Druhý argument localtime() je is_associative, který (nastavením na nulu) signalizuje, že vracené pole je obyčejné, číselně indexované pole. Je-li argument nastaven na 1, potom localtime() vrací asociativní pole obsahující všechny elementy struktury vrácené příslušným funkčním voláním v C. Názvy klíčů tohoto pole jsou následující:

  • "tm_sec" - sekunda

  • "tm_min" - minuta

  • "tm_hour" - hodina

  • "tm_mday" - den v měsíci

  • "tm_mon" - měsíc v roce, počínaje 0 (leden)

  • "tm_year" - roky od 1900

  • "tm_wday" - den v týdnu

  • "tm_yday" - den v roce

  • "tm_isdst" - platí letní čas

Předcházející | Domů | Další
gmstrftime | Nahoru | microtime


microtime

(PHP 3, PHP 4 , PHP 5)

microtime -- Vrací aktuální UNIXové časové razítko s mikrosekundami

Popis

string microtime ( void )

Vrací řetězec "msec sec", kde sec je aktuální čas měřený počtem sekund od Unix Epoch (0:00:00 January 1, 1970 GMT) a msec je mikrosekundová část. Tato funkce je dostupná pouze na operačních systémech, které podporují systémové volání gettimeofday().

Obě části řetězce jsou vráceny v jednotkách sekund.

Příklad 1. Příklad - microtime()

<?php
function getmicrotime(){
    list($usec, $sec) = explode(" ",microtime());
    return ((float)$usec + (float)$sec);
    }

$time_start = getmicrotime();

for ($i=0; $i < 1000; $i++){
    // nic nedělej, 1000krát
    }

$time_end = getmicrotime();
$time = $time_end - $time_start;

echo "Nic se nedělalo $time sekund";
?>

Viz také time().

Předcházející | Domů | Další
localtime | Nahoru | mktime


mktime

(PHP 3, PHP 4 , PHP 5)

mktime -- Vrací UNIXové časové razítko pro datum/čas

Popis

int mktime ( [int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]])

Varování: Mějte na paměti podivné pořadí argumentů, které se liší od pořadí argumentů v běžném UNIXovém volání mktime() a které se příliš nehodí k vynechávání parametrů zprava doleva (viz níže). Je častou chybou míchat ve skriptu tyto hodnoty.

Vrací UNIXové časové razítko odpovídající daným argumentům. Toto časové razítko je typu "long integer" a odpovídá počtu sekund mezi Unix Epoch (1.1.1970) a specifikovaným časem.

Argumenty mohou být vynechávány zprava doleva; každý vynechaný argument bude nastaven na aktuální hodnotu podle místního data a času.

is_dst může být 1, patří-li daný čas do doby platnosti letního času, 0, pokud nepatří, anebo -1 (implicitní hodnota), nelze-li zjistit, zda daný čas patří do období letního času (v tomto případě se PHP pokusí tuto hodnotu dosadit; to může způsobit neočekávané - ale nikoli chybné - výsledky).

Poznámka: Parametr is_dst byl přidán v PHP 3.0.10.

Funkce mktime() je užitečná pro aritmetiku a validaci časových údajů, neboť automaticky vypočítá správnou hodnotu pro vstupní data mimo povolený rozsah. Například každý z následujících řádků vypíše "Jan-01-1998".

Příklad 1. Příklad - mktime()

<?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));
?>
Year může být hodnota se dvěma nebo čtyřmi číslicemi, s hodnotami 0-69 mapovanými na 2000-2069 a 70-99 na 1970-1999 (na systémech, kde time_t je 32bitové celé číslo se znaménkem, jak je dnes obvyklé, budou platné hodnoty pro year někde mezi 1901 a 2038).

Windows: Záporné časové značky nejsou podporovány v žádné známé verzi Windows. Platné rozmezí roků je proto pouze 1970 až 2038.

Poslední den daného měsíce může být vyjádřen jako den "0" měsíce příštího, nikoliv den -1. Oba následující příklady vypíší řetězec "The last day in Feb 2000 is: 29".

Příklad 2. Poslední den měsíce

<?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);
?>

Datum s rokem, měsícem, a dnem rovnými nule je považováno za neplatné (odpovídalo by 30.11.1999, což je poněkud podivné chování).

Viz také date() a time().

Předcházející | Domů | Další
microtime | Nahoru | strftime


strftime

(PHP 3, PHP 4 , PHP 5)

strftime -- Formátuje místní čas/datum s ohledem na nastavení národních specifik

Popis

string strftime ( string format [, int timestamp])

Vrací řetězec formátovaný podle daného formátovacího řetězce, s použitím daného časového razítka timestamp, nebo aktuálního místního času, není-li razítko dáno. Název měsíce, dne v týdnu a další jazykově závislé řetězce respektují národní specifika nastavená pomocí setlocale().

Ve formátovacím řetězci se rozlišují tyto konverzní specifikátory:

  • %a - zkrácený název dne v týdnu (podle národního nastavení)

  • %A - úplný název dne v týdnu (podle národního nastavení)

  • %b - zkrácený název měsíce (podle národního nastavení)

  • %B - úplný název měsíce (podle národního nastavení)

  • %c - reprezentace času a data preferovaná aktuálním národním nastavením

  • %C - číslo století (rok dělený 100 a zkrácený na celé číslo, od 00 do 99)

  • %d - den v měsíci jako desítkové číslo (01 až 31)

  • %D - totéž jako %m/%d/%y

  • %e - den v měsíci jako desítkové číslo, jedné samotné číslici (čísla 1 až 9) předchází mezera (' 1' až '31')

  • %g - jako %G, ale bez století

  • %G - čtyřčíslicově reprezentovaný rok odpovídající týdnu podle ISO (viz %V). Má tentýž formát a hodnotu jako %Y, kromě toho, že pokud číslo týdne podle ISO patří předchozímu nebo následujícímu roku, bude tento odlišný rok použit.

  • %h - totéž jako %b

  • %H - hodina jako desítkové číslo ve 24-hodinovém formátu (00 až 23)

  • %I - hodina jako desítkové číslo ve 12-hodinovém formátu (01 až 12)

  • %j - den v roce jako desítkové číslo (001 až 366)

  • %m - měsíc jako desítkové číslo (01 až 12)

  • %M - minuta jako desítkové číslo

  • %n - znak odřádkování

  • %p - `am' nebo `pm' v závislosti na hodnotě času, resp. odpovídající řetězec podle národního nastavení

  • %r - čas v notaci a.m. a p.m. (12-hodinové)

  • %R - čas ve 24-hodinové notaci

  • %S - sekunda jako desítkové číslo

  • %t - znak tabulátoru

  • %T - aktuální čas, totéž jako %H:%M:%S

  • %u - den v týdnu jako desítkové číslo [1,7], 1 reprezentuje pondělí

    Varování

    Na počítačích Sun Solaris se vyskytuje neděle jako první den v týdnu, přestože ISO 9889:1999 (aktuální C standard) jasně specifikuje, že by to mělo být pondělí.

  • %U - týden v aktuálním roce jako desítkové číslo, počínaje první nedělí jako prvním dnem prvního týdne

  • %V - týden v aktuálním roce podle ISO 8601:1988 jako desítkové číslo, v rozsahu od 01 do 53, kde 1 je první týden s alespoň 4 dny v tomto roce, a s pondělkem jako prvním dnem v týdnu. (Odpovídající rok lze získat pomocí %G nebo %g.)

  • %W - týden v aktuálním roce jako desítkové číslo, počínaje prvním pondělkem jako prvním dnem prvního týdne

  • %w - den v týdnu jako desítkové číslo, neděle odpovídá 0

  • %x - preferovaná reprezentace data (bez času) pro aktuální národní nastavení

  • %X - preferovaná reprezentace času (bez data) pro aktuální národní nastavení

  • %y - rok jako desítkové číslo bez století (00 až 99)

  • %Y - rok jako desítkové číslo včetně století

  • %Z - časová zóna, její název nebo zkratka

  • %% - znak `%' (procento)

Poznámka: Všechny konverzní specifikátory nemusí být podporovány vaší C knihovnou, potom nebudou podporovány ani funkcí strftime() v PHP. Kromě toho také ne všechny platformy podporují práci s negativními časovými značkami, takže rozsah možných datumů může být omezen začátkem éry Unixu. To znamená, že např. %e, %T, %R a %D (a případně i další) a datumy předcházející 1.1.1970 nebudou fungovat pod Windows, některými distribucemi Linuxu a několika dalšími operačními systémy. Pro Windows lze kompletní přehled podporovaných konverzních specifikátorů najít na webových stránkách MSDN.

Příklad 1. strftime() - místní příklady

<?php
setlocale(LC_TIME, "C");
echo strftime("%A");
setlocale(LC_TIME, "fi_FI");
echo strftime(" je ve finštině %A,");
setlocale(LC_TIME, "fr_FR");
echo strftime(" ve francouzštině %A a");
setlocale(LC_TIME, "de_DE");
echo strftime(" v němčině %A.\n");
?>
Tento příklad bude fungovat jen tehdy, máte-li daná národní specifika nainstalována v systému.

Poznámka: %G a %V, které jsou založeny na normě ISO 8601:1988, mohou vrátit neočekávané (a přesto správné) výsledky, pokud nemáte v číslovacím systému zcela jasno. Viz %V výše a příklad níže.

Příklad 2. Příklad čísel týdnů podle 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   */

// Vypíše: 28.12.2002 - %V,%G,%Y = 52,2002,2002
echo "28.12.2002 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("12/28/2002")) . "\n";

// Vypíše: 30.12.2002 - %V,%G,%Y = 1,2003,2002
echo "30.12.2002 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("12/30/2002")) . "\n";

// Vypíše: 3.1.2003 - %V,%G,%Y = 1,2003,2003
echo "3.1.2003 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/3/2003")) . "\n";

// Vypíše: 10.1.2003 - %V,%G,%Y = 2,2003,2003
echo "10.1.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   */

// Vypíše: 23.12.2004 - %V,%G,%Y = 52,2004,2004
echo "23.12.2004 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("12/23/2004")) . "\n";

// Vypíše: 31.12.2004 - %V,%G,%Y = 53,2004,2004
echo "31.12.2004 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("12/31/2004")) . "\n";

// Vypíše: 2.1.2005 - %V,%G,%Y = 53,2004,2005
echo "2.1.2005 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/2/2005")) . "\n";

// Vypíše: 3.1.2005 - %V,%G,%Y = 1,2005,2005
echo "3.1.2005 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/3/2005")) . "\n";

?>

Viz také setlocale(),
mktime() a
specifikaci Open Group
strftime().

Předcházející | Domů | Další
mktime | Nahoru | strtotime


strtotime

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

strtotime -- Parse about any English textual datetime description into a Unix timestamp

Description

int strtotime ( string time [, int now])

The function expects to be given a string containing an English date format and will try to parse that format into a Unix timestamp relative to the timestamp given in now, or the current time if none is supplied. Upon failure, -1 is returned.

Because strtotime() behaves according to GNU date syntax, have a look at the GNU manual page titled Date Input Formats. Described there is valid syntax for the time parameter.

Příklad 1. strtotime() examples

<?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";
?>

Příklad 2. Checking for failure

<?php
$str = 'Not Good';
if (($timestamp = strtotime($str)) === -1) {
    echo "The string ($str) is bogus";
} else {
    echo "$str == " . date('l dS of F Y h:i:s A', $timestamp);
}
?>

Poznámka: The valid range of a timestamp is typically from Fri, 13 Dec 1901 20:45:54 GMT to Tue, 19 Jan 2038 03:14:07 GMT. (These are the dates that correspond to the minimum and maximum values for a 32-bit signed integer.) Additionally, not all platforms support negative timestamps, therefore your date range may be limited to no earlier than the Unix epoch. This means that e.g. dates prior to Jan 1, 1970 will not work on Windows, some Linux distributions, and a few other operating systems.

Předcházející | Domů | Další
strftime | Nahoru | time


time

(PHP 3, PHP 4 , PHP 5)

time -- Return current Unix timestamp

Description

int time ( void )

Returns the current time measured in the number of seconds since the Unix Epoch (January 1 1970 00:00:00 GMT).

See also date() and microtime().

Předcházející | Domů | Další
strtotime | Nahoru | dBase Functions


dBase Functions

Manuál PHP
Předcházející Další

XVIII. dBase Functions

Úvod

These functions allow you to access records stored in dBase-format (dbf) databases.

There is no support for indexes or memo fields. There is no support for locking, too. Two concurrent webserver processes modifying the same dBase file will very likely ruin your database.

dBase files are simple sequential files of fixed length records. Records are appended to the end of the file and delete records are kept until you call dbase_pack().

We recommend that you do not use dBase files as your production database. 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.

Instalace

In order to enable the bundled dbase library and to use these functions, you must compile PHP with the --enable-dbase option.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Obsah
dbase_add_record -- Add a record to a dBase database
dbase_close -- Close a dBase database
dbase_create -- Creates a dBase database
dbase_delete_record -- Deletes a record from a dBase database
dbase_get_header_info -- Get the header info of a dBase database
dbase_get_record_with_names -- Gets a record from a dBase database as an associative array
dbase_get_record -- Gets a record from a dBase database
dbase_numfields -- Find out how many fields are in a dBase database
dbase_numrecords -- Find out how many records are in a dBase database
dbase_open -- Opens a dBase database
dbase_pack -- Packs a dBase database
dbase_replace_record -- Replace a record in a dBase database

Předcházející | Domů | Další
time | Nahoru | dbase_add_record


dbase_add_record

(PHP 3, PHP 4 , PHP 5)

dbase_add_record -- Add a record to a dBase database

Description

bool dbase_add_record ( int dbase_identifier, array record)

Adds the data in the record to the database. If the number of items in the supplied record isn't equal to the number of fields in the database, the operation will fail and FALSE will be returned.

Předcházející | Domů | Další
dBase Functions | Nahoru | dbase_close


dbase_close

(PHP 3, PHP 4 , PHP 5)

dbase_close -- Close a dBase database

Description

bool dbase_close ( int dbase_identifier)

Closes the database associated with dbase_identifier.

Předcházející | Domů | Další
dbase_add_record | Nahoru | dbase_create


dbase_create

(PHP 3, PHP 4 , PHP 5)

dbase_create -- Creates a dBase database

Description

int dbase_create ( string filename, array fields)

dbase_create() creates a dBase database in the file filename, with the fields fields.

The fields parameter is an array of arrays, each array describing the format of one field in the database. Each field consists of a name, a character indicating the field type, a length, and a precision.

The types of fields available are:

L

Boolean. These do not have a length or precision.

M

Memo. (Note that these aren't supported by PHP.) These do not have a length or precision.

D

Date (stored as YYYYMMDD). These do not have a length or precision.

N

Number. These have both a length and a precision (the number of digits after the decimal point).

C

String.

Poznámka: The fieldnames are limited in length and must not exceed 10 chars, 0 < chars <= 10.

If the database is successfully created, a dbase_identifier is returned, otherwise FALSE is returned.

Příklad 1. Creating a dBase database file

<?php

// "database" name
$dbname = "/tmp/test.dbf";

// database "definition"
$def =
    array(
        array("date",     "D"),
        array("name",     "C",  50),
        array("age",      "N",   3, 0),
        array("email",    "C", 128),
        array("ismember", "L")
    );

// creation
if (!dbase_create($dbname, $def))
    echo "<strong>Error!</strong>";

?>

Předcházející | Domů | Další
dbase_close | Nahoru | dbase_delete_record


dbase_delete_record

(PHP 3, PHP 4 , PHP 5)

dbase_delete_record -- Deletes a record from a dBase database

Description

bool dbase_delete_record ( int dbase_identifier, int record)

Marks record to be deleted from the database. To actually remove the record from the database, you must also call dbase_pack().

Předcházející | Domů | Další
dbase_create | Nahoru | dbase_get_header_info


dbase_get_header_info

(PHP 5)

dbase_get_header_info -- Get the header info of a dBase database

Description

array dbase_get_header_info ( int dbase_identifier)

Returns information on the column structure of the database referenced by dbase_identifier. For each column in the database, there is an entry in a numerically-indexed array. The array index starts at 0. Each array element contains an associative array of column information. If the database header information cannot be read, FALSE is returned.

The array elements are:

name

The name of the column

type

The human-readable name for the dbase type of the column (i.e. date, boolean, etc)

length

The number of bytes this column can hold

precision

The number of digits of decimal precision for the column

format

A suggested printf() format specifier for the column

offset

The byte offset of the column from the start of the row

Příklad 1. Showing header information for a dBase database file

<?php
// Path to dbase file
$db_path = "/tmp/test.dbf";

// Open dbase file
$dbh = dbase_open($db_path)
    or die("Error! Could not open dbase database file '$db_path'.");

// Get column information
$column_info = dbase_get_header_info($dbh);

// Display information
print_r($column_info);
?>

Předcházející | Domů | Další
dbase_delete_record | Nahoru | dbase_get_record_with_names


dbase_get_record_with_names

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

dbase_get_record_with_names -- Gets a record from a dBase database as an associative array

Description

array dbase_get_record_with_names ( int dbase_identifier, int record)

Returns the data from record in an associative array. The array also includes an associative member named 'deleted' which is set to 1 if the record has been marked for deletion (see dbase_delete_record()).

Each field is converted to the appropriate PHP type, except:

  • Dates are left as strings

  • Integers that would have caused an overflow (> 32 bits) are returned as strings

Předcházející | Domů | Další
dbase_get_header_info | Nahoru | dbase_get_record


dbase_get_record

(PHP 3, PHP 4 , PHP 5)

dbase_get_record -- Gets a record from a dBase database

Description

array dbase_get_record ( int dbase_identifier, int record)

Returns the data from record in an array. The array is indexed starting at 0, and includes an associative member named 'deleted' which is set to 1 if the record has been marked for deletion (see dbase_delete_record().

Each field is converted to the appropriate PHP type, except:

  • Dates are left as strings

  • Integers that would have caused an overflow (> 32 bits) are returned as strings

Předcházející | Domů | Další
dbase_get_record_with_names | Nahoru | dbase_numfields


dbase_numfields

(PHP 3, PHP 4 , PHP 5)

dbase_numfields -- Find out how many fields are in a dBase database

Description

int dbase_numfields ( int dbase_identifier)

Returns the number of fields (columns) in the specified database. Field numbers are between 0 and dbase_numfields($db)-1, while record numbers are between 1 and dbase_numrecords($db).

Příklad 1. Using dbase_numfields()

<?php

$rec = dbase_get_record($db, $recno);
$nf  = dbase_numfields($db);
for ($i=0; $i < $nf; $i++) {
    echo $rec[$i]."<br />\n";
}

?>

Předcházející | Domů | Další
dbase_get_record | Nahoru | dbase_numrecords


dbase_numrecords

(PHP 3, PHP 4 , PHP 5)

dbase_numrecords -- Find out how many records are in a dBase database

Description

int dbase_numrecords ( int dbase_identifier)

Returns the number of records (rows) in the specified database. Record numbers are between 1 and dbase_numrecords($db), while field numbers are between 0 and dbase_numfields($db)-1.

Předcházející | Domů | Další
dbase_numfields | Nahoru | dbase_open


dbase_open

(PHP 3, PHP 4 , PHP 5)

dbase_open -- Opens a dBase database

Description

int dbase_open ( string filename, int flags)

Returns a dbase_identifier for the opened database, or FALSE if the database couldn't be opened.

Parameter flags correspond to those for the open() system call (Typically 0 means read-only, 1 means write-only, and 2 means read and write).

Poznámka: Pokud je zapnut bezpečný režim (safe-mode), PHP kontroluje, zda soubory/adresáře, se kterými pracujete, mají stejné UID jako spuštěný skript.

Předcházející | Domů | Další
dbase_numrecords | Nahoru | dbase_pack


dbase_pack

(PHP 3, PHP 4 , PHP 5)

dbase_pack -- Packs a dBase database

Description

bool dbase_pack ( int dbase_identifier)

Packs the specified database (permanently deleting all records marked for deletion using dbase_delete_record()).

Předcházející | Domů | Další
dbase_open | Nahoru | dbase_replace_record


dbase_replace_record

(PHP 3>= 3.0.11, PHP 4 , PHP 5)

dbase_replace_record -- Replace a record in a dBase database

Description

bool dbase_replace_record ( int dbase_identifier, array record, int dbase_record_number)

Replaces the data associated with the record record_number with the data in the record in the database. If the number of items in the supplied record is not equal to the number of fields in the database, the operation will fail and FALSE will be returned.

dbase_record_number is an integer which spans from 1 to the number of records in the database (as returned by dbase_numrecords()).

Předcházející | Domů | Další
dbase_pack | Nahoru | DBM Funkce [zastaralé]


DBM Funkce [zastaralé]

Manuál PHP
Předcházející Další

XIX. DBM Funkce [zastaralé]

Úvod

Tyto funkce vám umožňují ukládat záznamy do databází typu dbm. Tento typ databází (podporovaný Berkeley DB, GDBM, některými systémovými knihovnami, a také vestavěnou flatfile knihovnou) ukládá klíč/hodnota páry (oproti plnohodnotným relačním databázím).

Poznámka: Podpora dbm je nicméně zavržena a doporučujeme vám použít místo toho funkce databázové abstrakční vrstvy (dbm-styl)

Požadavky

K použití tohoto rozšíření musíte PHP zkompilovat s podporou použité databáze. Viz seznam podporovaných databází.

Instalace

In order to use these functions, you must compile PHP with dbm support by using the --with-db option. In addition you must ensure support for an underlying database or you can use some system libraries.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

Funkce dbmopen() vrací identifikátor databáze, který používají ostatní dbm-funkce.

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Příklady

Příklad 1. DBM - příklad

<?php

$dbm = dbmopen ("lastseen", "w");
if (dbmexists ($dbm, $userid)) {
    $last_seen = dbmfetch ($dbm, $userid);
} else {
    dbminsert ($dbm, $userid, time());
}
do_stuff();
dbmreplace ($dbm, $userid, time());
dbmclose ($dbm);

?>

Obsah
dblist -- Získat název používané DBM-kompatibilní knihovny
dbmclose -- Zavřít dbm databázi
dbmdelete -- Smazat v DMB databázi hodnotu spojenou s určitým klíčem
dbmexists -- Zjistí, jestli pro zadaný klíč existuje v DBM databázi hodnota
dbmfetch -- Získat z DBM databáze hodnotu spojenou s určitým klíčem
dbmfirstkey -- Získat z DBM databáze první klíč
dbminsert -- Vložit do DBM databáze hodnotu a klíč
dbmnextkey -- Získat další klíč z DBM databáze
dbmopen -- Otevřít DBM databázi
dbmreplace -- Nahredit v DBM databázi hodnotu s určitým klíčem

Předcházející | Domů | Další
dbase_replace_record | Nahoru | dblist


dblist

(PHP 3, PHP 4 )

dblist -- Získat název používané DBM-kompatibilní knihovny

Popis

string dblist ( void )

Předcházející | Domů | Další
DBM Funkce [zastaralé] | Nahoru | dbmclose


dbmclose

(PHP 3, PHP 4 )

dbmclose -- Zavřít dbm databázi

Popis

bool dbmclose ( int dbm_identifier)

Odemkne a zavře určenou databázi.

Předcházející | Domů | Další
dblist | Nahoru | dbmdelete


dbmdelete

(PHP 3, PHP 4 )

dbmdelete -- Smazat v DMB databázi hodnotu spojenou s určitým klíčem

Popis

bool dbmdelete ( int dbm_identifier, string key)

Vymaže z databáze hodnotu s klíčem key.

Pokud tento klíč v databázi neexistuje, vrací FALSE.

Předcházející | Domů | Další
dbmclose | Nahoru | dbmexists


dbmexists

(PHP 3, PHP 4 )

dbmexists -- Zjistí, jestli pro zadaný klíč existuje v DBM databázi hodnota

Popis

bool dbmexists ( int dbm_identifier, string key)

Vrací TRUE, pokud existuje hodnota spojená s key.

Předcházející | Domů | Další
dbmdelete | Nahoru | dbmfetch


dbmfetch

(PHP 3, PHP 4 )

dbmfetch -- Získat z DBM databáze hodnotu spojenou s určitým klíčem

Popis

string dbmfetch ( int dbm_identifier, string key)

Vrací hodnotu spojenou s key.

Předcházející | Domů | Další
dbmexists | Nahoru | dbmfirstkey


dbmfirstkey

(PHP 3, PHP 4 )

dbmfirstkey -- Získat z DBM databáze první klíč

Popis

string dbmfirstkey ( int dbm_identifier)

Vrací první klíč v databázi. Pozn.: Není zaručeno žádné pořadí, protože databáze může být vytvořena pomocí hash tabulky, což nezaručuje žádné řazení.

Předcházející | Domů | Další
dbmfetch | Nahoru | dbminsert


dbminsert

(PHP 3, PHP 4 )

dbminsert -- Vložit do DBM databáze hodnotu a klíč

Popis

int dbminsert ( int dbm_identifier, string key, string value)

Přidá do databáze hodnotu s určeným klíčem.

Vrací -1, pokud byla databáze otevřena pouze pro čtení, 0, pokud bylo vložení úspěšné, a 1, pokud už určený klíč existuje. (K nahražení hodnoty použijte dbmreplace().)

Předcházející | Domů | Další
dbmfirstkey | Nahoru | dbmnextkey


dbmnextkey

(PHP 3, PHP 4 )

dbmnextkey -- Získat další klíč z DBM databáze

Popis

string dbmnextkey ( int dbm_identifier, string key)

Vrací klíč násůedující po key. Zavoláním dbmfirstkey() následovaným postupným voláním dbmnextkey() se dají získat všechny key/value páry v DBM databázi. Například:

Příklad 1. Získání všech key/value párů v DBM databázi

$key = dbmfirstkey ($dbm_id);
while ($key) {
    echo "$key = " . dbmfetch ($dbm_id, $key) . "\n";
    $key = dbmnextkey ($dbm_id, $key);
}

Předcházející | Domů | Další
dbminsert | Nahoru | dbmopen


dbmopen

(PHP 3, PHP 4 )

dbmopen -- Otevřít DBM databázi

Popis

int dbmopen ( string filename, string flags)

První argument je název DBM souboru (plná cesta), který se má otevřít, druhý argument je jedno z "r" (pouze pro čtení), "n" (nový, implikuje čtení/zápis, a nejspíš smaže existující databázi stejného jména), "c" (vytvořit, implikuje čtení/zápis, a nesmaže existující databázi stejného jména) nebo "w" (čtení/zápis).

Při úspěchu vrací identifikátor, který se předává dalším DBM funkcím success, jinak FALSE.

Pokud používáte NDBM, NDBM ve skutečnosti vytváří soubory soubor.dir a soubor.pag. GDBM používá pouze jeden soubr, stejně jako interní flatfile podpora, a Berkeley DB vytváří soubor filename.db. Pozn.: Vedle případného zamykání souborů vlastní DBM knihovnou provádí PHP svoje vlastní zamykání souborů. PHP nemaže .lck soubory, které vytváří. Používá tyto soubory jako pevné inodes, na kterých provádí zamykání souborů. Více informací o DBM souborech viz vaše Unixové man stránky, nebo si stáhněte GNU GDBM.

Předcházející | Domů | Další
dbmnextkey | Nahoru | dbmreplace


dbmreplace

(PHP 3, PHP 4 )

dbmreplace -- Nahredit v DBM databázi hodnotu s určitým klíčem

Popis

bool dbmreplace ( int dbm_identifier, string key, string value)

Nahradí v databázi hodnotu spojenou s určeným klíčem.

Pokud tento klíče v databázi neexistuje, přidá ho.

Předcházející | Domů | Další
dbmopen | Nahoru | dbx Functions


dbx Functions

Manuál PHP
Předcházející Další

XX. dbx Functions

Úvod

The dbx module is a database abstraction layer (db 'X', where 'X' is a supported database). The dbx functions allow you to access all supported databases using a single calling convention. The dbx-functions themselves do not interface directly to the databases, but interface to the modules that are used to support these databases.

Požadavky

To be able to use a database with the dbx-module, the module must be either linked or loaded into PHP, and the database module must be supported by the dbx-module. Currently, the following databases are supported, but others will follow:

  • FrontBase (available from PHP 4.1.0).

  • Microsoft SQL Server

  • MySQL

  • ODBC

  • PostgreSQL

  • Sybase-CT (available from PHP 4.2.0).

  • Oracle (oci8) (available from PHP 4.3.0).

  • SQLite (CVS only).

Documentation for adding additional database support to dbx can be found at http://www.guidance.nl/php/dbx/doc/.

Instalace

In order to have these functions available, you must compile PHP with dbx support by using the --enable-dbx option and all options for the databases that will be used, e.g. for MySQL you must also specify --with-mysql=[DIR]. To get other supported databases to work with the dbx-module refer to their specific documentation.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 1. DBX Configuration Options

Name | Default | Changeable
dbx.colnames_case | "unchanged" | PHP_INI_SYSTEM
For further details and definition of the PHP_INI_* constants see ini_set().

Poznámka: This ini-option is available available from PHP 4.3.0.

Zde je stručné vysvětlení konfiguračních direktiv.

dbx.colnames_case string

Columns names can be returned "unchanged" or converted to "uppercase" or "lowercase". This directive can be overridden with a flag to dbx_query().

Typy prostředků

There are two resource types used in the dbx module. The first one is the link-object for a database connection, the second a result-object which holds the result of a query.

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

DBX_MYSQL (integer)

DBX_ODBC (integer)

DBX_PGSQL (integer)

DBX_MSSQL (integer)

DBX_FBSQL (integer)

DBX_OCI8 (integer) (available from PHP 4.3.0)

DBX_SYBASECT (integer)

DBX_SQLITE (integer) (CVS only)

DBX_PERSISTENT (integer)

DBX_RESULT_INFO (integer)

DBX_RESULT_INDEX (integer)

DBX_RESULT_ASSOC (integer)

DBX_RESULT_UNBUFFERED (integer) (CVS only)

DBX_COLNAMES_UNCHANGED (integer) (available from PHP 4.3.0)

DBX_COLNAMES_UPPERCASE (integer) (available from PHP 4.3.0)

DBX_COLNAMES_LOWERCASE (integer) (available from PHP 4.3.0)

DBX_CMP_NATIVE (integer)

DBX_CMP_TEXT (integer)

DBX_CMP_NUMBER (integer)

DBX_CMP_ASC (integer)

DBX_CMP_DESC (integer)

Obsah
dbx_close -- Close an open connection/database
dbx_compare -- Compare two rows for sorting purposes
dbx_connect -- Open a connection/database
dbx_error -- Report the error message of the latest function call in the module (not just in the connection)
dbx_escape_string -- Escape a string so it can safely be used in an sql-statement.
dbx_fetch_row -- Fetches rows from a query-result that had the DBX_RESULT_UNBUFFERED flag set
dbx_query -- Send a query and fetch all results (if any)
dbx_sort -- Sort a result from a dbx_query by a custom sort function

Předcházející | Domů | Další
dbmreplace | Nahoru | dbx_close


dbx_close

(PHP 4 >= 4.0.6, PHP 5)

dbx_close -- Close an open connection/database

Description

bool dbx_close ( object link_identifier)

Vrací TRUE při úspěchu, FALSE při selhání.

Příklad 1. dbx_close() example

<?php
$link = dbx_connect(DBX_MYSQL, "localhost", "db", "username", "password")
    or die("Could not connect");

echo "Connected successfully";
dbx_close($link);
?>

Poznámka: Always refer to the module-specific documentation as well.

See also dbx_connect().

Předcházející | Domů | Další
dbx Functions | Nahoru | dbx_compare


dbx_compare

(PHP 4 >= 4.1.0, PHP 5)

dbx_compare -- Compare two rows for sorting purposes

Description

int dbx_compare ( array row_a, array row_b, string column_key [, int flags])

dbx_compare() returns 0 if the row_a[$column_key] is equal to row_b[$column_key], and 1 or -1 if the former is greater or is smaller than the latter one, respectively, or vice versa if the flag is set to DBX_CMP_DESC. dbx_compare() is a helper function for dbx_sort() to ease the make and use of the custom sorting function.

The flags can be set to specify comparison direction:

  • DBX_CMP_ASC - ascending order

  • DBX_CMP_DESC - descending order

and the preferred comparison type:

  • DBX_CMP_NATIVE - no type conversion

  • DBX_CMP_TEXT - compare items as strings

  • DBX_CMP_NUMBER - compare items numerically

One of the direction and one of the type constant can be combined with bitwise OR operator (|). The default value for the flags parameter is DBX_CMP_ASC | DBX_CMP_NATIVE.

Příklad 1. dbx_compare() example

<?php
function user_re_order($a, $b)
{
    $rv = dbx_compare($a, $b, "parentid", DBX_CMP_DESC);
    if (!$rv) {
        $rv = dbx_compare($a, $b, "id", DBX_CMP_NUMBER);
    }
    return $rv;
}

$link   = dbx_connect(DBX_ODBC, "", "db", "username", "password")
    or die("Could not connect");

$result = dbx_query($link, "SELECT id, parentid, description FROM table ORDER BY id");
    // data in $result is now ordered by id

dbx_sort($result, "user_re_order");
    // date in $result is now ordered by parentid (descending), then by id

dbx_close($link);
?>

See also dbx_sort().

Předcházející | Domů | Další
dbx_close | Nahoru | dbx_connect


dbx_connect

(PHP 4 >= 4.0.6, PHP 5)

dbx_connect -- Open a connection/database

Description

object dbx_connect ( mixed module, string host, string database, string username, string password [, int persistent])

dbx_connect() returns an object on success, FALSE on error. If a connection has been made but the database could not be selected, the connection is closed and FALSE is returned. The persistent parameter can be set to DBX_PERSISTENT, if so, a persistent connection will be created.

The module parameter can be either a string or a constant, though the latter form is preferred. The possible values are given below, but keep in mind that they only work if the module is actually loaded.

  • DBX_MYSQL or "mysql"

  • DBX_ODBC or "odbc"

  • DBX_PGSQL or "pgsql"

  • DBX_MSSQL or "mssql"

  • DBX_FBSQL or "fbsql" (available from PHP 4.1.0)

  • DBX_SYBASECT or "sybase_ct" (available from PHP 4.2.0)

  • DBX_OCI8 or "oci8" (available from PHP 4.3.0)

  • DBX_SQLITE or "sqlite" (CVS only)

The host, database, username and password parameters are expected, but not always used depending on the connect functions for the abstracted module.

The returned object has three properties:

database

It is the name of the currently selected database.

handle

It is a valid handle for the connected database, and as such it can be used in module-specific functions (if required).

<?php
$link = dbx_connect(DBX_MYSQL, "localhost", "db", "username", "password");
mysql_close($link->handle); // dbx_close($link) would be better here
?>

module

It is used internally by dbx only, and is actually the module number mentioned above.

Příklad 1. dbx_connect() example

<?php
$link = dbx_connect(DBX_ODBC, "", "db", "username", "password", DBX_PERSISTENT)
    or die("Could not connect");

echo "Connected successfully";
dbx_close($link);
?>

Poznámka: Always refer to the module-specific documentation as well.

See also dbx_close().

Předcházející | Domů | Další
dbx_compare | Nahoru | dbx_error


dbx_error

(PHP 4 >= 4.0.6, PHP 5)

dbx_error -- Report the error message of the latest function call in the module (not just in the connection)

Description

string dbx_error ( object link_identifier)

dbx_error() returns a string containing the error message from the last function call of the abstracted module (e.g. mysql module). If there are multiple connections in the same module, just the last error is given. If there are connections on different modules, the latest error is returned for the module specified by the link_identifier parameter.

Příklad 1. dbx_error() example

<?php
$link   = dbx_connect(DBX_MYSQL, "localhost", "db", "username", "password")
    or die("Could not connect");

$result = dbx_query($link, "select id from non_existing_table");
if ($result == 0) {
    echo dbx_error($link);
}
dbx_close($link);
?>

Poznámka: Always refer to the module-specific documentation as well.

The error message for Microsoft SQL Server is actually the result of the mssql_get_last_message() function.

The error message for Oracle (oci8) is not implemented (yet).

Předcházející | Domů | Další
dbx_connect | Nahoru | dbx_escape_string


dbx_escape_string

(PHP 4 >= 4.3.0, PHP 5)

dbx_escape_string -- Escape a string so it can safely be used in an sql-statement.

Description

string dbx_escape_string ( object link_identifier, string text)

dbx_escape_string() returns the text, escaped where necessary (such as quotes, backslashes etc). It returns NULL on error.

Příklad 1. dbx_escape_string() example

<?php
$link   = dbx_connect(DBX_MYSQL, "localhost", "db", "username", "password")
    or die("Could not connect");

$text = dbx_escape_string($link, "It\'s quoted and backslashed (\\).");
$result = dbx_query($link, "insert into tbl (txt) values ('" . $text . "')");
if ($result == 0) {
    echo dbx_error($link);
}
dbx_close($link);
?>

See also dbx_query().

Předcházející | Domů | Další
dbx_error | Nahoru | dbx_fetch_row


dbx_fetch_row

(PHP 5)

dbx_fetch_row -- Fetches rows from a query-result that had the DBX_RESULT_UNBUFFERED flag set

Description

object dbx_fetch_row ( object result_identifier)

dbx_fetch_row() returns a row on success, and 0 on failure (e.g. when no more rows are available). When the DBX_RESULT_UNBUFFERED is not set in the query, dbx_fetch_row() will fail as all rows have already been fetched into the results data property.

As a side effect, the rows property of the query-result object is incremented for each successful call to dbx_fetch_row().

Příklad 1. How to handle the returned value

<?php
$result = dbx_query($link, 'SELECT id, parentid, description FROM table', DBX_RESULT_UNBUFFERED);

echo "<table>\n";
while ($row = dbx_fetch_row($result)) {
    echo "<tr>\n";
    foreach ($row as $field) {
        echo "<td>$field</td>";
    }
    echo "</tr>\n";
}
echo "</table>\n";
?>

The result_identifier parameter is the result object returned by a call to dbx_query().

The returned array contains the same information as any row would have in the dbx_query result data property, including columns accessible by index or fieldname when the flags for dbx_guery were set that way.

See also dbx_query().

Předcházející | Domů | Další
dbx_escape_string | Nahoru | dbx_query


dbx_query

(PHP 4 >= 4.0.6, PHP 5)

dbx_query -- Send a query and fetch all results (if any)

Description

object dbx_query ( object link_identifier, string sql_statement [, int flags])

dbx_query() returns an object or 1 on success, and 0 on failure. The result object is returned only if the query given in sql_statement produces a result set (i.e. a SELECT query, even if the result set is empty).

Příklad 1. How to handle the returned value

<?php
$link   = dbx_connect(DBX_ODBC, "", "db", "username", "password")
    or die("Could not connect");

$result = dbx_query($link, 'SELECT id, parentid, description FROM table');

if (is_object($result) ) {
    // ... do some stuff here, see detailed examples below ...
    // first, print out field names and types
    // then, draw a table filled with the returned field values
} else {
    exit("Query failed");
}

dbx_close($link);
?>

The flags parameter is used to control the amount of information that is returned. It may be any combination of the following constants with the bitwise OR operator (|). The DBX_COLNAMES_* flags override the dbx.colnames_case setting from php.ini.

DBX_RESULT_INDEX

It is always set, that is, the returned object has a data property which is a 2 dimensional array indexed numerically. For example, in the expression data[2][3] 2 stands for the row (or record) number and 3 stands for the column (or field) number. The first row and column are indexed at 0.

If DBX_RESULT_ASSOC is also specified, the returning object contains the information related to DBX_RESULT_INFO too, even if it was not specified.

DBX_RESULT_INFO

It provides info about columns, such as field names and field types.

DBX_RESULT_ASSOC

It effects that the field values can be accessed with the respective column names used as keys to the returned object's data property.

Associated results are actually references to the numerically indexed data, so modifying data[0][0] causes that data[0]['field_name_for_first_column'] is modified as well.

DBX_RESULT_UNBUFFERED (CVS only)

This flag will not create the data property, and the rows property will initially be 0. Use this flag for large datasets, and use dbx_fetch_row() to retrieve the results row by row.

The dbx_fetch_row() function will return rows that are conformant to the flags set with this query. Incidentally, it will also update the rows each time it is called.

DBX_COLNAMES_UNCHANGED (available from PHP 4.3.0)

The case of the returned column names will not be changed.

DBX_COLNAMES_UPPERCASE (available from PHP 4.3.0)

The case of the returned column names will be changed to uppercase.

DBX_COLNAMES_LOWERCASE (available from PHP 4.3.0)

The case of the returned column names will be changed to lowercase.

Note that DBX_RESULT_INDEX is always used, regardless of the actual value of flags parameter. This means that only the following combinations are effective:

  • DBX_RESULT_INDEX

  • DBX_RESULT_INDEX | DBX_RESULT_INFO

  • DBX_RESULT_INDEX | DBX_RESULT_INFO | DBX_RESULT_ASSOC - this is the default, if flags is not specified.

The returned object has four or five properties depending on flags:

handle

It is a valid handle for the connected database, and as such it can be used in module specific functions (if required).

<?php
$result = dbx_query($link, "SELECT id FROM table");
mysql_field_len($result->handle, 0);
?>

cols and rows

These contain the number of columns (or fields) and rows (or records) respectively.

<?php
$result = dbx_query($link, 'SELECT id FROM table');
echo $result->rows; // number of records
echo $result->cols; // number of fields
?>

info (optional)

It is returned only if either DBX_RESULT_INFO or DBX_RESULT_ASSOC is specified in the flags parameter. It is a 2 dimensional array, that has two named rows (name and type) to retrieve column information.

Příklad 2. lists each field's name and type

<?php
$result = dbx_query($link, 'SELECT id FROM table',
                     DBX_RESULT_INDEX | DBX_RESULT_INFO);

for ($i = 0; $i < $result->cols; $i++ ) {
    echo $result->info['name'][$i] . "\n";
    echo $result->info['type'][$i] . "\n";
}
?>
data

This property contains the actual resulting data, possibly associated with column names as well depending on flags. If DBX_RESULT_ASSOC is set, it is possible to use $result->data[2]["field_name"].

Příklad 3. outputs the content of data property into HTML table

<?php
$result = dbx_query($link, 'SELECT id, parentid, description FROM table');

echo "<table>\n";
foreach ($result->data as $row) {
    echo "<tr>\n";
    foreach ($row as $field) {
        echo "<td>$field</td>";
    }
    echo "</tr>\n";
}
echo "</table>\n";
?>

Příklad 4. How to handle UNBUFFERED queries

<?php

$result = dbx_query ($link, 'SELECT id, parentid, description FROM table', DBX_RESULT_UNBUFFERED);

echo "<table>\n";
while ($row = dbx_fetch_row($result)) {
    echo "<tr>\n";
    foreach ($row as $field) {
        echo "<td>$field</td>";
    }
    echo "</tr>\n";
}
echo "</table>\n";

?>

Poznámka: Always refer to the module-specific documentation as well.

Column names for queries on an Oracle database are returned in lowercase.

See also dbx_escape_string(),
dbx_fetch_row() and
dbx_connect().

Předcházející | Domů | Další
dbx_fetch_row | Nahoru | dbx_sort


dbx_sort

(PHP 4 >= 4.0.6, PHP 5)

dbx_sort -- Sort a result from a dbx_query by a custom sort function

Description

bool dbx_sort ( object result, string user_compare_function)

Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: It is always better to use ORDER BY SQL clause instead of dbx_sort(), if possible.

Příklad 1. dbx_sort() example

<?php
function user_re_order($a, $b)
{
    $rv = dbx_compare($a, $b, "parentid", DBX_CMP_DESC);
    if (!$rv) {
        $rv = dbx_compare($a, $b, "id", DBX_CMP_NUMBER);
    }
    return $rv;
}

$link   = dbx_connect(DBX_ODBC, "", "db", "username", "password")
    or die("Could not connect");

$result = dbx_query($link, "SELECT id, parentid, description FROM tbl ORDER BY id");
    // data in $result is now ordered by id

dbx_sort($result, "user_re_order");
    // data in $result is now ordered by parentid (descending), then by id

dbx_close($link);
?>

See also dbx_compare().

Předcházející | Domů | Další
dbx_query | Nahoru | DB++ Functions


DB++ Functions

Manuál PHP
Předcházející Další

XXI. DB++ Functions

Varování

Toto rozšíření je EXPERIMENTÁLNÍ. Chování tohoto rozšíření, názvy funkcí a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může bez ohlášení změnit. Berte to v úvahu a používejte tento modul na vlastní nebezpečí.

Úvod

db++, made by the German company Concept asa, is a relational database system with high performance and low memory and disk usage in mind. While providing SQL as an additional language interface, it is not really a SQL database in the first place but provides its own AQL query language which is much more influenced by the relational algebra then SQL is.

Concept asa always had an interest in supporting open source languages, db++ has had Perl and Tcl call interfaces for years now and uses Tcl as its internal stored procedure language.

Požadavky

This extension relies on external client libraries so you have to have a db++ client installed on the system you want to use this extension on.

Concept asa provides db++ Demo versions and documentation for Linux, some other Unix versions. There is also a Windows version of db++, but this extension doesn't support it (yet).

Instalace

In order to build this extension yourself you need the db++ client libraries and header files to be installed on your system (these are included in the db++ installation archives by default). You have to run configure with option --with-dbplus to build this extension.

configure looks for the client libraries and header files under the default paths /usr/dbplus, /usr/local/dbplus and /opt/dblus. If you have installed db++ in a different place you have add the installation path to the configure option like this: --with-dbplus=/your/installation/path.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

dbplus_relation

Most db++ functions operate on or return dbplus_relation resources. A dbplus_relation is a handle to a stored relation or a relation generated as the result of a query.

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

db++ error codes

Tabulka 1. DB++ Error Codes

PHP Constant | db++ constant | meaning
DBPLUS_ERR_NOERR (integer) | ERR_NOERR | Null error condition
DBPLUS_ERR_DUPLICATE (integer) | ERR_DUPLICATE | Tried to insert a duplicate tuple
DBPLUS_ERR_EOSCAN (integer) | ERR_EOSCAN | End of scan from rget()
DBPLUS_ERR_EMPTY (integer) | ERR_EMPTY | Relation is empty (server)
DBPLUS_ERR_CLOSE (integer) | ERR_CLOSE | The server can't close
DBPLUS_ERR_WLOCKED (integer) | ERR_WLOCKED | The record is write locked
DBPLUS_ERR_LOCKED (integer) | ERR_LOCKED | Relation was already locked
DBPLUS_ERR_NOLOCK (integer) | ERR_NOLOCK | Relation cannot be locked
DBPLUS_ERR_READ (integer) | ERR_READ | Read error on relation
DBPLUS_ERR_WRITE (integer) | ERR_WRITE | Write error on relation
DBPLUS_ERR_CREATE (integer) | ERR_CREATE | Create() system call failed
DBPLUS_ERR_LSEEK (integer) | ERR_LSEEK | Lseek() system call failed
DBPLUS_ERR_LENGTH (integer) | ERR_LENGTH | Tuple exceeds maximum length
DBPLUS_ERR_OPEN (integer) | ERR_OPEN | Open() system call failed
DBPLUS_ERR_WOPEN (integer) | ERR_WOPEN | Relation already opened for writing
DBPLUS_ERR_MAGIC (integer) | ERR_MAGIC | File is not a relation
DBPLUS_ERR_VERSION (integer) | ERR_VERSION | File is a very old relation
DBPLUS_ERR_PGSIZE (integer) | ERR_PGSIZE | Relation uses a different page size
DBPLUS_ERR_CRC (integer) | ERR_CRC | Invalid crc in the superpage
DBPLUS_ERR_PIPE (integer) | ERR_PIPE | Piped relation requires lseek()
DBPLUS_ERR_NIDX (integer) | ERR_NIDX | Too many secondary indices
DBPLUS_ERR_MALLOC (integer) | ERR_MALLOC | Malloc() call failed
DBPLUS_ERR_NUSERS (integer) | ERR_NUSERS | Error use of max users
DBPLUS_ERR_PREEXIT (integer) | ERR_PREEXIT | Caused by invalid usage
DBPLUS_ERR_ONTRAP (integer) | ERR_ONTRAP | Caused by a signal
DBPLUS_ERR_PREPROC (integer) | ERR_PREPROC | Error in the preprocessor
DBPLUS_ERR_DBPARSE (integer) | ERR_DBPARSE | Error in the parser
DBPLUS_ERR_DBRUNERR (integer) | ERR_DBRUNERR | Run error in db
DBPLUS_ERR_DBPREEXIT (integer) | ERR_DBPREEXIT | Exit condition caused by prexit() * procedure
DBPLUS_ERR_WAIT (integer) | ERR_WAIT | Wait a little (Simple only)
DBPLUS_ERR_CORRUPT_TUPLE (integer) | ERR_CORRUPT_TUPLE | A client sent a corrupt tuple
DBPLUS_ERR_WARNING0 (integer) | ERR_WARNING0 | The Simple routines encountered a non fatal error which was corrected
DBPLUS_ERR_PANIC (integer) | ERR_PANIC | The server should not really die but after a disaster send ERR_PANIC to all its clients
DBPLUS_ERR_FIFO (integer) | ERR_FIFO | Can't create a fifo
DBPLUS_ERR_PERM (integer) | ERR_PERM | Permission denied
DBPLUS_ERR_TCL (integer) | ERR_TCL | TCL_error
DBPLUS_ERR_RESTRICTED (integer) | ERR_RESTRICTED | Only two users
DBPLUS_ERR_USER (integer) | ERR_USER | An error in the use of the library by an application programmer
DBPLUS_ERR_UNKNOWN (integer) | ERR_UNKNOWN |

Obsah
dbplus_add -- Add a tuple to a relation
dbplus_aql -- Perform AQL query
dbplus_chdir -- Get/Set database virtual current directory
dbplus_close -- Close a relation
dbplus_curr -- Get current tuple from relation
dbplus_errcode -- Get error string for given errorcode or last error
dbplus_errno -- Get error code for last operation
dbplus_find -- Set a constraint on a relation
dbplus_first -- Get first tuple from relation
dbplus_flush -- Flush all changes made on a relation
dbplus_freealllocks -- Free all locks held by this client
dbplus_freelock -- Release write lock on tuple
dbplus_freerlocks -- Free all tuple locks on given relation
dbplus_getlock -- Get a write lock on a tuple
dbplus_getunique -- Get an id number unique to a relation
dbplus_info -- ???
dbplus_last -- Get last tuple from relation
dbplus_lockrel -- Request write lock on relation
dbplus_next -- Get next tuple from relation
dbplus_open -- Open relation file
dbplus_prev -- Get previous tuple from relation
dbplus_rchperm -- Change relation permissions
dbplus_rcreate -- Creates a new DB++ relation
dbplus_rcrtexact -- Creates an exact but empty copy of a relation including indices
dbplus_rcrtlike -- Creates an empty copy of a relation with default indices
dbplus_resolve -- Resolve host information for relation
dbplus_restorepos -- ???
dbplus_rkeys -- Specify new primary key for a relation
dbplus_ropen -- Open relation file local
dbplus_rquery -- Perform local (raw) AQL query
dbplus_rrename -- Rename a relation
dbplus_rsecindex -- Create a new secondary index for a relation
dbplus_runlink -- Remove relation from filesystem
dbplus_rzap -- Remove all tuples from relation
dbplus_savepos -- ???
dbplus_setindex -- ???
dbplus_setindexbynumber -- ???
dbplus_sql -- Perform SQL query
dbplus_tcl -- Execute TCL code on server side
dbplus_tremove -- Remove tuple and return new current tuple
dbplus_undo -- ???
dbplus_undoprepare -- ???
dbplus_unlockrel -- Give up write lock on relation
dbplus_unselect -- Remove a constraint from relation
dbplus_update -- Update specified tuple in relation
dbplus_xlockrel -- Request exclusive lock on relation
dbplus_xunlockrel -- Free exclusive lock on relation

Předcházející | Domů | Další
dbx_sort | Nahoru | dbplus_add


dbplus_add

(4.1.0 - 4.2.3 only)

dbplus_add -- Add a tuple to a relation

Description

int dbplus_add ( resource relation, array tuple)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

This function will add a tuple to a relation. The tuple data is an array of attribute/value pairs to be inserted into the given relation. After successful execution the tuple array will contain the complete data of the newly created tuple, including all implicitly set domain fields like sequences.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

Předcházející | Domů | Další
DB++ Functions | Nahoru | dbplus_aql


dbplus_aql

(4.1.0 - 4.2.3 only)

dbplus_aql -- Perform AQL query

Description

resource dbplus_aql ( string query [, string server [, string dbpath]])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

dbplus_aql() will execute an AQL query on the given server and dbpath.

On success it will return a relation handle. The result data may be fetched from this relation by calling dbplus_next() and dbplus_current(). Other relation access functions will not work on a result relation.

Further information on the AQL A... Query Language is provided in the original db++ manual.

Předcházející | Domů | Další
dbplus_add | Nahoru | dbplus_chdir


dbplus_chdir

(4.1.0 - 4.2.3 only)

dbplus_chdir -- Get/Set database virtual current directory

Description

string dbplus_chdir ( [string newdir])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

dbplus_chdir() will change the virtual current directory where relation files will be looked for by dbplus_open(). dbplus_chdir() will return the absolute path of the current directory. Calling dbplus_chdir() without giving any newdir may be used to query the current working directory.

Předcházející | Domů | Další
dbplus_aql | Nahoru | dbplus_close


dbplus_close

(4.1.0 - 4.2.3 only)

dbplus_close -- Close a relation

Description

int dbplus_close ( resource relation)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Calling dbplus_close() will close a relation previously opened by dbplus_open().

Předcházející | Domů | Další
dbplus_chdir | Nahoru | dbplus_curr


dbplus_curr

(4.1.0 - 4.2.3 only)

dbplus_curr -- Get current tuple from relation

Description

int dbplus_curr ( resource relation, array tuple)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

dbplus_curr() will read the data for the current tuple for the given relation and will pass it back as an associative array in tuple.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

See also dbplus_first(),
dbplus_prev(),
dbplus_next(), and
dbplus_last().

Předcházející | Domů | Další
dbplus_close | Nahoru | dbplus_errcode


dbplus_errcode

(4.1.0 - 4.2.3 only)

dbplus_errcode -- Get error string for given errorcode or last error

Description

string dbplus_errcode ( int errno)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

dbplus_errcode() returns a cleartext error string for the error code passed as errno of for the result code of the last db++ operation if no parameter is given.

Předcházející | Domů | Další
dbplus_curr | Nahoru | dbplus_errno


dbplus_errno

(4.1.0 - 4.2.3 only)

dbplus_errno -- Get error code for last operation

Description

int dbplus_errno ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

dbplus_errno() will return the error code returned by the last db++ operation.

See also dbplus_errcode().

Předcházející | Domů | Další
dbplus_errcode | Nahoru | dbplus_find


dbplus_find

(4.1.0 - 4.2.3 only)

dbplus_find -- Set a constraint on a relation

Description

int dbplus_find ( resource relation, array constraints, mixed tuple)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

dbplus_find() will place a constraint on the given relation. Further calls to functions like dbplus_curr() or dbplus_next() will only return tuples matching the given constraints.

Constraints are triplets of strings containing of a domain name, a comparison operator and a comparison value. The constraints parameter array may consist of a collection of string arrays, each of which contains a domain, an operator and a value, or of a single string array containing a multiple of three elements.

The comparison operator may be one of the following strings: '==', '>', '>=', '<', '<=', '!=', '~' for a regular expression match and 'BAND' or 'BOR' for bitwise operations.

See also dbplus_unselect().

Předcházející | Domů | Další
dbplus_errno | Nahoru | dbplus_first


dbplus_first

(4.1.0 - 4.2.3 only)

dbplus_first -- Get first tuple from relation

Description

int dbplus_first ( resource relation, array tuple)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

dbplus_curr() will read the data for the first tuple for the given relation, make it the current tuple and pass it back as an associative array in tuple.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

See also dbplus_curr(),
dbplus_prev(),
dbplus_next(), and
dbplus_last().

Předcházející | Domů | Další
dbplus_find | Nahoru | dbplus_flush


dbplus_flush

(4.1.0 - 4.2.3 only)

dbplus_flush -- Flush all changes made on a relation

Description

int dbplus_flush ( resource relation)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

dbplus_flush() will write all changes applied to relation since the last flush to disk.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

Předcházející | Domů | Další
dbplus_first | Nahoru | dbplus_freealllocks


dbplus_freealllocks

(4.1.0 - 4.2.3 only)

dbplus_freealllocks -- Free all locks held by this client

Description

int dbplus_freealllocks ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

dbplus_freealllocks() will free all tuple locks held by this client.

See also dbplus_getlock(),
dbplus_freelock(), and
dbplus_freerlocks().

Předcházející | Domů | Další
dbplus_flush | Nahoru | dbplus_freelock


dbplus_freelock

(4.1.0 - 4.2.3 only)

dbplus_freelock -- Release write lock on tuple

Description

int dbplus_freelock ( resource relation, string tname)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

dbplus_freelock() will release a write lock on the given tuple previously obtained by dbplus_getlock().

See also dbplus_getlock(),
dbplus_freerlocks(), and
dbplus_freealllocks().

Předcházející | Domů | Další
dbplus_freealllocks | Nahoru | dbplus_freerlocks


dbplus_freerlocks

(4.1.0 - 4.2.3 only)

dbplus_freerlocks -- Free all tuple locks on given relation

Description

int dbplus_freerlocks ( resource relation)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

dbplus_freerlocks() will free all tuple locks held on the given relation.

See also dbplus_getlock(),
dbplus_freelock(), and
dbplus_freealllocks().

Předcházející | Domů | Další
dbplus_freelock | Nahoru | dbplus_getlock


dbplus_getlock

(4.1.0 - 4.2.3 only)

dbplus_getlock -- Get a write lock on a tuple

Description

int dbplus_getlock ( resource relation, string tname)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

dbplus_getlock() will request a write lock on the specified tuple. It will return zero on success or a non-zero error code, especially DBPLUS_ERR_WLOCKED, on failure.

See also dbplus_freelock(),
dbplus_freerlocks(), and
dbplus_freealllocks().

Předcházející | Domů | Další
dbplus_freerlocks | Nahoru | dbplus_getunique


dbplus_getunique

(4.1.0 - 4.2.3 only)

dbplus_getunique -- Get an id number unique to a relation

Description

int dbplus_getunique ( resource relation, int uniqueid)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

dbplus_getunique() will obtain a number guaranteed to be unique for the given relation and will pass it back in the variable given as uniqueid.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

Předcházející | Domů | Další
dbplus_getlock | Nahoru | dbplus_info


dbplus_info

(4.1.0 - 4.2.3 only)

dbplus_info -- ???

Description

int dbplus_info ( resource relation, string key, array &result)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Not implemented yet.

Předcházející | Domů | Další
dbplus_getunique | Nahoru | dbplus_last


dbplus_last

(4.1.0 - 4.2.3 only)

dbplus_last -- Get last tuple from relation

Description

int dbplus_last ( resource relation, array tuple)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

dbplus_curr() will read the data for the last tuple for the given relation, make it the current tuple and pass it back as an associative array in tuple.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

See also dbplus_first(),
dbplus_curr(),
dbplus_prev(), and
dbplus_next().

Předcházející | Domů | Další
dbplus_info | Nahoru | dbplus_lockrel


dbplus_lockrel

(no version information, might be only in CVS)

dbplus_lockrel -- Request write lock on relation

Description

int dbplus_lockrel ( resource relation)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

dbplus_lockrel() will request a write lock on the given relation. Other clients may still query the relation, but can't alter it while it is locked.

Předcházející | Domů | Další
dbplus_last | Nahoru | dbplus_next


dbplus_next

(4.1.0 - 4.2.3 only)

dbplus_next -- Get next tuple from relation

Description

int dbplus_next ( resource relation, array &tuple)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

dbplus_curr() will read the data for the next tuple for the given relation, will make it the current tuple and will pass it back as an associative array in tuple.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

See also dbplus_first(),
dbplus_curr(),
dbplus_prev(), and
dbplus_last().

Předcházející | Domů | Další
dbplus_lockrel | Nahoru | dbplus_open


dbplus_open

(4.1.0 - 4.2.3 only)

dbplus_open -- Open relation file

Description

resource dbplus_open ( string name)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

The relation file name will be opened. name can be either a file name or a relative or absolute path name. This will be mapped in any case to an absolute relation file path on a specific host machine and server.

On success a relation file resource (cursor) is returned which must be used in any subsequent commands referencing the relation. Failure leads to a zero return value, the actual error code may be asked for by calling dbplus_errno().

Předcházející | Domů | Další
dbplus_next | Nahoru | dbplus_prev


dbplus_prev

(4.1.0 - 4.2.3 only)

dbplus_prev -- Get previous tuple from relation

Description

int dbplus_prev ( resource relation, array tuple)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

dbplus_curr() will read the data for the previous tuple for the given relation, will make it the current tuple and will pass it back as an associative array in tuple.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

See also dbplus_first(),
dbplus_curr(),
dbplus_next(), and
dbplus_last().

Předcházející | Domů | Další
dbplus_open | Nahoru | dbplus_rchperm


dbplus_rchperm

(4.1.0 - 4.2.3 only)

dbplus_rchperm -- Change relation permissions

Description

int dbplus_rchperm ( resource relation, int mask, string user, string group)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

dbplus_rchperm() will change access permissions as specified by mask, user and group. The values for these are operating system specific.

Předcházející | Domů | Další
dbplus_prev | Nahoru | dbplus_rcreate


dbplus_rcreate

(4.1.0 - 4.2.3 only)

dbplus_rcreate -- Creates a new DB++ relation

Description

resource dbplus_rcreate ( string name, mixed domlist [, bool overwrite])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

dbplus_rcreate() will create a new relation named name. An existing relation by the same name will only be overwritten if the relation is currently not in use and overwrite is set to TRUE.

domlist should contain the domain specification for the new relation within an array of domain description strings. ( dbplus_rcreate() will also accept a string with space delimited domain description strings, but it is recommended to use an array). A domain description string consists of a domain name unique to this relation, a slash and a type specification character. See the db++ documentation, especially the dbcreate(1) manpage, for a description of available type specifiers and their meanings.

Předcházející | Domů | Další
dbplus_rchperm | Nahoru | dbplus_rcrtexact


dbplus_rcrtexact

(4.1.0 - 4.2.3 only)

dbplus_rcrtexact -- Creates an exact but empty copy of a relation including indices

Description

resource dbplus_rcrtexact ( string name, resource relation, bool overwrite)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

dbplus_rcrtexact() will create an exact but empty copy of the given relation under a new name. An existing relation by the same name will only be overwritten if overwrite is TRUE and no other process is currently using the relation.

Předcházející | Domů | Další
dbplus_rcreate | Nahoru | dbplus_rcrtlike


dbplus_rcrtlike

(4.1.0 - 4.2.3 only)

dbplus_rcrtlike -- Creates an empty copy of a relation with default indices

Description

resource dbplus_rcrtlike ( string name, resource relation, int flag)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

dbplus_rcrtexact() will create an empty copy of the given relation under a new name, but with default indices. An existing relation by the same name will only be overwritten if overwrite is TRUE and no other process is currently using the relation.

Předcházející | Domů | Další
dbplus_rcrtexact | Nahoru | dbplus_resolve


dbplus_resolve

(4.1.0 - 4.2.3 only)

dbplus_resolve -- Resolve host information for relation

Description

int dbplus_resolve ( string relation_name)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

dbplus_resolve() will try to resolve the given relation_name and find out internal server id, real hostname and the database path on this host. The function will return an array containing these values under the keys 'sid', 'host' and 'host_path' or FALSE on error.

See also dbplus_tcl().

Předcházející | Domů | Další
dbplus_rcrtlike | Nahoru | dbplus_restorepos


dbplus_restorepos

(4.1.0 - 4.2.3 only)

dbplus_restorepos -- ???

Description

int dbplus_restorepos ( resource relation, array tuple)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Not implemented yet.

Předcházející | Domů | Další
dbplus_resolve | Nahoru | dbplus_rkeys


dbplus_rkeys

(4.1.0 - 4.2.3 only)

dbplus_rkeys -- Specify new primary key for a relation

Description

resource dbplus_rkeys ( resource relation, mixed domlist)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

dbplus_rkeys() will replace the current primary key for relation with the combination of domains specified by domlist.

domlist may be passed as a single domain name string or as an array of domain names.

Předcházející | Domů | Další
dbplus_restorepos | Nahoru | dbplus_ropen


dbplus_ropen

(4.1.0 - 4.2.3 only)

dbplus_ropen -- Open relation file local

Description

resource dbplus_ropen ( string name)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

dbplus_ropen() will open the relation file locally for quick access without any client/server overhead. Access is read only and only dbplus_current() and dbplus_next() may be applied to the returned relation.

Předcházející | Domů | Další
dbplus_rkeys | Nahoru | dbplus_rquery


dbplus_rquery

(4.1.0 - 4.2.3 only)

dbplus_rquery -- Perform local (raw) AQL query

Description

int dbplus_rquery ( string query, string dbpath)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

dbplus_rquery() performs a local (raw) AQL query using an AQL interpreter embedded into the db++ client library. dbplus_rquery() is faster than dbplus_aql() but will work on local data only.

Předcházející | Domů | Další
dbplus_ropen | Nahoru | dbplus_rrename


dbplus_rrename

(4.1.0 - 4.2.3 only)

dbplus_rrename -- Rename a relation

Description

int dbplus_rrename ( resource relation, string name)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

dbplus_rrename() will change the name of relation to name.

Předcházející | Domů | Další
dbplus_rquery | Nahoru | dbplus_rsecindex


dbplus_rsecindex

(4.1.0 - 4.2.3 only)

dbplus_rsecindex -- Create a new secondary index for a relation

Description

resource dbplus_rsecindex ( resource relation, mixed domlist, int type)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

dbplus_rsecindex() will create a new secondary index for relation with consists of the domains specified by domlist and is of type type

domlist may be passed as a single domain name string or as an array of domain names.

Předcházející | Domů | Další
dbplus_rrename | Nahoru | dbplus_runlink


dbplus_runlink

(4.1.0 - 4.2.3 only)

dbplus_runlink -- Remove relation from filesystem

Description

int dbplus_runlink ( resource relation)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

dbplus_unlink() will close and remove the relation.

Předcházející | Domů | Další
dbplus_rsecindex | Nahoru | dbplus_rzap


dbplus_rzap

(4.1.0 - 4.2.3 only)

dbplus_rzap -- Remove all tuples from relation

Description

int dbplus_rzap ( resource relation)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

dbplus_rzap() will remove all tuples from relation.

Předcházející | Domů | Další
dbplus_runlink | Nahoru | dbplus_savepos


dbplus_savepos

(4.1.0 - 4.2.3 only)

dbplus_savepos -- ???

Description

int dbplus_savepos ( resource relation)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Not implemented yet.

Předcházející | Domů | Další
dbplus_rzap | Nahoru | dbplus_setindex


dbplus_setindex

(4.1.0 - 4.2.3 only)

dbplus_setindex -- ???

Description

int dbplus_setindex ( resource relation, string idx_name)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Not implemented yet.

Předcházející | Domů | Další
dbplus_savepos | Nahoru | dbplus_setindexbynumber


dbplus_setindexbynumber

(4.1.0 - 4.2.3 only)

dbplus_setindexbynumber -- ???

Description

int dbplus_setindexbynumber ( resource relation, int idx_number)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Not implemented yet.

Předcházející | Domů | Další
dbplus_setindex | Nahoru | dbplus_sql


dbplus_sql

(4.1.0 - 4.2.3 only)

dbplus_sql -- Perform SQL query

Description

resource dbplus_sql ( string query, string server, string dbpath)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Not implemented yet.

Předcházející | Domů | Další
dbplus_setindexbynumber | Nahoru | dbplus_tcl


dbplus_tcl

(4.1.0 - 4.2.3 only)

dbplus_tcl -- Execute TCL code on server side

Description

int dbplus_tcl ( int sid, string script)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

A db++ server will prepare a TCL interpreter for each client connection. This interpreter will enable the server to execute TCL code provided by the client as a sort of stored procedures to improve the performance of database operations by avoiding client/server data transfers and context switches.

dbplus_tcl() needs to pass the client connection id the TCL script code should be executed by. dbplus_resolve() will provide this connection id. The function will return whatever the TCL code returns or a TCL error message if the TCL code fails.

See also dbplus_resolve().

Předcházející | Domů | Další
dbplus_sql | Nahoru | dbplus_tremove


dbplus_tremove

(4.1.0 - 4.2.3 only)

dbplus_tremove -- Remove tuple and return new current tuple

Description

int dbplus_tremove ( resource relation, array tuple [, array current])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

dbplus_tremove() removes tuple from relation if it perfectly matches a tuple within the relation. current, if given, will contain the data of the new current tuple after calling dbplus_tremove().

Předcházející | Domů | Další
dbplus_tcl | Nahoru | dbplus_undo


dbplus_undo

(4.1.0 - 4.2.3 only)

dbplus_undo -- ???

Description

int dbplus_undo ( resource relation)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Not implemented yet.

Předcházející | Domů | Další
dbplus_tremove | Nahoru | dbplus_undoprepare


dbplus_undoprepare

(4.1.0 - 4.2.3 only)

dbplus_undoprepare -- ???

Description

int dbplus_undoprepare ( resource relation)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Not implemented yet.

Předcházející | Domů | Další
dbplus_undo | Nahoru | dbplus_unlockrel


dbplus_unlockrel

(4.1.0 - 4.2.3 only)

dbplus_unlockrel -- Give up write lock on relation

Description

int dbplus_unlockrel ( resource relation)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

dbplus_unlockrel() will release a write lock previously obtained by dbplus_lockrel().

Předcházející | Domů | Další
dbplus_undoprepare | Nahoru | dbplus_unselect


dbplus_unselect

(4.1.0 - 4.2.3 only)

dbplus_unselect -- Remove a constraint from relation

Description

int dbplus_unselect ( resource relation)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Calling dbplus_unselect() will remove a constraint previously set by dbplus_find() on relation.

Předcházející | Domů | Další
dbplus_unlockrel | Nahoru | dbplus_update


dbplus_update

(4.1.0 - 4.2.3 only)

dbplus_update -- Update specified tuple in relation

Description

int dbplus_update ( resource relation, array old, array new)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

dbplus_update() replaces the tuple given by old with the data from new if and only if old completely matches a tuple within relation.

Předcházející | Domů | Další
dbplus_unselect | Nahoru | dbplus_xlockrel


dbplus_xlockrel

(4.1.0 - 4.2.3 only)

dbplus_xlockrel -- Request exclusive lock on relation

Description

int dbplus_xlockrel ( resource relation)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

dbplus_xlockrel() will request an exclusive lock on relation preventing even read access from other clients.

See also dbplus_xunlockrel().

Předcházející | Domů | Další
dbplus_update | Nahoru | dbplus_xunlockrel


dbplus_xunlockrel

(4.1.0 - 4.2.3 only)

dbplus_xunlockrel -- Free exclusive lock on relation

Description

int dbplus_xunlockrel ( resource relation)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

dbplus_xunlockrel() will release an exclusive lock on relation previously obtained by dbplus_xlockrel().

Předcházející | Domů | Další
dbplus_xlockrel | Nahoru | Direct IO Functions


Direct IO Functions

Manuál PHP
Předcházející Další

XXII. Direct IO Functions

Úvod

PHP supports the direct io functions as described in the Posix Standard (Section 6) for performing I/O functions at a lower level than the C-Language stream I/O functions (fopen(), fread(),..). The use of the DIO functions should be considered only when direct control of a device is needed. In all other cases, the standard filesystem functions are more than adequate.

Poznámka: Toto rozšíření není k dispozici na platformách Windows.

Požadavky

Tyto funkce jsou k dispozici jako součást standardního modulu, který je vždy dostupný.

Instalace

To get these functions to work, you have to configure PHP with --enable-dio.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

One resource type is defined by this extension: a file descriptor returned by dio_open().

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Obsah
dio_close -- Closes the file descriptor given by fd
dio_fcntl -- Performs a c library fcntl on fd
dio_open -- Opens a new filename with specified permissions of flags and creation permissions of mode
dio_read -- Reads n bytes from fd and returns them, if n is not specified, reads 1k block
dio_seek -- Seeks to pos on fd from whence
dio_stat -- Gets stat information about the file descriptor fd
dio_tcsetattr -- Sets terminal attributes and baud rate for a serial port
dio_truncate -- Truncates file descriptor fd to offset bytes
dio_write -- Writes data to fd with optional truncation at length

Předcházející | Domů | Další
dbplus_xunlockrel | Nahoru | dio_close


dio_close

(PHP 4 >= 4.2.0, PHP 5)

dio_close -- Closes the file descriptor given by fd

Description

void dio_close ( resource fd)

The function dio_close() closes the file descriptor fd.

See also dio_open().

Předcházející | Domů | Další
Direct IO Functions | Nahoru | dio_fcntl


dio_fcntl

(PHP 4 >= 4.2.0, PHP 5)

dio_fcntl -- Performs a c library fcntl on fd

Description

mixed dio_fcntl ( resource fd, int cmd [, mixed args])

The dio_fcntl() function performs the operation specified by cmd on the file descriptor fd. Some commands require additional arguments args to be supplied.

args is an associative array, when cmd is F_SETLK or F_SETLLW, with the following keys:

  • "start" - offset where lock begins

  • "length" - size of locked area. zero means to end of file

  • "wenth" - Where l_start is relative to: can be SEEK_SET, SEEK_END and SEEK_CUR

  • "type" - type of lock: can be F_RDLCK (read lock), F_WRLCK (write lock) or F_UNLCK (unlock)

cmd can be one of the following operations:

  • F_SETLK - Lock is set or cleared. If the lock is held by someone else dio_fcntl() returns -1.

  • F_SETLKW - like F_SETLK, but in case the lock is held by someone else, dio_fcntl() waits until the lock is released.

  • F_GETLK - dio_fcntl() returns an associative array (as described above) if someone else prevents lock. If there is no obstruction key "type" will set to F_UNLCK.

  • F_DUPFD - finds the lowest numbered available file descriptor greater or equal than args and returns them.

  • F_SETFL - Sets the file descriptors flags to the value specified by args, which can be O_APPEND,O_NONBLOCK or O_ASYNC. To use O_ASYNC you will need to use the PCNTL extension.

Předcházející | Domů | Další
dio_close | Nahoru | dio_open


dio_open

(PHP 4 >= 4.2.0, PHP 5)

dio_open -- Opens a new filename with specified permissions of flags and creation permissions of mode

Description

resource dio_open ( string filename, int flags [, int mode])

dio_open() opens a file and returns a new file descriptor for it, or FALSE if any error occurred. If flags is O_CREAT, the optional third parameter mode will set the mode of the file (creation permissions). The flags parameter can be one of the following options:

  • O_RDONLY - opens the file for read access.

  • O_WRONLY - opens the file for write access.

  • O_RDWR - opens the file for both reading and writing.

The flags parameter can also include any combination of the following flags:

  • O_CREAT - creates the file, if it doesn't already exist.

  • O_EXCL - if both, O_CREAT and O_EXCL are set, dio_open() fails, if the file already exists.

  • O_TRUNC - if the file exists, and its opened for write access, the file will be truncated to zero length.

  • O_APPEND - write operations write data at the end of the file.

  • O_NONBLOCK - sets non blocking mode.

See also: dio_close().

Předcházející | Domů | Další
dio_fcntl | Nahoru | dio_read


dio_read

(PHP 4 >= 4.2.0, PHP 5)

dio_read -- Reads n bytes from fd and returns them, if n is not specified, reads 1k block

Description

string dio_read ( resource fd [, int n])

The function dio_read() reads and returns n bytes from file with descriptor fd. If n is not specified, dio_read() reads 1K sized block and returns them.

See also: dio_write().

Předcházející | Domů | Další
dio_open | Nahoru | dio_seek


dio_seek

(PHP 4 >= 4.2.0, PHP 5)

dio_seek -- Seeks to pos on fd from whence

Description

int dio_seek ( resource fd, int pos, int whence)

The function dio_seek() is used to change the file position of the file with descriptor fd. The parameter whence specifies how the position pos should be interpreted:

  • SEEK_SET - specifies that pos is specified from the beginning of the file.

  • SEEK_CUR - Specifies that pos is a count of characters from the current file position. This count may be positive or negative.

  • SEEK_END - Specifies that pos is a count of characters from the end of the file. A negative count specifies a position within the current extent of the file; a positive count specifies a position past the current end. If you set the position past the current end, and actually write data, you will extend the file with zeros up to that position.

Předcházející | Domů | Další
dio_read | Nahoru | dio_stat


dio_stat

(PHP 4 >= 4.2.0, PHP 5)

dio_stat -- Gets stat information about the file descriptor fd

Description

array dio_stat ( resource fd)

Function dio_stat() returns information about the file with file descriptor fd. dio_stat() returns an associative array with the following keys:

  • "device" - device

  • "inode" - inode

  • "mode" - mode

  • "nlink" - number of hard links

  • "uid" - user id

  • "gid" - group id

  • "device_type" - device type (if inode device)

  • "size" - total size in bytes

  • "blocksize" - blocksize

  • "blocks" - number of blocks allocated

  • "atime" - time of last access

  • "mtime" - time of last modification

  • "ctime" - time of last change

On error dio_stat() returns NULL.

Předcházející | Domů | Další
dio_seek | Nahoru | dio_tcsetattr


dio_tcsetattr

(PHP 4 >= 4.3.0, PHP 5)

dio_tcsetattr -- Sets terminal attributes and baud rate for a serial port

Description

void dio_tcsetattr ( resource fd, array options)

The function dio_tcsetattr() sets the terminal attributes and baud rate of the open resource. The currently available options are

  • 'baud' - baud rate of the port - can be 38400,19200,9600,4800,2400,1800, 1200,600,300,200,150,134,110,75 or 50, default value is 9600.

  • 'bits' - data bits - can be 8,7,6 or 5. Default value is 8.

  • 'stop' - stop bits - can be 1 or 2. Default value is 1.

  • 'parity' - can be 0,1 or 2. Default value is 0.

Příklad 1. Setting the baud rate on a serial port

<?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;
  }
}

?>

Předcházející | Domů | Další
dio_stat | Nahoru | dio_truncate


dio_truncate

(PHP 4 >= 4.2.0, PHP 5)

dio_truncate -- Truncates file descriptor fd to offset bytes

Description

bool dio_truncate ( resource fd, int offset)

Function dio_truncate() causes the file referenced by fd to be truncated to at most offset bytes in size. If the file previously was larger than this size, the extra data is lost. If the file previously was shorter, it is unspecified whether the file is left unchanged or is extended. In the latter case the extended part reads as zero bytes. Vrací TRUE při úspěchu, FALSE při selhání..

Předcházející | Domů | Další
dio_tcsetattr | Nahoru | dio_write


dio_write

(PHP 4 >= 4.2.0, PHP 5)

dio_write -- Writes data to fd with optional truncation at length

Description

int dio_write ( resource fd, string data [, int len])

The function dio_write() writes up to len bytes from data to file fd. If len is not specified, dio_write() writes all data to the specified file. dio_write() returns the number of bytes written to fd.

See also dio_read().

Předcházející | Domů | Další
dio_truncate | Nahoru | Adresářové funkce


Adresářové funkce

Manuál PHP
Předcházející Další

XXIII. Adresářové funkce

Úvod

Požadavky

Tyto funkce jsou k dispozici jako součást standardního modulu, který je vždy dostupný.

Instalace

K používání těchto funkcí není třeba žádná instalace, jsou součástí jádra PHP.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

DIRECTORY_SEPARATOR (string)

PATH_SEPARATOR (string)

Poznámka: The PATH_SEPARATOR was introduced with PHP 4.3.0-RC2.

Viz také

Pro příbuzné funkce jako dirname(),
is_dir(), mkdir() a
rmdir(), viz sekci
Filesystem.

Obsah
chdir -- change directory
chroot -- Change the root directory
dir -- directory class
closedir -- Zavírá otevřený adresář
getcwd -- Získává aktuální pracovní adresář
opendir -- Otevře adresář
readdir -- Přečte položku z deskriptoru adresáře
rewinddir -- návrat na začátek adresáře
scandir -- List files and directories inside the specified path

Předcházející | Domů | Další
dio_write | Nahoru | chdir


chdir

(PHP 3, PHP 4 , PHP 5)

chdir -- change directory

Popis

int chdir ( string directory)

Mění aktuální adresář PHP na directory. Pokud se nepodařilo změnít adresář, vrací FALSE, jinak TRUE.

Předcházející | Domů | Další
Adresářové funkce | Nahoru | chroot


chroot

(PHP 4 >= 4.0.5, PHP 5)

chroot -- Change the root directory

Description

bool chroot ( string directory)

Changes the root directory of the current process to directory. Vrací TRUE při úspěchu, FALSE při selhání.

This function is only available if your system supports it and you're using the CLI, CGI or Embed SAPI.

Poznámka: chroot() requires root privileges.

Poznámka: Tato funkce není implementována na platformách Windows.

Předcházející | Domů | Další
chdir | Nahoru | dir


dir

(PHP 3, PHP 4 , PHP 5)

dir -- directory class

Popis

new dir ( string directory)

Pseudo-objektově orientovaný mechanismus pro čtení adresáře. Otevře zadaný directory. Po otevření adresáře jsou přístupné dvě vlastnosti. Vlastnost handle je použitelná s jinými adresářovými funkcemi jako readdir(), rewinddir() a closedir(). Hodnotou vlastnosti path je cesta k otevřenému adresáři. Dále jsou přístupné tři metody: read, rewind a close.

Příklad 1. dir() příklad

$d = dir("/etc");
echo "Handle: ".$d->handle."<br>\n";
echo "Path: ".$d->path."<br>\n";
while($entry=$d->read()) {
    echo $entry."<br>\n";
}
$d->close();

Předcházející | Domů | Další
chroot | Nahoru | closedir


closedir

(PHP 3, PHP 4 , PHP 5)

closedir -- Zavírá otevřený adresář

Popis

void closedir ( int dir_handle)

Zavírá proud z adresáře specifikovaný v dir_handle. Proud musí pocházet z funkce opendir().

Předcházející | Domů | Další
dir | Nahoru | getcwd


getcwd

(PHP 4 , PHP 5)

getcwd -- Získává aktuální pracovní adresář

Popis

string getcwd ( void )

Vrací aktuální pracovní adresář.

Předcházející | Domů | Další
closedir | Nahoru | opendir


opendir

(PHP 3, PHP 4 , PHP 5)

opendir -- Otevře adresář

Popis

int opendir ( string path)

Vrací deskriptor adresáře použitelný v následných voláních closedir(), readdir(), a rewinddir().

Předcházející | Domů | Další
getcwd | Nahoru | readdir


readdir

(PHP 3, PHP 4 , PHP 5)

readdir -- Přečte položku z deskriptoru adresáře

Popis

string readdir ( int dir_handle)

Vrací název dalšího souboru v adresáři. Názvy souborů nejsou nijak tříděny.

Příklad 1. Vypiš všechny soubory v adresáři

// Note that !== did not exist until 4.0.0-RC2
<?php
$handle=opendir('.');
echo "Directory handle: $handle\n";
echo "Files:\n";
while (($file = readdir($handle))!==false) {
    echo "$file\n";
}
closedir($handle);
?>

Všimněte si, že readdir() vrací také . a .. položky (odkaz na sebe sama a na nadřazený adresář. Pokud je nechcete, můžete je snadno vynechat:

Příklad 2. Vypiš všechny soubory v adresáři a vynech . a ..

<?php
$handle=opendir('.');
while (false!==($file = readdir($handle))) {
    if ($file != "." && $file != "..") {
        echo "$file\n";
    }
}
closedir($handle);
?>

Předcházející | Domů | Další
opendir | Nahoru | rewinddir


rewinddir

(PHP 3, PHP 4 , PHP 5)

rewinddir -- návrat na začátek adresáře

Popis

void rewinddir ( int dir_handle)

Vrací adresářový proud odkazovaný deskriptorem dir_handle na začátek adresáře.

Předcházející | Domů | Další
readdir | Nahoru | scandir


scandir

(PHP 5)

scandir -- List files and directories inside the specified path

Description

array scandir ( string directory [, int sorting_order [, resource context]])

Returns an array of files and directories from the directory. If directory is not a directory, then boolean FALSE is returned, and an error of level E_WARNING is generated.

By default, the sorted order is alphabetical in ascending order. If the optional sorting_order is used (set to 1), then sort order is alphabetical in descending order.

Příklad 1. A simple scandir() example

<?php
$dir    = '/tmp';
$files1 = scandir($dir);
$files2 = scandir($dir, 1);

print_r($files1);
print_r($files2);
?>

Outputs something like:

Array
(
    [0] => .
    [1] => ..
    [2] => bar.php
    [3] => foo.txt
    [4] => somedir
)
Array
(
    [0] => somedir
    [1] => foo.txt
    [2] => bar.php
    [3] => ..
    [4] => .
)

Příklad 2. PHP 4 alternatives to scandir()

<?php
$dir = "/tmp";
$dh  = opendir($dir);
while (false !== ($filename = readdir($dh))) {
    $files[] = $filename;
}

sort($files);

print_r($files);

rsort($files);

print_r($files);

?>

Outputs something like:

Array
(
    [0] => .
    [1] => ..
    [2] => bar.php
    [3] => foo.txt
    [4] => somedir
)
Array
(
    [0] => somedir
    [1] => foo.txt
    [2] => bar.php
    [3] => ..
    [4] => .
)

Tip: S touto funkcí můžete používat URL jako název souboru, pokud je zapnuta volba "fopen wrappers". Pro více detailů o tom, jak specifikovat název souboru, a Jpro seznam porporovaných URL protokolů, viz fopen().

See also opendir(),
readdir(),
glob(),
is_dir(), and
sort().

Předcházející | Domů | Další
rewinddir | Nahoru | DOM XML Functions


DOM XML Functions

Manuál PHP
Předcházející Další

XXIV. DOM XML Functions

Úvod

Varování

Toto rozšíření je EXPERIMENTÁLNÍ. Chování tohoto rozšíření, názvy funkcí a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může bez ohlášení změnit. Berte to v úvahu a používejte tento modul na vlastní nebezpečí.

The DOM XML extension has been overhauled in PHP 4.3.0 to better comply with the DOM standard. The extension still contains many old functions, but they should no longer be used. In particular, functions that are not object-oriented should be avoided.

The extension allows you to operate on an XML document with the DOM API. It also provides a function domxml_xmltree() to turn the complete XML document into a tree of PHP objects. Currently, this tree should be considered read-only - you can modify it, but this would not make any sense since DomDocument_dump_mem() cannot be applied to it. Therefore, if you want to read an XML file and write a modified version, use DomDocument_create_element(), DomDocument_create_text_node(), set_attribute(), etc. and finally the DomDocument_dump_mem() function.

Požadavky

This extension makes use of the GNOME XML library. Download and install this library. You will need at least libxml-2.4.14. To use DOM XSLT features you can use the libxslt library and EXSLT enhancements from http://www.exslt.org/. Download and install these libraries if you plan to use (enhanced) XSLT features. You will need at least libxslt-1.0.18.

Instalace

This extension is only available if PHP was configured with --with-dom[=DIR]. Add --with-dom-xslt[=DIR] to include DOM XSLT support. DIR is the libxslt install directory. Add --with-dom-exslt[=DIR] to include DOM EXSLT support, where DIR is the libexslt install directory.

Note to Win32 Users: In order to enable this module on a Windows environment, you must copy one additional file from the DLL folder of the PHP/Win32 binary package to the SYSTEM32 folder of your Windows machine (Ex: C:\WINNT\SYSTEM32 or C:\WINDOWS\SYSTEM32). For PHP <= 4.2.0 copy libxml2.dll, for PHP >= 4.3.0 copy iconv.dll from the DLL folder to your SYSTEM32 folder.

Deprecated functions

There are quite a few functions that do not fit into the DOM standard and should no longer be used. These functions are listed in the following table. The function DomNode_append_child() has changed its behaviour. It now adds a child and not a sibling. If this breaks your application, use the non-DOM function DomNode_append_sibling().

Tabulka 1. Deprecated functions and their replacements

Old function | New function
xmldoc | domxml_open_mem()
xmldocfile | domxml_open_file()
domxml_new_xmldoc | domxml_new_doc()
domxml_dump_mem | DomDocument_dump_mem()
domxml_dump_mem_file | DomDocument_dump_file()
DomDocument_dump_mem_file | DomDocument_dump_file()
DomDocument_add_root | DomDocument_create_element() followed by DomNode_append_child()
DomDocument_dtd | DomDocument_doctype()
DomDocument_root | DomDocument_document_element()
DomDocument_children | DomNode_child_nodes()
DomDocument_imported_node | No replacement.
DomNode_add_child | Create a new node with e.g. DomDocument_create_element() and add it with DomNode_append_child().
DomNode_children | DomNode_child_nodes()
DomNode_parent | DomNode_parent_node()
DomNode_new_child | Create a new node with e.g. DomDocument_create_element() and add it with DomNode_append_child().
DomNode_set_content | Create a new node with e.g. DomDocument_create_text_node() and add it with DomNode_append_child().
DomNode_get_content | Content is just a text node and can be accessed with DomNode_child_nodes().
DomNode_set_content | Content is just a text node and can be added with DomNode_append_child().

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

Tabulka 2. XML konstanty

Konstanta | Hodnota | Popis
XML_ELEMENT_NODE (integer) | 1 | Uzel je element
XML_ATTRIBUTE_NODE (integer) | 2 | Uzel je atribut
XML_TEXT_NODE (integer) | 3 | Uzel je kus textu
XML_CDATA_SECTION_NODE (integer) | 4 |
XML_ENTITY_REF_NODE (integer) | 5 |
XML_ENTITY_NODE (integer) | 6 | Uzel je entita jako &nbsp;
XML_PI_NODE (integer) | 7 | Uzel je instrukce zpracování
XML_COMMENT_NODE (integer) | 8 | Uzel je komentář
XML_DOCUMENT_NODE (integer) | 9 | Uzel je dokument
XML_DOCUMENT_TYPE_NODE (integer) | 10 |
XML_DOCUMENT_FRAG_NODE (integer) | 11 |
XML_NOTATION_NODE (integer) | 12 |
XML_GLOBAL_NAMESPACE (integer) | 1 |
XML_LOCAL_NAMESPACE (integer) | 2 |
XML_HTML_DOCUMENT_NODE (integer) |  |
XML_DTD_NODE (integer) |  |
XML_ELEMENT_DECL_NODE (integer) |  |
XML_ATTRIBUTE_DECL_NODE (integer) |  |
XML_ENTITY_DECL_NODE (integer) |  |
XML_NAMESPACE_DECL_NODE (integer) |  |
XML_ATTRIBUTE_CDATA (integer) |  |
XML_ATTRIBUTE_ID (integer) |  |
XML_ATTRIBUTE_IDREF (integer) |  |
XML_ATTRIBUTE_IDREFS (integer) |  |
XML_ATTRIBUTE_ENTITY (integer) |  |
XML_ATTRIBUTE_NMTOKEN (integer) |  |
XML_ATTRIBUTE_NMTOKENS (integer) |  |
XML_ATTRIBUTE_ENUMERATION (integer) |  |
XML_ATTRIBUTE_NOTATION (integer) |  |
XPATH_UNDEFINED (integer) |  |
XPATH_NODESET (integer) |  |
XPATH_BOOLEAN (integer) |  |
XPATH_NUMBER (integer) |  |
XPATH_STRING (integer) |  |
XPATH_POINT (integer) |  |
XPATH_RANGE (integer) |  |
XPATH_LOCATIONSET (integer) |  |
XPATH_USERS (integer) |  |
XPATH_NUMBER (integer) |  |

Classes

The API of the module follows the DOM Level 2 standard as closely as possible. Consequently, the API is fully object-oriented. It is a good idea to have the DOM standard available when using this module. Though the API is object-oriented, there are many functions which can be called in a non-object-oriented way by passing the object to operate on as the first argument. These functions are mainly to retain compatibility to older versions of the extension, and should not be used when creating new scripts.

This API differs from the official DOM API in two ways. First, all class attributes are implemented as functions with the same name. Secondly, the function names follow the PHP naming convention. This means that a DOM function lastChild() will be written as last_child().

This module defines a number of classes, which are listed - including their method - in the following tables. Classes with an equivalent in the DOM standard are named DOMxxx.

Tabulka 3. List of classes

Class name | Parent classes
DomAttribute | DomNode
DomCData | DomNode
DomComment | DomCData : DomNode
DomDocument | DomNode
DomDocumentType | DomNode
DomElement | DomNode
DomEntity | DomNode
DomEntityReference | DomNode
DomProcessingInstruction | DomNode
DomText | DomCData : DomNode
Parser | Currently still called DomParser
XPathContext |

Tabulka 4. DomDocument class (DomDocument : DomNode)

Method name | Function name | Remark
doctype | DomDocument_doctype() |
document_element | DomDocument_document_element() |
create_element | DomDocument_create_element() |
create_text_node | DomDocument_create_text_node() |
create_comment | DomDocument_create_comment() |
create_cdata_section | DomDocument_create_cdata_section() |
create_processing_instruction | DomDocument_create_processing_instruction() |
create_attribute | DomDocument_create_attribute() |
create_entity_reference | DomDocument_create_entity_reference() |
get_elements_by_tagname | DomDocument_get_elements_by_tagname() |
get_element_by_id | DomDocument_get_element_by_id() |
dump_mem | DomDocument_dump_mem() | not DOM standard
dump_file | DomDocument_dump_file() | not DOM standard
html_dump_mem | DomDocument_html_dump_mem() | not DOM standard
xpath_init | xpath_init | not DOM standard
xpath_new_context | xpath_new_context | not DOM standard
xptr_new_context | xptr_new_context | not DOM standard

Tabulka 5. DomElement class (DomElement : DomNode)

Method name | Function name | Remark
tagname | DomElement_tagname() |
get_attribute | DomElement_get_attribute() |
set_attribute | DomElement_set_attribute() |
remove_attribute | DomElement_remove_attribute() |
get_attribute_node | DomElement_get_attribute_node() |
get_elements_by_tagname | DomElement_get_elements_by_tagname() |
has_attribute | DomElement_has_attribute() |

Tabulka 6. DomNode class

Method name | Remark
DomNode_node_name() |
DomNode_node_value() |
DomNode_node_type() |
DomNode_last_child() |
DomNode_first_child() |
DomNode_child_nodes() |
DomNode_previous_sibling() |
DomNode_next_sibling() |
DomNode_parent_node() |
DomNode_owner_document() |
DomNode_insert_before() |
DomNode_append_child() |
DomNode_append_sibling() | Not in DOM standard. This function emulates the former behaviour of DomNode_append_child().
DomNode_remove_child() |
DomNode_has_child_nodes() |
DomNode_has_attributes() |
DomNode_clone_node() |
DomNode_attributes() |
DomNode_unlink_node() | Not in DOM standard
DomNode_replace_node() | Not in DOM standard
DomNode_set_content() | Not in DOM standard, deprecated
DomNode_get_content() | Not in DOM standard, deprecated
DomNode_dump_node() | Not in DOM standard
DomNode_is_blank_node() | Not in DOM standard

Tabulka 7. DomAttribute class (DomAttribute : DomNode)

Method name |  | Remark
name | DomAttribute_name() |
value | DomAttribute_value() |
specified | DomAttribute_specified() |

Tabulka 8. DomProcessingInstruction class (DomProcessingInstruction : DomNode)

Method name | Function name | Remark
target | DomProcessingInstruction_target() |
data | DomProcessingInstruction_data() |

Tabulka 9. Parser class

Method name | Function name | Remark
add_chunk | Parser_add_chunk() |
end | Parser_end() |

Tabulka 10. XPathContext class

Method name | Function name | Remark
eval | XPathContext_eval() |
eval_expression | XPathContext_eval_expression() |
register_ns | XPathContext_register_ns() |

Tabulka 11. DomDocumentType class (DomDocumentType : DomNode)

Method name | Function name | Remark
name | DomDocumentType_name() |
entities | DomDocumentType_entities() |
notations | DomDocumentType_notations() |
public_id | DomDocumentType_public_id() |
system_id | DomDocumentType_system_id() |
internal_subset | DomDocumentType_internal_subset() |

The classes DomDtd is derived from DomNode. DomComment is derived from DomCData.

Příklady

Many examples in this reference require an XML string. Instead of repeating this string in every example, it will be put into a file which will be included by each example. This include file is shown in the following example section. Alternatively, you could create an XML document and read it with DomDocument_open_file().

Příklad 1. Include file example.inc with XML string

<?php
$xmlstr = "<?xml version='1.0' standalone='yes'?>
<!DOCTYPE chapter SYSTEM '/share/sgml/Norman_Walsh/db3xml10/db3xml10.dtd'
[ <!ENTITY sp \"spanish\">
]>
<!-- lsfj  -->
<chapter language='en'><title language='en'>Title</title>
 <para language='ge'>
  &amp;sp;
  <!-- comment -->
  <informaltable ID='findme' language='&amp;sp;'>
   <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>
</chapter>";
?>

Obsah
DomAttribute->name -- Returns name of attribute
DomAttribute->specified -- Checks if attribute is specified
DomAttribute->value -- Returns value of attribute
DomDocument->add_root -- Adds a root node [deprecated]
DomDocument->create_attribute -- Create new attribute
DomDocument->create_cdata_section -- Create new cdata node
DomDocument->create_comment -- Create new comment node
DomDocument->create_element_ns -- Create new element node with an associated namespace
DomDocument->create_element -- Create new element node
DomDocument->create_entity_reference --
DomDocument->create_processing_instruction -- Creates new PI node
DomDocument->create_text_node -- Create new text node
DomDocument->doctype -- Returns the document type
DomDocument->document_element -- Returns root element node
DomDocument->dump_file -- Dumps the internal XML tree back into a file
DomDocument->dump_mem -- Dumps the internal XML tree back into a string
DomDocument->get_element_by_id -- Searches for an element with a certain id
DomDocument->get_elements_by_tagname --
DomDocument->html_dump_mem -- Dumps the internal XML tree back into a string as HTML
DomDocument->xinclude -- Substitutes XIncludes in a DomDocument Object.
DomDocumentType->entities -- Returns list of entities
DomDocumentType->internal_subset -- Returns internal subset
DomDocumentType->name -- Returns name of document type
DomDocumentType->notations -- Returns list of notations
DomDocumentType->public_id -- Returns public id of document type
DomDocumentType->system_id -- Returns system id of document type
DomElement->get_attribute_node -- Returns value of attribute
DomElement->get_attribute -- Returns value of attribute
DomElement->get_elements_by_tagname -- Gets elements by tagname
DomElement->has_attribute -- Checks to see if attribute exists
DomElement->remove_attribute -- Removes attribute
DomElement->set_attribute -- Adds new attribute
DomElement->tagname -- Returns name of element
DomNode->add_namespace -- Adds a namespace declaration to a node.
DomNode->append_child -- Adds new child at the end of the children
DomNode->append_sibling -- Adds new sibling to a node
DomNode->attributes -- Returns list of attributes
DomNode->child_nodes -- Returns children of node
DomNode->clone_node -- Clones a node
DomNode->dump_node -- Dumps a single node
DomNode->first_child -- Returns first child of node
DomNode->get_content -- Gets content of node
DomNode->has_attributes -- Checks if node has attributes
DomNode->has_child_nodes -- Checks if node has children
DomNode->insert_before -- Inserts new node as child
DomNode->is_blank_node -- Checks if node is blank
DomNode->last_child -- Returns last child of node
DomNode->next_sibling -- Returns the next sibling of node
DomNode->node_name -- Returns name of node
DomNode->node_type -- Returns type of node
DomNode->node_value -- Returns value of a node
DomNode->owner_document -- Returns the document this node belongs to
DomNode->parent_node -- Returns the parent of the node
DomNode->prefix -- Returns name space prefix of node
DomNode->previous_sibling -- Returns the previous sibling of node
DomNode->remove_child -- Removes child from list of children
DomNode->replace_child -- Replaces a child
DomNode->replace_node -- Replaces node
DomNode->set_content -- Sets content of node
DomNode->set_name -- Sets name of node
DomNode->set_namespace -- Sets namespace of a node.
DomNode->unlink_node -- Deletes node
DomProcessingInstruction->data -- Returns data of pi node
DomProcessingInstruction->target -- Returns target of pi node
DomXsltStylesheet->process -- Applies the XSLT-Transformation on a DomDocument Object.
DomXsltStylesheet->result_dump_file -- Dumps the result from a XSLT-Transformation into a file
DomXsltStylesheet->result_dump_mem -- Dumps the result from a XSLT-Transformation back into a string
domxml_new_doc -- Creates new empty XML document
domxml_open_file -- Vytvořit DOM objekt z XML souboru
domxml_open_mem -- Vytvořit DOM objekt z XML dokumentu
domxml_version -- Get XML library version
domxml_xmltree -- Vytvořit strom PHP objektů z XML dokumentu
domxml_xslt_stylesheet_doc -- Creates a DomXsltStylesheet Object from a DomDocument Object.
domxml_xslt_stylesheet_file -- Creates a DomXsltStylesheet Object from an XSL document in a file.
domxml_xslt_stylesheet -- Creates a DomXsltStylesheet Object from an XML document in a string.
xpath_eval_expression -- Evaluates the XPath Location Path in the given string
xpath_eval -- Evaluates the XPath Location Path in the given string
xpath_new_context -- Creates new xpath context
xptr_eval -- Evaluate the XPtr Location Path in the given string
xptr_new_context -- Create new XPath Context

Předcházející | Domů | Další
scandir | Nahoru | DomAttribute->name


DomAttribute->name

(no version information, might be only in CVS)

DomAttribute->name -- Returns name of attribute

Description

bool DomAttribute->name ( void )

This function returns the name of the attribute.

See also domattribute_value().

Předcházející | Domů | Další
DOM XML Functions | Nahoru | DomAttribute->specified


DomAttribute->specified

(no version information, might be only in CVS)

DomAttribute->specified -- Checks if attribute is specified

Description

bool DomAttribute->specified ( void )

Check DOM standard for a detailed explanation.

Předcházející | Domů | Další
DomAttribute->name | Nahoru | DomAttribute->value


DomAttribute->value

(no version information, might be only in CVS)

DomAttribute->value -- Returns value of attribute

Description

bool DomAttribute->value ( void )

This function returns the value of the attribute.

See also domattribute_name().

Předcházející | Domů | Další
DomAttribute->specified | Nahoru | DomDocument->add_root


DomDocument->add_root

(no version information, might be only in CVS)

DomDocument->add_root -- Adds a root node [deprecated]

Description

resource DomDocument->add_root ( string name)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Adds a root element node to a dom document and returns the new node. The element name is given in the passed parameter.

Příklad 1. Creating a simple HTML document header

<?php
$doc = domxml_new_doc("1.0");
$root = $doc->add_root("HTML");
$head = $root->new_child("HEAD", "");
$head->new_child("TITLE", "Hier der Titel");
echo htmlentities($doc->dump_mem());
?>

Předcházející | Domů | Další
DomAttribute->value | Nahoru | DomDocument->create_attribute


DomDocument->create_attribute

(no version information, might be only in CVS)

DomDocument->create_attribute -- Create new attribute

Description

object DomDocument->create_attribute ( string name, string value)

This function returns a new instance of class DomAttribute. The name of the attribute is the value of the first parameter. The value of the attribute is the value of the second parameter. This node will not show up in the document unless it is inserted with e.g. domnode_append_child().

The return value is FALSE if an error occurred.

See also domnode_append_child(),
         domdocument_create_element(),
         domdocument_create_text(),
         domdocument_create_cdata_section(),
         domdocument_create_processing_instruction(),
         domdocument_create_entity_reference(), and
         domnode_insert_before().

Předcházející | Domů | Další
DomDocument->add_root | Nahoru | DomDocument->create_cdata_section


DomDocument->create_cdata_section

(no version information, might be only in CVS)

DomDocument->create_cdata_section -- Create new cdata node

Description

string DomDocument->create_cdata_section ( string content)

This function returns a new instance of class DomCData. The content of the cdata is the value of the passed parameter. This node will not show up in the document unless it is inserted with e.g. domnode_append_child().

The return value is FALSE if an error occurred.

See also domnode_append_child(),
         domdocument_create_element(),
         domdocument_create_text(),
         domdocument_create_attribute(),
         domdocument_create_processing_instruction(),
         domdocument_create_entity_reference(), and
         domnode_insert_before().

Předcházející | Domů | Další
DomDocument->create_attribute | Nahoru | DomDocument->create_comment


DomDocument->create_comment

(no version information, might be only in CVS)

DomDocument->create_comment -- Create new comment node

Description

object DomDocument->create_comment ( string content)

This function returns a new instance of class DomComment. The content of the comment is the value of the passed parameter. This node will not show up in the document unless it is inserted with e.g. domnode_append_child().

The return value is FALSE if an error occurred.

See also domnode_append_child(),
         domdocument_create_element(),
         domdocument_create_text(),
         domdocument_create_attribute(),
         domdocument_create_processing_instruction(),
         domdocument_create_entity_reference() and
         domnode_insert_before().

Předcházející | Domů | Další
DomDocument->create_cdata_section | Nahoru | DomDocument->create_element_ns


DomDocument->create_element_ns

(no version information, might be only in CVS)

DomDocument->create_element_ns -- Create new element node with an associated namespace

Description

object DomDocument->create_element_ns ( string uri, string name [, string prefix])

This function returns a new instance of class DomElement. The tag name of the element is the value of the passed parameter name. The URI of the namespace is the value of the passed parameter uri. If there is already a namespace declaration with the same uri in the root-node of the document, the prefix of this is taken, otherwise it will take the one provided in the optional parameter prefix or generate a random one. This node will not show up in the document unless it is inserted with e.g. domnode_append_child().

The return value is FALSE if an error occurred.

See also domdocument_create_element_ns(),
         domnode_add_namespace(),
         domnode_set_namespace(),
         domnode_append_child(),
         domdocument_create_text(),
         domdocument_create_comment(),
         domdocument_create_attribute(),
         domdocument_create_processing_instruction(),
         domdocument_create_entity_reference(), and
         domnode_insert_before().

Předcházející | Domů | Další
DomDocument->create_comment | Nahoru | DomDocument->create_element


DomDocument->create_element

(no version information, might be only in CVS)

DomDocument->create_element -- Create new element node

Description

object DomDocument->create_element ( string name)

This function returns a new instance of class DomElement. The tag name of the element is the value of the passed parameter. This node will not show up in the document unless it is inserted with e.g. domnode_append_child().

The return value is FALSE if an error occurred.

See also domdocument_create_element_ns(),
         domnode_append_child(),
         domdocument_create_text(),
         domdocument_create_comment(),
         domdocument_create_attribute(),
         domdocument_create_processing_instruction(),
         domdocument_create_entity_reference(), and
         domnode_insert_before().

Předcházející | Domů | Další
DomDocument->create_element_ns | Nahoru | DomDocument->create_entity_reference


DomDocument->create_entity_reference

(no version information, might be only in CVS)

DomDocument->create_entity_reference --

Description

object DomDocument->create_entity_reference ( string content)

This function returns a new instance of class DomEntityReference. The content of the entity reference is the value of the passed parameter. This node will not show up in the document unless it is inserted with e.g. domnode_append_child().

The return value is FALSE if an error occurred.

See also domnode_append_child(),
         domdocument_create_element(),
         domdocument_create_text(),
         domdocument_create_cdata_section(),
         domdocument_create_processing_instruction(),
         domdocument_create_attribute(), and
         domnode_insert_before().

Předcházející | Domů | Další
DomDocument->create_element | Nahoru | DomDocument->create_processing_instruction


DomDocument->create_processing_instruction

(no version information, might be only in CVS)

DomDocument->create_processing_instruction -- Creates new PI node

Description

string DomDocument->create_processing_instruction ( string content)

This function returns a new instance of class DomCData. The content of the pi is the value of the passed parameter. This node will not show up in the document unless it is inserted with e.g. domnode_append_child().

The return value is FALSE if an error occurred.

See also domnode_append_child(),
         domdocument_create_element(),
         domdocument_create_text(),
         domdocument_create_cdata_section(),
         domdocument_create_attribute(),
         domdocument_create_entity_reference(), and
         domnode_insert_before().

Předcházející | Domů | Další
DomDocument->create_entity_reference | Nahoru | DomDocument->create_text_node


DomDocument->create_text_node

(no version information, might be only in CVS)

DomDocument->create_text_node -- Create new text node

Description

object DomDocument->create_text_node ( string content)

This function returns a new instance of class DomText. The content of the text is the value of the passed parameter. This node will not show up in the document unless it is inserted with e.g. domnode_append_child().

The return value is FALSE if an error occurred.

See also domnode_append_child(),
         domdocument_create_element(),
         domdocument_create_comment(),
         domdocument_create_text(),
         domdocument_create_attribute(),
         domdocument_create_processing_instruction(),
         domdocument_create_entity_reference(), and
         domnode_insert_before().

Předcházející | Domů | Další
DomDocument->create_processing_instruction | Nahoru | DomDocument->doctype


DomDocument->doctype

(no version information, might be only in CVS)

DomDocument->doctype -- Returns the document type

Description

object DomDocument->doctype ( void )

This function returns an object of class DomDocumentType. In versions of PHP before 4.3 this has been the class Dtd, but the DOM Standard does not know such a class.

See also the methods of class DomDocumentType.

Předcházející | Domů | Další
DomDocument->create_text_node | Nahoru | DomDocument->document_element


DomDocument->document_element

(no version information, might be only in CVS)

DomDocument->document_element -- Returns root element node

Description

object DomDocument->document_element ( void )

This function returns the root element node of a document.

The following example returns just the element with name CHAPTER and prints it. The other node -- the comment -- is not returned.

Příklad 1. Retrieving root element

<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$root = $dom->document_element();
print_r($root);
?>

Předcházející | Domů | Další
DomDocument->doctype | Nahoru | DomDocument->dump_file


DomDocument->dump_file

(no version information, might be only in CVS)

DomDocument->dump_file -- Dumps the internal XML tree back into a file

Description

string DomDocument->dump_file ( string filename [, bool compressionmode [, bool format]])

Creates an XML document from the dom representation. This function usually is called after building a new dom document from scratch as in the example below. The format specifies whether the output should be neatly formatted, or not. The first parameter specifies the name of the filename and the second parameter, whether it should be compressed or not.

Příklad 1. Creating a simple HTML document header

<?php
$doc = domxml_new_doc("1.0");
$root = $doc->create_element("HTML");
$root = $doc->append_child($root);
$head = $doc->create_element("HEAD");
$head = $root->append_child($head);
$title = $doc->create_element("TITLE");
$title = $head->append_child($title);
$text = $doc->create_text_node("This is the title");
$text = $title->append_child($text);
$doc->dump_file("/tmp/test.xml", false, true);
?>

See also domdocument_dump_mem() domdocument_html_dump_mem().

Předcházející | Domů | Další
DomDocument->document_element | Nahoru | DomDocument->dump_mem


DomDocument->dump_mem

(no version information, might be only in CVS)

DomDocument->dump_mem -- Dumps the internal XML tree back into a string

Description

string DomDocument->dump_mem ( [bool format [, string encoding]])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Creates an XML document from the dom representation. This function usually is called after building a new dom document from scratch as in the example below. The format specifies whether the output should be neatly formatted, or not.

Příklad 1. Creating a simple HTML document header

<?php
$doc = domxml_new_doc("1.0");
$root = $doc->create_element("HTML");
$root = $doc->append_child($root);
$head = $doc->create_element("HEAD");
$head = $root->append_child($head);
$title = $doc->create_element("TITLE");
$title = $head->append_child($title);
$text = $doc->create_text_node("This is the title");
$text = $title->append_child($text);
echo "<PRE>";
echo htmlentities($doc->dump_mem(true));
echo "</PRE>";
?>

Poznámka: The first parameter was added in PHP 4.3.0.

See also domdocument_dump_file(), domdocument_html_dump_mem().

Předcházející | Domů | Další
DomDocument->dump_file | Nahoru | DomDocument->get_element_by_id


DomDocument->get_element_by_id

(no version information, might be only in CVS)

DomDocument->get_element_by_id -- Searches for an element with a certain id

Description

object DomDocument->get_element_by_id ( string id)

This function is similar to domdocument_get_elements_by_tagname() but searches for an element with a given id. According to the DOM standard this requires a DTD which defines the attribute ID to be of type ID, though the current implementation simply does an xpath search for "//*[@ID = '%s']". This does not comply to the DOM standard which requires to return null if it is not known which attribute is of type id. This behaviour is likely to be fixed, so do not rely on the current behaviour.

See also domdocument_get_elements_by_tagname()

Předcházející | Domů | Další
DomDocument->dump_mem | Nahoru | DomDocument->get_elements_by_tagname


DomDocument->get_elements_by_tagname

(no version information, might be only in CVS)

DomDocument->get_elements_by_tagname --

Description

array DomDocument->get_elements_by_tagname ( string name)

See also domdocument_add_root()

Předcházející | Domů | Další
DomDocument->get_element_by_id | Nahoru | DomDocument->html_dump_mem


DomDocument->html_dump_mem

(no version information, might be only in CVS)

DomDocument->html_dump_mem -- Dumps the internal XML tree back into a string as HTML

Description

string DomDocument->html_dump_mem ( void )

Creates an HTML document from the dom representation. This function usually is called after building a new dom document from scratch as in the example below.

Příklad 1. Creating a simple HTML document header

<?php
$doc = domxml_new_doc("1.0");
$root = $doc->create_element("HTML");
$root = $doc->append_child($root);
$head = $doc->create_element("HEAD");
$head = $root->append_child($head);
$title = $doc->create_element("TITLE");
$title = $head->append_child($title);
$text = $doc->create_text_node("This is the title");
$text = $title->append_child($text);
echo "<PRE>";
echo htmlentities($doc->html_dump_mem());
echo "</PRE>";
?>

See also domdocument_dump_file(), domdocument_html_dump_mem().

Předcházející | Domů | Další
DomDocument->get_elements_by_tagname | Nahoru | DomDocument->xinclude


DomDocument->xinclude

(no version information, might be only in CVS)

DomDocument->xinclude -- Substitutes XIncludes in a DomDocument Object.

Description

int DomDocument->xinclude ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
DomDocument->html_dump_mem | Nahoru | DomDocumentType->entities


DomDocumentType->entities

(no version information, might be only in CVS)

DomDocumentType->entities -- Returns list of entities

Description

array DomDocumentType->entities ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
DomDocument->xinclude | Nahoru | DomDocumentType->internal_subset


DomDocumentType->internal_subset

(no version information, might be only in CVS)

DomDocumentType->internal_subset -- Returns internal subset

Description

bool DomDocumentType->internal_subset ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
DomDocumentType->entities | Nahoru | DomDocumentType->name


DomDocumentType->name

(no version information, might be only in CVS)

DomDocumentType->name -- Returns name of document type

Description

string DomDocumentType->name ( void )

This function returns the name of the document type.

Předcházející | Domů | Další
DomDocumentType->internal_subset | Nahoru | DomDocumentType->notations


DomDocumentType->notations

(no version information, might be only in CVS)

DomDocumentType->notations -- Returns list of notations

Description

array DomDocumentType->notations ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
DomDocumentType->name | Nahoru | DomDocumentType->public_id


DomDocumentType->public_id

(no version information, might be only in CVS)

DomDocumentType->public_id -- Returns public id of document type

Description

string DomDocumentType->public_id ( void )

This function returns the public id of the document type.

The following example echos nothing.

Příklad 1. Retrieving the public id

<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$doctype = $dom->doctype();
echo $doctype->public_id();
?>

Předcházející | Domů | Další
DomDocumentType->notations | Nahoru | DomDocumentType->system_id


DomDocumentType->system_id

(no version information, might be only in CVS)

DomDocumentType->system_id -- Returns system id of document type

Description

string DomDocumentType->system_id ( void )

Returns the system id of the document type.

The following example echos '/share/sgml/Norman_Walsh/db3xml10/db3xml10.dtd'.

Příklad 1. Retrieving the system id

<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$doctype = $dom->doctype();
echo $doctype->system_id();
?>

Předcházející | Domů | Další
DomDocumentType->public_id | Nahoru | DomElement->get_attribute_node


DomElement->get_attribute_node

(no version information, might be only in CVS)

DomElement->get_attribute_node -- Returns value of attribute

Description

object DomElement->get_attribute_node ( object attr)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
DomDocumentType->system_id | Nahoru | DomElement->get_attribute


DomElement->get_attribute

(no version information, might be only in CVS)

DomElement->get_attribute -- Returns value of attribute

Description

object DomElement->get_attribute ( string name)

Returns the attribute with name name of the current node.

(PHP >= 4.3 only) If no attribute with given name is found, an empty string is returned.

See also domelement_set_attribute()

Předcházející | Domů | Další
DomElement->get_attribute_node | Nahoru | DomElement->get_elements_by_tagname


DomElement->get_elements_by_tagname

(no version information, might be only in CVS)

DomElement->get_elements_by_tagname -- Gets elements by tagname

Description

bool DomElement->get_elements_by_tagname ( string name)

This function returns an array with all the elements which has name as his tagname. Every element of the array is an DomElement.

Příklad 1. Getting a content

<?php
if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$root = $dom->document_element();

$node_array = $root->get_elements_by_tagname("element");

for ($i = 0; $i<count($node_array); $i++) {
    $node = $node_array[$i];
    echo "The element[$i] is: " . $node->get_content();
}

?>

Předcházející | Domů | Další
DomElement->get_attribute | Nahoru | DomElement->has_attribute


DomElement->has_attribute

(no version information, might be only in CVS)

DomElement->has_attribute -- Checks to see if attribute exists

Description

bool DomElement->has_attribute ( string name)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
DomElement->get_elements_by_tagname | Nahoru | DomElement->remove_attribute


DomElement->remove_attribute

(no version information, might be only in CVS)

DomElement->remove_attribute -- Removes attribute

Description

bool DomElement->remove_attribute ( string name)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
DomElement->has_attribute | Nahoru | DomElement->set_attribute


DomElement->set_attribute

(no version information, might be only in CVS)

DomElement->set_attribute -- Adds new attribute

Description

bool DomElement->set_attribute ( string name, string value)

Sets an attribute with name name to the given value. If the attribute does not exist, it will be created.

Příklad 1. Setting an attribute

<?php
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$newnode = $doc->append_child($node);
$newnode->set_attribute("align", "left");
?>

See also domelement_get_attribute()

Předcházející | Domů | Další
DomElement->remove_attribute | Nahoru | DomElement->tagname


DomElement->tagname

(no version information, might be only in CVS)

DomElement->tagname -- Returns name of element

Description

string DomElement->tagname ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
DomElement->set_attribute | Nahoru | DomNode->add_namespace


DomNode->add_namespace

(no version information, might be only in CVS)

DomNode->add_namespace -- Adds a namespace declaration to a node.

Description

bool DomNode->add_namespace ( string uri, string prefix)

See also domdocument_create_element_ns(), domnode_set_namespace()

Předcházející | Domů | Další
DomElement->tagname | Nahoru | DomNode->append_child


DomNode->append_child

(no version information, might be only in CVS)

DomNode->append_child -- Adds new child at the end of the children

Description

object DomNode->append_child ( object newnode)

This functions appends a child to an existing list of children or creates a new list of children. The child can be created with e.g. domdocument_create_element(), domdocument_create_text() etc. or simply by using any other node.

(PHP < 4.3) Before a new child is appended it is first duplicated. Therefore the new child is a completely new copy which can be modified without changing the node which was passed to this function. If the node passed has children itself, they will be duplicated as well, which makes it quite easy to duplicate large parts of an XML document. The return value is the appended child. If you plan to do further modifications on the appended child you must use the returned node.

(PHP 4.3.0/4.3.1) The new child newnode is first unlinked from its existing context, if it's already a child of DomNode. Therefore the node is moved and not copies anymore.

(PHP >= 4.3.2) The new child newnode is first unlinked from its existing context, if it's already in the tree. Therefore the node is moved and not copied. This is the behaviour according to the W3C specifications. If you want to duplicate large parts of an XML document, use DomNode->clone_node() before appending.

The following example will add a new element node to a fresh document and sets the attribute "align" to "left".

Příklad 1. Adding a child

<?php
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$newnode = $doc->append_child($node);
$newnode->set_attribute("align", "left");
?>
The above example could also be written as the following:

Příklad 2. Adding a child

<?php
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$node->set_attribute("align", "left");
$newnode = $doc->append_child($node);
?>
A more complex example is the one below. It first searches for a certain element, duplicates it including its children and adds it as a sibling. Finally a new attribute is added to one of the children of the new sibling and the whole document is dumped.

Příklad 3. Adding a child

<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$elements = $dom->get_elements_by_tagname("informaltable");
print_r($elements);
$element = $elements[0];

$parent = $element->parent_node();
$newnode = $parent->append_child($element);
$children = $newnode->children();
$attr = $children[1]->set_attribute("align", "left");

echo "<pre>";
$xmlfile = $dom->dump_mem();
echo htmlentities($xmlfile);
echo "</pre>";
?>
The above example could also be done with domnode_insert_before() instead of domnode_append_child().

See also domnode_insert_before(), domnode_clone_node().

Předcházející | Domů | Další
DomNode->add_namespace | Nahoru | DomNode->append_sibling


DomNode->append_sibling

(no version information, might be only in CVS)

DomNode->append_sibling -- Adds new sibling to a node

Description

object DomNode->append_sibling ( object newnode)

This functions appends a sibling to an existing node. The child can be created with e.g. domdocument_create_element(), domdocument_create_text() etc. or simply by using any other node.

Before a new sibling is added it is first duplicated. Therefore the new child is a completely new copy which can be modified without changing the node which was passed to this function. If the node passed has children itself, they will be duplicated as well, which makes it quite easy to duplicate large parts of an XML document. The return value is the added sibling. If you plan to do further modifications on the added sibling you must use the returned node.

This function has been added to provide the behaviour of domnode_append_child() as it works till PHP 4.2.

See also domnode_append_before().

Předcházející | Domů | Další
DomNode->append_child | Nahoru | DomNode->attributes


DomNode->attributes

(no version information, might be only in CVS)

DomNode->attributes -- Returns list of attributes

Description

array DomNode->attributes ( void )

This function only returns an array of attributes if the node is of type XML_ELEMENT_NODE.

(PHP >= 4.3 only) If no attributes are found, NULL is returned.

Předcházející | Domů | Další
DomNode->append_sibling | Nahoru | DomNode->child_nodes


DomNode->child_nodes

(no version information, might be only in CVS)

DomNode->child_nodes -- Returns children of node

Description

array DomNode->child_nodes ( void )

Returns all children of the node.

See also domnode_next_sibling(), domnode_previous_sibling().

Předcházející | Domů | Další
DomNode->attributes | Nahoru | DomNode->clone_node


DomNode->clone_node

(no version information, might be only in CVS)

DomNode->clone_node -- Clones a node

Description

object DomNode->clone_node ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
DomNode->child_nodes | Nahoru | DomNode->dump_node


DomNode->dump_node

(no version information, might be only in CVS)

DomNode->dump_node -- Dumps a single node

Description

string DomNode->dump_node ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

See also domdocument_dump_mem().

Předcházející | Domů | Další
DomNode->clone_node | Nahoru | DomNode->first_child


DomNode->first_child

(no version information, might be only in CVS)

DomNode->first_child -- Returns first child of node

Description

object DomNode->first_child ( void )

Returns the first child of the node.

(PHP >= 4.3 only) If no first child is found, NULL is returned.

See also domnode_last_child(),
         domnode_next_sibling(),
         domnode_previous_sibling().

Předcházející | Domů | Další
DomNode->dump_node | Nahoru | DomNode->get_content


DomNode->get_content

(no version information, might be only in CVS)

DomNode->get_content -- Gets content of node

Description

string DomNode->get_content ( void )

This function returns the content of the actual node.

Příklad 1. Getting a content

<?php
if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$root = $dom->document_element();

$node_array = $root->get_elements_by_tagname("element");

for ($i = 0; $i<count($node_array); $i++) {
     $node = $node_array[$i];
     echo "The element[$i] is: " . $node->get_content();
}

?>

Předcházející | Domů | Další
DomNode->first_child | Nahoru | DomNode->has_attributes


DomNode->has_attributes

(no version information, might be only in CVS)

DomNode->has_attributes -- Checks if node has attributes

Description

bool DomNode->has_attributes ( void )

This function checks if the node has attributes.

See also domnode_has_child_nodes().

Předcházející | Domů | Další
DomNode->get_content | Nahoru | DomNode->has_child_nodes


DomNode->has_child_nodes

(no version information, might be only in CVS)

DomNode->has_child_nodes -- Checks if node has children

Description

bool DomNode->has_child_nodes ( void )

This function checks if the node has children.

See also domnode_child_nodes().

Předcházející | Domů | Další
DomNode->has_attributes | Nahoru | DomNode->insert_before


DomNode->insert_before

(no version information, might be only in CVS)

DomNode->insert_before -- Inserts new node as child

Description

object DomNode->insert_before ( object newnode, object refnode)

This function inserts the new node newnode right before the node refnode. The return value is the inserted node. If you plan to do further modifications on the appended child you must use the returned node.

(PHP >= 4.3 only) If newnode already is part of a document, it will be first unlinked from its existing context. If refnode is NULL, then newnode will be inserted at the end of the list of children.

domnode_insert_before() is very similar to domnode_append_child() as the following example shows which does the same as the example at domnode_append_child().

Příklad 1. Adding a child

<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$elements = $dom->get_elements_by_tagname("informaltable");
print_r($elements);
$element = $elements[0];

$newnode = $element->insert_before($element, $element);
$children = $newnode->children();
$attr = $children[1]->set_attribute("align", "left");

echo "<PRE>";
$xmlfile = $dom->dump_mem();
echo htmlentities($xmlfile);
echo "</PRE>";
?>

See also domnode_append_child().

Předcházející | Domů | Další
DomNode->has_child_nodes | Nahoru | DomNode->is_blank_node


DomNode->is_blank_node

(no version information, might be only in CVS)

DomNode->is_blank_node -- Checks if node is blank

Description

bool DomNode->is_blank_node ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
DomNode->insert_before | Nahoru | DomNode->last_child


DomNode->last_child

(no version information, might be only in CVS)

DomNode->last_child -- Returns last child of node

Description

object DomNode->last_child ( void )

Returns the last child of the node.

(PHP >= 4.3 only) If no last child is found, NULL is returned.

See also domnode_first_child(),
         domnode_next_sibling(),
         domnode_previous_sibling().

Předcházející | Domů | Další
DomNode->is_blank_node | Nahoru | DomNode->next_sibling


DomNode->next_sibling

(no version information, might be only in CVS)

DomNode->next_sibling -- Returns the next sibling of node

Description

object DomNode->next_sibling ( void )

This function returns the next sibling of the current node. If there is no next sibling it returns FALSE (< 4.3) or null (>= 4.3). You can use this function to iterate over all children of a node as shown in the example.

Příklad 1. Iterate over children

<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$elements = $dom->get_elements_by_tagname("tbody");
$element = $elements[0];
$child = $element->first_child();

while ($child) {
   print_r($child);
   $child = $child->next_sibling();
}
?>

See also domnode_previous_sibling().

Předcházející | Domů | Další
DomNode->last_child | Nahoru | DomNode->node_name


DomNode->node_name

(no version information, might be only in CVS)

DomNode->node_name -- Returns name of node

Description

string DomNode->node_name ( void )

Returns name of the node. The name has different meanings for the different types of nodes as illustrated in the following table.

Tabulka 1. Meaning of value

Type | Meaning
DomAttribute | value of attribute
DomAttribute |
DomCDataSection | #cdata-section
DomComment | #comment
DomDocument | #document
DomDocumentType | document type name
DomElement | tag name
DomEntity | name of entity
DomEntityReference | name of entity reference
DomNotation | notation name
DomProcessingInstruction | target
DomText | #text

Předcházející | Domů | Další
DomNode->next_sibling | Nahoru | DomNode->node_type


DomNode->node_type

(no version information, might be only in CVS)

DomNode->node_type -- Returns type of node

Description

int DomNode->node_type ( void )

Returns the type of the node. All possible types are listed in the table in the introduction.

Předcházející | Domů | Další
DomNode->node_name | Nahoru | DomNode->node_value


DomNode->node_value

(no version information, might be only in CVS)

DomNode->node_value -- Returns value of a node

Description

string DomNode->node_value ( void )

Returns value of the node. The value has different meanings for the different types of nodes as illustrated in the following table.

Tabulka 1. Meaning of value

Type | Meaning
DomAttribute | value of attribute
DomAttribute |
DomCDataSection | content
DomComment | content of comment
DomDocument | null
DomDocumentType | null
DomElement | null
DomEntity | null
DomEntityReference | null
DomNotation | null
DomProcessingInstruction | entire content without target
DomText | content of text

Předcházející | Domů | Další
DomNode->node_type | Nahoru | DomNode->owner_document


DomNode->owner_document

(no version information, might be only in CVS)

DomNode->owner_document -- Returns the document this node belongs to

Description

object DomNode->owner_document ( void )

This function returns the document the current node belongs to.

The following example will create two identical lists of children.

Příklad 1. Finding the document of a node

<?php
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$node = $doc->append_child($node);
$children = $doc->children();
print_r($children);

$doc2 = $node->owner_document();
$children = $doc2->children();
print_r($children);
?>

See also domnode_insert_before().

Předcházející | Domů | Další
DomNode->node_value | Nahoru | DomNode->parent_node


DomNode->parent_node

(no version information, might be only in CVS)

DomNode->parent_node -- Returns the parent of the node

Description

object DomNode->parent_node ( void )

This function returns the parent node.

(PHP >= 4.3 only) If no parent is found, NULL is returned.

The following example will show two identical lists of children.

Příklad 1. Finding the document of a node

<?php
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$node = $doc->append_child($node);
$children = $doc->children();
print_r($children);

$doc2 = $node->parent_node();
$children = $doc2->children();
print_r($children);
?>

Předcházející | Domů | Další
DomNode->owner_document | Nahoru | DomNode->prefix


DomNode->prefix

(no version information, might be only in CVS)

DomNode->prefix -- Returns name space prefix of node

Description

string DomNode->prefix ( void )

Returns the name space prefix of the node.

Předcházející | Domů | Další
DomNode->parent_node | Nahoru | DomNode->previous_sibling


DomNode->previous_sibling

(no version information, might be only in CVS)

DomNode->previous_sibling -- Returns the previous sibling of node

Description

object DomNode->previous_sibling ( void )

This function returns the previous sibling of the current node. If there is no previous sibling it returns FALSE (< 4.3) or NULL (>= 4.3). You can use this function to iterate over all children of a node as shown in the example.

See also domnode_next_sibling().

Předcházející | Domů | Další
DomNode->prefix | Nahoru | DomNode->remove_child


DomNode->remove_child

(no version information, might be only in CVS)

DomNode->remove_child -- Removes child from list of children

Description

object DomNode->remove_child ( object oldchild)

This functions removes a child from a list of children. If child cannot be removed or is not a child the function will return FALSE. If the child could be removed the functions returns the old child.

Příklad 1. Removing a child

<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$elements = $dom->get_elements_by_tagname("tbody");
$element = $elements[0];
$children = $element->child_nodes();
$child = $element->remove_child($children[0]);

echo "<PRE>";
$xmlfile = $dom->dump_mem(true);
echo htmlentities($xmlfile);
echo "</PRE>";
?>

See also domnode_append_child().

Předcházející | Domů | Další
DomNode->previous_sibling | Nahoru | DomNode->replace_child


DomNode->replace_child

(no version information, might be only in CVS)

DomNode->replace_child -- Replaces a child

Description

object DomNode->replace_child ( object oldnode, object newnode)

(PHP 4.2) This function replaces the child oldnode with the passed new node. If the new node is already a child it will not be added a second time. If the old node cannot be found the function returns FALSE. If the replacement succeeds the old node is returned.

(PHP 4.3) This function replaces the child oldnode with the passed newnode, even if the new node already is a child of the DomNode. If newnode was already inserted in the document it is first unlinked from its existing context. If the old node cannot be found the function returns FALSE. If the replacement succeeds the old node is returned. (This behaviour is according to the W3C specs).

See also domnode_append_child()

Předcházející | Domů | Další
DomNode->remove_child | Nahoru | DomNode->replace_node


DomNode->replace_node

(no version information, might be only in CVS)

DomNode->replace_node -- Replaces node

Description

object DomNode->replace_node ( object newnode)

(PHP 4.2) This function replaces an existing node with the passed new node. Before the replacement newnode is copied if it has a parent to make sure a node which is already in the document will not be inserted a second time. This behaviour enforces doing all modifications on the node before the replacement or to refetch the inserted node afterwards with functions like domnode_first_child(), domnode_child_nodes() etc..

(PHP 4.3) This function replaces an existing node with the passed new node. It is not copied anymore. If newnode was already inserted in the document it is first unlinked from its existing context. If the replacement succeeds the old node is returned.

See also domnode_append_child()

Předcházející | Domů | Další
DomNode->replace_child | Nahoru | DomNode->set_content


DomNode->set_content

(no version information, might be only in CVS)

DomNode->set_content -- Sets content of node

Description

bool DomNode->set_content ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
DomNode->replace_node | Nahoru | DomNode->set_name


DomNode->set_name

(no version information, might be only in CVS)

DomNode->set_name -- Sets name of node

Description

bool DomNode->set_name ( void )

Sets name of node.

See also domnode_node_name().

Předcházející | Domů | Další
DomNode->set_content | Nahoru | DomNode->set_namespace


DomNode->set_namespace

(no version information, might be only in CVS)

DomNode->set_namespace -- Sets namespace of a node.

Description

void DomNode->set_namespace ( string uri [, string prefix])

Sets the namespace of a node to uri. If there is already a namespace declaration with the same uri in one of the parent nodes of the node, the prefix of this is taken, otherwise it will take the one provided in the optional parameter prefix or generate a random one.

See also domdocument_create_element_ns(), domnode_add_namespace()

Předcházející | Domů | Další
DomNode->set_name | Nahoru | DomNode->unlink_node


DomNode->unlink_node

(no version information, might be only in CVS)

DomNode->unlink_node -- Deletes node

Description

object DomNode->unlink_node ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
DomNode->set_namespace | Nahoru | DomProcessingInstruction->data


DomProcessingInstruction->data

(no version information, might be only in CVS)

DomProcessingInstruction->data -- Returns data of pi node

Description

string DomProcessingInstruction->data ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
DomNode->unlink_node | Nahoru | DomProcessingInstruction->target


DomProcessingInstruction->target

(no version information, might be only in CVS)

DomProcessingInstruction->target -- Returns target of pi node

Description

string DomProcessingInstruction->target ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
DomProcessingInstruction->data | Nahoru | DomXsltStylesheet->process


DomXsltStylesheet->process

(no version information, might be only in CVS)

DomXsltStylesheet->process -- Applies the XSLT-Transformation on a DomDocument Object.

Description

object DomXsltStylesheet->process ( object DomDocument [, array xslt_parameters [, bool param_is_xpath]])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

See also domxml_xslt_stylesheet(), domxml_xslt_stylesheet_file(), domxml_xslt_stylesheet_doc()

Předcházející | Domů | Další
DomProcessingInstruction->target | Nahoru | DomXsltStylesheet->result_dump_file


DomXsltStylesheet->result_dump_file

(no version information, might be only in CVS)

DomXsltStylesheet->result_dump_file -- Dumps the result from a XSLT-Transformation into a file

Description

string DomXsltStylesheet->result_dump_file ( object DomDocument, string filename)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

This function is only available since PHP 4.3

Since DomXsltStylesheet->process() always returns a well-formed XML DomDocument, no matter what output method was declared in <xsl:output> and similar attributes/elements, it's of not much use, if you want to output HTML 4 or text data. This function on the contrary honors <xsl:output method="html|text"> and other output control directives. See the example for instruction of how to use it.

Příklad 1. Saving the result of a XSLT transformation in a file

<?php
$filename = "stylesheet.xsl";
$xmldoc = domxml_open_file("data.xml");
$xsldoc = domxml_xslt_stylesheet_file($filename);
$result =  $xsldoc->process($xmldoc);
echo $xsldoc->result_dump_file($result, "filename");
?>

See also domxml_xslt_result_dump_mem(), domxml_xslt_process()

Předcházející | Domů | Další
DomXsltStylesheet->process | Nahoru | DomXsltStylesheet->result_dump_mem


DomXsltStylesheet->result_dump_mem

(no version information, might be only in CVS)

DomXsltStylesheet->result_dump_mem -- Dumps the result from a XSLT-Transformation back into a string

Description

string DomXsltStylesheet->result_dump_mem ( object DomDocument)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

This function is only available since PHP 4.3

Since DomXsltStylesheet->process() always returns a well-formed XML DomDocument, no matter what output method was declared in <xsl:output> and similar attributes/elements, it's of not much use, if you want to output HTML 4 or text data. This function on the contrary honors <xsl:output method="html|text"> and other output control directives. See the example for instruction of how to use it.

Příklad 1. Outputting the result of a XSLT transformation

<?php
$filename = "stylesheet.xsl";
$xmldoc = domxml_open_file("data.xml");
$xsldoc = domxml_xslt_stylesheet_file($filename);
$result =  $xsldoc->process($xmldoc);
echo $xsldoc->result_dump_mem($result);
?>

See also domxml_xslt_result_dump_file(), domxml_xslt_process()

Předcházející | Domů | Další
DomXsltStylesheet->result_dump_file | Nahoru | domxml_new_doc


domxml_new_doc

(PHP 4 >= 4.2.1)

domxml_new_doc -- Creates new empty XML document

Description

object domxml_new_doc ( string version)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Creates a new dom document from scratch and returns it.

See also domdocument_add_root()

Předcházející | Domů | Další
DomXsltStylesheet->result_dump_mem | Nahoru | domxml_open_file


domxml_open_file

(PHP 4 >= 4.2.1)

domxml_open_file -- Vytvořit DOM objekt z XML souboru

Popis

object domxml_open_file ( string filename)

Parsuje XML dokument v souboru pojmenovaném filename a vrací objekt třídy "Dom document", který má vlastnosti "doc" (resource), "version" (string).

Předcházející | Domů | Další
domxml_new_doc | Nahoru | domxml_open_mem


domxml_open_mem

(PHP 4 >= 4.2.1)

domxml_open_mem -- Vytvořit DOM objekt z XML dokumentu

Popis

object domxml_open_mem ( string str)

Tato funkce parsuje XML dokument v str a vrací objekt třídy "Dom document", který má valstnosti "doc" (resource), "version" (string) and "type" (long).

Předcházející | Domů | Další
domxml_open_file | Nahoru | domxml_version


domxml_version

(PHP 4 >= 4.1.0)

domxml_version -- Get XML library version

Description

string domxml_version ( void )

This function returns the version of the XML library version currently used.

Předcházející | Domů | Další
domxml_open_mem | Nahoru | domxml_xmltree


domxml_xmltree

(PHP 4 >= 4.2.1)

domxml_xmltree -- Vytvořit strom PHP objektů z XML dokumentu

Popis

object domxml_xmltree ( string str)

Parsuje XML dokument v str a vrací strom PHP objektů.

Předcházející | Domů | Další
domxml_version | Nahoru | domxml_xslt_stylesheet_doc


domxml_xslt_stylesheet_doc

(PHP 4 >= 4.2.0)

domxml_xslt_stylesheet_doc -- Creates a DomXsltStylesheet Object from a DomDocument Object.

Description

object domxml_xslt_stylesheet_doc ( object DocDocument Object)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

See also domxsltstylesheet->process(), domxml_xslt_stylesheet(), domxml_xslt_stylesheet_file()

Předcházející | Domů | Další
domxml_xmltree | Nahoru | domxml_xslt_stylesheet_file


domxml_xslt_stylesheet_file

(PHP 4 >= 4.2.0)

domxml_xslt_stylesheet_file -- Creates a DomXsltStylesheet Object from an XSL document in a file.

Description

object domxml_xslt_stylesheet_file ( string xsl file)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

See also domxsltstylesheet->process(), domxml_xslt_stylesheet(), domxml_xslt_stylesheet_doc()

Předcházející | Domů | Další
domxml_xslt_stylesheet_doc | Nahoru | domxml_xslt_stylesheet


domxml_xslt_stylesheet

(PHP 4 >= 4.2.0)

domxml_xslt_stylesheet -- Creates a DomXsltStylesheet Object from an XML document in a string.

Description

object domxml_xslt_stylesheet ( string xsl document)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

See also domxsltstylesheet->process(), domxml_xslt_stylesheet_file(), domxml_xslt_stylesheet_doc()

Předcházející | Domů | Další
domxml_xslt_stylesheet_file | Nahoru | xpath_eval_expression


xpath_eval_expression

(PHP 4 >= 4.0.4)

xpath_eval_expression -- Evaluates the XPath Location Path in the given string

Description

array xpath_eval_expression ( object xpath_context)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

See also xpath_eval()

Předcházející | Domů | Další
domxml_xslt_stylesheet | Nahoru | xpath_eval


xpath_eval

(PHP 4 >= 4.0.4)

xpath_eval -- Evaluates the XPath Location Path in the given string

Description

array xpath_eval ( object xpath context, string xpath expression [, object contextnode])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

The optional contextnode can be specified for doing relative XPath queries.

See also xpath_new_context()

Předcházející | Domů | Další
xpath_eval_expression | Nahoru | xpath_new_context


xpath_new_context

(PHP 4 >= 4.0.4)

xpath_new_context -- Creates new xpath context

Description

object xpath_new_context ( object dom document)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

See also xpath_eval()

Předcházející | Domů | Další
xpath_eval | Nahoru | xptr_eval


xptr_eval

(PHP 4 >= 4.0.4)

xptr_eval -- Evaluate the XPtr Location Path in the given string

Description

int xptr_eval ( [object xpath_context, string eval_str])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
xpath_new_context | Nahoru | xptr_new_context


xptr_new_context

(PHP 4 >= 4.0.4)

xptr_new_context -- Create new XPath Context

Description

string xptr_new_context ( [object doc_handle])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
xptr_eval | Nahoru | .NET Functions


.NET Functions

Manuál PHP
Předcházející Další

XXV. .NET Functions

Úvod

Varování

Toto rozšíření je EXPERIMENTÁLNÍ. Chování tohoto rozšíření, názvy funkcí a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může bez ohlášení změnit. Berte to v úvahu a používejte tento modul na vlastní nebezpečí.

Obsah
dotnet_load -- Loads a DOTNET module

Předcházející | Domů | Další
xptr_new_context | Nahoru | dotnet_load


dotnet_load

(no version information, might be only in CVS)

dotnet_load -- Loads a DOTNET module

Description

int dotnet_load ( string assembly_name [, string datatype_name [, int codepage]])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
.NET Functions | Nahoru | Error Handling and Logging Functions


Error Handling and Logging Functions

Manuál PHP
Předcházející Další

XXVI. Error Handling and Logging Functions

Úvod

These are functions dealing with error handling and logging. They allow you to define your own error handling rules, as well as modify the way the errors can be logged. This allows you to change and enhance error reporting to suit your needs.

With the logging functions, you can send messages directly to other machines, to an email (or email to pager gateway!), to system logs, etc., so you can selectively log and monitor the most important parts of your applications and websites.

The error reporting functions allow you to customize what level and kind of error feedback is given, ranging from simple notices to customized functions returned during errors.

Požadavky

Tyto funkce jsou k dispozici jako součást standardního modulu, který je vždy dostupný.

Instalace

K používání těchto funkcí není třeba žádná instalace, jsou součástí jádra PHP.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 1. Errors and Logging Configuration Options

Name | Default | Changeable
error_reporting | E_ALL & ~E_NOTICE | PHP_INI_ALL
display_errors | "1" | PHP_INI_ALL
display_startup_errors | "0" | PHP_INI_ALL
log_errors | "0" | PHP_INI_ALL
log_errors_max_len | "1024" | PHP_INI_ALL
ignore_repeated_errors | "0" | PHP_INI_ALL
ignore_repeated_source | "0" | PHP_INI_ALL
report_memleaks | "1" | PHP_INI_ALL
track_errors | "0" | PHP_INI_ALL
html_errors | "1" | PHP_INI_ALL
docref_root | "" | PHP_INI_ALL
docref_ext | "" | PHP_INI_ALL
error_prepend_string | NULL | PHP_INI_ALL
error_append_string | NULL | PHP_INI_ALL
error_log | NULL | PHP_INI_ALL
warn_plus_overloading | NULL | PHP_INI??
For further details and definition of the PHP_INI_* constants see ini_set().

Zde je stručné vysvětlení konfiguračních direktiv.

error_reporting integer

Set the error reporting level. The parameter is either an integer representing a bit field, or named constants. The error_reporting levels and constants are described in Predefined Constants, and in php.ini. To set at runtime, use the error_reporting() function. See also the display_errors directive.

In PHP 4 and PHP 5 the default value is E_ALL & ~E_NOTICE. This setting does not show E_NOTICE level errors. You may want to show them during development.

Poznámka: Enabling E_NOTICE during development has some benefits. For debugging purposes: NOTICE messages will warn you about possible bugs in your code. For example, use of unassigned values is warned. It is extremely useful to find typos and to save time for debugging. NOTICE messages will warn you about bad style. For example, $arr[item] is better to be written as $arr['item'] since PHP tries to treat "item" as constant. If it is not a constant, PHP assumes it is a string index for the array.

Poznámka: In PHP 5 a new error level E_STRICT is available. As E_STRICT is not included within E_ALL you have to explicitly enable this kind of error level. Enabling E_STRICT during development has some benefits. STRICT messages will help you to use the latest and greatest suggested method of coding, for example warn you about using deprecated functions.

In PHP 3, the default setting is (E_ERROR | E_WARNING | E_PARSE), meaning the same thing. Note, however, that since constants are not supported in PHP 3's php3.ini, the error_reporting setting there must be numeric; hence, it is 7.

display_errors boolean

This determines whether errors should be printed to the screen as part of the output or if they should be hidden from the user.

Poznámka: This is a feature to support your development and should never be used on production systems (e.g. systems connected to the internet).

display_startup_errors boolean

Even when display_errors is on, errors that occur during PHP's startup sequence are not displayed. It's strongly recommended to keep display_startup_errors off, except for debugging.

log_errors boolean

Tells whether script error messages should be logged to the server's error log or error_log. This option is thus server-specific.

Poznámka: You're strongly advised to use error logging in place of error displaying on production web sites.

log_errors_max_len integer

Set the maximum length of log_errors in bytes. In error_log information about the source is added. The default is 1024 and 0 allows to not apply any maximum length at all.

ignore_repeated_errors boolean

Do not log repeated messages. Repeated errors must occur in the same file on the same line until ignore_repeated_source is set true.

ignore_repeated_source boolean

Ignore source of message when ignoring repeated messages. When this setting is On you will not log errors with repeated messages from different files or sourcelines.

report_memleaks boolean

If this parameter is set to Off, then memory leaks will not be shown (on stdout or in the log). This has only effect in a debug compile, and if error_reporting includes E_WARNING in the allowed list

track_errors boolean

If enabled, the last error message will always be present in the variable $php_errormsg.

html_errors boolean

Turn off HTML tags in error messages. The new format for HTML errors produces clickable messages that direct the user to a page describing the error or function in causing the error. These references are affected by docref_root and docref_ext.

docref_root string

The new error format contains a reference to a page describing the error or function causing the error. In case of manual pages you can download the manual in your language and set this ini directive to the URL of your local copy. If your local copy of the manual can be reached by '/manual/' you can simply use docref_root=/manual/. Additional you have to set docref_ext to match the fileextensions of your copy docref_ext=.html. It is possible to use external references. For example you can use docref_root=http://manual/en/ or docref_root="http://landonize.it/?how=url&theme=classic&filter=Landon &url=http%3A%2F%2Fwww.php.net%2F"

Most of the time you want the docref_root value to end with a slash '/'. But see the second example above which does not have nor need it.

Poznámka: This is a feature to support your development since it makes it easy to lookup a function description. However it should never be used on production systems (e.g. systems connected to the internet).

docref_ext string

See docref_root.

Poznámka: The value of docref_ext must begin with a dot '.'.

error_prepend_string string

String to output before an error message.

error_append_string string

String to output after an error message.

error_log string

Name of the file where script errors should be logged. If the special value syslog is used, the errors are sent to the system logger instead. On Unix, this means syslog(3) and on Windows NT it means the event log. The system logger is not supported on Windows 95. See also: syslog().

warn_plus_overloading boolean

If enabled, this option makes PHP output a warning when the plus (+) operator is used on strings. This is to make it easier to find scripts that need to be rewritten to using the string concatenator instead (.).

Předdefinované konstanty

Konstanty z tohoto seznamu jsou vždy dostupné jako součást jádra PHP.

Poznámka: You may use these constant names in php.ini but not outside of PHP, like in httpd.conf, where you'd use the bitmask values instead.

Tabulka 2. Errors and Logging

Value | Constant | Description | Note
1 | E_ERROR (integer) | Fatal run-time errors. These indicate errors that can not be recovered from, such as a memory allocation problem. Execution of the script is halted. |
2 | E_WARNING (integer) | Run-time warnings (non-fatal errors). Execution of the script is not halted. |
4 | E_PARSE (integer) | Compile-time parse errors. Parse errors should only be generated by the parser. |
8 | E_NOTICE (integer) | Run-time notices. Indicate that the script encountered something that could indicate an error, but could also happen in the normal course of running a script. |
16 | E_CORE_ERROR (integer) | Fatal errors that occur during PHP's initial startup. This is like an E_ERROR, except it is generated by the core of PHP. | since PHP 4
32 | E_CORE_WARNING (integer) | Warnings (non-fatal errors) that occur during PHP's initial startup. This is like an E_WARNING, except it is generated by the core of PHP. | since PHP 4
64 | E_COMPILE_ERROR (integer) | Fatal compile-time errors. This is like an E_ERROR, except it is generated by the Zend Scripting Engine. | since PHP 4
128 | E_COMPILE_WARNING (integer) | Compile-time warnings (non-fatal errors). This is like an E_WARNING, except it is generated by the Zend Scripting Engine. | since PHP 4
256 | E_USER_ERROR (integer) | User-generated error message. This is like an E_ERROR, except it is generated in PHP code by using the PHP function trigger_error(). | since PHP 4
512 | E_USER_WARNING (integer) | User-generated warning message. This is like an E_WARNING, except it is generated in PHP code by using the PHP function trigger_error(). | since PHP 4
1024 | E_USER_NOTICE (integer) | User-generated notice message. This is like an E_NOTICE, except it is generated in PHP code by using the PHP function trigger_error(). | since PHP 4
2047 | E_ALL (integer) | All errors and warnings, as supported, except of level E_STRICT. |
2048 | E_STRICT (integer) | Run-time notices. Enable to have PHP suggest changes to your code which will ensure the best interoperability and forward compatibility of your code. | since PHP 5

The above values (either numerical or symbolic) are used to build up a bitmask that specifies which errors to report. You can use the bitwise operators to combine these values or mask out certain types of errors. Note that only '|', '~', '!', '^' and '&' will be understood within php.ini, however, and that no bitwise operators will be understood within php3.ini.

Příklady

Below we can see an example of using the error handling capabilities in PHP. We define an error handling function which logs the information into a file (using an XML format), and e-mails the developer in case a critical error in the logic happens.

Příklad 1. Using error handling in a script

<?php
// we will do our own error handling
error_reporting(0);

// user defined error handling function
function userErrorHandler($errno, $errmsg, $filename, $linenum, $vars)
{
    // timestamp for the error entry
    $dt = date("Y-m-d H:i:s (T)");

    // define an assoc array of error string
    // in reality the only entries we should
    // consider are E_WARNING, E_NOTICE, E_USER_ERROR,
    // E_USER_WARNING and E_USER_NOTICE
    $errortype = array (
                E_ERROR           => "Error",
                E_WARNING         => "Warning",
                E_PARSE           => "Parsing Error",
                E_NOTICE          => "Notice",
                E_CORE_ERROR      => "Core Error",
                E_CORE_WARNING    => "Core Warning",
                E_COMPILE_ERROR   => "Compile Error",
                E_COMPILE_WARNING => "Compile Warning",
                E_USER_ERROR      => "User Error",
                E_USER_WARNING    => "User Warning",
                E_USER_NOTICE     => "User Notice",
                E_STRICT          => "Runtime Notice"
                );
    // set of errors for which a var trace will be saved
    $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, "Variables") . "</vartrace>\n";
    $err .= "</errorentry>\n\n";

    // for testing
    // echo $err;

    // save to the error log, and e-mail me if there is a critical user error
    error_log($err, 3, "/usr/local/php4/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("Incorrect parameters, arrays expected", E_USER_ERROR);
        return NULL;
    }

    if (count($vect1) != count($vect2)) {
        trigger_error("Vectors need to be of the same size", 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("Coordinate $i in vector 1 is not a number, using zero",
                            E_USER_WARNING);
            $c1 = 0.0;
        }
        if (!is_numeric($c2)) {
            trigger_error("Coordinate $i in vector 2 is not a number, using zero",
                            E_USER_WARNING);
            $c2 = 0.0;
        }
        $d += $c2*$c2 - $c1*$c1;
    }
    return sqrt($d);
}

$old_error_handler = set_error_handler("userErrorHandler");

// undefined constant, generates a warning
$t = I_AM_NOT_DEFINED;

// define some "vectors"
$a = array(2, 3, "foo");
$b = array(5.5, 4.3, -1.6);
$c = array(1, -3);

// generate a user error
$t1 = distance($c, $b) . "\n";

// generate another user error
$t2 = distance($b, "i am not an array") . "\n";

// generate a warning
$t3 = distance($a, $b) . "\n";

?>

Viz také

See also syslog().

Obsah
debug_backtrace -- Generates a backtrace
debug_print_backtrace -- Prints a backtrace
error_log -- Send an error message somewhere
error_reporting -- Sets which PHP errors are reported
restore_error_handler -- Restores the previous error handler function
set_error_handler -- Sets a user-defined error handler function.
trigger_error -- Generates a user-level error/warning/notice message
user_error -- Alias of trigger_error()

Předcházející | Domů | Další
dotnet_load | Nahoru | debug_backtrace


debug_backtrace

(PHP 4 >= 4.3.0, PHP 5)

debug_backtrace -- Generates a backtrace

Description

array debug_backtrace ( void )

debug_backtrace() generates a PHP backtrace and returns this information as an associative array. The possible returned elements are listed in the following table:

Tabulka 1. Possible returned elements from debug_backtrace()

Name | Type | Description
function | string | The current function name. See also __FUNCTION__.
line | integer | The current line number. See also __LINE__.
file | string | The current file name. See also __FILE__.
class | string | The current class name. See also __CLASS__
type | string | The current call type. If a method call, "->" is returned. If a static method call, "::" is returned. If a function call, nothing is returned.
args | array | If inside a function, this lists the functions arguments. If inside an included file, this lists the included file name(s).

The following is a simple example.

Příklad 1. debug_backtrace() example

<?php
// filename: a.php

function a_test($str)
{
    echo "\nHi: $str";
    var_dump(debug_backtrace());
}

a_test('friend');
?>

<?php
// filename: b.php
include_once '/tmp/a.php';
?>

Results when executing /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"
  }
}

See also trigger_error() and debug_print_backtrace().

Předcházející | Domů | Další
Error Handling and Logging Functions | Nahoru | debug_print_backtrace


debug_print_backtrace

(PHP 5)

debug_print_backtrace -- Prints a backtrace

Description

void debug_print_backtrace ( void )

debug_print_backtrace() prints a PHP backtrace.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

See also debug_backtrace().

Předcházející | Domů | Další
debug_backtrace | Nahoru | error_log


error_log

(PHP 3, PHP 4 , PHP 5)

error_log -- Send an error message somewhere

Description

int error_log ( string message [, int message_type [, string destination [, string extra_headers]]])

Sends an error message to the web server's error log, a TCP port or to a file. The first parameter, message, is the error message that should be logged. The second parameter, message_type says where the message should go:

Tabulka 1. error_log() log types

0 | message is sent to PHP's system logger, using the Operating System's system logging mechanism or a file, depending on what the error_log configuration directive is set to. This is the default option.
1 | message is sent by email to the address in the destination parameter. This is the only message type where the fourth parameter, extra_headers is used. This message type uses the same internal function as mail() does.
2 | message is sent through the PHP debugging connection. This option is only available if remote debugging has been enabled. In this case, the destination parameter specifies the host name or IP address and optionally, port number, of the socket receiving the debug information.
3 | message is appended to the file destination.

Poznámka: When explicitly specifying the message_type as 3, a newline is not automatically added to the end of the message string.

Varování

Remote debugging via TCP/IP is a PHP 3 feature that is not available in PHP 4.

Příklad 1. error_log() examples

<?php
// Send notification through the server log if we can not
// connect to the database.
if (!Ora_Logon($username, $password)) {
    error_log("Oracle database not available!", 0);
}

// Notify administrator by email if we run out of FOO
if (!($foo = allocate_new_foo())) {
    error_log("Big trouble, we're all out of FOOs!", 1,
               "operator@example.com");
}

// other ways of calling error_log():
error_log("You messed up!", 2, "127.0.0.1:7000");
error_log("You messed up!", 2, "loghost");
error_log("You messed up!", 3, "/var/tmp/my-errors.log");
?>

Předcházející | Domů | Další
debug_print_backtrace | Nahoru | error_reporting


error_reporting

(PHP 3, PHP 4 , PHP 5)

error_reporting -- Sets which PHP errors are reported

Description

int error_reporting ( [int level])

The error_reporting() function sets the error_reporting directive at runtime. PHP has many levels of errors, using this function sets that level for the duration (runtime) of your script.

error_reporting() sets PHP's error reporting level, and returns the old level. The level parameter takes on either a bitmask, or named constants. Using named constants is strongly encouraged to ensure compatibility for future versions. As error levels are added, the range of integers increases, so older integer-based error levels will not always behave as expected.

Příklad 1. error_reporting() examples

<?php

// Turn off all error reporting
error_reporting(0);

// Report simple running errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);

// Reporting E_NOTICE can be good too (to report uninitialized
// variables or catch variable name misspellings ...)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// Report all errors except E_NOTICE
// This is the default value set in php.ini
error_reporting(E_ALL ^ E_NOTICE);

// Report all PHP errors (bitwise 63 may be used in PHP 3)
error_reporting(E_ALL);

// Same as error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);

?>

The available error level constants are listed below. The actual meanings of these error levels are described in the predefined constants.

Tabulka 1. error_reporting() level constants and bit values

value | constant
1 | E_ERROR
2 | E_WARNING
4 | E_PARSE
8 | E_NOTICE
16 | E_CORE_ERROR
32 | E_CORE_WARNING
64 | E_COMPILE_ERROR
128 | E_COMPILE_WARNING
256 | E_USER_ERROR
512 | E_USER_WARNING
1024 | E_USER_NOTICE
2047 | E_ALL
2048 | E_STRICT

Varování

With PHP > 5.0.0 E_STRICT with value 2048 is available. E_ALL does NOT include error levelE_STRICT.

See also the display_errors directive and ini_set().

Předcházející | Domů | Další
error_log | Nahoru | restore_error_handler


restore_error_handler

(PHP 4 >= 4.0.1, PHP 5)

restore_error_handler -- Restores the previous error handler function

Description

void restore_error_handler ( void )

Used after changing the error handler function using set_error_handler(), to revert to the previous error handler (which could be the built-in or a user defined function)

See also error_reporting(),
set_error_handler(),
trigger_error().

Předcházející | Domů | Další
error_reporting | Nahoru | set_error_handler


set_error_handler

(PHP 4 >= 4.0.1, PHP 5)

set_error_handler -- Sets a user-defined error handler function.

Description

string set_error_handler ( callback error_handler [, int error_types])

Sets a user function (error_handler) to handle errors in a script. Returns the previously defined error handler (if any), or FALSE on error. This function can be used for defining your own way of handling errors during runtime, for example in applications in which you need to do cleanup of data/files when a critical error happens, or when you need to trigger an error under certain conditions (using trigger_error()).

The second parameter error_types was introduced in PHP 5 and can be used to mask the triggering of the error_handler function just like the error_reporting ini setting controls which errors are shown. Without this mask set the error_handler will be called for every error regardless to the setting of the error_reporting setting.

The user function needs to accept two parameters: the error code, and a string describing the error. From PHP 4.0.2, three optional parameters are supplied: the filename in which the error occurred, the line number in which the error occurred, and the context in which the error occurred (an array that points to the active symbol table at the point the error occurred). The function can be shown as: handler ( int errno, string errstr [, string errfile [, int errline [, array errcontext]]])

errno

The first parameter, errno, contains the level of the error raised, as an integer.

errstr

The second parameter, errstr, contains the error message, as a string.

errfile

The third parameter is optional, errfile, which contains the filename that the error was raised in, as a string.

errline

The fourth parameter is optional, errline, which contains the line number the error was raised at, as an integer.

errcontext

The fifth parameter is optional, errcontext, which is an array that points to the active symbol table at the point the error occurred. In other words, errcontext will contain an array of every variable that existed in the scope the error was triggered in.

Poznámka: Instead of a function name, an array containing an object reference and a method name can also be supplied. (Since PHP 4.3.0)

Poznámka: The following error types cannot be handled with a user defined function: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR and E_COMPILE_WARNING.

The example below shows the handling of internal exceptions by triggering errors and handling them with a user defined function:

Příklad 1. Error handling with set_error_handler() and trigger_error()

<?php

// redefine the user error constants - PHP 4 only
define("FATAL", E_USER_ERROR);
define("ERROR", E_USER_WARNING);
define("WARNING", E_USER_NOTICE);

// set the error reporting level for this script
error_reporting(FATAL | ERROR | WARNING);

// error handler function
function myErrorHandler($errno, $errstr, $errfile, $errline)
{
  switch ($errno) {
  case FATAL:
    echo "<b>FATAL</b> [$errno] $errstr<br />\n";
    echo "  Fatal error in line $errline of file $errfile";
    echo ", PHP " . PHP_VERSION . " (" . PHP_OS . ")<br />\n";
    echo "Aborting...<br />\n";
    exit(1);
    break;
  case ERROR:
    echo "<b>ERROR</b> [$errno] $errstr<br />\n";
    break;
  case WARNING:
    echo "<b>WARNING</b> [$errno] $errstr<br />\n";
    break;
  default:
    echo "Unkown error type: [$errno] $errstr<br />\n";
    break;
  }
}

// function to test the error handling
function scale_by_log($vect, $scale)
{
  if (!is_numeric($scale) || $scale <= 0) {
    trigger_error("log(x) for x <= 0 is undefined, you used: scale = $scale",
      FATAL);
  }

  if (!is_array($vect)) {
    trigger_error("Incorrect input vector, array of values expected", ERROR);
    return null;
  }

  for ($i=0; $i<count($vect); $i++) {
    if (!is_numeric($vect[$i]))
      trigger_error("Value at position $i is not a number, using 0 (zero)",
        WARNING);
    $temp[$i] = log($scale) * $vect[$i];
  }
  return $temp;
}

// set to the user defined error handler
$old_error_handler = set_error_handler("myErrorHandler");

// trigger some errors, first define a mixed array with a non-numeric item
echo "vector a\n";
$a = array(2,3, "foo", 5.5, 43.3, 21.11);
print_r($a);

// now generate second array, generating a warning
echo "----\nvector b - a warning (b = log(PI) * a)\n";
$b = scale_by_log($a, M_PI);
print_r($b);

// this is trouble, we pass a string instead of an array
echo "----\nvector c - an error\n";
$c = scale_by_log("not array", 2.3);
var_dump($c);

// this is a critical error, log of zero or negative number is undefined
echo "----\nvector d - fatal error\n";
$d = scale_by_log($a, -2.5);

?>

And when you run this sample script, the output will be:

vector a
Array
(
    [0] => 2
    [1] => 3
    [2] => foo
    [3] => 5.5
    [4] => 43.3
    [5] => 21.11
)
----
vector b - a warning (b = log(PI) * a)
<b>WARNING</b> [1024] Value at position 2 is not a number, using 0 (zero)<br />
Array
(
    [0] => 2.2894597716988
    [1] => 3.4341896575482
    [2] => 0
    [3] => 6.2960143721717
    [4] => 49.566804057279
    [5] => 24.165247890281
)
----
vector c - an error
<b>ERROR</b> [512] Incorrect input vector, array of values expected<br />
NULL
----
vector d - fatal error
<b>FATAL</b> [256] log(x) for x <= 0 is undefined, you used: scale = -2.5<br />
  Fatal error in line 36 of file trigger_error.php, PHP 4.0.2 (Linux)<br />
Aborting...<br />

It is important to remember that the standard PHP error handler is completely bypassed. error_reporting() settings will have no effect and your error handler will be called regardless - however you are still able to read the current value of error_reporting and act appropriately. Of particular note is that this value will be 0 if the statement that caused the error was prepended by the @ error-control operator.

Also note that it is your responsibility to die() if necessary. If the error-handler function returns, script execution will continue with the next statement after the one that caused an error.

Poznámka: If errors occur before the script is executed (e.g. on file uploads) the custom error handler cannot be called since it is not registered at that time.

Poznámka: The second parameter error_types was introduced in PHP 5.

See also error_reporting(),
restore_error_handler(),
trigger_error(), and
error level constants.

Předcházející | Domů | Další
restore_error_handler | Nahoru | trigger_error


trigger_error

(PHP 4 >= 4.0.1, PHP 5)

trigger_error -- Generates a user-level error/warning/notice message

Description

void trigger_error ( string error_msg [, int error_type])

Used to trigger a user error condition, it can be used by in conjunction with the built-in error handler, or with a user defined function that has been set as the new error handler (set_error_handler()). It only works with the E_USER family of constants, and will default to E_USER_NOTICE.

This function is useful when you need to generate a particular response to an exception at runtime. For example:

<?php
if (assert($divisor == 0)) {
  trigger_error("Cannot divide by zero", E_USER_ERROR);
}
?>

Poznámka: See set_error_handler() for a more extensive example.

Poznámka: error_msg is limited to 1024 characters in length. Any additional characters beyond 1024 will be truncated.

See also error_reporting(),
set_error_handler(),
restore_error_handler(), and
error level constants.

Předcházející | Domů | Další
set_error_handler | Nahoru | user_error


user_error

user_error -- Alias of trigger_error()

Description

This function is an alias of trigger_error().

Předcházející | Domů | Další
trigger_error | Nahoru | File Alteration Monitor Functions


File Alteration Monitor Functions

Manuál PHP
Předcházející Další

XXVII. File Alteration Monitor Functions

Úvod

FAM monitors files and directories, notifying interested applications of changes. More information about FAM is available at http://oss.sgi.com/projects/fam/.

A PHP script may specify a list of files for FAM to monitor using the functions provided by this extension.

The FAM process is started when the first connection from any application to it is opened. It exits after all connections to it have been closed.

Poznámka: Toto rozšíření není k dispozici na platformách Windows.

Požadavky

This extension uses the functions of the FAM library, devoloped by SGI. Therefore you have to download and install the FAM library.

Instalace

To use PHP's FAM support you must compile PHP --with-fam[=DIR] where DIR is the location of the directory containing the lib and include directories.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

FAM resource

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

Tabulka 1. FAM event constants

Constant | Description
FAMChanged (integer) | Some value which can be obtained with fstat(1) changed for a file or directory.
FAMDeleted (integer) | A file or directory was deleted or renamed.
FAMStartExecuting (integer) | An executable file started executing.
FAMStopExecuting (integer) | An executable file that was running finished.
FAMCreated (integer) | A file was created in a directory.
FAMMoved (integer) | This event never occurs.
FAMAcknowledge (integer) | An event in response to fam_cancel_monitor().
FAMExists (integer) | An event upon request to monitor a file or directory. When a directory is monitored, an event for that directory and every file contained in that directory is issued.
FAMEndExist (integer) | Event after the last FAMEExists event.
Obsah
fam_cancel_monitor -- Terminate monitoring
fam_close -- Close FAM connection
fam_monitor_collection -- Monitor a collection of files in a directory for changes
fam_monitor_directory -- Monitor a directory for changes
fam_monitor_file -- Monitor a regular file for changes
fam_next_event -- Get next pending FAM event
fam_open -- Open connection to FAM daemon
fam_pending -- Check for pending FAM events
fam_resume_monitor -- Resume suspended monitoring
fam_suspend_monitor -- Temporarily suspend monitoring

Předcházející | Domů | Další
user_error | Nahoru | fam_cancel_monitor


fam_cancel_monitor

(PHP 5)

fam_cancel_monitor -- Terminate monitoring

Description

bool fam_cancel_monitor ( resource fam, resource fam_monitor)

fam_cancel_monitor() terminates monitoring on a resource previously requested using one of the fam_monitor_...(). In addition an FAMAcknowledge event occurs.

See also fam_monitor_file(),
fam_monitor_directory(),
fam_monitor_collection(), and
fam_suspend_monitor()

Předcházející | Domů | Další
File Alteration Monitor Functions | Nahoru | fam_close


fam_close

(PHP 5)

fam_close -- Close FAM connection

Description

void fam_close ( resource fam)

fam_close() closes a connection to the FAM service previously opened using fam_open().

Předcházející | Domů | Další
fam_cancel_monitor | Nahoru | fam_monitor_collection


fam_monitor_collection

(PHP 5)

fam_monitor_collection -- Monitor a collection of files in a directory for changes

Description

resource fam_monitor_collection ( resource fam, string dirname, int depth, string mask)

fam_monitor_collection() requests monitoring for a collection of files within a directory. The actual files to be monitored are specified by a directory path in dirname, the maximum search depth starting from this directory and a shell pattern mask restricting the file names to look for.

A FAM event will be generated whenever the status of the files change. The possible event codes are described in detail in the constants part of this section.

See also fam_monitor_file(),
fam_monitor_directory(),
fam_cancel_monitor(),
fam_suspend_monitor(), and
fam_resume_monitor().

Předcházející | Domů | Další
fam_close | Nahoru | fam_monitor_directory


fam_monitor_directory

(PHP 5)

fam_monitor_directory -- Monitor a directory for changes

Description

resource fam_monitor_directory ( resource fam, string dirname)

fam_monitor_directory() requests monitoring for a directory and all contained files. A FAM event will be generated whenever the status of the directory (i.e. the result of function stat() on that directory) or its content (i.e. the results of readdir()) change.

The possible event codes are described in detail in the constants part of this section.

See also fam_monitor_file(),
fam_monitor_collection(),
fam_cancel_monitor(),
fam_suspend_monitor(), and
fam_resume_monitor().

Předcházející | Domů | Další
fam_monitor_collection | Nahoru | fam_monitor_file


fam_monitor_file

(PHP 5)

fam_monitor_file -- Monitor a regular file for changes

Description

resource fam_monitor_file ( resource fam, string filename)

fam_monitor_file() requests monitoring for a single file. A FAM event will be generated whenever the file status (i.e. the result of function stat() on that file) changes.

The possible event codes are described in detail in the constants part of this section.

See also fam_monitor_directory(),
fam_monitor_collection(),
fam_cancel_monitor(),
fam_suspend_monitor(), and
fam_resume_monitor().

Předcházející | Domů | Další
fam_monitor_directory | Nahoru | fam_next_event


fam_next_event

(PHP 5)

fam_next_event -- Get next pending FAM event

Description

array fam_next_event ( resource fam)

fam_next_event() returns the next pending FAM event. The function will block until an event is available which can be checked for using fam_pending().

fam_next_event() will return an array that contains a FAM event code in element 'code', the path of the file this event applies to in element 'filename' and optionally a hostname in element 'hostname'.

The possible event codes are described in detail in the constants part of this section.

See also fam_pending().

Předcházející | Domů | Další
fam_monitor_file | Nahoru | fam_open


fam_open

(PHP 5)

fam_open -- Open connection to FAM daemon

Description

resource fam_open ( [string appname])

fam_open() opens a connection to the FAM service daemon. The optional parameter appname should be set to a string identifying the application for logging reasons.

See also fam_close().

Předcházející | Domů | Další
fam_next_event | Nahoru | fam_pending


fam_pending

(PHP 5)

fam_pending -- Check for pending FAM events

Description

bool fam_pending ( resource fam)

fam_pending() returns TRUE if events are available to be fetched using fam_next_event().

See also fam_next_event().

Předcházející | Domů | Další
fam_open | Nahoru | fam_resume_monitor


fam_resume_monitor

(PHP 5)

fam_resume_monitor -- Resume suspended monitoring

Description

bool fam_resume_monitor ( resource fam, resource fam_monitor)

fam_resume_monitor() resumes monitoring of a resource previously suspend using fam_suspend_monitor().

See also fam_suspend_monitor().

Předcházející | Domů | Další
fam_pending | Nahoru | fam_suspend_monitor


fam_suspend_monitor

(PHP 5)

fam_suspend_monitor -- Temporarily suspend monitoring

Description

bool fam_suspend_monitor ( resource fam, resource fam_monitor)

fam_suspend_monitor() temporarily suspend monitoring of a resource previously requested using one of the fam_monitor_...() functions. Monitoring can later be continued using fam_resume_monitor() without the need of requesting a complete new monitor.

See also fam_resume_monitor(), and fam_cancel_monitor().

Předcházející | Domů | Další
fam_resume_monitor | Nahoru | FrontBase Functions


FrontBase Functions

Manuál PHP
Předcházející Další

XXVIII. FrontBase Functions

Úvod

These functions allow you to access FrontBase database servers. More information about FrontBase can be found at http://www.frontbase.com/.

Documentation for FrontBase can be found at http://www.frontbase.com/cgi-bin/WebObjects/FrontBase.woa/wa/productsPage?currentPage=Documentation.

Frontbase support has been added to PHP 4.0.6.

Požadavky

You must install the FrontBase database server or at least the fbsql client libraries to use this functions. You can get FrontBase from http://www.frontbase.com/.

Instalace

In order to have these functions available, you must compile PHP with fbsql support by using the --with-fbsql[=DIR] option. If you use this option without specifying the path to fbsql, PHP will search for the fbsql client libraries in the default installation location for the platform. Users who installed FrontBase in a non standard directory should always specify the path to fbsql: --with-fbsql=/path/to/fbsql. This will force PHP to use the client libraries installed by FrontBase, avoiding any conflicts.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 1. FrontBase configuration options

Name | Default | Changeable
fbsql.allow_persistent | "1" | PHP_INI_SYSTEM
fbsql.generate_warnings | "0" | PHP_INI_SYSTEM
fbsql.autocommit | "1" | PHP_INI_SYSTEM
fbsql.max_persistent | "-1" | PHP_INI_SYSTEM
fbsql.max_links | "128" | PHP_INI_SYSTEM
fbsql.max_connections | "128" | PHP_INI_SYSTEM
fbsql.max_results | "128" | PHP_INI_SYSTEM
fbsql.batchSize | "1000" | PHP_INI_SYSTEM
fbsql.default_host | NULL | PHP_INI_SYSTEM
fbsql.default_user | "_SYSTEM" | PHP_INI_SYSTEM
fbsql.default_password | "" | PHP_INI_SYSTEM
fbsql.default_database | "" | PHP_INI_SYSTEM
fbsql.default_database_password | "" | PHP_INI_SYSTEM
For further details and definition of the PHP_INI_* constants see ini_set().

Typy prostředků

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

FBSQL_ASSOC (integer)

FBSQL_NUM (integer)

FBSQL_BOTH (integer)

FBSQL_LOCK_DEFERRED (integer)

FBSQL_LOCK_OPTIMISTIC (integer)

FBSQL_LOCK_PESSIMISTIC (integer)

FBSQL_ISO_READ_UNCOMMITTED (integer)

FBSQL_ISO_READ_COMMITTED (integer)

FBSQL_ISO_REPEATABLE_READ (integer)

FBSQL_ISO_SERIALIZABLE (integer)

FBSQL_ISO_VERSIONED (integer)

FBSQL_UNKNOWN (integer)

FBSQL_STOPPED (integer)

FBSQL_STARTING (integer)

FBSQL_RUNNING (integer)

FBSQL_STOPPING (integer)

FBSQL_NOEXEC (integer)

FBSQL_LOB_DIRECT (integer)

FBSQL_LOB_HANDLE (integer)

Obsah
fbsql_affected_rows -- Get number of affected rows in previous FrontBase operation
fbsql_autocommit -- Enable or disable autocommit
fbsql_change_user -- Change logged in user of the active connection
fbsql_close -- Close FrontBase connection
fbsql_commit -- Commits a transaction to the database
fbsql_connect -- Open a connection to a FrontBase Server
fbsql_create_blob -- Create a BLOB
fbsql_create_clob -- Create a CLOB
fbsql_create_db -- Create a FrontBase database
fbsql_data_seek -- Move internal result pointer
fbsql_database_password -- Sets or retrieves the password for a FrontBase database
fbsql_database -- Get or set the database name used with a connection
fbsql_db_query -- Send a FrontBase query
fbsql_db_status -- Get the status for a given database
fbsql_drop_db -- Drop (delete) a FrontBase database
fbsql_errno -- Returns the numerical value of the error message from previous FrontBase operation
fbsql_error -- Returns the text of the error message from previous FrontBase operation
fbsql_fetch_array -- Fetch a result row as an associative array, a numeric array, or both
fbsql_fetch_assoc -- Fetch a result row as an associative array
fbsql_fetch_field -- Get column information from a result and return as an object
fbsql_fetch_lengths -- Get the length of each output in a result
fbsql_fetch_object -- Fetch a result row as an object
fbsql_fetch_row -- Get a result row as an enumerated array
fbsql_field_flags -- Get the flags associated with the specified field in a result
fbsql_field_len -- Returns the length of the specified field
fbsql_field_name -- Get the name of the specified field in a result
fbsql_field_seek -- Set result pointer to a specified field offset
fbsql_field_table -- Get name of the table the specified field is in
fbsql_field_type -- Get the type of the specified field in a result
fbsql_free_result -- Free result memory
fbsql_get_autostart_info -- No description given yet
fbsql_hostname -- Get or set the host name used with a connection
fbsql_insert_id -- Get the id generated from the previous INSERT operation
fbsql_list_dbs -- List databases available on a FrontBase server
fbsql_list_fields -- List FrontBase result fields
fbsql_list_tables -- List tables in a FrontBase database
fbsql_next_result -- Move the internal result pointer to the next result
fbsql_num_fields -- Get number of fields in result
fbsql_num_rows -- Get number of rows in result
fbsql_password -- Get or set the user password used with a connection
fbsql_pconnect -- Open a persistent connection to a FrontBase Server
fbsql_query -- Send a FrontBase query
fbsql_read_blob -- Read a BLOB from the database
fbsql_read_clob -- Read a CLOB from the database
fbsql_result -- Get result data
fbsql_rollback -- Rollback a transaction to the database
fbsql_select_db -- Select a FrontBase database
fbsql_set_lob_mode -- Set the LOB retrieve mode for a FrontBase result set
fbsql_set_transaction -- Set the transaction locking and isolation
fbsql_start_db -- Start a database on local or remote server
fbsql_stop_db -- Stop a database on local or remote server
fbsql_tablename -- Get table name of field
fbsql_username -- Get or set the host user used with a connection
fbsql_warnings -- Enable or disable FrontBase warnings

Předcházející | Domů | Další
fam_suspend_monitor | Nahoru | fbsql_affected_rows


fbsql_affected_rows

(PHP 4 >= 4.0.6, PHP 5)

fbsql_affected_rows -- Get number of affected rows in previous FrontBase operation

Description

int fbsql_affected_rows ( [resource link_identifier])

fbsql_affected_rows() returns the number of rows affected by the last INSERT, UPDATE or DELETE query associated with link_identifier. If the link identifier isn't specified, the last link opened by fbsql_connect() is assumed.

Poznámka: If you are using transactions, you need to call fbsql_affected_rows() after your INSERT, UPDATE, or DELETE query, not after the commit.

If the last query was a DELETE query with no WHERE clause, all of the records will have been deleted from the table but this function will return zero.

Poznámka: When using UPDATE, FrontBase will not update columns where the new value is the same as the old value. This creates the possibility that fbsql_affected_rows() may not actually equal the number of rows matched, only the number of rows that were literally affected by the query.

If the last query failed, this function will return -1.

See also: fbsql_num_rows().

Předcházející | Domů | Další
FrontBase Functions | Nahoru | fbsql_autocommit


fbsql_autocommit

(PHP 4 >= 4.0.6, PHP 5)

fbsql_autocommit -- Enable or disable autocommit

Description

bool fbsql_autocommit ( resource link_identifier [, bool OnOff])

fbsql_autocommit() returns the current autocommit status. If the optional OnOff parameter is given the auto commit status will be changed. With OnOff set to TRUE each statement will be committed automatically, if no errors was found. With OnOff set to FALSE the user must commit or rollback the transaction using either fbsql_commit() or fbsql_rollback().

See also: fbsql_commit() and fbsql_rollback()

Předcházející | Domů | Další
fbsql_affected_rows | Nahoru | fbsql_change_user


fbsql_change_user

(no version information, might be only in CVS)

fbsql_change_user -- Change logged in user of the active connection

Description

resource fbsql_change_user ( string user, string password [, string database [, resource link_identifier]])

fbsql_change_user() changes the logged in user of the current active connection, or the connection given by the optional parameter link_identifier. If a database is specified, this will default or current database after the user has been changed. If the new user and password authorization fails, the current connected user stays active.

Předcházející | Domů | Další
fbsql_autocommit | Nahoru | fbsql_close


fbsql_close

(PHP 4 >= 4.0.6, PHP 5)

fbsql_close -- Close FrontBase connection

Description

bool fbsql_close ( [resource link_identifier])

Returns: TRUE on success, FALSE on error.

fbsql_close() closes the connection to the FrontBase server that's associated with the specified link identifier. If link_identifier isn't specified, the last opened link is used.

Using fbsql_close() isn't usually necessary, as non-persistent open links are automatically closed at the end of the script's execution.

Příklad 1. fbsql_close() example

<?php
    $link = fbsql_connect("localhost", "_SYSTEM", "secret")
        or die("Could not connect");
    echo "Connected successfully";
    fbsql_close($link);
?>

See also: fbsql_connect() and fbsql_pconnect().

Předcházející | Domů | Další
fbsql_change_user | Nahoru | fbsql_commit


fbsql_commit

(PHP 4 >= 4.0.6, PHP 5)

fbsql_commit -- Commits a transaction to the database

Description

bool fbsql_commit ( [resource link_identifier])

Vrací TRUE při úspěchu, FALSE při selhání.

fbsql_commit() ends the current transaction by writing all inserts, updates and deletes to the disk and unlocking all row and table locks held by the transaction. This command is only needed if autocommit is set to false.

See also: fbsql_autocommit() and fbsql_rollback()

Předcházející | Domů | Další
fbsql_close | Nahoru | fbsql_connect


fbsql_connect

(PHP 4 >= 4.0.6, PHP 5)

fbsql_connect -- Open a connection to a FrontBase Server

Description

resource fbsql_connect ( [string hostname [, string username [, string password]]])

Returns a positive FrontBase link identifier on success, or an error message on failure.

fbsql_connect() establishes a connection to a
FrontBase server.  The following defaults are assumed for missing
optional parameters: hostname = 'NULL',
username = '_SYSTEM' and
password = empty password.

If a second call is made to fbsql_connect() with the same arguments, no new link will be established, but instead, the link identifier of the already opened link will be returned.

The link to the server will be closed as soon as the execution of the script ends, unless it's closed earlier by explicitly calling fbsql_close().

Příklad 1. fbsql_connect() example

<?php

    $link = fbsql_connect("localhost", "_SYSTEM", "secret")
        or die("Could not connect");
    echo "Connected successfully";
    fbsql_close($link);

?>

See also fbsql_pconnect() and fbsql_close().

Předcházející | Domů | Další
fbsql_commit | Nahoru | fbsql_create_blob


fbsql_create_blob

(PHP 4 >= 4.2.0, PHP 5)

fbsql_create_blob -- Create a BLOB

Description

string fbsql_create_blob ( string blob_data [, resource link_identifier])

Returns: A resource handle to the newly created blob.

fbsql_create_blob() creates a blob from blob_data. The returned resource handle can be used with insert and update commands to store the blob in the database.

Příklad 1. fbsql_create_blob() example

<?php
    $link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
        or die("Could not connect");
    $filename = "blobfile.bin";
    $fp = fopen($filename, "rb");
    $blobdata = fread($fp, filesize($filename));
    fclose($fp);

    $blobHandle = fbsql_create_blob($blobdata, $link);

    $sql = "INSERT INTO BLOB_TABLE (BLOB_COLUMN) VALUES ($blobHandle);";
    $rs = fbsql_query($sql, $link);
?>

See also: fbsql_create_clob(),
fbsql_read_blob(),
fbsql_read_clob(), and
fbsql_set_lob_mode().

Předcházející | Domů | Další
fbsql_connect | Nahoru | fbsql_create_clob


fbsql_create_clob

(PHP 4 >= 4.2.0, PHP 5)

fbsql_create_clob -- Create a CLOB

Description

string fbsql_create_clob ( string clob_data [, resource link_identifier])

Returns: A resource handle to the newly created CLOB.

fbsql_create_clob() creates a clob from clob_data. The returned resource handle can be used with insert and update commands to store the clob in the database.

Příklad 1. fbsql_create_clob() example

<?php
    $link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
        or die("Could not connect");
    $filename = "clob_file.txt";
    $fp = fopen($filename, "rb");
    $clobdata = fread($fp, filesize($filename));
    fclose($fp);

    $clobHandle = fbsql_create_clob($clobdata, $link);

    $sql = "INSERT INTO CLOB_TABLE (CLOB_COLUMN) VALUES ($clobHandle);";
    $rs = fbsql_query($sql, $link);
?>

See also: fbsql_create_blob(),
fbsql_read_blob(),
fbsql_read_clob(), and
fbsql_set_lob_mode().

Předcházející | Domů | Další
fbsql_create_blob | Nahoru | fbsql_create_db


fbsql_create_db

(PHP 4 >= 4.0.6, PHP 5)

fbsql_create_db -- Create a FrontBase database

Description

bool fbsql_create_db ( string database_name [, resource link_identifier])

fbsql_create_db() attempts to create a new database named database_name on the server associated with the specified connection link_identifier.

Příklad 1. fbsql_create_db() example

<?php
    $link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
        or die("Could not connect");
    if (fbsql_create_db("my_db")) {
        echo "Database created successfully\n";
    } else {
        printf("Error creating database: %s\n", fbsql_error());
    }
?>

See also: fbsql_drop_db().

Předcházející | Domů | Další
fbsql_create_clob | Nahoru | fbsql_data_seek


fbsql_data_seek

(PHP 4 >= 4.0.6, PHP 5)

fbsql_data_seek -- Move internal result pointer

Description

bool fbsql_data_seek ( resource result_identifier, int row_number)

Vrací TRUE při úspěchu, FALSE při selhání.

fbsql_data_seek() moves the internal row pointer of the FrontBase result associated with the specified result identifier to point to the specified row number. The next call to fbsql_fetch_row() would return that row.

Row_number starts at 0.

Příklad 1. fbsql_data_seek() example

<?php
    $link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
        or die("Could not connect");

    fbsql_select_db("samp_db")
        or die("Could not select database");

    $query = "SELECT last_name, first_name FROM friends;";
    $result = fbsql_query($query)
        or die("Query failed");

    // fetch rows in reverse order

    for ($i = fbsql_num_rows($result) - 1; $i >=0; $i--) {
        if (!fbsql_data_seek($result, $i)) {
            printf("Cannot seek to row %d\n", $i);
            continue;
        }

        if (!($row = fbsql_fetch_object($result)))
            continue;

        echo $row->last_name . $row->first_name . "<br />\n";
    }

    fbsql_free_result($result);
?>

Předcházející | Domů | Další
fbsql_create_db | Nahoru | fbsql_database_password


fbsql_database_password

(PHP 4 >= 4.0.6, PHP 5)

fbsql_database_password -- Sets or retrieves the password for a FrontBase database

Description

string fbsql_database_password ( resource link_identifier [, string database_password])

Returns: The database password associated with the link identifier.

fbsql_database_password() sets and retrieves the database password used by the connection. if a database is protected by a database password, the user must call this function before calling fbsql_select_db(). if the second optional parameter is given the function sets the database password for the specified link identifier. If no link identifier is specified, the last opened link is assumed. If no link is open, the function will try to establish a link as if fbsql_connect() was called, and use it.

This function does not change the database password in the database nor can it be used to retrieve the database password for a database.

Příklad 1. fbsql_create_clob() example

<?php
    $link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
        or die("Could not connect");
    fbsql_database_password($link, "secret db password");
    fbsql_select_db($database, $link);
?>

See also: fbsql_connect(),
fbsql_pconnect() and
fbsql_select_db().

Předcházející | Domů | Další
fbsql_data_seek | Nahoru | fbsql_database


fbsql_database

(PHP 4 >= 4.0.6, PHP 5)

fbsql_database -- Get or set the database name used with a connection

Description

string fbsql_database ( resource link_identifier [, string database])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
fbsql_database_password | Nahoru | fbsql_db_query


fbsql_db_query

(PHP 4 >= 4.0.6, PHP 5)

fbsql_db_query -- Send a FrontBase query

Description

resource fbsql_db_query ( string database, string query [, resource link_identifier])

Returns: A positive FrontBase result identifier to the query result, or FALSE on error.

fbsql_db_query() selects a database and executes a query on it. If the optional link identifier isn't specified, the function will try to find an open link to the FrontBase server and if no such link is found it'll try to create one as if fbsql_connect() was called with no arguments

See also fbsql_connect().

Předcházející | Domů | Další
fbsql_database | Nahoru | fbsql_db_status


fbsql_db_status

(PHP 4 >= 4.1.0, PHP 5)

fbsql_db_status -- Get the status for a given database

Description

int fbsql_db_status ( string database_name [, resource link_identifier])

Returns: An integer value with the current status.

fbsql_db_status() requests the current status of the database specified by database_name. If the link_identifier is omitted the default link_identifier will be used.

The return value can be one of the following constants:

  • FALSE - The exec handler for the host was invalid. This error will occur when the link_identifier connects directly to a database by using a port number. FBExec can be available on the server but no connection has been made for it.

  • FBSQL_UNKNOWN - The Status is unknown.

  • FBSQL_STOPPED - The database is not running. Use fbsql_start_db() to start the database.

  • FBSQL_STARTING - The database is starting.

  • FBSQL_RUNNING - The database is running and can be used to perform SQL operations.

  • FBSQL_STOPPING - The database is stopping.

  • FBSQL_NOEXEC - FBExec is not running on the server and it is not possible to get the status of the database.

See also: fbsql_start_db() and fbsql_stop_db().

Předcházející | Domů | Další
fbsql_db_query | Nahoru | fbsql_drop_db


fbsql_drop_db

(PHP 4 >= 4.0.6, PHP 5)

fbsql_drop_db -- Drop (delete) a FrontBase database

Description

bool fbsql_drop_db ( string database_name [, resource link_identifier])

Vrací TRUE při úspěchu, FALSE při selhání.

fbsql_drop_db() attempts to drop (remove) an entire database from the server associated with the specified link identifier.

Předcházející | Domů | Další
fbsql_db_status | Nahoru | fbsql_errno


fbsql_errno

(PHP 4 >= 4.0.6, PHP 5)

fbsql_errno -- Returns the numerical value of the error message from previous FrontBase operation

Description

int fbsql_errno ( [resource link_identifier])

Returns the error number from the last fbsql function, or 0 (zero) if no error occurred.

Errors coming back from the fbsql database backend don't issue warnings. Instead, use fbsql_errno() to retrieve the error code. Note that this function only returns the error code from the most recently executed fbsql function (not including fbsql_error() and fbsql_errno()), so if you want to use it, make sure you check the value before calling another fbsql function.

<?php
fbsql_connect("marliesle");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
fbsql_select_db("nonexistentdb");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
$conn = fbsql_query("SELECT * FROM nonexistenttable;");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
?>

See also: fbsql_error() and fbsql_warnings().

Předcházející | Domů | Další
fbsql_drop_db | Nahoru | fbsql_error


fbsql_error

(PHP 4 >= 4.0.6, PHP 5)

fbsql_error -- Returns the text of the error message from previous FrontBase operation

Description

string fbsql_error ( [resource link_identifier])

Returns the error text from the last fbsql function, or '' (the empty string) if no error occurred.

Errors coming back from the fbsql database backend don't issue warnings. Instead, use fbsql_error() to retrieve the error text. Note that this function only returns the error text from the most recently executed fbsql function (not including fbsql_error() and fbsql_errno()), so if you want to use it, make sure you check the value before calling another fbsql function.

<?php
fbsql_connect("marliesle");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
fbsql_select_db("nonexistentdb");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
$conn = fbsql_query("SELECT * FROM nonexistenttable;");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
?>

See also: fbsql_errno() and fbsql_warnings().

Předcházející | Domů | Další
fbsql_errno | Nahoru | fbsql_fetch_array


fbsql_fetch_array

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_array -- Fetch a result row as an associative array, a numeric array, or both

Description

array fbsql_fetch_array ( resource result [, int result_type])

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

fbsql_fetch_array() is an extended version of fbsql_fetch_row(). In addition to storing the data in the numeric indices of the result array, it also stores the data in associative indices, using the field names as keys.

If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you must the numeric index of the column or make an alias for the column.

select t1.f1 as foo t2.f1 as bar from t1, t2

An important thing to note is that using fbsql_fetch_array() is NOT significantly slower than using fbsql_fetch_row(), while it provides a significant added value.

The optional second argument result_type in fbsql_fetch_array() is a constant and can take the following values: FBSQL_ASSOC, FBSQL_NUM, and FBSQL_BOTH.

For further details, see also fbsql_fetch_row() and fbsql_fetch_assoc().

Příklad 1. fbsql_fetch_array() example

<?php
fbsql_connect($host, $user, $password);
$result = fbsql_db_query("database", "select user_id, fullname from table");
while ($row = fbsql_fetch_array($result)) {
    echo "user_id: " . $row["user_id"] . "<br />\n";
    echo "user_id: " . $row[0] . "<br />\n";
    echo "fullname: " . $row["fullname"] . "<br />\n";
    echo "fullname: " . $row[1] . "<br />\n";
}
fbsql_free_result($result);
?>

Předcházející | Domů | Další
fbsql_error | Nahoru | fbsql_fetch_assoc


fbsql_fetch_assoc

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_assoc -- Fetch a result row as an associative array

Description

array fbsql_fetch_assoc ( resource result)

Returns an associative array that corresponds to the fetched row, or FALSE if there are no more rows.

fbsql_fetch_assoc() is equivalent to calling fbsql_fetch_array() with FBSQL_ASSOC for the optional second parameter. It only returns an associative array. This is the way fbsql_fetch_array() originally worked. If you need the numeric indices as well as the associative, use fbsql_fetch_array().

If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you must use fbsql_fetch_array() and have it return the numeric indices as well.

An important thing to note is that using fbsql_fetch_assoc() is NOT significantly slower than using fbsql_fetch_row(), while it provides a significant added value.

For further details, see also fbsql_fetch_row() and fbsql_fetch_array().

Příklad 1. fbsql_fetch_assoc() example

<?php
fbsql_connect($host, $user, $password);
$result = fbsql_db_query("database", "select * from table");
while ($row = fbsql_fetch_assoc($result)) {
    echo $row["user_id"];
    echo $row["fullname"];
}
fbsql_free_result($result);
?>

Předcházející | Domů | Další
fbsql_fetch_array | Nahoru | fbsql_fetch_field


fbsql_fetch_field

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_field -- Get column information from a result and return as an object

Description

object fbsql_fetch_field ( resource result [, int field_offset])

Returns an object containing field information.

fbsql_fetch_field() can be used in order to obtain information about fields in a certain query result. If the field offset isn't specified, the next field that wasn't yet retrieved by fbsql_fetch_field() is retrieved.

The properties of the object are:

  • name - column name

  • table - name of the table the column belongs to

  • max_length - maximum length of the column

  • not_null - 1 if the column cannot be NULL

  • type - the type of the column

Příklad 1. fbsql_fetch_field() example

<?php
fbsql_connect($host, $user, $password)
    or die("Could not connect");
$result = fbsql_db_query("database", "select * from table")
    or die("Query failed");
# get column metadata
$i = 0;
while ($i < fbsql_num_fields($result)) {
    echo "Information for column $i:<br />\n";
    $meta = fbsql_fetch_field($result);
    if (!$meta) {
        echo "No information available<br />\n";
    }
    echo "<pre>
max_length:   $meta->max_length
name:         $meta->name
not_null:     $meta->not_null
table:        $meta->table
type:         $meta->type
</pre>";
    $i++;
}
fbsql_free_result($result);
?>

See also fbsql_field_seek().

Předcházející | Domů | Další
fbsql_fetch_assoc | Nahoru | fbsql_fetch_lengths


fbsql_fetch_lengths

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_lengths -- Get the length of each output in a result

Description

array fbsql_fetch_lengths ( [resource result])

Returns: An array that corresponds to the lengths of each field in the last row fetched by fbsql_fetch_row(), or FALSE on error.

fbsql_fetch_lengths() stores the lengths of
each result column in the last row returned by
fbsql_fetch_row(),
fbsql_fetch_array() and
fbsql_fetch_object() in an array, starting at
offset 0.

See also: fbsql_fetch_row().

Předcházející | Domů | Další
fbsql_fetch_field | Nahoru | fbsql_fetch_object


fbsql_fetch_object

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_object -- Fetch a result row as an object

Description

object fbsql_fetch_object ( resource result [, int result_type])

Returns an object with properties that correspond to the fetched row, or FALSE if there are no more rows.

fbsql_fetch_object() is similar to fbsql_fetch_array(), with one difference - an object is returned, instead of an array. Indirectly, that means that you can only access the data by the field names, and not by their offsets (numbers are illegal property names).

The optional argument result_type is a constant and can take the following values: FBSQL_ASSOC, FBSQL_NUM, and FBSQL_BOTH.

Speed-wise, the function is identical to fbsql_fetch_array(), and almost as quick as fbsql_fetch_row() (the difference is insignificant).

Příklad 1. fbsql_fetch_object() example

<?php
fbsql_connect($host, $user, $password);
$result = fbsql_db_query("database", "select * from table");
while ($row = fbsql_fetch_object($result)) {
    echo $row->user_id;
    echo $row->fullname;
}
fbsql_free_result($result);
?>

See also: fbsql_fetch_array() and fbsql_fetch_row().

Předcházející | Domů | Další
fbsql_fetch_lengths | Nahoru | fbsql_fetch_row


fbsql_fetch_row

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_row -- Get a result row as an enumerated array

Description

array fbsql_fetch_row ( resource result)

Returns: An array that corresponds to the fetched row, or FALSE if there are no more rows.

fbsql_fetch_row() fetches one row of data from the result associated with the specified result identifier. The row is returned as an array. Each result column is stored in an array offset, starting at offset 0.

Subsequent call to fbsql_fetch_row() would return the next row in the result set, or FALSE if there are no more rows.

See also: fbsql_fetch_array(),
fbsql_fetch_object(),
fbsql_data_seek(),
fbsql_fetch_lengths(), and
fbsql_result().

Předcházející | Domů | Další
fbsql_fetch_object | Nahoru | fbsql_field_flags


fbsql_field_flags

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_flags -- Get the flags associated with the specified field in a result

Description

string fbsql_field_flags ( resource result, int field_offset)

fbsql_field_flags() returns the field flags of the specified field. The flags are reported as a single word per flag separated by a single space, so that you can split the returned value using explode().

Předcházející | Domů | Další
fbsql_fetch_row | Nahoru | fbsql_field_len


fbsql_field_len

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_len -- Returns the length of the specified field

Description

int fbsql_field_len ( resource result, int field_offset)

fbsql_field_len() returns the length of the specified field.

Předcházející | Domů | Další
fbsql_field_flags | Nahoru | fbsql_field_name


fbsql_field_name

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_name -- Get the name of the specified field in a result

Description

string fbsql_field_name ( resource result, int field_index)

fbsql_field_name() returns the name of the specified field index. result must be a valid result identifier and field_index is the numerical offset of the field.

Poznámka: field_index starts at 0.

e.g. The index of the third field would actually be 2, the index of the fourth field would be 3 and so on.

Příklad 1. fbsql_field_name() example

<?php
// The users table consists of three fields:
//   user_id
//   username
//   password.

$res = fbsql_db_query("users", "select * from users", $link);

echo fbsql_field_name($res, 0) . "\n";
echo fbsql_field_name($res, 2);
?>

The above example would produce the following output:

user_id
password

Předcházející | Domů | Další
fbsql_field_len | Nahoru | fbsql_field_seek


fbsql_field_seek

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_seek -- Set result pointer to a specified field offset

Description

bool fbsql_field_seek ( resource result, int field_offset)

Seeks to the specified field offset. If the next call to fbsql_fetch_field() doesn't include a field offset, the field offset specified in fbsql_field_seek() will be returned.

See also: fbsql_fetch_field().

Předcházející | Domů | Další
fbsql_field_name | Nahoru | fbsql_field_table


fbsql_field_table

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_table -- Get name of the table the specified field is in

Description

string fbsql_field_table ( resource result, int field_offset)

Returns the name of the table that the specified field is in.

Předcházející | Domů | Další
fbsql_field_seek | Nahoru | fbsql_field_type


fbsql_field_type

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_type -- Get the type of the specified field in a result

Description

string fbsql_field_type ( resource result, int field_offset)

fbsql_field_type() is similar to the fbsql_field_name() function. The arguments are identical, but the field type is returned instead. The field type will be one of "int", "real", "string", "blob", and others as detailed in the FrontBase documentation.

Příklad 1. fbsql_field_type() example

<?php

fbsql_connect("localhost", "_SYSTEM", "");
fbsql_select_db("wisconsin");
$result = fbsql_query("SELECT * FROM onek;");
$fields = fbsql_num_fields($result);
$rows   = fbsql_num_rows($result);
$i = 0;
$table = fbsql_field_table($result, $i);
echo "Your '" . $table . "' table has " . $fields . " fields and " . $rows . " records <br />";
echo "The table has the following fields <br />";
while ($i < $fields) {
    $type  = fbsql_field_type($result, $i);
    $name  = fbsql_field_name($result, $i);
    $len   = fbsql_field_len($result, $i);
    $flags = fbsql_field_flags($result, $i);
    echo $type . " " . $name . " " . $len . " " . $flags . "<br />";
    $i++;
}
fbsql_close();

?>

Předcházející | Domů | Další
fbsql_field_table | Nahoru | fbsql_free_result


fbsql_free_result

(PHP 4 >= 4.0.6, PHP 5)

fbsql_free_result -- Free result memory

Description

bool fbsql_free_result ( resource result)

fbsql_free_result() will free all memory associated with the result identifier result.

fbsql_free_result() only needs to be called if you are concerned about how much memory is being used for queries that return large result sets. All associated result memory is automatically freed at the end of the script's execution.

Předcházející | Domů | Další
fbsql_field_type | Nahoru | fbsql_get_autostart_info


fbsql_get_autostart_info

(PHP 4 >= 4.1.0, PHP 5)

fbsql_get_autostart_info -- No description given yet

Description

array fbsql_get_autostart_info ( [resource link_identifier])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
fbsql_free_result | Nahoru | fbsql_hostname


fbsql_hostname

(PHP 4 >= 4.0.6, PHP 5)

fbsql_hostname -- Get or set the host name used with a connection

Description

string fbsql_hostname ( resource link_identifier [, string host_name])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
fbsql_get_autostart_info | Nahoru | fbsql_insert_id


fbsql_insert_id

(PHP 4 >= 4.0.6, PHP 5)

fbsql_insert_id -- Get the id generated from the previous INSERT operation

Description

int fbsql_insert_id ( [resource link_identifier])

fbsql_insert_id() returns the ID generated for an column defined as DEFAULT UNIQUE by the previous INSERT query using the given link_identifier. If link_identifier isn't specified, the last opened link is assumed.

fbsql_insert_id() returns 0 if the previous query does not generate an DEFAULT UNIQUE value. If you need to save the value for later, be sure to call fbsql_insert_id() immediately after the query that generates the value.

Poznámka: The value of the FrontBase SQL function fbsql_insert_id() always contains the most recently generated DEFAULT UNIQUE value, and is not reset between queries.

Předcházející | Domů | Další
fbsql_hostname | Nahoru | fbsql_list_dbs


fbsql_list_dbs

(PHP 4 >= 4.0.6, PHP 5)

fbsql_list_dbs -- List databases available on a FrontBase server

Description

resource fbsql_list_dbs ( [resource link_identifier])

fbsql_list_dbs() will return a result pointer containing the databases available from the current fbsql daemon. Use the fbsql_tablename() function to traverse this result pointer.

Příklad 1. fbsql_list_dbs() example

$link = fbsql_connect('localhost', 'myname', 'secret');
$db_list = fbsql_list_dbs($link);

while ($row = fbsql_fetch_object($db_list)) {
    echo $row->Database . "\n";
}

The above example would produce the following output:

database1
database2
database3
...

Poznámka: The above code would just as easily work with fbsql_fetch_row() or other similar functions.

Předcházející | Domů | Další
fbsql_insert_id | Nahoru | fbsql_list_fields


fbsql_list_fields

(PHP 4 >= 4.0.6, PHP 5)

fbsql_list_fields -- List FrontBase result fields

Description

resource fbsql_list_fields ( string database_name, string table_name [, resource link_identifier])

fbsql_list_fields() retrieves information
about the given tablename. Arguments are the database name and
the table name. A result pointer is returned which can be used
with fbsql_field_flags(),
fbsql_field_len(),
fbsql_field_name(), and
fbsql_field_type().

A result identifier is a positive integer. The function returns FALSE if an error occurs. A string describing the error will be placed in $phperrmsg, and unless the function was called as @fbsql() then this error string will also be printed out.

Příklad 1. fbsql_list_fields() example

<?php
$link = fbsql_connect('localhost', 'myname', 'secret');

$fields = fbsql_list_fields("database1", "table1", $link);
$columns = fbsql_num_fields($fields);

for ($i = 0; $i < $columns; $i++) {
    echo fbsql_field_name($fields, $i) . "\n";;
}
?>

The above example would produce the following output:

field1
field2
field3
...

Předcházející | Domů | Další
fbsql_list_dbs | Nahoru | fbsql_list_tables


fbsql_list_tables

(PHP 4 >= 4.0.6, PHP 5)

fbsql_list_tables -- List tables in a FrontBase database

Description

resource fbsql_list_tables ( string database [, resource link_identifier])

fbsql_list_tables() takes a database name and returns a result pointer much like the fbsql_db_query() function. The fbsql_tablename() function should be used to extract the actual table names from the result pointer.

Předcházející | Domů | Další
fbsql_list_fields | Nahoru | fbsql_next_result


fbsql_next_result

(PHP 4 >= 4.0.6, PHP 5)

fbsql_next_result -- Move the internal result pointer to the next result

Description

bool fbsql_next_result ( resource result_id)

When sending more than one SQL statement to the server or executing a stored procedure with multiple results will cause the server to return multiple result sets. This function will test for additional results available form the server. If an additional result set exists it will free the existing result set and prepare to fetch the words from the new result set. The function will return TRUE if an additional result set was available or FALSE otherwise.

Příklad 1. fbsql_next_result() example

<?php
    $link = fbsql_connect("localhost", "_SYSTEM", "secret");
    fbsql_select_db("MyDB", $link);
    $SQL = "Select * from table1; select * from table2;";
    $rs = fbsql_query($SQL, $link);
    do {
        while ($row = fbsql_fetch_row($rs)) {
        }
    } while (fbsql_next_result($rs));
    fbsql_free_result($rs);
    fbsql_close($link);
?>

Předcházející | Domů | Další
fbsql_list_tables | Nahoru | fbsql_num_fields


fbsql_num_fields

(PHP 4 >= 4.0.6, PHP 5)

fbsql_num_fields -- Get number of fields in result

Description

int fbsql_num_fields ( resource result)

fbsql_num_fields() returns the number of fields in a result set.

See also:
fbsql_db_query(),
fbsql_query(),
fbsql_fetch_field(), and
fbsql_num_rows().

Předcházející | Domů | Další
fbsql_next_result | Nahoru | fbsql_num_rows


fbsql_num_rows

(PHP 4 >= 4.0.6, PHP 5)

fbsql_num_rows -- Get number of rows in result

Description

int fbsql_num_rows ( resource result)

fbsql_num_rows() returns the number of rows in a result set. This command is only valid for SELECT statements. To retrieve the number of rows returned from a INSERT, UPDATE or DELETE query, use fbsql_affected_rows().

Příklad 1. fbsql_num_rows() example

<?php

$link = fbsql_connect("localhost", "username", "password");
fbsql_select_db("database", $link);

$result = fbsql_query("SELECT * FROM table1;", $link);
$num_rows = fbsql_num_rows($result);

echo "$num_rows Rows\n";

?>

See also: fbsql_affected_rows(),
fbsql_connect(),
fbsql_select_db(), and
fbsql_query().

Předcházející | Domů | Další
fbsql_num_fields | Nahoru | fbsql_password


fbsql_password

(PHP 4 >= 4.0.6, PHP 5)

fbsql_password -- Get or set the user password used with a connection

Description

string fbsql_password ( resource link_identifier [, string password])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
fbsql_num_rows | Nahoru | fbsql_pconnect


fbsql_pconnect

(PHP 4 >= 4.0.6, PHP 5)

fbsql_pconnect -- Open a persistent connection to a FrontBase Server

Description

resource fbsql_pconnect ( [string hostname [, string username [, string password]]])

Returns: A positive FrontBase persistent link identifier on success, or FALSE on error.

fbsql_pconnect() establishes a connection to a FrontBase server. The following defaults are assumed for missing optional parameters: host = 'localhost', username = "_SYSTEM" and password = empty password.

To set Frontbase server port number, use fbsql_select_db().

fbsql_pconnect() acts very much like fbsql_connect() with two major differences.

First, when connecting, the function would first try to find a (persistent) link that's already open with the same host, username and password. If one is found, an identifier for it will be returned instead of opening a new connection.

Second, the connection to the SQL server will not be closed when the execution of the script ends. Instead, the link will remain open for future use.

This type of links is therefore called 'persistent'.

Předcházející | Domů | Další
fbsql_password | Nahoru | fbsql_query


fbsql_query

(PHP 4 >= 4.0.6, PHP 5)

fbsql_query -- Send a FrontBase query

Description

resource fbsql_query ( string query [, resource link_identifier])

fbsql_query() sends a query to the currently active database on the server that's associated with the specified link identifier. If link_identifier isn't specified, the last opened link is assumed. If no link is open, the function tries to establish a link as if fbsql_connect() was called with no arguments, and use it.

Poznámka: The query string shall always end with a semicolon.

fbsql_query() returns TRUE (non-zero) or FALSE to indicate whether or not the query succeeded. A return value of TRUE means that the query was legal and could be executed by the server. It does not indicate anything about the number of rows affected or returned. It is perfectly possible for a query to succeed but affect no rows or return no rows.

The following query is syntactically invalid, so fbsql_query() fails and returns FALSE:

Příklad 1. fbsql_query() example

<?php
$result = fbsql_query("SELECT * WHERE 1=1")
    or die ("Invalid query");
?>

The following query is semantically invalid if my_col is not a column in the table my_tbl, so fbsql_query() fails and returns FALSE:

Příklad 2. fbsql_query() example

<?php
$result = fbsql_query ("SELECT my_col FROM my_tbl")
    or die ("Invalid query");
?>

fbsql_query() will also fail and return FALSE if you don't have permission to access the table(s) referenced by the query.

Assuming the query succeeds, you can call fbsql_num_rows() to find out how many rows were returned for a SELECT statement or fbsql_affected_rows() to find out how many rows were affected by a DELETE, INSERT, REPLACE, or UPDATE statement.

For SELECT statements, fbsql_query() returns a new result identifier that you can pass to fbsql_result(). When you are done with the result set, you can free the resources associated with it by calling fbsql_free_result(). Although, the memory will automatically be freed at the end of the script's execution.

See also: fbsql_affected_rows(),
fbsql_db_query(),
fbsql_free_result(),
fbsql_result(),
fbsql_select_db(), and
fbsql_connect().

Předcházející | Domů | Další
fbsql_pconnect | Nahoru | fbsql_read_blob


fbsql_read_blob

(PHP 4 >= 4.2.0, PHP 5)

fbsql_read_blob -- Read a BLOB from the database

Description

string fbsql_read_blob ( string blob_handle [, resource link_identifier])

Returns: A string containing the BLOB specified by blob_handle.

fbsql_read_blob() reads BLOB data from the database. If a select statement contains BLOB and/or CLOB columns FrontBase will return the data directly when data is fetched. This default behavior can be changed with fbsql_set_lob_mode() so the fetch functions will return handles to BLOB and CLOB data. If a handle is fetched a user must call fbsql_read_blob() to get the actual BLOB data from the database.

Příklad 1. fbsql_read_blob() example

<?php
    $link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
        or die("Could not connect");
    $sql = "SELECT BLOB_COLUMN FROM BLOB_TABLE;";
    $rs = fbsql_query($sql, $link);
    $row_data = fbsql_fetch_row($rs);
    // $row_data[0] will now contain the blob data for the first row
    fbsql_free_result($rs);

    $rs = fbsql_query($sql, $link);
    fbsql_set_lob_mode($rs, FBSQL_LOB_HANDLE);
    $row_data = fbsql_fetch_row($rs);
    // $row_data[0] will now contain a handle to the BLOB data in the first row
    $blob_data = fbsql_read_blob($row_data[0]);
    fbsql_free_result($rs);

?>

See also: fbsql_create_blob(),
fbsql_read_blob(),
fbsql_read_clob(), and
fbsql_set_lob_mode().

Předcházející | Domů | Další
fbsql_query | Nahoru | fbsql_read_clob


fbsql_read_clob

(PHP 4 >= 4.2.0, PHP 5)

fbsql_read_clob -- Read a CLOB from the database

Description

string fbsql_read_clob ( string clob_handle [, resource link_identifier])

Returns: A string containing the CLOB specified by clob_handle.

fbsql_read_clob() reads CLOB data from the database. If a select statement contains BLOB and/or CLOB columns FrontBase will return the data directly when data is fetched. This default behavior can be changed with fbsql_set_lob_mode() so the fetch functions will return handles to BLOB and CLOB data. If a handle is fetched a user must call fbsql_read_clob() to get the actual CLOB data from the database.

Příklad 1. fbsql_read_clob() example

<?php
    $link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
        or die("Could not connect");
    $sql = "SELECT CLOB_COLUMN FROM CLOB_TABLE;";
    $rs = fbsql_query($sql, $link);
    $row_data = fbsql_fetch_row($rs);
    // $row_data[0] will now contain the clob data for the first row
    fbsql_free_result($rs);

    $rs = fbsql_query($sql, $link);
    fbsql_set_lob_mode($rs, FBSQL_LOB_HANDLE);
    $row_data = fbsql_fetch_row($rs);
    // $row_data[0] will now contain a handle to the CLOB data in the first row
    $clob_data = fbsql_read_clob($row_data[0]);
    fbsql_free_result($rs);

?>

See also: fbsql_create_blob(),
fbsql_read_blob(),
fbsql_read_clob(), and
fbsql_set_lob_mode().

Předcházející | Domů | Další
fbsql_read_blob | Nahoru | fbsql_result


fbsql_result

(PHP 4 >= 4.0.6, PHP 5)

fbsql_result -- Get result data

Description

mixed fbsql_result ( resource result, int row [, mixed field])

fbsql_result() returns the contents of one cell from a FrontBase result set. The field argument can be the field's offset, or the field's name, or the field's table dot field's name (tabledname.fieldname). If the column name has been aliased ('select foo as bar from...'), use the alias instead of the column name.

When working on large result sets, you should consider using one of the functions that fetch an entire row (specified below). As these functions return the contents of multiple cells in one function call, they're MUCH quicker than fbsql_result(). Also, note that specifying a numeric offset for the field argument is much quicker than specifying a fieldname or tablename.fieldname argument.

Calls to fbsql_result() should not be mixed with calls to other functions that deal with the result set.

Recommended high-performance alternatives:
fbsql_fetch_row(),
fbsql_fetch_array(), and
fbsql_fetch_object().

Předcházející | Domů | Další
fbsql_read_clob | Nahoru | fbsql_rollback


fbsql_rollback

(PHP 4 >= 4.0.6, PHP 5)

fbsql_rollback -- Rollback a transaction to the database

Description

bool fbsql_rollback ( [resource link_identifier])

Vrací TRUE při úspěchu, FALSE při selhání.

fbsql_rollback() ends the current transaction by rolling back all statements issued since last commit. This command is only needed if autocommit is set to false.

See also: fbsql_autocommit() and fbsql_commit()

Předcházející | Domů | Další
fbsql_result | Nahoru | fbsql_select_db


fbsql_select_db

(PHP 4 >= 4.0.6, PHP 5)

fbsql_select_db -- Select a FrontBase database

Description

bool fbsql_select_db ( string database_name [, resource link_identifier])

fbsql_select_db() sets the current active database on the server that's associated with the specified link identifier. If no link identifier is specified, the last opened link is assumed. If no link is open, the function will try to establish a link as if fbsql_connect() was called, and use it.

Vrací TRUE při úspěchu, FALSE při selhání.

The client contacts FBExec to obtain the port number to use for the connection to the database. If the database name is a number the system will use that as a port number and it will not ask FBExec for the port number. The FrontBase server can be stared as FRontBase -FBExec=No -port=<port number> <database name>.

Every subsequent call to fbsql_query() will be made on the active database.

if the database is protected with a database password, the user must call fbsql_database_password() before selecting the database.

See also
fbsql_connect(),
fbsql_pconnect(),
fbsql_database_password(), and
fbsql_query().

Předcházející | Domů | Další
fbsql_rollback | Nahoru | fbsql_set_lob_mode


fbsql_set_lob_mode

(PHP 4 >= 4.2.0, PHP 5)

fbsql_set_lob_mode -- Set the LOB retrieve mode for a FrontBase result set

Description

bool fbsql_set_lob_mode ( resource result, string database_name)

Returns: TRUE on success, FALSE on error.

fbsql_set_lob_mode() sets the mode for retrieving LOB data from the database. When BLOB and CLOB data is stored in FrontBase it can be stored direct or indirect. Direct stored LOB data will always be fetched no matter the setting of the lob mode. If the LOB data is less than 512 bytes it will always be stored directly.

  • FBSQL_LOB_DIRECT - LOB data is retrieved directly. When data is fetched from the database with fbsql_fetch_row(), and other fetch functions, all CLOB and BLOB columns will be returned as ordinary columns. This is the default value on a new FrontBase result.

  • FBSQL_LOB_HANDLE - LOB data is retrieved as handles to the data. When data is fetched from the database with fbsql_fetch_row (), and other fetch functions, LOB data will be returned as a handle to the data if the data is stored indirect or the data if it is stored direct. If a handle is returned it will be a 27 byte string formatted as "@'000000000000000000000000'".

See also:
    fbsql_create_blob(),
    fbsql_create_clob(),
    fbsql_read_blob(), and
    fbsql_read_clob().

Předcházející | Domů | Další
fbsql_select_db | Nahoru | fbsql_set_transaction


fbsql_set_transaction

(PHP 4 >= 4.2.0, PHP 5)

fbsql_set_transaction -- Set the transaction locking and isolation

Description

void fbsql_set_transaction ( resource link_identifier, int Locking, int Isolation)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
fbsql_set_lob_mode | Nahoru | fbsql_start_db


fbsql_start_db

(PHP 4 >= 4.0.6, PHP 5)

fbsql_start_db -- Start a database on local or remote server

Description

bool fbsql_start_db ( string database_name [, resource link_identifier])

Vrací TRUE při úspěchu, FALSE při selhání.

fbsql_start_db()

See also: fbsql_db_status() and fbsql_stop_db().

Předcházející | Domů | Další
fbsql_set_transaction | Nahoru | fbsql_stop_db


fbsql_stop_db

(PHP 4 >= 4.0.6, PHP 5)

fbsql_stop_db -- Stop a database on local or remote server

Description

bool fbsql_stop_db ( string database_name [, resource link_identifier])

Vrací TRUE při úspěchu, FALSE při selhání.

fbsql_stop_db()

See also: fbsql_db_status() and fbsql_start_db().

Předcházející | Domů | Další
fbsql_start_db | Nahoru | fbsql_tablename


fbsql_tablename

(PHP 4 >= 4.2.0, PHP 5)

fbsql_tablename -- Get table name of field

Description

string fbsql_tablename ( resource result, int i)

fbsql_tablename() takes a result pointer returned by the fbsql_list_tables() function as well as an integer index and returns the name of a table. The fbsql_num_rows() function may be used to determine the number of tables in the result pointer.

Příklad 1. fbsql_tablename() example

<?php
fbsql_connect("localhost", "_SYSTEM", "");
$result = fbsql_list_tables("wisconsin");
$i = 0;
while ($i < fbsql_num_rows($result)) {
    $tb_names[$i] = fbsql_tablename($result, $i);
    echo $tb_names[$i] . "<br />";
    $i++;
}
?>

Předcházející | Domů | Další
fbsql_stop_db | Nahoru | fbsql_username


fbsql_username

(PHP 4 >= 4.0.6, PHP 5)

fbsql_username -- Get or set the host user used with a connection

Description

string fbsql_username ( resource link_identifier [, string username])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
fbsql_tablename | Nahoru | fbsql_warnings


fbsql_warnings

(PHP 4 >= 4.0.6, PHP 5)

fbsql_warnings -- Enable or disable FrontBase warnings

Description

bool fbsql_warnings ( [bool OnOff])

Returns TRUE if warnings is turned on otherwise FALSE.

fbsql_warnings() enables or disables FrontBase warnings.

Předcházející | Domů | Další
fbsql_username | Nahoru | filePro funkce


filePro funkce

Manuál PHP
Předcházející Další

XXIX. filePro funkce

Úvod

Tyto funkce umožňují read-only (pouze pro čtení) přístup k datům uloženým ve filePro databázích.

filePro je registrovaná obchodní značka fP Technologies, Inc. Více informací o filePro najdete na http://www.fptech.com/.

Instalace

filePro support in PHP is not enabled by default. To enable the bundled read-only filePro support you need to use the--enable-filepro configuration option when compiling PHP.

Obsah
filepro_fieldcount -- Zjistit, kolik sloupců je ve filePro databázi
filepro_fieldname -- Zjistit název sloupce
filepro_fieldtype -- Zjistit typ sloupce
filepro_fieldwidth -- Zjistit šířku sloupce
filepro_retrieve -- Získat data z filePro databáze
filepro_rowcount -- Zjistit, kolik řádků je ve filePro databázi
filepro -- Přečíst a ověřit mapový soubor

Předcházející | Domů | Další
fbsql_warnings | Nahoru | filepro_fieldcount


filepro_fieldcount

(PHP 3, PHP 4 , PHP 5)

filepro_fieldcount -- Zjistit, kolik sloupců je ve filePro databázi

Popis

int filepro_fieldcount ( void )

Vrátí počet polí (sloupců) v otevřené filePro databázi.

Viz také filepro().

Předcházející | Domů | Další
filePro funkce | Nahoru | filepro_fieldname


filepro_fieldname

(PHP 3, PHP 4 , PHP 5)

filepro_fieldname -- Zjistit název sloupce

Popis

string filepro_fieldname ( int field_number)

Vrátí název sloupce odpovídajícího field_number.

Předcházející | Domů | Další
filepro_fieldcount | Nahoru | filepro_fieldtype


filepro_fieldtype

(PHP 3, PHP 4 , PHP 5)

filepro_fieldtype -- Zjistit typ sloupce

Popis

string filepro_fieldtype ( int field_number)

Vrátí editační typ sloupce odpovídajícího field_number.

Předcházející | Domů | Další
filepro_fieldname | Nahoru | filepro_fieldwidth


filepro_fieldwidth

(PHP 3, PHP 4 , PHP 5)

filepro_fieldwidth -- Zjistit šířku sloupce

Popis

int filepro_fieldwidth ( int field_number)

Vrátí šířku sloupce odpovídajícího field_number.

Předcházející | Domů | Další
filepro_fieldtype | Nahoru | filepro_retrieve


filepro_retrieve

(PHP 3, PHP 4 , PHP 5)

filepro_retrieve -- Získat data z filePro databáze

Popis

string filepro_retrieve ( int row_number, int field_number)

Vrátí data z určeného místa v databázi.

Předcházející | Domů | Další
filepro_fieldwidth | Nahoru | filepro_rowcount


filepro_rowcount

(PHP 3, PHP 4 , PHP 5)

filepro_rowcount -- Zjistit, kolik řádků je ve filePro databázi

Popis

int filepro_rowcount ( void )

Vrátí počet řádků v otevřené filePro databázi.

Viz také filepro().

Předcházející | Domů | Další
filepro_retrieve | Nahoru | filepro


filepro

(PHP 3, PHP 4 , PHP 5)

filepro -- Přečíst a ověřit mapový soubor

Popis

bool filepro ( string directory)

Přečte a ověří mapový soubor a uloží počet sloupců a info.

Nedochází k zamykání, takže byste se měli vyhnout úpravám vaší filePro databáze, pokud může být otevřena v PHP.

Předcházející | Domů | Další
filepro_rowcount | Nahoru | Funkce filesystému


Funkce filesystému

Manuál PHP
Předcházející Další

XXX. Funkce filesystému

Úvod

Požadavky

Pro toto rozšíření nejsou třeba žádné externí knihovny, ale jestliže chcete, aby PHP na Linuxu podporovalo LFS (velké soubory), potřebujete aktuální knihovnu glibc a musíte PHP zkompilovat s těmito přepínači překladače: -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64.

Instalace

K používání těchto funkcí není třeba žádná instalace, jsou součástí jádra PHP.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 1. Filesystem and Streams Configuration Options

Name | Default | Changeable
allow_url_fopen | "1" | PHP_INI_ALL
user_agent | NULL | PHP_INI_ALL
default_socket_timeout | "60" | PHP_INI_ALL
from | NULL | ??
auto_detect_line_endings | "Off" | PHP_INI_ALL

Zde je stručné vysvětlení konfiguračních direktiv.

allow_url_fopen boolean

This option enables the URL-aware fopen wrappers that enable accessing URL object like files. Default wrappers are provided for the access of remote files using the ftp or http protocol, some extensions like zlib may register additional wrappers.

Poznámka: This option was introduced immediately after the release of version 4.0.3. For versions up to and including 4.0.3 you can only disable this feature at compile time by using the configuration switch --disable-url-fopen-wrapper.

Varování

On Windows versions prior to PHP 4.3.0, the following functions do not
support remote file accessing: include(),
include_once(), require(),
require_once() and the imagecreatefromXXX
functions in the Image Functions extension.

user_agent string

Define the user agent for PHP to send.

default_socket_timeout integer

Default timeout (in seconds) for socket based streams.

Poznámka: This configuration option was introduced in PHP 4.3.0

from="joe@example.com" string

Define the anonymous ftp password (your email address).

auto_detect_line_endings boolean

When turned on, PHP will examine the data read by fgets() and file() to see if it is using Unix, MS-Dos or Macintosh line-ending conventions.

This enables PHP to interoperate with Macintosh systems, but defaults to Off, as there is a very small performance penalty when detecting the EOL conventions for the first line, and also because people using carriage-returns as item separators under Unix systems would experience non-backwards-compatible behaviour.

Poznámka: This configuration option was introduced in PHP 4.3.0

Typy prostředků

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

GLOB_BRACE (integer)

GLOB_ONLYDIR (integer)

GLOB_MARK (integer)

GLOB_NOSORT (integer)

GLOB_NOCHECK (integer)

GLOB_NOESCAPE (integer)

PATHINFO_DIRNAME (integer)

PATHINFO_BASENAME (integer)

PATHINFO_EXTENSION (integer)

FILE_USE_INCLUDE_PATH (integer)

FILE_APPEND (integer)

FILE_IGNORE_NEW_LINES (integer)

FILE_SKIP_EMPTY_LINES (integer)

Viz také

Pro příbuzné funkce viz také sekce Adresáře a Spouštění programů.

Pro seznam a vysvětlení různých URL wrapperů, které mohou být použity jako vzdálené soubory, viz také sekci J.

Obsah
basename -- Vrátí část cesty obsahující název souboru
chgrp -- Změnit skupinu souboru
chmod -- Změnit mód souboru
chown -- Změní vlastníka souboru
clearstatcache -- Vymaže cache stavu souborů
copy -- Zkopíruje soubor
delete -- Falešná položka manuálu
dirname -- Vrací část cesty obsahující název adresáře
disk_free_space -- Returns available space in directory
disk_total_space -- Returns the total size of a directory
diskfreespace -- Vrátí diskový prostor dostupný v adresáři
fclose -- Zavře otevřený deskriptor souboru
feof -- Test na konec souboru
fflush -- Zapíše obsah výstupního bufferu
fgetc -- Načte 1 znak ze souboru
fgetcsv -- Načte řádek ze souboru a parsuje ho na CSV hodnoty
fgets -- Přečte řádek ze souboru
fgetss -- Přečte řádek ze souboru a odstraní HTML značky
file_exists -- Zjistí, zda soubor existuje
file_get_contents -- Reads entire file into a string
file_put_contents -- Write a string to a file
file -- Načte celý soubor do pole
fileatime -- Vrací čas posledního přístupu k souboru
filectime -- Vrací čas změny inodu souboru
filegroup -- Vrací skupinu pro soubor
fileinode -- Vrací inode souboru
filemtime -- Vrací čas změny souboru
fileowner -- Vrací vlastníka souboru
fileperms -- Vrací přístupová práva k souboru
filesize -- Vrací velikost souboru
filetype -- Vrací typ souboru
flock -- Jednotné "portable advisory" zamykání souboru
fnmatch -- Match filename against a pattern
fopen -- Otevře soubor nebo URL
fpassthru -- Vypíše všechna zbývající data v souboru
fputs -- Zapíše do souboru
fread -- Binárně bezpečné čtení ze souboru
fscanf -- Parsuje vstup ze souboru podle formátu
fseek -- Posouvá ukazatel v souboru
fstat -- Vrací informace o otevřeném souboru
ftell -- Vrací pozici v souboru
ftruncate -- Zkrátí soubor na danou délku
fwrite -- Binárně bezpečný zápis do souboru
glob -- Find pathnames matching a pattern
is_dir -- Zjistí, zda je daný soubor adresářem
is_executable -- Zjistí, zda je soubor spustitelný
is_file -- Zjistí, zda se jedná o obyčejný (regular) soubor
is_link -- Zjistí, zda se jedná o symbolický odkaz (link)
is_readable -- Zjistí, zda lze ze souboru číst
is_uploaded_file -- Zjistí, zda byl soubor uploadován pomocí HTTP POST
is_writable -- Zjistí, zda lze do souboru zapisovat
is_writeable -- Alias of is_writable()
link -- Vytvoří hard link
linkinfo -- Vrací informaci o odkazu (linku)
lstat -- Zjišťuje informace o souboru nebo symbolickém odkazu
mkdir -- Vytvoří adresář
move_uploaded_file -- Přesune uploadovaný soubor na nové místo
parse_ini_file -- Parse a configuration file
pathinfo -- Returns information about a file path
pclose -- Zavře procesový soubor (rouru)
popen -- Otevře procesový soubor (rouru)
readfile -- Vypíše soubor
readlink -- Vrací cíl symbolického odkazu
realpath -- Vrátí absolutní cestu v kanonickém tvaru
rename -- Přejmenuje soubor
rewind -- Vrátí ukazatel v souboru na začátek
rmdir -- Odstraní adresář
set_file_buffer -- Nastaví buffer pro soubor
stat -- Zjišťuje informace o souboru
symlink -- Vytvoří symbolický odkaz
tempnam -- Vytvoří soubor s unikátním názvem
tmpfile -- Vytvoří dočasný soubor
touch -- Nastavit čas změny souboru
umask -- Změní současné nastavení umask
unlink -- Smazat soubor

Předcházející | Domů | Další
filepro | Nahoru | basename


basename

(PHP 3, PHP 4 , PHP 5)

basename -- Vrátí část cesty obsahující název souboru

Popis

string basename ( string path)

Přijímá řetězec obsahující cestu na soubor, vrací název souboru.

Na Windows se jako oddělovač cesty dá použít jak lomítko (/), tak zpětné lomítko (\). V ostatních prostředích je to normální lomítko (/).

Příklad 1. Ukázka basename()

$path = '/home/httpd/html/index.php3' ;
$file = basename( $path ) ; // $file má hodnotu "index.php3"

Viz také dirname()

Předcházející | Domů | Další
Funkce filesystému | Nahoru | chgrp


chgrp

(PHP 3, PHP 4 , PHP 5)

chgrp -- Změnit skupinu souboru

Popis

int chgrp ( string filename, mixed group)

Pokusí se nastavit skupinu souboru filename na group. Pouze superuživatel může libovolně změnit skupinu souboru; ostatní uživatelé mohou změnit skupinu souboru na jinou skupinu, jíž jsou členy.

Při úspěchu vrací TRUE; jinak FALSE.

Viz také chown() a chmod().

Poznámka: Tato funkce nefunguje na Windows systémech.

Předcházející | Domů | Další
basename | Nahoru | chmod


chmod

(PHP 3, PHP 4 , PHP 5)

chmod -- Změnit mód souboru

Popis

int chmod ( string filename, int mode)

Pokusí se změnit mód souboru filename na mode.

Pozn.: mode se nepovažuje automaticky za oktalovou hodnotu, takže řetězce (jako "g+w") nebudou správně fungovat. Pokud si chcete zajistit očekávané chování, musíte na začátek mode přidat nulu (0):

chmod ("/somedir/somefile", 755);   // desitkove cislo; zrejme nespravne
chmod ("/somedir/somefile", "u+rwx,go+rx"); // retezec; nespravny
chmod ("/somedir/somefile", 0755);  // oktal; spravna hodnota modu

Při úspěchu vrací TRUE, jinak FALSE.

Viz také chown() a chgrp().

Poznámka: Tato funkce nefunguje na Windows systémech

Předcházející | Domů | Další
chgrp | Nahoru | chown


chown

(PHP 3, PHP 4 , PHP 5)

chown -- Změní vlastníka souboru

Popis

int chown ( string filename, mixed user)

Pokusí se změnit vlastníka souboru na user. Pouze superuživatel může změnit majitele souboru.

Při úspěchu vrací TRUE, jinak FALSE.

Viz také chown() a chmod().

Poznámka: Tato funkce nefunguje na Windows systémech

Předcházející | Domů | Další
chmod | Nahoru | clearstatcache


clearstatcache

(PHP 3, PHP 4 , PHP 5)

clearstatcache -- Vymaže cache stavu souborů

Popis

void clearstatcache ( void )

Volání systémových funkcí stat či lstat má poměrně velkou režii. Tudíž se výsledek posledního volání všech stavových funkcí (viz seznam níže) ukládá pro použití při dalším takovém volání používajícím stejný název souboru. Pokud chcete vynutit novou kontrolu stavu, např. pokud je soubor kontrolován mnohokrát a může se změnit nebo zmizet, použijte tuto funkci k uvolnění výsledků posledního volání z paměti.

Tato hodnota se cachuje pouze po dobu běhu skriptu.

Ovlivněné funkce:
stat(),
lstat(),
file_exists(),
is_writable(),
is_readable(),
is_executable(),
is_file(),
is_dir(),
is_link(),
filectime(),
fileatime(),
filemtime(),
fileinode(),
filegroup(),
fileowner(),
filesize(),
filetype(), a
fileperms().

Předcházející | Domů | Další
chown | Nahoru | copy


copy

(PHP 3, PHP 4 , PHP 5)

copy -- Zkopíruje soubor

Popis

int copy ( string source, string dest)

Vytvoří kopii souboru. Vrací TRUE pokud se kopírování zdařilo, jinak FALSE.

Příklad 1. Ukázka copy()

if (!copy($file, $file.'.bak')) {
    print ("failed to copy $file...<br>\n");
}

Viz také rename().

Předcházející | Domů | Další
clearstatcache | Nahoru | delete


delete

(no version information, might be only in CVS)

delete -- Falešná položka manuálu

Popis

void delete ( string file)

Toto je falešná položka manuálu, která by měla pomoci lidem, kteří hledají unlink() nebo unset() na špatném místě.

Viz také unlink() (mazání souborů), unset() (mazání proměnných).

Předcházející | Domů | Další
copy | Nahoru | dirname


dirname

(PHP 3, PHP 4 , PHP 5)

dirname -- Vrací část cesty obsahující název adresáře

Popis

string dirname ( string path)

Přijímá řetězec obsahující cestu na soubor a vrací název adresáře.

Na Windows se jako oddělovač sesty dají používat jak lomítko (/), tak zpětné lomítko (\). Na ostatních systémech je to lomítko (/).

Příklad 1. Ukázka dirname()

$path = "/etc/passwd";
$file = dirname ($path); // $file obsahuje "/etc"

Viz také basename()

Předcházející | Domů | Další
delete | Nahoru | disk_free_space


disk_free_space

(PHP 4 >= 4.1.0, PHP 5)

disk_free_space -- Returns available space in directory

Description

float disk_free_space ( string directory)

Given a string containing a directory, this function will return the number of bytes available on the corresponding filesystem or disk partition.

Příklad 1. disk_free_space() example

<?php
// $df contains the number of bytes available on "/"
$df = disk_free_space("/");

// On Windows:
disk_free_space("C:");
disk_free_space("D:");
?>

Poznámka: Tato funkce nebude pracovat se vzdálenými soubory, protože zkoumaný soubor musí být dostupný přes filesystém serveru.

See also disk_total_space()

Předcházející | Domů | Další
dirname | Nahoru | disk_total_space


disk_total_space

(PHP 4 >= 4.1.0, PHP 5)

disk_total_space -- Returns the total size of a directory

Description

float disk_total_space ( string directory)

Given a string containing a directory, this function will return the total number of bytes on the corresponding filesystem or disk partition.

Příklad 1. disk_total_space() example

<?php
// $df contains the total number of bytes available on "/"
$df = disk_total_space("/");

// On Windows:
disk_total_space("C:");
disk_total_space("D:");
?>

Poznámka: Tato funkce nebude pracovat se vzdálenými soubory, protože zkoumaný soubor musí být dostupný přes filesystém serveru.

See also disk_free_space()

Předcházející | Domů | Další
disk_free_space | Nahoru | diskfreespace


diskfreespace

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

diskfreespace -- Vrátí diskový prostor dostupný v adresáři

Popis

float diskfreespace ( string directory)

Přijímá řetězec obsahující cestu na adresář, vrací počet bytů dostupných na odpovídajícím filesystému nebo oddílu.

Příklad 1. Ukázka diskfreespace()

$df = diskfreespace("/"); // $df obsahuje pocet bytu
                          // dostupnych na "/"

Předcházející | Domů | Další
disk_total_space | Nahoru | fclose


fclose

(PHP 3, PHP 4 , PHP 5)

fclose -- Zavře otevřený deskriptor souboru

Popis

int fclose ( int fp)

Soubor, na který fp ukazuje, se zavře.

Vrací TRUE při úspěchu a FALSE při selhání.

Deskriptor souboru musí být platný, a musí ukazovat na soubor úspěšně otevřený pomocí fopen() nebo fsockopen().

Předcházející | Domů | Další
diskfreespace | Nahoru | feof


feof

(PHP 3, PHP 4 , PHP 5)

feof -- Test na konec souboru

Popis

int feof ( int fp)

Vrací TRUE, pokud je konec souboru (EOF) nebo nastala chyba, jinak FALSE.

Deskriptor souboru musí být platný a musí ukazovat na soubor úspěšně otevřený pomocí fopen(), popen(), nebo fsockopen().

Předcházející | Domů | Další
fclose | Nahoru | fflush


fflush

(PHP 4 >= 4.0.1, PHP 5)

fflush -- Zapíše obsah výstupního bufferu

Popis

int fflush ( int fp)

Funkce vynutí okamžitý zápis veškerých dat uložených ve výstupním bufferu do souboru odkazovaného pomocí deskriptoru fp. Vrací TRUE při úspěchu, jinak FALSE.

Deskriptor souboru musí být platný a musí ukazovat na soubor úspěšně otevřený pomocí fopen(), popen(), nebo fsockopen().

Předcházející | Domů | Další
feof | Nahoru | fgetc


fgetc

(PHP 3, PHP 4 , PHP 5)

fgetc -- Načte 1 znak ze souboru

Popis

string fgetc ( int fp)

Vrátí řetězec obsahující jediný znak přečtený ze souboru odkazovaného pomocí deskriptoru fp. Je-li konec souboru (EOF), vrací FALSE.

Deskriptor souboru musí být platný a musí ukazovat na soubor úspěšně otevřený pomocí fopen(), popen(), nebo fsockopen().

Viz také fread(), fopen(),
popen(), fsockopen(), a
fgets().

Předcházející | Domů | Další
fflush | Nahoru | fgetcsv


fgetcsv

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

fgetcsv -- Načte řádek ze souboru a parsuje ho na CSV hodnoty

Popis

array fgetcsv ( int fp, int length [, string delimiter])

Podobné jako fgets() s výjimkou toho. že fgetcsv() parsuje přečtený řádek podle CSV formátu a vrací pole obsahující získané hodnoty. Oddělovačem je čárka, pokud nespecifikujete jiný oddělovač jako nepovinný třetí parametr.

Fp musí být platný deskriptor souboru úspěšně otevřeného pomocí fopen(), popen(), nebo fsockopen()

Délka length musí být větší než nejdelší řádek, vyskytující se v souboru (nepočítaje v to znak konce řádku).

fgetcsv() vrací FALSE při chybě včetně konce souboru (EOF).

N.B. Prázdný řádek v CSV souboru bude vrácen jako pole s jediným NULL polem, aniž by to bylo vyhodnoceno jako chyba.

Příklad 1. fgetcsv() příklad - Čtení a tisk celého CVS souboru

$row = 1;
$fp = fopen ("test.csv","r");
while ($data = fgetcsv ($fp, 1000, ",")) {
    $num = count ($data);
    print "<p> $num fields in line $row: <br>";
    $row++;
    for ($c=0; $c<$num; $c++) {
        print $data[$c] . "<br>";
    }
}
fclose ($fp);

Předcházející | Domů | Další
fgetc | Nahoru | fgets


fgets

(PHP 3, PHP 4 , PHP 5)

fgets -- Přečte řádek ze souboru

Popis

string fgets ( int fp, int length)

Vrací řádek o délce max. length - 1 byte přečtený ze souboru. Čtení končí, pokud bylo přečteno length - 1 bytů, nastal konec řádku nebo konec souboru (podle toho, co přijde první).

Při výskytu chyby vrací FALSE.

Nejčastější úskalí:

Lidé, kteří používali 'C' sémantiku funkce fgets, by si měli uvědomit rozdíl v tom, jak je vrácen konec souboru.

Deskriptor souboru musí být platný a musí ukazovat na soubor úspěšně otevřený pomocí fopen(), popen(), nebo fsockopen().

Jednoduchý příklad:

Příklad 1. Čtení souboru řádek po řádku

$fd = fopen ("/tmp/inputfile.txt", "r");
while (!feof ($fd)) {
    $buffer = fgets($fd, 4096);
    echo $buffer;
}
fclose ($fd);

Viz také fread(), fopen(),
popen(), fgetc(),
fsockopen(), a
socket_set_timeout().

Předcházející | Domů | Další
fgetcsv | Nahoru | fgetss


fgetss

(PHP 3, PHP 4 , PHP 5)

fgetss -- Přečte řádek ze souboru a odstraní HTML značky

Popis

string fgetss ( int fp, int length [, string allowable_tags])

Identické s fgets(), ale jsou zde z přečteného textu odstraňovány HTML a PHP značky.

Jako nepovinný třetí parametr můžete specifikovat značky, které nebudou odstraňovány.

Poznámka: allowable_tags - přidáno v PHP 3.0.13, PHP4B3.

Viz také fgets(), fopen(),
fsockopen(), popen(), a
strip_tags().

Předcházející | Domů | Další
fgets | Nahoru | file_exists


file_exists

(PHP 3, PHP 4 , PHP 5)

file_exists -- Zjistí, zda soubor existuje

Popis

bool file_exists ( string filename)

Vrací TRUE, pokud soubor specifikovaný pomocí filename existuje, jinak FALSE.

file_exists() nefunguje na vzdálených souborech; soubor k ověření musí být přístupný prostřednictvím filesystému serveru.

Výsledek této funkce je cachován. Více informací - viz clearstatcache().

Předcházející | Domů | Další
fgetss | Nahoru | file_get_contents


file_get_contents

(PHP 4 >= 4.3.0, PHP 5)

file_get_contents -- Reads entire file into a string

Description

string file_get_contents ( string filename [, bool use_include_path [, resource context]])

Identical to file(), except that file_get_contents() returns the file in a string. On failure, file_get_contents() will return FALSE.

file_get_contents() is the preferred way to read the contents of a file into a string. It will use memory mapping techniques if supported by your OS to enhance performance.

Poznámka: Tato funkce je binárně bezpečná.

Tip: S touto funkcí můžete používat URL jako název souboru, pokud je zapnuta volba "fopen wrappers". Pro více detailů o tom, jak specifikovat název souboru, a Jpro seznam porporovaných URL protokolů, viz fopen().

Poznámka: Context support was added with PHP 5.0.0.

Varování

Některé webservery nesplňující standardy, jako je např. IIS, posílají data způsobem, že PHP vyšle varování. Pracujete-li s takovými servery, měli byste snížit hodnotu parametru error_reporting tak, aby nezahrnovala varování.

See also: fgets(), file(),
fread(), include(),
and readfile().

Předcházející | Domů | Další
file_exists | Nahoru | file_put_contents


file_put_contents

(PHP 5)

file_put_contents -- Write a string to a file

Description

int file_put_contents ( string filename, string data [, int flags [, resource context]])

Identical to calling fopen(), fwrite(), and fclose() successively. The function returns the amount of bytes that were written to the file.

flags can take FILE_USE_INCLUDE_PATH and/or FILE_APPEND, however the FILE_USE_INCLUDE_PATH option should be used with caution.

Poznámka: Tato funkce je binárně bezpečná.

Tip: S touto funkcí můžete používat URL jako název souboru, pokud je zapnuta volba "fopen wrappers". Pro více detailů o tom, jak specifikovat název souboru, a Jpro seznam porporovaných URL protokolů, viz fopen().

See also:
fopen(),
fwrite(),
fclose(), and
file_get_contents().

Předcházející | Domů | Další
file_get_contents | Nahoru | file


file

(PHP 3, PHP 4 , PHP 5)

file -- Načte celý soubor do pole

Popis

array file ( string filename [, int use_include_path])

Identické s readfile(), soubor je však vrácen v podobě pole. Každý element pole odpovídá jednomu řádku v souboru včetně znaku konce řádku.

Můžete použít nepovinný druhý parametr a nastavit ho na "1", pokud chcete hledat soubor také v include_path.

<?php
// načti WWW stránku do pole a vytiskni ji
$fcontents = file ('http://www.php.net');
while (list ($line_num, $line) = each ($fcontents)) {
    echo "<b>Line $line_num:</b> " . htmlspecialchars ($line) . "<br>\n";
}

// načti WWW stránku do řetězce
$fcontents = join ('', file ('http://www.php.net'));
?>

Viz také readfile(),
fopen(), fsockopen(), a
popen().

Předcházející | Domů | Další
file_put_contents | Nahoru | fileatime


fileatime

(PHP 3, PHP 4 , PHP 5)

fileatime -- Vrací čas posledního přístupu k souboru

Popis

int fileatime ( string filename)

Vrací čas posledního přístupu k souboru, při chybě FALSE. Čas je vrácen jako Unix timestamp.

Výsledek této funkce je cachován. Více informací - viz clearstatcache().

Pozn.: Atime (čas posl. přístupu) souboru se obvykle mění při čtení datových bloků ze souboru. To se může značně negativně projevit na výkonu systému, pokud aplikace přistupuje k velkému počtu souborů nebo adresářů. Některé Unixové filesystémy mohou mít atime deaktivován za účelem zvýšení výkonu pro takové aplikace; takovým případem jsou USENET news spools. Tehdy je tato funkce bezpředmětná.

Předcházející | Domů | Další
file | Nahoru | filectime


filectime

(PHP 3, PHP 4 , PHP 5)

filectime -- Vrací čas změny inodu souboru

Popis

int filectime ( string filename)

Vrací čas poslední změny inodu souboru, při chybě FALSE. Čas je vracen jako Unix timestamp.

Výsledek této funkce je cachován. Více informací - viz clearstatcache().

Pozn.: Na většině unixových filesystémů platí, že soubor je považován za změněný, pokud jsou změněna data v Inodu, tj. přístupová práva, vlastník, skupina nebo jiná metadata jsou zapsána do Inodu. filemtime() (toto je to, co chcete použít, když chcete vytvořit údaj "Poslední změna" na WWW stránce) a fileatime().

Pozn.: Na některých Unixech je ctime považován za čas vytvoření souboru. To je chyba. Na většině unixových filesystémů neexistuje žádný čas vytvoření unixových souborů.

Předcházející | Domů | Další
fileatime | Nahoru | filegroup


filegroup

(PHP 3, PHP 4 , PHP 5)

filegroup -- Vrací skupinu pro soubor

Popis

int filegroup ( string filename)

Vrací ID skupiny vlastníka souboru, při chybě FALSE. Skupinové ID je v číselném tvaru, použijte posix_getgrgid() pro získání názvu skupiny.

Výsledek této funkce je cachován. Více informací - viz clearstatcache().

Poznámka: Tato funkce nefunguje na Windows systémech

Předcházející | Domů | Další
filectime | Nahoru | fileinode


fileinode

(PHP 3, PHP 4 , PHP 5)

fileinode -- Vrací inode souboru

Popis

int fileinode ( string filename)

Vrací inode číslo souboru, při chybě FALSE.

Výsledek této funkce je cachován. Více informací - viz clearstatcache().

Poznámka: Tato funkce nefunguje na Windows systémech

Předcházející | Domů | Další
filegroup | Nahoru | filemtime


filemtime

(PHP 3, PHP 4 , PHP 5)

filemtime -- Vrací čas změny souboru

Popis

int filemtime ( string filename)

Vrací čas poslední změny souboru, při chybě FALSE. Čas je vracen jako Unix timestamp.

Výsledek této funkce je cachován. Více informací - viz clearstatcache().

Tato funkce vrací čas, kdy byly zapsány datové bloky, tj. čas poslední změny obsahu souboru. Použijte funkci date() na výsledek této funkce k získání formátovaného tvaru data pro použití na WWW stránkách.

Předcházející | Domů | Další
fileinode | Nahoru | fileowner


fileowner

(PHP 3, PHP 4 , PHP 5)

fileowner -- Vrací vlastníka souboru

Popis

int fileowner ( string filename)

Vrací ID uživatele (UID), vlastnícího soubor; při chybě FALSE. Hodnota je v číselném tvaru, použijte funkci posix_getpwuid() k získání uživatelského jména.

Výsledek této funkce je cachován. Více informací - viz clearstatcache().

Poznámka: Tato funkce nefunguje na Windows systémech

Předcházející | Domů | Další
filemtime | Nahoru | fileperms


fileperms

(PHP 3, PHP 4 , PHP 5)

fileperms -- Vrací přístupová práva k souboru

Popis

int fileperms ( string filename)

Vrací přístupová práva (permissions) k souboru, při chybě FALSE.

Výsledek této funkce je cachován. Více informací - viz clearstatcache().

Předcházející | Domů | Další
fileowner | Nahoru | filesize


filesize

(PHP 3, PHP 4 , PHP 5)

filesize -- Vrací velikost souboru

Popis

int filesize ( string filename)

Vrací velikost souboru, při chybě FALSE.

Výsledek této funkce je cachován. Více informací - viz clearstatcache().

Předcházející | Domů | Další
fileperms | Nahoru | filetype


filetype

(PHP 3, PHP 4 , PHP 5)

filetype -- Vrací typ souboru

Popis

string filetype ( string filename)

Vrací typ souboru. Možné hodnoty jsou fifo, char, dir, block, link, file a unknown.

Při chybě vrací FALSE.

Výsledek této funkce je cachován. Více informací - viz clearstatcache().

Předcházející | Domů | Další
filesize | Nahoru | flock


flock

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

flock -- Jednotné "portable advisory" zamykání souboru

Popis

bool flock ( int fp, int operation [, int wouldblock])

PHP podporuje "portable" způsob zamykání celých souborů na základě jednotného "advisory" principu (tzn. všechny přistupující programy musí používat tentýž systém zamykání, jinak to nebude fungovat).

flock() funguje na deskriptoru fp, který musí patřit otevřenému souboru. operation je jedna z následujících hodnot:

  • K získání sdíleného (shared) zámku (čtení) nastavte operation na LOCK_SH (resp. 1 u verzí do PHP 4.0.1).

  • K získání výhradního zámku (zápis) nastavte operation na LOCK_EX (resp. 2 u verzí do PHP 4.0.1).

  • K uvolnění zámku (sdíleného nebo výhradního) nastavte operation na LOCK_UN (resp. 3 u verzí do PHP 4.0.1).

  • Pokud nechcete, aby funkce flock() blokovala během zamykání, přidejte k operation hodnotu LOCK_NB (4 pro verze do PHP 4.0.1).

flock() umožnuje jednoduchý model čtení/zápis použitelný teoreticky na všech platformách (včetně většiny Unixů a nejspíš i Windows). Nepovinný třetí argument se nastaví na TRUE, pokud by zámek měl blokovat (EWOULDBLOCK errno podmínka).

flock() vrací TRUE při úspěchu, FALSE při chybě (např. když nelze vytvořit zámek).

Varování

Na většině operačních systémů je funkce flock() implementována na úrovni procesů. Při použití multithreadového serverového API (jako je ISAPI) nemůžete spoléhat na ochranu souborů proti jiným PHP skriptům běžícím v paralelních vláknech stejné instance serveru!

Předcházející | Domů | Další
filetype | Nahoru | fnmatch


fnmatch

(PHP 4 >= 4.3.0, PHP 5)

fnmatch -- Match filename against a pattern

Description

array fnmatch ( string pattern, string string [, int flags])

fnmatch() checks if the passed string would match the given shell wildcard pattern.

This is especially useful for filenames, but may also be used on regular strings. The average user may be used to shell patterns or at least in their simplest form to '?' and '*' wildcards so using fnmatch() instead of ereg() or preg_match() for frontend search expression input may be way more convenient for non-programming users.

Příklad 1. Checking a color name against a shell wildcard pattern.

<?php
if (fnmatch("*gr[ae]y", $color)) {
  echo "some form of gray ...";
}
?>

Varování

For now this function is not available on Windows or other non-POSIX compliant systems.

See also glob(),
ereg(),
preg_match()
and the Unix manpage on fnmatch(3) for flag names
(as long as they are not documented here ).

Předcházející | Domů | Další
flock | Nahoru | fopen


fopen

(PHP 3, PHP 4 , PHP 5)

fopen -- Otevře soubor nebo URL

Popis

int fopen ( string filename, string mode [, int use_include_path])

Jestliže filename začíná "http://" (velkými nebo malými písmeny), je otevřeno spojení na příslušný server protokolem HTTP 1.0 a je vrácen deskriptor ukazující na začátek těla dokumentu. Posílá se hlavička 'Host:' pro přístup k virtuálním serverům založeným na jméně.

Nezpracovává HTTP přesměrování, je třeba vložit koncové lomítko za název adresáře.

Když filename začíná "ftp://" (velká či malá písmena), je otevřena FTP relace na příslušný server a vrácen deskriptor na požadovaný soubor. Pokud server nepodporuje pasivní režim FTP komunikace, selže to. Můžete přes FTP otvírat soubory pro čtení i zápis, ale ne pro obojí najednou.

Když filename je buď "php://stdin", "php://stdout", nebo "php://stderr", bude otevřen standardní vstup/výstup (stdio). (To platí od verze PHP 3.0.13; v dřívějších verzích se musí použít názvy jako "/dev/stdin" nebo "/dev/fd/0".)

Když filename začíná čímkoli jiným, bude otevřen obyčejný soubor (z filesystému) a vrácen jeho deskriptor.

Pokud otvírání selže, funkce vrátí FALSE.

mode může být kterýkoli z těchto:

  • 'r' - Otevřít pouze pro čtení; nastaví ukazatel na začátek souboru.

  • 'r+' - Otevřít pro čtení a zápis; nastaví ukazatel na začátek souboru.

  • 'w' - Otevřít pouze pro zápis; nastaví ukazatel na začátek souboru a zkrátí soubor na nulovou délku. Pokud soubor neexistuje, pokusí se ho vytvořit.

  • 'w+' - Otevřít pro čtení a zápis; nastaví ukazatel na začátek souboru a zkrátí soubor na nulovou délku. Pokud soubor neexistuje, pokusí se ho vytvořit.

  • 'a' - Otevřít pouze pro zápis; nastaví ukazatel na konec souboru, Pokud soubor neexistuje, pokusí se ho vytvořit.

  • 'a+' -Otevřít pro čtení a zápis; nastaví ukazatel na konec souboru. Pokud soubor neexistuje, pokusí se ho vytvořit.

mode může obsahovat písmeno 'b'. To je užitečné pouze na systémech které rozlišují mezi binárními a textovými soubory (nikoli např. na Unixu). Pokud není zapotřebí, je ignorován.

Můžete použít nepovinný třetí parametr a nastavit ho na "1", pokud chcete hledat soubor také v include_path.

Příklad 1. fopen() příklad

$fp = fopen ("/home/rasmus/file.txt", "r");
$fp = fopen ("/home/rasmus/file.gif", "wb");
$fp = fopen ("http://www.php.net/", "r");
$fp = fopen ("ftp://user:password@example.com/", "w");

Pokud jste zaznamenali problémy se čtením a zápisem do souborů a používáte PHP jako modul do serveru, nezapomeňte zajistit, aby soubory a adresáře, které používáte, byly přístupné pro serverový proces.

Na Windows je třeba oescapovat všechna zpětná lomítka ve specifikaci cesty k souboru nebo používat obyčejná (dopředná) lomítka.

$fp = fopen ("c:\\data\\info.txt", "r");

Viz také fclose(),
fsockopen(),
socket_set_timeout(), a
popen().

Předcházející | Domů | Další
fnmatch | Nahoru | fpassthru


fpassthru

(PHP 3, PHP 4 , PHP 5)

fpassthru -- Vypíše všechna zbývající data v souboru

Popis

int fpassthru ( int fp)

Čte až do dosažení konce souboru specifikovaného deskriptorem a načtené přepisuje na standardní výstup.

Pokud nastane chyba, funkce fpassthru() vrací FALSE.

Deskriptor souboru musí být platný a musí ukazovat na soubor úspěšně otevřený pomocí fopen(), popen(), nebo fsockopen(). Až funkce fpassthru() ukončí čtení, zavře soubor (deskriptor fp tím ztrácí smysl).

Když chcete vypsat obsah souboru na standardní výstup (stdout), můžete použí funkci readfile(), která vás ušetří volání funkce fopen().

Viz také readfile(),
fopen(), popen(), a
fsockopen()

Předcházející | Domů | Další
fopen | Nahoru | fputs


fputs

(PHP 3, PHP 4 , PHP 5)

fputs -- Zapíše do souboru

Popis

int fputs ( int fp, string str [, int length])

Funkce fputs() je alias k fwrite() a je s ní tedy naprosto identická. Uvědomte si, že parametr length je nepovinný a pokud není specifikován, zapíše se celý řetezec.

Předcházející | Domů | Další
fpassthru | Nahoru | fread


fread

(PHP 3, PHP 4 , PHP 5)

fread -- Binárně bezpečné čtení ze souboru

Popis

string fread ( int fp, int length)

fread() přečte nejvýše length bytů ze souboru specifikovaného deskriptorem fp. Čtení končí, pokud je přečteno length bytů nebo je dosažen konec souboru (podle toho, co přijde dřív).

// nacte obsah souboru do retezce
$filename = "/usr/local/something.txt";
$fd = fopen ($filename, "r");
$contents = fread ($fd, filesize ($filename));
fclose ($fd);

Viz také fwrite(), fopen(),
fsockopen(), popen(),
fgets(), fgetss(),
fscanf(), file(), a
fpassthru().

Předcházející | Domů | Další
fputs | Nahoru | fscanf


fscanf

(PHP 4 >= 4.0.1, PHP 5)

fscanf -- Parsuje vstup ze souboru podle formátu

Popis

mixed fscanf ( int handle, string format [, string var1])

Funkce fscanf() je podobná sscanf(), ale načítá ze souboru specifikovaného handle a interpretuje vstupní data podle specifikovaného formátu format. Pokud má funkce pouze dva parametry, parsované hodnoty bude vráceny jako pole. Jinak, když jsou použity nepovinné parametry, funkce vrací určitý počet asignovaných hodnot. Nepovinné parametry musí být vloženy odkazem.

Příklad 1. fscanf() Příklad

$fp = fopen ("users.txt","r");
while ($userinfo = fscanf ($fp, "%s\t%s\t%s\n")) {
    list ($name, $profession, $countrycode) = $userinfo;
    //... udelej neco s hodnotami
}
fclose($fp);

Příklad 2. users.txt

javier  argonaut        pe
hiroshi sculptor        jp
robert  slacker us
luigi   florist it

Viz také fread(), fgets(),
fgetss(), sscanf(),
printf(), a sprintf().

Předcházející | Domů | Další
fread | Nahoru | fseek


fseek

(PHP 3, PHP 4 , PHP 5)

fseek -- Posouvá ukazatel v souboru

Popis

int fseek ( int fp, int offset [, int whence])

Nastaví ukazatel pozice v souboru specifikované pomocí deskriptoru fp. Nová pozice, měřená počtem bytů od začátku souboru, je získána přičtením hodnoty offset k pozici specifikované pomocí whence, jehož hodnota je definovanána:

SEEK_SET - Nastav na pozici rovnu offset bytů.
SEEK_CUR - Nastav pozici na současnou plus počet bytů v offset.
SEEK_END - Nastav na konec souboru plus offset bytů.

Pokud není parametr whence specifikován, použije se SEEK_SET.

Při úspěchu vrací 0, jinak -1. Pozn.: přesun za konec souboru není považován za chybu.

Nelze použít na deskriptor souboru vrácený funkcí fopen(), jestliže byl použit formát "http://" nebo "ftp://".

Poznámka: Argument whence byl přidán po verzi PHP 4.0 RC1.

Viz také ftell() a rewind().

Předcházející | Domů | Další
fscanf | Nahoru | fstat


fstat

(PHP 4 , PHP 5)

fstat -- Vrací informace o otevřeném souboru

Popis

array fstat ( int fp)

Sbírá statistiky otevřeného souboru specifikovaném deskriptorem fp. Tato funkce je podobná funkci stat(), pracuje však s deskriptorem, nikoli názvem souboru.

Vrací pole se statistikami souboru s těmito elementy:

  1. device

  2. inode

  3. number of links

  4. user id of owner

  5. group id owner

  6. device type if inode device *

  7. size in bytes

  8. time of last access

  9. time of last modification

  10. time of last change

  11. blocksize for filesystem I/O *

  12. number of blocks allocated

* - platné pouze na systémech s podporou typu st_blksize -- jinde (např. na Windows) vrací -1

Výsledek této funkce je cachován. Více detailů - viz clearstatcache().

Předcházející | Domů | Další
fseek | Nahoru | ftell


ftell

(PHP 3, PHP 4 , PHP 5)

ftell -- Vrací pozici v souboru

Popis

int ftell ( int fp)

Vrací pozici v souboru odkazovaném deskriptorem fp; typicky offset ve streamu.

Pokud nastane chyba, vrací FALSE.

Deskriptor souboru musí být platný a musí ukazovat na soubor úspěšně otevřený pomocí fopen(), popen(), nebo fsockopen().

Viz také fopen(), popen(), fseek() a rewind().

Předcházející | Domů | Další
fstat | Nahoru | ftruncate


ftruncate

(PHP 4 , PHP 5)

ftruncate -- Zkrátí soubor na danou délku

Popis

int ftruncate ( int fp, int size)

Vezme soubor specifikovaný pomocí fp a zkrátí ho na délku size. Vrací TRUE při úspěchu a FALSE při chybě.

Předcházející | Domů | Další
ftell | Nahoru | fwrite


fwrite

(PHP 3, PHP 4 , PHP 5)

fwrite -- Binárně bezpečný zápis do souboru

Popis

int fwrite ( int fp, string string [, int length])

fwrite() zapíše obsah řetězce string do souboru specifikovaného pomocí fp. Pokud je zde argument length, zápis skončí po zapsání length bytů nebo při dosažení konce řetězce string, podle toho, co přijde dřív.

Pozn.: pokud je dán argument length, volba magic_quotes_runtime v konfiguraci bude ignorována a nebudou odstraňována žádná lomítka z řetězce string.

Viz také fread(), fopen(),
fsockopen(), popen(), a
fputs().

Předcházející | Domů | Další
ftruncate | Nahoru | glob


glob

(PHP 4 >= 4.3.0, PHP 5)

glob -- Find pathnames matching a pattern

Description

array glob ( string pattern [, int flags])

The glob() function searches for all the pathnames matching pattern according to the rules used by the shell. No tilde expansion or parameter substitution is done.

Returns an array containing the matched files/directories or FALSE on error.

Valid flags:

  • GLOB_MARK - Adds a slash to each item returned

  • GLOB_NOSORT - Return files as they appear in the directory (no sorting)

  • GLOB_NOCHECK - Return the search pattern if no files matching it were found

  • GLOB_NOESCAPE - Backslashes do not quote metacharacters

  • GLOB_BRACE - Expands {a,b,c} to match 'a', 'b', or 'c'

  • GLOB_ONLYDIR - Return only directory entries which match the pattern

Poznámka: Before PHP 4.3.3 GLOB_ONLYDIR was not available on Windows and other systems not using the GNU C library.

Příklad 1. Convenient way how glob() can replace opendir() and friends.

<?php
foreach (glob("*.txt") as $filename) {
    echo "$filename size " . filesize($filename) . "\n";
}
?>

Output will look something like:

funclist.txt size 44686
funcsummary.txt size 267625
quickref.txt size 137820

Poznámka: Tato funkce nebude pracovat se vzdálenými soubory, protože zkoumaný soubor musí být dostupný přes filesystém serveru.

See also opendir(),
readdir(),
closedir(), and fnmatch().

Předcházející | Domů | Další
fwrite | Nahoru | is_dir


is_dir

(PHP 3, PHP 4 , PHP 5)

is_dir -- Zjistí, zda je daný soubor adresářem

Popis

bool is_dir ( string filename)

Vrací TRUE když soubor existuje a jedná se o adresář.

Výsledek této funkce je cachován. Více detailů - viz clearstatcache().

Viz také is_file() a is_link().

Předcházející | Domů | Další
glob | Nahoru | is_executable


is_executable

(PHP 3, PHP 4 , PHP 5)

is_executable -- Zjistí, zda je soubor spustitelný

Popis

bool is_executable ( string filename)

Vrací TRUE, když soubor existuje a je spustitelný (proveditelný)

Výsledek této funkce je cachován. Více detailů - viz clearstatcache().

Viz také is_file() a is_link().

Předcházející | Domů | Další
is_dir | Nahoru | is_file


is_file

(PHP 3, PHP 4 , PHP 5)

is_file -- Zjistí, zda se jedná o obyčejný (regular) soubor

Popis

bool is_file ( string filename)

Vrací TRUE, když soubor existuje a jedná se o obyčejný (regular) soubor

Výsledek této funkce je cachován. Více detailů - viz clearstatcache().

Viz také is_dir() a is_link().

Předcházející | Domů | Další
is_executable | Nahoru | is_link


is_link

(PHP 3, PHP 4 , PHP 5)

is_link -- Zjistí, zda se jedná o symbolický odkaz (link)

Popis

bool is_link ( string filename)

Vrací TRUE, když soubor existuje a jedná se o symbolický odkaz (link).

Výsledek této funkce je cachován. Více detailů - viz clearstatcache().

Viz také is_dir() a is_file().

Poznámka: Tato funkce nefunguje na Windows systémech

Předcházející | Domů | Další
is_file | Nahoru | is_readable


is_readable

(PHP 3, PHP 4 , PHP 5)

is_readable -- Zjistí, zda lze ze souboru číst

Popis

bool is_readable ( string filename)

Vrací TRUE, když soubor existuje a lze z něj číst.

Mějte na paměti, že PHP může přistupovat k souboru s právy, kterými disponuje WWW server (obvykle 'nobody'). Omezení bezpečného režimu (safe mode limitations) are not taken into account.

Výsledek této funkce je cachován. Více detailů - viz clearstatcache().

Viz také is_writable().

Předcházející | Domů | Další
is_link | Nahoru | is_uploaded_file


is_uploaded_file

(PHP 3>= 3.0.17, PHP 4 >= 4.0.3, PHP 5)

is_uploaded_file -- Zjistí, zda byl soubor uploadován pomocí HTTP POST

Popis

bool is_uploaded_file ( string filename)

Tato funkce je dostupná pouze na verzích PHP 3 od 3.0.16 a na verzích PHP 4 od 4.0.2.

Vrací TRUE, pokud soubor nazvaný filename byl uploadován pomocí HTTP POST. To je užitečné k ujištění se, zda se neukázněný uživatel nepokusil upravit skript tak, aby pracoval se soubory, se kterými by pracovat neměl -- například /etc/passwd.

Tento druh testů je zvláště důležitý, je-li možnost, že akce na uploadovaných souborech může zpřístupnit jejich obsah uživateli nebo jiným uživatekům tohoto systému.

Viz také move_uploaded_file(), a sekce Handling file uploads, kde je příklad jednoduchého použití.

Předcházející | Domů | Další
is_readable | Nahoru | is_writable


is_writable

(PHP 4 , PHP 5)

is_writable -- Zjistí, zda lze do souboru zapisovat

Popis

bool is_writable ( string filename)

Vrací TRUE, když soubor existuje a lze do něj zapisovat. Název souboru (argument filename) může být název adresáře, potom se zjišťuje, zda lze do adresáře zapisovat.

Mějte na paměti, že PHP může přistupovat k souboru s právy, kterými disponuje WWW server (obvykle 'nobody'). Omezení bezpečného režimu (safe mode limitations) are not taken into account.

Výsledek této funkce je cachován. Více detailů - viz clearstatcache().

Viz také is_readable().

Předcházející | Domů | Další
is_uploaded_file | Nahoru | is_writeable


is_writeable

is_writeable -- Alias of is_writable()

Description

This function is an alias of is_writable().

Předcházející | Domů | Další
is_writable | Nahoru | link


link

(PHP 3, PHP 4 , PHP 5)

link -- Vytvoří hard link

Popis

int link ( string target, string link)

link() vytvoří hard link.

Viz také symlink() pro vytváření symbolických linků a readlink() spolu s linkinfo().

Poznámka: Tato funkce nefunguje na Windows systémech

Předcházející | Domů | Další
is_writeable | Nahoru | linkinfo


linkinfo

(PHP 3, PHP 4 , PHP 5)

linkinfo -- Vrací informaci o odkazu (linku)

Popis

int linkinfo ( string path)

linkinfo() vrací položku st_dev field struktury UNIX C stat získanou systémovým voláním lstat. Tato funkce se používá pro ověření, zda odkaz (specifikovaný pomocí path) opravdu existuje (používá se tatáž metoda jako je makro S_ISLNK definovaní v stat.h). Vrací 0, v případě chybyFALSE.

Viz také symlink(), link(), a readlink().

Poznámka: Tato funkce nefunguje na Windows systémech

Předcházející | Domů | Další
link | Nahoru | lstat


lstat

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

lstat -- Zjišťuje informace o souboru nebo symbolickém odkazu

Popis

array lstat ( string filename)

Sbírá statistiky o souboru nebo symbolickém odkazu (linku) identifikovaném pomocí názvu filename. Tato funkce je identická s funkcí stat(), s výjimkou situace, kdy parametrem filename je symbolický odkaz -- tehdy jsou vráceny informace o odkazu, nikoli o souboru, na který ukazuje.

Vrací pole se statistikami souboru s těmito elementy:

  1. device

  2. inode

  3. inode protection mode

  4. number of links

  5. user id of owner

  6. group id owner

  7. device type if inode device *

  8. size in bytes

  9. time of last access

  10. time of last modification

  11. time of last change

  12. blocksize for filesystem I/O *

  13. number of blocks allocated

* - platné pouze na systémechs podporou typu st_blksize -- jinde (např. na Windows) vrátí -1

Výsledek této funkce je cachován. Více informací - viz clearstatcache().

Předcházející | Domů | Další
linkinfo | Nahoru | mkdir


mkdir

(PHP 3, PHP 4 , PHP 5)

mkdir -- Vytvoří adresář

Popis

int mkdir ( string pathname, int mode)

Pokusí se vytvořit adresář specifikovaný svým názvem.

Pozn.: Pravděpodobně chcete specifikovat mód jako oktalové číslo, potom by však mělo začínat nulou.

mkdir ("/path/to/my/dir", 0700);

Vrací TRUE při úspěchu a FALSE při chybě.

Viz také rmdir().

Předcházející | Domů | Další
lstat | Nahoru | move_uploaded_file


move_uploaded_file

(PHP 4 >= 4.0.3, PHP 5)

move_uploaded_file -- Přesune uploadovaný soubor na nové místo

Popis

bool move_uploaded_file ( string filename, string destination)

tato fuknce je dostupná pouze ve verzích PHP 3 od 3.0.16 a ve verzích PHP 4 od 4.0.2.

Tato si ověřuje, zda soubor identifikovaný názvem filename je platným uploadovaným souborem (prostřednictvím HTTP POST mechanismu poskytovaného PHP). Pokud je soubor platný, je přesunut/přejmenován na destination.

Pokud filename není platný uploadovaný soubor, funkce move_uploaded_file() nic neprovede a vrátí FALSE.

Pokud filename je platný uploadovaný soubor, ale z nějakého důvodu nemůže být přesunut, funkce move_uploaded_file() nic neprovede a vrátí FALSE. Navíc je vygenerováno varování (warning).

Tento druh testů je zvláště důležitý, je-li možnost, že akce na uploadovaných souborech může zpřístupnit jejich obsah uživateli nebo jiným uživatekům tohoto systému.

Viz také is_uploaded_file(), a sekce Handling file uploads, kde je příklad jednoduchého použití.

Předcházející | Domů | Další
mkdir | Nahoru | parse_ini_file


parse_ini_file

(PHP 4 , PHP 5)

parse_ini_file -- Parse a configuration file

Description

array parse_ini_file ( string filename [, bool process_sections])

parse_ini_file() loads in the ini file specified in filename, and returns the settings in it in an associative array. By setting the last process_sections parameter to TRUE, you get a multidimensional array, with the section names and settings included. The default for process_sections is FALSE

Poznámka: This function has nothing to do with the php.ini file. It is already processed, the time you run your script. This function can be used to read in your own application's configuration files.

Poznámka: If a value in the ini file contains any non-alphanumeric characters it needs to be enclosed in double-quotes (").

Poznámka: Since PHP 4.2.1 this function is also affected by bezpečný režim and open_basedir.

Poznámka: There are reserved words which must not be used as keys for ini files. These include: null, yes, no, true, and false.

The structure of the ini file is similar to that of the php.ini's.

Constants may also be parsed in the ini file so if you define a constant as an ini value before running parse_ini_file(), it will be integrated into the results. Only ini values are evaluated. For example:

Příklad 1. Contents of sample.ini

; This is a sample configuration file
; Comments start with ';', as in php.ini

[first_section]
one = 1
five = 5
animal = BIRD

[second_section]
path = /usr/local/bin
URL = "http://www.example.com/~username"

Příklad 2. parse_ini_file() example

<?php

define('BIRD', 'Dodo bird');

// Parse without sections
$ini_array = parse_ini_file("sample.ini");
print_r($ini_array);

// Parse with sections
$ini_array = parse_ini_file("sample.ini", true);
print_r($ini_array);

?>

Would produce:

Array
(
    [one] => 1
    [five] => 5
    [animal] => Dodo bird
    [path] => /usr/local/bin
    [URL] => http://www.example.com/~username
)
Array
(
    [first_section] => Array
        (
            [one] => 1
            [five] => 5
            [animal] = Dodo bird
        )

    [second_section] => Array
        (
            [path] => /usr/local/bin
            [URL] => http://www.example.com/~username
        )

)

Předcházející | Domů | Další
move_uploaded_file | Nahoru | pathinfo


pathinfo

(PHP 4 >= 4.0.3, PHP 5)

pathinfo -- Returns information about a file path

Description

array pathinfo ( string path)

pathinfo() returns an associative array containing information about path. The following array elements are returned: dirname, basename and extension.

Příklad 1. pathinfo() Example

<?php

$path_parts = pathinfo("/www/htdocs/index.html");

echo $path_parts["dirname"] . "\n";
echo $path_parts["basename"] . "\n";
echo $path_parts["extension"] . "\n";

?>

Would produce:

/www/htdocs
index.html
html

Poznámka: For information on retrieving the current path info, read the section on predefined reserved variables.

See also dirname(),
basename(), parse_url()
and realpath().

Předcházející | Domů | Další
parse_ini_file | Nahoru | pclose


pclose

(PHP 3, PHP 4 , PHP 5)

pclose -- Zavře procesový soubor (rouru)

Popis

int pclose ( int fp)

Zavře rouru otevřenou pomocí funkce popen().

Deskriptor souboru musí být platný a musí ukazovat na rouru úspěšně otevřenou pomocí popen().

Vrací návratový kód procesu, který na rouře běžel.

Viz také popen().

Předcházející | Domů | Další
pathinfo | Nahoru | popen


popen

(PHP 3, PHP 4 , PHP 5)

popen -- Otevře procesový soubor (rouru)

Popis

int popen ( string command, string mode)

Otevře rouru do procesu spuštěného rozštěpením stávajícího procesu následným a spuštěním programu specifikovaného parametrem command.

Vrací deskriptor souboru identický s tím, který vrací funkce fopen(), je však vždy pouze jednosměrný (může být otevřen pro čtení nebo zápis, nikoli současně) a na závěr musí být zavřen pomocí pclose(). Tento deskriptor může být použit funkcemi fgets(), fgetss(), a fputs().

Nastane-li chyba, vrací FALSE.

$fp = popen ("/bin/ls", "r");

Viz také pclose().

Předcházející | Domů | Další
pclose | Nahoru | readfile


readfile

(PHP 3, PHP 4 , PHP 5)

readfile -- Vypíše soubor

Popis

int readfile ( string filename [, int use_include_path])

Přečte soubor a vypíše ho na standardní výstup.

Vrací počet bytů přečtených ze souboru. Pokud nastane chyba, vrátí FALSE a pokud nebyla použita notace @readfile, vypíše se chybové hlášení.

Když filename začíná "http://" (velkými nebo malými písmeny), otevře se spojení na příslušný server protokolem HTTP 1.0 a získaný dokument se vypíše na standardní výstup.

Nezpracovává HTTP přesměrování, je třeba vložit koncové lomítko za název adresáře.

Když filename začíná "ftp://" (velká či malá písmena), je otevřena FTP relace na příslušný server a dokument se vypíše na standardní výstup. Pokud server nepodporuje pasivní režim FTP komunikace, selže to.

Když filename začíná čímkoli jiným, bude otevřen obyčejný soubor (z filesystému) a jeho obsah vypsán na standardní výstup.

Můžete použít nepovinný třetí parametr a nastavit ho na "1", pokud chcete hledat soubor také v include_path.

Viz také fpassthru(),
file(), fopen(),
include(), require(), a
virtual().

Předcházející | Domů | Další
popen | Nahoru | readlink


readlink

(PHP 3, PHP 4 , PHP 5)

readlink -- Vrací cíl symbolického odkazu

Popis

string readlink ( string path)

readlink() provádí totéž jako funkce readlink v C a vrací název souboru, na který symbolický odkaz (link) ukazuje. Při chybě vrací 0.

Viz také symlink(),
readlink() a
linkinfo().

Poznámka: Tato funkce nefunguje na Windows systémech

Předcházející | Domů | Další
readfile | Nahoru | realpath


realpath

(PHP 4 , PHP 5)

realpath -- Vrátí absolutní cestu v kanonickém tvaru

Popis

string realpath ( string path)

realpath() zpracuje všechny symbolické odkazy a vyhodnotí odkazy na '/./', '/../' a samostatné znaky '/' v parametru path a vrací absolutní cestu v kanonickém tvaru. Tato výsledná cesta neobsahuje symbolické odkazy a komponenty typu '/./' or '/../'.

Příklad 1. realpath() příklad

$real_path = realpath ("../../index.php");

Předcházející | Domů | Další
readlink | Nahoru | rename


rename

(PHP 3, PHP 4 , PHP 5)

rename -- Přejmenuje soubor

Popis

int rename ( string oldname, string newname)

Pokusí se přejmenovat soubor oldname na newname.

Vrací TRUE při úspěchu a FALSE při chybě.

Předcházející | Domů | Další
realpath | Nahoru | rewind


rewind

(PHP 3, PHP 4 , PHP 5)

rewind -- Vrátí ukazatel v souboru na začátek

Popis

int rewind ( int fp)

Nastaví pozici ukazatele v souboru specifikované deskriptorem fp na začátek tohoto souboru.

Nastane-li chyba, vrací 0.

Deskriptor souboru musí být platný a musí ukazovat na soubor úspěšně otevřený pomocí fopen().

Viz také fseek() a ftell().

Předcházející | Domů | Další
rename | Nahoru | rmdir


rmdir

(PHP 3, PHP 4 , PHP 5)

rmdir -- Odstraní adresář

Popis

int rmdir ( string dirname)

Pokusí se odstranit adresář specifikovaný svým názvem. Adresář musí být být prázdný a mít nastavena odpovídající oprávnění.

Nastane-li chyba, vrací 0.

Viz také mkdir().

Předcházející | Domů | Další
rewind | Nahoru | set_file_buffer


set_file_buffer

(PHP 3>= 3.0.8, PHP 4 >= 4.0.1, PHP 5)

set_file_buffer -- Nastaví buffer pro soubor

Popis

int set_file_buffer ( int fp, int buffer)

Výstup pomocí fwrite() je implicitně bufferován do bufferu o velikosti 8 KB. To znamená, že když chtějí dva procesy zapisovat do téhož streamu (souboru), každý je vždy po 8 KB přerušen, aby ten druhý mohl zapisovat. Funkce set_file_buffer() nastavuje buffering pro zápis přes daný deskriptor fp na buffer bytů. Pokud je buffer roven 0, zápisy nejsou bufferovány. To zajišťuje, že všechny zápisy jsou dokončeny dřív, než ostatní procesy mohou do souboru zapisovat.

Funkce vrací 0 při úspěchu nebo EOF (konec souboru) pokud požadavek nemůže být uskutečněn.

Následující příklad demonstruje, jak používat funkci set_file_buffer() k vytvoření nebufferovaného streamu.

Příklad 1. set_file_buffer() example

$fp=fopen($file, "w");
if($fp){
  set_file_buffer($fp, 0);
  fputs($fp, $output);
  fclose($fp);
}

Viz také fopen(), fwrite().

Předcházející | Domů | Další
rmdir | Nahoru | stat


stat

(PHP 3, PHP 4 , PHP 5)

stat -- Zjišťuje informace o souboru

Popis

array stat ( string filename)

Sbírá statistiky o souboru indentifikovaném názvem filename.

Vrací pole se statistikami souboru s těmito elementy:

  1. device

  2. inode

  3. inode protection mode

  4. number of links

  5. user id of owner

  6. group id owner

  7. device type if inode device *

  8. size in bytes

  9. time of last access

  10. time of last modification

  11. time of last change

  12. blocksize for filesystem I/O *

  13. number of blocks allocated

* - platné pouze na systémechs podporou typu st_blksize -- jinde (např. na Windows) vrátí -1

Výsledek této funkce je cachován. Více informací - viz clearstatcache().

Předcházející | Domů | Další
set_file_buffer | Nahoru | symlink


symlink

(PHP 3, PHP 4 , PHP 5)

symlink -- Vytvoří symbolický odkaz

Popis

int symlink ( string target, string link)

symlink() vytvoří symbolický odkaz (link) k existujícímu souboru target a nazve ho link.

Viz také link() -- vytváření hard linků, a readlink() společně s linkinfo().

Poznámka: Tato funkce nefunguje na Windows systémech.

Předcházející | Domů | Další
stat | Nahoru | tempnam


tempnam

(PHP 3, PHP 4 , PHP 5)

tempnam -- Vytvoří soubor s unikátním názvem

Popis

string tempnam ( string dir, string prefix)

Ve specifikovaném adresáři vytvoří dočasný soubor s unikátním názvem. Pokud adresář neexistuje, tempnam() může vytvořit soubor v systémovém adresáři pro dočasné soubory.

Chování funkce tempnam() je závislé na platformě. Na Windows má parametr dir přednost před systémovou proměnnou TMP, na Linuxu má předost proměnná TMPDIR a SVR4 vždy použije parametr dir, pokud tento adresář existuje. Podívejte se do dokumentace k vašemu systému na funkci tempnam(3).

Vrací název nového dočasného souboru, při chybě pak řetězec NULL.

Příklad 1. tempnam() příklad

$tmpfname = tempnam ("/tmp", "FOO");

Poznámka: Chování této funkce bylo změněno ve verzi 4.0.3. The temporary file is also created to avoid a race condition where the file might appear in the filesystem between the time the string was generated and before the the script gets around to creating the file.

Viz také tmpfile().

Předcházející | Domů | Další
symlink | Nahoru | tmpfile


tmpfile

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

tmpfile -- Vytvoří dočasný soubor

Popis

int tmpfile ( void )

Vytvoří dočasný soubor s unikátním názvem, v módu zápisu, a vrací deskriptor tohoto souboru podobně jako fopen(). Soubor se při zavření (pomocí fclose()) nebo při ukončení skriptu automaticky smaže.

Detaily viz systémová dokumentace k funkci tmpfile(3) a soubor stdio.h.

Viz také tempnam().

Předcházející | Domů | Další
tempnam | Nahoru | touch


touch

(PHP 3, PHP 4 , PHP 5)

touch -- Nastavit čas změny souboru

Popis

int touch ( string filename [, int time])

Pokusí se nastavit čas změnu souboru filename na time. Pokud filename není přítomen, použije se aktuální čas.

Pokud tento soubor neexistuje, vytvoří se.

Při úspěchu vrací TRUE, jinak FALSE.

Příklad 1. Ukázka touch()

if (touch ($FileName)) {
    print "$FileName modification time has been
           changed to todays date and time";
} else {
    print "Sorry Could Not change modification time of $FileName";
}

Předcházející | Domů | Další
tmpfile | Nahoru | umask


umask

(PHP 3, PHP 4 , PHP 5)

umask -- Změní současné nastavení umask

Popis

int umask ( int mask)

umask() nastaví umask PHP na & 0777 a vrátí staré nastavení umask. Pokud PHP běží jako modul serveru, je staré nastavení obnoveno po ukončení každého HTTP požadavku.

umask() bez parametrů vrací současné nastavení umask.

Poznámka: Tato funkce nemusí na Windows fungovat

Předcházející | Domů | Další
touch | Nahoru | unlink


unlink

(PHP 3, PHP 4 , PHP 5)

unlink -- Smazat soubor

Popis

int unlink ( string filename)

Smaže filename. Podobná Unixové C funkci unlink().

Při chybě vrací 0 nebo FALSE.

Viz také rmdir() pro mazání adresářů.

Poznámka: Tato funkce nemusí na Windows fungovat

Předcházející | Domů | Další
umask | Nahoru | Forms Data Format Functions


Forms Data Format Functions

Manuál PHP
Předcházející Další

XXXI. Forms Data Format Functions

Úvod

Forms Data Format (FDF) is a format for handling forms within PDF documents. You should read the documentation at http://partners.adobe.com/asn/acrobat/forms.jsp 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..

Požadavky

You need the FDF toolkit SDK available from http://partners.adobe.com/asn/acrobat/forms.jsp. As of PHP 4.3 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.

Instalace

You must compile PHP with --with-fdftk[=DIR].

Poznámka: 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.

Note to Win32 Users: In order to enable this module on a Windows environment, you must copy fdftk.dll from the DLL folder of the PHP/Win32 binary package to the SYSTEM32 folder of your windows machine. (Ex: C:\WINNT\SYSTEM32 or C:\WINDOWS\SYSTEM32)

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

fdf

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().

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

FDFValue (integer)

FDFStatus (integer)

FDFFile (integer)

FDFID (integer)

FDFFf (integer)

FDFSetFf (integer)

FDFClearFf (integer)

FDFFlags (integer)

FDFSetF (integer)

FDFClrF (integer)

FDFAP (integer)

FDFAS (integer)

FDFAction (integer)

FDFAA (integer)

FDFAPRef (integer)

FDFIF (integer)

FDFEnter (integer)

FDFExit (integer)

FDFDown (integer)

FDFUp (integer)

FDFFormat (integer)

FDFValidate (integer)

FDFKeystroke (integer)

FDFCalculate (integer)

FDFNormalAP (integer)

FDFRolloverAP (integer)

FDFDownAP (integer)

Příklady

The following examples shows just the evaluation of form data.

Příklad 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);
?>

Obsah
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_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

Předcházející | Domů | Další
unlink | Nahoru | fdf_add_doc_javascript


fdf_add_doc_javascript

(PHP 4 >= 4.3.0, PHP 5)

fdf_add_doc_javascript -- Adds javascript code to the FDF document

Description

bool fdf_add_doc_javascript ( resource fdfdoc, string script_name, string script_code)

Adds a script to the FDF, which Acrobat then adds to the doc-level scripts of a document, once the FDF is imported into it. It is strongly suggested to use '\r' for linebreaks within script_code.

Příklad 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

Předcházející | Domů | Další
Forms Data Format Functions | Nahoru | fdf_add_template


fdf_add_template

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

fdf_add_template -- Adds a template into the FDF document

Description

bool fdf_add_template ( resource fdfdoc, int newpage, string filename, string template, int rename)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
fdf_add_doc_javascript | Nahoru | fdf_close


fdf_close

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

fdf_close -- Close an FDF document

Description

bool fdf_close ( resource fdf_document)

The fdf_close() function closes the FDF document.

See also fdf_open().

Předcházející | Domů | Další
fdf_add_template | Nahoru | fdf_create


fdf_create

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

fdf_create -- Create a new FDF document

Description

resource fdf_create ( void )

The fdf_create() creates a new FDF document. This function is needed if one would like to populate input fields in a PDF document with data.

Příklad 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");
?>

See also fdf_close(),
         fdf_save(),
         fdf_open().

Předcházející | Domů | Další
fdf_close | Nahoru | fdf_enum_values


fdf_enum_values

(PHP 4 >= 4.3.0, PHP 5)

fdf_enum_values -- Call a user defined function for each document value

Description

bool fdf_enum_values ( resource fdfdoc, callback function [, mixed userdata])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
fdf_create | Nahoru | fdf_errno


fdf_errno

(PHP 4 >= 4.3.0, PHP 5)

fdf_errno -- Return error code for last fdf operation

Description

int fdf_errno ( void )

fdf_errno() returns the error code set by the last fdf_...() function call. This is zero for a successfull operation or a non-zero error code on failure. A textual description may be obtained using the fdf_error() function.

See also fdf_error().

Předcházející | Domů | Další
fdf_enum_values | Nahoru | fdf_error


fdf_error

(PHP 4 >= 4.3.0, PHP 5)

fdf_error -- Return error description for fdf error code

Description

string fdf_error ( [int error_code])

fdf_error() returns a textual description for the fdf error code given in error_code. The function uses the internal error code set by the last operation if no error_code is given, so fdf_error() is a convenient shortcut for fdf_error(fdf_errno()).

See also fdf_errno().

Předcházející | Domů | Další
fdf_errno | Nahoru | fdf_get_ap


fdf_get_ap

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_ap -- Get the appearance of a field

Description

bool fdf_get_ap ( resource fdf_document, string field, int face, string filename)

The fdf_get_ap() function gets the appearance of a field (i.e. the value of the /AP key) and stores it in a file. The possible values of face are FDFNormalAP, FDFRolloverAP and FDFDownAP. The appearance is stored in filename.

Předcházející | Domů | Další
fdf_error | Nahoru | fdf_get_attachment


fdf_get_attachment

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_attachment -- Extracts uploaded file embedded in the FDF

Description

array fdf_get_attachment ( resource fdf_document, string fieldname, string savepath)

Extracts a file uploaded by means of the "file selection" field fieldname and stores it under savepath. savepath may be the name of a plain file or an existing directory in which the file is to be created under its original name. Any existing file under the same name will be overwritten.

Poznámka: There seems to be no other way to find out the original filename but to store the file using a directory as savepath and check for the basename it was stored under.

The returned array contains the following fields:

  • path - path were the file got stored

    size - size of the stored file in bytes

    type - mimetype if given in the FDF

Příklad 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]";
?>

Předcházející | Domů | Další
fdf_get_ap | Nahoru | fdf_get_encoding


fdf_get_encoding

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_encoding -- Get the value of the /Encoding key

Description

string fdf_get_encoding ( resource fdf_document)

The fdf_get_encoding() returns the value of the /Encoding key. An empty string is returned if the default PDFDocEncoding/Unicode scheme is used.

See also fdf_set_encoding().

Předcházející | Domů | Další
fdf_get_attachment | Nahoru | fdf_get_file


fdf_get_file

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

fdf_get_file -- Get the value of the /F key

Description

string fdf_get_file ( resource fdf_document)

The fdf_set_file() returns the value of the /F key.

See also fdf_set_file().

Předcházející | Domů | Další
fdf_get_encoding | Nahoru | fdf_get_flags


fdf_get_flags

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_flags -- Gets the flags of a field

Description

fdf_get_flags ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
fdf_get_file | Nahoru | fdf_get_opt


fdf_get_opt

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_opt -- Gets a value from the opt array of a field

Description

mixed fdf_get_opt ( resource fdfdof, string fieldname [, int element])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
fdf_get_flags | Nahoru | fdf_get_status


fdf_get_status

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

fdf_get_status -- Get the value of the /STATUS key

Description

string fdf_get_status ( resource fdf_document)

The fdf_get_status() returns the value of the /STATUS key.

See also fdf_set_status().

Předcházející | Domů | Další
fdf_get_opt | Nahoru | fdf_get_value


fdf_get_value

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

fdf_get_value -- Get the value of a field

Description

string fdf_get_value ( resource fdf_document, string fieldname [, int which])

The fdf_get_value() function returns the value for the requested fieldname.

Elements of an array field can be retrieved by passing the optional which, starting at zero. For non-array fields the optional parameter which will be ignored.

Poznámka: Array support and optional which parameter were added in PHP 4.3.

See also fdf_set_value().

Předcházející | Domů | Další
fdf_get_status | Nahoru | fdf_get_version


fdf_get_version

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_version -- Gets version number for FDF API or file

Description

string fdf_get_version ( [resource fdf_document])

This function will return the fdf version for the given fdf_document, or the toolkit API version number if no parameter is given.

For the current FDF toolkit 5.0 the API version number is '5.0' and the document version number is either '1.2', '1.3' or '1.4'.

See also fdf_set_version().

Předcházející | Domů | Další
fdf_get_value | Nahoru | fdf_header


fdf_header

(PHP 4 >= 4.3.0, PHP 5)

fdf_header -- Sets FDF-specific output headers

Description

bool fdf_header ( void )

This is a convenience function to set appropriate HTTP headers for FDF output. It sets the Content-type: to application/vnd.fdf.

Předcházející | Domů | Další
fdf_get_version | Nahoru | fdf_next_field_name


fdf_next_field_name

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

fdf_next_field_name -- Get the next field name

Description

string fdf_next_field_name ( resource fdf_document [, string fieldname])

The fdf_next_field_name() function returns the name of the field after the field in fieldname or the field name of the first field if the second parameter is NULL.

Příklad 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";
}
?>

See also fdf_enum_fields() and fdf_get_value().

Předcházející | Domů | Další
fdf_header | Nahoru | fdf_open_string


fdf_open_string

(PHP 4 >= 4.3.0, PHP 5)

fdf_open_string -- Read a FDF document from a string

Description

resource fdf_open_string ( string fdf_data)

The fdf_open_string() function reads form data from a string. fdf_data must contain the data as returned from a PDF form or created using fdf_create() and fdf_save_string().

You can fdf_open_string() together with $HTTP_FDF_DATA to process fdf form input from a remote client.

Příklad 1. Accessing the form data

<?php
$fdf = fdf_open_string($HTTP_FDF_DATA);
/* ... */
fdf_close($fdf);
?>

See also
fdf_open(),
fdf_close(),
fdf_create() and
fdf_save_string().

Předcházející | Domů | Další
fdf_next_field_name | Nahoru | fdf_open


fdf_open

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

fdf_open -- Open a FDF document

Description

resource fdf_open ( string filename)

The fdf_open() function opens a file with form data. This file must contain the data as returned from a PDF form or created using fdf_create() and fdf_save().

You can process the results of a PDF form POST request by writing the data received in $HTTP_FDF_DATA to a file and open it using fdf_open(). Starting with PHP 4.3 you can also use fdf_open_string() which handles temporary file creation and cleanup for you.

Příklad 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);
?>

See also
fdf_open_string(),
fdf_close(),
fdf_create() and
fdf_save().

Předcházející | Domů | Další
fdf_open_string | Nahoru | fdf_remove_item


fdf_remove_item

(PHP 4 >= 4.3.0, PHP 5)

fdf_remove_item -- Sets target frame for form

Description

bool fdf_remove_item ( resource fdfdoc, string fieldname, int item)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
fdf_open | Nahoru | fdf_save_string


fdf_save_string

(PHP 4 >= 4.3.0, PHP 5)

fdf_save_string -- Returns the FDF document as a string

Description

string fdf_save_string ( resource fdf_document)

The fdf_save_string() function returns the FDF document as a string.

Příklad 1. Retrieving FDF as a string

<?php
$fdf = fdf_create();
fdf_set_value($fdf, "foo", "bar");
$str = fdf_save_string($fdf);
fdf_close($fdf);
echo $str;
?>

will output something like

%FDF-1.2
%âăĎÓ
1 0 obj
<<
/FDF << /Fields 2 0 R >>
>>
endobj
2 0 obj
[
<< /T (foo)/V (bar)>>
]
endobj
trailer
<<
/Root 1 0 R

>>
%%EOF

See also fdf_save(),
fdf_open_string(),
fdf_create() and
fdf_close().

Předcházející | Domů | Další
fdf_remove_item | Nahoru | fdf_save


fdf_save

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

fdf_save -- Save a FDF document

Description

bool fdf_save ( resource fdf_document [, string filename])

The fdf_save() function saves a FDF document. The resulting FDF will be written to filename. Without a filename fdf_save() will write the FDF to the default PHP output stream.

See also fdf_save_string(),
fdf_create() and
fdf_close().

Předcházející | Domů | Další
fdf_save_string | Nahoru | fdf_set_ap


fdf_set_ap

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

fdf_set_ap -- Set the appearance of a field

Description

bool fdf_set_ap ( resource fdf_document, string field_name, int face, string filename, int page_number)

The fdf_set_ap() function sets the appearance of a field (i.e. the value of the /AP key). The possible values of face are FDFNormalAP, FDFRolloverAP and FDFDownAP.

Předcházející | Domů | Další
fdf_save | Nahoru | fdf_set_encoding


fdf_set_encoding

(PHP 4 >= 4.1.0, PHP 5)

fdf_set_encoding -- Sets FDF character encoding

Description

bool fdf_set_encoding ( resource fdf_document, string encoding)

fdf_set_encoding() sets the character encoding in FDF document fdf_document. encoding should be the valid encoding name. Currently the following values are supported: "Shift-JIS", "UHC", "GBK","BigFive". An empty string resets the encoding to the default PDFDocEncoding/Unicode scheme.

Předcházející | Domů | Další
fdf_set_ap | Nahoru | fdf_set_file


fdf_set_file

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

fdf_set_file -- Set PDF document to display FDF data in

Description

bool fdf_set_file ( resource fdf_document, string url [, string target_frame])

The fdf_set_file() selects a different PDF document to display the form results in then the form it originated from. The url needs to be given as an absolute URL.

The frame to display the document in may be selected using the optional parameter target_frame or the function fdf_set_target_frame().

Příklad 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();

  /* clean up */
  fdf_close();
?>

See also fdf_get_file() and fdf_set_target_frame().

Předcházející | Domů | Další
fdf_set_encoding | Nahoru | fdf_set_flags


fdf_set_flags

(PHP 4 >= 4.0.2, PHP 5)

fdf_set_flags -- Sets a flag of a field

Description

bool fdf_set_flags ( resource fdf_document, string fieldname, int whichFlags, int newFlags)

The fdf_set_flags() sets certain flags of the given field fieldname.

See also fdf_set_opt().

Předcházející | Domů | Další
fdf_set_file | Nahoru | fdf_set_javascript_action


fdf_set_javascript_action

(PHP 4 >= 4.0.2, PHP 5)

fdf_set_javascript_action -- Sets an javascript action of a field

Description

bool fdf_set_javascript_action ( resource fdf_document, string fieldname, int trigger, string script)

fdf_set_javascript_action() sets a javascript action for the given field fieldname.

See also fdf_set_submit_form_action().

Předcházející | Domů | Další
fdf_set_flags | Nahoru | fdf_set_opt


fdf_set_opt

(PHP 4 >= 4.0.2, PHP 5)

fdf_set_opt -- Sets an option of a field

Description

bool fdf_set_opt ( resource fdf_document, string fieldname, int element, string str1, string str2)

The fdf_set_opt() sets options of the given field fieldname.

See also fdf_set_flags().

Předcházející | Domů | Další
fdf_set_javascript_action | Nahoru | fdf_set_status


fdf_set_status

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

fdf_set_status -- Set the value of the /STATUS key

Description

bool fdf_set_status ( resource fdf_document, string status)

The fdf_set_status() 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.

See also fdf_get_status().

Předcházející | Domů | Další
fdf_set_opt | Nahoru | fdf_set_submit_form_action


fdf_set_submit_form_action

(PHP 4 >= 4.0.2, PHP 5)

fdf_set_submit_form_action -- Sets a submit form action of a field

Description

bool fdf_set_submit_form_action ( resource fdf_document, string fieldname, int trigger, string script, int flags)

The fdf_set_submit_form_action() sets a submit form action for the given field fieldname.

See also fdf_set_javascript_action().

Předcházející | Domů | Další
fdf_set_status | Nahoru | fdf_set_target_frame


fdf_set_target_frame

(PHP 4 >= 4.3.0, PHP 5)

fdf_set_target_frame -- Set target frame for form display

Description

bool fdf_set_target_frame ( resource fdf_document, string frame_name)

Sets the target frame to display a result PDF defined with fdf_save_file() in.

See also fdf_save_file().

Předcházející | Domů | Další
fdf_set_submit_form_action | Nahoru | fdf_set_value


fdf_set_value

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

fdf_set_value -- Set the value of a field

Description

bool fdf_set_value ( resource fdf_document, string fieldname, mixed value [, int isName])

The fdf_set_value() function sets the value for a field named fieldname. The value will be stored as a string unless it is an array. In this case all array elements will be stored as a value array.

Poznámka: In older versions of the fdf toolkit last parameter determined if the field value was to be converted to a PDF Name (isName = 1) or set to a PDF String (isName = 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 beginning with PHP 4.3, but ignored internally.

Support for value arrays was added in PHP 4.3.

See also fdf_get_value() and fdf_remove_item().

Předcházející | Domů | Další
fdf_set_target_frame | Nahoru | fdf_set_version


fdf_set_version

(PHP 4 >= 4.3.0, PHP 5)

fdf_set_version -- Sets version number for a FDF file

Description

string fdf_set_version ( resource fdf_document, string version)

This function will set the fdf version for the given fdf_document. Some features supported by this extension are only available in newer fdf versions. For the current FDF toolkit 5.0 version may be either '1.2', '1.3' or '1.4'.

See also fdf_get_version().

Předcházející | Domů | Další
fdf_set_value | Nahoru | FriBiDi Functions


FriBiDi Functions

Manuál PHP
Předcházející Další

XXXII. FriBiDi Functions

Úvod

FriBiDi is a free implementation of the Unicode Bidirectional Algorithm.

Požadavky

You must download and install the FriBiDi package.

Instalace

To enable FriBiDi support in PHP you must compile --with-fribidi[=DIR] where DIR is the FriBiDi install directory.

Konfigurace běhu

Typy prostředků

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

FRIBIDI_CHARSET_UTF8 (integer)

FRIBIDI_CHARSET_8859_6 (integer)

FRIBIDI_CHARSET_8859_8 (integer)

FRIBIDI_CHARSET_CP1255 (integer)

FRIBIDI_CHARSET_CP1256 (integer)

FRIBIDI_CHARSET_ISIRI_3342 (integer)

Obsah
fribidi_log2vis -- Convert a logical string to a visual one

Předcházející | Domů | Další
fdf_set_version | Nahoru | fribidi_log2vis


fribidi_log2vis

(PHP 4 >= 4.0.4)

fribidi_log2vis -- Convert a logical string to a visual one

Description

string fribidi_log2vis ( string str, string direction, int charset)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
FriBiDi Functions | Nahoru | FTP Functions


FTP Functions

Manuál PHP
Předcházející Další

XXXIII. FTP Functions

Úvod

The functions in this extension implement client access to file servers speaking the File Transfer Protocol (FTP) as defined in http://www.faqs.org/rfcs/rfc959. This extension is meant for detailed access to an FTP server providing a wide range of control to the executing script. If you only wish to read from or write to a file on an FTP server, consider using the ftp:// wrapper with the filesystem functions which provide a simpler and more intuitive interface.

Požadavky

Tyto funkce jsou k dispozici jako součást standardního modulu, který je vždy dostupný.

Instalace

In order to use FTP functions with your PHP configuration, you should add the --enable-ftp option when installing PHP 4 or --with-ftp when using PHP 3.

Verze PHP pro Windows má vestavěnou podporu pro toto rozšíření. K použití těchto funkcí není třeba načítat žádná další rozšíření.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

This extension uses one resource type, which is the link identifier of the FTP connection, returned by ftp_connect().

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

FTP_ASCII (integer)

FTP_TEXT (integer)

FTP_BINARY (integer)

FTP_IMAGE (integer)

FTP_TIMEOUT_SEC (integer)

See ftp_set_option() for information.

The following constants were introduced in PHP 4.3.0.

FTP_AUTOSEEK (integer)

See ftp_set_option() for information.

FTP_AUTORESUME (integer)

Automatically determine resume position and start position for GET and PUT requests (only works if FTP_AUTOSEEK is enabled)

FTP_FAILED (integer)

Asynchronous transfer has failed

FTP_FINISHED (integer)

Asynchronous transfer has finished

FTP_MOREDATA (integer)

Asynchronous transfer is still active

Příklady

Příklad 1. FTP example

<?php
// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// check connection
if ((!$conn_id) || (!$login_result)) {
        echo "FTP connection has failed!";
        echo "Attempted to connect to $ftp_server for user $ftp_user_name";
        exit;
    } else {
        echo "Connected to $ftp_server, for user $ftp_user_name";
    }

// upload the file
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);

// check upload status
if (!$upload) {
        echo "FTP upload has failed!";
    } else {
        echo "Uploaded $source_file to $ftp_server as $destination_file";
    }

// close the FTP stream
ftp_close($conn_id);
?>

Obsah
ftp_alloc -- Allocates space for a file to be uploaded.
ftp_cdup -- Changes to the parent directory
ftp_chdir -- Changes directories on a FTP server
ftp_chmod -- Set permissions on a file via FTP
ftp_close -- Closes an FTP connection
ftp_connect -- Opens an FTP connection
ftp_delete -- Deletes a file on the FTP server
ftp_exec -- Requests execution of a program on the FTP server
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 -- Retrieves various runtime behaviours of the current FTP stream
ftp_get -- Downloads a file from the FTP server
ftp_login -- Logs in to an FTP connection
ftp_mdtm -- Returns the last modified time of the given file
ftp_mkdir -- Creates a directory
ftp_nb_continue -- Continues retrieving/sending a file (non-blocking)
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 -- Returns a list of files in the given directory
ftp_pasv -- Turns passive mode on or off
ftp_put -- Uploads a file to the FTP server
ftp_pwd -- Returns the current directory name
ftp_quit -- Alias of ftp_close()
ftp_raw -- Sends an arbitrary command to an FTP server
ftp_rawlist -- Returns a detailed list of files in the given directory
ftp_rename -- Renames a file on the FTP server
ftp_rmdir -- Removes a directory
ftp_set_option -- Set miscellaneous runtime FTP options
ftp_site -- Sends a SITE command to the server
ftp_size -- Returns the size of the given file
ftp_ssl_connect -- Opens an Secure SSL-FTP connection
ftp_systype -- Returns the system type identifier of the remote FTP server

Předcházející | Domů | Další
fribidi_log2vis | Nahoru | ftp_alloc


ftp_alloc

(PHP 5)

ftp_alloc -- Allocates space for a file to be uploaded.

Description

bool ftp_alloc ( resource ftp_stream, int filesize [, string &result])

Sends an ALLO command to the remote FTP server to allocate filesize bytes of space. Returns TRUE on success, or FALSE on failure.

Poznámka: 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.

A textual representation of the servers response will be returned by reference in result is a variable is provided.

Příklad 1. ftp_alloc() example

<?php

$file = "/home/user/myfile";

/* connect to the server */
$conn_id = ftp_connect('ftp.example.com');
$login_result = ftp_login($conn_id, 'anonymous', 'user@example.com');

if (ftp_alloc($conn_id, filesize($file), $result)) {
  echo "Space successfully allocated on server.  Sending $file.\n";
  ftp_put($conn_id, '/incomming/myfile', $file, FTP_BINARY);
} else {
  echo "Unable to allocate space on server.  Server said: $result\n";
}

ftp_close($conn_id);

?>

See also: ftp_put(), and ftp_fput().

Předcházející | Domů | Další
FTP Functions | Nahoru | ftp_cdup


ftp_cdup

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_cdup -- Changes to the parent directory

Description

bool ftp_cdup ( resource ftp_stream)

Changes to the parent directory.

Příklad 1. ftp_cdup() example

<?php
// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// change the current directory to html
ftp_chdir($conn_id, 'html');

echo ftp_pwd($conn_id); // /html

// return to the parent directory
if (ftp_cdup($conn_id)) {
  echo "cdup successful\n";
} else {
  echo "cdup not successful\n";
}

echo ftp_pwd($conn_id); // /

ftp_close($conn_id);
?>

Vrací TRUE při úspěchu, FALSE při selhání.

See also ftp_chdir().

Předcházející | Domů | Další
ftp_alloc | Nahoru | ftp_chdir


ftp_chdir

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_chdir -- Changes directories on a FTP server

Description

bool ftp_chdir ( resource ftp_stream, string directory)

Changes the current directory to the specified directory.

Vrací TRUE při úspěchu, FALSE při selhání.

Příklad 1. ftp_chdir() example

<?php

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// check connection
if ((!$conn_id) || (!$login_result)) {
    die("FTP connection has failed !");
}

echo "Current directory: " . ftp_pwd($conn_id) . "\n";

// try to change the directory to somedir
if (ftp_chdir($conn_id, "somedir")) {
    echo "Current directory is now: " . ftp_pwd($conn_id) . "\n";
} else {
    echo "Couldn't change directory\n";
}

// close the connection
ftp_close($conn_id);
?>

See also ftp_cdup().

Předcházející | Domů | Další
ftp_cdup | Nahoru | ftp_chmod


ftp_chmod

(PHP 5)

ftp_chmod -- Set permissions on a file via FTP

Description

string ftp_chmod ( resource ftp_stream, int mode, string filename)

Sets the permissions on the remote file specified by filename to mode given as an octal value.

Příklad 1. ftp_chmod() example

<?php
$file = 'public_html/index.php';

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// try to chmod $file to 644
if (ftp_chmod($conn_id, 0644, $file)) {
 echo "$file cdmoded successfully to 644\n";
} else {
 echo "could not chmod $file\n";
}

// close the connection
ftp_close($conn_id);
?>

Returns the new file permissions on success or FALSE on error.

See also chmod().

Předcházející | Domů | Další
ftp_chdir | Nahoru | ftp_close


ftp_close

(PHP 4 >= 4.2.0, PHP 5)

ftp_close -- Closes an FTP connection

Description

void ftp_close ( resource ftp_stream)

ftp_close() closes ftp_stream and releases the resource. After calling this function, you can no longer use the FTP connection and must create a new one with ftp_connect().

Příklad 1. ftp_close() example

<?php

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// print the current directory
echo ftp_pwd($conn_id); // /

// close this connection
ftp_close($conn_id);
?>

See also ftp_connect()

Předcházející | Domů | Další
ftp_chmod | Nahoru | ftp_connect


ftp_connect

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_connect -- Opens an FTP connection

Description

resource ftp_connect ( string host [, int port [, int timeout]])

Returns a FTP stream on success or FALSE on error.

ftp_connect() opens an FTP connection to the specified host. host shouldn't have any trailing slashes and shouldn't be prefixed with ftp://. The port 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.

The timeout 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().

Poznámka: The timeout parameter became available in PHP 4.2.0.

Příklad 1. ftp_connect() example

<?php

$ftp_server = "ftp.example.com";

// set up a connection or die
$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");

?>

See also ftp_close(), and ftp_ssl_connect().

Předcházející | Domů | Další
ftp_close | Nahoru | ftp_delete


ftp_delete

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_delete -- Deletes a file on the FTP server

Description

bool ftp_delete ( resource ftp_stream, string path)

ftp_delete() deletes the file specified by path from the FTP server.

Příklad 1. ftp_delete() example

<?php
$file = 'public_html/old.txt';

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// try to delete $file
if (ftp_delete($conn_id, $file)) {
 echo "$file deleted successful\n";
} else {
 echo "could not delete $file\n";
}

// close the connection
ftp_close($conn_id);
?>

Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
ftp_connect | Nahoru | ftp_exec


ftp_exec

(PHP 4 >= 4.0.3, PHP 5)

ftp_exec -- Requests execution of a program on the FTP server

Description

bool ftp_exec ( resource ftp_stream, string command)

Sends a SITE EXEC command request to the FTP server. Returns TRUE if the command was successful (server sent response code: 200); otherwise returns FALSE.

Příklad 1. ftp_exec() example

<?php

$command = 'ls -al';

$conn_id = ftp_connect($ftp_server);

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

if ($res = ftp_exec($conn_id, $command)) {
    echo "$command executed successfully<br />\n";
    echo nl2br($res);
} else {
    echo 'could not execute ' . $command;
}

?>

See also ftp_raw().

Předcházející | Domů | Další
ftp_delete | Nahoru | ftp_fget


ftp_fget

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_fget -- Downloads a file from the FTP server and saves to an open file

Description

bool ftp_fget ( resource ftp_stream, resource handle, string remote_file, int mode [, int resumepos])

ftp_fget() retrieves remote_file from the FTP server, and writes it to the given file pointer, handle. The transfer mode specified must be either FTP_ASCII or FTP_BINARY.

Příklad 1. ftp_fget() example

<?php

// open some file for reading
$file = 'somefile.txt';
$fp = fopen($file, 'w');

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// try to download $file
if (ftp_fget($conn_id, $fp, $file, FTP_ASCII, 1)) {
 echo "successfully written to $file\n";
} else {
 echo "There was a problem with $file\n";
}

// close the connection and the file handler
ftp_close($conn_id);
fclose($fp);
?>

Poznámka: The resumepos parameter was added in PHP 4.3.0.

Vrací TRUE při úspěchu, FALSE při selhání.

See also ftp_get(), ftp_nb_get() and ftp_nb_fget().

Předcházející | Domů | Další
ftp_exec | Nahoru | ftp_fput


ftp_fput

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_fput -- Uploads from an open file to the FTP server

Description

bool ftp_fput ( resource ftp_stream, string remote_file, resource handle, int mode [, int startpos])

ftp_fput() uploads the data from the file pointer handle until the end of the file is reached. The results are stored in remote_file on the FTP server. The transfer mode specified must be either FTP_ASCII or FTP_BINARY.

Příklad 1. ftp_fput() example

<?php

// open some file for reading
$file = 'somefile.txt';
$fp = fopen($file, 'r');

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// try to upload $file
if (ftp_fput($conn_id, $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($conn_id);
fclose($fp);

?>

Poznámka: The startpos parameter was added in PHP 4.3.0.

Vrací TRUE při úspěchu, FALSE při selhání.

See also ftp_put(), ftp_nb_fput(), and ftp_nb_put().

Předcházející | Domů | Další
ftp_fget | Nahoru | ftp_get_option


ftp_get_option

(PHP 4 >= 4.2.0, PHP 5)

ftp_get_option -- Retrieves various runtime behaviours of the current FTP stream

Description

mixed ftp_get_option ( resource ftp_stream, int option)

Returns the value on success or FALSE if the given option is not supported. In the latter case, a warning message is also thrown.

This function returns the value for the requested option from the specified ftp_stream . Currently, the following options are supported:

Tabulka 1. Supported runtime FTP options

FTP_TIMEOUT_SEC Returns the current timeout used for network related operations.

Příklad 1. ftp_get_option() example

<?php
// Get the timeout of the given FTP stream
$timeout = ftp_get_option($conn_id, FTP_TIMEOUT_SEC);
?>

See also ftp_set_option().

Předcházející | Domů | Další
ftp_fput | Nahoru | ftp_get


ftp_get

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_get -- Downloads a file from the FTP server

Description

bool ftp_get ( resource ftp_stream, string local_file, string remote_file, int mode [, int resumepos])

ftp_get() retrieves remote_file from the FTP server, and saves it to local_file locally. The transfer mode specified must be either FTP_ASCII or FTP_BINARY.

Poznámka: The resumepos parameter was added in PHP 4.3.0.

Vrací TRUE při úspěchu, FALSE při selhání.

Příklad 1. ftp_get() example

<?php

// define some variables
$local_file = 'local.zip';
$server_file = 'server.zip';

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// try to download $server_file and save to $local_file
if (ftp_get($conn_id, $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($conn_id);

?>

See also ftp_fget(), ftp_nb_get() and ftp_nb_fget().

Předcházející | Domů | Další
ftp_get_option | Nahoru | ftp_login


ftp_login

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_login -- Logs in to an FTP connection

Description

bool ftp_login ( resource ftp_stream, string username, string password)

Logs in to the given FTP stream.

Vrací TRUE při úspěchu, FALSE při selhání.

Příklad 1. ftp_login() example

<?php

$ftp_server = "ftp.example.com";
$ftp_user = "foo";
$ftp_pass = "bar";

// set up a connection or die
$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");

// try to login
if (@ftp_login($conn_id, $ftp_user, $ftp_pass)) {
    echo "Connected as $ftp_user@$ftp_server\n";
} else {
    echo "Couldn't connect as $ftp_user\n";
}

// close the connection
ftp_close($conn_id);
?>

Předcházející | Domů | Další
ftp_get | Nahoru | ftp_mdtm


ftp_mdtm

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_mdtm -- Returns the last modified time of the given file

Description

int ftp_mdtm ( resource ftp_stream, string remote_file)

ftp_mdtm() checks the last modified time for a file, and returns it as a Unix timestamp. If an error occurs, or the file does not exist, -1 is returned.

Returns a Unix timestamp on success, or -1 on error.

Příklad 1. ftp_mdtm() example

<?php

$file = 'somefile.txt';

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

//  get the last modified time
$buff = ftp_mdtm($conn_id, $file);

if ($buff != -1) {
    // somefile.txt was last modified on: March 26 2003 14:16:41.
    echo "$file was last modified on : " . date("F d Y H:i:s.", $buff);
} else {
    echo "Couldn't get mdtime";
}

// close the connection
ftp_close($conn_id);

?>

Poznámka: Not all servers support this feature!

Poznámka: ftp_mdtm() does not work with directories.

Předcházející | Domů | Další
ftp_login | Nahoru | ftp_mkdir


ftp_mkdir

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_mkdir -- Creates a directory

Description

string ftp_mkdir ( resource ftp_stream, string directory)

Creates the specified directory on the FTP server.

Returns the newly created directory name on success or FALSE on error.

Příklad 1. ftp_mkdir() example

<?php

$dir = 'www';

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// try to create the directory $dir
if (ftp_mkdir($conn_id, $dir)) {
 echo "successfully created $dir\n";
} else {
 echo "There was a problem while creating $dir\n";
}

// close the connection
ftp_close($conn_id);
?>

See also ftp_rmdir().

Předcházející | Domů | Další
ftp_mdtm | Nahoru | ftp_nb_continue


ftp_nb_continue

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_continue -- Continues retrieving/sending a file (non-blocking)

Description

int ftp_nb_continue ( resource ftp_stream)

Continues retrieving/sending a file non-blocking.

Příklad 1. ftp_nb_continue() example

<?php

// Initate the download
$ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // Continue downloading...
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "There was an error downloading the file...";
   exit(1);
}
?>

Returns FTP_FAILED or FTP_FINISHED or FTP_MOREDATA.

Předcházející | Domů | Další
ftp_mkdir | Nahoru | ftp_nb_fget


ftp_nb_fget

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_fget -- Retrieves a file from the FTP server and writes it to an open file (non-blocking)

Description

int ftp_nb_fget ( resource ftp_stream, resource handle, string remote_file, int mode [, int resumepos])

ftp_nb_fget() retrieves remote_file from the FTP server, and writes it to the given file pointer, handle. The transfer mode specified must be either FTP_ASCII or FTP_BINARY. The difference between this function and the ftp_fget() is that this function retrieves the file asynchronously, so your program can perform other operations while the file is being downloaded.

Příklad 1. ftp_nb_fget() example

<?php

// open some file for reading
$file = 'index.php';
$fp = fopen($file, 'w');

$conn_id = ftp_connect($ftp_server);

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Initate the download
$ret = ftp_nb_fget($conn_id, $fp, $file, FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // Do whatever you want
   echo ".";

   // Continue downloading...
   $ret = ftp_nb_continue($conn_id);
}
if ($ret != FTP_FINISHED) {
   echo "There was an error downloading the file...";
   exit(1);
}

// close filepointer
fclose($fp);
?>

Returns FTP_FAILED, FTP_FINISHED, or FTP_MOREDATA.

See also ftp_nb_get(),
ftp_nb_continue(), ftp_fget(), and
ftp_get().

Předcházející | Domů | Další
ftp_nb_continue | Nahoru | ftp_nb_fput


ftp_nb_fput

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_fput -- Stores a file from an open file to the FTP server (non-blocking)

Description

int ftp_nb_fput ( resource ftp_stream, string remote_file, resource handle, int mode [, int startpos])

ftp_nb_fput() uploads the data from the file pointer handle until it reaches the end of the file. The results are stored in remote_file on the FTP server. The transfer mode specified must be either FTP_ASCII or FTP_BINARY. 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.

Příklad 1. ftp_nb_fput() example

<?php

$file = 'index.php';

$fp = fopen($file, 'r');

$conn_id = ftp_connect($ftp_server);

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Initate the upload
$ret = ftp_nb_fput($conn_id, $file, $fp, FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // Do whatever you want
   echo ".";

   // Continue upload...
   $ret = ftp_nb_continue($conn_id);
}
if ($ret != FTP_FINISHED) {
   echo "There was an error uploading the file...";
   exit(1);
}

fclose($fp);
?>

Returns FTP_FAILED, FTP_FINISHED, or FTP_MOREDATA.

See also ftp_nb_put(),
ftp_nb_continue(), ftp_put()
and ftp_fput().

Předcházející | Domů | Další
ftp_nb_fget | Nahoru | ftp_nb_get


ftp_nb_get

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_get -- Retrieves a file from the FTP server and writes it to a local file (non-blocking)

Description

int ftp_nb_get ( resource ftp_stream, string local_file, string remote_file, int mode [, int resumepos])

ftp_nb_get() retrieves remote_file from the FTP server, and saves it to local_file locally. The transfer mode specified must be either FTP_ASCII or FTP_BINARY. The difference between this function and the ftp_get() is that this function retrieves the file asynchronously, so your program can perform other operations while the file is being downloaded.

Returns FTP_FAILED, FTP_FINISHED, or FTP_MOREDATA.

Příklad 1. ftp_nb_get() example

<?php

// Initate the download
$ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // Do whatever you want
   echo ".";

   // Continue downloading...
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "There was an error downloading the file...";
   exit(1);
}
?>

Příklad 2. Resuming a download with ftp_nb_get()

<?php

// Initate
$ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY,
                      filesize("test"));
// OR: $ret = ftp_nb_get($my_connection, "test", "README",
//                           FTP_BINARY, FTP_AUTORESUME);
while ($ret == FTP_MOREDATA) {

   // Do whatever you want
   echo ".";

   // Continue downloading...
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "There was an error downloading the file...";
   exit(1);
}
?>

Příklad 3. Resuming a download at position 100 to a new file with ftp_nb_get()

<?php

// Disable Autoseek
ftp_set_option($my_connection, FTP_AUTOSEEK, false);

// Initiate
$ret = ftp_nb_get($my_connection, "newfile", "README", FTP_BINARY, 100);
while ($ret == FTP_MOREDATA) {

   /* ... */

   // Continue downloading...
   $ret = ftp_nb_continue($my_connection);
}
?>

In the example above, "newfile" is 100 bytes smaller than "README" on the FTP server because we started reading at offset 100. If we have not have disabled FTP_AUTOSEEK, the first 100 bytes of "newfile" will be '\0'.

See also ftp_nb_fget(),
ftp_nb_continue(),
ftp_get(), and ftp_fget().

Předcházející | Domů | Další
ftp_nb_fput | Nahoru | ftp_nb_put


ftp_nb_put

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_put -- Stores a file on the FTP server (non-blocking)

Description

int ftp_nb_put ( resource ftp_stream, string remote_file, string local_file, int mode [, int startpos])

ftp_nb_put() stores local_file on the FTP server, as remote_file. The transfer mode specified must be either FTP_ASCII or FTP_BINARY. 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.

Returns FTP_FAILED, FTP_FINISHED, or FTP_MOREDATA.

Příklad 1. ftp_nb_put() example

<?php

// Initiate the Upload
$ret = ftp_nb_put($my_connection, "test.remote", "test.local", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // Do whatever you want
   echo ".";

   // Continue uploading...
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "There was an error uploading the file...";
   exit(1);
}
?>

Příklad 2. Resuming an upload with ftp_nb_put()

<?php

// Initiate
$ret = ftp_nb_put($my_connection, "test.remote", "test.local",
                      FTP_BINARY, ftp_size("test.remote"));
// OR: $ret = ftp_nb_put($my_connection, "test.remote", "test.local",
//                           FTP_BINARY, FTP_AUTORESUME);

while ($ret == FTP_MOREDATA) {

   // Do whatever you want
   echo ".";

   // Continue uploading...
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "There was an error uploading the file...";
   exit(1);
}
?>

See also ftp_nb_fput(),
ftp_nb_continue(), ftp_put(),
and ftp_fput().

Předcházející | Domů | Další
ftp_nb_get | Nahoru | ftp_nlist


ftp_nlist

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_nlist -- Returns a list of files in the given directory

Description

array ftp_nlist ( resource ftp_stream, string directory)

Returns an array of filenames from the specified directory on success or FALSE on error.

Příklad 1. ftp_nlist() example

<?php

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// get contents of the current directory
$contents = ftp_nlist($conn_id, ".");

// output $contents
var_dump($contents);

?>

The above example will output something similar to:

array(3) {
  [0]=>
  string(11) "public_html"
  [1]=>
  string(10) "public_ftp"
  [2]=>
  string(3) "www"

See also ftp_rawlist().

Předcházející | Domů | Další
ftp_nb_put | Nahoru | ftp_pasv


ftp_pasv

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_pasv -- Turns passive mode on or off

Description

bool ftp_pasv ( resource ftp_stream, bool pasv)

ftp_pasv() turns on passive mode if the pasv parameter is TRUE. It turns off passive mode if pasv is FALSE. In passive mode, data connections are initiated by the client, rather than by the server.

Příklad 1. ftp_pasv() example

<?php
$file = 'somefile.txt';
$remote_file = 'readme.txt';

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// turn passive mode on
ftp_pasv($conn_id, true);

// upload a file
if (ftp_put($conn_id, $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($conn_id);
?>

Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
ftp_nlist | Nahoru | ftp_put


ftp_put

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_put -- Uploads a file to the FTP server

Description

bool ftp_put ( resource ftp_stream, string remote_file, string local_file, int mode [, int startpos])

ftp_put() stores local_file on the FTP server, as remote_file. The transfer mode specified must be either FTP_ASCII or FTP_BINARY.

Poznámka: The startpos parameter was added in PHP 4.3.0.

Vrací TRUE při úspěchu, FALSE při selhání.

Příklad 1. ftp_put() example

<?php
$file = 'somefile.txt';
$remote_file = 'readme.txt';

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// upload a file
if (ftp_put($conn_id, $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($conn_id);
?>

See also ftp_fput(), ftp_nb_fput(), and ftp_nb_put().

Předcházející | Domů | Další
ftp_pasv | Nahoru | ftp_pwd


ftp_pwd

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_pwd -- Returns the current directory name

Description

string ftp_pwd ( resource ftp_stream)

Returns the current directory or FALSE on error.

Příklad 1. ftp_pwd() example

<?php

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// change directory to public_html
ftp_chdir($conn_id, 'public_html');

// print current directory
echo ftp_pwd($conn_id); // /public_html

// close the connection
ftp_close($conn_id);
?>

Předcházející | Domů | Další
ftp_put | Nahoru | ftp_quit


ftp_quit

ftp_quit -- Alias of ftp_close()

Description

This function is an alias of ftp_close().

Předcházející | Domů | Další
ftp_pwd | Nahoru | ftp_raw


ftp_raw

(PHP 5)

ftp_raw -- Sends an arbitrary command to an FTP server

Description

array ftp_raw ( resource ftp_stream, string command)

Sends an arbitrary command to the FTP server. Returns the server's response as an array of strings. No parsing is performed on the response string, nor does ftp_raw() determine if the command succeeded.

Příklad 1. Using ftp_raw() to login to an FTP server manually.

<?php
$fp = ftp_connect("ftp.example.com");

/* This is the same as:
   ftp_login($fp, "joeblow", "secret"); */
ftp_raw($fp, "USER joeblow");
ftp_raw($fp, "PASS secret");
?>

See Also: ftp_exec()

Předcházející | Domů | Další
ftp_quit | Nahoru | ftp_rawlist


ftp_rawlist

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_rawlist -- Returns a detailed list of files in the given directory

Description

array ftp_rawlist ( resource ftp_stream, string directory)

ftp_rawlist() executes the FTP LIST command, and returns the result as an array. Each array element corresponds to one line of text. 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.

Příklad 1. ftp_rawlist() example

<?php

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// get the file list for /
$buff = ftp_rawlist($conn_id, '/');

// close the connection
ftp_close($conn_id);

// output the buffer
var_dump($buff);
?>

The above example will output something similar to:

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"
}

See also ftp_nlist().

Předcházející | Domů | Další
ftp_raw | Nahoru | ftp_rename


ftp_rename

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_rename -- Renames a file on the FTP server

Description

bool ftp_rename ( resource ftp_stream, string from, string to)

ftp_rename() renames the file or directory that is currently named from to the new name to, using the FTP stream ftp_stream.

Příklad 1. ftp_rename() example

<?php
$old_file = 'somefile.txt.bak';
$new_file = 'somefile.txt';

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// try to rename $olf_file to $new_file
if (ftp_rename($conn_id, $old_file, $new_file)) {
 echo "successfully renamed $old_file to $new_file\n";
} else {
 echo "There was a problem while renaming $old_file to $new_file\n";
}

// close the connection
ftp_close($conn_id);
?>

Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
ftp_rawlist | Nahoru | ftp_rmdir


ftp_rmdir

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_rmdir -- Removes a directory

Description

bool ftp_rmdir ( resource ftp_stream, string directory)

Removes the specified directory. directory must be either an absolute or relative path to an empty directory.

Vrací TRUE při úspěchu, FALSE při selhání.

Příklad 1. ftp_rmdir() example

<?php

$dir = 'www/';

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// try to delete the directory $dir
if (ftp_rmdir($conn_id, $dir)) {
    echo "Successfully deleted $dir\n";
} else {
    echo "There was a problem while deleting $dir\n";
}

ftp_close($conn_id);

?>

See also ftp_mkdir().

Předcházející | Domů | Další
ftp_rename | Nahoru | ftp_set_option


ftp_set_option

(PHP 4 >= 4.2.0, PHP 5)

ftp_set_option -- Set miscellaneous runtime FTP options

Description

bool ftp_set_option ( resource ftp_stream, int option, mixed value)

Returns TRUE if the option could be set; FALSE if not. A warning message will be thrown if the option is not supported or the passed value doesn't match the expected value for the given option.

This function controls various runtime options for the specified FTP stream. The value parameter depends on which option parameter is chosen to be altered. Currently, the following options are supported:

Tabulka 1. Supported runtime FTP options

FTP_TIMEOUT_SEC | Changes the timeout in seconds used for all network related functions. value must be an integer that is greater than 0. The default timeout is 90 seconds.
FTP_AUTOSEEK | When enabled, GET or PUT requests with a resumepos or startpos parameter will first seek to the requested position within the file. This is enabled by default.

Příklad 1. ftp_set_option() example

<?php
// Set the network timeout to 10 seconds
ftp_set_option($conn_id, FTP_TIMEOUT_SEC, 10);
?>

See also ftp_get_option().

Předcházející | Domů | Další
ftp_rmdir | Nahoru | ftp_site


ftp_site

(PHP 3>= 3.0.15, PHP 4 , PHP 5)

ftp_site -- Sends a SITE command to the server

Description

bool ftp_site ( resource ftp_stream, string cmd)

ftp_site() sends the command specified by cmd 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.

Příklad 1. Sending a SITE command to an ftp server

<?php
/* Connect to FTP server */
$conn = ftp_connect('ftp.example.com');
if (!$conn) die('Unable to connect to ftp.example.com');

/* Login as "user" with password "pass" */
if (!ftp_login($conn, 'user', 'pass')) die('Error logging into ftp.example.com');

/* Issue: "SITE CHMOD 0600 /home/user/privatefile" command to ftp server */
if (ftp_site($conn, 'CHMOD 0600 /home/user/privatefile')) {
   echo "Command executed successfully.\n";
} else {
   die('Command failed.');
}
?>

Vrací TRUE při úspěchu, FALSE při selhání.

See Also: ftp_raw()

Předcházející | Domů | Další
ftp_set_option | Nahoru | ftp_size


ftp_size

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_size -- Returns the size of the given file

Description

int ftp_size ( resource ftp_stream, string remote_file)

ftp_size() returns the size of a remote_file in bytes. If an error occurs, or if the given file does not exist, or is a directory, -1 is returned. Not all servers support this feature.

Returns the file size on success, or -1 on error.

Příklad 1. ftp_size() example

<?php

$file = 'somefile.txt';

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// get the size of $file
$res = ftp_size($conn_id, $file);

if ($res != -1) {
    echo "size of $file is $res bytes";
} else {
    echo "couldn't get the size";
}

// close the connection
ftp_close($conn_id);

?>

See also ftp_rawlist().

Předcházející | Domů | Další
ftp_site | Nahoru | ftp_ssl_connect


ftp_ssl_connect

(PHP 4 >= 4.3.0, PHP 5)

ftp_ssl_connect -- Opens an Secure SSL-FTP connection

Description

resource ftp_ssl_connect ( string host [, int port [, int timeout]])

Returns a SSL-FTP stream on success or FALSE on error.

ftp_ssl_connect() opens a SSL-FTP connection to the specified host. The port parameter specifies an alternate port to connect to. If it's omitted or set to zero then the default FTP port 21 will be used.

The timeout 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().

Příklad 1. ftp_ssl_connect() example

<?php

// set up basic ssl connection
$conn_id = ftp_ssl_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

echo ftp_pwd($conn_id); // /

// close the ssl connection
ftp_close($conn_id);
?>

Why this function may not exist: ftp_ssl_connect() is only available if OpenSSL support is enabled into your version of PHP. If it's undefined and you've compiled FTP support then this is why.

See also ftp_connect().

Předcházející | Domů | Další
ftp_size | Nahoru | ftp_systype


ftp_systype

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ftp_systype -- Returns the system type identifier of the remote FTP server

Description

string ftp_systype ( resource ftp_stream)

Returns the remote system type, or FALSE on error.

Příklad 1. ftp_systype() example

<?php

// ftp connection
$ftp = ftp_connect('ftp.example.com');
ftp_login($ftp, 'user', 'password');

// get the system type
if ($type = ftp_systype($ftp)) {
    echo "Example.com is powered by $type\n";
} else {
    echo "Couldn't get the systype";
}

?>

The above example will output something similar to:

Example.com is powered by UNIX

Předcházející | Domů | Další
ftp_ssl_connect | Nahoru | Funkce pro práci s funkcemi


Funkce pro práci s funkcemi

Manuál PHP
Předcházející Další

XXXIV. Funkce pro práci s funkcemi

Úvod

Všechny tyto funkce pokrývají různé aspekty práce s funkcemi.

Požadavky

Tyto funkce jsou k dispozici jako součást standardního modulu, který je vždy dostupný.

Instalace

K používání těchto funkcí není třeba žádná instalace, jsou součástí jádra PHP.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Obsah
call_user_func_array -- Call a user function given with an array of parameters
call_user_func -- Zavolat uživatelskou funkci určenou prvním argumentem
create_function -- Vytvořit anonymní (lambda-style) funkci
func_get_arg -- Vrátit položku ze seznamu argumentů
func_get_args -- Vrátit pole obsahující seznam argumentů funkce
func_num_args -- Vrátit počet argumentů předaných funkci
function_exists -- Vrátit TRUE, pokud je daná funkce definována
get_defined_functions -- Returns an array of all defined functions
register_shutdown_function -- Zaregistrovat funkci pro provedení při ukončení běhu
register_tick_function -- Register a function for execution on each tick
unregister_tick_function -- De-register a function for execution on each tick

Předcházející | Domů | Další
ftp_systype | Nahoru | call_user_func_array


call_user_func_array

(PHP 4 >= 4.0.4, PHP 5)

call_user_func_array -- Call a user function given with an array of parameters

Description

mixed call_user_func_array ( callback function [, array param_arr])

Call a user defined function given by function, with the parameters in param_arr. For example:

Příklad 1. call_user_func_array() example

<?php
function debug($var, $val)
{
    echo "***DEBUGGING\nVARIABLE: $var\nVALUE:";
    if (is_array($val) || is_object($val) || is_resource($val)) {
        print_r($val);
    } else {
        echo "\n$val\n";
    }
    echo "***\n";
}

$c = mysql_connect();
$host = $_SERVER["SERVER_NAME"];

call_user_func_array('debug', array("host", $host));
call_user_func_array('debug', array("c", $c));
call_user_func_array('debug', array("_POST", $_POST));
?>

See also call_user_func().

Předcházející | Domů | Další
Funkce pro práci s funkcemi | Nahoru | call_user_func


call_user_func

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

call_user_func -- Zavolat uživatelskou funkci určenou prvním argumentem

Popis

mixed call_user_func ( string function_name [, mixed parameter [, mixed ...]])

Zavolá uživatelsky definouvanou funkci určenou argumentem function_name. Zvažte následující ukázku:

function barber ($type) {
    print "You wanted a $type haircut, no problem";
}
call_user_func ('barber', "mushroom");
call_user_func ('barber', "shave");

Předcházející | Domů | Další
call_user_func_array | Nahoru | create_function


create_function

(PHP 4 >= 4.0.1, PHP 5)

create_function -- Vytvořit anonymní (lambda-style) funkci

Popis

string create_function ( string args, string code)

Z předaných argumentů vytvoří anonymní funkci, a vrátí unikátní název této funkce. args se obvykle předává jako string v jednoduchých uvozovkách, a doporučujeme to i pro code. Důvodem pro jednoduché uvozovky je ochrana názvů proměnných před parsováním, pokud použijete dvojité uvozovky, budete muset oescapovat názvy proměnných, např. \$avar.

Tuto funkci můžete (například) použít k vytvoření funkce z dat shromážděných za běhu programu:

Příklad 1. Vytvoření anonymní funkce pomocí create_function()

$newfunc = create_function('$a,$b','return "ln($a) + ln($b) = ".log($a * $b);');
echo "New anonymous function: $newfunc\n";
echo $newfunc(2,M_E)."\n";
// výstup
// New anonymous function: lambda_1
// ln(2) + ln(2.718281828459) = 1.6931471805599
Nebo třeba k vytvoření obecného handleru, který na předané argumenty aplikuje sadu operací:

Příklad 2. Vytvoření obecné zpracující funkce pomocí create_function()

function process($var1, $var2, $farr) {
    for ($f=0; $f < count($farr); $f++)
    echo $farr[$f]($var1,$var2)."\n";
}

// create a bunch of math functions
$f1 = 'if ($a >=0) {return "b*a^2 = ".$b*sqrt($a);} else {return false;}';
$f2 = "return \"min(b^2+a, a^2,b) = \".min(\$a*\$a+\$b,\$b*\$b+\$a);";
$f3 = 'if ($a > 0 && $b != 0) {return "ln(a)/b = ".log($a)/$b;} else {return false;}';
$farr = array(
    create_function('$x,$y', 'return "some trig: ".(sin($x) + $x*cos($y));'),
    create_function('$x,$y', 'return "a hypotenuse: ".sqrt($x*$x + $y*$y);'),
    create_function('$a,$b', $f1),
    create_function('$a,$b', $f2),
    create_function('$a,$b', $f3)
    );

echo "\nUsing the first array of anonymous functions\n";
echo "parameters: 2.3445, M_PI\n";
process(2.3445, M_PI, $farr);

// now make a bunch of string processing functions
$garr = array(
    create_function('$b,$a','if (strncmp($a,$b,3) == 0) return "** \"$a\" '.
    'and \"$b\"\n** Look the same to me! (looking at the first 3 chars)";'),
    create_function('$a,$b','; return "CRCs: ".crc32($a)." , ".crc32(b);'),
    create_function('$a,$b','; return "similar(a,b) = ".similar_text($a,$b,&$p)."($p%)";')
    );
echo "\nUsing the second array of anonymous functions\n";
process("Twas brilling and the slithy toves", "Twas the night", $garr);
když spustíte výšeuvedený kód, výstup bude:

Using the first array of anonymous functions
parameters: 2.3445, M_PI
some trig: -1.6291725057799
a hypotenuse: 3.9199852871011
b*a^2 = 4.8103313314525
min(b^2+a, a^2,b) = 8.6382729035898
ln(a/b) = 0.27122299212594

Using the second array of anonymous functions
** "Twas the night" and "Twas brilling and the slithy toves"
** Look the same to me! (looking at the first 3 chars)
CRCs: -725381282 , 1908338681
similar(a,b) = 11(45.833333333333%)

Ale zřejmě nejběžnějším využitím lambda-style (anonymních) funkcí je tvorba callback funkcí, např. pro použití v array_walk() nebo usort()

Příklad 3. Využití anonymních funkcí jako callback funkcí

$av = array("the ","a ","that ","this ");
array_walk($av, create_function('&$v,$k','$v = $v."mango";'));
print_r($av);  // for PHP 3 use var_dump()
// outputs:
// Array
// (
//   [0] => the mango
//   [1] => a mango
//   [2] => that mango
//   [3] => this mango
// )

// an array of strings ordered from shorter to longer
$sv = array("small","larger","a big string","it is a string thing");
print_r($sv);
// outputs:
// Array
// (
//   [0] => small
//   [1] => larger
//   [2] => a big string
//   [3] => it is a string thing
// )

// sort it from longer to shorter
usort($sv, create_function('$a,$b','return strlen($b) - strlen($a);'));
print_r($sv);
// outputs:
// Array
// (
//   [0] => it is a string thing
//   [1] => a big string
//   [2] => larger
//   [3] => small
// )

Předcházející | Domů | Další
call_user_func | Nahoru | func_get_arg


func_get_arg

(PHP 4 , PHP 5)

func_get_arg -- Vrátit položku ze seznamu argumentů

Popis

mixed func_get_arg ( int arg_num)

Vrací argument, který je na arg_num-té pozici v seznamu argumentů užiavtelsky definované funkce. Argumenty funkcí se počítají od nuly. func_get_arg() při volání mimo definici funkce generuje varování.

Pokud je arg_num větší než počet skutečně předaných argumentů, vygeneruje varování a vrátí FALSE.

<?php
function foo() {
     $numargs = func_num_args();
     echo "Number of arguments: $numargs<br>\n";
     if ($numargs >= 2) {
     echo "Second argument is: " . func_get_arg (1) . "<br>\n";
     }
}

foo (1, 2, 3);
?>

func_get_arg() se dá použít ve spojení s func_num_args() a func_get_args() k tvorbě uživatelsky definovaných funkcí, které přijímají proměnný počet argumentů.

Poznámka: Tato funkce byla přidána v PHP 4.

Předcházející | Domů | Další
create_function | Nahoru | func_get_args


func_get_args

(PHP 4 , PHP 5)

func_get_args -- Vrátit pole obsahující seznam argumentů funkce

Popis

array func_get_args ( void )

Vrací pole, jehož každý prvek je odpovídající položkou seznamu argumentů současné uživatelsky definované funkce. func_get_args() při volání mimo definici funkce generuje varování.

<?php
function foo() {
    $numargs = func_num_args();
    echo "Number of arguments: $numargs<br>\n";
    if ($numargs >= 2) {
    echo "Second argument is: " . func_get_arg (1) . "<br>\n";
    }
    $arg_list = func_get_args();
    for ($i = 0; $i < $numargs; $i++) {
    echo "Argument $i is: " . $arg_list[$i] . "<br>\n";
    }
}

foo (1, 2, 3);
?>

func_get_args() se dá použít ve spojení s func_num_args() a func_get_arg() k tvorbě uživatelsky definovaných funkcí, které přijímají proměnny počet argumentů.

Poznámka: Tato funkce byla přidána v PHP 4.

Předcházející | Domů | Další
func_get_arg | Nahoru | func_num_args


func_num_args

(PHP 4 , PHP 5)

func_num_args -- Vrátit počet argumentů předaných funkci

Popis

int func_num_args ( void )

Vrací počet argumentů předaných současné uživatelsky definované funkci. func_num_args() pri volání mimo definici funkce generuje warning. definition.

<?php
function foo() {
    $numargs = func_num_args();
    echo "Number of arguments: $numargs\n";
}

foo (1, 2, 3);    // Prints 'Number of arguments: 3'
?>

func_num_args() se dá použit ve spojení s func_get_arg() a func_get_args() k tvorbě uživatelsky definovaných funkcí, které přijímají proměnný počet argumentů.

Poznámka: Tato funkce byla přidána v PHP 4.

Předcházející | Domů | Další
func_get_args | Nahoru | function_exists


function_exists

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

function_exists -- Vrátit TRUE, pokud je daná funkce definována

Popis

bool function_exists ( string function_name)

Ověří přítomnost funkce function_name v seznamu definovaných funkcí. Pokud daná funkce existuje, vrací TRUE, jinak FALSE.

if (function_exists('imap_open')) {
    echo "IMAP functions are available.<br>\n";
} else {
    echo "IMAP functions are not available.<br>\n";
}

Pozn.: název funkce může existovat i v případě, že je samotná funkce nepoužitelná kvůli konfiguraci nebo volbám zadaným při kompilaci.

Viz také method_exists().

Předcházející | Domů | Další
func_num_args | Nahoru | get_defined_functions


get_defined_functions

(PHP 4 >= 4.0.4, PHP 5)

get_defined_functions -- Returns an array of all defined functions

Description

array get_defined_functions ( void )

This function returns an multidimensional array containing a list of all defined functions, both built-in (internal) and user-defined. The internal functions will be accessible via $arr["internal"], and the user defined ones using $arr["user"] (see example below).

<?php
function myrow($id, $data)
{
    return "<tr><th>$id</th><td>$data</td></tr>\n";
}

$arr = get_defined_functions();

print_r($arr);
?>

Will output something along the lines of:

Array
(
    [internal] => Array
        (
            [0] => zend_version
            [1] => func_num_args
            [2] => func_get_arg
            [3] => func_get_args
            [4] => strlen
            [5] => strcmp
            [6] => strncmp
            ...
            [750] => bcscale
            [751] => bccomp
        )

    [user] => Array
        (
            [0] => myrow
        )

)

See also get_defined_vars() and get_defined_constants().

Předcházející | Domů | Další
function_exists | Nahoru | register_shutdown_function


register_shutdown_function

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

register_shutdown_function -- Zaregistrovat funkci pro provedení při ukončení běhu

Popis

int register_shutdown_function ( string func)

Zaregistruje funkci udanou v func pro provedení po dokončení běhu skriptu.

Běžné problémy:

Jelikož tato funkce nemůže poslat browseru žádný výstup, nebudete ji moci debugovat pomocí příkazů jako print() nebo echo().

Předcházející | Domů | Další
get_defined_functions | Nahoru | register_tick_function


register_tick_function

(PHP 4 >= 4.0.3, PHP 5)

register_tick_function -- Register a function for execution on each tick

Description

void register_tick_function ( callback function [, mixed arg])

Registers the function named by func to be executed when a tick is called. Also, you may pass an array consisting of an object and a method as the func.

Příklad 1. register_tick_function() example

<?php
// using a function as the callback
register_tick_function('my_function', true);

// using an object->method
$object = new my_class();
register_tick_function(array(&$object, 'my_method'), true);
?>

See also declare() and unregister_tick_function().

Předcházející | Domů | Další
register_shutdown_function | Nahoru | unregister_tick_function


unregister_tick_function

(PHP 4 >= 4.0.3, PHP 5)

unregister_tick_function -- De-register a function for execution on each tick

Description

void unregister_tick_function ( string function_name)

De-registers the function named by function_name so it is no longer executed when a tick is called.

Předcházející | Domů | Další
register_tick_function | Nahoru | Gettext


Gettext

Manuál PHP
Předcházející Další

XXXV. Gettext

Úvod

Gettext funkce implementují NLS (Native Language Support) API, které se dá použít k internacionalizaci vašich PHP aplikací. Důkladné vysvětlení těchto funkcí viz dokumentaci Gettext na vašem systému nebo na http://www.gnu.org/software/gettext/manual/index.html.

Požadavky

Aby se daly tyto funkce použít, musíte stáhnout a nainstalovat GNU gettext z http://www.gnu.org/software/gettext/gettext.html.

Instalace

Pro podporu GNU Gettext v PHP musíte přidat volbu --with-gettext[=DIR], kde DIR je instalační adresář Gettext, ve výchozím nastavení to je /usr/local.

Poznámka pro uživatele Win32: Abyste mohli tento modul používat pod Windows, musíte zkopírovat soubor gnu_gettext.dll z adresáře DLL disribučního archivu PHP/Win32 do adresáře SYSTEM32 vašich Windows. (Např.: C:\WINNT\SYSTEM32 nebo C:\WINDOWS\SYSTEM32). Počínaje PHP 4.2.3 se jméno souboru změnilo na libintl-1.dll, který vyžaduje, aby byl zkopírován i soubor iconv.dll.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Obsah
bind_textdomain_codeset -- Specify the character encoding in which the messages from the DOMAIN message catalog will be returned
bindtextdomain -- Nastavit cestu pro doménu
dcgettext -- Změnit doménu pro jediné vyhledání
dcngettext -- Plural version of dcgettext
dgettext -- Změnit současnou doménu
dngettext -- Plural version of dgettext
gettext -- Vyhledat zprávu v současné doméně
ngettext -- Plural version of gettext
textdomain -- Nastavit výchozí doménu

Předcházející | Domů | Další
unregister_tick_function | Nahoru | bind_textdomain_codeset


bind_textdomain_codeset

(PHP 4 >= 4.2.0, PHP 5)

bind_textdomain_codeset -- Specify the character encoding in which the messages from the DOMAIN message catalog will be returned

Description

string bind_textdomain_codeset ( string domain, string codeset)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
Gettext | Nahoru | bindtextdomain


bindtextdomain

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

bindtextdomain -- Nastavit cestu pro doménu

Popis

string bindtextdomain ( string domain, string directory)

Funkce bindtextdomain() nastaví cestu pro doménu.

Předcházející | Domů | Další
bind_textdomain_codeset | Nahoru | dcgettext


dcgettext

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

dcgettext -- Změnit doménu pro jediné vyhledání

Popis

string dcgettext ( string domain, string message, int category)

Tato funkce vám umožní zmenit současnou doménu pro jediné vyhledání zprávy. Umožňuje také specifikovat kategorii.

Předcházející | Domů | Další
bindtextdomain | Nahoru | dcngettext


dcngettext

(PHP 4 >= 4.2.0, PHP 5)

dcngettext -- Plural version of dcgettext

Description

string dcngettext ( string domain, string msgid1, string msgid2, int n, int category)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
dcgettext | Nahoru | dgettext


dgettext

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

dgettext -- Změnit současnou doménu

Popis

string dgettext ( string domain, string message)

Funkce dgettext() umožňuje změnit současnou doménu pro jediné vyhledání zprávy.

Předcházející | Domů | Další
dcngettext | Nahoru | dngettext


dngettext

(PHP 4 >= 4.2.0, PHP 5)

dngettext -- Plural version of dgettext

Description

string dngettext ( string domain, string msgid1, string msgid2, int n)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
dgettext | Nahoru | gettext


gettext

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

gettext -- Vyhledat zprávu v současné doméně

Popis

string gettext ( string message)

Tato funkce vrátí přeložený řetězec, pokud jej najde v překladové tabulce, nebo předaný řetězec, pokud jej nenajde. Jako alias k této funkci můžete použít podtržítko.

Příklad 1. gettext()-check

<?php
// Set language to German
putenv ("LANG=de");

// Specify location of translation tables
bindtextdomain ("myPHPApp", "./locale");

// Choose domain
textdomain ("myPHPApp");

// Print a test message
print (gettext ("Vítejte v mé PHP Aplikaci"));
?>

Předcházející | Domů | Další
dngettext | Nahoru | ngettext


ngettext

(PHP 4 >= 4.2.0, PHP 5)

ngettext -- Plural version of gettext

Description

string ngettext ( string msgid1, string msgid2, int n)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
gettext | Nahoru | textdomain


textdomain

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

textdomain -- Nastavit výchozí doménu

Popis

string textdomain ( string text_domain)

Tato funkce nastaví doménu pro vyhledávání při volání funkce gettext(), obvykle pojmenovanou podle aplikace. Vrátí předchozí výchozí doménu. Při volání bez argumentů vrátí současné nastavení, aniž by jej měnila.

Předcházející | Domů | Další
ngettext | Nahoru | GMP Functions


GMP Functions

Manuál PHP
Předcházející Další

XXXVI. GMP Functions

Úvod

These functions allow you to work with arbitrary-length integers using the GNU MP library.

These functions have been added in PHP 4.0.4.

Poznámka: Most GMP functions accept GMP number arguments, defined as resource below. However, most of these functions will also accept numeric and string arguments, given that it is possible to convert the latter to a number. Also, if there is a faster function that can operate on integer arguments, it would be used instead of the slower function when the supplied arguments are integers. This is done transparently, so the bottom line is that you can use integers in every function that expects GMP number. See also the gmp_init() function.

Varování

If you want to explicitly specify a large integer, specify it as a string. If you don't do that, PHP will interpret the integer-literal first, possibly resulting in loss of precision, even before GMP comes into play.

Poznámka: Toto rozšíření není k dispozici na platformách Windows.

Požadavky

You can download the GMP library from http://www.swox.com/gmp/. This site also has the GMP manual available.

You will need GMP version 2 or better to use these functions. Some functions may require more recent version of the GMP library.

Instalace

In order to have these functions available, you must compile PHP with GMP support by using the --with-gmp option.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

GMP_ROUND_ZERO (integer)

GMP_ROUND_PLUSINF (integer)

GMP_ROUND_MINUSINF (integer)

Příklady

Příklad 1. Factorial function using GMP

<?php
function fact($x)
{
    if ($x <= 1) {
        return 1;
    } else {
        return gmp_mul($x, fact($x-1));
    }
}

echo gmp_strval(fact(1000)) . "\n";
?>

This will calculate factorial of 1000 (pretty big number) very fast.

Viz také

More mathematical functions can be found in the sections BCMath Arbitrary Precision Mathematics Functions and Mathematical Functions.

Obsah
gmp_abs -- Absolute value
gmp_add -- Add numbers
gmp_and -- Logical AND
gmp_clrbit -- Clear bit
gmp_cmp -- Compare numbers
gmp_com -- Calculates one's complement
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 -- Alias of gmp_div_q()
gmp_divexact -- Exact division of numbers
gmp_fact -- Factorial
gmp_gcd -- Calculate GCD
gmp_gcdext -- Calculate GCD and multipliers
gmp_hamdist -- Hamming distance
gmp_init -- Create GMP number
gmp_intval -- Convert GMP number to integer
gmp_invert -- Inverse by modulo
gmp_jacobi -- Jacobi symbol
gmp_legendre -- Legendre symbol
gmp_mod -- Modulo operation
gmp_mul -- Multiply numbers
gmp_neg -- Negate number
gmp_or -- Logical OR
gmp_perfect_square -- Perfect square check
gmp_popcount -- Population count
gmp_pow -- Raise number into power
gmp_powm -- Raise number into power with modulo
gmp_prob_prime -- Check if number is "probably prime"
gmp_random -- Random number
gmp_scan0 -- Scan for 0
gmp_scan1 -- Scan for 1
gmp_setbit -- Set bit
gmp_sign -- Sign of number
gmp_sqrt -- Calculate square root
gmp_sqrtrem -- Square root with remainder
gmp_strval -- Convert GMP number to string
gmp_sub -- Subtract numbers
gmp_xor -- Logical XOR

Předcházející | Domů | Další
textdomain | Nahoru | gmp_abs


gmp_abs

(PHP 4 >= 4.0.4, PHP 5)

gmp_abs -- Absolute value

Description

resource gmp_abs ( resource a)

Returns absolute value of a.

Příklad 1. gmp_abs() example

<?php
$abs1 = gmp_abs("274982683358");
$abs2 = gmp_abs("-274982683358");

echo gmp_strval($abs1) . "\n";
echo gmp_strval($abs2) . "\n";
?>

The printout of the above program will be:

274982683358
274982683358

Předcházející | Domů | Další
GMP Functions | Nahoru | gmp_add


gmp_add

(PHP 4 >= 4.0.4, PHP 5)

gmp_add -- Add numbers

Description

resource gmp_add ( resource a, resource b)

Add two GMP numbers. The result will be a GMP number representing the sum of the arguments.

Příklad 1. gmp_add() example

<?php
$sum = gmp_add("123456789012345", "76543210987655");
echo gmp_strval($sum) . "\n";
?>

The printout of the above program will be:

200000000000000

Předcházející | Domů | Další
gmp_abs | Nahoru | gmp_and


gmp_and

(PHP 4 >= 4.0.4, PHP 5)

gmp_and -- Logical AND

Description

resource gmp_and ( resource a, resource b)

Calculates logical AND of two GMP numbers.

Příklad 1. gmp_and() example

<?php
$and1 = gmp_and("0xfffffffff4", "0x4");
$and2 = gmp_and("0xfffffffff4", "0x8");
echo gmp_strval($and1) . "\n";
echo gmp_strval($and2) . "\n";
?>

The printout of the above program will be:

4
0

Předcházející | Domů | Další
gmp_add | Nahoru | gmp_clrbit


gmp_clrbit

(PHP 4 >= 4.0.4, PHP 5)

gmp_clrbit -- Clear bit

Description

void gmp_clrbit ( resource &a, int index)

Clears (sets to 0) bit index in a. The index starts at 0.

Poznámka: Unlike most of the other GMP functions, gmp_clrbit() must be called with a GMP resource that already exists (using gmp_init() for example). One will not be automatically created.

Příklad 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";
?>

The printout of the above program will be:

254

See also gmp_setbit().

Předcházející | Domů | Další
gmp_and | Nahoru | gmp_cmp


gmp_cmp

(PHP 4 >= 4.0.4, PHP 5)

gmp_cmp -- Compare numbers

Description

int gmp_cmp ( resource a, resource b)

Returns a positive value if a > b, zero if a = b and a negative value if a < b.

Příklad 1. gmp_cmp() example

<?php
$cmp1 = gmp_cmp("1234", "1000"); // greater than
$cmp2 = gmp_cmp("1000", "1234"); // less than
$cmp3 = gmp_cmp("1234", "1234"); // equal to

echo "$cmp1 $cmp2 $cmp3\n";
?>

The printout of the above program will be:

1 -1 0

Předcházející | Domů | Další
gmp_clrbit | Nahoru | gmp_com


gmp_com

(PHP 4 >= 4.0.4, PHP 5)

gmp_com -- Calculates one's complement

Description

resource gmp_com ( resource a)

Returns the one's complement of a.

Příklad 1. gmp_com() example

<?php
$com = gmp_com("1234");
echo gmp_strval($com) . "\n";
?>

The printout of the above program will be:

-1235

Předcházející | Domů | Další
gmp_cmp | Nahoru | gmp_div_q


gmp_div_q

(PHP 4 >= 4.0.4, PHP 5)

gmp_div_q -- Divide numbers

Description

resource gmp_div_q ( resource a, resource b [, int round])

Divides a by b and returns the integer result. The result rounding is defined by the round, which can have the following values:

  • GMP_ROUND_ZERO: The result is truncated towards 0.

  • GMP_ROUND_PLUSINF: The result is rounded towards +infinity.

  • GMP_ROUND_MINUSINF: The result is rounded towards -infinity.

This function can also be called as gmp_div().

Příklad 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";
?>

The printout of the above program will be:

20
0
1
0
1

See also gmp_div_r(), gmp_div_qr()

Předcházející | Domů | Další
gmp_com | Nahoru | gmp_div_qr


gmp_div_qr

(PHP 4 >= 4.0.4, PHP 5)

gmp_div_qr -- Divide numbers and get quotient and remainder

Description

array gmp_div_qr ( resource n, resource d [, int round])

The function divides n by d and returns array, with the first element being [n/d] (the integer result of the division) and the second being (n - [n/d] * d) (the remainder of the division).

See the gmp_div_q() function for description of the round argument.

Příklad 1. Division of GMP numbers

<?php
$a = gmp_init("0x41682179fbf5");
$res = gmp_div_qr($a, "0xDEFE75");
printf("Result is: q - %s, r - %s",
       gmp_strval($res[0]), gmp_strval($res[1]));
?>

See also gmp_div_q(), gmp_div_r().

Předcházející | Domů | Další
gmp_div_q | Nahoru | gmp_div_r


gmp_div_r

(PHP 4 >= 4.0.4, PHP 5)

gmp_div_r -- Remainder of the division of numbers

Description

resource gmp_div_r ( resource n, resource d [, int round])

Calculates remainder of the integer division of n by d. The remainder has the sign of the n argument, if not zero.

Příklad 1. gmp_div_r() example

<?php
$div = gmp_div_r("105", "20");
echo gmp_strval($div) . "\n";
?>

The printout of the above program will be:

5

See the gmp_div_q() function for description of the round argument.

See also gmp_div_q(), gmp_div_qr()

Předcházející | Domů | Další
gmp_div_qr | Nahoru | gmp_div


gmp_div

gmp_div -- Alias of gmp_div_q()

Description

This function is an alias of gmp_div_q().

Předcházející | Domů | Další
gmp_div_r | Nahoru | gmp_divexact


gmp_divexact

(PHP 4 >= 4.0.4, PHP 5)

gmp_divexact -- Exact division of numbers

Description

resource gmp_divexact ( resource n, resource d)

Divides n by d, using fast "exact division" algorithm. This function produces correct results only when it is known in advance that d divides n.

Příklad 1. gmp_divexact() example

<?php
$div1 = gmp_divexact("10", "2");
echo gmp_strval($div1) . "\n";

$div2 = gmp_divexact("10", "3"); // bogus result
echo gmp_strval($div2) . "\n";
?>

The printout of the above program will be:

5
2863311534

Předcházející | Domů | Další
gmp_div | Nahoru | gmp_fact


gmp_fact

(PHP 4 >= 4.0.4, PHP 5)

gmp_fact -- Factorial

Description

resource gmp_fact ( int a)

Calculates factorial (a!) of a.

Příklad 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";
?>

The printout of the above program will be:

120
30414093201713378043612608166064768844377641568960512000000000000

Předcházející | Domů | Další
gmp_divexact | Nahoru | gmp_gcd


gmp_gcd

(PHP 4 >= 4.0.4, PHP 5)

gmp_gcd -- Calculate GCD

Description

resource gmp_gcd ( resource a, resource b)

Calculate greatest common divisor of a and b. The result is always positive even if either of, or both, input operands are negative.

Příklad 1. gmp_gcd() example

<?php
$gcd = gmp_gcd("12", "21");
echo gmp_strval($gcd) . "\n";
?>

The printout of the above program will be:

3

Předcházející | Domů | Další
gmp_fact | Nahoru | gmp_gcdext


gmp_gcdext

(PHP 4 >= 4.0.4, PHP 5)

gmp_gcdext -- Calculate GCD and multipliers

Description

array gmp_gcdext ( resource a, resource b)

Calculates g, s, and t, such that a*s + b*t = g = gcd(a,b), where gcd is the greatest common divisor. Returns an array with respective elements g, s and t.

This function can be used to solve linear Diophantine equations in two variables. These are equations that allow only integer solutions and have the form: a*x + b*y = c. For more information, go to the "Diophantine Equation" page at MathWorld

Příklad 1. Solving a linear Diophantine equation

<?php
// Solve the equation a*s + b*t = g
// where a = 12, b = 21, g = gcd(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 = "Solution: %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 "Error while solving the equation\n";
}

// output: Solution: 12*2 + 21*-1 = 3
?>

Předcházející | Domů | Další
gmp_gcd | Nahoru | gmp_hamdist


gmp_hamdist

(PHP 4 >= 4.0.4, PHP 5)

gmp_hamdist -- Hamming distance

Description

int gmp_hamdist ( resource a, resource b)

Returns the hamming distance between a and b. Both operands should be non-negative.

Příklad 1. gmp_hamdist() example

<?php
$ham1 = gmp_init("1001010011", 2);
$ham2 = gmp_init("1011111100", 2);
echo gmp_hamdist($ham1, $ham2) . "\n";

/* hamdist is equivilent to: */
echo gmp_popcount(gmp_xor($ham1, $ham2)) . "\n";
?>

The printout of the above program will be:

6
6

See also gmp_popcount(), gmp_xor()

Předcházející | Domů | Další
gmp_gcdext | Nahoru | gmp_init


gmp_init

(PHP 4 >= 4.0.4, PHP 5)

gmp_init -- Create GMP number

Description

resource gmp_init ( mixed number)

Creates a GMP number from an integer or string. String representation can be decimal or hexadecimal. In the latter case, the string should start with 0x.

Příklad 1. Creating GMP number

<?php
$a = gmp_init(123456);
$b = gmp_init("0xFFFFDEBACDFEDF7200");
?>

Poznámka: It is not necessary to call this function if you want to use integer or string in place of GMP number in GMP functions, like gmp_add(). Function arguments are automatically converted to GMP numbers, if such conversion is possible and needed, using the same rules as gmp_init().

Předcházející | Domů | Další
gmp_hamdist | Nahoru | gmp_intval


gmp_intval

(PHP 4 >= 4.0.4, PHP 5)

gmp_intval -- Convert GMP number to integer

Description

int gmp_intval ( resource gmpnumber)

This function allows to convert GMP number to integer.

Varování

This function returns a useful result only if the number actually fits the PHP integer (i.e., signed long type). If you want just to print the GMP number, use gmp_strval().

Příklad 1. gmp_intval() example

<?php
// displays correct result
echo gmp_intval("2147483647") . "\n";

// displays wrong result, above PHP integer limit
echo gmp_intval("2147483648") . "\n";

// displays correct result
echo gmp_strval("2147483648") . "\n";
?>

The printout of the above program will be:

2147483647
2147483647
2147483648

Předcházející | Domů | Další
gmp_init | Nahoru | gmp_invert


gmp_invert

(PHP 4 >= 4.0.4, PHP 5)

gmp_invert -- Inverse by modulo

Description

resource gmp_invert ( resource a, resource b)

Computes the inverse of a modulo b. Returns FALSE if an inverse does not exist.

Příklad 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";
?>

The printout of the above program will be:

9

Předcházející | Domů | Další
gmp_intval | Nahoru | gmp_jacobi


gmp_jacobi

(PHP 4 >= 4.0.4, PHP 5)

gmp_jacobi -- Jacobi symbol

Description

int gmp_jacobi ( resource a, resource p)

Computes Jacobi symbol of a and p. p should be odd and must be positive.

Příklad 1. gmp_jacobi() example

<?php
echo gmp_jacobi("1", "3") . "\n";
echo gmp_jacobi("2", "3") . "\n";
?>

The printout of the above program will be:

1
0

Předcházející | Domů | Další
gmp_invert | Nahoru | gmp_legendre


gmp_legendre

(PHP 4 >= 4.0.4, PHP 5)

gmp_legendre -- Legendre symbol

Description

int gmp_legendre ( resource a, resource p)

Compute the Legendre symbol of a and p. p should be odd and must be positive.

Příklad 1. gmp_legendre() example

<?php
echo gmp_legendre("1", "3") . "\n";
echo gmp_legendre("2", "3") . "\n";
?>

The printout of the above program will be:

1
0

Předcházející | Domů | Další
gmp_jacobi | Nahoru | gmp_mod


gmp_mod

(PHP 4 >= 4.0.4, PHP 5)

gmp_mod -- Modulo operation

Description

resource gmp_mod ( resource n, resource d)

Calculates n modulo d. The result is always non-negative, the sign of d is ignored.

Příklad 1. gmp_mod() example

<?php
$mod = gmp_mod("8", "3");
echo gmp_strval($mod) . "\n";
?>

The printout of the above program will be:

2

Předcházející | Domů | Další
gmp_legendre | Nahoru | gmp_mul


gmp_mul

(PHP 4 >= 4.0.4, PHP 5)

gmp_mul -- Multiply numbers

Description

resource gmp_mul ( resource a, resource b)

Multiplies a by b and returns the result.

Příklad 1. gmp_mul() example

<?php
$mul = gmp_mul("12345678", "2000");
echo gmp_strval($mul) . "\n";
?>

The printout of the above program will be:

24691356000

Předcházející | Domů | Další
gmp_mod | Nahoru | gmp_neg


gmp_neg

(PHP 4 >= 4.0.4, PHP 5)

gmp_neg -- Negate number

Description

resource gmp_neg ( resource a)

Returns -a.

Příklad 1. gmp_neg() example

<?php
$neg1 = gmp_neg("1"); //
echo gmp_strval($neg1) . "\n";
$neg2 = gmp_neg("-1"); //
echo gmp_strval($neg2) . "\n";
?>

The printout of the above program will be:

-1
1

Předcházející | Domů | Další
gmp_mul | Nahoru | gmp_or


gmp_or

(PHP 4 >= 4.0.4, PHP 5)

gmp_or -- Logical OR

Description

resource gmp_or ( resource a, resource b)

Calculates logical inclusive OR of two GMP numbers.

Příklad 1. gmp_or() example

<?php
$or1 = gmp_or("0xfffffff2", "4");
echo gmp_strval($or1, 16) . "\n";
$or2 = gmp_or("0xfffffff2", "2");
echo gmp_strval($or2, 16) . "\n";
?>

The printout of the above program will be:

fffffff6
fffffff2

Předcházející | Domů | Další
gmp_neg | Nahoru | gmp_perfect_square


gmp_perfect_square

(PHP 4 >= 4.0.4, PHP 5)

gmp_perfect_square -- Perfect square check

Description

bool gmp_perfect_square ( resource a)

Returns TRUE if a is a perfect square, FALSE otherwise.

Příklad 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"));
?>

The printout of the above program will be:

bool(true)
bool(false)
bool(true)

See also: gmp_sqrt(), gmp_sqrtrm().

Předcházející | Domů | Další
gmp_or | Nahoru | gmp_popcount


gmp_popcount

(PHP 4 >= 4.0.4, PHP 5)

gmp_popcount -- Population count

Description

int gmp_popcount ( resource a)

Return the population count of a.

Příklad 1. gmp_popcount() example

<?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";
?>

The printout of the above program will be:

3
7

Předcházející | Domů | Další
gmp_perfect_square | Nahoru | gmp_pow


gmp_pow

(PHP 4 >= 4.0.4, PHP 5)

gmp_pow -- Raise number into power

Description

resource gmp_pow ( resource base, int exp)

Raise base into power exp. The case of 0^0 yields 1. exp cannot be negative.

Příklad 1. gmp_pow() example

<?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); // Negative exp, generates warning
echo gmp_strval($pow3) . "\n";
?>

The printout of the above program will be:

2147483648
1

Předcházející | Domů | Další
gmp_popcount | Nahoru | gmp_powm


gmp_powm

(PHP 4 >= 4.0.4, PHP 5)

gmp_powm -- Raise number into power with modulo

Description

resource gmp_powm ( resource base, resource exp, resource mod)

Calculate (base raised into power exp) modulo mod. If exp is negative, result is undefined.

Příklad 1. gmp_powm() example

<?php
$pow1 = gmp_powm("2", "31", "2147483649");
echo gmp_strval($pow1) . "\n";
?>

The printout of the above program will be:

2147483648

Předcházející | Domů | Další
gmp_pow | Nahoru | gmp_prob_prime


gmp_prob_prime

(PHP 4 >= 4.0.4, PHP 5)

gmp_prob_prime -- Check if number is "probably prime"

Description

int gmp_prob_prime ( resource a [, int reps])

If this function returns 0, a is definitely not prime. If it returns 1, then a is "probably" prime. If it returns 2, then a is surely prime. Reasonable values of reps vary from 5 to 10 (default being 10); a higher value lowers the probability for a non-prime to pass as a "probable" prime.

The function uses Miller-Rabin's probabilistic test.

Příklad 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";
?>

The printout of the above program will be:

0
1
2

Předcházející | Domů | Další
gmp_powm | Nahoru | gmp_random


gmp_random

(PHP 4 >= 4.0.4, PHP 5)

gmp_random -- Random number

Description

resource gmp_random ( int limiter)

Generate a random number. The number will be between zero and 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 16 or 32, but this is not guaranteed.

Příklad 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";
?>

The printout of the above program might be:

1915834968
8642564075890328087

Předcházející | Domů | Další
gmp_prob_prime | Nahoru | gmp_scan0


gmp_scan0

(PHP 4 >= 4.0.4, PHP 5)

gmp_scan0 -- Scan for 0

Description

int gmp_scan0 ( resource a, int start)

Scans a, starting with bit start, towards more significant bits, until the first clear bit is found. Returns the index of the found bit. The index starts from 0.

Příklad 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";
?>

The printout of the above program will be:

3
7

Předcházející | Domů | Další
gmp_random | Nahoru | gmp_scan1


gmp_scan1

(PHP 4 >= 4.0.4, PHP 5)

gmp_scan1 -- Scan for 1

Description

int gmp_scan1 ( resource a, int start)

Scans a, starting with bit start, towards more significant bits, until the first set bit is found. Returns the index of the found bit. If no set bit is found, -1 is returned.

Příklad 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";
?>

The printout of the above program will be:

3
9

Předcházející | Domů | Další
gmp_scan0 | Nahoru | gmp_setbit


gmp_setbit

(PHP 4 >= 4.0.4, PHP 5)

gmp_setbit -- Set bit

Description

void gmp_setbit ( resource &a, int index [, bool set_clear])

Sets bit index in a. set_clear defines if the bit is set to 0 or 1. By default the bit is set to 1. Index starts at 0.

Poznámka: Unlike most of the other GMP functions, gmp_setbit() must be called with a GMP resource that already exists (using gmp_init() for example). One will not be automatically created.

Příklad 1. gmp_setbit() example

<?php
$a = gmp_init("0xfd");
gmp_setbit($a, 1); // index starts at 0
echo gmp_strval($a) . "\n";
?>

The printout of the above program will be:

255

See also gmp_clrbit().

Předcházející | Domů | Další
gmp_scan1 | Nahoru | gmp_sign


gmp_sign

(PHP 4 >= 4.0.4, PHP 5)

gmp_sign -- Sign of number

Description

int gmp_sign ( resource a)

Returns 1 if a is positive, -1 if a is negative, and 0 if a is zero.

Příklad 1. gmp_sign() example

<?php
// positive
echo gmp_sign("500") . "\n";

// negative
echo gmp_sign("-500") . "\n";

// zero
echo gmp_sign("0") . "\n";
?>

The printout of the above program will be:

1
-1
0

Předcházející | Domů | Další
gmp_setbit | Nahoru | gmp_sqrt


gmp_sqrt

(PHP 4 >= 4.0.4, PHP 5)

gmp_sqrt -- Calculate square root

Description

resource gmp_sqrt ( resource a)

Calculates square root of a and returns the integer portion of the result.

Příklad 1. gmp_sqrt() example

<?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";
?>

The printout of the above program will be:

3
2
1234567890

Předcházející | Domů | Další
gmp_sign | Nahoru | gmp_sqrtrem


gmp_sqrtrem

(PHP 4 >= 4.0.4, PHP 5)

gmp_sqrtrem -- Square root with remainder

Description

array gmp_sqrtrem ( resource a)

Returns array where first element is the integer square root of a (see also gmp_sqrt()), and the second is the remainder (i.e., the difference between a and the first element squared).

Příklad 1. gmp_sqrtrem() example

<?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";
?>

The printout of the above program will be:

3, 0
2, 3
1024, 0

Předcházející | Domů | Další
gmp_sqrt | Nahoru | gmp_strval


gmp_strval

(PHP 4 >= 4.0.4, PHP 5)

gmp_strval -- Convert GMP number to string

Description

string gmp_strval ( resource gmpnumber [, int base])

Convert GMP number to string representation in base base. The default base is 10. Allowed values for the base are from 2 to 36.

Příklad 1. Converting a GMP number to a string

<?php
$a = gmp_init("0x41682179fbf5");
printf("Decimal: %s, 36-based: %s", gmp_strval($a), gmp_strval($a,36));
?>

Předcházející | Domů | Další
gmp_sqrtrem | Nahoru | gmp_sub


gmp_sub

(PHP 4 >= 4.0.4, PHP 5)

gmp_sub -- Subtract numbers

Description

resource gmp_sub ( resource a, resource b)

Subtracts b from a and returns the result.

Příklad 1. gmp_sub() example

<?php
$sub = gmp_sub("281474976710656", "4294967296"); // 2^48 - 2^32
echo gmp_strval($sub) . "\n";
?>

The printout of the above program will be:

281470681743360

Předcházející | Domů | Další
gmp_strval | Nahoru | gmp_xor


gmp_xor

(PHP 4 >= 4.0.4, PHP 5)

gmp_xor -- Logical XOR

Description

resource gmp_xor ( resource a, resource b)

Calculates logical exclusive OR (XOR) of two GMP numbers.

Příklad 1. gmp_xor() example

<?php
$xor1 = gmp_init("1101101110011101", 2);
$xor2 = gmp_init("0110011001011001", 2);

$xor3 = gmp_xor($xor1, $xor2);

echo gmp_strval($xor3, 2) . "\n";
?>

The printout of the above program will be:

1011110111000100

Předcházející | Domů | Další
gmp_sub | Nahoru | HTTP funkce


HTTP funkce

Manuál PHP
Předcházející Další

XXXVII. HTTP funkce

Úvod

Tyto funkce vám umožňují manipulovat výstupem posílaným zpět browseru přímo na úrovni HTTP protokolu.

Požadavky

Tyto funkce jsou k dispozici jako součást standardního modulu, který je vždy dostupný.

Instalace

K používání těchto funkcí není třeba žádná instalace, jsou součástí jádra PHP.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Obsah
header -- Poslat HTTP hlavičku
headers_list -- Returns a list of response headers sent (or ready to send)
headers_sent -- Vrátit TRUE, pokud byly odeslány hlavičky
setcookie -- Poslat cookie
setrawcookie -- Send a cookie without urlencoding the cookie value

Předcházející | Domů | Další
gmp_xor | Nahoru | header


header

(PHP 3, PHP 4 , PHP 5)

header -- Poslat HTTP hlavičku

Popis

int header ( string string)

Funkce header() se používá na začátku HTML souboru k odeslání HTTP hlaviček. Více informací o HTTP hlavičkách viz Specifikace HTTP 1.1. Poznámka: Pamatujte, že funkce header() musí být volána dříve než se odešle jakýkoliv normální výstup, ať už normálními HTML tagy, nebo z PHP. Velmi obvyklou chybou je načítat kód pomocí include() nebo auto_prepend a mít v tomto kódu prázdné řádky, které způsobí odeslání výstupu před voláním funkce header().

Existují dva zvláštní případy volání funkce header(). Prvním je hlavička "Location". Ta nejenže odešle hlavičku browseru, ale navíc i vrátí Apachi stavový kód REDIRECT. Z pohledu autora skriptu by to nemělo být důležité, ale je to důležité pro lidi, kteří rozumí vnitřnostem Apache.

header ("Location: http://www.php.net"); /* Přesměrujeme browser
                                            na web site PHP */
exit;                 /* Pojistíme si, že se další kód nevykoná po
                         přesměrování. */

Druhým zvláštním případem jsou všechny hlavičky začínající řetězcem "HTTP/" (velikost písmen nehraje roli). Například, pokud direktiva ErrorDocument 404 vašeho Apache ukazuje na PHP skript, nebylo by od věci, kdyby skutečně generoval 404. První věcí, kterou byste v tomto skriptu měli udělat tudíz bude:

header ("HTTP/1.0 404 Not Found");

PHP skripty často generují dynamické HTML, které nesmí být cachováno uživatelským browserem, ani žýdnými proxynami mezi serverem a uživatelským browserem. Mnoho proxyn a klientů se dá donutit k vypnutí cachování s pomocí

header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");    // datum v minulosti
header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
                                                      // vždy upraven
header ("Cache-Control: no-cache, must-revalidate");  // HTTP/1.1
header ("Pragma: no-cache");                          // HTTP/1.0

Viz také headers_sent()

Předcházející | Domů | Další
HTTP funkce | Nahoru | headers_list


headers_list

(PHP 5)

headers_list -- Returns a list of response headers sent (or ready to send)

Description

array headers_list ( void )

headers_list() will return a numerically indexed array of headers to be sent to the browser / client. To determine whether or not these headers have been sent yet, use headers_sent().

Příklad 1. Examples using headers_list()

<?php

/* setcookie() will add a response header on its own */
setcookie('foo', 'bar');

/* Define a custom response header
   This will be ignored by most clients */
header("X-Sample-Test: foo");

/* Specify plain text content in our response */
header('Content-type: text/plain');

/* What headers are going to be sent? */
var_dump(headers_list());

?>

this will output :

array(4) {
  [0]=>
  string(29) "X-Powered-By: PHP/5.0.0"
  [1]=>
  string(19) "Set-Cookie: foo=bar"
  [2]=>
  string(18) "X-Sample-Test: foo"
  [3]=>
  string(24) "Content-type: text/plain"
}

See Also:
headers_sent(),
header(), and
setcookie().

Předcházející | Domů | Další
header | Nahoru | headers_sent


headers_sent

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

headers_sent -- Vrátit TRUE, pokud byly odeslány hlavičky

Popis

boolean headers_sent ( void)

Tato funkce vrátí TRUE, pokud už byly HTTP hlavičky odeslány, jinak FALSE.

Viz také header()

Předcházející | Domů | Další
headers_list | Nahoru | setcookie


setcookie

(PHP 3, PHP 4 , PHP 5)

setcookie -- Poslat cookie

Popis

bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])

setcookie() definuje cookie, která se pošle spolu s ostatními HTTP hlavičkami. Podobně jako ostatní hlavičky, cookies se musí odeslat před jakýmkoliv výstupem vašeho skriptu (jedná se o omezení protokolu). Je tedy třeba, abyste všechna volání této funkce umístili před jakýkoliv výstup, včetně značek <html> a <head> a také před jakékoliv bílé znaky. Když je při volání této funkce už něco na výstupu, setcookie() neuspěje a vrátí FALSE. Když setcookie() proběhne v pořádku, vrátí TRUE. To však neříká nic o tom, zda byla cookie přijata klientem.

Poznámka: V PHP 4 lze k poslání výstupu před voláním této funkce použít output buffering, ovšem s tou režií, že všechen výstup pro prohlížeč bude pozdržen na serveru, dokud ho nepošlete. Lze to zařídit voláním funkcí ob_start() a ob_end_flush() nebo nastavením konfigurační direktivy output_buffering v php.ini nebo konfiguračních souborech serveru.

Všechny argumenty kromě argumentu name jsou nepovinné. Pokud je přítomný pouze argument name, u klienta se smaže cookie tohoto jména. Kterýkoliv argument můžete také nahradit prázdným řetězcem (""), čímž tento argument přeskočíte. Argumenty expire a secure jsou celočíselné a nedají se přeskočit prázdným řetězcem. Místo toho použijte nulu (0). Argument expire je běžné Unixové celočíselné vyjádření času, jak je vrací funkce time() či mktime(). Argument secure indikuje, že by se tato cookie měla přenášet pouze po zabezpečeném HTTPS spojení.

Běžné zádrhele:

  • Cookies jsou přístupné až při dalším načtení stránky, na které přístupné být mají.

  • Cookies se musí mazat se stejnými parametry, se kterými byly odeslány.

V PHP 3 se vícenásobná volání setcookie() v jednom skriptu provedou v opačném pořadí. Pokud se pokoušíte smazat jeden cookie pře odesláním jiného, měli byste umístit vložení před smazání. V PHP 4 se vícenásobná volání setcookie() provedou v tom pořadí, jak jsou volána.

Několik příkladů, jak posílat cookies:

Příklad 1. Ukázky odeslání cookies pomocí setcookie()

setcookie ("TestCookie", "Zkušební hodnota");
setcookie ("TestCookie", $value,time()+3600);  /* vyprší za hodinu */
setcookie ("TestCookie", $value,time()+3600, "/~rasmus/", ".utoronto.ca", 1);

Následují příklady mazání cookies z předchozí ukázky:

Příklad 2. Ukázky mazání cookies pomocí setcookie()

setcookie ("TestCookie");
// nastaví dobu vypršení na čas před hodinou
setcookie ("TestCookie", "", time() - 3600);
setcookie ("TestCookie", "", time() - 3600, "/~rasmus/", ".utoronto.ca", 1);
Při mazání cookie byste se měli ujistit, že je doba vypršení v minulosti, čímž se v browseru zapne mechanismus odstranění cookie.

Všimněte si, že hodnotová část cookie se při odeslání cookie automaticky url-zakóduje, a při přijetí se automaticky dekóduje a přiřadí proměnné stejného jména, jako je jméno cookie. Pokud chcete vidět obsah našeho zkušebního cookie, použijte některý z následujících příkladů:

echo $TestCookie;
echo $HTTP_COOKIE_VARS["TestCookie"];

Cookies obsahující pole můžete také odeslat tak, že za název cookie napíšete hranaté závorky. Účinkem tohoto je odeslání tolika cookies, kolik má vaše pole prvků, ale když váš skript tyto cookies přijme, hodnoty se umístí v poli stejného jména, jako jsou vaše cookies:

setcookie ("cookie[three]", "cookiethree");
setcookie ("cookie[two]", "cookietwo");
setcookie ("cookie[one]", "cookieone");
if (isset ($cookie)) {
    while (list ($name, $value) = each ($cookie)) {
        echo "$name == $value<br>\n";
    }
}

Více informací o cookies viz specifikace cookies na http://www.netscape.com/newsref/std/cookie_spec.html.

Microsoft Internet Explorer 4 se Service Packem 1 zpracovává chybně cookies, které mají nastavený argument path.

Netscape Communicator 4.05 a Microsoft Internet Explorer 3.x zřejmě nezpracují cookies správně, pokud nejsou nastaveny argumenty path a time.

Předcházející | Domů | Další
headers_sent | Nahoru | setrawcookie


setrawcookie

(PHP 5)

setrawcookie -- Send a cookie without urlencoding the cookie value

Description

bool setrawcookie ( string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])

setrawcookie() is exactly the same as setcookie() except that the cookie value will not automaticall be urlencoded when send to the browser.

See also header(), setcookie() and the cookies section.

Předcházející | Domů | Další
setcookie | Nahoru | Hyperwave Functions


Hyperwave Functions

Manuál PHP
Předcházející Další

XXXVIII. Hyperwave Functions

Úvod

Hyperwave has been developed at IICM in Graz. It started with the name Hyper-G and changed to Hyperwave when it was commercialised (in 1996).

Hyperwave is not free software. The current version, 5.5 is available at http://www.hyperwave.com/. A time limited version can be ordered for free (30 days).

See also the Hyperwave API module.

Hyperwave is an information system similar to a database (HIS, Hyperwave Information Server). Its focus is the storage and management of documents. A document can be any possible piece of data that may as well be stored in file. Each document is accompanied by its object record. The object record contains meta data for the document. The meta data is a list of attributes which can be extended by the user. Certain attributes are always set by the Hyperwave server, other may be modified by the user. An attribute is a name/value pair of the form name=value. The complete object record contains as many of those pairs as the user likes. The name of an attribute does not have to be unique, e.g. a title may appear several times within an object record. This makes sense if you want to specify a title in several languages. In such a case there is a convention, that each title value is preceded by the two letter language abbreviation followed by a colon, e.g. 'en:Title in English' or 'ge:Titel in deutsch'. Other attributes like a description or keywords are potential candidates. You may also replace the language abbreviation by any other string as long as it separated by colon from the rest of the attribute value.

Each object record has native a string representation with each name/value pair separated by a newline. The Hyperwave extension also knows a second representation which is an associated array with the attribute name being the key. Multilingual attribute values itself form another associated array with the key being the language abbreviation. Actually any multiple attribute forms an associated array with the string left to the colon in the attribute value being the key. (This is not fully implemented. Only the attributes Title, Description and Keyword are treated properly yet.)

Besides the documents, all hyper links contained in a document are stored as object records as well. Hyper links which are in a document will be removed from it and stored as individual objects, when the document is inserted into the database. The object record of the link contains information about where it starts and where it ends. In order to gain the original document you will have to retrieve the plain document without the links and the list of links and reinsert them. The functions hw_pipedocument() and hw_gettext() do this for you. The advantage of separating links from the document is obvious. Once a document to which a link is pointing to changes its name, the link can easily be modified accordingly. The document containing the link is not affected at all. You may even add a link to a document without modifying the document itself.

Saying that hw_pipedocument() and hw_gettext() do the link insertion automatically is not as simple as it sounds. Inserting links implies a certain hierarchy of the documents. On a web server this is given by the file system, but Hyperwave has its own hierarchy and names do not reflect the position of an object in that hierarchy. Therefore creation of links first of all requires a mapping from the Hyperwave hierarchy and namespace into a web hierarchy respective web namespace. The fundamental difference between Hyperwave and the web is the clear distinction between names and hierarchy in Hyperwave. The name does not contain any information about the objects position in the hierarchy. In the web the name also contains the information on where the object is located in the hierarchy. This leads to two possibles ways of mapping. Either the Hyperwave hierarchy and name of the Hyperwave object is reflected in the URL or the name only. To make things simple the second approach is used. Hyperwave object with name my_object is mapped to http://host/my_object disregarding where it resides in the Hyperwave hierarchy. An object with name parent/my_object could be the child of my_object in the Hyperwave hierarchy, though in a web namespace it appears to be just the opposite and the user might get confused. This can only be prevented by selecting reasonable object names.

Having made this decision a second problem arises. How do you involve PHP? The URL http://host/my_object will not call any PHP script unless you tell your web server to rewrite it to e.g. http://host/php_script/my_object and the script php_script evaluates the $PATH_INFO variable and retrieves the object with name my_object from the Hyperwave server. Their is just one little drawback which can be fixed easily. Rewriting any URL would not allow any access to other document on the web server. A PHP script for searching in the Hyperwave server would be impossible. Therefore you will need at least a second rewriting rule to exclude certain URLs like all e.g. starting with http://host/Hyperwave This is basically sharing of a namespace by the web and Hyperwave server.

Based on the above mechanism links are insert into documents.

It gets more complicated if PHP is not run as a server module or CGI script but as a standalone application e.g. to dump the content of the Hyperwave server on a CD-ROM. In such a case it makes sense to retain the Hyperwave hierarchy and map in onto the file system. This conflicts with the object names if they reflect its own hierarchy (e.g. by choosing names including '/'). Therefore '/' has to be replaced by another character, e.g. '_'.

The network protocol to communicate with the Hyperwave server is called HG-CSP (Hyper-G Client/Server Protocol). It is based on messages to initiate certain actions, e.g. get object record. In early versions of the Hyperwave Server two native clients (Harmony, Amadeus) were provided for communication with the server. Those two disappeared when Hyperwave was commercialised. As a replacement a so called wavemaster was provided. The wavemaster is like a protocol converter from HTTP to HG-CSP. The idea is to do all the administration of the database and visualisation of documents by a web interface. The wavemaster implements a set of placeholders for certain actions to customise the interface. This set of placeholders is called the PLACE Language. PLACE lacks a lot of features of a real programming language and any extension to it only enlarges the list of placeholders. This has led to the use of JavaScript which IMO does not make life easier.

Adding Hyperwave support to PHP should fill in the gap of a missing programming language for interface customisation. It implements all the messages as defined by the HG-CSP but also provides more powerful commands to e.g. retrieve complete documents.

Hyperwave has its own terminology to name certain pieces of information. This has widely been taken over and extended. Almost all functions operate on one of the following data types.

  • object ID: An unique integer value for each object in the Hyperwave server. It is also one of the attributes of the object record (ObjectID). Object ids are often used as an input parameter to specify an object.

  • object record: A string with attribute-value pairs of the form attribute=value. The pairs are separated by a carriage return from each other. An object record can easily be converted into an object array with hw_object2array(). Several functions return object records. The names of those functions end with obj.

  • object array: An associative array with all attributes of an object. The keys are the attribute names. If an attribute occurs more than once in an object record it will result in another indexed or associative array. Attributes which are language depended (like the title, keyword, description) will form an associative array with the keys set to the language abbreviations. All other multiple attributes will form an indexed array. PHP functions never return object arrays.

  • hw_document: This is a complete new data type which holds the actual document, e.g. HTML, PDF etc. It is somewhat optimized for HTML documents but may be used for any format.

Several functions which return an array of object records do also return an associative array with statistical information about them. The array is the last element of the object record array. The statistical array contains the following entries:

Hidden

Number of object records with attribute PresentationHints set to Hidden.

CollectionHead

Number of object records with attribute PresentationHints set to CollectionHead.

FullCollectionHead

Number of object records with attribute PresentationHints set to FullCollectionHead.

CollectionHeadNr

Index in array of object records with attribute PresentationHints set to CollectionHead.

FullCollectionHeadNr

Index in array of object records with attribute PresentationHints set to FullCollectionHead.

Total

Total: Number of object records.

Požadavky

This extension needs a Hyperwave server downloadable from http://www.hyperwave.com/.

Instalace

To enable Hyperwave support compile PHP --with-hyperwave.

Integration with Apache

The Hyperwave extension is best used when PHP is compiled as an Apache module. In such a case the underlying Hyperwave server can be hidden from users almost completely if Apache uses its rewriting engine. The following instructions will explain this.

Since PHP with Hyperwave support built into Apache is intended to replace the native Hyperwave solution based on Wavemaster, we will assume that the Apache server will only serve as a Hyperwave web interface for these examples. This is not necessary but it simplifies the configuration. The concept is quite simple. First of all you need a PHP script which evaluates the $_ENV['PATH_INFO'] variable and treats its value as the name of a Hyperwave object. Let's call this script 'Hyperwave'. The URL http://your.hostname/Hyperwave/name_of_object would than return the Hyperwave object with the name 'name_of_object'. Depending on the type of the object the script has to react accordingly. If it is a collection, it will probably return a list of children. If it is a document it will return the mime type and the content. A slight improvement can be achieved if the Apache rewriting engine is used. From the users point of view it would be more straight forward if the URL http://your.hostname/name_of_object would return the object. The rewriting rule is quite easy:

RewriteRule ^/(.*) /usr/local/apache/htdocs/HyperWave/$1 [L]

Now every URL relates to an object in the Hyperwave server. This causes a simple to solve problem. There is no way to execute a different script, e.g. for searching, than the 'Hyperwave' script. This can be fixed with another rewriting rule like the following:

RewriteRule ^/hw/(.*) /usr/local/apache/htdocs/hw/$1 [L]

This will reserve the directory /usr/local/apache/htdocs/hw for additional scripts and other files. Just make sure this rule is evaluated before the one above. There is just a little drawback: all Hyperwave objects whose name starts with 'hw/' will be shadowed. So, make sure you don't use such names. If you need more directories, e.g. for images just add more rules or place them all in one directory. Before you put those instructions, don't forget to turn on the rewriting engine with

RewriteEngine on

You will need scripts:

  • to return the object itself

  • to allow searching

  • to identify yourself

  • to set your profile

  • one for each additional function like to show the object attributes, to show information about users, to show the status of the server, etc.

As an alternative to the Rewrite Engine, you can also consider using the Apache ErrorDocument directive, but be aware, that ErrorDocument redirected pages cannot receive POST data.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 1. Hyperwave configuration options

Name | Default | Changeable
hyperwave.allow_persistent | "0" | PHP_INI_SYSTEM
hyperwave.default_port | "418" | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

HW_ATTR_LANG (integer)

HW_ATTR_NR (integer)

HW_ATTR_NONE (integer)

Todo

There are still some things to do:

  • The hw_InsertDocument has to be split into hw_insertobject() and hw_putdocument().

  • The names of several functions are not fixed, yet.

  • Most functions require the current connection as its first parameter. This leads to a lot of typing, which is quite often not necessary if there is just one open connection. A default connection will improve this.

  • Conversion form object record into object array needs to handle any multiple attribute.

Obsah
hw_Array2Objrec -- convert attributes from object array to object record
hw_changeobject -- Changes attributes of an object (obsolete)
hw_Children -- object ids of children
hw_ChildrenObj -- object records of children
hw_Close -- closes the Hyperwave connection
hw_Connect -- opens a connection
hw_connection_info -- Prints information about the connection to Hyperwave server
hw_cp -- Copies objects
hw_Deleteobject -- deletes object
hw_DocByAnchor -- object id object belonging to anchor
hw_DocByAnchorObj -- object record object belonging to anchor
hw_Document_Attributes -- object record of hw_document
hw_Document_BodyTag -- body tag of hw_document
hw_Document_Content -- returns content of hw_document
hw_Document_SetContent -- sets/replaces content of hw_document
hw_Document_Size -- size of hw_document
hw_dummy -- Hyperwave dummy function
hw_EditText -- retrieve text document
hw_Error -- error number
hw_ErrorMsg -- returns error message
hw_Free_Document -- frees hw_document
hw_GetAnchors -- object ids of anchors of document
hw_GetAnchorsObj -- object records of anchors of document
hw_GetAndLock -- return object record and lock object
hw_GetChildColl -- object ids of child collections
hw_GetChildCollObj -- object records of child collections
hw_GetChildDocColl -- object ids of child documents of collection
hw_GetChildDocCollObj -- object records of child documents of collection
hw_GetObject -- object record
hw_GetObjectByQuery -- search object
hw_GetObjectByQueryColl -- search object in collection
hw_GetObjectByQueryCollObj -- search object in collection
hw_GetObjectByQueryObj -- search object
hw_GetParents -- object ids of parents
hw_GetParentsObj -- object records of parents
hw_getrellink -- Get link from source to dest relative to rootid
hw_GetRemote -- Gets a remote document
hw_getremotechildren -- Gets children of remote document
hw_GetSrcByDestObj -- Returns anchors pointing at object
hw_GetText -- retrieve text document
hw_getusername -- name of currently logged in user
hw_Identify -- identifies as user
hw_InCollections -- check if object ids in collections
hw_Info -- info about connection
hw_InsColl -- insert collection
hw_InsDoc -- insert document
hw_insertanchors -- Inserts only anchors into text
hw_InsertDocument -- upload any document
hw_InsertObject -- inserts an object record
hw_mapid -- Maps global id on virtual local id
hw_Modifyobject -- modifies object record
hw_mv -- Moves objects
hw_New_Document -- create new document
hw_objrec2array -- Convert attributes from object record to object array
hw_Output_Document -- prints hw_document
hw_pConnect -- make a persistent database connection
hw_PipeDocument -- retrieve any document
hw_Root -- root object id
hw_setlinkroot -- Set the id to which links are calculated
hw_stat -- Returns status string
hw_Unlock -- unlock object
hw_Who -- List of currently logged in users

Předcházející | Domů | Další
setrawcookie | Nahoru | hw_Array2Objrec


hw_Array2Objrec

(PHP 3>= 3.0.4, PHP 4 )

hw_Array2Objrec -- convert attributes from object array to object record

Description

string hw_array2objrec ( array object_array)

Converts an object_array into an object record. Multiple attributes like 'Title' in different languages are treated properly.

See also hw_objrec2array().

Předcházející | Domů | Další
Hyperwave Functions | Nahoru | hw_changeobject


hw_changeobject

(PHP 3>= 3.0.3, PHP 4 )

hw_changeobject -- Changes attributes of an object (obsolete)

Description

void hw_changeobject ( int link, int objid, array attributes)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
hw_Array2Objrec | Nahoru | hw_Children


hw_Children

(PHP 3>= 3.0.3, PHP 4 )

hw_Children -- object ids of children

Description

array hw_children ( int connection, int objectID)

Returns an array of object ids. Each id belongs to a child of the collection with ID objectID. The array contains all children both documents and collections.

Předcházející | Domů | Další
hw_changeobject | Nahoru | hw_ChildrenObj


hw_ChildrenObj

(PHP 3>= 3.0.3, PHP 4 )

hw_ChildrenObj -- object records of children

Description

array hw_childrenobj ( int connection, int objectID)

Returns an array of object records. Each object record belongs to a child of the collection with ID objectID. The array contains all children both documents and collections.

Předcházející | Domů | Další
hw_Children | Nahoru | hw_Close


hw_Close

(PHP 3>= 3.0.3, PHP 4 )

hw_Close -- closes the Hyperwave connection

Description

int hw_close ( int connection)

Returns FALSE if connection is not a valid connection index, otherwise TRUE. Closes down the connection to a Hyperwave server with the given connection index.

Předcházející | Domů | Další
hw_ChildrenObj | Nahoru | hw_Connect


hw_Connect

(PHP 3>= 3.0.3, PHP 4 )

hw_Connect -- opens a connection

Description

int hw_connect ( string host, int port, string username, string password)

Opens a connection to a Hyperwave server and returns a connection index on success, or FALSE if the connection could not be made. Each of the arguments should be a quoted string, except for the port number. The username and password arguments are optional and can be left out. In such a case no identification with the server will be done. It is similar to identify as user anonymous. This function returns a connection index that is needed by other Hyperwave functions. You can have multiple connections open at once. Keep in mind, that the password is not encrypted.

See also hw_pconnect().

Předcházející | Domů | Další
hw_Close | Nahoru | hw_connection_info


hw_connection_info

(PHP 3>= 3.0.3, PHP 4 )

hw_connection_info -- Prints information about the connection to Hyperwave server

Description

void hw_connection_info ( int link)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
hw_Connect | Nahoru | hw_cp


hw_cp

(PHP 3>= 3.0.3, PHP 4 )

hw_cp -- Copies objects

Description

int hw_cp ( int connection, array object_id_array, int destination_id)

Copies the objects with object ids as specified in the second parameter to the collection with the id destination id.

The value return is the number of copied objects.

See also hw_mv().

Předcházející | Domů | Další
hw_connection_info | Nahoru | hw_Deleteobject


hw_Deleteobject

(PHP 3>= 3.0.3, PHP 4 )

hw_Deleteobject -- deletes object

Description

int hw_deleteobject ( int connection, int object_to_delete)

Deletes the object with the given object id in the second parameter. It will delete all instances of the object.

Returns TRUE if no error occurs otherwise FALSE.

See also hw_mv().

Předcházející | Domů | Další
hw_cp | Nahoru | hw_DocByAnchor


hw_DocByAnchor

(PHP 3>= 3.0.3, PHP 4 )

hw_DocByAnchor -- object id object belonging to anchor

Description

int hw_docbyanchor ( int connection, int anchorID)

Returns an th object id of the document to which anchorID belongs.

Předcházející | Domů | Další
hw_Deleteobject | Nahoru | hw_DocByAnchorObj


hw_DocByAnchorObj

(PHP 3>= 3.0.3, PHP 4 )

hw_DocByAnchorObj -- object record object belonging to anchor

Description

string hw_docbyanchorobj ( int connection, int anchorID)

Returns an th object record of the document to which anchorID belongs.

Předcházející | Domů | Další
hw_DocByAnchor | Nahoru | hw_Document_Attributes


hw_Document_Attributes

(PHP 3>= 3.0.3, PHP 4 )

hw_Document_Attributes -- object record of hw_document

Description

string hw_document_attributes ( int hw_document)

Returns the object record of the document.

For backward compatibility, hw_documentattributes() is also accepted. This is deprecated, however.

See also hw_document_bodytag(), and hw_document_size().

Předcházející | Domů | Další
hw_DocByAnchorObj | Nahoru | hw_Document_BodyTag


hw_Document_BodyTag

(PHP 3>= 3.0.3, PHP 4 )

hw_Document_BodyTag -- body tag of hw_document

Description

string hw_document_bodytag ( int hw_document)

Returns the BODY tag of the document. If the document is an HTML document the BODY tag should be printed before the document.

See also hw_document_attributes(), and hw_document_size().

For backward compatibility, hw_documentbodytag() is also accepted. This is deprecated, however.

Předcházející | Domů | Další
hw_Document_Attributes | Nahoru | hw_Document_Content


hw_Document_Content

(PHP 3>= 3.0.3, PHP 4 )

hw_Document_Content -- returns content of hw_document

Description

string hw_document_content ( int hw_document)

Returns the content of the document. If the document is an HTML document the content is everything after the BODY tag. Information from the HEAD and BODY tag is in the stored in the object record.

See also hw_document_attributes(),
hw_document_size(),
and hw_document_setcontent().

Předcházející | Domů | Další
hw_Document_BodyTag | Nahoru | hw_Document_SetContent


hw_Document_SetContent

(PHP 4 )

hw_Document_SetContent -- sets/replaces content of hw_document

Description

string hw_document_setcontent ( int hw_document, string content)

Sets or replaces the content of the document. If the document is an HTML document the content is everything after the BODY tag. Information from the HEAD and BODY tag is in the stored in the object record. If you provide this information in the content of the document too, the Hyperwave server will change the object record accordingly when the document is inserted. Probably not a very good idea. If this functions fails the document will retain its old content.

See also hw_document_attributes(),
hw_document_size(),
and hw_document_content().

Předcházející | Domů | Další
hw_Document_Content | Nahoru | hw_Document_Size


hw_Document_Size

(PHP 3>= 3.0.3, PHP 4 )

hw_Document_Size -- size of hw_document

Description

int hw_document_size ( int hw_document)

Returns the size in bytes of the document.

See also hw_document_bodytag(), and hw_document_attributes().

For backward compatibility, hw_documentsize() is also accepted. This is deprecated, however.

Předcházející | Domů | Další
hw_Document_SetContent | Nahoru | hw_dummy


hw_dummy

(PHP 3>= 3.0.3, PHP 4 )

hw_dummy -- Hyperwave dummy function

Description

string hw_dummy ( int link, int id, int msgid)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
hw_Document_Size | Nahoru | hw_EditText


hw_EditText

(PHP 3>= 3.0.3, PHP 4 )

hw_EditText -- retrieve text document

Description

int hw_edittext ( int connection, int hw_document)

Uploads the text document to the server. The object record of the document may not be modified while the document is edited. This function will only works for pure text documents. It will not open a special data connection and therefore blocks the control connection during the transfer.

See also hw_pipedocument(),
hw_free_document(),
hw_document_bodytag(),
hw_document_size(),
hw_output_document(), and
hw_gettext().

Předcházející | Domů | Další
hw_dummy | Nahoru | hw_Error


hw_Error

(PHP 3>= 3.0.3, PHP 4 )

hw_Error -- error number

Description

int hw_error ( int connection)

Returns the last error number. If the return value is 0 no error has occurred. The error relates to the last command.

Předcházející | Domů | Další
hw_EditText | Nahoru | hw_ErrorMsg


hw_ErrorMsg

(PHP 3>= 3.0.3, PHP 4 )

hw_ErrorMsg -- returns error message

Description

string hw_errormsg ( int connection)

Returns a string containing the last error message or 'No Error'. If FALSE is returned, this function failed. The message relates to the last command.

Předcházející | Domů | Další
hw_Error | Nahoru | hw_Free_Document


hw_Free_Document

(PHP 3>= 3.0.3, PHP 4 )

hw_Free_Document -- frees hw_document

Description

int hw_free_document ( int hw_document)

Frees the memory occupied by the Hyperwave document.

Předcházející | Domů | Další
hw_ErrorMsg | Nahoru | hw_GetAnchors


hw_GetAnchors

(PHP 3>= 3.0.3, PHP 4 )

hw_GetAnchors -- object ids of anchors of document

Description

array hw_getanchors ( int connection, int objectID)

Returns an array of object ids with anchors of the document with object ID objectID.

Předcházející | Domů | Další
hw_Free_Document | Nahoru | hw_GetAnchorsObj


hw_GetAnchorsObj

(PHP 3>= 3.0.3, PHP 4 )

hw_GetAnchorsObj -- object records of anchors of document

Description

array hw_getanchorsobj ( int connection, int objectID)

Returns an array of object records with anchors of the document with object ID objectID.

Předcházející | Domů | Další
hw_GetAnchors | Nahoru | hw_GetAndLock


hw_GetAndLock

(PHP 3>= 3.0.3, PHP 4 )

hw_GetAndLock -- return object record and lock object

Description

string hw_getandlock ( int connection, int objectID)

Returns the object record for the object with ID objectID. It will also lock the object, so other users cannot access it until it is unlocked.

See also hw_unlock(), and hw_getobject().

Předcházející | Domů | Další
hw_GetAnchorsObj | Nahoru | hw_GetChildColl


hw_GetChildColl

(PHP 3>= 3.0.3, PHP 4 )

hw_GetChildColl -- object ids of child collections

Description

array hw_getchildcoll ( int connection, int objectID)

Returns an array of object ids. Each object ID belongs to a child collection of the collection with ID objectID. The function will not return child documents.

See also hw_children(), and hw_getchilddoccoll().

Předcházející | Domů | Další
hw_GetAndLock | Nahoru | hw_GetChildCollObj


hw_GetChildCollObj

(PHP 3>= 3.0.3, PHP 4 )

hw_GetChildCollObj -- object records of child collections

Description

array hw_getchildcollobj ( int connection, int objectID)

Returns an array of object records. Each object records belongs to a child collection of the collection with ID objectID. The function will not return child documents.

See also hw_childrenobj(), and hw_getchilddoccollobj().

Předcházející | Domů | Další
hw_GetChildColl | Nahoru | hw_GetChildDocColl


hw_GetChildDocColl

(PHP 3>= 3.0.3, PHP 4 )

hw_GetChildDocColl -- object ids of child documents of collection

Description

array hw_getchilddoccoll ( int connection, int objectID)

Returns array of object ids for child documents of a collection.

See also hw_children(), and hw_getchildcoll().

Předcházející | Domů | Další
hw_GetChildCollObj | Nahoru | hw_GetChildDocCollObj


hw_GetChildDocCollObj

(PHP 3>= 3.0.3, PHP 4 )

hw_GetChildDocCollObj -- object records of child documents of collection

Description

array hw_getchilddoccollobj ( int connection, int objectID)

Returns an array of object records for child documents of a collection.

See also hw_childrenobj(), and hw_getchildcollobj().

Předcházející | Domů | Další
hw_GetChildDocColl | Nahoru | hw_GetObject


hw_GetObject

(PHP 3>= 3.0.3, PHP 4 )

hw_GetObject -- object record

Description

array hw_getobject ( int connection, mixed objectID, string query)

Returns the object record for the object with ID objectID if the second parameter is an integer. If the second parameter is an array of integer the function will return an array of object records. In such a case the last parameter is also evaluated which is a query string.

The query string has the following syntax:

<expr> ::= "(" <expr> ")" |

"!" <expr> | /* NOT */

<expr> "||" <expr> | /* OR */

<expr> "&&" <expr> | /* AND */

<attribute> <operator> <value>

<attribute> ::= /* any attribute name (Title, Author, DocumentType ...) */

<operator> ::= "=" | /* equal */

"<" | /* less than (string compare) */

">" | /* greater than (string compare) */

"~" /* regular expression matching */

The query allows to further select certain objects from the list of given objects. Unlike the other query functions, this query may use not indexed attributes. How many object records are returned depends on the query and if access to the object is allowed.

See also hw_getandlock(), and hw_getobjectbyquery().

Předcházející | Domů | Další
hw_GetChildDocCollObj | Nahoru | hw_GetObjectByQuery


hw_GetObjectByQuery

(PHP 3>= 3.0.3, PHP 4 )

hw_GetObjectByQuery -- search object

Description

array hw_getobjectbyquery ( int connection, string query, int max_hits)

Searches for objects on the whole server and returns an array of object ids. The maximum number of matches is limited to max_hits. If max_hits is set to -1 the maximum number of matches is unlimited.

The query will only work with indexed attributes.

See also hw_getobjectbyqueryobj().

Předcházející | Domů | Další
hw_GetObject | Nahoru | hw_GetObjectByQueryColl


hw_GetObjectByQueryColl

(PHP 3>= 3.0.3, PHP 4 )

hw_GetObjectByQueryColl -- search object in collection

Description

array hw_getobjectbyquerycoll ( int connection, int objectID, string query, int max_hits)

Searches for objects in collection with ID objectID and returns an array of object ids. The maximum number of matches is limited to max_hits. If max_hits is set to -1 the maximum number of matches is unlimited.

The query will only work with indexed attributes.

See also hw_getobjectbyquerycollobj().

Předcházející | Domů | Další
hw_GetObjectByQuery | Nahoru | hw_GetObjectByQueryCollObj


hw_GetObjectByQueryCollObj

(PHP 3>= 3.0.3, PHP 4 )

hw_GetObjectByQueryCollObj -- search object in collection

Description

array hw_getobjectbyquerycollobj ( int connection, int objectID, string query, int max_hits)

Searches for objects in collection with ID objectID and returns an array of object records. The maximum number of matches is limited to max_hits. If max_hits is set to -1 the maximum number of matches is unlimited.

The query will only work with indexed attributes.

See also hw_getobjectbyquerycoll().

Předcházející | Domů | Další
hw_GetObjectByQueryColl | Nahoru | hw_GetObjectByQueryObj


hw_GetObjectByQueryObj

(PHP 3>= 3.0.3, PHP 4 )

hw_GetObjectByQueryObj -- search object

Description

array hw_getobjectbyqueryobj ( int connection, string query, int max_hits)

Searches for objects on the whole server and returns an array of object records. The maximum number of matches is limited to max_hits. If max_hits is set to -1 the maximum number of matches is unlimited.

The query will only work with indexed attributes.

See also hw_getobjectbyquery().

Předcházející | Domů | Další
hw_GetObjectByQueryCollObj | Nahoru | hw_GetParents


hw_GetParents

(PHP 3>= 3.0.3, PHP 4 )

hw_GetParents -- object ids of parents

Description

array hw_getparents ( int connection, int objectID)

Returns an indexed array of object ids. Each object id belongs to a parent of the object with ID objectID.

Předcházející | Domů | Další
hw_GetObjectByQueryObj | Nahoru | hw_GetParentsObj


hw_GetParentsObj

(PHP 3>= 3.0.3, PHP 4 )

hw_GetParentsObj -- object records of parents

Description

array hw_getparentsobj ( int connection, int objectID)

Returns an indexed array of object records plus an associated array with statistical information about the object records. The associated array is the last entry of the returned array. Each object record belongs to a parent of the object with ID objectID.

Předcházející | Domů | Další
hw_GetParents | Nahoru | hw_getrellink


hw_getrellink

(PHP 3>= 3.0.3, PHP 4 )

hw_getrellink -- Get link from source to dest relative to rootid

Description

string hw_getrellink ( int link, int rootid, int sourceid, int destid)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
hw_GetParentsObj | Nahoru | hw_GetRemote


hw_GetRemote

(PHP 3>= 3.0.3, PHP 4 )

hw_GetRemote -- Gets a remote document

Description

int hw_getremote ( int connection, int objectID)

Returns a remote document. Remote documents in Hyperwave notation are documents retrieved from an external source. Common remote documents are for example external web pages or queries in a database. In order to be able to access external sources through remote documents Hyperwave introduces the HGI (Hyperwave Gateway Interface) which is similar to the CGI. Currently, only ftp, http-servers and some databases can be accessed by the HGI. Calling hw_getremote() returns the document from the external source. If you want to use this function you should be very familiar with HGIs. You should also consider to use PHP instead of Hyperwave to access external sources. Adding database support by a Hyperwave gateway should be more difficult than doing it in PHP.

See also hw_getremotechildren().

Předcházející | Domů | Další
hw_getrellink | Nahoru | hw_getremotechildren


hw_getremotechildren

(PHP 3>= 3.0.3, PHP 4 )

hw_getremotechildren -- Gets children of remote document

Description

int hw_getremotechildren ( int connection, string object_record)

Returns the children of a remote document. Children of a remote document are remote documents itself. This makes sense if a database query has to be narrowed and is explained in Hyperwave Programmers' Guide. If the number of children is 1 the function will return the document itself formated by the Hyperwave Gateway Interface (HGI). If the number of children is greater than 1 it will return an array of object record with each maybe the input value for another call to hw_getremotechildren(). Those object records are virtual and do not exist in the Hyperwave server, therefore they do not have a valid object ID. How exactly such an object record looks like is up to the HGI. If you want to use this function you should be very familiar with HGIs. You should also consider to use PHP instead of Hyperwave to access external sources. Adding database support by a Hyperwave gateway should be more difficult than doing it in PHP.

See also hw_getremote().

Předcházející | Domů | Další
hw_GetRemote | Nahoru | hw_GetSrcByDestObj


hw_GetSrcByDestObj

(PHP 3>= 3.0.3, PHP 4 )

hw_GetSrcByDestObj -- Returns anchors pointing at object

Description

array hw_getsrcbydestobj ( int connection, int objectID)

Returns the object records of all anchors pointing to the object with ID objectID. The object can either be a document or an anchor of type destination.

See also hw_getanchors().

Předcházející | Domů | Další
hw_getremotechildren | Nahoru | hw_GetText


hw_GetText

(PHP 3>= 3.0.3, PHP 4 )

hw_GetText -- retrieve text document

Description

int hw_gettext ( int connection, int objectID [, mixed rootID/prefix])

Returns the document with object ID objectID. If the document has anchors which can be inserted, they will be inserted already. The optional parameter rootID/prefix can be a string or an integer. If it is an integer it determines how links are inserted into the document. The default is 0 and will result in links that are constructed from the name of the link's destination object. This is useful for web applications. If a link points to an object with name 'internet_movie' the HTML link will be <A HREF="/internet_movie">. The actual location of the source and destination object in the document hierarchy is disregarded. You will have to set up your web browser, to rewrite that URL to for example '/my_script.php3/internet_movie'. 'my_script.php3' will have to evaluate $PATH_INFO and retrieve the document. All links will have the prefix '/my_script.php3/'. If you do not want this you can set the optional parameter rootID/prefix to any prefix which is used instead. Is this case it has to be a string.

If rootID/prefix is an integer and unequal to 0 the link is constructed from all the names starting at the object with the id rootID/prefix separated by a slash relative to the current object. If for example the above document 'internet_movie' is located at 'a-b-c-internet_movie' with '-' being the separator between hierarchy levels on the Hyperwave server and the source document is located at 'a-b-d-source' the resulting HTML link would be: <A HREF="../c/internet_movie">. This is useful if you want to download the whole server content onto disk and map the document hierarchy onto the file system.

This function will only work for pure text documents. It will not open a special data connection and therefore blocks the control connection during the transfer.

See also hw_pipedocument(),
hw_free_document(),
hw_document_bodytag(),
hw_document_size(),
and hw_output_document().

Předcházející | Domů | Další
hw_GetSrcByDestObj | Nahoru | hw_getusername


hw_getusername

(PHP 3>= 3.0.3, PHP 4 )

hw_getusername -- name of currently logged in user

Description

string hw_getusername ( int connection)

Returns the username of the connection.

Předcházející | Domů | Další
hw_GetText | Nahoru | hw_Identify


hw_Identify

(PHP 3>= 3.0.3, PHP 4 )

hw_Identify -- identifies as user

Description

int hw_identify ( string username, string password)

Identifies as user with username and password. Identification is only valid for the current session. I do not thing this function will be needed very often. In most cases it will be easier to identify with the opening of the connection.

See also hw_connect().

Předcházející | Domů | Další
hw_getusername | Nahoru | hw_InCollections


hw_InCollections

(PHP 3>= 3.0.3, PHP 4 )

hw_InCollections -- check if object ids in collections

Description

array hw_incollections ( int connection, array object_id_array, array collection_id_array, int return_collections)

Checks whether a set of objects (documents or collections) specified by the object_id_array is part of the collections listed in collection_id_array. When the fourth parameter return_collections is 0, the subset of object ids that is part of the collections (i.e., the documents or collections that are children of one or more collections of collection ids or their subcollections, recursively) is returned as an array. When the fourth parameter is 1, however, the set of collections that have one or more objects of this subset as children are returned as an array. This option allows a client to, e.g., highlight the part of the collection hierarchy that contains the matches of a previous query, in a graphical overview.

Předcházející | Domů | Další
hw_Identify | Nahoru | hw_Info


hw_Info

(PHP 3>= 3.0.3, PHP 4 )

hw_Info -- info about connection

Description

string hw_info ( int connection)

Returns information about the current connection. The returned string has the following format: <Serverstring>, <Host>, <Port>, <Username>, <Port of Client>, <Byte swapping>

Předcházející | Domů | Další
hw_InCollections | Nahoru | hw_InsColl


hw_InsColl

(PHP 3>= 3.0.3, PHP 4 )

hw_InsColl -- insert collection

Description

int hw_inscoll ( int connection, int objectID, array object_array)

Inserts a new collection with attributes as in object_array into collection with object ID objectID.

Předcházející | Domů | Další
hw_Info | Nahoru | hw_InsDoc


hw_InsDoc

(PHP 3>= 3.0.3, PHP 4 )

hw_InsDoc -- insert document

Description

int hw_insdoc ( int connection, int parentID, string object_record, string text)

Inserts a new document with attributes as in object_record into collection with object ID parentID. This function inserts either an object record only or an object record and a pure ascii text in text if text is given. If you want to insert a general document of any kind use hw_insertdocument() instead.

See also hw_insertdocument(), and hw_inscoll().

Předcházející | Domů | Další
hw_InsColl | Nahoru | hw_insertanchors


hw_insertanchors

(PHP 4 >= 4.0.4)

hw_insertanchors -- Inserts only anchors into text

Description

string hw_insertanchors ( int hwdoc, array anchorecs, array dest [, array urlprefixes])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
hw_InsDoc | Nahoru | hw_InsertDocument


hw_InsertDocument

(PHP 3>= 3.0.3, PHP 4 )

hw_InsertDocument -- upload any document

Description

int hw_insertdocument ( int connection, int parent_id, int hw_document)

Uploads a document into the collection with parent_id. The document has to be created before with hw_new_document(). Make sure that the object record of the new document contains at least the attributes: Type, DocumentType, Title and Name. Possibly you also want to set the MimeType. The functions returns the object id of the new document or FALSE.

See also hw_pipedocument().

Předcházející | Domů | Další
hw_insertanchors | Nahoru | hw_InsertObject


hw_InsertObject

(PHP 3>= 3.0.3, PHP 4 )

hw_InsertObject -- inserts an object record

Description

int hw_insertobject ( int connection, string object_rec, string parameter)

Inserts an object into the server. The object can be any valid hyperwave object. See the HG-CSP documentation for a detailed information on how the parameters have to be.

Note: If you want to insert an Anchor, the attribute Position has always been set either to a start/end value or to 'invisible'. Invisible positions are needed if the annotation has no corresponding link in the annotation text.

See also hw_pipedocument(),
hw_insertdocument(),
hw_insdoc(),
and hw_inscoll().

Předcházející | Domů | Další
hw_InsertDocument | Nahoru | hw_mapid


hw_mapid

(PHP 3>= 3.0.13, PHP 4 )

hw_mapid -- Maps global id on virtual local id

Description

int hw_mapid ( int connection, int server_id, int object_id)

Maps a global object id on any hyperwave server, even those you did not connect to with hw_connect(), onto a virtual object id. This virtual object id can then be used as any other object id, e.g. to obtain the object record with hw_getobject(). The server id is the first part of the global object id (GOid) of the object which is actually the IP number as an integer.

Note: In order to use this function you will have to set the F_DISTRIBUTED flag, which can currently only be set at compile time in hg_comm.c. It is not set by default. Read the comment at the beginning of hg_comm.c

Předcházející | Domů | Další
hw_InsertObject | Nahoru | hw_Modifyobject


hw_Modifyobject

(PHP 3>= 3.0.7, PHP 4 )

hw_Modifyobject -- modifies object record

Description

int hw_modifyobject ( int connection, int object_to_change, array remove, array add, int mode)

This command allows to remove, add, or modify individual attributes of an object record. The object is specified by the Object ID object_to_change. The first array remove is a list of attributes to remove. The second array add is a list of attributes to add. In order to modify an attribute one will have to remove the old one and add a new one. hw_modifyobject() will always remove the attributes before it adds attributes unless the value of the attribute to remove is not a string or array.

The last parameter determines if the modification is performed recursively. 1 means recursive modification. If some of the objects cannot be modified they will be skipped without notice. hw_error() may not indicate an error though some of the objects could not be modified.

The keys of both arrays are the attributes name. The value of each array element can either be an array, a string or anything else. If it is an array each attribute value is constructed by the key of each element plus a colon and the value of each element. If it is a string it is taken as the attribute value. An empty string will result in a complete removal of that attribute. If the value is neither a string nor an array but something else, e.g. an integer, no operation at all will be performed on the attribute. This is necessary if you want to to add a completely new attribute not just a new value for an existing attribute. If the remove array contained an empty string for that attribute, the attribute would be tried to be removed which would fail since it doesn't exist. The following addition of a new value for that attribute would also fail. Setting the value for that attribute to e.g. 0 would not even try to remove it and the addition will work.

If you would like to change the attribute 'Name' with the current value 'books' into 'articles' you will have to create two arrays and call hw_modifyobject().

Příklad 1. modifying an attribute

<?php
       // $connect is an existing connection to the Hyperwave server
       // $objid is the ID of the object to modify
       $remarr = array("Name" => "books");
       $addarr = array("Name" => "articles");
       $hw_modifyobject($connect, $objid, $remarr, $addarr);
?>
In order to delete/add a name=value pair from/to the object record just pass the remove/add array and set the last/third parameter to an empty array. If the attribute is the first one with that name to add, set attribute value in the remove array to an integer.

Příklad 2. adding a completely new attribute

<?php
       // $connect is an existing connection to the Hyperwave server
       // $objid is the ID of the object to modify
       $remarr = array("Name" => 0);
       $addarr = array("Name" => "articles");
       $hw_modifyobject($connect, $objid, $remarr, $addarr);
?>

Poznámka: Multilingual attributes, e.g. 'Title', can be modified in two ways. Either by providing the attributes value in its native form 'language':'title' or by providing an array with elements for each language as described above. The above example would than be:

Příklad 3. modifying Title attribute

<?php
       $remarr = array("Title" => "en:Books");
       $addarr = array("Title" => "en:Articles");
       $hw_modifyobject($connect, $objid, $remarr, $addarr);
?>
or

Příklad 4. modifying Title attribute

<?php
       $remarr = array("Title" => array("en" => "Books"));
       $addarr = array("Title" => array("en" => "Articles", "ge"=>"Artikel"));
       $hw_modifyobject($connect, $objid, $remarr, $addarr);
?>
This removes the English title 'Books' and adds the English title 'Articles' and the German title 'Artikel'.

Příklad 5. removing attribute

<?php
       $remarr = array("Title" => "");
       $addarr = array("Title" => "en:Articles");
       $hw_modifyobject($connect, $objid, $remarr, $addarr);
?>

Poznámka: This will remove all attributes with the name 'Title' and adds a new 'Title' attribute. This comes in handy if you want to remove attributes recursively.

Poznámka: If you need to delete all attributes with a certain name you will have to pass an empty string as the attribute value.

Poznámka: Only the attributes 'Title', 'Description' and 'Keyword' will properly handle the language prefix. If those attributes don't carry a language prefix, the prefix 'xx' will be assigned.

Poznámka: The 'Name' attribute is somewhat special. In some cases it cannot be complete removed. You will get an error message 'Change of base attribute' (not clear when this happens). Therefore you will always have to add a new Name first and than remove the old one.

Poznámka: You may not surround this function by calls to hw_getandlock() and hw_unlock(). hw_modifyobject() does this internally.

Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
hw_mapid | Nahoru | hw_mv


hw_mv

(PHP 3>= 3.0.3, PHP 4 )

hw_mv -- Moves objects

Description

int hw_mv ( int connection, array object_id_array, int source_id, int destination_id)

Moves the objects with object ids as specified in the second parameter from the collection with id source_id to the collection with the id destination_id. If the destination id is 0 the objects will be unlinked from the source collection. If this is the last instance of that object it will be deleted. If you want to delete all instances at once, use hw_deleteobject().

The value returned is the number of moved objects.

See also hw_cp(), and hw_deleteobject().

Předcházející | Domů | Další
hw_Modifyobject | Nahoru | hw_New_Document


hw_New_Document

(PHP 3>= 3.0.3, PHP 4 )

hw_New_Document -- create new document

Description

int hw_new_document ( string object_record, string document_data, int document_size)

Returns a new Hyperwave document with document data set to document_data and object record set to object_record. The length of the document_data has to passed in document_sizeThis function does not insert the document into the Hyperwave server.

See also hw_free_document(),
hw_document_size(),
hw_document_bodytag(),
hw_output_document(),
and hw_insertdocument().

Předcházející | Domů | Další
hw_mv | Nahoru | hw_objrec2array


hw_objrec2array

(PHP 3>= 3.0.3, PHP 4 )

hw_objrec2array -- Convert attributes from object record to object array

Description

array hw_objrec2array ( string object_record [, array format])

Converts an object_record into an object array. The keys of the resulting array are the attributes names. Multi-value attributes like 'Title' in different languages form its own array. The keys of this array are the left part to the colon of the attribute value. This left part must be two characters long. Other multi-value attributes without a prefix form an indexed array. If the optional parameter is missing the attributes 'Title', 'Description' and 'Keyword' are treated as language attributes and the attributes 'Group', 'Parent' and 'HtmlAttr' as non-prefixed multi-value attributes. By passing an array holding the type for each attribute you can alter this behaviour. The array is an associated array with the attribute name as its key and the value being one of HW_ATTR_LANG or HW_ATTR_NONE.

See also hw_array2objrec().

Předcházející | Domů | Další
hw_New_Document | Nahoru | hw_Output_Document


hw_Output_Document

(PHP 3>= 3.0.3, PHP 4 )

hw_Output_Document -- prints hw_document

Description

int hw_output_document ( int hw_document)

Prints the document without the BODY tag.

For backward compatibility, hw_outputdocument() is also accepted. This is deprecated, however.

Předcházející | Domů | Další
hw_objrec2array | Nahoru | hw_pConnect


hw_pConnect

(PHP 3>= 3.0.3, PHP 4 )

hw_pConnect -- make a persistent database connection

Description

int hw_pconnect ( string host, int port, string username, string password)

Returns a connection index on success, or FALSE if the connection could not be made. Opens a persistent connection to a Hyperwave server. Each of the arguments should be a quoted string, except for the port number. The username and password arguments are optional and can be left out. In such a case no identification with the server will be done. It is similar to identify as user anonymous. This function returns a connection index that is needed by other Hyperwave functions. You can have multiple persistent connections open at once.

See also hw_connect().

Předcházející | Domů | Další
hw_Output_Document | Nahoru | hw_PipeDocument


hw_PipeDocument

(PHP 3>= 3.0.3, PHP 4 )

hw_PipeDocument -- retrieve any document

Description

int hw_pipedocument ( int connection, int objectID)

Returns the Hyperwave document with object ID objectID. If the document has anchors which can be inserted, they will have been inserted already. The document will be transferred via a special data connection which does not block the control connection.

See also hw_gettext() for more on link insertion,
hw_free_document(),
hw_document_size(),
hw_document_bodytag(),
and hw_output_document().

Předcházející | Domů | Další
hw_pConnect | Nahoru | hw_Root


hw_Root

(PHP 3>= 3.0.3, PHP 4 )

hw_Root -- root object id

Description

int hw_root ( )

Returns the object ID of the hyperroot collection. Currently this is always 0. The child collection of the hyperroot is the root collection of the connected server.

Předcházející | Domů | Další
hw_PipeDocument | Nahoru | hw_setlinkroot


hw_setlinkroot

(PHP 3>= 3.0.3, PHP 4 )

hw_setlinkroot -- Set the id to which links are calculated

Description

void hw_setlinkroot ( int link, int rootid)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
hw_Root | Nahoru | hw_stat


hw_stat

(PHP 3>= 3.0.3, PHP 4 )

hw_stat -- Returns status string

Description

string hw_stat ( int link)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
hw_setlinkroot | Nahoru | hw_Unlock


hw_Unlock

(PHP 3>= 3.0.3, PHP 4 )

hw_Unlock -- unlock object

Description

int hw_unlock ( int connection, int objectID)

Unlocks a document, so other users regain access.

See also hw_getandlock().

Předcházející | Domů | Další
hw_stat | Nahoru | hw_Who


hw_Who

(PHP 3>= 3.0.3, PHP 4 )

hw_Who -- List of currently logged in users

Description

int hw_who ( int connection)

Returns an array of users currently logged into the Hyperwave server. Each entry in this array is an array itself containing the elements id, name, system, onSinceDate, onSinceTime, TotalTime and self. 'self' is 1 if this entry belongs to the user who initiated the request.

Předcházející | Domů | Další
hw_Unlock | Nahoru | Hyperwave API Functions


Hyperwave API Functions

Manuál PHP
Předcházející Další

XXXIX. Hyperwave API Functions

Úvod

Hyperwave has been developed at IICM in Graz. It started with the name Hyper-G and changed to Hyperwave when it was commercialised (in 1996).

Hyperwave is not free software. The current version, 5.5, is available at http://www.hyperwave.com/. A time limited version can be ordered for free (30 days).

See also the Hyperwave module.

Hyperwave is an information system similar to a database (HIS, Hyperwave Information Server). Its focus is the storage and management of documents. A document can be any possible piece of data that may as well be stored in file. Each document is accompanied by its object record. The object record contains meta data for the document. The meta data is a list of attributes which can be extended by the user. Certain attributes are always set by the Hyperwave server, other may be modified by the user.

Požadavky

Since 2001 there is a Hyperwave SDK available. It supports Java, JavaScript and C++. This PHP Extension is based on the C++ interface. In order to activate the hwapi support in PHP you will have to install the Hyperwave SDK first.

Instalace

After installing the Hyperwave SDK, configure PHP with --with-hwapi[=DIR].

Integration with Apache

The integration with Apache and possible other servers is already described in the Hyperwave module which has been the first extension to connect a Hyperwave Server.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 1. Hyperwave API configuration options

Name | Default | Changeable
hwapi.allow_persistent | "0" | PHP_INI_SYSTEM
For further details and definition of the PHP_INI_* constants see ini_set().

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Classes

The API provided by the HW_API extension is fully object oriented. It is very similar to the C++ interface of the Hyperwave SDK. It consist of the following classes.

  • HW_API

  • HW_API_Object

  • HW_API_Attribute

  • HW_API_Error

  • HW_API_Content

  • HW_API_Reason

Some basic classes like HW_API_String, HW_API_String_Array, etc., which exist in the Hyperwave SDK have not been implemented since PHP has powerful replacements for them.

Each class has certain method, whose names are identical to its counterparts in the Hyperwave SDK. Passing arguments to this function differs from all the other PHP extensions but is close to the C++ API of the HW SDK. Instead of passing several parameters they are all put into an associated array and passed as one parameter. The names of the keys are identical to those documented in the HW SDK. The common parameters are listed below. If other parameters are required they will be documented if needed.

  • objectIdentifier The name or id of an object, e.g. "rootcollection", "0x873A8768 0x00000002".

  • parentIdentifier The name or id of an object which is considered to be a parent.

  • object An instance of class HW_API_Object.

  • parameters An instance of class HW_API_Object.

  • version The version of an object.

  • mode An integer value determine the way an operation is executed.

  • attributeSelector Any array of strings, each containing a name of an attribute. This is used if you retrieve the object record and want to include certain attributes.

  • objectQuery A query to select certain object out of a list of objects. This is used to reduce the number of objects which was delivered by a function like hw_api->children() or hw_api->find().

Obsah
hw_api_attribute->key -- Returns key of the attribute
hw_api_attribute->langdepvalue -- Returns value for a given language
hw_api_attribute->value -- Returns value of the attribute
hw_api_attribute->values -- Returns all values of the attribute
hw_api_attribute -- Creates instance of class hw_api_attribute
hw_api->checkin -- Checks in an object
hw_api->checkout -- Checks out an object
hw_api->children -- Returns children of an object
hw_api_content->mimetype -- Returns mimetype
hw_api_content->read -- Read content
hw_api->content -- Returns content of an object
hw_api->copy -- Copies physically
hw_api->dbstat -- Returns statistics about database server
hw_api->dcstat -- Returns statistics about document cache server
hw_api->dstanchors -- Returns a list of all destination anchors
hw_api->dstofsrcanchors -- Returns destination of a source anchor
hw_api_error->count -- Returns number of reasons
hw_api_error->reason -- Returns reason of error
hw_api->find -- Search for objects
hw_api->ftstat -- Returns statistics about fulltext server
hwapi_hgcsp -- Returns object of class hw_api
hw_api->hwstat -- Returns statistics about Hyperwave server
hw_api->identify -- Log into Hyperwave Server
hw_api->info -- Returns information about server configuration
hw_api->insert -- Inserts a new object
hw_api->insertanchor -- Inserts a new object of type anchor
hw_api->insertcollection -- Inserts a new object of type collection
hw_api->insertdocument -- Inserts a new object of type document
hw_api->link -- Creates a link to an object
hw_api->lock -- Locks an object
hw_api->move -- Moves object between collections
hw_api_content -- Create new instance of class hw_api_content
hw_api_object->assign -- Clones object
hw_api_object->attreditable -- Checks whether an attribute is editable
hw_api_object->count -- Returns number of attributes
hw_api_object->insert -- Inserts new attribute
hw_api_object -- Creates a new instance of class hw_api_object
hw_api_object->remove -- Removes attribute
hw_api_object->title -- Returns the title attribute
hw_api_object->value -- Returns value of attribute
hw_api->object -- Retrieve attribute information
hw_api->objectbyanchor -- Returns the object an anchor belongs to
hw_api->parents -- Returns parents of an object
hw_api_reason->description -- Returns description of reason
hw_api_reason->type -- Returns type of reason
hw_api->remove -- Delete an object
hw_api->replace -- Replaces an object
hw_api->setcommitedversion -- Commits version other than last version
hw_api->srcanchors -- Returns a list of all source anchors
hw_api->srcsofdst -- Returns source of a destination object
hw_api->unlock -- Unlocks a locked object
hw_api->user -- Returns the own user object
hw_api->userlist -- Returns a list of all logged in users

Předcházející | Domů | Další
hw_Who | Nahoru | hw_api_attribute->key


hw_api_attribute->key

(no version information, might be only in CVS)

hw_api_attribute->key -- Returns key of the attribute

Description

string key ( void )

Returns the name of the attribute.

See also hwapi_attribute_value().

Předcházející | Domů | Další
Hyperwave API Functions | Nahoru | hw_api_attribute->langdepvalue


hw_api_attribute->langdepvalue

(no version information, might be only in CVS)

hw_api_attribute->langdepvalue -- Returns value for a given language

Description

string langdepvalue ( string language)

Returns the value in the given language of the attribute.

See also hwapi_attribute_value().

Předcházející | Domů | Další
hw_api_attribute->key | Nahoru | hw_api_attribute->value


hw_api_attribute->value

(no version information, might be only in CVS)

hw_api_attribute->value -- Returns value of the attribute

Description

string value ( void )

Returns the value of the attribute.

See also hwapi_attribute_key(), hwapi_attribute_values().

Předcházející | Domů | Další
hw_api_attribute->langdepvalue | Nahoru | hw_api_attribute->values


hw_api_attribute->values

(no version information, might be only in CVS)

hw_api_attribute->values -- Returns all values of the attribute

Description

array values ( void )

Returns all values of the attribute as an array of strings.

See also hwapi_attribute_value().

Předcházející | Domů | Další
hw_api_attribute->value | Nahoru | hw_api_attribute


hw_api_attribute

(no version information, might be only in CVS)

hw_api_attribute -- Creates instance of class hw_api_attribute

Description

object attribute ( [string name [, string value]])

Creates a new instance of hw_api_attribute with the given name and value.

Předcházející | Domů | Další
hw_api_attribute->values | Nahoru | hw_api->checkin


hw_api->checkin

(no version information, might be only in CVS)

hw_api->checkin -- Checks in an object

Description

object checkin ( array parameter)

This function checks in an object or a whole hiearchie of objects. The parameters array contains the required element 'objectIdentifier' and the optional element 'version', 'comment', 'mode' and 'objectQuery'. 'version' sets the version of the object. It consists of the major and minor version separated by a period. If the version is not set, the minor version is incremented. 'mode' can be one of the following values:

HW_API_CHECKIN_NORMAL

Checks in and commits the object. The object must be a document.

HW_API_CHECKIN_RECURSIVE

If the object to check in is a collection, all children will be checked in recursively if they are documents. Trying to check in a collection would result in an error.

HW_API_CHECKIN_FORCE_VERSION_CONTROL

Checks in an object even if it is not under version control.

HW_API_CHECKIN_REVERT_IF_NOT_CHANGED

Check if the new version is different from the last version. Unless this is the case the object will be checked in.

HW_API_CHECKIN_KEEP_TIME_MODIFIED

Keeps the time modified from the most recent object.

HW_API_CHECKIN_NO_AUTO_COMMIT

The object is not automatically committed on check-in.

See also hwapi_checkout().

Předcházející | Domů | Další
hw_api_attribute | Nahoru | hw_api->checkout


hw_api->checkout

(no version information, might be only in CVS)

hw_api->checkout -- Checks out an object

Description

object checkout ( array parameter)

This function checks out an object or a whole hiearchie of objects. The parameters array contains the required element 'objectIdentifier' and the optional element 'version', 'mode' and 'objectQuery'. 'mode' can be one of the following values:

HW_API_CHECKIN_NORMAL

Checks out an object. The object must be a document.

HW_API_CHECKIN_RECURSIVE

If the object to check out is a collection, all children will be checked out recursively if they are documents. Trying to check out a collection would result in an error.

See also hwapi_checkin().

Předcházející | Domů | Další
hw_api->checkin | Nahoru | hw_api->children


hw_api->children

(no version information, might be only in CVS)

hw_api->children -- Returns children of an object

Description

array children ( array parameter)

Retrieves the children of a collection or the attributes of a document. The children can be further filtered by specifying an object query. The parameter array contains the required elements 'objectIdentifier' and the optional elements 'attributeSelector' and 'objectQuery'.

The return value is an array of objects of type HW_API_Object or HW_API_Error.

See also hwapi_parents().

Předcházející | Domů | Další
hw_api->checkout | Nahoru | hw_api_content->mimetype


hw_api_content->mimetype

(no version information, might be only in CVS)

hw_api_content->mimetype -- Returns mimetype

Description

string mimetype ( void )

Returns the mimetype of the content.

Předcházející | Domů | Další
hw_api->children | Nahoru | hw_api_content->read


hw_api_content->read

(no version information, might be only in CVS)

hw_api_content->read -- Read content

Description

string read ( string buffer, integer len)

Reads len bytes from the content into the given buffer.

Předcházející | Domů | Další
hw_api_content->mimetype | Nahoru | hw_api->content


hw_api->content

(no version information, might be only in CVS)

hw_api->content -- Returns content of an object

Description

object content ( array parameter)

This function returns the content of a document as an object of type hw_api_content. The parameter array contains the required elements 'objectidentifier' and the optional element 'mode'. The mode can be one of the constants HW_API_CONTENT_ALLLINKS, HW_API_CONTENT_REACHABLELINKS or HW_API_CONTENT_PLAIN. HW_API_CONTENT_ALLLINKS means to insert all anchors even if the destination is not reachable. HW_API_CONTENT_REACHABLELINKS tells hw_api_content() to insert only reachable links and HW_API_CONTENT_PLAIN will lead to document without any links.

Předcházející | Domů | Další
hw_api_content->read | Nahoru | hw_api->copy


hw_api->copy

(no version information, might be only in CVS)

hw_api->copy -- Copies physically

Description

object copy ( array parameter)

This function will make a physical copy including the content if it exists and returns the new object or an error object. The parameter array contains the required elements 'objectIdentifier' and 'destinationParentIdentifier'. The optional parameter is 'attributeSelector'`

See also hwapi_move(), hwapi_link().

Předcházející | Domů | Další
hw_api->content | Nahoru | hw_api->dbstat


hw_api->dbstat

(no version information, might be only in CVS)

hw_api->dbstat -- Returns statistics about database server

Description

object dbstat ( array parameter)

See also hwapi_dcstat(),
         hwapi_hwstat(),
         hwapi_ftstat().

Předcházející | Domů | Další
hw_api->copy | Nahoru | hw_api->dcstat


hw_api->dcstat

(no version information, might be only in CVS)

hw_api->dcstat -- Returns statistics about document cache server

Description

object dcstat ( array parameter)

See also hwapi_hwstat(),
         hwapi_dbstat(),
         hwapi_ftstat().

Předcházející | Domů | Další
hw_api->dbstat | Nahoru | hw_api->dstanchors


hw_api->dstanchors

(no version information, might be only in CVS)

hw_api->dstanchors -- Returns a list of all destination anchors

Description

object dstanchors ( array parameter)

Retrieves all destination anchors of an object. The parameter array contains the required element 'objectIdentifier' and the optional elements 'attributeSelector' and 'objectQuery'.

See also hwapi_srcanchors().

Předcházející | Domů | Další
hw_api->dcstat | Nahoru | hw_api->dstofsrcanchors


hw_api->dstofsrcanchors

(no version information, might be only in CVS)

hw_api->dstofsrcanchors -- Returns destination of a source anchor

Description

object dstofsrcanchors ( array parameter)

Retrieves the destination object pointed by the specified source anchors. The destination object can either be a destination anchor or a whole document. The parameters array contains the required element 'objectIdentifier' and the optional element 'attributeSelector'.

See also hwapi_srcanchors(),
         hwapi_dstanchors(),
         hwapi_objectbyanchor().

Předcházející | Domů | Další
hw_api->dstanchors | Nahoru | hw_api_error->count


hw_api_error->count

(no version information, might be only in CVS)

hw_api_error->count -- Returns number of reasons

Description

int count ( void )

Returns the number of error reasons.

See also hwapi_error_reason().

Předcházející | Domů | Další
hw_api->dstofsrcanchors | Nahoru | hw_api_error->reason


hw_api_error->reason

(no version information, might be only in CVS)

hw_api_error->reason -- Returns reason of error

Description

object reason ( void )

Returns the first error reason.

See also hwapi_error_count().

Předcházející | Domů | Další
hw_api_error->count | Nahoru | hw_api->find


hw_api->find

(no version information, might be only in CVS)

hw_api->find -- Search for objects

Description

array find ( array parameter)

This functions searches for objects either by executing a key or/and full text query. The found objects can further be filtered by an optional object query. They are sorted by their importance. The second search operation is relatively slow and its result can be limited to a certain number of hits. This allows to perform an incremental search, each returning just a subset of all found documents, starting at a given index. The parameter array contains the 'keyquery' or/and 'fulltextquery' depending on who you would like to search. Optional parameters are 'objectquery', 'scope', 'languages' and 'attributeselector'. In case of an incremental search the optional parameters 'startIndex', numberOfObjectsToGet' and 'exactMatchUnit' can be passed.

Předcházející | Domů | Další
hw_api_error->reason | Nahoru | hw_api->ftstat


hw_api->ftstat

(no version information, might be only in CVS)

hw_api->ftstat -- Returns statistics about fulltext server

Description

object ftstat ( array parameter)

See also hwapi_dcstat(),
         hwapi_dbstat(),
         hwapi_hwstat().

Předcházející | Domů | Další
hw_api->find | Nahoru | hwapi_hgcsp


hwapi_hgcsp

(no version information, might be only in CVS)

hwapi_hgcsp -- Returns object of class hw_api

Description

object hwapi_hgcsp ( string hostname [, int port])

Opens a connection to the Hyperwave server on host hostname. The protocol used is HGCSP. If you do not pass a port number, 418 is used.

See also hwapi_hwtp().

Předcházející | Domů | Další
hw_api->ftstat | Nahoru | hw_api->hwstat


hw_api->hwstat

(no version information, might be only in CVS)

hw_api->hwstat -- Returns statistics about Hyperwave server

Description

object hwstat ( array parameter)

See also hwapi_dcstat(),
         hwapi_dbstat(),
         hwapi_ftstat().

Předcházející | Domů | Další
hwapi_hgcsp | Nahoru | hw_api->identify


hw_api->identify

(no version information, might be only in CVS)

hw_api->identify -- Log into Hyperwave Server

Description

object identify ( array parameter)

Logs into the Hyperwave Server. The parameter array must contain the elements 'username' and 'password'.

The return value will be an object of type HW_API_Error if identification failed or TRUE if it was successful.

Předcházející | Domů | Další
hw_api->hwstat | Nahoru | hw_api->info


hw_api->info

(no version information, might be only in CVS)

hw_api->info -- Returns information about server configuration

Description

object info ( array parameter)

See also hwapi_dcstat(),
         hwapi_dbstat(),
         hwapi_ftstat(),
         hwapi_hwstat().

Předcházející | Domů | Další
hw_api->identify | Nahoru | hw_api->insert


hw_api->insert

(no version information, might be only in CVS)

hw_api->insert -- Inserts a new object

Description

object insert ( array parameter)

Insert a new object. The object type can be user, group, document or anchor. Depending on the type other object attributes has to be set. The parameter array contains the required elements 'object' and 'content' (if the object is a document) and the optional parameters 'parameters', 'mode' and 'attributeSelector'. The 'object' must contain all attributes of the object. 'parameters' is an object as well holding further attributes like the destination (attribute key is 'Parent'). 'content' is the content of the document. 'mode' can be a combination of the following flags:

HW_API_INSERT_NORMAL

The object in inserted into the server.

HW_API_INSERT_FORCE_VERSION_CONTROL

HW_API_INSERT_AUTOMATIC_CHECKOUT

HW_API_INSERT_PLAIN

HW_API_INSERT_KEEP_TIME_MODIFIED

HW_API_INSERT_DELAY_INDEXING

See also hwapi_replace().

Předcházející | Domů | Další
hw_api->info | Nahoru | hw_api->insertanchor


hw_api->insertanchor

(no version information, might be only in CVS)

hw_api->insertanchor -- Inserts a new object of type anchor

Description

object insertanchor ( array parameter)

This function is a shortcut for hwapi_insert(). It inserts an object of type anchor and sets some of the attributes required for an anchor. The parameter array contains the required elements 'object' and 'documentIdentifier' and the optional elements 'destinationIdentifier', 'parameter', 'hint' and 'attributeSelector'. The 'documentIdentifier' specifies the document where the anchor shall be inserted. The target of the anchor is set in 'destinationIdentifier' if it already exists. If the target does not exists the element 'hint' has to be set to the name of object which is supposed to be inserted later. Once it is inserted the anchor target is resolved automatically.

See also hwapi_insertdocument(),
         hwapi_insertcollection(),
         hwapi_insert().

Předcházející | Domů | Další
hw_api->insert | Nahoru | hw_api->insertcollection


hw_api->insertcollection

(no version information, might be only in CVS)

hw_api->insertcollection -- Inserts a new object of type collection

Description

object insertcollection ( array parameter)

This function is a shortcut for hwapi_insert(). It inserts an object of type collection and sets some of the attributes required for a collection. The parameter array contains the required elements 'object' and 'parentIdentifier' and the optional elements 'parameter' and 'attributeSelector'. See hwapi_insert() for the meaning of each element.

See also hwapi_insertdocument(),
         hwapi_insertanchor(),
         hwapi_insert().

Předcházející | Domů | Další
hw_api->insertanchor | Nahoru | hw_api->insertdocument


hw_api->insertdocument

(no version information, might be only in CVS)

hw_api->insertdocument -- Inserts a new object of type document

Description

object insertdocument ( array parameter)

This function is a shortcut for hwapi_insert(). It inserts an object with content and sets some of the attributes required for a document. The parameter array contains the required elements 'object', 'parentIdentifier' and 'content' and the optional elements 'mode', 'parameter' and 'attributeSelector'. See hwapi_insert() for the meaning of each element.

See also hwapi_insert()
         hwapi_insertanchor(),
         hwapi_insertcollection().

Předcházející | Domů | Další
hw_api->insertcollection | Nahoru | hw_api->link


hw_api->link

(no version information, might be only in CVS)

hw_api->link -- Creates a link to an object

Description

object link ( array parameter)

Creates a link to an object. Accessing this link is like accessing the object to links points to. The parameter array contains the required elements 'objectIdentifier' and 'destinationParentIdentifier'. 'destinationParentIdentifier' is the target collection.

The function returns TRUE on success or an error object.

See also hwapi_copy().

Předcházející | Domů | Další
hw_api->insertdocument | Nahoru | hw_api->lock


hw_api->lock

(no version information, might be only in CVS)

hw_api->lock -- Locks an object

Description

object lock ( array parameter)

Locks an object for exclusive editing by the user calling this function. The object can be only unlocked by this user or the system user. The parameter array contains the required element 'objectIdentifier' and the optional parameters 'mode' and 'objectquery'. 'mode' determines how an object is locked. HW_API_LOCK_NORMAL means, an object is locked until it is unlocked. HW_API_LOCK_RECURSIVE is only valid for collection and locks all objects within the collection and possible subcollections. HW_API_LOCK_SESSION means, an object is locked only as long as the session is valid.

See also hwapi_unlock().

Předcházející | Domů | Další
hw_api->link | Nahoru | hw_api->move


hw_api->move

(no version information, might be only in CVS)

hw_api->move -- Moves object between collections

Description

object move ( array parameter)

See also hw_objrec2array().

Předcházející | Domů | Další
hw_api->lock | Nahoru | hw_api_content


hw_api_content

(no version information, might be only in CVS)

hw_api_content -- Create new instance of class hw_api_content

Description

string content ( string content, string mimetype)

Creates a new content object from the string content. The mimetype is set to mimetype.

Předcházející | Domů | Další
hw_api->move | Nahoru | hw_api_object->assign


hw_api_object->assign

(no version information, might be only in CVS)

hw_api_object->assign -- Clones object

Description

object assign ( array parameter)

Clones the attributes of an object.

Předcházející | Domů | Další
hw_api_content | Nahoru | hw_api_object->attreditable


hw_api_object->attreditable

(no version information, might be only in CVS)

hw_api_object->attreditable -- Checks whether an attribute is editable

Description

bool attreditable ( array parameter)

Předcházející | Domů | Další
hw_api_object->assign | Nahoru | hw_api_object->count


hw_api_object->count

(no version information, might be only in CVS)

hw_api_object->count -- Returns number of attributes

Description

int count ( array parameter)

Předcházející | Domů | Další
hw_api_object->attreditable | Nahoru | hw_api_object->insert


hw_api_object->insert

(no version information, might be only in CVS)

hw_api_object->insert -- Inserts new attribute

Description

bool insert ( object attribute)

Adds an attribute to the object. Returns TRUE on success and otherwise FALSE.

See also hwapi_object_remove().

Předcházející | Domů | Další
hw_api_object->count | Nahoru | hw_api_object


hw_api_object

(no version information, might be only in CVS)

hw_api_object -- Creates a new instance of class hw_api_object

Description

object hw_api_object ( array parameter)

See also hwapi_lock().

Předcházející | Domů | Další
hw_api_object->insert | Nahoru | hw_api_object->remove


hw_api_object->remove

(no version information, might be only in CVS)

hw_api_object->remove -- Removes attribute

Description

bool remove ( string name)

Removes the attribute with the given name. Returns TRUE on success and otherwise FALSE.

See also hwapi_object_insert().

Předcházející | Domů | Další
hw_api_object | Nahoru | hw_api_object->title


hw_api_object->title

(no version information, might be only in CVS)

hw_api_object->title -- Returns the title attribute

Description

string title ( array parameter)

Předcházející | Domů | Další
hw_api_object->remove | Nahoru | hw_api_object->value


hw_api_object->value

(no version information, might be only in CVS)

hw_api_object->value -- Returns value of attribute

Description

string value ( string name)

Returns the value of the attribute with the given name or FALSE if an error occurred.

Předcházející | Domů | Další
hw_api_object->title | Nahoru | hw_api->object


hw_api->object

(no version information, might be only in CVS)

hw_api->object -- Retrieve attribute information

Description

object hw_api->object ( array parameter)

This function retrieves the attribute information of an object of any version. It will not return the document content. The parameter array contains the required elements 'objectIdentifier' and the optional elements 'attributeSelector' and 'version'.

The returned object is an instance of class HW_API_Object on success or HW_API_Error if an error occurred.

This simple example retrieves an object and checks for errors.

Příklad 1. Retrieve an object

<?php
function handle_error($error)
{
  $reason = $error->reason(0);
  echo "Type: <b>";
  switch ($reason->type()) {
    case 0:
      echo "Error";
      break;
    case 1:
      echo "Warning";
      break;
    case 2:
      echo "Message";
      break;
  }
  echo "</b><br />\n";
  echo "Description: " . $reason->description("en") . "<br />\n";
}

function list_attr($obj)
{
  echo "<table>\n";
  $count = $obj->count();
  for ($i=0; $i<$count; $i++) {
    $attr = $obj->attribute($i);
    printf("<tr><td align=\"right\" bgcolor=\"#c0c0c0\"><b>%s</b></td><td bgcolor=\"#F0F0F0\">%s</td></tr>\n",
             $attr->key(), $attr->value());
  }
  echo "</table>\n";
}

$hwapi = hwapi_hgcsp($g_config[HOSTNAME]);
$parms = array("objectIdentifier"=>"rootcollection", "attributeSelector"=>array("Title", "Name", "DocumentType"));
$root = $hwapi->object($parms);
if (get_class($root) == "HW_API_Error") {
  handle_error($root);
  exit;
}
list_attr($root);
?>

See also hwapi_content().

Předcházející | Domů | Další
hw_api_object->value | Nahoru | hw_api->objectbyanchor


hw_api->objectbyanchor

(no version information, might be only in CVS)

hw_api->objectbyanchor -- Returns the object an anchor belongs to

Description

object objectbyanchor ( array parameter)

This function retrieves an object the specified anchor belongs to. The parameter array contains the required element 'objectIdentifier' and the optional element 'attributeSelector'.

See also hwapi_dstofsrcanchor(),
         hwapi_srcanchors(),
         hwapi_dstanchors().

Předcházející | Domů | Další
hw_api->object | Nahoru | hw_api->parents


hw_api->parents

(no version information, might be only in CVS)

hw_api->parents -- Returns parents of an object

Description

array parents ( array parameter)

Retrieves the parents of an object. The parents can be further filtered by specifying an object query. The parameter array contains the required elements 'objectidentifier' and the optional elements 'attributeselector' and 'objectquery'.

The return value is an array of objects of type HW_API_Object or HW_API_Error.

See also hwapi_children().

Předcházející | Domů | Další
hw_api->objectbyanchor | Nahoru | hw_api_reason->description


hw_api_reason->description

(no version information, might be only in CVS)

hw_api_reason->description -- Returns description of reason

Description

string description ( void )

Returns the description of a reason

Předcházející | Domů | Další
hw_api->parents | Nahoru | hw_api_reason->type


hw_api_reason->type

(no version information, might be only in CVS)

hw_api_reason->type -- Returns type of reason

Description

object type ( void )

Returns the type of a reason.

Předcházející | Domů | Další
hw_api_reason->description | Nahoru | hw_api->remove


hw_api->remove

(no version information, might be only in CVS)

hw_api->remove -- Delete an object

Description

object remove ( array parameter)

Removes an object from the specified parent. Collections will be removed recursively. You can pass an optional object query to remove only those objects which match the query. An object will be deleted physically if it is the last instance. The parameter array contains the required elements 'objectidentifier' and 'parentidentifier'. If you want to remove a user or group 'parentidentifier' can be skipped. The optional parameter 'mode' determines how the deletion is performed. In normal mode the object will not be removed physically until all instances are removed. In physical mode all instances of the object will be deleted immediately. In removelinks mode all references to and from the objects will be deleted as well. In nonrecursive the deletion is not performed recursive. Removing a collection which is not empty will cause an error.

See also hwapi_move().

Předcházející | Domů | Další
hw_api_reason->type | Nahoru | hw_api->replace


hw_api->replace

(no version information, might be only in CVS)

hw_api->replace -- Replaces an object

Description

object replace ( array parameter)

Replaces the attributes and the content of an object The parameter array contains the required elements 'objectIdentifier' and 'object' and the optional parameters 'content', 'parameters', 'mode' and 'attributeSelector'. 'objectIdentifier' contains the object to be replaced. 'object' contains the new object. 'content' contains the new content. 'parameters' contain extra information for HTML documents. HTML_Language is the letter abbreviation of the language of the title. HTML_Base sets the base attribute of the HTML document. 'mode' can be a combination of the following flags:

HW_API_REPLACE_NORMAL

The object on the server is replace with the object passed.

HW_API_REPLACE_FORCE_VERSION_CONTROL

HW_API_REPLACE_AUTOMATIC_CHECKOUT

HW_API_REPLACE_AUTOMATIC_CHECKIN

HW_API_REPLACE_PLAIN

HW_API_REPLACE_REVERT_IF_NOT_CHANGED

HW_API_REPLACE_KEEP_TIME_MODIFIED

See also hwapi_insert().

Předcházející | Domů | Další
hw_api->remove | Nahoru | hw_api->setcommitedversion


hw_api->setcommitedversion

(no version information, might be only in CVS)

hw_api->setcommitedversion -- Commits version other than last version

Description

object setcommitedversion ( array parameter)

Commits a version of a document. The committed version is the one which is visible to users with read access. By default the last version is the committed version.

See also hwapi_checkin(),
         hwapi_checkout(),
         hwapi_revert().

Předcházející | Domů | Další
hw_api->replace | Nahoru | hw_api->srcanchors


hw_api->srcanchors

(no version information, might be only in CVS)

hw_api->srcanchors -- Returns a list of all source anchors

Description

object srcanchors ( array parameter)

Retrieves all source anchors of an object. The parameter array contains the required element 'objectIdentifier' and the optional elements 'attributeSelector' and 'objectQuery'.

See also hwapi_dstanchors().

Předcházející | Domů | Další
hw_api->setcommitedversion | Nahoru | hw_api->srcsofdst


hw_api->srcsofdst

(no version information, might be only in CVS)

hw_api->srcsofdst -- Returns source of a destination object

Description

object srcsofdst ( array parameter)

Retrieves all the source anchors pointing to the specified destination. The destination object can either be a destination anchor or a whole document. The parameters array contains the required element 'objectIdentifier' and the optional element 'attributeSelector' and 'objectQuery'. The function returns an array of objects or an error.

See also hwapi_dstofsrcanchor().

Předcházející | Domů | Další
hw_api->srcanchors | Nahoru | hw_api->unlock


hw_api->unlock

(no version information, might be only in CVS)

hw_api->unlock -- Unlocks a locked object

Description

object unlock ( array parameter)

Unlocks a locked object. Only the user who has locked the object and the system user may unlock an object. The parameter array contains the required element 'objectIdentifier' and the optional parameters 'mode' and 'objectquery'. The meaning of 'mode' is the same as in function hwapi_lock().

Returns TRUE on success or an object of class HW_API_Error.

See also hwapi_lock().

Předcházející | Domů | Další
hw_api->srcsofdst | Nahoru | hw_api->user


hw_api->user

(no version information, might be only in CVS)

hw_api->user -- Returns the own user object

Description

object user ( array parameter)

See also hwapi_userlist().

Předcházející | Domů | Další
hw_api->unlock | Nahoru | hw_api->userlist


hw_api->userlist

(no version information, might be only in CVS)

hw_api->userlist -- Returns a list of all logged in users

Description

object userlist ( array parameter)

See also hwapi_user().

Předcházející | Domů | Další
hw_api->user | Nahoru | iconv Functions


iconv Functions

Manuál PHP
Předcházející Další

XL. iconv Functions

Úvod

This module contains an interface to iconv character set conversion facility. With this module, you can turn a string represented by a local character set into the one represented by another character set, which may be the Unicode charcter set. Supported character sets depend on the iconv implementation of your system. Note that the iconv function on some systems may not work as you expect. In such case, it'd be a good idea to install the GNU libiconv library. It will most likely end up with more consistent results.

Since PHP 5.0.0, this extension comes with various utility functions that help you to write multilingual scripts. Let's have a look at the following sections to explore the new features.

Požadavky

You will need nothing if the system you are using is one of the recent POSIX-compliant systems because standard C libraries that are supplied in them must provide iconv facility. Otherwise, you have to get the libiconv library installed in your system.

Instalace

To use functions provided by this module, the PHP binary must be built with the following configure line: --with-iconv[=DIR].

Note to Windows® Users: In order to enable this module on a Windows® environment, you need to put a DLL file named iconv.dll or iconv-1.3.dll (prior to 4.2.1) which is bundled with the PHP/Win32 binary package into a directory specified by the PATH environment variable or one of the system directories of your Windows® installation.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 1. Iconv configuration options

Name | Default | Changeable
iconv.input_encoding | ICONV_INPUT_ENCODING | PHP_INI_ALL
iconv.output_encoding | ICONV_OUTPUT_ENCODING | PHP_INI_ALL
iconv.internal_encoding | ICONV_INTERNAL_ENCODING | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Since PHP 4.3.0 it is possible to identify at runtime which iconv implementation is adopted by this extension.

Tabulka 2. iconv constants

Name | Type | Description
ICONV_IMPL | string | The implementation name
ICONV_VERSION | string | The implementation version

Poznámka: Writing implementation-dependent scripts with these constants is strongly discouraged.

Since PHP 5.0.0, the following constants are also available:

Tabulka 3. iconv constants available since PHP 5.0.0

Name | Type | Description
ICONV_MIME_DECODE_STRICT | integer | A bitmask used for iconv_mime_decode()
ICONV_MIME_DECODE_CONTINUE_ON_ERROR | integer | A bitmask used for iconv_mime_decode()

Viz také

See also GNU Recode functions.

Obsah
iconv_get_encoding -- Retrieve internal configuration variables of iconv extension
iconv_mime_decode_headers -- Decodes multiple MIME header fields at once
iconv_mime_decode -- Decodes a MIME header field
iconv_mime_encode -- Composes a MIME header field
iconv_set_encoding -- Set current setting for character encoding conversion
iconv_strlen -- Returns the character count of string
iconv_strpos -- Finds position of first occurrence of a needle within a haystack.
iconv_strrpos -- Finds the last occurrence of a needle within the specified range of haystack.
iconv_substr -- Cut out part of a string
iconv -- Convert string to requested character encoding
ob_iconv_handler -- Convert character encoding as output buffer handler

Předcházející | Domů | Další
hw_api->userlist | Nahoru | iconv_get_encoding


iconv_get_encoding

(PHP 4 >= 4.0.5, PHP 5)

iconv_get_encoding -- Retrieve internal configuration variables of iconv extension

Description

mixed iconv_get_encoding ( [string type])

iconv_get_encoding() returns the current value of the internal configuration variable if successful, or FALSE on failure.

The value of the optional type can be:

all
input_encoding
output_encoding
internal_encoding

If type is omitted or set to "all", iconv_get_encoding() returns an array that stores all these variables.

Příklad 1. iconv_get_encoding() example

<pre>
<?php
iconv_set_encoding("internal_encoding", "UTF-8");
iconv_set_encoding("output_encoding", "ISO-8859-1");
var_dump(iconv_get_encoding('all'));
?>
</pre>

The printout of the above program will be:

Array
(
    [input_encoding] => ISO-8859-1
    [output_encoding] => ISO-8859-1
    [internal_encoding] => UTF-8
)

See also iconv_set_encoding() and ob_iconv_handler().

Předcházející | Domů | Další
iconv Functions | Nahoru | iconv_mime_decode_headers


iconv_mime_decode_headers

(PHP 5)

iconv_mime_decode_headers -- Decodes multiple MIME header fields at once

Description

array iconv_mime_decode_headers ( string encoded_headers [, int mode [, string charset]])

Returns an associative array that holds a whole set of MIME header fields specified by encoded_headers on success, or FALSE if an error occurs during the decoding.

Each key of the return value represents an individual field name and the corresponding element represents a field value. If more than one field of the same name are present, iconv_mime_decode_headers() automatically incorporates them into a numerically indexed array in the order of occurrence.

mode determines the behaviour in the event iconv_mime_decode_headers() encounters a malformed MIME header field. You can specify any combination of the following bitmasks.

Tabulka 1. Bitmasks acceptable to iconv_mime_decode_headers()

Value | Constant | Description
1 | ICONV_MIME_DECODE_STRICT | If set, the given header is decoded in full conformance with the standards defined in RFC2047. This option is disabled by default because there are a lot of broken mail user agents that don't follow the specification and don't produce correct MIME headers.
2 | ICONV_MIME_DECODE_CONTINUE_ON_ERROR | If set, iconv_mime_decode_headers() attempts to ignore any grammatical errors and continue to process a given header.

The optional charset parameter specifies the character set to represent the result by. If omitted, iconv.internal_charset will be used.

Příklad 1. iconv_mime_decode_headers() example

<?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);
?>

The output of this script should look like:

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
        )

)

See also iconv_mime_decode(),
mb_decode_mimeheader(),
imap_mime_header_decode(),
imap_base64()
and imap_qprint().

Předcházející | Domů | Další
iconv_get_encoding | Nahoru | iconv_mime_decode


iconv_mime_decode

(PHP 5)

iconv_mime_decode -- Decodes a MIME header field

Description

string iconv_mime_decode ( string encoded_header [, int mode [, string charset]])

Returns a decoded MIME field on success, or FALSE if an error occurs during the decoding.

mode determines the behaviour in the event iconv_mime_decode() encounters a malformed MIME header field. You can specify any combination of the following bitmasks.

Tabulka 1. Bitmasks acceptable to iconv_mime_decode()

Value | Constant | Description
1 | ICONV_MIME_DECODE_STRICT | If set, the given header is decoded in full conformance with the standards defined in RFC2047. This option is disabled by default because there are a lot of broken mail user agents that don't follow the specification and don't produce correct MIME headers.
2 | ICONV_MIME_DECODE_CONTINUE_ON_ERROR | If set, iconv_mime_decode() attempts to continue to process the given header even though an error occurs.

The optional charset parameter specifies the character set to represent the result by. If omitted, iconv.internal_charset will be used.

Příklad 1. iconv_mime_decode() example

<?php
// This yields "Subject: Prüfung Prüfung"
echo iconv_mime_decode("Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?=",
                       0, "ISO-8859-1");
?>

See also iconv_mime_decode_headers(),
mb_decode_mimeheader(),
imap_mime_header_decode(),
imap_base64()
and imap_qprint().

Předcházející | Domů | Další
iconv_mime_decode_headers | Nahoru | iconv_mime_encode


iconv_mime_encode

(PHP 5)

iconv_mime_encode -- Composes a MIME header field

Description

string iconv_mime_encode ( string field_name, string field_value [, array preferences])

Composes and returns a string that represents a valid MIME header field, which looks like the following:
Subject: =?ISO-8859-1?Q?Pr=FCfung_f=FCr?= Entwerfen von einer MIME kopfzeile
In the above example, "Subject" is the field name and the portion that begins with "=?ISO-8859-1?..." is the field value.

You can control the behaviour of iconv_mime_encode() by specifying an associative array that contains configuration items to the optional third parameter preferences. The items supported by iconv_mime_encode() are listed below. Note that item names are treated case-sensitive.

Tabulka 1. Configuration items supported by iconv_mime_encode()

Item | Type | Description | Default value | Example
scheme | boolean | Specifies the method to encode a field value by. The value of this item may be either "B" or "Q", where "B" stands for base64 encoding scheme and "Q" stands for quoted-printable encoding scheme. | B | B
input-charset | string | Specifies the character set in which the first parameter field_name and the second parameter field_value are presented. If not given, iconv_mime_encode() assumes those parameters are presented to it in the iconv.internal_charset ini setting. | iconv.internal_charset | ISO-8859-1
output-charset | string | Specifies the character set to use to compose the MIME header. If not given, the same value as input-charset will be used. | the same value as input-charset | UTF-8
line-length | integer | Specifies the maximum length of the header lines. The resulting header is "folded" to a set of multiple lines in case the resulting header field would be longer than the value of this parameter, according to RFC2822 - Internet Message Format. If not given, the length will be limited to 76 characters. | 76 | 996
line-break-chars | string | Specifies the sequence of characters to append to each line as an end-of-line sign when "folding" is performed on a long header field. If not given, this defaults to "\r\n" (CR LF). Note that this parameter is always treated as an ASCII string regardless of the value of input-charset. | \r\n | \n

Příklad 1. iconv_mime_encode() example:

<?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_Pr=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);
?>

See also imap_binary(),
mb_encode_mimeheader()
and imap_8bit().

Předcházející | Domů | Další
iconv_mime_decode | Nahoru | iconv_set_encoding


iconv_set_encoding

(PHP 4 >= 4.0.5, PHP 5)

iconv_set_encoding -- Set current setting for character encoding conversion

Description

bool iconv_set_encoding ( string type, string charset)

iconv_set_encoding() changes the value of the internal configuration variable specified by type to charset. Vrací TRUE při úspěchu, FALSE při selhání.

The value of type can be any one of those:

input_encoding
output_encoding
internal_encoding

Příklad 1. iconv_set_encoding() example:

<?php
iconv_set_encoding("internal_encoding", "UTF-8");
iconv_set_encoding("output_encoding", "ISO-8859-1");
?>

See also iconv_get_encoding() and ob_iconv_handler().

Předcházející | Domů | Další
iconv_mime_encode | Nahoru | iconv_strlen


iconv_strlen

(PHP 5)

iconv_strlen -- Returns the character count of string

Description

int iconv_strlen ( string str [, string charset])

Returns the character count of str.

In contrast to strlen(), iconv_strlen() counts the occurrences of characters in the given byte sequence str on the basis of the specified character set, the result of which is not necessarily identical to the length of the string in byte.

If charset parameter is omitted, str is assumed to be encoded in iconv.internal_charset.

See also strlen() and mb_strlen().

Předcházející | Domů | Další
iconv_set_encoding | Nahoru | iconv_strpos


iconv_strpos

(PHP 5)

iconv_strpos -- Finds position of first occurrence of a needle within a haystack.

Description

int iconv_strpos ( string haystack, string needle, int offset [, string charset])

Returns the numeric position of the first occurrence of needle in haystack.

The optional offset parameter specifies the position from which the search should be performed.

If needle is not found, iconv_strpos() will return FALSE.

Varování

Tato funkce může vracet booleovskou hodnotu FALSE, ale také nebooleovskou hodnotu odpovídající ohodnocení FALSE, například 0 nebo "". Čtěte prosím sekci o typu Boolean, kde najdete více informací. Pro testování návratové hodnoty této funkce použijte operátor ===.

If haystack or needle is not a string, it is converted to a string and applied as the ordinal value of a character.

In contrast to strpos(), the return value of iconv_strpos() is the number of characters that appear before the needle, rather than the offset in bytes to the position where the needle has been found. The characters are counted on the basis of the specified character set charset.

If charset parameter is omitted, string are assumed to be encoded in iconv.internal_charset.

See also strpos(), iconv_strrpos() and mb_strpos().

Předcházející | Domů | Další
iconv_strlen | Nahoru | iconv_strrpos


iconv_strrpos

(PHP 5)

iconv_strrpos -- Finds the last occurrence of a needle within the specified range of haystack.

Description

string iconv_strrpos ( string haystack, string needle [, string charset])

Returns the numeric position of the last occurrence of needle in haystack.

If needle is not found, iconv_strrpos() will return FALSE.

Varování

Tato funkce může vracet booleovskou hodnotu FALSE, ale také nebooleovskou hodnotu odpovídající ohodnocení FALSE, například 0 nebo "". Čtěte prosím sekci o typu Boolean, kde najdete více informací. Pro testování návratové hodnoty této funkce použijte operátor ===.

If haystack or needle is not a string, it is converted to a string and applied as the ordinal value of a character.

In contrast to strpos(), the return value of iconv_strrpos() is the number of characters that appear before the needle, rather than the offset in bytes to the position where the needle has been found. The characters are counted on the basis of the specified character set charset.

See also strrpos(), iconv_strpos() and mb_strrpos().

Předcházející | Domů | Další
iconv_strpos | Nahoru | iconv_substr


iconv_substr

(PHP 5)

iconv_substr -- Cut out part of a string

Description

string iconv_substr ( string str, int offset [, int length [, string charset]])

Returns the portion of str specified by the start and length parameters.

If start is non-negative, iconv_substr() cuts the portion out of str beginning at start'th character, counting from zero.

If start is negative, iconv_substr() cuts out the portion beginning at the position, start characters away from the end of str.

If length is given and is positive, the return value will contain at most length characters of the portion that begins at start (depending on the length of string). If str is shorter than start characters long, FALSE will be returned.

If negative length is passed, iconv_substr() cuts the portion out of str from the start'th character up to the character that is length characters away from the end of the string. In case start is also negative, the start position is calculated beforehand according to the rule explained above.

Note that offset and length parameters are always deemed to represent offsets that are calculated on the basis of the character set determined by charset, whilst the counterpart substr() always takes these for byte offsets. If charset is not given, the character set is determined by the iconv.internal_charset ini setting.

See also substr(), mb_substr() and mb_strcut().

Předcházející | Domů | Další
iconv_strrpos | Nahoru | iconv


iconv

(PHP 4 >= 4.0.5, PHP 5)

iconv -- Convert string to requested character encoding

Description

string iconv ( string in_charset, string out_charset, string str)

Performs a character set conversion on the string str from in_charset to out_charset. Returns the converted string or FALSE on failure.

Příklad 1. iconv() example:

<?php
echo iconv("ISO-8859-1", "UTF-8", "This is a test.");
?>

Předcházející | Domů | Další
iconv_substr | Nahoru | ob_iconv_handler


ob_iconv_handler

(PHP 4 >= 4.0.5, PHP 5)

ob_iconv_handler -- Convert character encoding as output buffer handler

Description

array ob_iconv_handler ( string contents, int status)

It converts the string encoded in internal_encoding to output_encoding.

internal_encoding and output_encoding should be defined by iconv_set_encoding() or in the configuration file php.ini.

Příklad 1. ob_iconv_handler() example:

<?php
ob_start("ob_iconv_handler"); // start output buffering
?>

See also iconv_get_encoding(), iconv_set_encoding() and output-control functions.

Předcházející | Domů | Další
iconv | Nahoru | Image Functions


Image Functions

Manuál PHP
Předcházející Další

XLI. Image Functions

Úvod

PHP is not limited to creating just HTML output. It can also be used to create and manipulate image files in a variety of different image formats, including gif, png, jpg, wbmp, and xpm. Even more convenient, PHP can output image streams directly to a browser. You will need to compile PHP with the GD library of image functions for this to work. GD and PHP may also require other libraries, depending on which image formats you want to work with.

You can use the image functions in PHP to get the size of JPEG, GIF, PNG, SWF, TIFF and JPEG2000 images.

Poznámka: Read requirements section about how to expand image capabilities to read, write and modify images and to read meta data of pictures taken by digital cameras.

Požadavky

If you have the GD library (available at http://www.boutell.com/gd/) you will also be able to create and manipulate images.

The format of images you are able to manipulate depend on the version of GD you install, and any other libraries GD might need to access those image formats. Versions of GD older than gd-1.6 support GIF format images, and do not support PNG, where versions greater than gd-1.6 support PNG, not GIF.

Poznámka: Since PHP 4.3 there is a bundled version of the GD lib. This bundled version has some additional features like alpha blending, and should be used in preference to the external library since its codebase is better maintained and more stable.

You may wish to enhance GD to handle more image formats.

Tabulka 1. Supported image formats

Image format | Library to download | Notes
gif |  | Only supported in GD versions older than gd-1.6. Read-only GIF support is available with PHP 4.3.0 and the bundled GD-library.
jpeg-6b | ftp://ftp.uu.net/graphics/jpeg/ |
png | http://www.libpng.org/pub/png/libpng.html | Only supported in GD versions greater than gd-1.6.
xpm | ftp://metalab.unc.edu/pub/Linux/libs/X/!INDEX.html | It's likely you have this library already available, if your system has an installed X-Environment.

You may wish to enhance GD to deal with different fonts. The following font libraries are supported:

Tabulka 2. Supported font libraries

Font library | Download | Notes
FreeType 1.x | http://www.freetype.org/ |
FreeType 2 | http://www.freetype.org/ |
T1lib | ftp://sunsite.unc.edu/pub/Linux/libs/graphics/) | Support for Type 1 fonts.

If you have PHP compiled with --enable-exif you are able to work with information stored in headers of JPEG and TIFF images. This way you can read meta data generated by digital cameras as mentioned above. These functions do not require the GD library.

Poznámka: PHP does not require any additional library for the exif module.

Instalace

To enable GD-support configure PHP --with-gd[=DIR], where DIR is the GD base install directory. To use the recommended bundled version of the GD library (which was first bundled in PHP 4.3.0), use the configure option --with-gd. In Windows, you'll include the GD2 DLL php_gd2.dll as an extension in php.ini. The GD1 DLL php_gd.dll was removed in PHP 4.3.2. Also note that the preferred truecolor image functions, such as imagecreatetruecolor(), require GD2.

To enable exif support in Windows, php_mbstring.dll must be loaded prior to php_exif.dll in php.ini.

To disable GD support in PHP 3 add --without-gd to your configure line.

Enhance the capabilities of GD to handle more image formats by specifying the --with-XXXX configure switch to your PHP configure line.

Tabulka 3. Supported image formats

Image Format | Configure Switch
jpeg-6b | To enable support for jpeg-6b add --with-jpeg-dir=DIR.
png | To enable support for png add --with-png-dir=DIR. Note, libpng requires the zlib library, therefore add --with-zlib-dir[=DIR] to your configure line.
xpm | To enable support for xpm add --with-xpm-dir=DIR. If configure is not able to find the required libraries, you may add the path to your X11 libraries.

Poznámka: When compiling PHP wth libpng, you must use the same version that was linked with the GD library.

Enhance the capabilities of GD to deal with different fonts by specifying the --with-XXXX configure switch to your PHP configure line.

Tabulka 4. Supported font libraries

Font library | Configure Switch
FreeType 1.x | To enable support for FreeType 1.x add --with-ttf[=DIR].
FreeType 2 | To enable support for FreeType 2 add --with-freetype-dir=DIR.
T1lib | To enable support for T1lib (Type 1 fonts) add --with-t1lib[=DIR].
Native TrueType string function | To enable support for native TrueType string function add --enable-gd-native-ttf.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Exif supports automatically conversion for Unicode and JIS character encodings of user comments when module mbstring is available. This is done by first decoding the comment using the specified characterset. The result is then encoded with another characterset which should match your HTTP output.

Tabulka 5. Exif configuration options

Name | Default | Changeable
exif.encode_unicode | "ISO-8859-15" | PHP_INI_ALL
exif.decode_unicode_motorola | "UCS-2BE" | PHP_INI_ALL
exif.decode_unicode_intel | "UCS-2LE" | PHP_INI_ALL
exif.encode_jis | "" | PHP_INI_ALL
exif.decode_jis_motorola | "JIS" | PHP_INI_ALL
exif.decode_jis_intel | "JIS" | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Zde je stručné vysvětlení konfiguračních direktiv.

exif.encode_unicode string

exif.encode_unicode defines the characterset UNICODE user comments are handled. This defaults to ISO-8859-15 which should work for most non Asian countries. The setting can be empty or must be an encoding supported by mbstring. If it is empty the current internal encoding of mbstring is used.

exif.decode_unicode_motorola string

exif.decode_unicode_motorola defines the image internal characterset for Unicode encoded user comments if image is in motorola byte order (big-endian). This setting cannot be empty but you can specify a list of encodings supported by mbstring. The default is UCS-2BE.

exif.decode_unicode_intel string

exif.decode_unicode_intel defines the image internal characterset for Unicode encoded user comments if image is in intel byte order (little-endian). This setting cannot be empty but you can specify a list of encodings supported by mbstring. The default is UCS-2LE.

exif.encode_jis string

exif.encode_jis defines the characterset JIS user comments are handled. This defaults to an empty value which forces the functions to use the current internal encoding of mbstring.

exif.decode_jis_motorola string

exif.decode_jis_motorola defines the image internal characterset for JIS encoded user comments if image is in motorola byte order (big-endian). This setting cannot be empty but you can specify a list of encodings supported by mbstring. The default is JIS.

exif.decode_jis_intel string

exif.decode_jis_intel defines the image internal characterset for JIS encoded user comments if image is in intel byte order (little-endian). This setting cannot be empty but you can specify a list of encodings supported by mbstring. The default is JIS.

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

IMG_GIF (integer)

IMG_JPG (integer)

IMG_JPEG (integer)

IMG_PNG (integer)

IMG_WBMP (integer)

IMG_XPM (integer)

IMG_COLOR_TILED (integer)

IMG_COLOR_STYLED (integer)

IMG_COLOR_BRUSHED (integer)

IMG_COLOR_STYLEDBRUSHED (integer)

IMG_COLOR_TRANSPARENT (integer)

IMG_ARC_ROUNDED (integer)

IMG_ARC_PIE (integer)

IMG_ARC_CHORD (integer)

IMG_ARC_NOFILL (integer)

IMG_ARC_EDGED (integer)

IMAGETYPE_GIF (integer)

IMAGETYPE_JPEG (integer)

IMAGETYPE_PNG (integer)

IMAGETYPE_SWF (integer)

IMAGETYPE_PSD (integer)

IMAGETYPE_BMP (integer)

IMAGETYPE_WBMP (integer)

IMAGETYPE_XBM (integer)

IMAGETYPE_TIFF_II (integer)

IMAGETYPE_TIFF_MM (integer)

IMAGETYPE_IFF (integer)

IMAGETYPE_JB2 (integer)

IMAGETYPE_JPC (integer)

IMAGETYPE_JP2 (integer)

IMAGETYPE_JPX (integer)

IMAGETYPE_SWC (integer)

Příklady

Příklad 1. PNG creation with 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);
?>
This example would be called from a page with a tag like: <img src="button.php?text=text">. The above button.php script then takes this "text" string and overlays it on top of a base image which in this case is "images/button1.png" and outputs the resulting image. This is a very convenient way to avoid having to draw new button images every time you want to change the text of a button. With this method they are dynamically generated.

Obsah
exif_imagetype -- Determine the type of an image
exif_read_data -- Reads the EXIF headers from JPEG or TIFF. This way you can read meta data generated by digital cameras.
exif_thumbnail -- Retrieve the embedded thumbnail of a TIFF or JPEG image
gd_info -- Retrieve information about the currently installed GD library
getimagesize -- Get the size of an image
image_type_to_mime_type -- Get Mime-Type for image-type returned by getimagesize, exif_read_data, exif_thumbnail, exif_imagetype
image2wbmp -- Output image to browser or file
imagealphablending -- Set the blending mode for an image
imageantialias -- Should antialias functions be used or not
imagearc -- Draw a partial ellipse
imagechar -- Draw a character horizontally
imagecharup -- Draw a character vertically
imagecolorallocate -- Allocate a color for an image
imagecolorallocatealpha -- Allocate a color for an image
imagecolorat -- Get the index of the color of a pixel
imagecolorclosest -- Get the index of the closest color to the specified color
imagecolorclosestalpha -- Get the index of the closest color to the specified color + alpha
imagecolorclosesthwb -- Get the index of the color which has the hue, white and blackness nearest to the given color
imagecolordeallocate -- De-allocate a color for an image
imagecolorexact -- Get the index of the specified color
imagecolorexactalpha -- Get the index of the specified color + alpha
imagecolormatch -- Makes the colors of the palette version of an image more closely match the true color version
imagecolorresolve -- Get the index of the specified color or its closest possible alternative
imagecolorresolvealpha -- Get the index of the specified color + alpha or its closest possible alternative
imagecolorset -- Set the color for the specified palette index
imagecolorsforindex -- Get the colors for an index
imagecolorstotal -- Find out the number of colors in an image's palette
imagecolortransparent -- Define a color as transparent
imagecopy -- Copy part of an image
imagecopymerge -- Copy and merge part of an image
imagecopymergegray -- Copy and merge part of an image with gray scale
imagecopyresampled -- Copy and resize part of an image with resampling
imagecopyresized -- Copy and resize part of an image
imagecreate -- Create a new palette based image
imagecreatefromgd2 -- Create a new image from GD2 file or URL
imagecreatefromgd2part -- Create a new image from a given part of GD2 file or URL
imagecreatefromgd -- Create a new image from GD file or URL
imagecreatefromgif -- Create a new image from file or URL
imagecreatefromjpeg -- Create a new image from file or URL
imagecreatefrompng -- Create a new image from file or URL
imagecreatefromstring -- Create a new image from the image stream in the string
imagecreatefromwbmp -- Create a new image from file or URL
imagecreatefromxbm -- Create a new image from file or URL
imagecreatefromxpm -- Create a new image from file or URL
imagecreatetruecolor -- Create a new true color image
imagedashedline -- Draw a dashed line
imagedestroy -- Destroy an image
imageellipse -- Draw an ellipse
imagefill -- Flood fill
imagefilledarc -- Draw a partial ellipse and fill it
imagefilledellipse -- Draw a filled ellipse
imagefilledpolygon -- Draw a filled polygon
imagefilledrectangle -- Draw a filled rectangle
imagefilltoborder -- Flood fill to specific color
imagefilter -- Applies Filter an image using a custom angle
imagefontheight -- Get font height
imagefontwidth -- Get font width
imageftbbox -- Give the bounding box of a text using fonts via freetype2
imagefttext -- Write text to the image using fonts using FreeType 2
imagegammacorrect -- Apply a gamma correction to a GD image
imagegd2 -- Output GD2 image
imagegd -- Output GD image to browser or file
imagegif -- Output image to browser or file
imageinterlace -- Enable or disable interlace
imageistruecolor -- Finds whether an image is a truecolor image.
imagejpeg -- Output image to browser or file
imagelayereffect -- Set the alpha blending flag to use the bundled libgd layering effects
imageline -- Draw a line
imageloadfont -- Load a new font
imagepalettecopy -- Copy the palette from one image to another
imagepng -- Output a PNG image to either the browser or a file
imagepolygon -- Draw a polygon
imagepsbbox -- Give the bounding box of a text rectangle using PostScript Type1 fonts
imagepscopyfont -- Make a copy of an already loaded font for further modification
imagepsencodefont -- Change the character encoding vector of a font
imagepsextendfont -- Extend or condense a font
imagepsfreefont -- Free memory used by a PostScript Type 1 font
imagepsloadfont -- Load a PostScript Type 1 font from file
imagepsslantfont -- Slant a font
imagepstext -- To draw a text string over an image using PostScript Type1 fonts
imagerectangle -- Draw a rectangle
imagerotate -- Rotate an image with a given angle
imagesavealpha -- Set the flag to save full alpha channel information (as opposed to single-color transparency) when saving PNG images.
imagesetbrush -- Set the brush image for line drawing
imagesetpixel -- Set a single pixel
imagesetstyle -- Set the style for line drawing
imagesetthickness -- Set the thickness for line drawing
imagesettile -- Set the tile image for filling
imagestring -- Draw a string horizontally
imagestringup -- Draw a string vertically
imagesx -- Get image width
imagesy -- Get image height
imagetruecolortopalette -- Convert a true color image to a palette image
imagettfbbox -- Give the bounding box of a text using TrueType fonts
imagettftext -- Write text to the image using TrueType fonts
imagetypes -- Return the image types supported by this PHP build
imagewbmp -- Output image to browser or file
imagexbm -- Output XBM image to browser or file
iptcembed -- Embed binary IPTC data into a JPEG image
iptcparse -- Parsuje binární IPTC http://www.iptc.org/ blok do jednotlivých tagů.
jpeg2wbmp -- Convert JPEG image file to WBMP image file
png2wbmp -- Convert PNG image file to WBMP image file
read_exif_data -- Alias of exif_read_data()

Předcházející | Domů | Další
ob_iconv_handler | Nahoru | exif_imagetype


exif_imagetype

(PHP 4 >= 4.3.0, PHP 5)

exif_imagetype -- Determine the type of an image

Description

int exif_imagetype ( string filename)

exif_imagetype() reads the first bytes of an image and checks its signature. When a correct signature is found a constant will be returned otherwise the return value is FALSE. The return value is the same value that getimagesize() returns in index 2 but this function is much faster.

The following constants are defined:

Tabulka 1. Imagetype Constants

Value | Constant
1 | IMAGETYPE_GIF
2 | IMAGETYPE_JPEG
3 | IMAGETYPE_PNG
4 | IMAGETYPE_SWF
5 | IMAGETYPE_PSD
6 | IMAGETYPE_BMP
7 | IMAGETYPE_TIFF_II (intel byte order)
8 | IMAGETYPE_TIFF_MM (motorola byte order)
9 | IMAGETYPE_JPC
10 | IMAGETYPE_JP2
11 | IMAGETYPE_JPX
12 | IMAGETYPE_JB2
13 | IMAGETYPE_SWC
14 | IMAGETYPE_IFF
15 | IMAGETYPE_WBMP
16 | IMAGETYPE_XBM

Poznámka: Support for JPC, JP2, JPX, JB2, XBM, and WBMP became available in PHP 4.3.2. Support for SWC as of PHP 4.3.0.

This function can be used to avoid calls to other exif functions with unsupported file types or in conjunction with $_SERVER['HTTP_ACCEPT'] to check whether or not the viewer is able to see a specific image in the browser.

Poznámka: This function is only available if PHP is compiled using --enable-exif.

Poznámka: This function does not require the GD image library.

Příklad 1. exif_imagetype() example

<?php

if (exif_imagetype("image.gif") != IMAGETYPE_GIF) {
    echo "The picture is not a gif";
}

?>

See also getimagesize().

Předcházející | Domů | Další
Image Functions | Nahoru | exif_read_data


exif_read_data

(PHP 4 >= 4.2.0, PHP 5)

exif_read_data -- Reads the EXIF headers from JPEG or TIFF. This way you can read meta data generated by digital cameras.

Description

array exif_read_data ( string filename [, string sections [, bool arrays [, bool thumbnail]]])

The exif_read_data() function reads the EXIF headers from a JPEG or TIFF image file. It returns an associative array where the indexes are the header names and the values are the values associated with those headers. If no data can be returned the result is FALSE.

filename is the name of the file to read. This cannot be a URL.

sections is a comma separated list of sections that need to be present in file to produce a result array. If none of the requested sections could be found the return value is FALSE.

FILE | FileName, FileSize, FileDateTime, SectionsFound
COMPUTED | html, Width, Height, IsColor and some more if available.
ANY_TAG | Any information that has a Tag e.g. IFD0, EXIF, ...
IFD0 | All tagged data of IFD0. In normal imagefiles this contains image size and so forth.
THUMBNAIL | A file is supposed to contain a thumbnail if it has a second IFD. All tagged information about the embedded thumbnail is stored in this section.
COMMENT | Comment headers of JPEG images.
EXIF | The EXIF section is a sub section of IFD0. It contains more detailed information about an image. Most of these entries are digital camera related.

arrays specifies whether or not each section becomes an array. The sections COMPUTED, THUMBNAIL and COMMENT allways become arrays as they may contain values whose names are conflict with other sections.

thumbnail whether or not to read the thumbnail itself and not only its tagged data.

Poznámka: Exif headers tend to be present in JPEG/TIFF images generated by digital cameras, but unfortunately each digital camera maker has a different idea of how to actually tag their images, so you can't always rely on a specific Exif header being present.

Windows ME/XP both can wipe the Exif headers when connecting to a camera. More information available at http://www.canon-asia.com/products/digital_cameras/winxp_problems.html.

Příklad 1. exif_read_data() example

<?php

echo "test1.jpg:<br />\n";
$exif = exif_read_data('tests/test1.jpg', 'IFD0');
echo $exif===false ? "No header data found.<br />\n" : "Image contains headers<br />";

$exif = exif_read_data('tests/test2.jpg', 0, true);
echo "test2.jpg:<br />\n";
foreach ($exif as $key => $section) {
    foreach ($section as $name => $val) {
        echo "$key.$name: $val<br />\n";
    }
}
?>

The first call fails because the image has no header information.
test1.jpg:
No header data found.
test2.jpg:
FILE.FileName: test2.jpg
FILE.FileDateTime: 1017666176
FILE.FileSize: 1240
FILE.FileType: 2
FILE.SectionsFound: ANY_TAG, IFD0, THUMBNAIL, COMMENT
COMPUTED.html: width="1" height="1"
COMPUTED.Height: 1
COMPUTED.Width: 1
COMPUTED.IsColor: 1
COMPUTED.ByteOrderMotorola: 1
COMPUTED.UserComment: Exif test image.
COMPUTED.UserCommentEncoding: ASCII
COMPUTED.Copyright: Photo (c) M.Boerger, Edited by M.Boerger.
COMPUTED.Copyright.Photographer: Photo (c) M.Boerger
COMPUTED.Copyright.Editor: Edited by M.Boerger.
IFD0.Copyright: Photo (c) M.Boerger
IFD0.UserComment: ASCII
THUMBNAIL.JPEGInterchangeFormat: 134
THUMBNAIL.JPEGInterchangeFormatLength: 523
COMMENT.0: Comment #1.
COMMENT.1: Comment #2.
COMMENT.2: Comment #3end
THUMBNAIL.JPEGInterchangeFormat: 134
THUMBNAIL.Thumbnail.Height: 1
THUMBNAIL.Thumbnail.Height: 1

Poznámka: If the image contains any IFD0 data then COMPUTED contains the entry ByteOrderMotorola which is 0 for little-endian (intel) and 1 for big-endian (motorola) byte order. This was added in PHP 4.3.

When an Exif header contains a Copyright note this itself can contain two values. As the solution is inconsistent in the Exif 2.10 standard the COMPUTED section will return both entries Copyright.Photographer and Copyright.Editor while the IFD0 sections contains the byte array with the NULL character that splits both entries. Or just the first entry if the datatype was wrong (normal behaviour of Exif). The COMPUTED will contain also an entry Copyright Which is either the original copyright string or it is a comma separated list of photo and editor copyright.

Poznámka: The tag UserComment has the same problem as the Copyright tag. It can store two values first the encoding used and second the value itself. If so the IFD section only contains the encoding or a byte array. The COMPUTED section will store both in the entries UserCommentEncoding and UserComment. The entry UserComment is available in both cases so it should be used in preference to the value in IFD0 section.

If the user comment uses Unicode or JIS encoding and the module mbstring is available this encoding will automatically changed according to the exif ini settings in the php.ini. This was added in PHP 4.3.

Poznámka: Height and Width are computed the same way getimagesize() does so their values must not be part of any header returned. Also html is a height/width text string to be used inside normal HTML.

Poznámka: Starting from PHP 4.3 the function can read all embedded IFD data including arrays (returned as such). Also the size of an embedded thumbnail is returned in THUMBNAIL subarray and the function exif_read_data() can return thumbnails in TIFF format. Last but not least there is no longer a maximum length for returned values (not until memory limit is reached).

Poznámka: This function is only available in PHP 4 compiled using --enable-exif. Its functionality and behaviour has changed in PHP 4.2. Earlier versions are very unstable.

Since PHP 4.3 user comment can automatically change encoding if PHP 4 was compiled using --enable-mbstring.

This function does not require the GD image library.

See also exif_thumbnail() and getimagesize().

Předcházející | Domů | Další
exif_imagetype | Nahoru | exif_thumbnail


exif_thumbnail

(PHP 4 >= 4.2.0, PHP 5)

exif_thumbnail -- Retrieve the embedded thumbnail of a TIFF or JPEG image

Description

string exif_thumbnail ( string filename [, int &width [, int &height [, int &imagetype]]])

exif_thumbnail() reads the embedded thumbnail of a TIFF or JPEG image. If the image contains no thumbnail FALSE will be returned.

The parameters width, height and imagetype are available since PHP 4.3.0 and return the size of the thumbnail as well as its type. It is possible that exif_thumbnail() cannot create an image but can determine its size. In this case, the return value is FALSE but width and height are set.

If you want to deliver thumbnails through this function, you should send the mimetype information using the header() function. The following example demonstrates this:

Příklad 1. exif_thumbnail() example

<?php
if (array_key_exists('file', $_REQUEST)) {
    $image = exif_thumbnail($_REQUEST['file'], $width, $height, $type);
} else {
    $image = false;
}
if ($image!==false) {
    header("Content-type: " .image_type_to_mime_type($type));
    echo $image;
    exit;
} else {
    // no thumbnail available, handle the error here
    echo "No thumbnail available";
}
?>

Starting from version PHP 4.3.0, the function exif_thumbnail() can return thumbnails in TIFF format.

Poznámka: This function is only available in PHP 4 compiled using --enable-exif. Its functionality and behaviour has changed in PHP 4.2.0

Poznámka: This function does not require the GD image library.

See also exif_read_data() and image_type_to_mime_type().

Předcházející | Domů | Další
exif_read_data | Nahoru | gd_info


gd_info

(PHP 4 >= 4.3.0, PHP 5)

gd_info -- Retrieve information about the currently installed GD library

Description

array gd_info ( void )

Returns an associative array describing the version and capabilities of the installed GD library.

Tabulka 1. Elements of array returned by gd_info()

Attribute | Meaning
GD Version | string value describing the installed libgd version.
Freetype Support | boolean value. TRUE if Freetype Support is installed.
Freetype Linkage | string value describing the way in which Freetype was linked. Expected values are: 'with freetype', 'with TTF library', and 'with unknown library'. This element will only be defined if Freetype Support evaluated to TRUE.
T1Lib Support | boolean value. TRUE if T1Lib support is included.
GIF Read Support | boolean value. TRUE if support for reading GIF images is included.
GIF Create Support | boolean value. TRUE if support for creating GIF images is included.
JPG Support | boolean value. TRUE if JPG support is included.
PNG Support | boolean value. TRUE if PNG support is included.
WBMP Support | boolean value. TRUE if WBMP support is included.
XBM Support | boolean value. TRUE if XBM support is included.

Příklad 1. Using gd_info()

<?php
var_dump(gd_info());
?>

The typical output is :

array(9) {
  ["GD Version"]=>
  string(24) "bundled (2.0 compatible)"
  ["FreeType Support"]=>
  bool(false)
  ["T1Lib Support"]=>
  bool(false)
  ["GIF Read Support"]=>
  bool(true)
  ["GIF Create Support"]=>
  bool(false)
  ["JPG Support"]=>
  bool(false)
  ["PNG Support"]=>
  bool(true)
  ["WBMP Support"]=>
  bool(true)
  ["XBM Support"]=>
  bool(false)
}

See also imagepng(),
imagejpeg(),
imagegif(),
imagewbmp(), and
imagetypes().

Předcházející | Domů | Další
exif_thumbnail | Nahoru | getimagesize


getimagesize

(PHP 3, PHP 4 , PHP 5)

getimagesize -- Get the size of an image

Description

array getimagesize ( string filename [, array imageinfo])

The getimagesize() function will determine the size of any GIF, JPG, PNG, SWF, SWC, PSD, TIFF, BMP, IFF, JP2, JPX, JB2, JPC, XBM, or WBMP image file and return the dimensions along with the file type and a height/width text string to be used inside a normal HTML IMG tag.

Poznámka: Support for JPC, JP2, JPX, JB2, XBM, and WBMP became available in PHP 4.3.2. Support for SWC as of PHP 4.3.0.

Returns an array with 4 elements. Index 0 contains the width of the image in pixels. Index 1 contains the height. Index 2 is a flag indicating the type of the image: 1 = GIF, 2 = JPG, 3 = PNG, 4 = SWF, 5 = PSD, 6 = BMP, 7 = TIFF(intel byte order), 8 = TIFF(motorola byte order), 9 = JPC, 10 = JP2, 11 = JPX, 12 = JB2, 13 = SWC, 14 = IFF, 15 = WBMP, 16 = XBM. These values correspond to the IMAGETYPE constants that were added in PHP 4.3. Index 3 is a text string with the correct height="yyy" width="xxx" string that can be used directly in an IMG tag.

Příklad 1. getimagesize (file)

<?php
list($width, $height, $type, $attr) = getimagesize("img/flag.jpg");
echo "<img src=\"img/flag.jpg\" $attr alt=\"getimagesize() example\" />";
?>

Příklad 2. getimagesize (URL)

<?php
$size = getimagesize("http://www.example.com/gifs/logo.gif");

// if the file name has space in it, encode it properly
$size = getimagesize("http://www.example.com/gifs/lo%20go.gif");

?>

With JPG images, two extra indexes are returned: channels and bits. channels will be 3 for RGB pictures and 4 for CMYK pictures. bits is the number of bits for each color.

Beginning with PHP 4.3, bits and channels are present for other image types, too. However, the presence of these values can be a bit confusing. As an example, GIF always uses 3 channels per pixel, but the number of bits per pixel cannot be calculated for an animated GIF with a global color table.

Some formats may contain no image or may contain multiple images. In these cases, getimagesize() might not be able to properly determine the image size. getimagesize() will return zero for width and height in these cases.

Beginning with PHP 4.3, getimagesize() also returns an additional parameter, mime, that corresponds with the MIME type of the image. This information can be used to deliver images with correct HTTP Content-type headers:

Příklad 3. getimagesize() and MIME types

<?php
$size = getimagesize($filename);
$fp=fopen($filename, "rb");
if ($size && $fp) {
  header("Content-type: {$size['mime']}");
  fpassthru($fp);
  exit;
} else {
  // error
}
?>

If accessing the filename image is impossible, or if it isn't a valid picture, getimagesize() will return FALSE and generate a warning.

The optional imageinfo parameter allows you to extract some extended information from the image file. Currently, this will return the different JPG APP markers as an associative array. Some programs use these APP markers to embed text information in images. A very common one is to embed IPTC http://www.iptc.org/ information in the APP13 marker. You can use the iptcparse() function to parse the binary APP13 marker into something readable.

Příklad 4. getimagesize() returning IPTC

<?php
$size = getimagesize("testimg.jpg", $info);
if (isset($info["APP13"])) {
    $iptc = iptcparse($info["APP13"]);
    var_dump($iptc);
}
?>

Poznámka: JPEG 2000 support was added in PHP 4.3.2. Note that JPC and JP2 are capable of having components with different bit depths. In this case, the value for "bits" is the highest bit depth encountered. Also, JP2 files may contain multiple JPEG 2000 codestreams. In this case, getimagesize() returns the values for the first codestream it encounters in the root of the file.

Poznámka: TIFF support was added in PHP 4.2.

This function does not require the GD image library.

See also image_type_to_mime_type(),
exif_imagetype(), exif_read_data()
and exif_thumbnail().

URL support was added in PHP 4.0.5.

Předcházející | Domů | Další
gd_info | Nahoru | image_type_to_mime_type


image_type_to_mime_type

(PHP 4 >= 4.3.0, PHP 5)

image_type_to_mime_type -- Get Mime-Type for image-type returned by getimagesize, exif_read_data, exif_thumbnail, exif_imagetype

Description

string image_type_to_mime_type ( int imagetype)

The image_type_to_mime_type() function will determine the Mime-Type for an IMAGETYPE constant.

Příklad 1. image_type_to_mime_type (file)

<?php
header("Content-type: " . image_type_to_mime_type(IMAGETYPE_PNG));
?>

The returned values are as follows

Tabulka 1. Returned values Constants

imagetype | Returned value
IMAGETYPE_GIF | image/gif
IMAGETYPE_JPEG | image/jpeg
IMAGETYPE_PNG | image/png
IMAGETYPE_SWF | application/x-shockwave-flash
IMAGETYPE_PSD | image/psd
IMAGETYPE_BMP | image/bmp
IMAGETYPE_TIFF_II (intel byte order) | image/tiff
IMAGETYPE_TIFF_MM (motorola byte order) | image/tiff
IMAGETYPE_JPC | application/octet-stream
IMAGETYPE_JP2 | image/jp2
IMAGETYPE_JPX | application/octet-stream
IMAGETYPE_JB2 | application/octet-stream
IMAGETYPE_SWC | application/x-shockwave-flash
IMAGETYPE_IFF | image/iff
IMAGETYPE_WBMP | image/vnd.wap.wbmp
IMAGETYPE_XBM | image/xbm

Poznámka: This function does not require the GD image library.

See also getimagesize(),
exif_imagetype(),
exif_read_data() and
exif_thumbnail().

Předcházející | Domů | Další
getimagesize | Nahoru | image2wbmp


image2wbmp

(PHP 4 >= 4.0.5, PHP 5)

image2wbmp -- Output image to browser or file

Description

int image2wbmp ( resource image [, string filename [, int threshold]])

image2wbmp() creates the WBMP file in filename from the image image. The image argument is the return from imagecreate().

The filename argument is optional, and if left off, the raw image stream will be output directly. By sending an image/vnd.wap.wbmp content-type using header(), you can create a PHP script that outputs WBMP images directly.

Příklad 1. image2wbmp() example

<?php

$file = 'php.png';
$image = imagecreatefrompng($file);

header('Content-type: ' . image_type_to_mime_type(IMAGETYPE_WBMP));
image2wbmp($image); // output the stream directly

?>

Poznámka: WBMP support is only available if PHP was compiled against GD-1.8 or later.

See also imagewbmp().

Předcházející | Domů | Další
image_type_to_mime_type | Nahoru | imagealphablending


imagealphablending

(PHP 4 >= 4.0.6, PHP 5)

imagealphablending -- Set the blending mode for an image

Description

bool imagealphablending ( resource image, bool blendmode)

imagealphablending() allows for two different modes of drawing on truecolor images. In blending mode, the alpha channel component of the color supplied to all drawing function, such as imagesetpixel() determines how much of the underlying color should be allowed to shine through. As a result, gd automatically blends the existing color at that point with the drawing color, and stores the result in the image. The resulting pixel is opaque. In non-blending mode, the drawing color is copied literally with its alpha channel information, replacing the destination pixel. Blending mode is not available when drawing on palette images. If blendmode is TRUE, then blending mode is enabled, otherwise disabled. Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: This function was added in PHP 4.0.6 and requires GD 2.0.1

Předcházející | Domů | Další
image2wbmp | Nahoru | imageantialias


imageantialias

(PHP 4 >= 4.3.2, PHP 5)

imageantialias -- Should antialias functions be used or not

Description

bool imageantialias ( resource im, bool on)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Poznámka: This function is only available if PHP is compiled with the bundled version of the GD library.

See also imagecreatetruecolor().

Předcházející | Domů | Další
imagealphablending | Nahoru | imagearc


imagearc

(PHP 3, PHP 4 , PHP 5)

imagearc -- Draw a partial ellipse

Description

int imagearc ( resource image, int cx, int cy, int w, int h, int s, int e, int color)

imagearc() draws a partial ellipse centered at cx, cy (top left is 0, 0) in the image represented by image. W and h specifies the ellipse's width and height respectively while the start and end points are specified in degrees indicated by the s and e arguments. 0° is located at the three-o'clock position, and the arc is drawn counter-clockwise.

Příklad 1. Drawing a circle with imagearc()

<?php

// create a 200*200 image
$img = imagecreate(200, 200);

// allocate some colors
$white = imagecolorallocate($img, 255, 255, 255);

// draw a white circle
imagearc($img, 100, 100, 150, 150, 0, 360, $white);

// output image in the browser
header("Content-type: image/png");
imagepng($img);

// free memory
imagedestroy($img);

?>

See also imageellipse(),
imagefilledellipse(), and
imagefilledarc().

Předcházející | Domů | Další
imageantialias | Nahoru | imagechar


imagechar

(PHP 3, PHP 4 , PHP 5)

imagechar -- Draw a character horizontally

Description

int imagechar ( resource image, int font, int x, int y, string c, int color)

imagechar() draws the first character of c in the image identified by image with its upper-left at x,y (top left is 0, 0) with the color color. If font is 1, 2, 3, 4 or 5, a built-in font is used (with higher numbers corresponding to larger fonts).

Příklad 1. imagechar() example

<?php

$im = imagecreate(100, 100);

$string = 'PHP';

$bg = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);

// prints a black "P" in the top left corner
imagechar($im, 1, 0, 0, $string, $black);

header('Content-type: image/png');
imagepng($im);

?>

See also imagecharup() and imageloadfont().

Předcházející | Domů | Další
imagearc | Nahoru | imagecharup


imagecharup

(PHP 3, PHP 4 , PHP 5)

imagecharup -- Draw a character vertically

Description

int imagecharup ( resource image, int font, int x, int y, string c, int color)

imagecharup() draws the character c vertically in the image identified by image at coordinates x, y (top left is 0, 0) with the color color. If font is 1, 2, 3, 4 or 5, a built-in font is used.

Příklad 1. imagecharup() example

<?php

$im = imagecreate(100, 100);

$string = 'Note that the first letter is a N';

$bg = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);

// prints a black "Z" on a white background
imagecharup($im, 3, 10, 10, $string, $black);

header('Content-type: image/png');
imagepng($im);

?>

See also imagechar() and imageloadfont().

Předcházející | Domů | Další
imagechar | Nahoru | imagecolorallocate


imagecolorallocate

(PHP 3, PHP 4 , PHP 5)

imagecolorallocate -- Allocate a color for an image

Description

int imagecolorallocate ( resource image, int red, int green, int blue)

imagecolorallocate() returns a color identifier representing the color composed of the given RGB components. The image argument is the return from the imagecreate() function. red, green and blue are the values of the red, green and blue component of the requested color respectively. These parameters are integers between 0 and 255 or hexadecimals between 0x00 and 0xFF. imagecolorallocate() must be called to create each color that is to be used in the image represented by image.

Poznámka: The first call to imagecolorallocate() fills the background color.

<?php

// sets background to red
$background = imagecolorallocate($im, 255, 0, 0);

// sets some colors
$white = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);

// hexadecimal way
$white = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);
$black = imagecolorallocate($im, 0x00, 0x00, 0x00);

?>

Returns -1 if the allocation failed.

See also imagecolorallocatealpha() and imagecolordeallocate().

Předcházející | Domů | Další
imagecharup | Nahoru | imagecolorallocatealpha


imagecolorallocatealpha

(PHP 4 >= 4.3.2, PHP 5)

imagecolorallocatealpha -- Allocate a color for an image

Description

int imagecolorallocatealpha ( resource image, int red, int green, int blue, int alpha)

imagecolorallocatealpha() behaves identically to imagecolorallocate() with the addition of the transparency parameter alpha which may have a value between 0 and 127. 0 indicates completely opaque while 127 indicates completely transparent.

Returns FALSE if the allocation failed.

Příklad 1. Example of using imagecolorallocatealpha()

<?php
$size = 300;
$image=imagecreatetruecolor($size, $size);

// something to get a white background with black border
$back = imagecolorallocate($image, 255, 255, 255);
$border = imagecolorallocate($image, 0, 0, 0);
imagefilledrectangle($image, 0, 0, $size - 1, $size - 1, $back);
imagerectangle($image, 0, 0, $size - 1, $size - 1, $border);

$yellow_x = 100;
$yellow_y = 75;
$red_x    = 120;
$red_y    = 165;
$blue_x   = 187;
$blue_y   = 125;
$radius   = 150;

// allocate colors with alpha values
$yellow = imagecolorallocatealpha($image, 255, 255, 0, 75);
$red    = imagecolorallocatealpha($image, 255, 0, 0, 75);
$blue   = imagecolorallocatealpha($image, 0, 0, 255, 75);

// drawing 3 overlapped circle
imagefilledellipse($image, $yellow_x, $yellow_y, $radius, $radius, $yellow);
imagefilledellipse($image, $red_x, $red_y, $radius, $radius, $red);
imagefilledellipse($image, $blue_x, $blue_y, $radius, $radius, $blue);

// don't forget to output a correct header!
header('Content-type: image/png');

// and finally, output the result
imagepng($image);
imagedestroy($image);
?>

See also imagecolorallocate() and imagecolordeallocate().

Předcházející | Domů | Další
imagecolorallocate | Nahoru | imagecolorat


imagecolorat

(PHP 3, PHP 4 , PHP 5)

imagecolorat -- Get the index of the color of a pixel

Description

int imagecolorat ( resource image, int x, int y)

Returns the index of the color of the pixel at the specified location in the image specified by image.

If PHP is compiled against GD library 2.0 or higher and the image is a truecolor image, this function returns the RGB value of that pixel as integer. Use bitshifting and masking to access the distinct red, green and blue component values:

Příklad 1. Access distinct RGB values

<?php
$im = ImageCreateFromPng("rockym.png");
$rgb = ImageColorAt($im, 100, 100);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
?>

See also imagecolorset() and imagecolorsforindex().

Předcházející | Domů | Další
imagecolorallocatealpha | Nahoru | imagecolorclosest


imagecolorclosest

(PHP 3, PHP 4 , PHP 5)

imagecolorclosest -- Get the index of the closest color to the specified color

Description

int imagecolorclosest ( resource image, int red, int green, int blue)

Returns the index of the color in the palette of the image which is "closest" to the specified RGB value.

The "distance" between the desired color and each color in the palette is calculated as if the RGB values represented points in three-dimensional space.

See also imagecolorexact().

Předcházející | Domů | Další
imagecolorat | Nahoru | imagecolorclosestalpha


imagecolorclosestalpha

(PHP 4 >= 4.0.6, PHP 5)

imagecolorclosestalpha -- Get the index of the closest color to the specified color + alpha

Description

int imagecolorclosestalpha ( resource image, int red, int green, int blue, int alpha)

Returns the index of the color in the palette of the image which is "closest" to the specified RGB value and alpha level.

Poznámka: This function was added in PHP 4.0.6 and requires GD 2.0.1

See also imagecolorexactalpha().

Předcházející | Domů | Další
imagecolorclosest | Nahoru | imagecolorclosesthwb


imagecolorclosesthwb

(PHP 4 >= 4.0.1, PHP 5)

imagecolorclosesthwb -- Get the index of the color which has the hue, white and blackness nearest to the given color

Description

int imagecolorclosesthwb ( resource image, int red, int green, int blue)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
imagecolorclosestalpha | Nahoru | imagecolordeallocate


imagecolordeallocate

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

imagecolordeallocate -- De-allocate a color for an image

Description

int imagecolordeallocate ( resource image, int color)

The imagecolordeallocate() function de-allocates a color previously allocated with imagecolorallocate() or imagecolorallocatealpha().

<?php
$white = imagecolorallocate($im, 255, 255, 255);
imagecolordeallocate($im, $white);
?>

See also imagecolorallocate() and imagecolorallocatealpha().

Předcházející | Domů | Další
imagecolorclosesthwb | Nahoru | imagecolorexact


imagecolorexact

(PHP 3, PHP 4 , PHP 5)

imagecolorexact -- Get the index of the specified color

Description

int imagecolorexact ( resource image, int red, int green, int blue)

Returns the index of the specified color in the palette of the image.

If the color does not exist in the image's palette, -1 is returned.

See also imagecolorclosest().

Předcházející | Domů | Další
imagecolordeallocate | Nahoru | imagecolorexactalpha


imagecolorexactalpha

(PHP 4 >= 4.0.6, PHP 5)

imagecolorexactalpha -- Get the index of the specified color + alpha

Description

int imagecolorexactalpha ( resource image, int red, int green, int blue, int alpha)

Returns the index of the specified color+alpha in the palette of the image.

If the color does not exist in the image's palette, -1 is returned.

See also imagecolorclosestalpha().

Poznámka: This function was added in PHP 4.0.6 and requires GD 2.0.1 or later

Předcházející | Domů | Další
imagecolorexact | Nahoru | imagecolormatch


imagecolormatch

(PHP 4 >= 4.3.0, PHP 5)

imagecolormatch -- Makes the colors of the palette version of an image more closely match the true color version

Description

bool imagecolormatch ( resource image1, resource image2)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

image1 must be Truecolor, image2 must be Palette, and both image1 and image2 must be the same size.

Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: This function is only available if PHP is compiled with the bundled version of the GD library.

See also imagecreatetruecolor().

Předcházející | Domů | Další
imagecolorexactalpha | Nahoru | imagecolorresolve


imagecolorresolve

(PHP 3>= 3.0.2, PHP 4 , PHP 5)

imagecolorresolve -- Get the index of the specified color or its closest possible alternative

Description

int imagecolorresolve ( resource image, int red, int green, int blue)

This function is guaranteed to return a color index for a requested color, either the exact color or the closest possible alternative.

See also imagecolorclosest().

Předcházející | Domů | Další
imagecolormatch | Nahoru | imagecolorresolvealpha


imagecolorresolvealpha

(PHP 4 >= 4.0.6, PHP 5)

imagecolorresolvealpha -- Get the index of the specified color + alpha or its closest possible alternative

Description

int imagecolorresolvealpha ( resource image, int red, int green, int blue, int alpha)

This function is guaranteed to return a color index for a requested color, either the exact color or the closest possible alternative.

See also imagecolorclosestalpha().

Poznámka: This function was added in PHP 4.0.6 and requires GD 2.0.1

Předcházející | Domů | Další
imagecolorresolve | Nahoru | imagecolorset


imagecolorset

(PHP 3, PHP 4 , PHP 5)

imagecolorset -- Set the color for the specified palette index

Description

bool imagecolorset ( resource image, int index, int red, int green, int blue)

This sets the specified index in the palette to the specified color. This is useful for creating flood-fill-like effects in palleted images without the overhead of performing the actual flood-fill.

See also imagecolorat().

Předcházející | Domů | Další
imagecolorresolvealpha | Nahoru | imagecolorsforindex


imagecolorsforindex

(PHP 3, PHP 4 , PHP 5)

imagecolorsforindex -- Get the colors for an index

Description

array imagecolorsforindex ( resource image, int index)

This returns an associative array with red, green, blue and alpha keys that contain the appropriate values for the specified color index.

Příklad 1. imagecolorsforindex() example

<?php

// open an image
$im = imagecreatefrompng('nexen.png');

// get a color
$start_x = 40;
$start_y = 50;
$color_index = imagecolorat($im, $start_x, $start_y);

// make it human readable
$color_tran = imagecolorsforindex($im, $color_index);

// what is it ?
echo '<pre>';
print_r($color_tran);
echo '</pre>';

?>

This example will output :

Array
(
    [red] => 226
    [green] => 222
    [blue] => 252
    [alpha] => 0
)

See also imagecolorat() and imagecolorexact().

Předcházející | Domů | Další
imagecolorset | Nahoru | imagecolorstotal


imagecolorstotal

(PHP 3, PHP 4 , PHP 5)

imagecolorstotal -- Find out the number of colors in an image's palette

Description

int imagecolorstotal ( resource image)

This returns the number of colors in the specified image's palette.

See also imagecolorat() and imagecolorsforindex().

Předcházející | Domů | Další
imagecolorsforindex | Nahoru | imagecolortransparent


imagecolortransparent

(PHP 3, PHP 4 , PHP 5)

imagecolortransparent -- Define a color as transparent

Description

int imagecolortransparent ( resource image [, int color])

imagecolortransparent() sets the transparent color in the image image to color. image is the image identifier returned by imagecreate() and color is a color identifier returned by imagecolorallocate().

Poznámka: The transparent color is a property of the image, transparency is not a property of the color. Once you have a set a color to be the transparent color, any regions of the image in that color that were drawn previously will be transparent.

The identifier of the new (or current, if none is specified) transparent color is returned.

Předcházející | Domů | Další
imagecolorstotal | Nahoru | imagecopy


imagecopy

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

imagecopy -- Copy part of an image

Description

int imagecopy ( resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h)

Copy a part of src_im onto dst_im starting at the x,y coordinates src_x, src_y with a width of src_w and a height of src_h. The portion defined will be copied onto the x,y coordinates, dst_x and dst_y.

Předcházející | Domů | Další
imagecolortransparent | Nahoru | imagecopymerge


imagecopymerge

(PHP 4 >= 4.0.1, PHP 5)

imagecopymerge -- Copy and merge part of an image

Description

int imagecopymerge ( resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h, int pct)

Copy a part of src_im onto dst_im starting at the x,y coordinates src_x, src_y with a width of src_w and a height of src_h. The portion defined will be copied onto the x,y coordinates, dst_x and dst_y. The two images will be merged according to pct which can range from 0 to 100. When pct = 0, no action is taken, when 100 this function behaves identically to imagecopy().

Poznámka: This function was added in PHP 4.0.6

Předcházející | Domů | Další
imagecopy | Nahoru | imagecopymergegray


imagecopymergegray

(PHP 4 >= 4.0.6, PHP 5)

imagecopymergegray -- Copy and merge part of an image with gray scale

Description

int imagecopymergegray ( resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h, int pct)

imagecopymergegray() copy a part of src_im onto dst_im starting at the x,y coordinates src_x, src_y with a width of src_w and a height of src_h. The portion defined will be copied onto the x,y coordinates, dst_x and dst_y. The two images will be merged according to pct which can range from 0 to 100. When pct = 0, no action is taken, when 100 this function behaves identically to imagecopy().

This function is identical to imagecopymerge() except that when merging it preserves the hue of the source by converting the destination pixels to gray scale before the copy operation.

Poznámka: This function was added in PHP 4.0.6

Předcházející | Domů | Další
imagecopymerge | Nahoru | imagecopyresampled


imagecopyresampled

(PHP 4 >= 4.0.6, PHP 5)

imagecopyresampled -- Copy and resize part of an image with resampling

Description

bool imagecopyresampled ( resource dst_im, resource src_im, int dstX, int dstY, int srcX, int srcY, int dstW, int dstH, int srcW, int srcH)

imagecopyresampled() copies a rectangular portion of one image to another image, smoothly interpolating pixel values so that, in particular, reducing the size of an image still retains a great deal of clarity. Vrací TRUE při úspěchu, FALSE při selhání. dst_im is the destination image, src_im is the source image identifier. If the source and destination coordinates and width and heights differ, appropriate stretching or shrinking of the image fragment will be performed. The coordinates refer to the upper left corner. This function can be used to copy regions within the same image (if dst_im is the same as src_im) but if the regions overlap the results will be unpredictable.

Poznámka: There is a problem due to palette image limitations (255+1 colors). Resampling or filtering an image commonly needs more colors than 255, a kind of approximation is used to calculate the new resampled pixel and its color. With a palette image we try to allocate a new color, if that failed, we choose the closest (in theory) computed color. This is not always the closest visual color. That may produce a weird result, like blank (or visually blank) images. To skip this problem, please use a truecolor image as a destination image, such as one created by imagecreatetruecolor().

Poznámka: imagecopyresampled() requires GD 2.0.l or greater.

See also imagecopyresized().

Předcházející | Domů | Další
imagecopymergegray | Nahoru | imagecopyresized


imagecopyresized

(PHP 3, PHP 4 , PHP 5)

imagecopyresized -- Copy and resize part of an image

Description

int imagecopyresized ( resource dst_im, resource src_im, int dstX, int dstY, int srcX, int srcY, int dstW, int dstH, int srcW, int srcH)

imagecopyresized() copies a rectangular portion of one image to another image. Dst_im is the destination image, src_im is the source image identifier. If the source and destination coordinates and width and heights differ, appropriate stretching or shrinking of the image fragment will be performed. The coordinates refer to the upper left corner. This function can be used to copy regions within the same image (if dst_im is the same as src_im) but if the regions overlap the results will be unpredictable.

Poznámka: There is a problem due to palette image limitations (255+1 colors). Resampling or filtering an image commonly needs more colors than 255, a kind of approximation is used to calculate the new resampled pixel and its color. With a palette image we try to allocate a new color, if that failed, we choose the closest (in theory) computed color. This is not always the closest visual color. That may produce a weird result, like blank (or visually blank) images. To skip this problem, please use a truecolor image as a destination image, such as one created by imagecreatetruecolor().

See also imagecopyresampled().

Předcházející | Domů | Další
imagecopyresampled | Nahoru | imagecreate


imagecreate

(PHP 3, PHP 4 , PHP 5)

imagecreate -- Create a new palette based image

Description

resource imagecreate ( int x_size, int y_size)

imagecreate() returns an image identifier representing a blank image of size x_size by y_size.

We recommend the use of imagecreatetruecolor().

Příklad 1. Creating a new GD image stream and outputting an image.

<?php
header("Content-type: image/png");
$im = @imagecreate(50, 100)
    or die("Cannot Initialize new GD image stream");
$background_color = imagecolorallocate($im, 255, 255, 255);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  "A Simple Text String", $text_color);
imagepng($im);
imagedestroy($im);
?>

See also imagedestroy() and imagecreatetruecolor().

Předcházející | Domů | Další
imagecopyresized | Nahoru | imagecreatefromgd2


imagecreatefromgd2

(PHP 4 >= 4.1.0, PHP 5)

imagecreatefromgd2 -- Create a new image from GD2 file or URL

Description

resource imagecreatefromgd2 ( string filename)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Tip: S touto funkcí můžete používat URL jako název souboru, pokud je zapnuta volba "fopen wrappers". Pro více detailů o tom, jak specifikovat název souboru, a Jpro seznam porporovaných URL protokolů, viz fopen().

Varování

Verze PHP pro Windows starší než 4.3.0 nepodporuje pro tuto funkci dálkový přístup k souborům, a to ani když je aktivní volba allow_url_fopen.

Předcházející | Domů | Další
imagecreate | Nahoru | imagecreatefromgd2part


imagecreatefromgd2part

(PHP 4 >= 4.1.0, PHP 5)

imagecreatefromgd2part -- Create a new image from a given part of GD2 file or URL

Description

resource imagecreatefromgd2part ( string filename, int srcX, int srcY, int width, int height)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Tip: S touto funkcí můžete používat URL jako název souboru, pokud je zapnuta volba "fopen wrappers". Pro více detailů o tom, jak specifikovat název souboru, a Jpro seznam porporovaných URL protokolů, viz fopen().

Varování

Verze PHP pro Windows starší než 4.3.0 nepodporuje pro tuto funkci dálkový přístup k souborům, a to ani když je aktivní volba allow_url_fopen.

Předcházející | Domů | Další
imagecreatefromgd2 | Nahoru | imagecreatefromgd


imagecreatefromgd

(PHP 4 >= 4.1.0, PHP 5)

imagecreatefromgd -- Create a new image from GD file or URL

Description

resource imagecreatefromgd ( string filename)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Tip: S touto funkcí můžete používat URL jako název souboru, pokud je zapnuta volba "fopen wrappers". Pro více detailů o tom, jak specifikovat název souboru, a Jpro seznam porporovaných URL protokolů, viz fopen().

Varování

Verze PHP pro Windows starší než 4.3.0 nepodporuje pro tuto funkci dálkový přístup k souborům, a to ani když je aktivní volba allow_url_fopen.

Předcházející | Domů | Další
imagecreatefromgd2part | Nahoru | imagecreatefromgif


imagecreatefromgif

(PHP 3, PHP 4 , PHP 5)

imagecreatefromgif -- Create a new image from file or URL

Description

resource imagecreatefromgif ( string filename)

imagecreatefromgif() returns an image identifier representing the image obtained from the given filename.

imagecreatefromgif() returns an empty string on failure. It also outputs an error message, which unfortunately displays as a broken link in a browser. To ease debugging the following example will produce an error GIF:

Příklad 1. Example to handle an error during creation (courtesy vic at zymsys dot com)

<?php
function LoadGif ($imgname)
{
    $im = @imagecreatefromgif ($imgname); /* Attempt to open */
    if (!$im) { /* See if it failed */
        $im = imagecreate (150, 30); /* Create a blank image */
        $bgc = imagecolorallocate ($im, 255, 255, 255);
        $tc = imagecolorallocate ($im, 0, 0, 0);
        imagefilledrectangle ($im, 0, 0, 150, 30, $bgc);
        /* Output an errmsg */
        imagestring ($im, 1, 5, 5, "Error loading $imgname", $tc);
    }
    return $im;
}
?>

Poznámka: Since all GIF support was removed from the GD library in version 1.6, this function is not available if you are using that version of the GD library.

Tip: S touto funkcí můžete používat URL jako název souboru, pokud je zapnuta volba "fopen wrappers". Pro více detailů o tom, jak specifikovat název souboru, a Jpro seznam porporovaných URL protokolů, viz fopen().

Varování

Verze PHP pro Windows starší než 4.3.0 nepodporuje pro tuto funkci dálkový přístup k souborům, a to ani když je aktivní volba allow_url_fopen.

Předcházející | Domů | Další
imagecreatefromgd | Nahoru | imagecreatefromjpeg


imagecreatefromjpeg

(PHP 3>= 3.0.16, PHP 4 , PHP 5)

imagecreatefromjpeg -- Create a new image from file or URL

Description

resource imagecreatefromjpeg ( string filename)

imagecreatefromjpeg() returns an image identifier representing the image obtained from the given filename.

imagecreatefromjpeg() returns an empty string on failure. It also outputs an error message, which unfortunately displays as a broken link in a browser. To ease debugging the following example will produce an error JPEG:

Příklad 1. Example to handle an error during creation (courtesy vic at zymsys dot com )

<?php
function LoadJpeg($imgname)
{
    $im = @imagecreatefromjpeg($imgname); /* Attempt to open */
    if (!$im) { /* See if it failed */
        $im  = imagecreate(150, 30); /* Create a blank image */
        $bgc = imagecolorallocate($im, 255, 255, 255);
        $tc  = imagecolorallocate($im, 0, 0, 0);
        imagefilledrectangle($im, 0, 0, 150, 30, $bgc);
        /* Output an errmsg */
        imagestring($im, 1, 5, 5, "Error loading $imgname", $tc);
    }
    return $im;
}
?>

Tip: S touto funkcí můžete používat URL jako název souboru, pokud je zapnuta volba "fopen wrappers". Pro více detailů o tom, jak specifikovat název souboru, a Jpro seznam porporovaných URL protokolů, viz fopen().

Varování

Verze PHP pro Windows starší než 4.3.0 nepodporuje pro tuto funkci dálkový přístup k souborům, a to ani když je aktivní volba allow_url_fopen.

Předcházející | Domů | Další
imagecreatefromgif | Nahoru | imagecreatefrompng


imagecreatefrompng

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

imagecreatefrompng -- Create a new image from file or URL

Description

resource imagecreatefrompng ( string filename)

imagecreatefrompng() returns an image identifier representing the image obtained from the given filename.

imagecreatefrompng() returns an empty string on failure. It also outputs an error message, which unfortunately displays as a broken link in a browser. To ease debugging the following example will produce an error PNG:

Příklad 1. Example to handle an error during creation (courtesy vic at zymsys dot com)

<?php
function LoadPNG($imgname)
{
    $im = @imagecreatefrompng($imgname); /* Attempt to open */
    if (!$im) { /* See if it failed */
        $im  = imagecreate(150, 30); /* Create a blank image */
        $bgc = imagecolorallocate($im, 255, 255, 255);
        $tc  = imagecolorallocate($im, 0, 0, 0);
        imagefilledrectangle($im, 0, 0, 150, 30, $bgc);
        /* Output an errmsg */
        imagestring($im, 1, 5, 5, "Error loading $imgname", $tc);
    }
    return $im;
}
?>

Tip: S touto funkcí můžete používat URL jako název souboru, pokud je zapnuta volba "fopen wrappers". Pro více detailů o tom, jak specifikovat název souboru, a Jpro seznam porporovaných URL protokolů, viz fopen().

Varování

Verze PHP pro Windows starší než 4.3.0 nepodporuje pro tuto funkci dálkový přístup k souborům, a to ani když je aktivní volba allow_url_fopen.

Předcházející | Domů | Další
imagecreatefromjpeg | Nahoru | imagecreatefromstring


imagecreatefromstring

(PHP 4 >= 4.0.4, PHP 5)

imagecreatefromstring -- Create a new image from the image stream in the string

Description

resource imagecreatefromstring ( string image)

imagecreatefromstring() returns an image identifier representing the image obtained from the given string.

Předcházející | Domů | Další
imagecreatefrompng | Nahoru | imagecreatefromwbmp


imagecreatefromwbmp

(PHP 4 >= 4.0.1, PHP 5)

imagecreatefromwbmp -- Create a new image from file or URL

Description

resource imagecreatefromwbmp ( string filename)

imagecreatefromwbmp() returns an image identifier representing the image obtained from the given filename.

imagecreatefromwbmp() returns an empty string on failure. It also outputs an error message, which unfortunately displays as a broken link in a browser. To ease debugging the following example will produce an error WBMP:

Příklad 1. Example to handle an error during creation (courtesy vic at zymsys dot com)

<?php
function LoadWBMP($imgname)
{
    $im = @imagecreatefromwbmp($imgname); /* Attempt to open */
    if (!$im) { /* See if it failed */
        $im  = imagecreate (20, 20); /* Create a blank image */
        $bgc = imagecolorallocate($im, 255, 255, 255);
        $tc  = imagecolorallocate($im, 0, 0, 0);
        imagefilledrectangle($im, 0, 0, 10, 10, $bgc);
        /* Output an errmsg */
        imagestring($im, 1, 5, 5, "Error loading $imgname", $tc);
    }
    return $im;
}
?>

Poznámka: WBMP support is only available if PHP was compiled against GD-1.8 or later.

Tip: S touto funkcí můžete používat URL jako název souboru, pokud je zapnuta volba "fopen wrappers". Pro více detailů o tom, jak specifikovat název souboru, a Jpro seznam porporovaných URL protokolů, viz fopen().

Varování

Verze PHP pro Windows starší než 4.3.0 nepodporuje pro tuto funkci dálkový přístup k souborům, a to ani když je aktivní volba allow_url_fopen.

Předcházející | Domů | Další
imagecreatefromstring | Nahoru | imagecreatefromxbm


imagecreatefromxbm

(PHP 4 >= 4.0.1, PHP 5)

imagecreatefromxbm -- Create a new image from file or URL

Description

resource imagecreatefromxbm ( string filename)

imagecreatefromxbm() returns an image identifier representing the image obtained from the given filename.

Tip: S touto funkcí můžete používat URL jako název souboru, pokud je zapnuta volba "fopen wrappers". Pro více detailů o tom, jak specifikovat název souboru, a Jpro seznam porporovaných URL protokolů, viz fopen().

Varování

Verze PHP pro Windows starší než 4.3.0 nepodporuje pro tuto funkci dálkový přístup k souborům, a to ani když je aktivní volba allow_url_fopen.

Předcházející | Domů | Další
imagecreatefromwbmp | Nahoru | imagecreatefromxpm


imagecreatefromxpm

(PHP 4 >= 4.0.1, PHP 5)

imagecreatefromxpm -- Create a new image from file or URL

Description

resource imagecreatefromxpm ( string filename)

imagecreatefromxpm() returns an image identifier representing the image obtained from the given filename.

Poznámka: This function is only available if PHP is compiled with the bundled version of the GD library.

Tip: S touto funkcí můžete používat URL jako název souboru, pokud je zapnuta volba "fopen wrappers". Pro více detailů o tom, jak specifikovat název souboru, a Jpro seznam porporovaných URL protokolů, viz fopen().

Varování

Verze PHP pro Windows starší než 4.3.0 nepodporuje pro tuto funkci dálkový přístup k souborům, a to ani když je aktivní volba allow_url_fopen.

Předcházející | Domů | Další
imagecreatefromxbm | Nahoru | imagecreatetruecolor


imagecreatetruecolor

(PHP 4 >= 4.0.6, PHP 5)

imagecreatetruecolor -- Create a new true color image

Description

resource imagecreatetruecolor ( int x_size, int y_size)

imagecreatetruecolor() returns an image identifier representing a black image of size x_size by y_size.

Příklad 1. Creating a new GD image stream and outputting an image.

<?php
header ("Content-type: image/png");
$im = @imagecreatetruecolor(50, 100)
      or die("Cannot Initialize new GD image stream");
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  "A Simple Text String", $text_color);
imagepng($im);
imagedestroy($im);
?>

Poznámka: This function was added in PHP 4.0.6 and requires GD 2.0.1 or later.

Poznámka: This function will not work with GIF file formats.

See also imagedestroy() and imagecreate().

Předcházející | Domů | Další
imagecreatefromxpm | Nahoru | imagedashedline


imagedashedline

(PHP 3, PHP 4 , PHP 5)

imagedashedline -- Draw a dashed line

Description

int imagedashedline ( resource image, int x1, int y1, int x2, int y2, int color)

This function is deprecated. Use combination of imagesetstyle() and imageline() instead.

Předcházející | Domů | Další
imagecreatetruecolor | Nahoru | imagedestroy


imagedestroy

(PHP 3, PHP 4 , PHP 5)

imagedestroy -- Destroy an image

Description

int imagedestroy ( resource image)

imagedestroy() frees any memory associated with image image. image is the image identifier returned by the imagecreate() function.

Předcházející | Domů | Další
imagedashedline | Nahoru | imageellipse


imageellipse

(PHP 4 >= 4.0.6, PHP 5)

imageellipse -- Draw an ellipse

Description

int imageellipse ( resource image, int cx, int cy, int w, int h, int color)

imageellipse() draws an ellipse centered at cx, cy (top left is 0, 0) in the image represented by image. W and h specifies the ellipse's width and height respectively. The color of the ellipse is specified by color.

Poznámka: This function was added in PHP 4.0.6 and requires GD 2.0.2 or later which can be obtained at http://www.boutell.com/gd/

Příklad 1. imageellipse() example

<?php

// create a blank image
$image = imagecreate(400, 300);

// fill the background color
$bg = imagecolorallocate($image, 0, 0, 0);

// choose a color for the ellipse
$col_ellipse = imagecolorallocate($image, 255, 255, 255);

// draw the ellipse
imageellipse($image, 200, 150, 300, 200, $col_ellipse);

// output the picture
header("Content-type: image/png");
imagepng($image);

?>

See also imagefilledellipse() and imagearc().

Předcházející | Domů | Další
imagedestroy | Nahoru | imagefill


imagefill

(PHP 3, PHP 4 , PHP 5)

imagefill -- Flood fill

Description

int imagefill ( resource image, int x, int y, int color)

imagefill() performs a flood fill starting at coordinate x, y (top left is 0, 0) with color color in the image image.

Předcházející | Domů | Další
imageellipse | Nahoru | imagefilledarc


imagefilledarc

(PHP 4 >= 4.0.6, PHP 5)

imagefilledarc -- Draw a partial ellipse and fill it

Description

bool imagefilledarc ( resource image, int cx, int cy, int w, int h, int s, int e, int color, int style)

imagefilledarc() draws a partial ellipse centered at cx, cy (top left is 0, 0) in the image represented by image. Vrací TRUE při úspěchu, FALSE při selhání. W and h specifies the ellipse's width and height respectively while the start and end points are specified in degrees indicated by the s and e arguments. style is a bitwise OR of the following possibilities:

  1. IMG_ARC_PIE

  2. IMG_ARC_CHORD

  3. IMG_ARC_NOFILL

  4. IMG_ARC_EDGED

IMG_ARC_PIE and IMG_ARC_CHORD are mutually exclusive; IMG_ARC_CHORD just connects the starting and ending angles with a straight line, while IMG_ARC_PIE produces a rounded edge. IMG_ARC_NOFILL indicates that the arc or chord should be outlined, not filled. IMG_ARC_EDGED, used together with IMG_ARC_NOFILL, indicates that the beginning and ending angles should be connected to the center - this is a good way to outline (rather than fill) a 'pie slice'.

Příklad 1. Creating a 3D looking pie

<?php

// this example is provided by poxy at klam dot is

// create image
$image = imagecreate(100, 100);

// allocate some solors
$white    = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
$gray     = imagecolorallocate($image, 0xC0, 0xC0, 0xC0);
$darkgray = imagecolorallocate($image, 0x90, 0x90, 0x90);
$navy     = imagecolorallocate($image, 0x00, 0x00, 0x80);
$darknavy = imagecolorallocate($image, 0x00, 0x00, 0x50);
$red      = imagecolorallocate($image, 0xFF, 0x00, 0x00);
$darkred  = imagecolorallocate($image, 0x90, 0x00, 0x00);

// make the 3D effect
for ($i = 60; $i > 50; $i--) {
   imagefilledarc($image, 50, $i, 100, 50, 0, 45, $darknavy, IMG_ARC_PIE);
  imagefilledarc($image, 50, $i, 100, 50, 45, 75 , $darkgray, IMG_ARC_PIE);
  imagefilledarc($image, 50, $i, 100, 50, 75, 360 , $darkred, IMG_ARC_PIE);
}

imagefilledarc($image, 50, 50, 100, 50, 0, 45, $navy, IMG_ARC_PIE);
imagefilledarc($image, 50, 50, 100, 50, 45, 75 , $gray, IMG_ARC_PIE);
imagefilledarc($image, 50, 50, 100, 50, 75, 360 , $red, IMG_ARC_PIE);

// flush image
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>

Poznámka: This function was added in PHP 4.0.6 and requires GD 2.0.1

Předcházející | Domů | Další
imagefill | Nahoru | imagefilledellipse


imagefilledellipse

(PHP 4 >= 4.0.6, PHP 5)

imagefilledellipse -- Draw a filled ellipse

Description

bool imagefilledellipse ( resource image, int cx, int cy, int w, int h, int color)

imagefilledellipse() draws an ellipse centered at cx, cy (top left is 0, 0) in the image represented by image. W and h specifies the ellipse's width and height respectively. The ellipse is filled using color. Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: This function was added in PHP 4.0.6 and requires GD 2.0.1 or later

Příklad 1. imagefilledellipse() example

<?php

// create a blank image
$image = imagecreate(400, 300);

// fill the background color
$bg = imagecolorallocate($image, 0, 0, 0);

// choose a color for the ellipse
$col_ellipse = imagecolorallocate($image, 255, 255, 255);

// draw the white ellipse
imagefilledellipse($image, 200, 150, 300, 200, $col_ellipse);

// output the picture
header("Content-type: image/png");
imagepng($image);

?>

See also imageellipse() and imagefilledarc().

Předcházející | Domů | Další
imagefilledarc | Nahoru | imagefilledpolygon


imagefilledpolygon

(PHP 3, PHP 4 , PHP 5)

imagefilledpolygon -- Draw a filled polygon

Description

int imagefilledpolygon ( resource image, array points, int num_points, int color)

imagefilledpolygon() creates a filled polygon in image image. points is a PHP array containing the polygon's vertices, i.e. points[0] = x0, points[1] = y0, points[2] = x1, points[3] = y1, etc. num_points is the total number of vertices.

Příklad 1. imagefilledpolygon() example

<?php

// this example is provided by ecofarm at mullum dot com dot au

// set up array of points for polygon
$values = array(
  0  => 40,    // x1
  1  => 50,    // y1
  2  => 20,    // x2
  3  => 240,   // y2
  4  => 60,    // x3
  5  => 60,    // y3
  6  => 240,   // x4
  7  => 20,    // y4
  8  => 50,    // x5
  9  => 40,    // y5
  10 => 10,    // x6
  11 => 10,    // y6
);

// create image
$im = imagecreate(250, 250);

// some colors
$bg   = imagecolorallocate($im, 255, 255, 255);
$blue = imagecolorallocate($im, 0, 0, 255);

// draw a polygon
imagefilledpolygon($im, $values, 6, $blue );

// flush image
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);

?>

Předcházející | Domů | Další
imagefilledellipse | Nahoru | imagefilledrectangle


imagefilledrectangle

(PHP 3, PHP 4 , PHP 5)

imagefilledrectangle -- Draw a filled rectangle

Description

int imagefilledrectangle ( resource image, int x1, int y1, int x2, int y2, int color)

imagefilledrectangle() creates a filled rectangle of color color in image image starting at upper left coordinates x1, y1 and ending at bottom right coordinates x2, y2. 0, 0 is the top left corner of the image.

Předcházející | Domů | Další
imagefilledpolygon | Nahoru | imagefilltoborder


imagefilltoborder

(PHP 3, PHP 4 , PHP 5)

imagefilltoborder -- Flood fill to specific color

Description

int imagefilltoborder ( resource image, int x, int y, int border, int color)

imagefilltoborder() performs a flood fill whose border color is defined by border. The starting point for the fill is x, y (top left is 0, 0) and the region is filled with color color.

Předcházející | Domů | Další
imagefilledrectangle | Nahoru | imagefilter


imagefilter

(PHP 5)

imagefilter -- Applies Filter an image using a custom angle

Description

bool imagefilter ( resource src_im, int filtertype [, int args])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Poznámka: This function is only available if PHP is compiled with the bundled version of the GD library.

Předcházející | Domů | Další
imagefilltoborder | Nahoru | imagefontheight


imagefontheight

(PHP 3, PHP 4 , PHP 5)

imagefontheight -- Get font height

Description

int imagefontheight ( int font)

Returns the pixel height of a character in the specified font.

See also imagefontwidth() and imageloadfont().

Předcházející | Domů | Další
imagefilter | Nahoru | imagefontwidth


imagefontwidth

(PHP 3, PHP 4 , PHP 5)

imagefontwidth -- Get font width

Description

int imagefontwidth ( int font)

Returns the pixel width of a character in font.

See also imagefontheight() and imageloadfont().

Předcházející | Domů | Další
imagefontheight | Nahoru | imageftbbox


imageftbbox

(PHP 4 >= 4.1.0, PHP 5)

imageftbbox -- Give the bounding box of a text using fonts via freetype2

Description

array imageftbbox ( int size, int angle, string font_file, string text [, array extrainfo])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
imagefontwidth | Nahoru | imagefttext


imagefttext

(PHP 4 >= 4.1.0, PHP 5)

imagefttext -- Write text to the image using fonts using FreeType 2

Description

array imagefttext ( resource image, int size, int angle, int x, int y, int col, string font_file, string text [, array extrainfo])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
imageftbbox | Nahoru | imagegammacorrect


imagegammacorrect

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

imagegammacorrect -- Apply a gamma correction to a GD image

Description

int imagegammacorrect ( resource image, float inputgamma, float outputgamma)

The imagegammacorrect() function applies gamma correction to a gd image stream (image) given an input gamma, the parameter inputgamma and an output gamma, the parameter outputgamma.

Předcházející | Domů | Další
imagefttext | Nahoru | imagegd2


imagegd2

(PHP 4 >= 4.1.0, PHP 5)

imagegd2 -- Output GD2 image

Description

int imagegd2 ( resource image [, string filename [, int chunk_size [, int type]]])

imagegd2() outputs GD2 image to browser or file.

The optional type parameter is either IMG_GD2_RAW or IMG_GD2_COMPRESSED. Default is IMG_GD2_RAW.

Poznámka: The optional chunk_size and type parameters became available in PHP 4.3.2.

Předcházející | Domů | Další
imagegammacorrect | Nahoru | imagegd


imagegd

(PHP 4 >= 4.1.0, PHP 5)

imagegd -- Output GD image to browser or file

Description

int imagegd ( resource image [, string filename])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
imagegd2 | Nahoru | imagegif


imagegif

(PHP 3, PHP 4 , PHP 5)

imagegif -- Output image to browser or file

Description

int imagegif ( resource image [, string filename])

imagegif() creates the GIF file in filename from the image image. The image argument is the return from the imagecreate() function.

The image format will be GIF87a unless the image has been made transparent with imagecolortransparent(), in which case the image format will be GIF89a.

The filename argument is optional, and if left off, the raw image stream will be output directly. By sending an image/gif content-type using header(), you can create a PHP script that outputs GIF images directly.

Poznámka: Since all GIF support was removed from the GD library in version 1.6, this function is not available if you are using that version of the GD library. Support is expected to return in a version subsequent to the rerelease of GIF support in the GD library in mid 2004. For more information, see the GD Project site.

The following code snippet allows you to write more portable PHP applications by auto-detecting the type of GD support which is available. Replace the sequence header ("Content-type: image/gif"); imagegif ($im); by the more flexible sequence:

<?php
if (function_exists("imagegif")) {
    header("Content-type: image/gif");
    imagegif($im);
} elseif (function_exists("imagejpeg")) {
    header("Content-type: image/jpeg");
    imagejpeg($im, "", 0.5);
} elseif (function_exists("imagepng")) {
    header("Content-type: image/png");
    imagepng($im);
} elseif (function_exists("imagewbmp")) {
    header("Content-type: image/vnd.wap.wbmp");
    imagewbmp($im);
} else {
    die("No image support in this PHP server");
}
?>

Poznámka: As of version 3.0.18 and 4.0.2 you can use the function imagetypes() in place of function_exists() for checking the presence of the various supported image formats:

<?php
if (imagetypes() & IMG_GIF) {
    header ("Content-type: image/gif");
    imagegif ($im);
} elseif (imagetypes() & IMG_JPG) {
    /* ... etc. */
}
?>

See also imagepng(), imagewbmp(), imagejpeg() and imagetypes().

Předcházející | Domů | Další
imagegd | Nahoru | imageinterlace


imageinterlace

(PHP 3, PHP 4 , PHP 5)

imageinterlace -- Enable or disable interlace

Description

int imageinterlace ( resource image [, int interlace])

imageinterlace() turns the interlace bit on or off. If interlace is 1 the image will be interlaced, and if interlace is 0 the interlace bit is turned off.

If the interlace bit is set and the image is used as a JPEG image, the image is created as a progressive JPEG.

This function returns whether the interlace bit is set for the image.

Předcházející | Domů | Další
imagegif | Nahoru | imageistruecolor


imageistruecolor

(PHP 4 >= 4.3.2, PHP 5)

imageistruecolor -- Finds whether an image is a truecolor image.

Description

bool imageistruecolor ( resource image)

imageistruecolor() finds whether the image image is a truecolor image.

See also imagecreatetruecolor().

Předcházející | Domů | Další
imageinterlace | Nahoru | imagejpeg


imagejpeg

(PHP 3>= 3.0.16, PHP 4 , PHP 5)

imagejpeg -- Output image to browser or file

Description

int imagejpeg ( resource image [, string filename [, int quality]])

imagejpeg() creates the JPEG file in filename from the image image. The image argument is the return from the imagecreate() function.

The filename argument is optional, and if left off, the raw image stream will be output directly. To skip the filename argument in order to provide a quality argument just use an empty string (''). By sending an image/jpeg content-type using header(), you can create a PHP script that outputs JPEG images directly.

Poznámka: JPEG support is only available if PHP was compiled against GD-1.8 or later.

quality is optional, and ranges from 0 (worst quality, smaller file) to 100 (best quality, biggest file). The default is the default IJG quality value (about 75).

If you want to output Progressive JPEGs, you need to set interlacing on with imageinterlace().

See also
imagepng(),
imagegif(),
imagewbmp(),
imageinterlace() and
imagetypes().

Předcházející | Domů | Další
imageistruecolor | Nahoru | imagelayereffect


imagelayereffect

(PHP 4 >= 4.3.0, PHP 5)

imagelayereffect -- Set the alpha blending flag to use the bundled libgd layering effects

Description

bool imagelayereffect ( resource image, int effect)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Poznámka: This function is only available if PHP is compiled with the bundled version of the GD library.

Předcházející | Domů | Další
imagejpeg | Nahoru | imageline


imageline

(PHP 3, PHP 4 , PHP 5)

imageline -- Draw a line

Description

int imageline ( resource image, int x1, int y1, int x2, int y2, int color)

imageline() draws a line from x1, y1 to x2, y2 (top left is 0, 0) in image image of color color.

Příklad 1. Drawing a thick line

<?php

function imagelinethick($image, $x1, $y1, $x2, $y2, $color, $thick = 1)
{
    /* this way it works well only for orthogonal lines
    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);
}

?>

See also imagecreate() and imagecolorallocate().

Předcházející | Domů | Další
imagelayereffect | Nahoru | imageloadfont


imageloadfont

(PHP 3, PHP 4 , PHP 5)

imageloadfont -- Load a new font

Description

int imageloadfont ( string file)

imageloadfont() loads a user-defined bitmap font and returns an identifier for the font (that is always greater than 5, so it will not conflict with the built-in fonts).

The font file format is currently binary and architecture dependent. This means you should generate the font files on the same type of CPU as the machine you are running PHP on.

Tabulka 1. Font file format

byte position | C data type | description
byte 0-3 | int | number of characters in the font
byte 4-7 | int | value of first character in the font (often 32 for space)
byte 8-11 | int | pixel width of each character
byte 12-15 | int | pixel height of each character
byte 16- | char | array with character data, one byte per pixel in each character, for a total of (nchars*width*height) bytes.

See also imagefontwidth() and imagefontheight().

Předcházející | Domů | Další
imageline | Nahoru | imagepalettecopy


imagepalettecopy

(PHP 4 >= 4.0.1, PHP 5)

imagepalettecopy -- Copy the palette from one image to another

Description

int imagepalettecopy ( resource destination, resource source)

imagepalettecopy() copies the palette from the source image to the destination image.

Předcházející | Domů | Další
imageloadfont | Nahoru | imagepng


imagepng

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

imagepng -- Output a PNG image to either the browser or a file

Description

int imagepng ( resource image [, string filename])

The imagepng() outputs a GD image stream (image) in PNG format to standard output (usually the browser) or, if a filename is given by the filename it outputs the image to the file.

<?php
$im = imagecreatefrompng("test.png");
imagepng($im);
?>

See also imagegif(), imagewbmp(), imagejpeg(), imagetypes().

Předcházející | Domů | Další
imagepalettecopy | Nahoru | imagepolygon


imagepolygon

(PHP 3, PHP 4 , PHP 5)

imagepolygon -- Draw a polygon

Description

int imagepolygon ( resource image, array points, int num_points, int color)

imagepolygon() creates a polygon in image id. points is a PHP array containing the polygon's vertices, i.e. points[0] = x0, points[1] = y0, points[2] = x1, points[3] = y1, etc. num_points is the total number of points (vertices).

Příklad 1. imagepolygon() example

<?php
// create a blank image
$image = imagecreate(400, 300);

// fill the background color
$bg = imagecolorallocate($image, 0, 0, 0);

// choose a color for the polygon
$col_poly = imagecolorallocate($image, 255, 255, 255);

// draw the polygon
imagepolygon($image,
             array (
                    0, 0,
                    100, 200,
                    300, 200
             ),
             3,
             $col_poly);

// output the picture
header("Content-type: image/png");
imagepng($image);

?>

See also imagecreate() and imagecreatetruecolor().

Předcházející | Domů | Další
imagepng | Nahoru | imagepsbbox


imagepsbbox

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

imagepsbbox -- Give the bounding box of a text rectangle using PostScript Type1 fonts

Description

array imagepsbbox ( string text, int font, int size [, int space [, int tightness [, float angle]]])

size is expressed in pixels.

space allows you to change the default value of a space in a font. This amount is added to the normal value and can also be negative.

tightness allows you to control the amount of white space between characters. This amount is added to the normal character width and can also be negative.

angle is in degrees.

Parameters space and tightness are expressed in character space units, where 1 unit is 1/1000th of an em-square.

Parameters space, tightness, and angle are optional.

The bounding box is calculated using information available from character metrics, and unfortunately tends to differ slightly from the results achieved by actually rasterizing the text. If the angle is 0 degrees, you can expect the text to need 1 pixel more to every direction.

Poznámka: Tato funkce je k dispozici pouze v případě, že PHP bylo zkompilováno s přepínačem --enable-t1lib.

This function returns an array containing the following elements:

0 | lower left x-coordinate
1 | lower left y-coordinate
2 | upper right x-coordinate
3 | upper right y-coordinate

See also imagepstext().

Předcházející | Domů | Další
imagepolygon | Nahoru | imagepscopyfont


imagepscopyfont

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

imagepscopyfont -- Make a copy of an already loaded font for further modification

Description

int imagepscopyfont ( int fontindex)

Use this function if you need make further modifications to the font, for example extending/condensing, slanting it or changing its character encoding vector, but need to keep the original along as well. Note that the font you want to copy must be one obtained using imagepsloadfont(), not a font that is itself a copied one. You can although make modifications to it before copying.

If you use this function, you must free the fonts obtained this way yourself and in reverse order. Otherwise your script will hang.

In the case everything went right, a valid font index will be returned and can be used for further purposes. Otherwise the function returns FALSE and prints a message describing what went wrong.

Poznámka: Tato funkce je k dispozici pouze v případě, že PHP bylo zkompilováno s přepínačem --enable-t1lib.

See also imagepsloadfont().

Předcházející | Domů | Další
imagepsbbox | Nahoru | imagepsencodefont


imagepsencodefont

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

imagepsencodefont -- Change the character encoding vector of a font

Description

int imagepsencodefont ( int font_index, string encodingfile)

Loads a character encoding vector from a file and changes the fonts encoding vector to it. As a PostScript fonts default vector lacks most of the character positions above 127, you'll definitely want to change this if you use an other language than English. The exact format of this file is described in T1libs documentation. T1lib comes with two ready-to-use files, IsoLatin1.enc and IsoLatin2.enc.

If you find yourself using this function all the time, a much better way to define the encoding is to set ps.default_encoding in the configuration file to point to the right encoding file and all fonts you load will automatically have the right encoding.

Poznámka: Tato funkce je k dispozici pouze v případě, že PHP bylo zkompilováno s přepínačem --enable-t1lib.

Předcházející | Domů | Další
imagepscopyfont | Nahoru | imagepsextendfont


imagepsextendfont

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

imagepsextendfont -- Extend or condense a font

Description

bool imagepsextendfont ( int font_index, float extend)

Extend or condense a font (font_index), if the value of the extend parameter is less than one you will be condensing the font.

Poznámka: Tato funkce je k dispozici pouze v případě, že PHP bylo zkompilováno s přepínačem --enable-t1lib.

Předcházející | Domů | Další
imagepsencodefont | Nahoru | imagepsfreefont


imagepsfreefont

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

imagepsfreefont -- Free memory used by a PostScript Type 1 font

Description

void imagepsfreefont ( int fontindex)

imagepsfreefont() frees memory used by a PostScript Type 1 font.

Poznámka: Tato funkce je k dispozici pouze v případě, že PHP bylo zkompilováno s přepínačem --enable-t1lib.

See also imagepsloadfont().

Předcházející | Domů | Další
imagepsextendfont | Nahoru | imagepsloadfont


imagepsloadfont

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

imagepsloadfont -- Load a PostScript Type 1 font from file

Description

int imagepsloadfont ( string filename)

In the case everything went right, a valid font index will be returned and can be used for further purposes. Otherwise the function returns FALSE and prints a message describing what went wrong, which you cannot read directly, while the output type is image.

Příklad 1. imagepsloadfont() example

<?php
header("Content-type: image/jpeg");
$im = imagecreate(350, 45);
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);
$font = imagepsloadfont("bchbi.pfb"); // or locate your .pfb files on your machine
imagepstext($im, "Testing... It worked!", $font, 32, $white, $black, 32, 32);
imagepsfreefont($font);
imagejpeg($im, "", 100); //for best quality...your mileage may vary
imagedestroy($im);
?>

Poznámka: Tato funkce je k dispozici pouze v případě, že PHP bylo zkompilováno s přepínačem --enable-t1lib.

See also imagepsfreefont().

Předcházející | Domů | Další
imagepsfreefont | Nahoru | imagepsslantfont


imagepsslantfont

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

imagepsslantfont -- Slant a font

Description

bool imagepsslantfont ( int font_index, float slant)

Slant a font given by the font_index parameter with a slant of the value of the slant parameter.

Poznámka: Tato funkce je k dispozici pouze v případě, že PHP bylo zkompilováno s přepínačem --enable-t1lib.

Předcházející | Domů | Další
imagepsloadfont | Nahoru | imagepstext


imagepstext

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

imagepstext -- To draw a text string over an image using PostScript Type1 fonts

Description

array imagepstext ( resource image, string text, int font, int size, int foreground, int background, int x, int y [, int space [, int tightness [, float angle [, int antialias_steps]]]])

foreground is the color in which the text will be painted. Background is the color to which the text will try to fade in with antialiasing. No pixels with the color background are actually painted, so the background image does not need to be of solid color.

The coordinates given by x, y will define the origin (or reference point) of the first character (roughly the lower-left corner of the character). This is different from the imagestring(), where x, y define the upper-right corner of the first character. Refer to PostScript documentation about fonts and their measuring system if you have trouble understanding how this works.

space allows you to change the default value of a space in a font. This amount is added to the normal value and can also be negative.

tightness allows you to control the amount of white space between characters. This amount is added to the normal character width and can also be negative.

angle is in degrees.

size is expressed in pixels.

antialias_steps allows you to control the number of colours used for antialiasing text. Allowed values are 4 and 16. The higher value is recommended for text sizes lower than 20, where the effect in text quality is quite visible. With bigger sizes, use 4. It's less computationally intensive.

Parameters space and tightness are expressed in character space units, where 1 unit is 1/1000th of an em-square.

Parameters space, tightness, angle and antialias_steps are optional.

Poznámka: Tato funkce je k dispozici pouze v případě, že PHP bylo zkompilováno s přepínačem --enable-t1lib.

This function returns an array containing the following elements:

0 | lower left x-coordinate
1 | lower left y-coordinate
2 | upper right x-coordinate
3 | upper right y-coordinate

See also imagepsbbox().

Předcházející | Domů | Další
imagepsslantfont | Nahoru | imagerectangle


imagerectangle

(PHP 3, PHP 4 , PHP 5)

imagerectangle -- Draw a rectangle

Description

int imagerectangle ( resource image, int x1, int y1, int x2, int y2, int col)

imagerectangle() creates a rectangle of color col in image image starting at upper left coordinate x1, y1 and ending at bottom right coordinate x2, y2. 0, 0 is the top left corner of the image.

Předcházející | Domů | Další
imagepstext | Nahoru | imagerotate


imagerotate

(PHP 4 >= 4.3.0, PHP 5)

imagerotate -- Rotate an image with a given angle

Description

resource imagerotate ( resource src_im, float angle, int bgd_color)

Rotates the src_im image using a given angle in degree. bgd_color specifies the color of the uncovered zone after the rotation.

Poznámka: This function is only available if PHP is compiled with the bundled version of the GD library.

Předcházející | Domů | Další
imagerectangle | Nahoru | imagesavealpha


imagesavealpha

(PHP 4 >= 4.3.2, PHP 5)

imagesavealpha -- Set the flag to save full alpha channel information (as opposed to single-color transparency) when saving PNG images.

Description

bool imagesavealpha ( resource image, bool saveflag)

imagesavealpha() sets the flag to attempt to save full alpha channel information (as opposed to single-color transparency) when saving PNG images.

You have to unset alphablending (imagealphablending($im, FALSE)), to use it.

Alpha channel is not supported by all browsers, if you have problem with your browser, try to load your script with an alpha channel compliant browser, e.g. latest Mozilla.

See also imagealphablending().

Předcházející | Domů | Další
imagerotate | Nahoru | imagesetbrush


imagesetbrush

(PHP 4 >= 4.0.6, PHP 5)

imagesetbrush -- Set the brush image for line drawing

Description

int imagesetbrush ( resource image, resource brush)

imagesetbrush() sets the brush image to be used by all line drawing functions (such as imageline() and imagepolygon()) when drawing with the special colors IMG_COLOR_BRUSHED or IMG_COLOR_STYLEDBRUSHED.

Poznámka: You need not take special action when you are finished with a brush, but if you destroy the brush image, you must not use the IMG_COLOR_BRUSHED or IMG_COLOR_STYLEDBRUSHED colors until you have set a new brush image!

Poznámka: This function was added in PHP 4.0.6

Předcházející | Domů | Další
imagesavealpha | Nahoru | imagesetpixel


imagesetpixel

(PHP 3, PHP 4 , PHP 5)

imagesetpixel -- Set a single pixel

Description

int imagesetpixel ( resource image, int x, int y, int color)

imagesetpixel() draws a pixel at x, y (top left is 0, 0) in image image of color color.

See also imagecreate() and imagecolorallocate().

Předcházející | Domů | Další
imagesetbrush | Nahoru | imagesetstyle


imagesetstyle

(PHP 4 >= 4.0.6, PHP 5)

imagesetstyle -- Set the style for line drawing

Description

bool imagesetstyle ( resource image, array style)

imagesetstyle() sets the style to be used by all line drawing functions (such as imageline() and imagepolygon()) when drawing with the special color IMG_COLOR_STYLED or lines of images with color IMG_COLOR_STYLEDBRUSHED. Vrací TRUE při úspěchu, FALSE při selhání.

The style parameter is an array of pixels. Following example script draws a dashed line from upper left to lower right corner of the canvas:

Příklad 1. imagesetstyle() example

<?php
header("Content-type: image/jpeg");
$im  = imagecreate(100, 100);
$w   = imagecolorallocate($im, 255, 255, 255);
$red = imagecolorallocate($im, 255, 0, 0);

/* Draw a dashed line, 5 red pixels, 5 white pixels */
$style = array($red, $red, $red, $red, $red, $w, $w, $w, $w, $w);
imagesetstyle($im, $style);
imageline($im, 0, 0, 100, 100, IMG_COLOR_STYLED);

/* Draw a line of happy faces using imagesetbrush() with imagesetstyle */
$style = array($w, $w, $w, $w, $w, $w, $w, $w, $w, $w, $w, $w, $red);
imagesetstyle($im, $style);

$brush = imagecreatefrompng("http://www.libpng.org/pub/png/images/smile.happy.png");
$w2 = imagecolorallocate($brush, 255, 255, 255);
imagecolortransparent($brush, $w2);
imagesetbrush($im, $brush);
imageline($im, 100, 0, 0, 100, IMG_COLOR_STYLEDBRUSHED);

imagejpeg($im);
imagedestroy($im);
?>

See also imagesetbrush(), imageline().

Poznámka: This function was added in PHP 4.0.6

Předcházející | Domů | Další
imagesetpixel | Nahoru | imagesetthickness


imagesetthickness

(PHP 4 >= 4.0.6, PHP 5)

imagesetthickness -- Set the thickness for line drawing

Description

bool imagesetthickness ( resource image, int thickness)

imagesetthickness() sets the thickness of the lines drawn when drawing rectangles, polygons, ellipses etc. etc. to thickness pixels. Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: This function was added in PHP 4.0.6 and requires GD 2.0.1 or later

Předcházející | Domů | Další
imagesetstyle | Nahoru | imagesettile


imagesettile

(PHP 4 >= 4.0.6, PHP 5)

imagesettile -- Set the tile image for filling

Description

int imagesettile ( resource image, resource tile)

imagesettile() sets the tile image to be used by all region filling functions (such as imagefill() and imagefilledpolygon()) when filling with the special color IMG_COLOR_TILED.

A tile is an image used to fill an area with a repeated pattern. Any GD image can be used as a tile, and by setting the transparent color index of the tile image with imagecolortransparent(), a tile allows certain parts of the underlying area to shine through can be created.

Poznámka: You need not take special action when you are finished with a tile, but if you destroy the tile image, you must not use the IMG_COLOR_TILED color until you have set a new tile image!

Předcházející | Domů | Další
imagesetthickness | Nahoru | imagestring


imagestring

(PHP 3, PHP 4 , PHP 5)

imagestring -- Draw a string horizontally

Description

int imagestring ( resource image, int font, int x, int y, string s, int col)

imagestring() draws the string s in the image identified by image at coordinates x, y (top left is 0, 0) in color col. If font is 1, 2, 3, 4 or 5, a built-in font is used.

Příklad 1. imagestring() example

<?php

  // create a 100*30 image
  $im = imagecreate(100, 30);

  // white background and blue text
  $bg = imagecolorallocate($im, 255, 255, 255);
  $textcolor = imagecolorallocate($im, 0, 0, 255);

  // write the string at the top left
  imagestring($im, 5, 0, 0, "Hello world!", $textcolor);

  // output the image
  header("Content-type: image/jpg");
  imagejpeg($im);
?>

See also imageloadfont().

Předcházející | Domů | Další
imagesettile | Nahoru | imagestringup


imagestringup

(PHP 3, PHP 4 , PHP 5)

imagestringup -- Draw a string vertically

Description

int imagestringup ( resource image, int font, int x, int y, string s, int col)

imagestringup() draws the string s vertically in the image identified by image at coordinates x, y (top left is 0, 0) in color col. If font is 1, 2, 3, 4 or 5, a built-in font is used.

See also imageloadfont().

Předcházející | Domů | Další
imagestring | Nahoru | imagesx


imagesx

(PHP 3, PHP 4 , PHP 5)

imagesx -- Get image width

Description

int imagesx ( resource image)

imagesx() returns the width of the image identified by image.

Příklad 1. Using imagesx()

<?php

// create a 300*200 image
$img = imagecreate(300, 200);

echo imagesx($img); // 300

?>

See also imagecreate(),
getimagesize() and
imagesy().

Předcházející | Domů | Další
imagestringup | Nahoru | imagesy


imagesy

(PHP 3, PHP 4 , PHP 5)

imagesy -- Get image height

Description

int imagesy ( resource image)

imagesy() returns the height of the image identified by image.

Příklad 1. Using imagesy()

<?php

// create a 300*200 image
$img = imagecreate(300, 200);

echo imagesy($img); // 200

?>

See also imagecreate(),
getimagesize() and
imagesx().

Předcházející | Domů | Další
imagesx | Nahoru | imagetruecolortopalette


imagetruecolortopalette

(PHP 4 >= 4.0.6, PHP 5)

imagetruecolortopalette -- Convert a true color image to a palette image

Description

void imagetruecolortopalette ( resource image, bool dither, int ncolors)

imagetruecolortopalette() converts a truecolor image to a palette image. The code for this function was originally drawn from the Independent JPEG Group library code, which is excellent. The code has been modified to preserve as much alpha channel information as possible in the resulting palette, in addition to preserving colors as well as possible. This does not work as well as might be hoped. It is usually best to simply produce a truecolor output image instead, which guarantees the highest output quality.

dither indicates if the image should be dithered - if it is TRUE then dithering will be used which will result in a more speckled image but with better color approximation.

ncolors sets the maximum number of colors that should be retained in the palette.

Poznámka: This function was added in PHP 4.0.6 and requires GD 2.0.1 or later

Předcházející | Domů | Další
imagesy | Nahoru | imagettfbbox


imagettfbbox

(PHP 3>= 3.0.1, PHP 4 , PHP 5)

imagettfbbox -- Give the bounding box of a text using TrueType fonts

Description

array imagettfbbox ( int size, int angle, string fontfile, string text)

This function calculates and returns the bounding box in pixels for a TrueType text.

text

The string to be measured.

size

The font size in pixels.

fontfile

The name of the TrueType font file. (Can also be a URL.) Depending on which version of the GD library that PHP is using, it may attempt to search for files that do not begin with a leading '/' by appending '.ttf' to the filename and searching along a library-defined font path.

angle

Angle in degrees in which text will be measured.

imagettfbbox() returns an array with 8 elements representing four points making the bounding box of the text:

0 | lower left corner, X position
1 | lower left corner, Y position
2 | lower right corner, X position
3 | lower right corner, Y position
4 | upper right corner, X position
5 | upper right corner, Y position
6 | upper left corner, X position
7 | upper left corner, Y position

The points are relative to the text regardless of the angle, so "upper left" means in the top left-hand corner seeing the text horizontally.

This function requires both the GD library and the FreeType library.

See also imagettftext().

Předcházející | Domů | Další
imagetruecolortopalette | Nahoru | imagettftext


imagettftext

(PHP 3, PHP 4 , PHP 5)

imagettftext -- Write text to the image using TrueType fonts

Description

array imagettftext ( resource image, int size, int angle, int x, int y, int color, string fontfile, string text)

imagettftext() draws the string text in the image identified by image, starting at coordinates x, y (top left is 0, 0), at an angle of angle in color color, using the TrueType font file identified by fontfile. Depending on which version of the GD library that PHP is using, when fontfile does not begin with a leading '/', '.ttf' will be appended to the filename and the library will attempt to search for that filename along a library-defined font path.

The coordinates given by x, y will define the basepoint of the first character (roughly the lower-left corner of the character). This is different from the imagestring(), where x, y define the upper-right corner of the first character.

angle is in degrees, with 0 degrees being left-to-right reading text (3 o'clock direction), and higher values representing a counter-clockwise rotation. (i.e., a value of 90 would result in bottom-to-top reading text).

fontfile is the path to the TrueType font you wish to use.

text is the text string which may include UTF-8 character sequences (of the form: &#123;) to access characters in a font beyond the first 255.

color is the color index. Using the negative of a color index has the effect of turning off antialiasing.

imagettftext() returns an array with 8 elements representing four points making the bounding box of the text. The order of the points is lower left, lower right, upper right, upper left. The points are relative to the text regardless of the angle, so "upper left" means in the top left-hand corner when you see the text horizontally.

This example script will produce a black JPEG 400x30 pixels, with the words "Testing..." in white in the font Arial.

Příklad 1. imagettftext() example

<?php
  header("Content-type: image/jpeg");
  $im = imagecreate(400, 30);
  $white = imagecolorallocate($im, 255, 255, 255);
  $black = imagecolorallocate($im, 0, 0, 0);

  // Replace path by your own font path
  imagettftext($im, 20, 0, 10, 20, $black, "/path/arial.ttf",
  "Testing... Omega: &amp;#937;");
  imagejpeg($im);
  imagedestroy($im);
?>

This function requires both the GD library and the FreeType library.

See also imagettfbbox().

Předcházející | Domů | Další
imagettfbbox | Nahoru | imagetypes


imagetypes

(PHP 3 CVS only, PHP 4 >= 4.0.2, PHP 5)

imagetypes -- Return the image types supported by this PHP build

Description

int imagetypes ( void )

This function returns a bit-field corresponding to the image formats supported by the version of GD linked into PHP. The following bits are returned, IMG_GIF | IMG_JPG | IMG_PNG | IMG_WBMP | IMG_XPM. To check for PNG support, for example, do this:

Příklad 1. imagetypes() example

<?php
if (imagetypes() & IMG_PNG) {
    echo "PNG Support is enabled";
}
?>

Předcházející | Domů | Další
imagettftext | Nahoru | imagewbmp


imagewbmp

(PHP 3>= 3.0.15, PHP 4 >= 4.0.1, PHP 5)

imagewbmp -- Output image to browser or file

Description

int imagewbmp ( resource image [, string filename [, int foreground]])

imagewbmp() creates the WBMP file in filename from the image image. The image argument is the return from the imagecreate() function.

The filename argument is optional, and if left off, the raw image stream will be output directly. By sending an image/vnd.wap.wbmp content-type using header(), you can create a PHP script that outputs WBMP images directly.

Poznámka: WBMP support is only available if PHP was compiled against GD-1.8 or later.

Using the optional foreground parameter, you can set the foreground color. Use an identifier obtained from imagecolorallocate(). The default foreground color is black.

See also image2wbmp(), imagepng(),
imagegif(), imagejpeg(),
imagetypes().

Předcházející | Domů | Další
imagetypes | Nahoru | imagexbm


imagexbm

(PHP 5)

imagexbm -- Output XBM image to browser or file

Description

int imagexbm ( resource image, string filename [, int foreground])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Poznámka: This function is only available if PHP is compiled with the bundled version of the GD library.

Předcházející | Domů | Další
imagewbmp | Nahoru | iptcembed


iptcembed

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

iptcembed -- Embed binary IPTC data into a JPEG image

Description

array iptcembed ( string iptcdata, string jpeg_file_name [, int spool])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
imagexbm | Nahoru | iptcparse


iptcparse

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

iptcparse -- Parsuje binární IPTC http://www.iptc.org/ blok do jednotlivých tagů.

Popis

array iptcparse ( string iptcblock)

Tato funkce parsuje binární IPTC blok do jeho jednotlivých tagů. Vrací pole, které používá tagmarker jako index, a jeho hodnotu jako hodnotu. Vrací FALSE při chybě, nebo pokud nenajde žádná IPTC data. Příklad viz GetImageSize().

Předcházející | Domů | Další
iptcembed | Nahoru | jpeg2wbmp


jpeg2wbmp

(PHP 4 >= 4.0.5, PHP 5)

jpeg2wbmp -- Convert JPEG image file to WBMP image file

Description

int jpeg2wbmp ( string jpegname, string wbmpname, int d_height, int d_width, int threshold)

Converts the jpegname JPEG file to WBMP format, and saves it as wbmpname. With the d_height and d_width you specify the height and width of the destination image.

Poznámka: WBMP support is only available if PHP was compiled against GD-1.8 or later.

See also png2wbmp().

Předcházející | Domů | Další
iptcparse | Nahoru | png2wbmp


png2wbmp

(PHP 4 >= 4.0.5, PHP 5)

png2wbmp -- Convert PNG image file to WBMP image file

Description

int png2wbmp ( string pngname, string wbmpname, int d_height, int d_width, int threshold)

Converts the pngname PNG file to WBMP format, and saves it as wbmpname. With the d_height and d_width you specify the height and width of the destination image.

Poznámka: WBMP support is only available if PHP was compiled against GD-1.8 or later.

See also jpeg2wbmp().

Předcházející | Domů | Další
jpeg2wbmp | Nahoru | read_exif_data


read_exif_data

read_exif_data -- Alias of exif_read_data()

Description

This function is an alias of exif_read_data().

Předcházející | Domů | Další
png2wbmp | Nahoru | IMAP, POP3 and NNTP Functions


IMAP, POP3 and NNTP Functions

Manuál PHP
Předcházející Další

XLII. IMAP, POP3 and NNTP Functions

Úvod

These functions are not limited to the IMAP protocol, despite their name. The underlying c-client library also supports NNTP, POP3 and local mailbox access methods.

Požadavky

This extension requires the c-client library to be installed. Grab the latest version from ftp://ftp.cac.washington.edu/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.

Poznámka: To build the c-client library with SSL or/and Kerberos support read the docs supplied with the package.

Instalace

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

Poznámka: Depending 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 into the PHP configure line.

Varování

Rozšíření IMAP nemůže být používáno zároveň s rozšířením recode nebo YAZ. Je to kvůli faktu, že tato rozšíření sdílejí stejný interní symbol.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

NIL (integer)

OP_DEBUG (integer)

OP_READONLY (integer)

Open mailbox read-only

OP_ANONYMOUS (integer)

Don't use or update a .newsrc for news (NNTP only)

OP_SHORTCACHE (integer)

OP_SILENT (integer)

OP_PROTOTYPE (integer)

OP_HALFOPEN (integer)

For IMAP and NNTP names, open a connection but don't open a mailbox.

OP_EXPUNGE (integer)

OP_SECURE (integer)

CL_EXPUNGE (integer)

silently expunge the mailbox before closing when calling imap_close()

FT_UID (integer)

The parameter is a UID

FT_PEEK (integer)

Do not set the \Seen flag if not already set

FT_NOT (integer)

FT_INTERNAL (integer)

The return string is in internal format, will not canonicalize to CRLF.

FT_PREFETCHTEXT (integer)

ST_UID (integer)

The sequence argument contains UIDs instead of sequence numbers

ST_SILENT (integer)

ST_SET (integer)

CP_UID (integer)

the sequence numbers contain UIDS

CP_MOVE (integer)

Delete the messages from the current mailbox after copying with imap_mail_copy()

SE_UID (integer)

Return UIDs instead of sequence numbers

SE_FREE (integer)

SE_NOPREFETCH (integer)

Don't prefetch searched messages

SO_FREE (integer)

SO_NOSERVER (integer)

SA_MESSAGES (integer)

SA_RECENT (integer)

SA_UNSEEN (integer)

SA_UIDNEXT (integer)

SA_UIDVALIDITY (integer)

SA_ALL (integer)

LATT_NOINFERIORS (integer)

This mailbox has no "children" (there are no mailboxes below this one).

LATT_NOSELECT (integer)

This is only a container, not a mailbox - you cannot open it.

LATT_MARKED (integer)

This mailbox is marked. Only used by UW-IMAPD.

LATT_UNMARKED (integer)

This mailbox is not marked. Only used by UW-IMAPD.

SORTDATE (integer)

Sort criteria for imap_sort(): message Date

SORTARRIVAL (integer)

Sort criteria for imap_sort(): arrival date

SORTFROM (integer)

Sort criteria for imap_sort(): mailbox in first From address

SORTSUBJECT (integer)

Sort criteria for imap_sort(): message subject

SORTTO (integer)

Sort criteria for imap_sort(): mailbox in first To address

SORTCC (integer)

Sort criteria for imap_sort(): mailbox in first cc address

SORTSIZE (integer)

Sort criteria for imap_sort(): size of message in octets

TYPETEXT (integer)

TYPEMULTIPART (integer)

TYPEMESSAGE (integer)

TYPEAPPLICATION (integer)

TYPEAUDIO (integer)

TYPEIMAGE (integer)

TYPEVIDEO (integer)

TYPEOTHER (integer)

ENC7BIT (integer)

ENC8BIT (integer)

ENCBINARY (integer)

ENCBASE64 (integer)

ENCQUOTEDPRINTABLE (integer)

ENCOTHER (integer)

Viz také

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.

Obsah
imap_8bit -- Convert an 8bit string to a quoted-printable string
imap_alerts -- This function returns all IMAP alert messages (if any) that have occurred during this page request or since the alert stack was reset
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_createmailbox -- Create a new mailbox
imap_delete -- Mark a message for deletion from current mailbox
imap_deletemailbox -- Delete a mailbox
imap_errors -- This function returns all of the IMAP errors (if any) that have occurred during this page request or since the error stack was reset.
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_fetchstructure -- Read the structure of a particular message
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 -- Alias of imap_headerinfo()
imap_headerinfo -- Read the header of the message
imap_headers -- Returns headers for all messages in a mailbox
imap_last_error -- This function returns the last IMAP error (if any) that occurred during this page request
imap_list -- Read the list of mailboxes
imap_listmailbox -- Alias of imap_list()
imap_listscan -- Read the list of mailboxes, takes a string to search for in the text of the mailbox
imap_listsubscribed -- Alias of 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 -- This function returns the message sequence number for the given UID
imap_num_msg -- Gives the number of messages in the current mailbox
imap_num_recent -- Gives 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_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_scanmailbox -- Alias of 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 giving mailbox
imap_setflag_full -- Sets flags on messages
imap_sort -- Sort an array of message headers
imap_status -- This function returns status information on a mailbox other than the current one
imap_subscribe -- Subscribe to a mailbox
imap_thread -- Return threaded by REFERENCES tree
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

Předcházející | Domů | Další
read_exif_data | Nahoru | imap_8bit


imap_8bit

(PHP 3, PHP 4 , PHP 5)

imap_8bit -- Convert an 8bit string to a quoted-printable string

Description

string imap_8bit ( string string)

Convert an 8bit string to a quoted-printable string (according to RFC2045, section 6.7).

Returns a quoted-printable string.

See also imap_qprint().

Předcházející | Domů | Další
IMAP, POP3 and NNTP Functions | Nahoru | imap_alerts


imap_alerts

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

imap_alerts -- This function returns all IMAP alert messages (if any) that have occurred during this page request or since the alert stack was reset

Description

array imap_alerts ( void )

This function returns an array of 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.

Předcházející | Domů | Další
imap_8bit | Nahoru | imap_append


imap_append

(PHP 3, PHP 4 , PHP 5)

imap_append -- Append a string message to a specified mailbox

Description

bool imap_append ( resource imap_stream, string mbox, string message [, string options])

imap_append() appends a string message to the specified mailbox mbox. If the optional options is specified, writes the options to that mailbox also.

Vrací TRUE při úspěchu, FALSE při selhání.

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.

Příklad 1. imap_append() example

<?php
$stream = imap_open("{your.imap.host}INBOX.Drafts", "username", "password");

$check = imap_check($stream);
echo "Msg Count before append: ". $check->Nmsgs . "\n";

imap_append($stream, "{your.imap.host}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($stream);
echo "Msg Count after append : ". $check->Nmsgs . "\n";

imap_close($stream);
?>

Předcházející | Domů | Další
imap_alerts | Nahoru | imap_base64


imap_base64

(PHP 3, PHP 4 , PHP 5)

imap_base64 -- Decode BASE64 encoded text

Description

string imap_base64 ( string text)

imap_base64() function decodes BASE-64 encoded text (see RFC2045, Section 6.8). The decoded message is returned as a string.

See also imap_binary(),
base64_encode() and
base64_decode().

Předcházející | Domů | Další
imap_append | Nahoru | imap_binary


imap_binary

(PHP 3>= 3.0.2, PHP 4 , PHP 5)

imap_binary -- Convert an 8bit string to a base64 string

Description

string imap_binary ( string string)

Convert an 8bit string to a base64 string (according to RFC2045, Section 6.8).

Returns a base64 string.

See also imap_base64().

Předcházející | Domů | Další
imap_base64 | Nahoru | imap_body


imap_body

(PHP 3, PHP 4 , PHP 5)

imap_body -- Read the message body

Description

string imap_body ( resource imap_stream, int msg_number [, int options])

imap_body() returns the body of the message, numbered msg_number in the current mailbox.

The optional options are a bit mask with one or more of the following:

  • FT_UID - The msg_number 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.

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.

Předcházející | Domů | Další
imap_binary | Nahoru | imap_bodystruct


imap_bodystruct

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

imap_bodystruct -- Read the structure of a specified body section of a specific message

Description

object imap_bodystruct ( resource stream_id, int msg_no, int section)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
imap_body | Nahoru | imap_check


imap_check

(PHP 3, PHP 4 , PHP 5)

imap_check -- Check current mailbox

Description

object imap_check ( resource imap_stream)

Returns information about the current mailbox. Returns FALSE on failure.

The imap_check() function checks the current mailbox status on the server and returns the information in an object with following properties:

  • Date - current system time formatted according to RFC822

  • 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

Příklad 1. imap_check() example

<?php

$imap_obj = imap_check($imap_stream);
var_dump($imap_obj);

?>

this will output :

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)
}

Předcházející | Domů | Další
imap_bodystruct | Nahoru | imap_clearflag_full


imap_clearflag_full

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

imap_clearflag_full -- Clears flags on messages

Description

bool imap_clearflag_full ( resource stream, string sequence, string flag, string options)

This function causes a store to delete the specified flag to the flags set for the messages in the specified sequence. The flags which you can unset are "\\Seen", "\\Answered", "\\Flagged", "\\Deleted", and "\\Draft" (as defined by RFC2060). Vrací TRUE při úspěchu, FALSE při selhání..

options are a bit mask and may contain the single option:

  • ST_UID - The sequence argument contains UIDs instead of sequence numbers

See also: imap_setflag_full().

Předcházející | Domů | Další
imap_check | Nahoru | imap_close


imap_close

(PHP 3, PHP 4 , PHP 5)

imap_close -- Close an IMAP stream

Description

bool imap_close ( resource imap_stream [, int flag])

Closes the imap stream. Takes an optional flag CL_EXPUNGE, which will silently expunge the mailbox before closing, removing all messages marked for deletion.

See also: imap_open().

Předcházející | Domů | Další
imap_clearflag_full | Nahoru | imap_createmailbox


imap_createmailbox

(PHP 3, PHP 4 , PHP 5)

imap_createmailbox -- Create a new mailbox

Description

bool imap_createmailbox ( resource imap_stream, string mbox)

imap_createmailbox() creates a new mailbox specified by mbox. Names containing international characters should be encoded by imap_utf7_encode()

Vrací TRUE při úspěchu, FALSE při selhání..

Příklad 1. imap_createmailbox() example

<?php
$mbox = imap_open("{your.imap.host}", "username", "password", OP_HALFOPEN)
     or die("can't connect: " . imap_last_error());

$name1 = "phpnewbox";
$name2 = imap_utf7_encode("phpnewb&ouml;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 finaly remove it to restore
// your inbox to its initial state

if (@imap_createmailbox($mbox, imap_utf7_encode("{your.imap.host}INBOX.$newname"))) {
    $status = @imap_status($mbox, "{your.imap.host}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, "{your.imap.host}INBOX.$newname", "{your.imap.host}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, "{your.imap.host}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);
?>

See also imap_renamemailbox(),
imap_deletemailbox() and
imap_open() for the format
of mbox names.

Předcházející | Domů | Další
imap_close | Nahoru | imap_delete


imap_delete

(PHP 3, PHP 4 , PHP 5)

imap_delete -- Mark a message for deletion from current mailbox

Description

bool imap_delete ( int imap_stream, int msg_number [, int options])

Returns TRUE.

imap_delete() marks messages listed in msg_number for deletion. The optional flags parameter only has a single option, FT_UID, which tells the function to treat the msg_number argument as a UID. 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.

Poznámka: POP3 mailboxes do not have their message flags saved between connections, so imap_expunge() must be called during the same connection in order for messages marked for deletion to actually be purged.

Příklad 1. imap_delete() example

<?php

$mbox = imap_open("{your.imap.host}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);
?>

See also: imap_undelete(),
imap_expunge(), and
imap_close().

Předcházející | Domů | Další
imap_createmailbox | Nahoru | imap_deletemailbox


imap_deletemailbox

(PHP 3, PHP 4 , PHP 5)

imap_deletemailbox -- Delete a mailbox

Description

bool imap_deletemailbox ( resource imap_stream, string mbox)

imap_deletemailbox() deletes the specified mailbox (see imap_open() for the format of mbox names).

Vrací TRUE při úspěchu, FALSE při selhání..

See also imap_createmailbox(),
imap_renamemailbox(), and
imap_open() for the format of
mbox.

Předcházející | Domů | Další
imap_delete | Nahoru | imap_errors


imap_errors

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

imap_errors -- This function returns all of the IMAP errors (if any) that have occurred during this page request or since the error stack was reset.

Description

array imap_errors ( void )

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. When imap_errors() is called, the error stack is subsequently cleared.

See also: imap_last_error().

Předcházející | Domů | Další
imap_deletemailbox | Nahoru | imap_expunge


imap_expunge

(PHP 3, PHP 4 , PHP 5)

imap_expunge -- Delete all messages marked for deletion

Description

bool imap_expunge ( resource imap_stream)

imap_expunge() deletes all the messages marked
for deletion by imap_delete(),
imap_mail_move(), or
imap_setflag_full().

Returns TRUE.

Předcházející | Domů | Další
imap_errors | Nahoru | imap_fetch_overview


imap_fetch_overview

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

imap_fetch_overview -- Read an overview of the information in the headers of the given message

Description

array imap_fetch_overview ( resource imap_stream, string sequence [, int options])

This function fetches mail headers for the given sequence and returns an overview of their contents. sequence will contain a sequence of message indices or UIDs, if flags contains FT_UID. The returned value is an array of objects describing one message header each:

  • subject - the messages subject

  • from - who sent it

  • date - when was it sent

  • message_id - Message-ID

  • references - is a reference to this message id

  • size - size in bytes

  • uid - UID the message has in the mailbox

  • msgno - message sequence number in the maibox

  • recent - this message is flagged as recent

  • flagged - this message is flagged

  • answered - this message is flagged as answered

  • deleted - this message is flagged for deletion

  • seen - this message is flagged as already read

  • draft - this message is flagged as being a draft

Příklad 1. imap_fetch_overview() example

<?php
$mbox = imap_open("{your.imap.host:143}", "username", "password")
     or die("can't connect: " . imap_last_error());

$overview = imap_fetch_overview($mbox, "2,4:6", 0);

if (is_array($overview)) {
        reset($overview);
        while (list($key, $val) = each($overview)) {
                echo      $val->msgno
                . " - " . $val->date
                . " - " . $val->subject
                . "\n";
        }
}

imap_close($mbox);
?>

Předcházející | Domů | Další
imap_expunge | Nahoru | imap_fetchbody


imap_fetchbody

(PHP 3, PHP 4 , PHP 5)

imap_fetchbody -- Fetch a particular section of the body of the message

Description

string imap_fetchbody ( resource imap_stream, int msg_number, string part_number [, flags options])

This function causes a fetch of a particular section of the body of the specified messages as a text string and returns that text string. The section specification is a string of integers delimited by period which index into a body part list as per the IMAP4 specification. Body parts are not decoded by this function.

The options for imap_fetchbody() is a bitmask with one or more of the following:

  • FT_UID - The msg_number 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.

See also: imap_fetchstructure().

Předcházející | Domů | Další
imap_fetch_overview | Nahoru | imap_fetchheader


imap_fetchheader

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

imap_fetchheader -- Returns header for a message

Description

string imap_fetchheader ( resource imap_stream, int msgno [, int options])

This function causes a fetch of the complete, unfiltered RFC2822 format header of the specified message as a text string and returns that text string.

The options are:

  • FT_UID - The msgno 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)

Předcházející | Domů | Další
imap_fetchbody | Nahoru | imap_fetchstructure


imap_fetchstructure

(PHP 3, PHP 4 , PHP 5)

imap_fetchstructure -- Read the structure of a particular message

Description

object imap_fetchstructure ( resource imap_stream, int msg_number [, int options])

This function fetches all the structured information for a given message. The optional options parameter only has a single option, FT_UID, which tells the function to treat the msg_number argument as a UID. The returned object includes the envelope, internal date, size, flags and body structure along with a similar object for each mime attachment. The structure of the returned objects is as follows:

Tabulka 1. Returned Objects 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 MIMEheader.
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.

Tabulka 2. Primary body type

0 | text
1 | multipart
2 | message
3 | application
4 | audio
5 | image
6 | video
7 | other

Tabulka 3. Transfer encodings

0 | 7BIT
1 | 8BIT
2 | BINARY
3 | BASE64
4 | QUOTED-PRINTABLE
5 | OTHER

See also: imap_fetchbody().

Předcházející | Domů | Další
imap_fetchheader | Nahoru | imap_get_quota


imap_get_quota

(PHP 4 >= 4.0.5, PHP 5)

imap_get_quota -- Retrieve the quota level settings, and usage statics per mailbox

Description

array imap_get_quota ( resource imap_stream, string quota_root)

Returns an array with integer values limit and usage for the given mailbox. The value of limit represents the total amount of space allowed for this mailbox. The usage value represents the mailboxes current level of capacity. Will return FALSE in the case of failure.

This function is currently only available to users of the c-client2000 or greater library.

NOTE: For this function to work, the mail stream is required to be opened as the mail-admin user. For a non-admin user version of this function, please see the imap_get_quotaroot() function of PHP.

imap_stream should be the value returned from an imap_open() call. NOTE: This stream is required to be opened as the mail admin user for the get_quota function to work. quota_root should normally be in the form of user.name where name is the mailbox you wish to retrieve information about.

Příklad 1. imap_get_quota() example

<?php
$mbox = imap_open("{your.imap.host}", "mailadmin", "password", OP_HALFOPEN)
      or die("can't connect: " . imap_last_error());

$quota_value = imap_get_quota($mbox, "user.kalowsky");
if (is_array($quota_value)) {
    echo "Usage level is: " . $quota_value['usage'];
    echo "Limit level is: " . $quota_value['limit'];
}

imap_close($mbox);
?>

As of PHP 4.3, the function more properly reflects the functionality as dictated by the RFC 2087. The array return value has changed to support an unlimited number of returned resources (i.e. messages, or sub-folders) with each named resource receiving an individual array key. Each key value then contains an another array with the usage and limit values within it. The example below shows the updated returned output.

For backwards compatibility reasons, the originial access methods are still available for use, although it is suggested to update.

Příklad 2. imap_get_quota() 4.3 or greater example

<?php
$mbox = imap_open("{your.imap.host}", "mailadmin", "password", OP_HALFOPEN)
      or die("can't connect: " . imap_last_error());

$quota_values = imap_get_quota($mbox, "user.kalowsky");
if (is_array($quota_values)) {
   $storage = $quota_values['STORAGE'];
   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);
?>

See also imap_open(),
imap_set_quota() and
imap_get_quotaroot().

Předcházející | Domů | Další
imap_fetchstructure | Nahoru | imap_get_quotaroot


imap_get_quotaroot

(PHP 4 >= 4.3.0, PHP 5)

imap_get_quotaroot -- Retrieve the quota settings per user

Description

array imap_get_quotaroot ( resource imap_stream, string quota_root)

Returns an array of integer values pertaining to the specified user mailbox. All values contain a key based upon the resource name, and a corresponding array with the usage and limit values within.

The limit value represents the total amount of space allowed for this user's total mailbox usage. The usage value represents the user's current total mailbox capacity. This function will return FALSE in the case of call failure, and an array of information about the connection upon an un-parsable response from the server.

This function is currently only available to users of the c-client2000 or greater library.

imap_stream should be the value returned from an imap_open() call. This stream should be opened as the user whose mailbox you wish to check. quota_root should normally be in the form of which mailbox (i.e. INBOX).

Příklad 1. imap_get_quotaroot() example

<?php
$mbox = imap_open("{your.imap.host}", "kalowsky", "password", OP_HALFOPEN)
      or die("can't connect: " . imap_last_error());

$quota = imap_get_quotaroot($mbox, "INBOX");
if (is_array($quota)) {
   $storage = $quota_values['STORAGE'];
   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 usage level is: " .  $message['limit'];

   /* ...  */

}

imap_close($mbox);
?>

See also imap_open(),
imap_set_quota() and
imap_get_quota().

Předcházející | Domů | Další
imap_get_quota | Nahoru | imap_getacl


imap_getacl

(PHP 5)

imap_getacl -- Gets the ACL for a given mailbox

Description

array imap_getacl ( resource stream_id, string mailbox)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

See also: imap_setacl().

Předcházející | Domů | Další
imap_get_quotaroot | Nahoru | imap_getmailboxes


imap_getmailboxes

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

imap_getmailboxes -- Read the list of mailboxes, returning detailed information on each one

Description

array imap_getmailboxes ( resource imap_stream, string ref, string pattern)

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.

Mailbox names containing international Characters outside the printable ASCII range will be encoded and may be decoded by imap_utf7_decode().

ref should normally be just the server specification as described in imap_open(), and pattern specifies where in the mailbox hierarchy to start searching. If you want all mailboxes, pass '*' for pattern.

There are two special characters you can pass as part of the pattern: '*' and '%'. '*' means to return all mailboxes. If you pass pattern as '*', you will get a list of the entire mailbox hierarchy. '%' means to return the current level only. '%' as the pattern parameter will return only the top level mailboxes; '~/mail/%' on UW_IMAPD will return every mailbox in the ~/mail directory, but none in subfolders of that directory.

Příklad 1. imap_getmailboxes() example

<?php
$mbox = imap_open("{your.imap.host}", "username", "password", OP_HALFOPEN)
      or die("can't connect: " . imap_last_error());

$list = imap_getmailboxes($mbox, "{your.imap.host}", "*");
if (is_array($list)) {
  reset($list);
  while (list($key, $val) = each($list)) {
    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);
?>

See also imap_getsubscribed().

Předcházející | Domů | Další
imap_getacl | Nahoru | imap_getsubscribed


imap_getsubscribed

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

imap_getsubscribed -- List all the subscribed mailboxes

Description

array imap_getsubscribed ( resource imap_stream, string ref, string pattern)

This function is identical to imap_getmailboxes(), except that it only returns mailboxes that the user is subscribed to.

Předcházející | Domů | Další
imap_getmailboxes | Nahoru | imap_header


imap_header

imap_header -- Alias of imap_headerinfo()

Description

This function is an alias of imap_headerinfo().

Předcházející | Domů | Další
imap_getsubscribed | Nahoru | imap_headerinfo


imap_headerinfo

(PHP 3, PHP 4 , PHP 5)

imap_headerinfo -- Read the header of the message

Description

object imap_headerinfo ( resource imap_stream, int msg_number [, int fromlength [, int subjectlength [, string defaulthost]]])

This function returns an object of various header elements.

remail, date, Date, subject, Subject, in_reply_to, message_id,
newsgroups, followup_to, references

message flags:
Recent - 'R' if recent and seen,
'N' if recent and not seen,
' ' if not recent
Unseen - 'U' if not seen AND not recent,
' ' if seen OR not seen and recent
Answered -'A' if answered,
' ' if unanswered
Deleted - 'D' if deleted,
' ' if not deleted
Draft - 'X' if draft,
' ' if not draft
Flagged - 'F' if flagged,
' ' if not flagged

NOTE that the Recent/Unseen behavior is a little odd. If you want to
know if a message is Unseen, you must check for

Unseen == 'U' || Recent == 'N'

toaddress (full to: line, up to 1024 characters)

to[] (returns an array of objects from the To line, containing):
personal
adl
mailbox
host

fromaddress (full from: line, up to 1024 characters)

from[] (returns an array of objects from the From line, containing):
personal
adl
mailbox
host

ccaddress (full cc: line, up to 1024 characters)
cc[] (returns an array of objects from the Cc line, containing):
personal
adl
mailbox
host

bccaddress (full bcc line, up to 1024 characters)
bcc[] (returns an array of objects from the Bcc line, containing):
personal
adl
mailbox
host

reply_toaddress (full reply_to: line, up to 1024 characters)
reply_to[] (returns an array of objects from the Reply_to line,
containing):
personal
adl
mailbox
host

senderaddress (full sender: line, up to 1024 characters)
sender[] (returns an array of objects from the sender line, containing):
personal
adl
mailbox
host

return_path (full return-path: line, up to 1024 characters)
return_path[] (returns an array of objects from the return_path line,
containing):
personal
adl
mailbox
host

udate (mail message date in unix time)

fetchfrom (from line formatted to fit fromlength
characters)

fetchsubject (subject line formatted to fit subjectlength characters)

Předcházející | Domů | Další
imap_header | Nahoru | imap_headers


imap_headers

(PHP 3, PHP 4 , PHP 5)

imap_headers -- Returns headers for all messages in a mailbox

Description

array imap_headers ( resource imap_stream)

Returns an array of string formatted with header info. One element per mail message.

Předcházející | Domů | Další
imap_headerinfo | Nahoru | imap_last_error


imap_last_error

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

imap_last_error -- This function returns the last IMAP error (if any) that occurred during this page request

Description

string imap_last_error ( void )

This function returns 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.

See also: imap_errors().

Předcházející | Domů | Další
imap_headers | Nahoru | imap_list


imap_list

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

imap_list -- Read the list of mailboxes

Description

array imap_list ( resource imap_stream, string ref, string pattern)

Returns an array containing the names of the mailboxes. See imap_getmailboxes() for a description of ref and pattern.

Příklad 1. imap_list() example

<?php
$mbox = imap_open("{your.imap.host}", "username", "password", OP_HALFOPEN)
      or die("can't connect: " . imap_last_error());

$list = imap_list($mbox, "{your.imap.host}", "*");
if (is_array($list)) {
  reset($list);
  while (list($key, $val) = each($list)) {
    echo imap_utf7_decode($val) . "<br />\n";
  }
} else {
  echo "imap_list failed: " . imap_last_error() . "\n";
}

imap_close($mbox);
?>

See also: imap_getmailboxes().

Předcházející | Domů | Další
imap_last_error | Nahoru | imap_listmailbox


imap_listmailbox

imap_listmailbox -- Alias of imap_list()

Description

This function is an alias of imap_list().

Předcházející | Domů | Další
imap_list | Nahoru | imap_listscan


imap_listscan

(no version information, might be only in CVS)

imap_listscan -- Read the list of mailboxes, takes a string to search for in the text of the mailbox

Description

array imap_listscan ( resource imap_stream, string ref, string pattern, string content)

Returns an array containing the names of the mailboxes that have content in the text of the mailbox.

This function is similar to imap_listmailbox(), but it will additionally check for the presence of the string content inside the mailbox data.

See imap_getmailboxes() for a description of ref and pattern.

Předcházející | Domů | Další
imap_listmailbox | Nahoru | imap_listsubscribed


imap_listsubscribed

imap_listsubscribed -- Alias of imap_lsub()

Description

This function is an alias of imap_lsub().

Předcházející | Domů | Další
imap_listscan | Nahoru | imap_lsub


imap_lsub

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

imap_lsub -- List all the subscribed mailboxes

Description

array imap_lsub ( resource imap_stream, string ref, string pattern)

Returns an array of all the mailboxes that you have subscribed.

Předcházející | Domů | Další
imap_listsubscribed | Nahoru | imap_mail_compose


imap_mail_compose

(PHP 3>= 3.0.5, PHP 4 , PHP 5)

imap_mail_compose -- Create a MIME message based on given envelope and body sections

Description

string imap_mail_compose ( array envelope, array body)

Příklad 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));

?>

Předcházející | Domů | Další
imap_lsub | Nahoru | imap_mail_copy


imap_mail_copy

(PHP 3, PHP 4 , PHP 5)

imap_mail_copy -- Copy specified messages to a mailbox

Description

bool imap_mail_copy ( resource imap_stream, string msglist, string mbox [, int options])

Copies mail messages specified by msglist to specified mailbox. Vrací TRUE při úspěchu, FALSE při selhání..

msglist is a range not just message numbers (as described in RFC2060).

options 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

See also imap_mail_move().

Předcházející | Domů | Další
imap_mail_compose | Nahoru | imap_mail_move


imap_mail_move

(PHP 3, PHP 4 , PHP 5)

imap_mail_move -- Move specified messages to a mailbox

Description

bool imap_mail_move ( resource imap_stream, string msglist, string mbox [, int options])

Moves mail messages specified by msglist to specified mailbox mbox. Vrací TRUE při úspěchu, FALSE při selhání..

msglist is a range not just message numbers (as described in RFC2060).

options is a bitmask and may contain the single option:

  • CP_UID - the sequence numbers contain UIDS

See also imap_mail_copy().

Předcházející | Domů | Další
imap_mail_copy | Nahoru | imap_mail


imap_mail

(PHP 3>= 3.0.14, PHP 4 , PHP 5)

imap_mail -- Send an email message

Description

bool imap_mail ( string to, string subject, string message [, string additional_headers [, string cc [, string bcc [, string rpath]]]])

This function allows sending of emails with correct handling of Cc and Bcc receivers. Vrací TRUE při úspěchu, FALSE při selhání..

The parameters to, cc and bcc are all strings and are all parsed as rfc822 address lists.

The receivers specified in bcc will get the mail, but are excluded from the headers.

Use the rpath parameter to specify return path. This is useful when using PHP as a mail client for multiple users.

Předcházející | Domů | Další
imap_mail_move | Nahoru | imap_mailboxmsginfo


imap_mailboxmsginfo

(PHP 3>= 3.0.2, PHP 4 , PHP 5)

imap_mailboxmsginfo -- Get information about the current mailbox

Description

object imap_mailboxmsginfo ( resource imap_stream)

Returns information about the current mailbox. Returns FALSE on failure.

The imap_mailboxmsginfo() function 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. It returns the information in an object with following properties.

Tabulka 1. Mailbox properties

Date | date of last change
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

Příklad 1. imap_mailboxmsginfo() example

<?php

$mbox = imap_open("{your.imap.host}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_check() failed: " . imap_last_error() . "<br />\n";
}

imap_close($mbox);

?>

Předcházející | Domů | Další
imap_mail | Nahoru | imap_mime_header_decode


imap_mime_header_decode

(PHP 3>= 3.0.17, PHP 4 , PHP 5)

imap_mime_header_decode -- Decode MIME header elements

Description

array imap_mime_header_decode ( string text)

imap_mime_header_decode() function decodes MIME message header extensions that are non ASCII text (see RFC2047) The decoded elements are returned in an array of objects, where each object has two properties, "charset" 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".

Příklad 1. imap_mime_header_decode() example

<?php
$text = "=?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?= <keld@example.com>";

$elements = imap_mime_header_decode($text);
for ($i=0; $i<count($elements); $i++) {
    echo "Charset: {$elements[$i]->charset}\n";
    echo "Text: {$elements[$i]->text}\n\n";
}
?>

In the above example we would have two elements, whereas the first element had previously been encoded with ISO-8859-1, and the second element would be plain US-ASCII.

Předcházející | Domů | Další
imap_mailboxmsginfo | Nahoru | imap_msgno


imap_msgno

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

imap_msgno -- This function returns the message sequence number for the given UID

Description

int imap_msgno ( resource imap_stream, int uid)

This function returns the message sequence number for the given uid. It is the inverse of imap_uid().

See also imap_uid().

Předcházející | Domů | Další
imap_mime_header_decode | Nahoru | imap_num_msg


imap_num_msg

(PHP 3, PHP 4 , PHP 5)

imap_num_msg -- Gives the number of messages in the current mailbox

Description

int imap_num_msg ( resource imap_stream)

Return the number of messages in the current mailbox.

See also: imap_num_recent() and imap_status().

Předcházející | Domů | Další
imap_msgno | Nahoru | imap_num_recent


imap_num_recent

(PHP 3, PHP 4 , PHP 5)

imap_num_recent -- Gives the number of recent messages in current mailbox

Description

int imap_num_recent ( resource imap_stream)

Returns the number of recent messages in the current mailbox.

See also: imap_num_msg() and imap_status().

Předcházející | Domů | Další
imap_num_msg | Nahoru | imap_open


imap_open

(PHP 3, PHP 4 , PHP 5)

imap_open -- Open an IMAP stream to a mailbox

Description

resource imap_open ( string mailbox, string username, string password [, int options])

Returns an IMAP stream on success and FALSE on error. 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.

A mailbox name consists of a server part and a mailbox path on this server. The special name INBOX stands for the current users personal mailbox. 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. Mailbox names that contain international characters besides those in the printable ASCII space have to be encoded with imap_utf7_encode().

The options 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())

To connect to an IMAP server running on port 143 on the local machine, do the following:

<?php
$mbox = imap_open("{localhost:143}INBOX", "user_id", "password");
?>

To connect to a POP3 server on port 110 on the local server, use:

<?php
$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:

<?php
$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:

<?php
$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:

<?php
$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.

Příklad 1. imap_open() example

<?php
$mbox = imap_open("{your.imap.host:143}", "username", "password");

echo "<h1>Mailboxes</h1>\n";
$folders = imap_listmailbox($mbox, "{your.imap.host:143}", "*");

if ($folders == false) {
    echo "Call failed<br />\n";
} else {
    while (list ($key, $val) = each($folders)) {
        echo $val . "<br />\n";
    }
}

echo "<h1>Headers in INBOX</h1>\n";
$headers = imap_headers($mbox);

if ($headers == false) {
    echo "Call failed<br />\n";
} else {
    while (list ($key, $val) = each ($headers)) {
        echo $val . "<br />\n";
    }
}

imap_close($mbox);
?>

Předcházející | Domů | Další
imap_num_recent | Nahoru | imap_ping


imap_ping

(PHP 3, PHP 4 , PHP 5)

imap_ping -- Check if the IMAP stream is still active

Description

bool imap_ping ( resource imap_stream)

Returns TRUE if the stream is still alive, FALSE otherwise.

imap_ping() function pings the stream to see it is 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. (As PHP scripts do not tend to run that long, I can hardly imagine that this function will be useful to anyone.)

Předcházející | Domů | Další
imap_open | Nahoru | imap_qprint


imap_qprint

(PHP 3, PHP 4 , PHP 5)

imap_qprint -- Convert a quoted-printable string to an 8 bit string

Description

string imap_qprint ( string string)

Convert a quoted-printable string to an 8 bit string (according to RFC2045, section 6.7).

See also imap_8bit().

Předcházející | Domů | Další
imap_ping | Nahoru | imap_renamemailbox


imap_renamemailbox

(PHP 3, PHP 4 , PHP 5)

imap_renamemailbox -- Rename an old mailbox to new mailbox

Description

bool imap_renamemailbox ( resource imap_stream, string old_mbox, string new_mbox)

This function renames on old mailbox to new mailbox (see imap_open() for the format of mbox names).

Vrací TRUE při úspěchu, FALSE při selhání.

See also imap_createmailbox(),
imap_deletemailbox(), and
imap_open() for the format of
mbox.

Předcházející | Domů | Další
imap_qprint | Nahoru | imap_reopen


imap_reopen

(PHP 3, PHP 4 , PHP 5)

imap_reopen -- Reopen IMAP stream to new mailbox

Description

bool imap_reopen ( resource imap_stream, string mailbox [, string options])

This function reopens the specified stream to a new mailbox on an IMAP or NNTP server.

The options 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())

Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
imap_renamemailbox | Nahoru | imap_rfc822_parse_adrlist


imap_rfc822_parse_adrlist

(PHP 3>= 3.0.2, PHP 4 , PHP 5)

imap_rfc822_parse_adrlist -- Parses an address string

Description

array imap_rfc822_parse_adrlist ( string address, string default_host)

This function parses the address string as defined in RFC2822 and for each address, 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

Příklad 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 $val) {
  echo "mailbox : " . $val->mailbox . "<br />\n";
  echo "host    : " . $val->host . "<br />\n";
  echo "personal: " . $val->personal . "<br />\n";
  echo "adl     : " . $val->adl . "<br />\n";
}
?>

Předcházející | Domů | Další
imap_reopen | Nahoru | imap_rfc822_parse_headers


imap_rfc822_parse_headers

(PHP 4 , PHP 5)

imap_rfc822_parse_headers -- Parse mail headers from a string

Description

object imap_rfc822_parse_headers ( string headers [, string defaulthost])

This function returns an object of various header elements, similar to imap_header(), except without the flags and other elements that come from the IMAP server.

Předcházející | Domů | Další
imap_rfc822_parse_adrlist | Nahoru | imap_rfc822_write_address


imap_rfc822_write_address

(PHP 3>= 3.0.2, PHP 4 , PHP 5)

imap_rfc822_write_address -- Returns a properly formatted email address given the mailbox, host, and personal info.

Description

string imap_rfc822_write_address ( string mailbox, string host, string personal)

Returns a properly formatted email address as defined in RFC2822 given the mailbox, host, and personal info.

Příklad 1. imap_rfc822_write_address() example

<?php
echo imap_rfc822_write_address("hartmut", "cvs.php.net", "Hartmut Holzgraefe") . "\n";
?>

Předcházející | Domů | Další
imap_rfc822_parse_headers | Nahoru | imap_scanmailbox


imap_scanmailbox

imap_scanmailbox -- Alias of imap_listscan()

Description

This function is an alias of imap_listscan().

Předcházející | Domů | Další
imap_rfc822_write_address | Nahoru | imap_search


imap_search

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

imap_search -- This function returns an array of messages matching the given search criteria

Description

array imap_search ( resource imap_stream, string criteria, int options)

This function performs a search on the mailbox currently opened in the given imap stream. criteria is a string, delimited by spaces, in which the following keywords are allowed. Any multi-word arguments (e.g. FROM "joey smith") must be quoted.

  • 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

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 RFC2060, section 6.4.4).

Valid values for flags are SE_UID, which causes the returned array to contain UIDs instead of messages sequence numbers.

Předcházející | Domů | Další
imap_scanmailbox | Nahoru | imap_set_quota


imap_set_quota

(PHP 4 >= 4.0.5, PHP 5)

imap_set_quota -- Sets a quota for a given mailbox

Description

bool imap_set_quota ( resource imap_stream, string quota_root, int quota_limit)

Sets an upper limit quota on a per mailbox basis. This function requires the imap_stream to have been opened as the mail administrator account. It will not work if opened as any other user.

This function is currently only available to users of the c-client2000 or greater library.

imap_stream is the stream pointer returned from a imap_open() call. This stream must be opened as the mail administrator, other wise this function will fail. quota_root is the mailbox to have a quota set. This should follow the IMAP standard format for a mailbox, 'user.name'. quota_limit is the maximum size (in KB) for the quota_root.

Returns TRUE on success and FALSE on error.

Příklad 1. imap_set_quota() example

<?php
$mbox = imap_open("{your.imap.host:143}", "mailadmin", "password");

if (!imap_set_quota($mbox, "user.kalowsky", 3000)) {
    echo "Error in setting quota\n";
    return;
}

imap_close($mbox);
?>

See also imap_open() and imap_set_quota().

Předcházející | Domů | Další
imap_search | Nahoru | imap_setacl


imap_setacl

(PHP 4 >= 4.1.0, PHP 5)

imap_setacl -- Sets the ACL for a giving mailbox

Description

bool imap_setacl ( resource stream_id, string mailbox, string id, string rights)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

See also: imap_getacl().

Předcházející | Domů | Další
imap_set_quota | Nahoru | imap_setflag_full


imap_setflag_full

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

imap_setflag_full -- Sets flags on messages

Description

bool imap_setflag_full ( resource stream, string sequence, string flag, string options)

This function causes a store to add the specified flag to the flags set for the messages in the specified sequence.

The flags which you can set are "\\Seen", "\\Answered", "\\Flagged", "\\Deleted", and "\\Draft" (as defined by RFC2060).

options are a bit mask and may contain the single option:

  • ST_UID - The sequence argument contains UIDs instead of sequence numbers

Příklad 1. imap_setflag_full() example

<?php
$mbox = imap_open("{your.imap.host: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);
?>

See also: imap_clearflag_full().

Předcházející | Domů | Další
imap_setacl | Nahoru | imap_sort


imap_sort

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

imap_sort -- Sort an array of message headers

Description

array imap_sort ( resource stream, int criteria, int reverse [, int options [, string search_criteria]])

Returns an array of message numbers sorted by the given parameters.

Reverse is 1 for reverse-sorting.

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

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

Předcházející | Domů | Další
imap_setflag_full | Nahoru | imap_status


imap_status

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

imap_status -- This function returns status information on a mailbox other than the current one

Description

object imap_status ( resource imap_stream, string mailbox, int options)

This function returns an object containing status information. 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

status->flags is also set, which contains a bitmask which can be checked against any of the above constants.

Příklad 1. imap_status() example

<?php
$mbox = imap_open("{your.imap.host}", "username", "password", OP_HALFOPEN)
      or die("can't connect: " . imap_last_error());

$status = imap_status($mbox, "{your.imap.host}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);
?>

Předcházející | Domů | Další
imap_sort | Nahoru | imap_subscribe


imap_subscribe

(PHP 3, PHP 4 , PHP 5)

imap_subscribe -- Subscribe to a mailbox

Description

bool imap_subscribe ( resource imap_stream, string mbox)

Subscribe to a new mailbox.

Vrací TRUE při úspěchu, FALSE při selhání.

See also: imap_unsubscribe().

Předcházející | Domů | Další
imap_status | Nahoru | imap_thread


imap_thread

(PHP 4 >= 4.1.0, PHP 5)

imap_thread -- Return threaded by REFERENCES tree

Description

array imap_thread ( resource stream_id [, int options])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
imap_subscribe | Nahoru | imap_timeout


imap_timeout

(PHP 4 >= 4.3.3, PHP 5)

imap_timeout -- Set or fetch imap timeout

Description

mixed imap_timeout ( int timeout_type [, int timeout])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
imap_thread | Nahoru | imap_uid


imap_uid

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

imap_uid -- This function returns the UID for the given message sequence number

Description

int imap_uid ( resource imap_stream, int msgno)

This function returns the UID for the given message sequence number. An UID is an 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().

Poznámka: This is not supported by POP3 mailboxes.

See also: imap_msgno().

Předcházející | Domů | Další
imap_timeout | Nahoru | imap_undelete


imap_undelete

(PHP 3, PHP 4 , PHP 5)

imap_undelete -- Unmark the message which is marked deleted

Description

bool imap_undelete ( resource imap_stream, int msg_number)

This function removes the deletion flag for a specified message, which is set by imap_delete() or imap_mail_move().

Vrací TRUE při úspěchu, FALSE při selhání.

See also: imap_delete(), and imap_mail_move().

Předcházející | Domů | Další
imap_uid | Nahoru | imap_unsubscribe


imap_unsubscribe

(PHP 3, PHP 4 , PHP 5)

imap_unsubscribe -- Unsubscribe from a mailbox

Description

bool imap_unsubscribe ( string imap_stream, string mbox)

Unsubscribe from a specified mailbox.

Vrací TRUE při úspěchu, FALSE při selhání.

See also: imap_subscribe().

Předcházející | Domů | Další
imap_undelete | Nahoru | imap_utf7_decode


imap_utf7_decode

(PHP 3>= 3.0.15, PHP 4 , PHP 5)

imap_utf7_decode -- Decodes a modified UTF-7 encoded string.

Description

string imap_utf7_decode ( string text)

Decodes modified UTF-7 text into ISO-8859-1 string.

Returns a string that is encoded in ISO-8859-1 and consists of the same sequence of characters in text, or FALSE if text contains invalid modified UTF-7 sequence or text contains a character that is not part of ISO-8859-1 character set.

This function is needed to decode mailbox names that contain certain characters which are not in range of printable ASCII characters.

The modified UTF-7 encoding is defined in RFC 2060, section 5.1.3 (original UTF-7 was defined in RFC1642).

See also: imap_utf7_encode().

Předcházející | Domů | Další
imap_unsubscribe | Nahoru | imap_utf7_encode


imap_utf7_encode

(PHP 3>= 3.0.15, PHP 4 , PHP 5)

imap_utf7_encode -- Converts ISO-8859-1 string to modified UTF-7 text.

Description

string imap_utf7_encode ( string data)

Converts data to modified UTF-7 text. Note that data is expected to be encoded in ISO-8859-1.

This is needed to encode mailbox names that contain certain characters which are not in range of printable ASCII characters.

The modified UTF-7 encoding is defined in RFC 2060, section 5.1.3 (original UTF-7 was defined in RFC1642).

See also: imap_utf7_decode().

Předcházející | Domů | Další
imap_utf7_decode | Nahoru | imap_utf8


imap_utf8

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

imap_utf8 -- Converts MIME-encoded text to UTF-8

Description

string imap_utf8 ( string mime_encoded_text)

Converts the given mime_encoded_text to UTF-8. MIME encoding method and the UTF-8 specification are described in RFC2047 and RFC2044 respectively.

Předcházející | Domů | Další
imap_utf7_encode | Nahoru | Informix Functions


Informix Functions

Manuál PHP
Předcházející Další

XLIII. Informix Functions

Úvod

The Informix driver for Informix (IDS) 7.x, SE 7.x, Universal Server (IUS) 9.x and IDS 2000 is implemented in "ifx.ec" and "php3_ifx.h" in the informix extension directory. IDS 7.x support is fairly complete, with full support for BYTE and TEXT columns. IUS 9.x support is partly finished: the new data types are there, but SLOB and CLOB support is still under construction.

Požadavky

Configuration notes: You need a version of ESQL/C to compile the PHP Informix driver. ESQL/C versions from 7.2x on should be OK. ESQL/C is now part of the Informix Client SDK.

Make sure that the "INFORMIXDIR" variable has been set, and that $INFORMIXDIR/bin is in your PATH before you run the "configure" script.

Instalace

To be able to use the functions defined in this module you must compile your PHP interpreter using the configure line --with_informix[=DIR], where DIR is the Informix base install directory, defaults to nothing.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Poznámka: Make sure that the Informix environment variables INFORMIXDIR and INFORMIXSERVER are available to the PHP ifx driver, and that the INFORMIX bin directory is in the PATH. Check this by running a script that contains a call to phpinfo() before you start testing. The phpinfo() output should list these environment variables. This is TRUE for both CGI php and Apache mod_php. You may have to set these environment variables in your Apache startup script.

The Informix shared libraries should also be available to the loader (check LD_LIBRARY_PATH or ld.so.conf/ldconfig).

Some notes on the use of BLOBs (TEXT and BYTE columns): BLOBs are normally addressed by BLOB identifiers. Select queries return a "blob id" for every BYTE and TEXT column. You can get at the contents with "string_var = ifx_get_blob($blob_id);" if you choose to get the BLOBs in memory (with: "ifx_blobinfile(0);"). If you prefer to receive the content of BLOB columns in a file, use "ifx_blobinfile(1);", and "ifx_get_blob($blob_id);" will get you the filename. Use normal file I/O to get at the blob contents.

For insert/update queries you must create these "blob id's" yourself with "ifx_create_blob();". You then plug the blob id's into an array, and replace the blob columns with a question mark (?) in the query string. For updates/inserts, you are responsible for setting the blob contents with ifx_update_blob().

The behaviour of BLOB columns can be altered by configuration variables that also can be set at runtime:

configuration variable: ifx.textasvarchar

configuration variable: ifx.byteasvarchar

runtime functions:

ifx_textasvarchar(0): use blob id's for select queries with TEXT columns

ifx_byteasvarchar(0): use blob id's for select queries with BYTE columns

ifx_textasvarchar(1): return TEXT columns as if they were VARCHAR columns, so that you don't need to use blob id's for select queries.

ifx_byteasvarchar(1): return BYTE columns as if they were VARCHAR columns, so that you don't need to use blob id's for select queries.

configuration variable: ifx.blobinfile

runtime function:

ifx_blobinfile_mode(0): return BYTE columns in memory, the blob id lets you get at the contents.

ifx_blobinfile_mode(1): return BYTE columns in a file, the blob id lets you get at the file name.

If you set ifx_text/byteasvarchar to 1, you can use TEXT and BYTE columns in select queries just like normal (but rather long) VARCHAR fields. Since all strings are "counted" in PHP, this remains "binary safe". It is up to you to handle this correctly. The returned data can contain anything, you are responsible for the contents.

If you set ifx_blobinfile to 1, use the file name returned by ifx_get_blob(..) to get at the blob contents. Note that in this case YOU ARE RESPONSIBLE FOR DELETING THE TEMPORARY FILES CREATED BY INFORMIX when fetching the row. Every new row fetched will create new temporary files for every BYTE column.

The location of the temporary files can be influenced by the environment variable "blobdir", default is "." (the current directory). Something like: putenv(blobdir=tmpblob"); will ease the cleaning up of temp files accidentally left behind (their names all start with "blb").

Automatically trimming "char" (SQLCHAR and SQLNCHAR) data: This can be set with the configuration variable

ifx.charasvarchar: if set to 1 trailing spaces will be automatically trimmed, to save you some "chopping".

NULL values: The configuration variable ifx.nullformat (and the runtime function ifx_nullformat()) when set to TRUE will return NULL columns as the string "NULL", when set to FALSE they return the empty string. This allows you to discriminate between NULL columns and empty columns.

Tabulka 1. Informix configuration options

Name | Default | Changeable
ifx.allow_persistent | "1" | PHP_INI_SYSTEM
ifx.max_persistent | "-1" | PHP_INI_SYSTEM
ifx.max_links | "-1" | PHP_INI_SYSTEM
ifx.default_host | NULL | PHP_INI_SYSTEM
ifx.default_user | NULL | PHP_INI_SYSTEM
ifx.default_password | NULL | PHP_INI_SYSTEM
ifx.blobinfile | "1" | PHP_INI_ALL
ifx.textasvarchar | "0" | PHP_INI_ALL
ifx.byteasvarchar | "0" | PHP_INI_ALL
ifx.charasvarchar | "0" | PHP_INI_ALL
ifx.nullformat | "0" | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Zde je stručné vysvětlení konfiguračních direktiv.

ifx.allow_persistent boolean

Whether to allow persistent Informix connections.

ifx.max_persistent integer

The maximum number of persistent Informix connections per process.

ifx.max_links integer

The maximum number of Informix connections per process, including persistent connections.

ifx.default_host string

The default host to connect to when no host is specified in ifx_connect() or ifx_pconnect(). Doesn't apply in bezpečný režim.

ifx.default_user string

The default user id to use when none is specified in ifx_connect() or ifx_pconnect(). Doesn't apply in bezpečný režim.

ifx.default_password string

The default password to use when none is specified in ifx_connect() or ifx_pconnect(). Doesn't apply in bezpečný režim.

ifx.blobinfile boolean

Set to TRUE if you want to return blob columns in a file, FALSE if you want them in memory. You can override the setting at runtime with ifx_blobinfile_mode().

ifx.textasvarchar boolean

Set to TRUE if you want to return TEXT columns as normal strings in select statements, FALSE if you want to use blob id parameters. You can override the setting at runtime with ifx_textasvarchar().

ifx.byteasvarchar boolean

Set to TRUE if you want to return BYTE columns as normal strings in select queries, FALSE if you want to use blob id parameters. You can override the setting at runtime with ifx_textasvarchar().

ifx.charasvarchar boolean

Set to TRUE if you want to trim trailing spaces from CHAR columns when fetching them.

ifx.nullformat boolean

Set to TRUE if you want to return NULL columns as the literal string "NULL", FALSE if you want them returned as the empty string "". You can override this setting at runtime with ifx_nullformat().

Typy prostředků

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Obsah
ifx_affected_rows -- Get number of rows affected by a query
ifx_blobinfile_mode -- Set the default blob mode for all select queries
ifx_byteasvarchar -- Set the default byte mode
ifx_close -- Close Informix connection
ifx_connect -- Open Informix server connection
ifx_copy_blob -- Duplicates the given blob object
ifx_create_blob -- Creates an blob object
ifx_create_char -- Creates an char object
ifx_do -- Execute a previously prepared SQL-statement
ifx_error -- Returns error code of last Informix call
ifx_errormsg -- Returns error message of last Informix call
ifx_fetch_row -- Get row as enumerated array
ifx_fieldproperties -- List of SQL fieldproperties
ifx_fieldtypes -- List of Informix SQL fields
ifx_free_blob -- Deletes the blob object
ifx_free_char -- Deletes the char object
ifx_free_result -- Releases resources for the query
ifx_get_blob -- Return the content of a blob object
ifx_get_char -- Return the content of the char object
ifx_getsqlca -- Get the contents of sqlca.sqlerrd[0..5] after a query
ifx_htmltbl_result -- Formats all rows of a query into a HTML table
ifx_nullformat -- Sets the default return value on a fetch row
ifx_num_fields -- Returns the number of columns in the query
ifx_num_rows -- Count the rows already fetched from a query
ifx_pconnect -- Open persistent Informix connection
ifx_prepare -- Prepare an SQL-statement for execution
ifx_query -- Send Informix query
ifx_textasvarchar -- Set the default text mode
ifx_update_blob -- Updates the content of the blob object
ifx_update_char -- Updates the content of the char object
ifxus_close_slob -- Deletes the slob object
ifxus_create_slob -- Creates an slob object and opens it
ifxus_free_slob -- Deletes the slob object
ifxus_open_slob -- Opens an slob object
ifxus_read_slob -- Reads nbytes of the slob object
ifxus_seek_slob -- Sets the current file or seek position
ifxus_tell_slob -- Returns the current file or seek position
ifxus_write_slob -- Writes a string into the slob object

Předcházející | Domů | Další
imap_utf8 | Nahoru | ifx_affected_rows


ifx_affected_rows

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ifx_affected_rows -- Get number of rows affected by a query

Description

int ifx_affected_rows ( int result_id)

result_id is a valid result id returned by ifx_query() or ifx_prepare().

Returns the number of rows affected by a query associated with result_id.

For inserts, updates and deletes the number is the real number (sqlerrd[2]) of affected rows. For selects it is an estimate (sqlerrd[0]). Don't rely on it. The database server can never return the actual number of rows that will be returned by a SELECT because it has not even begun fetching them at this stage (just after the "PREPARE" when the optimizer has determined the query plan).

Useful after ifx_prepare() to limit queries to reasonable result sets.

Příklad 1. Informix affected rows

<?php
$rid = ifx_prepare("select * from emp
                     where name like " . $name, $connid);
if (! $rid) {
    /* ... error ... */
}
$rowcount = ifx_affected_rows($rid);
if ($rowcount > 1000) {
    printf ("Too many rows in result set (%d)\n<br />", $rowcount);
    die ("Please restrict your query<br />\n");
}
?>

See also ifx_num_rows().

Předcházející | Domů | Další
Informix Functions | Nahoru | ifx_blobinfile_mode


ifx_blobinfile_mode

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifx_blobinfile_mode -- Set the default blob mode for all select queries

Description

void ifx_blobinfile_mode ( int mode)

Set the default blob mode for all select queries. Mode "0" means save Byte-Blobs in memory, and mode "1" means save Byte-Blobs in a file.

Předcházející | Domů | Další
ifx_affected_rows | Nahoru | ifx_byteasvarchar


ifx_byteasvarchar

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifx_byteasvarchar -- Set the default byte mode

Description

void ifx_byteasvarchar ( int mode)

Sets the default byte mode for all select-queries. Mode "0" will return a blob id, and mode "1" will return a varchar with text content.

Předcházející | Domů | Další
ifx_blobinfile_mode | Nahoru | ifx_close


ifx_close

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ifx_close -- Close Informix connection

Description

int ifx_close ( [int link_identifier])

Returns: always TRUE.

ifx_close() closes the link to an Informix database that's associated with the specified link identifier. If the link identifier isn't specified, the last opened link is assumed.

Note that this isn't usually necessary, as non-persistent open links are automatically closed at the end of the script's execution.

ifx_close() will not close persistent links generated by ifx_pconnect().

Příklad 1. Closing a Informix connection

<?php
$conn_id = ifx_connect ("mydb@ol_srv", "itsme", "mypassword");
/* ... some queries and stuff ... */
ifx_close($conn_id);
?>

See also ifx_connect() and ifx_pconnect().

Předcházející | Domů | Další
ifx_byteasvarchar | Nahoru | ifx_connect


ifx_connect

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ifx_connect -- Open Informix server connection

Description

int ifx_connect ( [string database [, string userid [, string password]]])

Returns a connection identifier on success, or FALSE on error.

ifx_connect() establishes a connection to an Informix server. All of the arguments are optional, and if they're missing, defaults are taken from values supplied in configuration file (ifx.default_host for the host (Informix libraries will use INFORMIXSERVER environment value if not defined), ifx.default_user for user, ifx.default_password for the password (none if not defined).

In case a second call is made to ifx_connect() with the same arguments, no new link will be established, but instead, the link identifier of the already opened link will be returned.

The link to the server will be closed as soon as the execution of the script ends, unless it's closed earlier by explicitly calling ifx_close().

Příklad 1. Connect to a Informix database

<?php
$conn_id = ifx_connect ("mydb@ol_srv1", "imyself", "mypassword");
?>

See also ifx_pconnect() and ifx_close().

Předcházející | Domů | Další
ifx_close | Nahoru | ifx_copy_blob


ifx_copy_blob

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifx_copy_blob -- Duplicates the given blob object

Description

int ifx_copy_blob ( int bid)

Duplicates the given blob object. bid is the ID of the blob object.

Returns FALSE on error otherwise the new blob object-id.

Předcházející | Domů | Další
ifx_connect | Nahoru | ifx_create_blob


ifx_create_blob

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifx_create_blob -- Creates an blob object

Description

int ifx_create_blob ( int type, int mode, string param)

Creates an blob object.

type: 1 = TEXT, 0 = BYTE

mode: 0 = blob-object holds the content in memory, 1 = blob-object holds the content in file.

param: if mode = 0: pointer to the content, if mode = 1: pointer to the filestring.

Return FALSE on error, otherwise the new blob object-id.

Předcházející | Domů | Další
ifx_copy_blob | Nahoru | ifx_create_char


ifx_create_char

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ifx_create_char -- Creates an char object

Description

int ifx_create_char ( string param)

Creates an char object. param should be the char content.

Předcházející | Domů | Další
ifx_create_blob | Nahoru | ifx_do


ifx_do

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifx_do -- Execute a previously prepared SQL-statement

Description

int ifx_do ( int result_id)

Vrací TRUE při úspěchu, FALSE při selhání.

Executes a previously prepared query or opens a cursor for it.

Does NOT free result_id on error.

Also sets the real number of ifx_affected_rows() for non-select statements for retrieval by ifx_affected_rows()

See also: ifx_prepare().

Předcházející | Domů | Další
ifx_create_char | Nahoru | ifx_error


ifx_error

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ifx_error -- Returns error code of last Informix call

Description

string ifx_error ( void )

The Informix error codes (SQLSTATE & SQLCODE) formatted as follows :

x [SQLSTATE = aa bbb SQLCODE=cccc]

where x = space : no error

E : error

N : no more data

W : warning

? : undefined

If the "x" character is anything other than space, SQLSTATE and SQLCODE describe the error in more detail.

See the Informix manual for the description of SQLSTATE and SQLCODE

Returns in a string one character describing the general results of a statement and both SQLSTATE and SQLCODE associated with the most recent SQL statement executed. The format of the string is "(char) [SQLSTATE=(two digits) (three digits) SQLCODE=(one digit)]". The first character can be ' ' (space) (success), 'W' (the statement caused some warning), 'E' (an error happened when executing the statement) or 'N' (the statement didn't return any data).

See also: ifx_errormsg()

Předcházející | Domů | Další
ifx_do | Nahoru | ifx_errormsg


ifx_errormsg

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifx_errormsg -- Returns error message of last Informix call

Description

string ifx_errormsg ( [int errorcode])

Returns the Informix error message associated with the most recent Informix error, or, when the optional "errorcode" parameter is present, the error message corresponding to "errorcode".

Příklad 1. ifx_errormsg() example

printf("%s\n&lt;br>", ifx_errormsg(-201));

See also ifx_error().

Předcházející | Domů | Další
ifx_error | Nahoru | ifx_fetch_row


ifx_fetch_row

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ifx_fetch_row -- Get row as enumerated array

Description

array ifx_fetch_row ( int result_id [, mixed position])

Returns an associative array that corresponds to the fetched row, or FALSE if there are no more rows.

Blob columns are returned as integer blob id values for use in ifx_get_blob() unless you have used ifx_textasvarchar(1) or ifx_byteasvarchar(1), in which case blobs are returned as string values. Returns FALSE on error

result_id is a valid resultid returned by ifx_query() or ifx_prepare() (select type queries only!).

position is an optional parameter for a "fetch" operation on "scroll" cursors: "NEXT", "PREVIOUS", "CURRENT", "FIRST", "LAST" or a number. If you specify a number, an "absolute" row fetch is executed. This parameter is optional, and only valid for SCROLL cursors.

ifx_fetch_row() fetches one row of data from the result associated with the specified result identifier. The row is returned as an array. Each result column is stored in an array offset, starting at offset 0, with the column name as key.

Subsequent calls to ifx_fetch_row() would return the next row in the result set, or FALSE if there are no more rows.

Příklad 1. Informix fetch rows

<?php
$rid = ifx_prepare ("select * from emp where name like " . $name,
                     $connid, IFX_SCROLL);
if (! $rid) {
    /* ... error ... */
}
$rowcount = ifx_affected_rows($rid);
if ($rowcount > 1000) {
    printf ("Too many rows in result set (%d)\n<br />", $rowcount);
    die ("Please restrict your query<br />\n");
}
if (! ifx_do ($rid)) {
   /* ... error ... */
}
$row = ifx_fetch_row ($rid, "NEXT");
while (is_array($row)) {
    for (reset($row); $fieldname=key($row); next($row)) {
        $fieldvalue = $row[$fieldname];
        printf ("%s = %s,", $fieldname, $fieldvalue);
    }
    printf("\n<br />");
    $row = ifx_fetch_row($rid, "NEXT");
}
ifx_free_result ($rid);
?>

Předcházející | Domů | Další
ifx_errormsg | Nahoru | ifx_fieldproperties


ifx_fieldproperties

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ifx_fieldproperties -- List of SQL fieldproperties

Description

array ifx_fieldproperties ( int result_id)

Returns an associative array with fieldnames as key and the SQL fieldproperties as data for a query with result_id. Returns FALSE on error.

Returns the Informix SQL fieldproperties of every field in the query as an associative array. Properties are encoded as: "SQLTYPE;length;precision;scale;ISNULLABLE" where SQLTYPE = the Informix type like "SQLVCHAR" etc. and ISNULLABLE = "Y" or "N".

Příklad 1. Informix SQL fieldproperties

<?php
$properties = ifx_fieldproperties ($resultid);
if (! isset($properties)) {
    /* ... error ... */
}
for ($i = 0; $i < count($properties); $i++) {
    $fname = key ($properties);
    printf ("%s:\t type =  %s\n", $fname, $properties[$fname]);
    next ($properties);
}
?>

Předcházející | Domů | Další
ifx_fetch_row | Nahoru | ifx_fieldtypes


ifx_fieldtypes

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ifx_fieldtypes -- List of Informix SQL fields

Description

array ifx_fieldtypes ( int result_id)

Returns an associative array with fieldnames as key and the SQL fieldtypes as data for query with result_id. Returns FALSE on error.

Příklad 1. Fieldnames and SQL fieldtypes

<?php
$types = ifx_fieldtypes ($resultid);
if (! isset ($types)) {
    /* ... error ... */
}
for ($i = 0; $i < count($types); $i++) {
    $fname = key($types);
    printf("%s :\t type =  %s\n", $fname, $types[$fname]);
    next($types);
}
?>

Předcházející | Domů | Další
ifx_fieldproperties | Nahoru | ifx_free_blob


ifx_free_blob

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifx_free_blob -- Deletes the blob object

Description

int ifx_free_blob ( int bid)

Deletes the blobobject for the given blob object-id bid. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
ifx_fieldtypes | Nahoru | ifx_free_char


ifx_free_char

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ifx_free_char -- Deletes the char object

Description

int ifx_free_char ( int bid)

Deletes the charobject for the given char object-id bid. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
ifx_free_blob | Nahoru | ifx_free_result


ifx_free_result

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ifx_free_result -- Releases resources for the query

Description

int ifx_free_result ( int result_id)

Releases resources for the query associated with result_id. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
ifx_free_char | Nahoru | ifx_get_blob


ifx_get_blob

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifx_get_blob -- Return the content of a blob object

Description

int ifx_get_blob ( int bid)

Returns the content of the blob object for the given blob object-id bid.

Předcházející | Domů | Další
ifx_free_result | Nahoru | ifx_get_char


ifx_get_char

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ifx_get_char -- Return the content of the char object

Description

int ifx_get_char ( int bid)

Returns the content of the char object for the given char object-id bid.

Předcházející | Domů | Další
ifx_get_blob | Nahoru | ifx_getsqlca


ifx_getsqlca

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

ifx_getsqlca -- Get the contents of sqlca.sqlerrd[0..5] after a query

Description

array ifx_getsqlca ( int result_id)

result_id is a valid result id returned by ifx_query() or ifx_prepare().

Returns a pseudo-row (associative array) with sqlca.sqlerrd[0] ... sqlca.sqlerrd[5] after the query associated with result_id.

For inserts, updates and deletes the values returned are those as set by the server after executing the query. This gives access to the number of affected rows and the serial insert value. For SELECTs the values are those saved after the PREPARE statement. This gives access to the *estimated* number of affected rows. The use of this function saves the overhead of executing a "select dbinfo('sqlca.sqlerrdx')" query, as it retrieves the values that were saved by the ifx driver at the appropriate moment.

Příklad 1. Retrieve Informix sqlca.sqlerrd[x] values

<?php
/* assume the first column of 'sometable' is a serial */
$qid = ifx_query("insert into sometable
                  values (0, '2nd column', 'another column') ", $connid);
if (!$qid) {
    /* ... error ... */
}
$sqlca = ifx_getsqlca($qid);
$serial_value = $sqlca["sqlerrd1"];
echo "The serial value of the inserted row is : $serial_value<br />\n";
?>

Předcházející | Domů | Další
ifx_get_char | Nahoru | ifx_htmltbl_result


ifx_htmltbl_result

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ifx_htmltbl_result -- Formats all rows of a query into a HTML table

Description

int ifx_htmltbl_result ( int result_id [, string html_table_options])

Returns the number of rows fetched or FALSE on error.

Formats all rows of the result_id query into a HTML table. The optional second argument is a string of <table> tag options

Příklad 1. Informix results as HTML table

<?php
$rid = ifx_prepare ("select * from emp where name like " . $name,
                     $connid, IFX_SCROLL);
if (! $rid) {
    /* ... error ... */
}
$rowcount = ifx_affected_rows ($rid);
if ($rowcount > 1000) {
    printf ("Too many rows in result set (%d)\n<br />", $rowcount);
    die ("Please restrict your query<br />\n");
}
if (! ifx_do($rid)) {
    /* ... error ... */
}

ifx_htmltbl_result ($rid, "border=\"2\"");

ifx_free_result($rid);
?>

Předcházející | Domů | Další
ifx_getsqlca | Nahoru | ifx_nullformat


ifx_nullformat

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifx_nullformat -- Sets the default return value on a fetch row

Description

void ifx_nullformat ( int mode)

Sets the default return value of a NULL-value on a fetch row. Mode "0" returns "", and mode "1" returns "NULL".

Předcházející | Domů | Další
ifx_htmltbl_result | Nahoru | ifx_num_fields


ifx_num_fields

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ifx_num_fields -- Returns the number of columns in the query

Description

int ifx_num_fields ( int result_id)

Returns the number of columns in query for result_id or FALSE on error

After preparing or executing a query, this call gives you the number of columns in the query.

Předcházející | Domů | Další
ifx_nullformat | Nahoru | ifx_num_rows


ifx_num_rows

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ifx_num_rows -- Count the rows already fetched from a query

Description

int ifx_num_rows ( int result_id)

Gives the number of rows fetched so far for a query with result_id after a ifx_query() or ifx_do() query.

Předcházející | Domů | Další
ifx_num_fields | Nahoru | ifx_pconnect


ifx_pconnect

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ifx_pconnect -- Open persistent Informix connection

Description

int ifx_pconnect ( [string database [, string userid [, string password]]])

Returns: A positive Informix persistent link identifier on success, or FALSE on error

ifx_pconnect() acts very much like ifx_connect() with two major differences.

This function behaves exactly like ifx_connect() when PHP is not running as an Apache module. 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 (ifx_close() will not close links established by ifx_pconnect()).

This type of links is therefore called 'persistent'.

See also: ifx_connect().

Předcházející | Domů | Další
ifx_num_rows | Nahoru | ifx_prepare


ifx_prepare

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifx_prepare -- Prepare an SQL-statement for execution

Description

int ifx_prepare ( string query, int conn_id [, int cursor_def, mixed blobidarray])

Returns an integer result_id for use by ifx_do(). Sets affected_rows for retrieval by the ifx_affected_rows() function.

Prepares query on connection conn_id. For "select-type" queries a cursor is declared and opened. The optional cursor_type parameter allows you to make this a "scroll" and/or "hold" cursor. It's a bitmask and can be either IFX_SCROLL, IFX_HOLD, or both or'ed together.

For either query type the estimated number of affected rows is saved for retrieval by ifx_affected_rows().

If you have BLOB (BYTE or TEXT) columns in the query, you can add a blobidarray parameter containing the corresponding "blob ids", and you should replace those columns with a "?" in the query text.

If the contents of the TEXT (or BYTE) column allow it, you can also use "ifx_textasvarchar(1)" and "ifx_byteasvarchar(1)". This allows you to treat TEXT (or BYTE) columns just as if they were ordinary (but long) VARCHAR columns for select queries, and you don't need to bother with blob id's.

With ifx_textasvarchar(0) or ifx_byteasvarchar(0) (the default situation), select queries will return BLOB columns as blob id's (integer value). You can get the value of the blob as a string or file with the blob functions (see below).

See also: ifx_do().

Předcházející | Domů | Další
ifx_pconnect | Nahoru | ifx_query


ifx_query

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ifx_query -- Send Informix query

Description

int ifx_query ( string query, int link_identifier [, int cursor_type [, mixed blobidarray]])

Returns a positive Informix result identifier on success, or FALSE on error.

A "result_id" resource used by other functions to retrieve the query results. Sets "affected_rows" for retrieval by the ifx_affected_rows() function.

ifx_query() sends a query to the currently active database on the server that's associated with the specified link identifier.

Executes query on connection conn_id. For "select-type" queries a cursor is declared and opened. The optional cursor_type parameter allows you to make this a "scroll" and/or "hold" cursor. It's a bitmask and can be either IFX_SCROLL, IFX_HOLD, or both or'ed together. Non-select queries are "execute immediate". IFX_SCROLL and IFX_HOLD are symbolic constants and as such shouldn't be between quotes. I you omit this parameter the cursor is a normal sequential cursor.

For either query type the number of (estimated or real) affected rows is saved for retrieval by ifx_affected_rows().

If you have BLOB (BYTE or TEXT) columns in an update query, you can add a blobidarray parameter containing the corresponding "blob ids", and you should replace those columns with a "?" in the query text.

If the contents of the TEXT (or BYTE) column allow it, you can also use "ifx_textasvarchar(1)" and "ifx_byteasvarchar(1)". This allows you to treat TEXT (or BYTE) columns just as if they were ordinary (but long) VARCHAR columns for select queries, and you don't need to bother with blob id's.

With ifx_textasvarchar(0) or ifx_byteasvarchar(0) (the default situation), select queries will return BLOB columns as blob id's (integer value). You can get the value of the blob as a string or file with the blob functions (see below).

Příklad 1. Show all rows of the "orders" table as a HTML table

<?php
ifx_textasvarchar(1);      // use "text mode" for blobs
$res_id = ifx_query("select * from orders", $conn_id);
if (! $res_id) {
    printf("Can't select orders : %s\n<br />%s<br />\n", ifx_error());
    ifx_errormsg();
    die;
}
ifx_htmltbl_result($res_id, "border=\"1\"");
ifx_free_result($res_id);
?>

Příklad 2. Insert some values into the "catalog" table

<?php

// create blob id's for a byte and text column
$textid = ifx_create_blob(0, 0, "Text column in memory");
$byteid = ifx_create_blob(1, 0, "Byte column in memory");

// store blob id's in a blobid array
$blobidarray[] = $textid;
$blobidarray[] = $byteid;

// launch query
$query = "insert into catalog (stock_num, manu_code, " .
         "cat_descr,cat_picture) values(1,'HRO',?,?)";
$res_id = ifx_query($query, $conn_id, $blobidarray);
if (! $res_id) {
    /* ... error ... */
}

// free result id
ifx_free_result($res_id);
?>

See also ifx_connect().

Předcházející | Domů | Další
ifx_prepare | Nahoru | ifx_textasvarchar


ifx_textasvarchar

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifx_textasvarchar -- Set the default text mode

Description

void ifx_textasvarchar ( int mode)

Sets the default text mode for all select-queries. Mode "0" will return a blob id, and mode "1" will return a varchar with text content.

Předcházející | Domů | Další
ifx_query | Nahoru | ifx_update_blob


ifx_update_blob

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifx_update_blob -- Updates the content of the blob object

Description

bool ifx_update_blob ( int bid, string content)

Updates the content of the blob object for the given blob object bid. content is a string with new data. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
ifx_textasvarchar | Nahoru | ifx_update_char


ifx_update_char

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ifx_update_char -- Updates the content of the char object

Description

int ifx_update_char ( int bid, string content)

Updates the content of the char object for the given char object bid. content is a string with new data. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
ifx_update_blob | Nahoru | ifxus_close_slob


ifxus_close_slob

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifxus_close_slob -- Deletes the slob object

Description

int ifxus_close_slob ( int bid)

Deletes the slob object on the given slob object-id bid. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
ifx_update_char | Nahoru | ifxus_create_slob


ifxus_create_slob

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifxus_create_slob -- Creates an slob object and opens it

Description

int ifxus_create_slob ( int mode)

Creates an slob object and opens it. Modes: 1 = LO_RDONLY, 2 = LO_WRONLY, 4 = LO_APPEND, 8 = LO_RDWR, 16 = LO_BUFFER, 32 = LO_NOBUFFER -> or-mask. You can also use constants named IFX_LO_RDONLY, IFX_LO_WRONLY etc. Return FALSE on error otherwise the new slob object-id.

Předcházející | Domů | Další
ifxus_close_slob | Nahoru | ifxus_free_slob


ifxus_free_slob

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifxus_free_slob -- Deletes the slob object

Description

int ifxus_free_slob ( int bid)

Deletes the slob object. bid is the Id of the slob object. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
ifxus_create_slob | Nahoru | ifxus_open_slob


ifxus_open_slob

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifxus_open_slob -- Opens an slob object

Description

int ifxus_open_slob ( long bid, int mode)

Opens an slob object. bid should be an existing slob id. Modes: 1 = LO_RDONLY, 2 = LO_WRONLY, 4 = LO_APPEND, 8 = LO_RDWR, 16 = LO_BUFFER, 32 = LO_NOBUFFER -> or-mask. Returns FALSE on error otherwise the new slob object-id.

Předcházející | Domů | Další
ifxus_free_slob | Nahoru | ifxus_read_slob


ifxus_read_slob

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifxus_read_slob -- Reads nbytes of the slob object

Description

int ifxus_read_slob ( long bid, long nbytes)

Reads nbytes of the slob object. bid is a existing slob id and nbytes is the number of bytes read. Return FALSE on error otherwise the string.

Předcházející | Domů | Další
ifxus_open_slob | Nahoru | ifxus_seek_slob


ifxus_seek_slob

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifxus_seek_slob -- Sets the current file or seek position

Description

int ifxus_seek_slob ( long bid, int mode, long offset)

Sets the current file or seek position of an open slob object. bid should be an existing slob id. Modes: 0 = LO_SEEK_SET, 1 = LO_SEEK_CUR, 2 = LO_SEEK_END and offset is an byte offset. Return FALSE on error otherwise the seek position.

Předcházející | Domů | Další
ifxus_read_slob | Nahoru | ifxus_tell_slob


ifxus_tell_slob

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifxus_tell_slob -- Returns the current file or seek position

Description

int ifxus_tell_slob ( long bid)

Returns the current file or seek position of an open slob object bid should be an existing slob id. Return FALSE on error otherwise the seek position.

Předcházející | Domů | Další
ifxus_seek_slob | Nahoru | ifxus_write_slob


ifxus_write_slob

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ifxus_write_slob -- Writes a string into the slob object

Description

int ifxus_write_slob ( long bid, string content)

Writes a string into the slob object. bid is an existing slob id and content the content to write. Return FALSE on error otherwise bytes written.

Předcházející | Domů | Další
ifxus_tell_slob | Nahoru | InterBase Functions


InterBase Functions

Manuál PHP
Předcházející Další

XLIV. InterBase Functions

Úvod

InterBase is a popular database put out by Borland/Inprise. More information about InterBase is available at http://www.interbase.com/. Oh, by the way, InterBase just joined the open source movement!

Poznámka: Full support for InterBase 6 was added in PHP 4.0.

This database uses a single quote (') character for escaping, a behavior similar to the Sybase database, add to your php.ini the following directive:

magic_quotes_sybase = On

Požadavky

Instalace

To enable InterBase support configure PHP --with-interbase[=DIR], where DIR is the InterBase base install directory, which defaults to /usr/interbase.

Note to Win32 Users: In order to enable this module on a Windows environment, you must copy gds32.dll from the DLL folder of the PHP/Win32 binary package to the SYSTEM32 folder of your windows machine. (Ex: C:\WINNT\SYSTEM32 or C:\WINDOWS\SYSTEM32). In case you installed the InterBase database server on the same machine PHP is running on, you will have this DLL already. Therefore you don't need to copy gds32.dll from the DLL folder.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 1. InterBase configuration options

Name | Default | Changeable
ibase.allow_persistent | "1" | PHP_INI_SYSTEM
ibase.max_persistent | "-1" | PHP_INI_SYSTEM
ibase.max_links | "-1" | PHP_INI_SYSTEM
ibase.default_user | NULL | PHP_INI_ALL
ibase.default_password | NULL | PHP_INI_ALL
ibase.timestampformat | "%m/%d/%Y%H:%M:%S" | PHP_INI_ALL
ibase.dateformat | "%m/%d/%Y" | PHP_INI_ALL
ibase.timeformat | "%H:%M:%S" | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Typy prostředků

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

IBASE_DEFAULT (integer)

IBASE_TEXT (integer)

IBASE_UNIXTIME (integer)

IBASE_WRITE (integer)

Access mode

IBASE_READ (integer)

Access mode

IBASE_COMMITTED (integer)

Isolation level

IBASE_CONSISTENCY (integer)

Isolation level

IBASE_CONCURRENCY (integer)

Isolation level (default)

IBASE_REC_VERSION (integer)

IBASE_REC_NO_VERSION (integer)

IBASE_NOWAIT (integer)

Lock resolution

IBASE_WAIT (integer)

Lock resolution (default)

IBASE_TIMESTAMP (integer)

IBASE_DATE (integer)

IBASE_TIME (integer)

Obsah
ibase_add_user -- Add a user to a security database (only for IB6 or later)
ibase_affected_rows -- Return the number of rows that were affected by the previous query
ibase_blob_add -- Add data into a newly created blob
ibase_blob_cancel -- Cancel creating blob
ibase_blob_close -- Close blob
ibase_blob_create -- Create a new blob for adding data
ibase_blob_echo -- Output blob contents to browser
ibase_blob_get -- Get len bytes data from open blob
ibase_blob_import -- Create blob, copy file in it, and close it
ibase_blob_info -- Return blob length and other useful info
ibase_blob_open -- Open blob for retrieving data parts
ibase_close -- Close a connection to an InterBase database
ibase_commit_ret -- Commit a transaction without closing it
ibase_commit -- Commit a transaction
ibase_connect -- Open a connection to an InterBase database
ibase_delete_user -- Delete a user from a security database (only for IB6 or later)
ibase_drop_db -- Drops a database
ibase_errcode -- Return an error code
ibase_errmsg -- Return error messages
ibase_execute -- Execute a previously prepared query
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 -- Get information about a field
ibase_free_event_handler -- Cancels a registered event handler
ibase_free_query -- Free memory allocated by a prepared query
ibase_free_result -- Free a result set
ibase_gen_id -- Increments the named generator and returns its new value
ibase_modify_user -- Modify a user to a security database (only for IB6 or later)
ibase_name_result -- Assigns a name to a result set
ibase_num_fields -- Get the number of fields in a result set
ibase_num_params -- Return the number of parameters in a prepared query
ibase_param_info -- Return information about a parameter in a prepared query
ibase_pconnect -- Open a persistent connection to an InterBase database
ibase_prepare -- Prepare a query for later binding of parameter placeholders and execution
ibase_query -- Execute a query on an InterBase database
ibase_rollback_ret -- Roll back a transaction without closing it
ibase_rollback -- Roll back a transaction
ibase_set_event_handler -- Register a callback function to be called when events are posted
ibase_timefmt -- Sets the format of timestamp, date and time type columns returned from queries
ibase_trans -- Begin a transaction
ibase_wait_event -- Wait for an event to be posted by the database

Předcházející | Domů | Další
ifxus_write_slob | Nahoru | ibase_add_user


ibase_add_user

(PHP 4 >= 4.2.0, PHP 5)

ibase_add_user -- Add a user to a security database (only for IB6 or later)

Description

bool ibase_add_user ( string server, string dba_user_name, string dba_user_password, string user_name, string password [, string first_name [, string middle_name [, string last_name]]])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

See also ibase_modify_user() and ibase_delete_user().

Předcházející | Domů | Další
InterBase Functions | Nahoru | ibase_affected_rows


ibase_affected_rows

(PHP 5)

ibase_affected_rows -- Return the number of rows that were affected by the previous query

Description

int ibase_affected_rows ( resource link_identifier)

This function returns the number of rows that were affected by the previous query that was executed from within the transaction context specified by link_identifier. If link_identifier is a connection resource, its default transaction is used.

See also ibase_query() and ibase_execute().

Předcházející | Domů | Další
ibase_add_user | Nahoru | ibase_blob_add


ibase_blob_add

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_blob_add -- Add data into a newly created blob

Description

bool ibase_blob_add ( resource blob_handle, string data)

ibase_blob_add() adds data into a blob created with ibase_blob_create(). Vrací TRUE při úspěchu, FALSE při selhání.

See also
ibase_blob_cancel(),
ibase_blob_close(),
ibase_blob_create() and
ibase_blob_import().

Předcházející | Domů | Další
ibase_affected_rows | Nahoru | ibase_blob_cancel


ibase_blob_cancel

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_blob_cancel -- Cancel creating blob

Description

bool ibase_blob_cancel ( resource blob_handle)

This function will discard a BLOB created by ibase_create_blob() if it has not yet been closed by ibase_blob_close(). Vrací TRUE při úspěchu, FALSE při selhání.

See also
ibase_blob_close(),
ibase_blob_create() and
ibase_blob_import().

Předcházející | Domů | Další
ibase_blob_add | Nahoru | ibase_blob_close


ibase_blob_close

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_blob_close -- Close blob

Description

mixed ibase_blob_close ( resource blob_handle)

This function closes a BLOB that has either been opened for reading by ibase_open_blob() or has been opened for writing by ibase_create_blob(). If the BLOB was being read, this function returns TRUE on success, if the BLOB was being written to, this function returns a string containing the BLOB id that has been assigned to it by the database. On failure, this function returns FALSE.

See also ibase_blob_cancel() and ibase_blob_open().

Předcházející | Domů | Další
ibase_blob_cancel | Nahoru | ibase_blob_create


ibase_blob_create

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_blob_create -- Create a new blob for adding data

Description

resource ibase_blob_create ( [resource link_identifier])

ibase_blob_create() creates a new BLOB for filling with data. It returns a BLOB handle for later use with ibase_blob_add() or FALSE on failure.

See also
ibase_blob_add(),
ibase_blob_cancel(),
ibase_blob_close() and
ibase_blob_import().

Předcházející | Domů | Další
ibase_blob_close | Nahoru | ibase_blob_echo


ibase_blob_echo

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_blob_echo -- Output blob contents to browser

Description

bool ibase_blob_echo ( string blob_id)

This function opens a BLOB for reading and sends its contents directly to standard output (the browser, in most cases). Vrací TRUE při úspěchu, FALSE při selhání.

See also
ibase_blob_open(),
ibase_blob_close() and
ibase_blob_get().

Předcházející | Domů | Další
ibase_blob_create | Nahoru | ibase_blob_get


ibase_blob_get

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_blob_get -- Get len bytes data from open blob

Description

string ibase_blob_get ( resource blob_handle, int len)

This function returns at most len bytes from a BLOB that has been opened for reading by ibase_blob_open(). Returns FALSE on failure.

<?php
    $sql       = "SELECT blob_value FROM table";
    $result    = ibase_query($sql);
    $data      = ibase_fetch_object($result);
    $blob_data = ibase_blob_info($data->BLOB_VALUE);
    $blob_hndl = ibase_blob_open($data->BLOB_VALUE);
    echo         ibase_blob_get($blob_hndl, $blob_data[0]);
?>

Whilst this example doesn't do much more than a 'ibase_blob_echo($data->BLOB_VALUE)' would do, it does show you how to get information into a $variable to manipulate as you please.

Poznámka: It is not possible to read from a BLOB that has been opened for writing by ibase_blob_create().

See also
ibase_blob_open(),
ibase_blob_close() and
ibase_blob_echo().

Předcházející | Domů | Další
ibase_blob_echo | Nahoru | ibase_blob_import


ibase_blob_import

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_blob_import -- Create blob, copy file in it, and close it

Description

string ibase_blob_import ( [resource link_identifier, resource file_handle])

This function creates a BLOB, reads an entire file into it, closes it and returns the assigned BLOB id. The file handle is a handle returned by fopen(). Returns FALSE on failure.

See also
ibase_blob_add(),
ibase_blob_cancel(),
ibase_blob_close() and
ibase_blob_create().

Předcházející | Domů | Další
ibase_blob_get | Nahoru | ibase_blob_info


ibase_blob_info

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_blob_info -- Return blob length and other useful info

Description

array ibase_blob_info ( string blob_id)

Returns an array containing information about a BLOB. The information returned consists of the length of the BLOB, the number of segments it contains, the size of the largest segment, and whether it is a stream BLOB or a segmented BLOB.

Předcházející | Domů | Další
ibase_blob_import | Nahoru | ibase_blob_open


ibase_blob_open

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_blob_open -- Open blob for retrieving data parts

Description

resource ibase_blob_open ( string blob_id)

ibase_blob_open() opens an existing BLOB for reading. It returns a BLOB handle for later use with ibase_blob_get() or FALSE on failure.

See also
ibase_blob_close(),
ibase_blob_echo() and
ibase_blob_get().

Předcházející | Domů | Další
ibase_blob_info | Nahoru | ibase_close


ibase_close

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ibase_close -- Close a connection to an InterBase database

Description

bool ibase_close ( [resource connection_id])

Closes the link to an InterBase database that's associated with a connection id returned from ibase_connect(). If the connection id is omitted, the last opened link is assumed. Default transaction on link is committed, other transactions are rolled back. Vrací TRUE při úspěchu, FALSE při selhání.

See also ibase_connect() and ibase_pconnect().

Předcházející | Domů | Další
ibase_blob_open | Nahoru | ibase_commit_ret


ibase_commit_ret

(PHP 5)

ibase_commit_ret -- Commit a transaction without closing it

Description

bool ibase_commit_ret ( [resource link_identifier])

If called without an argument, this function commits the default transaction of the default link. If the argument is a connection identifier, the default transaction of the corresponding connection will be committed. If the argument is a transaction identifier, the corresponding transaction will be committed. The transaction context will be retained, so statements executed from within this transaction will not be invalidated. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
ibase_close | Nahoru | ibase_commit


ibase_commit

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_commit -- Commit a transaction

Description

bool ibase_commit ( [resource link_identifier])

If called without an argument, this function commits the default transaction of the default link. If the argument is a connection identifier, the default transaction of the corresponding connection will be committed. If the argument is a transaction identifier, the corresponding transaction will be committed. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
ibase_commit_ret | Nahoru | ibase_connect


ibase_connect

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ibase_connect -- Open a connection to an InterBase database

Description

resource ibase_connect ( string database [, string username [, string password [, string charset [, int buffers [, int dialect [, string role]]]]]])

Establishes a connection to an InterBase server. 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 and password can also be specified with PHP configuration directives ibase.default_user and ibase.default_password. charset is the default character set for a database. buffers is the number of database buffers to allocate for the server-side cache. If 0 or omitted, server chooses its own default. dialect selects the default SQL dialect for any statement executed within a connection, and it defaults to the highest one supported by client libraries.

In case a second call is made to ibase_connect() with the same arguments, no new link will be established, but instead, the link identifier of the already opened link will be returned. The link to the server will be closed as soon as the execution of the script ends, unless it's closed earlier by explicitly calling ibase_close().

Příklad 1. ibase_connect() example

<?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);
?>

Poznámka: The optional buffers parameter was added in PHP 4.0.0.

Poznámka: The optional dialect parameter was added in PHP 4.0.0 and is functional only with InterBase 6 and up.

Poznámka: The optional role parameter was added in PHP 4.0.0 and is functional only with InterBase 5 and up.

Poznámka: If you get some error like "arithmetic exception, numeric overflow, or string truncation. Cannot transliterate character between character sets" (this occurs when you try use some character with accents) when using this and after ibase_query() you must set the character set (i.e. ISO8859_1 or your current character set).

See also ibase_pconnect() and ibase_close().

Předcházející | Domů | Další
ibase_commit | Nahoru | ibase_delete_user


ibase_delete_user

(PHP 4 >= 4.2.0, PHP 5)

ibase_delete_user -- Delete a user from a security database (only for IB6 or later)

Description

bool ibase_delete_user ( string server, string dba_user_name, string dba_user_password, string user_name)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

See also ibase_add_user() and ibase_modify_user().

Předcházející | Domů | Další
ibase_connect | Nahoru | ibase_drop_db


ibase_drop_db

(PHP 5)

ibase_drop_db -- Drops a database

Description

bool ibase_drop_db ( resource connection)

This functions drops a database that was opened by either ibase_connect() or ibase_pconnect(). The database is closed and deleted from the server. Vrací TRUE při úspěchu, FALSE při selhání.

See also ibase_connect() and ibase_pconnect().

Předcházející | Domů | Další
ibase_delete_user | Nahoru | ibase_errcode


ibase_errcode

(PHP 5)

ibase_errcode -- Return an error code

Description

int ibase_errcode ( void )

Returns the error code that resulted from the most recent InterBase function call. Returns FALSE if no error occurred.

See also ibase_errmsg().

Předcházející | Domů | Další
ibase_drop_db | Nahoru | ibase_errmsg


ibase_errmsg

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_errmsg -- Return error messages

Description

string ibase_errmsg ( void )

Returns the error message that resulted from the most recent InterBase function call. Returns FALSE if no error occurred.

See also ibase_errcode().

Předcházející | Domů | Další
ibase_errcode | Nahoru | ibase_execute


ibase_execute

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ibase_execute -- Execute a previously prepared query

Description

resource ibase_execute ( resource query [, int bind_args])

Execute a query prepared by ibase_prepare(). If the query raises an error, returns FALSE. If it is successful and there is a (possibly empty) result set (such as with a SELECT query), returns a result identifier. If the query was successful and there were no results, returns TRUE.

This is a lot more effective than using ibase_query() if you are repeating a same kind of query several times with only some parameters changing.

Příklad 1. ibase_execute() example

<?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 = ?");

    while (list($baz, $bar) = each($updates)) {
        ibase_execute($query, $bar, $baz);
    }
?>

Poznámka: In PHP 5.0.0 and up, this function returns the number of rows affected by the query (if > 0 and applicable to the statement type). A query that succeeded, but did not affect any rows (e.g. an UPDATE of a non-existent record) will return TRUE.

See also ibase_query().

Předcházející | Domů | Další
ibase_errmsg | Nahoru | ibase_fetch_assoc


ibase_fetch_assoc

(PHP 4 >= 4.3.0, PHP 5)

ibase_fetch_assoc -- Fetch a result row from a query as an associative array

Description

array ibase_fetch_assoc ( resource result [, int fetch_flag])

ibase_fetch_assoc() returns an associative array that corresponds to the fetched row. Subsequent calls will return the next row in the result set, or FALSE if there are no more rows.

ibase_fetch_assoc() fetches one row of data from the result. If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you either need to access the result with numeric indices by using ibase_fetch_row() or use alias names in your query.

fetch_flag is a combination of the constants IBASE_TEXT and IBASE_UNIXTIME ORed together. Passing IBASE_TEXT will cause this function to return BLOB contents instead of BLOB ids. Passing IBASE_UNIXTIME will cause this function to return date/time values as Unix timestamps instead of as formatted strings.

See also ibase_fetch_row() and ibase_fetch_object().

Předcházející | Domů | Další
ibase_execute | Nahoru | ibase_fetch_object


ibase_fetch_object

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_fetch_object -- Get an object from a InterBase database

Description

object ibase_fetch_object ( resource result_id [, int fetch_flag])

Fetches a row as a pseudo-object from a result_id obtained either by ibase_query() or ibase_execute().

<?php
    $dbh = ibase_connect($host, $username, $password);
    $stmt = 'SELECT * FROM tblname';
    $sth = ibase_query($dbh, $stmt);
    while ($row = ibase_fetch_object($sth)) {
        echo $row->email . "\n";
    }
    ibase_close($dbh);
?>

Subsequent calls to ibase_fetch_object() return the next row in the result set, or FALSE if there are no more rows.

fetch_flag is a combination of the constants IBASE_TEXT and IBASE_UNIXTIME ORed together. Passing IBASE_TEXT will cause this function to return BLOB contents instead of BLOB ids. Passing IBASE_UNIXTIME will cause this function to return date/time values as Unix timestamps instead of as formatted strings.

See also ibase_fetch_row() and ibase_fetch_assoc().

Předcházející | Domů | Další
ibase_fetch_assoc | Nahoru | ibase_fetch_row


ibase_fetch_row

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ibase_fetch_row -- Fetch a row from an InterBase database

Description

array ibase_fetch_row ( resource result_identifier [, int fetch_flag])

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

ibase_fetch_row() fetches one row of data from the result associated with the specified result_identifier. The row is returned as an array. Each result column is stored in an array offset, starting at offset 0.

Subsequent calls to ibase_fetch_row() return the next row in the result set, or FALSE if there are no more rows.

fetch_flag is a combination of the constants IBASE_TEXT and IBASE_UNIXTIME ORed together. Passing IBASE_TEXT will cause this function to return BLOB contents instead of BLOB ids. Passing IBASE_UNIXTIME will cause this function to return date/time values as Unix timestamps instead of as formatted strings.

See also ibase_fetch_assoc() and ibase_fetch_object().

Předcházející | Domů | Další
ibase_fetch_object | Nahoru | ibase_field_info


ibase_field_info

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_field_info -- Get information about a field

Description

array ibase_field_info ( resource result, int field_number)

Returns an array with information about a field after a select query has been run. The array is in the form of name, alias, relation, length, type.

<?php
    $rs = ibase_query("SELECT * FROM tablename");
    $coln = ibase_num_fields($rs);
    for ($i = 0; $i < $coln; $i++) {
        $col_info = ibase_field_info($rs, $i);
        echo "name: ". $col_info['name']. "\n";
        echo "alias: ". $col_info['alias']. "\n";
        echo "relation: ". $col_info['relation']. "\n";
        echo "length: ". $col_info['length']. "\n";
        echo "type: ". $col_info['type']. "\n";
    }
?>

See also: ibase_num_fields().

Předcházející | Domů | Další
ibase_fetch_row | Nahoru | ibase_free_event_handler


ibase_free_event_handler

(PHP 5)

ibase_free_event_handler -- Cancels a registered event handler

Description

bool ibase_free_event_handler ( resource event)

This function causes the registered event handler specified by event to be cancelled. The callback function will no longer be called for the events it was registered to handle. Vrací TRUE při úspěchu, FALSE při selhání.

See also ibase_set_event_handler().

Předcházející | Domů | Další
ibase_field_info | Nahoru | ibase_free_query


ibase_free_query

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ibase_free_query -- Free memory allocated by a prepared query

Description

bool ibase_free_query ( resource query)

Free a query prepared by ibase_prepare(). Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
ibase_free_event_handler | Nahoru | ibase_free_result


ibase_free_result

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ibase_free_result -- Free a result set

Description

bool ibase_free_result ( resource result_identifier)

Frees a result set that has been created by ibase_query() or ibase_execute(). Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
ibase_free_query | Nahoru | ibase_gen_id


ibase_gen_id

(PHP 5)

ibase_gen_id -- Increments the named generator and returns its new value

Description

int ibase_gen_id ( [resource link_identifier [, string generator [, int increment]]])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ibase_free_result | Nahoru | ibase_modify_user


ibase_modify_user

(PHP 4 >= 4.2.0, PHP 5)

ibase_modify_user -- Modify a user to a security database (only for IB6 or later)

Description

bool ibase_modify_user ( string server, string dba_user_name, string dba_user_password, string user_name, string password [, string first_name [, string middle_name [, string last_name]]])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

See also ibase_add_user() and ibase_delete_user().

Předcházející | Domů | Další
ibase_gen_id | Nahoru | ibase_name_result


ibase_name_result

(PHP 5)

ibase_name_result -- Assigns a name to a result set

Description

bool ibase_name_result ( resource result, string name)

This function assigns a name to a result set. This name can be used later in UPDATE|DELETE ... WHERE CURRENT OF name statements. Vrací TRUE při úspěchu, FALSE při selhání.

<?php
 $result = ibase_query("SELECT field1,field2 FROM table FOR UPDATE");
    ibase_name_result($result, "my_cursor");

    $updateqry = ibase_prepare("UPDATE table SET field2 = ? WHERE CURRENT OF my_cursor");

    for ($i = 0; ibase_fetch_row($result); ++$i) {
        ibase_execute($updateqry, $i);
    }
?>

See also ibase_prepare() and ibase_execute().

Předcházející | Domů | Další
ibase_modify_user | Nahoru | ibase_num_fields


ibase_num_fields

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_num_fields -- Get the number of fields in a result set

Description

int ibase_num_fields ( resource result_id)

Returns an integer containing the number of fields in a result set.

<?php
    $rs = ibase_query("SELECT * FROM tablename");
    $coln = ibase_num_fields($rs);
    for ($i = 0; $i < $coln; $i++) {
        $col_info = ibase_field_info($rs, $i);
        echo "name: " . $col_info['name'] . "\n";
        echo "alias: " . $col_info['alias'] . "\n";
        echo "relation: " . $col_info['relation'] . "\n";
        echo "length: " . $col_info['length'] . "\n";
        echo "type: " . $col_info['type'] . "\n";
    }
?>

See also: ibase_field_info().

Předcházející | Domů | Další
ibase_name_result | Nahoru | ibase_num_params


ibase_num_params

(PHP 5)

ibase_num_params -- Return the number of parameters in a prepared query

Description

int ibase_num_params ( resource query)

This function returns the number of parameters in the prepared query specified by query. This is the number of binding arguments that must be present when calling ibase_execute().

See also ibase_prepare() and ibase_param_info().

Předcházející | Domů | Další
ibase_num_fields | Nahoru | ibase_param_info


ibase_param_info

(PHP 5)

ibase_param_info -- Return information about a parameter in a prepared query

Description

array ibase_param_info ( resource query, int param_number)

Returns an array with information about a parameter after a query has been prepared. The array is in the form of name, alias, relation, length, type.

See also ibase_field_info() and ibase_num_params().

Předcházející | Domů | Další
ibase_num_params | Nahoru | ibase_pconnect


ibase_pconnect

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ibase_pconnect -- Open a persistent connection to an InterBase database

Description

resource ibase_pconnect ( string database [, string username [, string password [, string charset [, int buffers [, int dialect [, string role]]]]]])

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'.

Poznámka: buffers was added in PHP4-RC2.

Poznámka: dialect was added in PHP4-RC2. It is functional only with InterBase 6 and versions higher than that.

Poznámka: role was added in PHP4-RC2. It is functional only with InterBase 5 and versions higher than that.

See also ibase_close() and ibase_connect() for the meaning of parameters passed to this function. They are exactly the same.

Předcházející | Domů | Další
ibase_param_info | Nahoru | ibase_prepare


ibase_prepare

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ibase_prepare -- Prepare a query for later binding of parameter placeholders and execution

Description

resource ibase_prepare ( [resource link_identifier, string query])

Prepare a query for later binding of parameter placeholders and execution (via ibase_execute()).

Předcházející | Domů | Další
ibase_pconnect | Nahoru | ibase_query


ibase_query

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ibase_query -- Execute a query on an InterBase database

Description

resource ibase_query ( [resource link_identifier, string query [, int bind_args]])

Performs a query on an InterBase database. If the query raises an error, returns FALSE. If it is successful and there is a (possibly empty) result set (such as with a SELECT query), returns a result identifier. If the query was successful and there were no results, returns TRUE.

Příklad 1. ibase_query() example

<?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());

?>

Poznámka: In PHP 5.0.0 and up, this function will return the number of rows affected by the query for INSERT, UPDATE and DELETE statements. In order to retain backward compatibility, it will return TRUE for these statements if the query succeeded without affecting any rows.

Poznámka: If you get some error like "arithmetic exception, numeric overflow, or string truncation. Cannot transliterate character between character sets" (this occurs when you try use some character with accents) when using this and after ibase_query() you must set the character set (i.e. ISO8859_1 or your current character set).

See also ibase_errmsg(),
ibase_fetch_row(),
ibase_fetch_object(), and
ibase_free_result().

Předcházející | Domů | Další
ibase_prepare | Nahoru | ibase_rollback_ret


ibase_rollback_ret

(PHP 5)

ibase_rollback_ret -- Roll back a transaction without closing it

Description

bool ibase_rollback_ret ( [resource link_identifier])

If called without an argument, this function rolls back the default transaction of the default link. If the argument is a connection identifier, the default transaction of the corresponding connection will be rolled back. If the argument is a transaction identifier, the corresponding transaction will be rolled back. The transaction context will be retained, so statements executed from within this transaction will not be invalidated. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
ibase_query | Nahoru | ibase_rollback


ibase_rollback

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_rollback -- Roll back a transaction

Description

bool ibase_rollback ( [resource link_identifier])

If called without an argument, this function rolls back the default transaction of the default link. If the argument is a connection identifier, the default transaction of the corresponding connection will be rolled back. If the argument is a transaction identifier, the corresponding transaction will be rolled back. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
ibase_rollback_ret | Nahoru | ibase_set_event_handler


ibase_set_event_handler

(PHP 5)

ibase_set_event_handler -- Register a callback function to be called when events are posted

Description

resource ibase_set_event_handler ( [resource connection, callback event_handler, string event_name1 [, string event_name2 [, string ...]]])

This function registers a PHP user function as event handler for the specified events. The callback is called with the event name and the link resource as arguments whenever one of the specified events is posted by the database. The callback must return FALSE if the event handler should be canceled. Any other return value is ignored.

<?php

function event_handler($event_name, $link)
{
    if ($event_name=="NEW ORDER") {
        // process new order
        ibase_query($link, "UPDATE orders SET status='handled'");
    } else if ($event_name=="DB_SHUTDOWN") {
        // free event handler
        return false;
    }
}

ibase_set_event_handler($link, "event_handler", "NEW_ORDER", "DB_SHUTDOWN");
?>

The return value is an event resource. This resource can be used to free the event handler using ibase_free_event_handler().

See also ibase_free_event_handler() and ibase_wait_event().

Předcházející | Domů | Další
ibase_rollback | Nahoru | ibase_timefmt


ibase_timefmt

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

ibase_timefmt -- Sets the format of timestamp, date and time type columns returned from queries

Description

int ibase_timefmt ( string format [, int columntype])

Sets the format of timestamp, date or time type columns returned from queries. Internally, the columns are formatted by c-function strftime(), so refer to its documentation regarding to the format of the string. columntype is one of the constants IBASE_TIMESTAMP, IBASE_DATE and IBASE_TIME. If omitted, defaults to IBASE_TIMESTAMP for backwards compatibility.

<?php
    /* InterBase 6 TIME-type columns will be returned in
     * the form '05 hours 37 minutes'. */
    ibase_timefmt("%H hours %M minutes", IBASE_TIME);
?>

You can also set defaults for these formats with PHP configuration directives ibase.timestampformat, ibase.dateformat and ibase.timeformat.

Poznámka: columntype was added in PHP 4.0. It has any meaning only with InterBase version 6 and higher.

Poznámka: A backwards incompatible change happened in PHP 4.0 when PHP configuration directive ibase.timeformat was renamed to ibase.timestampformat and directives ibase.dateformat and ibase.timeformat were added, so that the names would match better their functionality.

Předcházející | Domů | Další
ibase_set_event_handler | Nahoru | ibase_trans


ibase_trans

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ibase_trans -- Begin a transaction

Description

resource ibase_trans ( [int trans_args [, resource link_identifier]])

Begins a transaction.

trans_args can be a combination of IBASE_READ, IBASE_WRITE, IBASE_COMMITTED, IBASE_CONSISTENCY, IBASE_CONCURRENCY, IBASE_REC_VERSION, IBASE_REC_NO_VERSION, IBASE_WAIT and IBASE_NOWAIT.

Poznámka: The behaviour of this function has been changed in PHP 5.0.0. The first call to ibase_trans() will not return the default transaction of a connection. All transactions started by ibase_trans() will be rolled back at the end of the script if they were not committed or rolled back by either ibase_commit() or ibase_rollback().

Poznámka: In PHP 5.0.0. and up, this function will accept multiple trans_args and link_identifier arguments. This allows transactions over multiple database connections, which are committed using a 2-phase commit algorithm. This means you can rely on the updates to either succeed in every database, or fail in every database. It does NOT mean you can use tables from different databases in the same query!

If you use transactions over multiple databases, you will have to specify both the link_id and transaction_id in calls to ibase_query() and ibase_prepare().

Předcházející | Domů | Další
ibase_timefmt | Nahoru | ibase_wait_event


ibase_wait_event

(PHP 5)

ibase_wait_event -- Wait for an event to be posted by the database

Description

string ibase_wait_event ( [resource connection, string event_name1 [, string event_name2 [, string ...]]])

This function suspends execution of the script until one of the specified events is posted by the database. The name of the event that was posted is returned. This function accepts up to 15 event arguments.

See also ibase_set_event_handler() and ibase_free_event_handler().

Předcházející | Domů | Další
ibase_trans | Nahoru | Ingres II Functions


Ingres II Functions

Manuál PHP
Předcházející Další

XLV. Ingres II Functions

Úvod

These functions allow you to access Ingres II database servers.

Poznámka: If you already used PHP extensions to access other database servers, note that Ingres doesn't allow concurrent queries and/or transaction over one connection, thus you won't find any result or transaction handle in this extension. The result of a query must be treated before sending another query, and a transaction must be committed or rolled back before opening another transaction (which is automatically done when sending the first query).

Varování

Toto rozšíření je EXPERIMENTÁLNÍ. Chování tohoto rozšíření, názvy funkcí a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může bez ohlášení změnit. Berte to v úvahu a používejte tento modul na vlastní nebezpečí.

Požadavky

To compile PHP with Ingres support, you need the Open API library and header files included with Ingres II.

Instalace

In order to have these functions available, you must compile PHP with Ingres support by using the --with-ingres[=DIR] option, where DIR is the Ingres base directory, which defaults to /II/ingres. If the II_SYSTEM environment variable isn't correctly set you may have to use --with-ingres=DIR to specify your Ingres installation directory.

When using this extension with Apache, if Apache does not start and complains with "PHP Fatal error: Unable to start ingres_ii module in Unknown on line 0" then make sure the environment variable II_SYSTEM is correctly set. Adding "export II_SYSTEM="/home/ingres/II" in the script that starts Apache, just before launching httpd, should be fine.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 1. Ingres II configuration options

Name | Default | Changeable
ingres.allow_persistent | "1" | PHP_INI_SYSTEM
ingres.max_persistent | "-1" | PHP_INI_SYSTEM
ingres.max_links | "-1" | PHP_INI_SYSTEM
ingres.default_database | NULL | PHP_INI_ALL
ingres.default_user | NULL | PHP_INI_ALL
ingres.default_password | NULL | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

INGRES_ASSOC (integer)

INGRES_NUM (integer)

INGRES_BOTH (integer)

Obsah
ingres_autocommit -- Switch autocommit on or off
ingres_close -- Close an Ingres II database connection
ingres_commit -- Commit a transaction
ingres_connect -- Open a connection to an Ingres II database
ingres_fetch_array -- Fetch a row of result into an array
ingres_fetch_object -- Fetch a row of result into an object.
ingres_fetch_row -- Fetch a row of result into an enumerated array
ingres_field_length -- Get the length of a field
ingres_field_name -- Get the name of a field in a query result.
ingres_field_nullable -- Test if a field is nullable
ingres_field_precision -- Get the precision of a field
ingres_field_scale -- Get the scale of a field
ingres_field_type -- Get the type of a field in a query result
ingres_num_fields -- Get the number of fields returned by the last query
ingres_num_rows -- Get the number of rows affected or returned by the last query
ingres_pconnect -- Open a persistent connection to an Ingres II database
ingres_query -- Send a SQL query to Ingres II
ingres_rollback -- Roll back a transaction

Předcházející | Domů | Další
ibase_wait_event | Nahoru | ingres_autocommit


ingres_autocommit

(PHP 4 >= 4.0.2, PHP 5)

ingres_autocommit -- Switch autocommit on or off

Description

bool ingres_autocommit ( [resource link])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ingres_autocommit() is called before opening a transaction (before the first call to ingres_query() or just after a call to ingres_rollback() or ingres_commit()) to switch the "autocommit" mode of the server on or off (when the script begins the autocommit mode is off).

When the autocommit mode is on, every query is automatically committed by the server, as if ingres_commit() was called after every call to ingres_query().

See also
ingres_query(),
ingres_rollback(), and
ingres_commit().

Předcházející | Domů | Další
Ingres II Functions | Nahoru | ingres_close


ingres_close

(PHP 4 >= 4.0.2, PHP 5)

ingres_close -- Close an Ingres II database connection

Description

bool ingres_close ( [resource link])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Returns TRUE on success, or FALSE on failure.

ingres_close() closes the connection to the Ingres server that's associated with the specified link. If the link parameter isn't specified, the last opened link is used.

ingres_close() isn't usually necessary, as it won't close persistent connections and all non-persistent connections are automatically closed at the end of the script.

See also ingres_connect() and ingres_pconnect().

Předcházející | Domů | Další
ingres_autocommit | Nahoru | ingres_commit


ingres_commit

(PHP 4 >= 4.0.2, PHP 5)

ingres_commit -- Commit a transaction

Description

bool ingres_commit ( [resource link])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ingres_commit() commits the currently open transaction, making all changes made to the database permanent.

This closes the transaction. A new one can be open by sending a query with ingres_query().

You can also have the server commit automatically after every query by calling ingres_autocommit() before opening the transaction.

See also
ingres_query(),
ingres_rollback(), and
ingres_autocommit().

Předcházející | Domů | Další
ingres_close | Nahoru | ingres_connect


ingres_connect

(PHP 4 >= 4.0.2, PHP 5)

ingres_connect -- Open a connection to an Ingres II database

Description

resource ingres_connect ( [string database [, string username [, string password]]])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Returns a Ingres II link resource on success, or FALSE on failure.

ingres_connect() opens a connection with the Ingres database designated by database, which follows the syntax [node_id::]dbname[/svr_class].

If some parameters are missing, ingres_connect() uses the values in php.ini for ingres.default_database, ingres.default_user, and ingres.default_password.

The connection is closed when the script ends or when ingres_close() is called on this link.

All the other ingres functions use the last opened link as a default, so you need to store the returned value only if you use more than one link at a time.

Příklad 1. ingres_connect() example

<?php
    $link = ingres_connect("mydb", "user", "pass")
        or die("Could not connect");
    echo "Connected successfully";
    ingres_close($link);
?>

Příklad 2. ingres_connect() example using default link

<?php
    ingres_connect("mydb", "user", "pass")
        or die("Could not connect");
    echo "Connected successfully";
    ingres_close();
?>

See also ingres_pconnect() and ingres_close().

Předcházející | Domů | Další
ingres_commit | Nahoru | ingres_fetch_array


ingres_fetch_array

(PHP 4 >= 4.0.2, PHP 5)

ingres_fetch_array -- Fetch a row of result into an array

Description

array ingres_fetch_array ( [int result_type [, resource link]])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ingres_fetch_array() Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

This function is an extended version of ingres_fetch_row(). In addition to storing the data in the numeric indices of the result array, it also stores the data in associative indices, using the field names as keys.

If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you must use the numeric index of the column or make an alias for the column.

<?php

ingres_query("select t1.f1 as foo t2.f1 as bar from t1, t2");
$result = ingres_fetch_array();
$foo = $result["foo"];
$bar = $result["bar"];

?>

result_type can be INGRES_NUM for enumerated array, INGRES_ASSOC for associative array, or INGRES_BOTH (default).

Speed-wise, the function is identical to ingres_fetch_object(), and almost as quick as ingres_fetch_row() (the difference is insignificant).

Příklad 1. ingres_fetch_array() example

<?php
ingres_connect($database, $user, $password);

ingres_query("select * from table");
while ($row = ingres_fetch_array()) {
    echo $row["user_id"];  // using associative array
    echo $row["fullname"];
    echo $row[1];          // using enumerated array
    echo $row[2];
}
?>

See also
ingres_query(),
ingres_num_fields(),
ingres_field_name(),
ingres_fetch_object(), and
ingres_fetch_row().

Předcházející | Domů | Další
ingres_connect | Nahoru | ingres_fetch_object


ingres_fetch_object

(PHP 4 >= 4.0.2, PHP 5)

ingres_fetch_object -- Fetch a row of result into an object.

Description

object ingres_fetch_object ( [int result_type [, resource link]])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ingres_fetch_object() Returns an object that corresponds to the fetched row, or FALSE if there are no more rows.

This function is similar to ingres_fetch_array(), with one difference - an object is returned, instead of an array. Indirectly, that means that you can only access the data by the field names, and not by their offsets (numbers are illegal property names).

The optional argument result_type is a constant and can take the following values: INGRES_ASSOC, INGRES_NUM, and INGRES_BOTH.

Speed-wise, the function is identical to ingres_fetch_array(), and almost as quick as ingres_fetch_row() (the difference is insignificant).

Příklad 1. ingres_fetch_object() example

<?php
ingres_connect($database, $user, $password);
ingres_query("select * from table");
while ($row = ingres_fetch_object()) {
    echo $row->user_id;
    echo $row->fullname;
}
?>

See also
ingres_query(),
ingres_num_fields(),
ingres_field_name(),
ingres_fetch_array(), and
ingres_fetch_row().

Předcházející | Domů | Další
ingres_fetch_array | Nahoru | ingres_fetch_row


ingres_fetch_row

(PHP 4 >= 4.0.2, PHP 5)

ingres_fetch_row -- Fetch a row of result into an enumerated array

Description

array ingres_fetch_row ( [resource link])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ingres_fetch_row() returns an array that corresponds to the fetched row, or FALSE if there are no more rows. Each result column is stored in an array offset, starting at offset 1.

Subsequent call to ingres_fetch_row() would return the next row in the result set, or FALSE if there are no more rows.

Příklad 1. ingres_fetch_row() example

<?php
ingres_connect($database, $user, $password);

ingres_query("select * from table");
while ($row = ingres_fetch_row()) {
    echo $row[1];
    echo $row[2];
}
?>

See also
ingres_num_fields(),
ingres_query(),
ingres_fetch_array(), and
ingres_fetch_object().

Předcházející | Domů | Další
ingres_fetch_object | Nahoru | ingres_field_length


ingres_field_length

(PHP 4 >= 4.0.2, PHP 5)

ingres_field_length -- Get the length of a field

Description

int ingres_field_length ( int index [, resource link])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ingres_field_length() returns the length of a field. This is the number of bytes used by the server to store the field. For detailed information, see the Ingres/OpenAPI User Guide - Appendix C.

index is the number of the field and must be between 1 and the value given by ingres_num_fields().

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object(), and
ingres_fetch_row().

Předcházející | Domů | Další
ingres_fetch_row | Nahoru | ingres_field_name


ingres_field_name

(PHP 4 >= 4.0.2, PHP 5)

ingres_field_name -- Get the name of a field in a query result.

Description

string ingres_field_name ( int index [, resource link])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ingres_field_name() returns the name of a field in a query result, or FALSE on failure.

index is the number of the field and must be between 1 and the value given by ingres_num_fields().

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object() and
ingres_fetch_row().

Předcházející | Domů | Další
ingres_field_length | Nahoru | ingres_field_nullable


ingres_field_nullable

(PHP 4 >= 4.0.2, PHP 5)

ingres_field_nullable -- Test if a field is nullable

Description

bool ingres_field_nullable ( int index [, resource link])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ingres_field_nullable() returns TRUE if the field can be set to the NULL value and FALSE if it can't.

index is the number of the field and must be between 1 and the value given by ingres_num_fields().

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object(), and
ingres_fetch_row().

Předcházející | Domů | Další
ingres_field_name | Nahoru | ingres_field_precision


ingres_field_precision

(PHP 4 >= 4.0.2, PHP 5)

ingres_field_precision -- Get the precision of a field

Description

int ingres_field_precision ( int index [, resource link])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ingres_field_precision() returns the precision of a field. This value is used only for decimal, float and money SQL data types. For detailed information, see the Ingres/OpenAPI User Guide - Appendix C.

index is the number of the field and must be between 1 and the value given by ingres_num_fields().

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object(), and
ingres_fetch_row().

Předcházející | Domů | Další
ingres_field_nullable | Nahoru | ingres_field_scale


ingres_field_scale

(PHP 4 >= 4.0.2, PHP 5)

ingres_field_scale -- Get the scale of a field

Description

int ingres_field_scale ( int index [, resource link])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ingres_field_scale() returns the scale of a field. This value is used only for the decimal SQL data type. For detailed information, see the Ingres/OpenAPI User Guide - Appendix C.

index is the number of the field and must be between 1 and the value given by ingres_num_fields().

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object(), and
ingres_fetch_row().

Předcházející | Domů | Další
ingres_field_precision | Nahoru | ingres_field_type


ingres_field_type

(PHP 4 >= 4.0.2, PHP 5)

ingres_field_type -- Get the type of a field in a query result

Description

string ingres_field_type ( int index [, resource link])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ingres_field_type() returns the type of a field in a query result, or FALSE on failure. Examples of types returned are "IIAPI_BYTE_TYPE", "IIAPI_CHA_TYPE", "IIAPI_DTE_TYPE", "IIAPI_FLT_TYPE", "IIAPI_INT_TYPE", "IIAPI_VCH_TYPE". Some of these types can map to more than one SQL type depending on the length of the field (see ingres_field_length()). For example "IIAPI_FLT_TYPE" can be a float4 or a float8. For detailed information, see the Ingres/OpenAPI User Guide - Appendix C.

index is the number of the field and must be between 1 and the value given by ingres_num_fields().

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object(), and
ingres_fetch_row().

Předcházející | Domů | Další
ingres_field_scale | Nahoru | ingres_num_fields


ingres_num_fields

(PHP 4 >= 4.0.2, PHP 5)

ingres_num_fields -- Get the number of fields returned by the last query

Description

int ingres_num_fields ( [resource link])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ingres_num_fields() returns the number of fields in the results returned by the Ingres server after a call to ingres_query()

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object(), and
ingres_fetch_row().

Předcházející | Domů | Další
ingres_field_type | Nahoru | ingres_num_rows


ingres_num_rows

(PHP 4 >= 4.0.2, PHP 5)

ingres_num_rows -- Get the number of rows affected or returned by the last query

Description

int ingres_num_rows ( [resource link])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

For delete, insert or update queries, ingres_num_rows() returns the number of rows affected by the query. For other queries, ingres_num_rows() returns the number of rows in the query's result.

Poznámka: This function is mainly meant to get the number of rows modified in the database. If this function is called before using ingres_fetch_array(), ingres_fetch_object() or ingres_fetch_row() the server will delete the result's data and the script won't be able to get them.

You should instead retrieve the result's data using one of these fetch functions in a loop until it returns FALSE, indicating that no more results are available.

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object(), and
ingres_fetch_row().

Předcházející | Domů | Další
ingres_num_fields | Nahoru | ingres_pconnect


ingres_pconnect

(PHP 4 >= 4.0.2, PHP 5)

ingres_pconnect -- Open a persistent connection to an Ingres II database

Description

resource ingres_pconnect ( [string database [, string username [, string password]]])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Returns a Ingres II link resource on success, or FALSE on failure.

See ingres_connect() for parameters details and examples. There are only 2 differences between ingres_pconnect() and ingres_connect() : First, when connecting, the function will first try to find a (persistent) link that's already opened with the same parameters. If one is found, an identifier for it will be returned instead of opening a new connection. Second, the connection to the Ingres server will not be closed when the execution of the script ends. Instead, the link will remain open for future use (ingres_close() will not close links established by ingres_pconnect()). This type of link is therefore called 'persistent'.

See also ingres_connect() and ingres_close().

Předcházející | Domů | Další
ingres_num_rows | Nahoru | ingres_query


ingres_query

(PHP 4 >= 4.0.2, PHP 5)

ingres_query -- Send a SQL query to Ingres II

Description

bool ingres_query ( string query [, resource link])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Returns TRUE on success, or FALSE on failure.

ingres_query() sends the given query to the Ingres server. This query must be a valid SQL query (see the Ingres SQL reference guide)

The query becomes part of the currently open transaction. If there is no open transaction, ingres_query() opens a new transaction. To close the transaction, you can either call ingres_commit() to commit the changes made to the database or ingres_rollback() to cancel these changes. When the script ends, any open transaction is rolled back (by calling ingres_rollback()). You can also use ingres_autocommit() before opening a new transaction to have every SQL query immediately committed.

Some types of SQL queries can't be sent with this function:

  • close (see ingres_close())

  • commit (see ingres_commit())

  • connect (see ingres_connect())

  • disconnect (see ingres_close())

  • get dbevent

  • prepare to commit

  • rollback (see ingres_rollback())

  • savepoint

  • set autocommit (see ingres_autocommit())

  • all cursor related queries are unsupported

Příklad 1. ingres_query() example

<?php
ingres_connect($database, $user, $password);

ingres_query("select * from table");
while ($row = ingres_fetch_row()) {
    echo $row[1];
    echo $row[2];
}
?>

See also
ingres_fetch_array(),
ingres_fetch_object(),
ingres_fetch_row(),
ingres_commit(),
ingres_rollback(), and
ingres_autocommit().

Předcházející | Domů | Další
ingres_pconnect | Nahoru | ingres_rollback


ingres_rollback

(PHP 4 >= 4.0.2, PHP 5)

ingres_rollback -- Roll back a transaction

Description

bool ingres_rollback ( [resource link])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ingres_rollback() rolls back the currently open transaction, actually canceling all changes made to the database during the transaction.

This closes the transaction. A new one can be open by sending a query with ingres_query().

See also
ingres_query(),
ingres_commit(), and
ingres_autocommit().

Předcházející | Domů | Další
ingres_query | Nahoru | IRC Gateway Functions


IRC Gateway Functions

Manuál PHP
Předcházející Další

XLVI. IRC Gateway Functions

Úvod

With IRCG you can rapidly stream XML data to thousands of concurrently connected users. This can be used to build powerful, extensible interactive platforms such as online games and webchats. IRCG also features support for a non-streaming mode where a helper application reformats incoming data and supplies static file snippets in special formats such as cHTML (i-mode) or WML (WAP). These static files are then delivered by the high-performance web server.

Up to v4, IRCG runs under these platforms:

  • AIX

  • FreeBSD

  • HP-UX

  • Irix

  • Linux

  • Solaris

  • Tru64

  • Windows

Instalace

Detailed installation instructions can be found at http://www.schumann.cx/ircg/. We urge you to use the provided installation script.

It is not recommended, but you can try enable IRCG support yourself. Provide the path to the ircg-config script, --with-ircg-config=path/to/irc-config and in addition add --with-ircg to your configure line.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Obsah
ircg_channel_mode -- Set channel mode flags for user
ircg_disconnect -- Close connection to server
ircg_fetch_error_msg -- Returns the error from previous IRCG operation
ircg_get_username -- Get username for connection
ircg_html_encode -- Encodes HTML preserving output
ircg_ignore_add -- Add a user to your ignore list on a server
ircg_ignore_del -- Remove a user from your ignore list on a server
ircg_invite -- Invites nickname to channel
ircg_is_conn_alive -- Check connection status
ircg_join -- Join a channel on a connected server
ircg_kick -- Kick a user out of a channel on server
ircg_list -- List topic/user count of channel(s)
ircg_lookup_format_messages -- Check for the existence of a format message set
ircg_lusers -- IRC network statistics
ircg_msg -- Send message to channel or user on server
ircg_nick -- Change nickname on server
ircg_nickname_escape -- Encode special characters in nickname to be IRC-compliant
ircg_nickname_unescape -- Decodes encoded nickname
ircg_notice -- Send a notice to a user on server
ircg_oper -- Elevates privileges to IRC OPER
ircg_part -- Leave a channel on server
ircg_pconnect -- Connect to an IRC server
ircg_register_format_messages -- Register a format message set
ircg_set_current -- Set current connection for output
ircg_set_file -- Set logfile for connection
ircg_set_on_die -- Set action to be executed when connection dies
ircg_topic -- Set topic for channel on server
ircg_who -- Queries server for WHO information
ircg_whois -- Query server for user information

Předcházející | Domů | Další
ingres_rollback | Nahoru | ircg_channel_mode


ircg_channel_mode

(PHP 4 >= 4.0.5, PHP 5)

ircg_channel_mode -- Set channel mode flags for user

Description

bool ircg_channel_mode ( resource connection, string channel, string mode_spec, string nick)

Set channel mode flags for channel on server connected to by connection. Mode flags are passed in mode_spec and are applied to the user specified by nick.

Mode flags are set or cleared by specifying a mode character and prepending it with a plus or minus character, respectively. E.g. operator mode is granted by '+o' and revoked by '-o', as passed as mode_spec.

Předcházející | Domů | Další
IRC Gateway Functions | Nahoru | ircg_disconnect


ircg_disconnect

(PHP 4 >= 4.0.4, PHP 5)

ircg_disconnect -- Close connection to server

Description

bool ircg_disconnect ( resource connection, string reason)

ircg_disconnect() will close a connection to a server previously established with ircg_pconnect().

See also: ircg_pconnect().

Předcházející | Domů | Další
ircg_channel_mode | Nahoru | ircg_fetch_error_msg


ircg_fetch_error_msg

(PHP 4 >= 4.1.0, PHP 5)

ircg_fetch_error_msg -- Returns the error from previous IRCG operation

Description

array ircg_fetch_error_msg ( resource connection)

ircg_fetch_error_msg() returns the error from a failed connection.

Poznámka: Error code is stored in first array element, error text in second. The error code is equivalent to IRC reply codes as defined by RFC 2812.

Příklad 1. ircg_fetch_error_msg() example

<?php
if (!ircg_join ($id, "#php")) {
    $error = ircg_fetch_error_msg($id);
    echo "Can't join channel #php. Error code:
          $error[0] Description: $error[1]";
}
?>

Předcházející | Domů | Další
ircg_disconnect | Nahoru | ircg_get_username


ircg_get_username

(PHP 4 >= 4.1.0, PHP 5)

ircg_get_username -- Get username for connection

Description

string ircg_get_username ( resource connection)

Function ircg_get_username() returns the username for the specified connection connection. Returns FALSE if connection died or is not valid.

Předcházející | Domů | Další
ircg_fetch_error_msg | Nahoru | ircg_html_encode


ircg_html_encode

(PHP 4 >= 4.0.5, PHP 5)

ircg_html_encode -- Encodes HTML preserving output

Description

bool ircg_html_encode ( string html_string)

Encodes a HTML string html_string for output. This exposes the interface which the IRCG extension uses internally to reformat data coming from an IRC link. The function causes IRC color/font codes to be encoded in HTML and escapes certain entities.

Předcházející | Domů | Další
ircg_get_username | Nahoru | ircg_ignore_add


ircg_ignore_add

(PHP 4 >= 4.0.5, PHP 5)

ircg_ignore_add -- Add a user to your ignore list on a server

Description

bool ircg_ignore_add ( resource connection, string nick)

This function adds user nick to the ignore list of connection connection. Afterwards, IRCG will suppress all messages from this user through the associated connection.

See also: ircg_ignore_del().

Předcházející | Domů | Další
ircg_html_encode | Nahoru | ircg_ignore_del


ircg_ignore_del

(PHP 4 >= 4.0.5, PHP 5)

ircg_ignore_del -- Remove a user from your ignore list on a server

Description

bool ircg_ignore_del ( resource connection, string nick)

This function removes user nick from the IRCG ignore list associated with connection.

See also: ircg_ignore_add().

Předcházející | Domů | Další
ircg_ignore_add | Nahoru | ircg_invite


ircg_invite

(PHP 4 >= 4.3.3, PHP 5)

ircg_invite -- Invites nickname to channel

Description

bool ircg_invite ( resource connection, string channel, string nickname)

ircg_invite() will send an invitation to the user nickname, prompting him to join channel. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
ircg_ignore_del | Nahoru | ircg_is_conn_alive


ircg_is_conn_alive

(PHP 4 >= 4.0.5, PHP 5)

ircg_is_conn_alive -- Check connection status

Description

bool ircg_is_conn_alive ( resource connection)

ircg_is_conn_alive() returns TRUE if connection is still alive and working or FALSE, if the connection has died for some reason.

Předcházející | Domů | Další
ircg_invite | Nahoru | ircg_join


ircg_join

(PHP 4 >= 4.0.4, PHP 5)

ircg_join -- Join a channel on a connected server

Description

bool ircg_join ( resource connection, string channel [, string key])

Join the channel channel on the server connected to by connection. IRCG will optionally pass the room key key.

Předcházející | Domů | Další
ircg_is_conn_alive | Nahoru | ircg_kick


ircg_kick

(PHP 4 >= 4.0.5, PHP 5)

ircg_kick -- Kick a user out of a channel on server

Description

bool ircg_kick ( resource connection, string channel, string nick, string reason)

Kick user nick from channel on server connected to by connection. reason should give a short message describing why this action was performed.

Předcházející | Domů | Další
ircg_join | Nahoru | ircg_list


ircg_list

(PHP 4 >= 4.3.3, PHP 5)

ircg_list -- List topic/user count of channel(s)

Description

bool ircg_list ( resource connection, string channel)

ircg_list() will request a list of users in the channel. The answer is sent to the output defined by ircg_set_file() or ircg_set_current(). Vrací TRUE při úspěchu, FALSE při selhání.

Příklad 1. ircg_list() example

<?php

// connect to server
$id = ircg_pconnect($nickname, $ip, $port);

// set to output to a file
ircg_set_file($id, 'irc_output.html');

// try to join a channel
if (!ircg_join($id, $channel)) {
    echo "Cannot /join $channel<br />";
}

// send list command
ircg_list($id, $channel);

// wait for output to arrive
sleep(5);

// disconnect
ircg_disconnect($id,'Bye World');

// output everything
readfile('irc_output.html');

?>

This example will output something similar to:

...
Channel #channel has n users and the topic is 'Topic'
End of LIST
...

See also: ircg_set_file(),
ircg_set_current(), and
ircg_who().

Předcházející | Domů | Další
ircg_kick | Nahoru | ircg_lookup_format_messages


ircg_lookup_format_messages

(PHP 4 >= 4.0.5, PHP 5)

ircg_lookup_format_messages -- Check for the existence of a format message set

Description

bool ircg_lookup_format_messages ( string name)

Check for the existence of the format message set name. Sets may be registered with ircg_register_format_messages(), a default set named ircg is always available. Returns TRUE, if the set exists and FALSE otherwise.

See also: ircg_register_format_messages()

Předcházející | Domů | Další
ircg_list | Nahoru | ircg_lusers


ircg_lusers

(PHP 4 >= 4.3.3, PHP 5)

ircg_lusers -- IRC network statistics

Description

bool ircg_lusers ( resource connection)

ircg_lusers() will request a statistical breakdown of users on the network connected to on connection. The answer is sent to the output defined by ircg_set_file() or ircg_set_current(). Vrací TRUE při úspěchu, FALSE při selhání.

See also: ircg_set_file(), and ircg_set_current().

Předcházející | Domů | Další
ircg_lookup_format_messages | Nahoru | ircg_msg


ircg_msg

(PHP 4 >= 4.0.4, PHP 5)

ircg_msg -- Send message to channel or user on server

Description

bool ircg_msg ( resource connection, string recipient, string message [, boolean suppress])

ircg_msg() will send the message to a channel or user on the server connected to by connection. A recipient starting with # or & will send the message to a channel, anything else will be interpreted as a username.

Setting the optional parameter suppress to a TRUE value will suppress output of your message to your own connection. This so-called loopback is necessary, because the IRC server does not echo PRIVMSG commands back to us.

Předcházející | Domů | Další
ircg_lusers | Nahoru | ircg_nick


ircg_nick

(PHP 4 >= 4.0.5, PHP 5)

ircg_nick -- Change nickname on server

Description

bool ircg_nick ( resource connection, string nick)

Change your nickname on the given connection to the one given in nick, if possible.

Will return TRUE on success and FALSE on failure.

Předcházející | Domů | Další
ircg_msg | Nahoru | ircg_nickname_escape


ircg_nickname_escape

(PHP 4 >= 4.0.6, PHP 5)

ircg_nickname_escape -- Encode special characters in nickname to be IRC-compliant

Description

string ircg_nickname_escape ( string nick)

Function ircg_nickname_escape() returns an encoded nickname specified by nick which is IRC-compliant.

See also: ircg_nickname_unescape()

Předcházející | Domů | Další
ircg_nick | Nahoru | ircg_nickname_unescape


ircg_nickname_unescape

(PHP 4 >= 4.0.6, PHP 5)

ircg_nickname_unescape -- Decodes encoded nickname

Description

string ircg_nickname_unescape ( string nick)

Function ircg_nickname_unescape() returns a decoded nickname, which is specified in nick.

See also: ircg_nickname_escape()

Předcházející | Domů | Další
ircg_nickname_escape | Nahoru | ircg_notice


ircg_notice

(PHP 4 >= 4.0.5, PHP 5)

ircg_notice -- Send a notice to a user on server

Description

bool ircg_notice ( resource connection, string recipient, string message)

This function will send the message text to the user nick on the server connected to by connection. IRC servers and other software will not automatically generate replies to NOTICEs in contrast to other message types.

Předcházející | Domů | Další
ircg_nickname_unescape | Nahoru | ircg_oper


ircg_oper

(PHP 4 >= 4.3.3, PHP 5)

ircg_oper -- Elevates privileges to IRC OPER

Description

bool ircg_oper ( resource connection, string name, string password)

ircg_oper() will authenticate the logged in user on connection as an IRC operator. name and password must match a registered IRC operator account. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
ircg_notice | Nahoru | ircg_part


ircg_part

(PHP 4 >= 4.0.4, PHP 5)

ircg_part -- Leave a channel on server

Description

bool ircg_part ( resource connection, string channel)

Leave the channel channel on the server connected to by connection.

Předcházející | Domů | Další
ircg_oper | Nahoru | ircg_pconnect


ircg_pconnect

(PHP 4 >= 4.0.4, PHP 5)

ircg_pconnect -- Connect to an IRC server

Description

resource ircg_pconnect ( string username [, string server_ip [, int server_port [, string msg_format [, array ctcp_messages [, array user_settings]]]]])

ircg_pconnect() will try to establish a connection to an IRC server and return a connection resource handle for further use.

The only mandatory parameter is username, this will set your initial nickname on the server. server_ip and server_port are optional and default to 127.0.0.1 and 6667.

Poznámka: For now parameter server_ip will not do any hostname lookups and will only accept IP addresses in numerical form. DNS lookups are expensive and should be done in the context of IRCG.

You can customize the output of IRC messages and events by selecting a format message set previously created with ircg_register_format_messages() by specifying the set's name in msg_format.

If you want to handle CTCP messages such as ACTION (/me), you need to define a mapping from CTCP type (e.g. ACTION) to a custom format string. Do this by passing an associative array as ctcp_messages. The keys of the array are the CTCP type and the respective value is the format message.

You can define "ident", "password", and "realname" tokens which are sent to the IRC server by setting these in an associative array. Pass that array as user_settings.

See also: ircg_disconnect(),
ircg_is_conn_alive(),
ircg_register_format_messages().

Předcházející | Domů | Další
ircg_part | Nahoru | ircg_register_format_messages


ircg_register_format_messages

(PHP 4 >= 4.0.5, PHP 5)

ircg_register_format_messages -- Register a format message set

Description

bool ircg_register_format_messages ( string name, array messages)

With ircg_register_format_messages() you can customize the way your IRC output looks like or which script functions are invoked on the client side.

  • Plain channel message

  • Private message received

  • Private message sent

  • Some user leaves channel

  • Some user enters channel

  • Some user was kicked from the channel

  • Topic has been changed

  • Error

  • Fatal error

  • Join list end(?)

  • Self part(?)

  • Some user changes his nick

  • Some user quits his connection

  • Mass join begin

  • Mass join element

  • Mass join end

  • Whois user

  • Whois server

  • Whois idle

  • Whois channel

  • Whois end

  • Voice status change on user

  • Operator status change on user

  • Banlist

  • Banlist end

  • %f - from

  • %t - to

  • %c - channel

  • %r - plain message

  • %m - encoded message

  • %j - js encoded message

  • 1 - mod encode

  • 2 - nickname decode

See also: ircg_lookup_format_messages().

Předcházející | Domů | Další
ircg_pconnect | Nahoru | ircg_set_current


ircg_set_current

(PHP 4 >= 4.0.4, PHP 5)

ircg_set_current -- Set current connection for output

Description

bool ircg_set_current ( resource connection)

Select the current HTTP connection for output in this execution context. Every output sent from the server connected to by connection will be copied to standard output while using default formatting or a format message set specified by ircg_register_format_messages().

See also: ircg_register_format_messages().

Předcházející | Domů | Další
ircg_register_format_messages | Nahoru | ircg_set_file


ircg_set_file

(PHP 4 >= 4.2.0, PHP 5)

ircg_set_file -- Set logfile for connection

Description

bool ircg_set_file ( resource connection, string path)

Function ircg_set_file() specifies a logfile path in which all output from connection connection will be logged. Returns TRUE on success, otherwise FALSE.

Předcházející | Domů | Další
ircg_set_current | Nahoru | ircg_set_on_die


ircg_set_on_die

(PHP 4 >= 4.2.0, PHP 5)

ircg_set_on_die -- Set action to be executed when connection dies

Description

bool ircg_set_on_die ( resource connection, string host, int port, string data)

In case of the termination of connection connection IRCG will connect to host at port (Note: host must be an IPv4 address, IRCG does not resolve host-names due to blocking issues), send data to the new host connection and will wait until the remote part closes connection. This can be used to trigger a PHP script for example.

This feature requires IRCG 3.

Předcházející | Domů | Další
ircg_set_file | Nahoru | ircg_topic


ircg_topic

(PHP 4 >= 4.0.5, PHP 5)

ircg_topic -- Set topic for channel on server

Description

bool ircg_topic ( resource connection, string channel, string new_topic)

Change the topic for channel channel on the server connected to by connection to new_topic.

Předcházející | Domů | Další
ircg_set_on_die | Nahoru | ircg_who


ircg_who

(PHP 4 >= 4.3.3, PHP 5)

ircg_who -- Queries server for WHO information

Description

bool ircg_who ( resource connection, string mask [, bool ops_only])

ircg_who() will request a list of users whose nickname is matching mask on connected network connection. The optional parameter ops_only will shrink the list to server operators only.

The answer is sent to the output defined by ircg_set_file() or ircg_set_current(). Vrací TRUE při úspěchu, FALSE při selhání.

See also: ircg_set_file(), and ircg_set_current().

Předcházející | Domů | Další
ircg_topic | Nahoru | ircg_whois


ircg_whois

(PHP 4 >= 4.0.5, PHP 5)

ircg_whois -- Query server for user information

Description

bool ircg_whois ( resource connection, string nick)

Sends a query to the connected server connection to ask for information about the specified user nick.

Předcházející | Domů | Další
ircg_who | Nahoru | PHP / Java Integration


PHP / Java Integration

Manuál PHP
Předcházející Další

XLVII. PHP / Java Integration

Úvod

There are two possible ways to bridge PHP and Java: you can either integrate PHP into a Java Servlet environment, which is the more stable and efficient solution, or integrate Java support into PHP. The former is provided by a SAPI module that interfaces with the Servlet server, the latter by this Java extension.

The Java extension provides a simple and effective means for creating and invoking methods on Java objects from PHP. The JVM is created using JNI, and everything runs in-process.

Varování

Toto rozšíření je EXPERIMENTÁLNÍ. Chování tohoto rozšíření, názvy funkcí a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může bez ohlášení změnit. Berte to v úvahu a používejte tento modul na vlastní nebezpečí.

Požadavky

You need a Java VM installed on your machine to use this extension.

Instalace

To include Java support in your PHP build you must add the option --with-java[=DIR] where DIR points to the base install directory of your JDK. This extension can only be built as a shared dl. More build instructions for this extension can be found in php-src/ext/java/README.

Note to Win32 Users: In order to enable this module on a Windows environment with PHP <= 4.0.6, you must copy jvm.dll from the DLL folder of the PHP/Win32 binary package to the SYSTEM32 folder of your windows machine. (Ex: C:\WINNT\SYSTEM32 or C:\WINDOWS\SYSTEM32). For PHP > 4.0.6 you do not need any additional dll file.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 1. Java configuration options

Name | Default | Changeable
java.class.path | NULL | PHP_INI_ALL
java.home | NULL | PHP_INI_ALL
java.library.path | NULL | PHP_INI_ALL
java.library | JAVALIB | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Příklady

Příklad 1. Java Example

<?php
// get instance of Java class java.lang.System in PHP
$system = new Java('java.lang.System');

// demonstrate property access
echo 'Java version=' . $system->getProperty('java.version') . '<br />';
echo 'Java vendor=' . $system->getProperty('java.vendor') . '<br />';
echo 'OS=' . $system->getProperty('os.name') . ' ' .
             $system->getProperty('os.version') . ' on ' .
             $system->getProperty('os.arch') . ' <br />';

// java.util.Date example
$formatter = new Java('java.text.SimpleDateFormat',
                      "EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");

echo $formatter->format(new Java('java.util.Date'));
?>

Příklad 2. AWT Example

<?php
// This example is only intended to be run as a CGI.

$frame  = new Java('java.awt.Frame', 'PHP');
$button = new Java('java.awt.Button', 'Hello Java World!');

$frame->add('North', $button);
$frame->validate();
$frame->pack();
$frame->visible = True;

$thread = new Java('java.lang.Thread');
$thread->sleep(10000);

$frame->dispose();
?>
Notes:

  • new Java() will create an instance of a class if a suitable constructor is available. If no parameters are passed and the default constructor is useful as it provides access to classes like java.lang.System which expose most of their functionallity through static methods.

  • Accessing a member of an instance will first look for bean properties then public fields. In other words, print $date.time will first attempt to be resolved as $date.getTime(), then as $date.time.

  • Both static and instance members can be accessed on an object with the same syntax. Furthermore, if the java object is of type java.lang.Class, then static members of the class (fields and methods) can be accessed.

  • Exceptions raised result in PHP warnings, and NULL results. The warnings may be eliminated by prefixing the method call with an "@" sign. The following APIs may be used to retrieve and reset the last error:

    • java_last_exception_get()

    • java_last_exception_clear()

  • Overload resolution is in general a hard problem given the differences in types between the two languages. The PHP Java extension employs a simple, but fairly effective, metric for determining which overload is the best match.

    Additionally, method names in PHP are not case sensitive, potentially increasing the number of overloads to select from.

    Once a method is selected, the parameters are coerced if necessary, possibly with a loss of data (example: double precision floating point numbers will be converted to boolean).

  • In the tradition of PHP, arrays and hashtables may pretty much be used interchangably. Note that hashtables in PHP may only be indexed by integers or strings; and that arrays of primitive types in Java can not be sparse. Also note that these constructs are passed by value, so may be expensive in terms of memory and time.

Java Servlet SAPI

The Java Servlet SAPI builds upon the mechanism defined by the Java extension to enable the entire PHP processor to be run as a servlet. The primary advanatage of this from a PHP perspective is that web servers which support servlets typically take great care in pooling and reusing JVMs. Build instructions for the Servlet SAPI module can be found in php4/sapi/README. Notes:

  • While this code is intended to be able to run on any servlet engine, it has only been tested on Apache's Jakarta/tomcat to date. Bug reports, success stories and/or patches required to get this code to run on other engines would be appreciated.

  • PHP has a habit of changing the working directory. sapi/servlet will eventually change it back, but while PHP is running the servlet engine may not be able to load any classes from the CLASSPATH which are specified using a relative directory syntax, or find the work directory used for administration and JSP compilation tasks.

Obsah
java_last_exception_clear -- Clear last Java exception
java_last_exception_get -- Get last Java exception

Předcházející | Domů | Další
ircg_whois | Nahoru | java_last_exception_clear


java_last_exception_clear

(PHP 4 >= 4.0.2)

java_last_exception_clear -- Clear last Java exception

Description

void java_last_exception_clear ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

See java_last_exception_get() for an example.

Předcházející | Domů | Další
PHP / Java Integration | Nahoru | java_last_exception_get


java_last_exception_get

(PHP 4 >= 4.0.2)

java_last_exception_get -- Get last Java exception

Description

exception java_last_exception_get ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

The following example demonstrates the usage of Java's exception handler from within PHP:

Příklad 1. Java exception handler

<?php
$stack = new Java('java.util.Stack');
$stack->push(1);

// This should succeed
$result = $stack->pop();
$ex = java_last_exception_get();
if (!$ex) {
  echo "$result\n";
}

// This should fail (error suppressed by @)
$result = @$stack->pop();
$ex = java_last_exception_get();
if ($ex) {
  echo $ex->toString();
}

// Clear last exception
java_last_exception_clear();
?>

Předcházející | Domů | Další
java_last_exception_clear | Nahoru | LDAP Functions


LDAP Functions

Manuál PHP
Předcházející Další

XLVIII. LDAP Functions

Úvod

LDAP is the Lightweight Directory Access Protocol, and is a protocol used to access "Directory Servers". The Directory is a special kind of database that holds information in a tree structure.

The concept is similar to your hard disk directory structure, except that in this context, the root directory is "The world" and the first level subdirectories are "countries". Lower levels of the directory structure contain entries for companies, organisations or places, while yet lower still we find directory entries for people, and perhaps equipment or documents.

To refer to a file in a subdirectory on your hard disk, you might use something like:

/usr/local/myapp/docs

The forwards slash marks each division in the reference, and the sequence is read from left to right.

The equivalent to the fully qualified file reference in LDAP is the "distinguished name", referred to simply as "dn". An example dn might be:

cn=John Smith,ou=Accounts,o=My Company,c=US

The comma marks each division in the reference, and the sequence is read from right to left. You would read this dn as:

country = US
organization = My Company
organizationalUnit = Accounts
commonName = John Smith

In the same way as there are no hard rules about how you organise the directory structure of a hard disk, a directory server manager can set up any structure that is meaningful for the purpose. However, there are some conventions that are used. The message is that you can not write code to access a directory server unless you know something about its structure, any more than you can use a database without some knowledge of what is available.

Lots of information about LDAP can be found at

  • Netscape

  • OpenLDAP Project

  • LDAP World

The Netscape SDK contains a helpful Programmer's Guide in HTML format.

Požadavky

You will need to get and compile LDAP client libraries from either the University of Michigan ldap-3.3 package, Netscape Directory SDK 3.0 or OpenLDAP to compile PHP with LDAP support.

Instalace

LDAP support in PHP is not enabled by default. You will need to use the --with-ldap[=DIR] configuration option when compiling PHP to enable LDAP support. DIR is the LDAP base install directory.

Note to Win32 Users: In order to enable this module on a Windows environment, you must copy several files from the DLL folder of the PHP/Win32 binary package to the SYSTEM folder of your windows machine. (Ex: C:\WINNT\SYSTEM32, or C:\WINDOWS\SYSTEM). For PHP <= 4.2.0 copy libsasl.dll, for PHP >= 4.3.0 copy libeay32.dll and ssleay32.dll to your SYSTEM folder.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 1. LDAP configuration options

Name | Default | Changeable
ldap.max_links | "-1" | PHP_INI_SYSTEM
For further details and definition of the PHP_INI_* constants see ini_set().

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

LDAP_DEREF_NEVER (integer)

LDAP_DEREF_SEARCHING (integer)

LDAP_DEREF_FINDING (integer)

LDAP_DEREF_ALWAYS (integer)

LDAP_OPT_DEREF (integer)

LDAP_OPT_SIZELIMIT (integer)

LDAP_OPT_TIMELIMIT (integer)

LDAP_OPT_PROTOCOL_VERSION (integer)

LDAP_OPT_ERROR_NUMBER (integer)

LDAP_OPT_REFERRALS (integer)

LDAP_OPT_RESTART (integer)

LDAP_OPT_HOST_NAME (integer)

LDAP_OPT_ERROR_STRING (integer)

LDAP_OPT_MATCHED_DN (integer)

LDAP_OPT_SERVER_CONTROLS (integer)

LDAP_OPT_CLIENT_CONTROLS (integer)

LDAP_OPT_DEBUG_LEVEL (integer)

GSLC_SSL_NO_AUTH (integer)

GSLC_SSL_ONEWAY_AUTH (integer)

GSLC_SSL_TWOWAY_AUTH (integer)

Příklady

Retrieve information for all entries where the surname starts with "S" from a directory server, displaying an extract with name and email address.

Příklad 1. LDAP search example

<?php
// basic sequence with LDAP is connect, bind, search, interpret search
// result, close connection

echo "<h3>LDAP query test</h3>";
echo "Connecting ...";
$ds=ldap_connect("localhost");  // must be a valid LDAP server!
echo "connect result is " . $ds . "<br />";

if ($ds) {
    echo "Binding ...";
    $r=ldap_bind($ds);     // this is an "anonymous" bind, typically
                           // read-only access
    echo "Bind result is " . $r . "<br />";

    echo "Searching for (sn=S*) ...";
    // Search surname entry
    $sr=ldap_search($ds, "o=My Company, c=US", "sn=S*");
    echo "Search result is " . $sr . "<br />";

    echo "Number of entires returned is " . ldap_count_entries($ds, $sr) . "<br />";

    echo "Getting entries ...<p>";
    $info = ldap_get_entries($ds, $sr);
    echo "Data for " . $info["count"] . " items returned:<p>";

    for ($i=0; $i<$info["count"]; $i++) {
        echo "dn is: " . $info[$i]["dn"] . "<br />";
        echo "first cn entry is: " . $info[$i]["cn"][0] . "<br />";
        echo "first email entry is: " . $info[$i]["mail"][0] . "<br /><hr />";
    }

    echo "Closing connection";
    ldap_close($ds);

} else {
    echo "<h4>Unable to connect to LDAP server</h4>";
}
?>

Using the PHP LDAP calls

Before you can use the LDAP calls you will need to know ..

  • The name or address of the directory server you will use

  • The "base dn" of the server (the part of the world directory that is held on this server, which could be "o=My Company,c=US")

  • Whether you need a password to access the server (many servers will provide read access for an "anonymous bind" but require a password for anything else)

The typical sequence of LDAP calls you will make in an application will follow this pattern:

ldap_connect() // establish connection to server
|
ldap_bind() // anonymous or authenticated "login"
|
do something like search or update the directory
and display the results
|
ldap_close() // "logout"

Obsah
ldap_8859_to_t61 -- Translate 8859 characters to t61 characters
ldap_add -- Add entries to LDAP directory
ldap_bind -- Bind to LDAP directory
ldap_close -- Close link to LDAP server
ldap_compare -- Compare value of attribute found in entry specified with DN
ldap_connect -- Connect to an LDAP server
ldap_count_entries -- Count the number of entries in a search
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_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 -- 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 -- Modify an LDAP entry
ldap_next_attribute -- Get the next attribute in result
ldap_next_entry -- Get next result entry
ldap_next_reference -- Get next reference
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_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
ldap_start_tls -- Start TLS
ldap_t61_to_8859 -- Translate t61 characters to 8859 characters
ldap_unbind -- Unbind from LDAP directory

Předcházející | Domů | Další
java_last_exception_get | Nahoru | ldap_8859_to_t61


ldap_8859_to_t61

(PHP 4 >= 4.0.2, PHP 5)

ldap_8859_to_t61 -- Translate 8859 characters to t61 characters

Description

string ldap_8859_to_t61 ( string value)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
LDAP Functions | Nahoru | ldap_add


ldap_add

(PHP 3, PHP 4 , PHP 5)

ldap_add -- Add entries to LDAP directory

Description

bool ldap_add ( resource link_identifier, string dn, array entry)

Vrací TRUE při úspěchu, FALSE při selhání.

The ldap_add() function is used to add entries in the LDAP directory. The DN of the entry to be added is specified by dn. Array entry 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.

entry["attribute1"] = value
entry["attribute2"][0] = value1
entry["attribute2"][1] = value2

Příklad 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["mail"]="jonj@example.com";
    $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";
}
?>

Předcházející | Domů | Další
ldap_8859_to_t61 | Nahoru | ldap_bind


ldap_bind

(PHP 3, PHP 4 , PHP 5)

ldap_bind -- Bind to LDAP directory

Description

bool ldap_bind ( resource link_identifier [, string bind_rdn [, string bind_password]])

Binds to the LDAP directory with specified RDN and password. Vrací TRUE při úspěchu, FALSE při selhání.

ldap_bind() does a bind operation on the directory. bind_rdn and bind_password are optional. If not specified, anonymous bind is attempted.

Příklad 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.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...";
    }

}

?>

Příklad 2. Using LDAP Bind Anonymously

<?php

//using ldap bind anonymously

// connect to ldap server
$ldapconn = ldap_connect("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...";
    }

}

?>

Předcházející | Domů | Další
ldap_add | Nahoru | ldap_close


ldap_close

(PHP 3, PHP 4 , PHP 5)

ldap_close -- Close link to LDAP server

Description

bool ldap_close ( resource link_identifier)

Vrací TRUE při úspěchu, FALSE při selhání.

ldap_close() closes the link to the LDAP server that's associated with the specified link_identifier.

This call is internally identical to ldap_unbind(). The LDAP API uses the call ldap_unbind(), so perhaps you should use this in preference to ldap_close().

Poznámka: This function is an alias of ldap_unbind().

Předcházející | Domů | Další
ldap_bind | Nahoru | ldap_compare


ldap_compare

(PHP 4 >= 4.0.2, PHP 5)

ldap_compare -- Compare value of attribute found in entry specified with DN

Description

bool ldap_compare ( resource link_identifier, string dn, string attribute, string value)

Returns TRUE if value matches otherwise returns FALSE. Returns -1 on error.

ldap_compare() is used to compare value of attribute to value of same attribute in LDAP directory entry specified with dn.

The following example demonstrates how to check whether or not given password matches the one defined in DN specified entry.

Příklad 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.";
}
?>

Varování

ldap_compare() can NOT be used to compare BINARY values!

Poznámka: This function was added in 4.0.2.

Předcházející | Domů | Další
ldap_close | Nahoru | ldap_connect


ldap_connect

(PHP 3, PHP 4 , PHP 5)

ldap_connect -- Connect to an LDAP server

Description

resource ldap_connect ( [string hostname [, int port]])

Returns a positive LDAP link identifier on success, or FALSE on error.

ldap_connect() establishes a connection to a LDAP server on a specified hostname and port. Both the arguments are optional. If no arguments are specified then the link identifier of the already opened link will be returned. If only hostname is specified, then the port defaults to 389.

If you are using OpenLDAP 2.x.x you can specify a URL instead of the hostname. To use LDAP with SSL, compile OpenLDAP 2.x.x with SSL support, configure PHP with SSL, and use ldaps://hostname/ as host parameter. The port parameter is not used when using URLs.

Poznámka: URL and SSL support were added in 4.0.4.

Příklad 1. Example of connecting to LDAP server.

<?php

// LDAP variables
$ldaphost = "ldap.example.com";  // your ldap servers
$ldapport = 389;                 // your ldap server's port number

// Connecting to LDAP
$ldapconn = ldap_connect($ldaphost, $ldapport)
          or die("Could not connect to $ldaphost");

?>

Příklad 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("Could not connect to {$ldaphost}");

?>

Předcházející | Domů | Další
ldap_compare | Nahoru | ldap_count_entries


ldap_count_entries

(PHP 3, PHP 4 , PHP 5)

ldap_count_entries -- Count the number of entries in a search

Description

int ldap_count_entries ( resource link_identifier, resource result_identifier)

Returns number of entries in the result or FALSE on error.

ldap_count_entries() returns the number of entries stored in the result of previous search operations. result_identifier identifies the internal ldap result.

Předcházející | Domů | Další
ldap_connect | Nahoru | ldap_delete


ldap_delete

(PHP 3, PHP 4 , PHP 5)

ldap_delete -- Delete an entry from a directory

Description

bool ldap_delete ( resource link_identifier, string dn)

Vrací TRUE při úspěchu, FALSE při selhání.

ldap_delete() function delete a particular entry in LDAP directory specified by dn.

Předcházející | Domů | Další
ldap_count_entries | Nahoru | ldap_dn2ufn


ldap_dn2ufn

(PHP 3, PHP 4 , PHP 5)

ldap_dn2ufn -- Convert DN to User Friendly Naming format

Description

string ldap_dn2ufn ( string dn)

ldap_dn2ufn() function is used to turn a DN, specified by dn, into a more user-friendly form, stripping off type names.

Předcházející | Domů | Další
ldap_delete | Nahoru | ldap_err2str


ldap_err2str

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ldap_err2str -- Convert LDAP error number into string error message

Description

string ldap_err2str ( int errno)

Returns string error message.

This function 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.

See also ldap_errno() and ldap_error().

Příklad 1. Enumerating all LDAP error messages

<?php
  for ($i=0; $i<100; $i++) {
    printf("Error $i: %s<br />\n", ldap_err2str($i));
  }
?>

Předcházející | Domů | Další
ldap_dn2ufn | Nahoru | ldap_errno


ldap_errno

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

ldap_errno -- Return the LDAP error number of the last LDAP command

Description

int ldap_errno ( resource link_identifier)

Return the LDAP error number of the last LDAP command for this link.

This function returns the standardized error number returned by the last LDAP command for the given link_identifier. This number can be converted into a textual error message using ldap_err2str().

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.

Příklad 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";
?>

See also ldap_err2str() and ldap_error().

Předcházející | Domů | Další
ldap_err2str | Nahoru | ldap_error


ldap_error

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

ldap_error -- Return the LDAP error message of the last LDAP command

Description

string ldap_error ( resource link_identifier)

Returns string error message.

This function returns the string error message explaining the error generated by the last LDAP command for the given link_identifier 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.

See also ldap_err2str() and ldap_errno().

Předcházející | Domů | Další
ldap_errno | Nahoru | ldap_explode_dn


ldap_explode_dn

(PHP 3, PHP 4 , PHP 5)

ldap_explode_dn -- Splits DN into its component parts

Description

array ldap_explode_dn ( string dn, int with_attrib)

ldap_explode_dn() function is used to split 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. ldap_explode_dn() returns an array of all those components. with_attrib is 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.

Předcházející | Domů | Další
ldap_error | Nahoru | ldap_first_attribute


ldap_first_attribute

(PHP 3, PHP 4 , PHP 5)

ldap_first_attribute -- Return first attribute

Description

string ldap_first_attribute ( resource link_identifier, resource result_entry_identifier, int ber_identifier)

Returns the first attribute in the entry on success and FALSE on error.

Similar to reading entries, attributes are also read one by one from a particular entry. ldap_first_attribute() returns the first attribute in the entry pointed by the result_entry_identifier. Remaining attributes are retrieved by calling ldap_next_attribute() successively. ber_identifier is the identifier to internal memory location pointer. It is passed by reference. The same ber_identifier is passed to the ldap_next_attribute() function, which modifies that pointer.

See also ldap_get_attributes()

Předcházející | Domů | Další
ldap_explode_dn | Nahoru | ldap_first_entry


ldap_first_entry

(PHP 3, PHP 4 , PHP 5)

ldap_first_entry -- Return first result id

Description

resource ldap_first_entry ( resource link_identifier, resource result_identifier)

Returns the result entry identifier for the first entry on success and FALSE on error.

Entries in the LDAP result are read sequentially using the ldap_first_entry() and ldap_next_entry() functions. ldap_first_entry() 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.

See also ldap_get_entries().

Předcházející | Domů | Další
ldap_first_attribute | Nahoru | ldap_first_reference


ldap_first_reference

(PHP 4 >= 4.0.5, PHP 5)

ldap_first_reference -- Return first reference

Description

resource ldap_first_reference ( resource link, resource result)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ldap_first_entry | Nahoru | ldap_free_result


ldap_free_result

(PHP 3, PHP 4 , PHP 5)

ldap_free_result -- Free result memory

Description

bool ldap_free_result ( resource result_identifier)

Vrací TRUE při úspěchu, FALSE při selhání.

ldap_free_result() frees up the memory allocated internally to store the result and pointed by the result_identifier. 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.

Předcházející | Domů | Další
ldap_first_reference | Nahoru | ldap_get_attributes


ldap_get_attributes

(PHP 3, PHP 4 , PHP 5)

ldap_get_attributes -- Get attributes from a search result entry

Description

array ldap_get_attributes ( resource link_identifier, resource result_entry_identifier)

Returns a complete entry information in a multi-dimensional array on success and FALSE on error.

ldap_get_attributes() function is used to simplify reading the attributes and values from an entry in the search result. The return value is a multi-dimensional array of attributes and values.

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

Příklad 1. Show the list of attributes held for a particular directory entry

<?php
// $ds is the link identifier for the directory

// $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 />";
}
?>

See also ldap_first_attribute() and ldap_next_attribute().

Předcházející | Domů | Další
ldap_free_result | Nahoru | ldap_get_dn


ldap_get_dn

(PHP 3, PHP 4 , PHP 5)

ldap_get_dn -- Get the DN of a result entry

Description

string ldap_get_dn ( resource link_identifier, resource result_entry_identifier)

Returns the DN of the result entry and FALSE on error.

ldap_get_dn() function is used to find out the DN of an entry in the result.

Předcházející | Domů | Další
ldap_get_attributes | Nahoru | ldap_get_entries


ldap_get_entries

(PHP 3, PHP 4 , PHP 5)

ldap_get_entries -- Get all result entries

Description

array ldap_get_entries ( resource link_identifier, resource result_identifier)

Returns a complete result information in a multi-dimensional array on success and FALSE on error.

ldap_get_entries() function is used to simplify reading multiple entries from the result, specified with result_identifier, and then reading the attributes and multiple values. The entire information is returned by one function call in a multi-dimensional array. 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] = 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

See also ldap_first_entry() and ldap_next_entry()

Předcházející | Domů | Další
ldap_get_dn | Nahoru | ldap_get_option


ldap_get_option

(PHP 4 >= 4.0.4, PHP 5)

ldap_get_option -- Get the current value for given option

Description

bool ldap_get_option ( resource link_identifier, int option, mixed retval)

Sets retval to the value of the specified option. Vrací TRUE při úspěchu, FALSE při selhání.

The parameter option can be one of: LDAP_OPT_DEREF, LDAP_OPT_SIZELIMIT, LDAP_OPT_TIMELIMIT, LDAP_OPT_PROTOCOL_VERSION, LDAP_OPT_ERROR_NUMBER, LDAP_OPT_REFERRALS, LDAP_OPT_RESTART, LDAP_OPT_HOST_NAME, LDAP_OPT_ERROR_STRING, LDAP_OPT_MATCHED_DN. These are described in draft-ietf-ldapext-ldap-c-api-xx.txt

Poznámka: This function is only available when using OpenLDAP 2.x.x OR Netscape Directory SDK x.x, and was added in PHP 4.0.4

Příklad 1. Check protocol version

<?php
// $ds is a valid link identifier for a directory server
if (ldap_get_option($ds, LDAP_OPT_PROTOCOL_VERSION, $version)) {
    echo "Using protocol version $version\n";
} else {
    echo "Unable to determine protocol version\n";
}
?>

See also ldap_set_option().

Předcházející | Domů | Další
ldap_get_entries | Nahoru | ldap_get_values_len


ldap_get_values_len

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

ldap_get_values_len -- Get all binary values from a result entry

Description

array ldap_get_values_len ( resource link_identifier, resource result_entry_identifier, string attribute)

Returns an array of values for the attribute on success and FALSE on error.

ldap_get_values_len() function is used to read all the values of the attribute in the entry in the result. entry is specified by the result_entry_identifier. 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.

This function is used exactly like ldap_get_values() except that it handles binary data and not string data.

Poznámka: This function was added in 4.0.

Předcházející | Domů | Další
ldap_get_option | Nahoru | ldap_get_values


ldap_get_values

(PHP 3, PHP 4 , PHP 5)

ldap_get_values -- Get all values from a result entry

Description

array ldap_get_values ( resource link_identifier, resource result_entry_identifier, string attribute)

Returns an array of values for the attribute on success and FALSE on error.

ldap_get_values() function is used to read all the values of the attribute in the entry in the result. entry is specified by the result_entry_identifier. 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.

This call needs a result_entry_identifier, 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.

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

Příklad 1. List all values of the "mail" attribute for a directory entry

<?php
// $ds is a valid link identifier 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 />";
}
?>

Předcházející | Domů | Další
ldap_get_values_len | Nahoru | ldap_list


ldap_list

(PHP 3, PHP 4 , PHP 5)

ldap_list -- Single-level search

Description

resource ldap_list ( resource link_identifier, string base_dn, string filter [, array attributes [, int attrsonly [, int sizelimit [, int timelimit [, int deref]]]]])

Returns a search result identifier or FALSE on error.

ldap_list() 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_dn given in the call. (Equivalent to typing "ls" and getting a list of files and folders in the current working directory.)

This call takes 5 optional parameters. See ldap_search() notes.

Poznámka: These optional parameters were added in 4.0.2: attrsonly, sizelimit, timelimit, deref.

Příklad 1. Produce a list of all organizational units of an organization

// $ds is a valid link identifier 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] ;
}

Poznámka: From 4.0.5 on it's also possible to do parallel searches. See ldap_search() for details.

Předcházející | Domů | Další
ldap_get_values | Nahoru | ldap_mod_add


ldap_mod_add

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

ldap_mod_add -- Add attribute values to current attributes

Description

bool ldap_mod_add ( resource link_identifier, string dn, array entry)

Vrací TRUE při úspěchu, FALSE při selhání.

This function adds attribute(s) to the specified dn. It performs the modification at the attribute level as opposed to the object level. Object-level additions are done by the ldap_add() function.

Předcházející | Domů | Další
ldap_list | Nahoru | ldap_mod_del


ldap_mod_del

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

ldap_mod_del -- Delete attribute values from current attributes

Description

bool ldap_mod_del ( resource link_identifier, string dn, array entry)

Vrací TRUE při úspěchu, FALSE při selhání.

This function removes attribute(s) from the specified dn. It performs the modification at the attribute level as opposed to the object level. Object-level deletions are done by the ldap_delete() function.

Předcházející | Domů | Další
ldap_mod_add | Nahoru | ldap_mod_replace


ldap_mod_replace

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

ldap_mod_replace -- Replace attribute values with new ones

Description

bool ldap_mod_replace ( resource link_identifier, string dn, array entry)

Vrací TRUE při úspěchu, FALSE při selhání.

This function replaces attribute(s) from the specified dn. It performs the modification at the attribute level as opposed to the object level. Object-level modifications are done by the ldap_modify() function.

Předcházející | Domů | Další
ldap_mod_del | Nahoru | ldap_modify


ldap_modify

(PHP 3, PHP 4 , PHP 5)

ldap_modify -- Modify an LDAP entry

Description

bool ldap_modify ( resource link_identifier, string dn, array entry)

Vrací TRUE při úspěchu, FALSE při selhání.

ldap_modify() function is used to modify the existing entries in the LDAP directory. The structure of the entry is same as in ldap_add().

Předcházející | Domů | Další
ldap_mod_replace | Nahoru | ldap_next_attribute


ldap_next_attribute

(PHP 3, PHP 4 , PHP 5)

ldap_next_attribute -- Get the next attribute in result

Description

string ldap_next_attribute ( resource link_identifier, resource result_entry_identifier, resource ber_identifier)

Returns the next attribute in an entry on success and FALSE on error.

ldap_next_attribute() is called to retrieve the attributes in an entry. The internal state of the pointer is maintained by the ber_identifier. It is passed by reference to the function. The first call to ldap_next_attribute() is made with the result_entry_identifier returned from ldap_first_attribute().

See also ldap_get_attributes()

Předcházející | Domů | Další
ldap_modify | Nahoru | ldap_next_entry


ldap_next_entry

(PHP 3, PHP 4 , PHP 5)

ldap_next_entry -- Get next result entry

Description

resource ldap_next_entry ( resource link_identifier, resource result_entry_identifier)

Returns entry identifier 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.

ldap_next_entry() function is used to 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 result_entry_identifier as returned from the ldap_first_entry().

See also ldap_get_entries()

Předcházející | Domů | Další
ldap_next_attribute | Nahoru | ldap_next_reference


ldap_next_reference

(PHP 4 >= 4.0.5, PHP 5)

ldap_next_reference -- Get next reference

Description

resource ldap_next_reference ( resource link, resource entry)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ldap_next_entry | Nahoru | ldap_parse_reference


ldap_parse_reference

(PHP 4 >= 4.0.5, PHP 5)

ldap_parse_reference -- Extract information from reference entry

Description

bool ldap_parse_reference ( resource link, resource entry, array referrals)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ldap_next_reference | Nahoru | ldap_parse_result


ldap_parse_result

(PHP 4 >= 4.0.5, PHP 5)

ldap_parse_result -- Extract information from result

Description

bool ldap_parse_result ( resource link, resource result, int errcode, string matcheddn, string errmsg, array referrals)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ldap_parse_reference | Nahoru | ldap_read


ldap_read

(PHP 3, PHP 4 , PHP 5)

ldap_read -- Read an entry

Description

resource ldap_read ( resource link_identifier, string base_dn, string filter [, array attributes [, int attrsonly [, int sizelimit [, int timelimit [, int deref]]]]])

Returns a search result identifier or FALSE on error.

ldap_read() 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.

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".

This call takes 5 optional parameters. See ldap_search() notes.

Poznámka: These optional parameters were added in 4.0.2: attrsonly, sizelimit, timelimit, deref.

From 4.0.5 on it's also possible to do parallel searches. See ldap_search() for details.

Předcházející | Domů | Další
ldap_parse_result | Nahoru | ldap_rename


ldap_rename

(PHP 4 >= 4.0.5, PHP 5)

ldap_rename -- Modify the name of an entry

Description

bool ldap_rename ( resource link_identifier, string dn, string newrdn, string newparent, bool deleteoldrdn)

The entry specified by dn is renamed/moved. The new RDN is specified by newrdn and the new parent/superior entry is specified by newparent. If the parameter deleteoldrdn is TRUE the old RDN value(s) is removed, else the old RDN value(s) is retained as non-distinguished values of the entry. Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: This function currently only works with LDAPv3. You may have to use ldap_set_option() prior to binding to use LDAPv3. This function is only available when using OpenLDAP 2.x.x OR Netscape Directory SDK x.x, and was added in PHP 4.0.5.

Předcházející | Domů | Další
ldap_read | Nahoru | ldap_search


ldap_search

(PHP 3, PHP 4 , PHP 5)

ldap_search -- Search LDAP tree

Description

resource ldap_search ( resource link_identifier, string base_dn, string filter [, array attributes [, int attrsonly [, int sizelimit [, int timelimit [, int deref]]]]])

Returns a search result identifier or FALSE on error.

ldap_search() 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. base_dn specifies the base DN for the directory.

There is an optional fourth parameter, that can be added to restrict the attributes and values returned by the server to just those required. This is much more efficient than the default action (which is to return all attributes and their associated values). The use of the fourth parameter should therefore be considered good practice.

The fourth parameter is a standard PHP string 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.

Note too that 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 occurs also if the sixth parameter sizelimit has been used to limit the count of fetched entries.

The fifth parameter attrsonly 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.

With the sixth parameter sizelimit it is possible to limit the count of entries fetched. Setting this to 0 means no limit. NOTE: This parameter can NOT override server-side preset sizelimit. You can set it lower though.

The seventh parameter timelimit sets the number of seconds how long is spend on the search. Setting this to 0 means no limit. NOTE: This parameter can NOT override server-side preset timelimit. You can set it lower though.

The eighth parameter 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.

Poznámka: These optional parameters were added in 4.0.2: attrsonly, sizelimit, timelimit, deref.

The search filter can be simple or advanced, using boolean operators in the format described in the LDAP documentation (see the Netscape Directory SDK for full information on filters).

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.

Příklad 1. LDAP search

<?php
// $ds is a valid link identifier 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";
?>

From 4.0.5 on it's also possible to do parallel searches. To do this you use an array of link identifiers, rather than a single identifier, as the first argument. If you don't want the same base DN and the same filter for all the searches, you can also use an array of base DNs and/or an array of filters. Those arrays must be of the same size as the link identifier array since the first entries of the arrays are used for one search, the second entries are used for another, and so on. When doing parallel searches an array of search result identifiers is returned, except in case of error, then the entry corresponding to the search will be FALSE. This is very much like the value normally returned, except that a result identifier is always returned when a search was made. There are some rare cases where the normal search returns FALSE while the parallel search returns an identifier.

Předcházející | Domů | Další
ldap_rename | Nahoru | ldap_set_option


ldap_set_option

(PHP 4 >= 4.0.4, PHP 5)

ldap_set_option -- Set the value of the given option

Description

bool ldap_set_option ( resource link_identifier, int option, mixed newval)

Sets the value of the specified option to be newval. Vrací TRUE při úspěchu, FALSE při selhání. on error.

The parameter option can be one of: LDAP_OPT_DEREF, LDAP_OPT_SIZELIMIT, LDAP_OPT_TIMELIMIT, LDAP_OPT_PROTOCOL_VERSION, LDAP_OPT_ERROR_NUMBER, LDAP_OPT_REFERRALS, LDAP_OPT_RESTART, LDAP_OPT_HOST_NAME, LDAP_OPT_ERROR_STRING, LDAP_OPT_MATCHED_DN, LDAP_OPT_SERVER_CONTROLS, LDAP_OPT_CLIENT_CONTROLS. Here's a brief description, see draft-ietf-ldapext-ldap-c-api-xx.txt for details.

The options LDAP_OPT_DEREF, LDAP_OPT_SIZELIMIT, LDAP_OPT_TIMELIMIT, LDAP_OPT_PROTOCOL_VERSION and LDAP_OPT_ERROR_NUMBER have integer value, LDAP_OPT_REFERRALS and LDAP_OPT_RESTART have boolean value, and the options LDAP_OPT_HOST_NAME, LDAP_OPT_ERROR_STRING and LDAP_OPT_MATCHED_DN have string value. The first example illustrates their use. The options LDAP_OPT_SERVER_CONTROLS and LDAP_OPT_CLIENT_CONTROLS require a list of controls, this means that the value must be an array of controls. A control consists of an oid identifying the control, an optional value, and an optional flag for criticality. In PHP a control is given by an array containing an element with the key oid and string value, and two optional elements. The optional elements are key value with string value and key iscritical with boolean value. iscritical defaults to FALSE if not supplied. See also the second example below.

Poznámka: This function is only available when using OpenLDAP 2.x.x OR Netscape Directory SDK x.x, and was added in PHP 4.0.4.

Příklad 1. Set protocol version

<?php
// $ds is a valid link identifier for a directory server
if (ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3)) {
    echo "Using LDAPv3";
} else {
    echo "Failed to set protocol version to 3";
}
?>

Příklad 2. Set server controls

<?php
// $ds is a valid link identifier for a directory server
// control with no value
$ctrl1 = array("oid" => "1.2.752.58.10.1", "iscritical" => true);
// iscritical defaults to FALSE
$ctrl2 = array("oid" => "1.2.752.58.1.10", "value" => "magic");
// try to set both controls
if (!ldap_set_option($ds, LDAP_OPT_SERVER_CONTROLS, array($ctrl1, $ctrl2)))
    echo "Failed to set server controls";
?>

See also ldap_get_option().

Předcházející | Domů | Další
ldap_search | Nahoru | ldap_set_rebind_proc


ldap_set_rebind_proc

(PHP 4 >= 4.2.0, PHP 5)

ldap_set_rebind_proc -- Set a callback function to do re-binds on referral chasing.

Description

bool ldap_set_rebind_proc ( resource link, string callback)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ldap_set_option | Nahoru | ldap_sort


ldap_sort

(PHP 4 >= 4.2.0, PHP 5)

ldap_sort -- Sort LDAP result entries

Description

bool ldap_sort ( resource link, resource result, string sortfilter)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ldap_set_rebind_proc | Nahoru | ldap_start_tls


ldap_start_tls

(PHP 4 >= 4.2.0, PHP 5)

ldap_start_tls -- Start TLS

Description

bool ldap_start_tls ( resource link)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ldap_sort | Nahoru | ldap_t61_to_8859


ldap_t61_to_8859

(PHP 4 >= 4.0.2, PHP 5)

ldap_t61_to_8859 -- Translate t61 characters to 8859 characters

Description

string ldap_t61_to_8859 ( string value)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ldap_start_tls | Nahoru | ldap_unbind


ldap_unbind

(PHP 3, PHP 4 , PHP 5)

ldap_unbind -- Unbind from LDAP directory

Description

bool ldap_unbind ( resource link_identifier)

Vrací TRUE při úspěchu, FALSE při selhání.

ldap_unbind() function unbinds from the LDAP directory.

Předcházející | Domů | Další
ldap_t61_to_8859 | Nahoru | LZF Functions


LZF Functions

Manuál PHP
Předcházející Další

XLIX. LZF Functions

Úvod

LZF is a very fast compression algorithm, ideal for saving space with only slight speed cost. It can be optimized for speed or space at the time of compilation.

Instalace

LZF is currently available through PECL http://pecl.php.net/package/lzf.

If PEAR is available on your *nix-like system you can use the pear installer to install the LZF extension, by the following command: pear -v install lzf.

You can always download the tar.gz package and install LZF by hand:

Příklad 1. LZF install by hand

gunzip lzf-xxx.tgz
tar -xvf lzf-xxx.tar
cd lzf-xxx
phpize
./configure && make && make install

You can pass --enable-lzf-better-compression to optimize LZF for space rather then speed.

Windows users can download the extension dll php_lzf.dll from http://snaps.php.net/win32/PECL_STABLE/.

Obsah
lzf_compress -- LZF compression.
lzf_decompress -- LZF decompression.
lzf_optimized_for -- Determines what LZF extension was optimized for.

Předcházející | Domů | Další
ldap_unbind | Nahoru | lzf_compress


lzf_compress

(no version information, might be only in CVS)

lzf_compress -- LZF compression.

Description

string lzf_compress ( string arg)

lzf_compress() compresses data in arg parameter.

Returns compressed data or FALSE if an error occured.

See also lzf_decompress().

Předcházející | Domů | Další
LZF Functions | Nahoru | lzf_decompress


lzf_decompress

(no version information, might be only in CVS)

lzf_decompress -- LZF decompression.

Description

string lzf_decompress ( string arg)

lzf_decompress() decompresses data from parameter arg.

Returns decompressed data or FALSE if an error occured.

See also lzf_compress().

Předcházející | Domů | Další
lzf_compress | Nahoru | lzf_optimized_for


lzf_optimized_for

(no version information, might be only in CVS)

lzf_optimized_for -- Determines what LZF extension was optimized for.

Description

int lzf_optimized_for ( void )

Returns 1 if LZF was optimized for speed, 0 for compression.

Předcházející | Domů | Další
lzf_decompress | Nahoru | Mailové funkce


Mailové funkce

Manuál PHP
Předcházející Další

L. Mailové funkce

Úvod

Funkce mail() umožňuje odesílat maily.

Požadavky

Aby byly tyto funkce dostupné, musí mít PHP při kompilaci přístup ke spustitelnému souboru sendmail na vašem systému. Pokud používáte jiný program, jako qmail nebo postfix, použijte odpovídající náhradu za sendmail, které je v daném programu k dispozici. PHP bude sendmail hledat nejprve v cestě PATH a pak zde: /usr/bin:/usr/sbin:/usr/etc:/etc:/usr/ucblib:/usr/lib. Vřele doporučujeme mít sendmail dostupný z cesty PATH. Uživatel, který PHP zkompiloval, také musí mít právo přístupu ke spustitelnému souboru sendmail.

Instalace

K používání těchto funkcí není třeba žádná instalace, jsou součástí jádra PHP.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 1. Konfigurační volby rozšíření Mail

Název | Výchozí | Měnitelné
SMTP | "localhost" | PHP_INI_ALL
smtp_port | "25" | PHP_INI_ALL
sendmail_from | NULL | PHP_INI_ALL
sendmail_path | DEFAULT_SENDMAIL_PATH | PHP_INI_SYSTEM
Bližší vysvětlení a definici PHP_INI_* konstant viz funkci ini_set().

Zde je stručné vysvětlení konfiguračních direktiv.

SMTP string

Používá se pouze pod Windows: DNS jméno nebo IP adresa SMTP serveru, který PHP použije pro posílání e-mailů ve funkci mail().

smtp_port int

Používá se pouze pod Windows: Číslo portu na serveru určeném v direktivě SMTP, na který se má připojit při posílání e-mailů ve funkci mail(). Výchozí je číslo 25. K dispozici pouze od PHP 4.3.0.

sendmail_from string

Jaká adresa "From:" se má použít při posílání e-mailu z PHP pod Windows.

sendmail_path string

Kde lze najít program sendmail, obvykle /usr/sbin/sendmail nebo /usr/lib/sendmail. Příkaz configure se pokusí tento soubor nalézt a nastavit, ale když neuspěje, můžete ho nastavit zde.

Na systémech, na kterých se nepoužívá sendmail, by měla být tato direktiva nastavena na náhradu příkazu sendmail, kterou poskytuje daný systém (pokud existuje). Například uživatelé systému Qmail mohou tuto direktivu za normálních okolností nastavit na /var/qmail/bin/sendmail nebo na /var/qmail/bin/qmail-inject.

Příkaz qmail-inject nepotřebuje žádné přepínače, aby e-maily korektně zpracoval.

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Obsah
ezmlm_hash -- Počítá hash hodnotu potřebnou pro EZMLM
mail -- send mail

Předcházející | Domů | Další
lzf_optimized_for | Nahoru | ezmlm_hash


ezmlm_hash

(PHP 3>= 3.0.17, PHP 4 >= 4.0.2, PHP 5)

ezmlm_hash -- Počítá hash hodnotu potřebnou pro EZMLM

Popis

int ezmlm_hash ( string addr)

ezmlm_hash() Počítá hash hodnotu, která je potřeba pro uchovávání EZMLM mailing listů v MySQL databázi.

Příklad 1. Výpočet hashe a přihlášení uživatele

$user = "kris@koehntopp.de";
$hash = ezmlm_hash ($user);
$query = sprintf ("INSERT INTO sample VALUES (%s, '%s')", $hash, $user);
$db->query($query); // použito databázové rozhraní PHPLIB

Předcházející | Domů | Další
Mailové funkce | Nahoru | mail


mail

(PHP 3, PHP 4 , PHP 5)

mail -- send mail

Popis

bool mail ( string to, string subject, string message [, string additional_headers])

mail() automaticky odmailuje vzkaz specifikovaný v message příjemci specifikovanému v to. Přidáním čárky mezi adresami v to můžete specifikovat více příjemců.

Příklad 1. Odeslání mailu.

mail("rasmus@lerdorf.on.ca", "Můj předmět", "Řádek 1\nŘádek 2\nŘádek 3");

Pokud je předán čtvrtý argument, jeho hodnota se vloží na konec hlaviček. Toto se obvykle používá k přidání extra hlaviček. Vícenásobné hlavičky se oddělují zařádkováním.

Příklad 2. Odeslání mailu s extra hlavičkami.

mail("nobody@aol.com", "předmět", $message,
     "From: webmaster@$SERVER_NAME\nReply-To: webmaster@$SERVER_NAME\nX-Mailer: PHP/" . phpversion());
K vytvoření komplexních emailů můžete také použít poměrně jednoduché techniky pro tvorbu řetězců.

Příklad 3. Odeslání komplexního emailu

/* recipients */
$recipient .= "Mary <mary@u.college.edu>" . ", " ; //všimněte si čárky
$recipient .= "Kelly <kelly@u.college.edu> . ", ";
$recipient .= "ronabop@php.net";

/* subject */
$subject = "Birthday Reminders for August";

/* message */
$message .= "Následující email obsahuje formátovanou ASCII tabulku\n";
$message .= "Day \t\tMonth \t\tYear\n";
$message .= "3rd \t\tAug \t\t1970\n";
$message .= "17rd\t\tAug \t\t1973\n";

/* můžete přidat signaturu */
$message .= "--\r\n"; //oddělovač signatury
$message .= "Birthday reminder copylefted by public domain";

/* dodatečné hlavičky pro chyby, From, cc, bcc, atd */

$headers .= "From: Birthday Reminder <birthday@php.net>\n";
$headers .= "X-Sender: <birthday@php.net>\n";
$headers .= "X-Mailer: PHP\n"; // mailový klient
$headers .= "X-Priority: 1\n"; // Urgentní vzkaz!
$headers .= "Return-Path: <birthday@php.net>\n";  // Návratová cesta pro chyby

/* Pokud chcete poslat HTML email, odkomentujte následující řádek */
// $headers .= "Content-Type: text/html; charset=iso-8859-1\n"; // Mime typ

$headers .= "cc:birthdayarchive@php.net\n"; // CC
$headers .= "bcc:birthdaycheck@php.net, birthdaygifts@php.net\n"; // BCC

/* a teď to odešleme */
mail($recipient, $subject, $message, $headers);

Předcházející | Domů | Další
ezmlm_hash | Nahoru | mailparse Functions


mailparse Functions

Manuál PHP
Předcházející Další

LI. mailparse Functions

Úvod

Varování

Toto rozšíření je EXPERIMENTÁLNÍ. Chování tohoto rozšíření, názvy funkcí a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může bez ohlášení změnit. Berte to v úvahu a používejte tento modul na vlastní nebezpečí.

This extension has been moved from PHP as of PHP 4.2.0 and now mailparse lives in PECL.

Instalace

These functions are only available if PHP was configured with --enable-mailparse.

Obsah
mailparse_determine_best_xfer_encoding -- Figures out the best way of encoding the content read from the file pointer fp, which must be seek-able
mailparse_msg_create -- Returns a handle that can be used to parse a message
mailparse_msg_extract_part_file -- Extracts/decodes a message section, decoding the transfer encoding
mailparse_msg_extract_part -- Extracts/decodes a message section. If callbackfunc is not specified, the contents will be sent to "stdout"
mailparse_msg_free -- Frees a handle allocated by mailparse_msg_create()
mailparse_msg_get_part_data -- Returns an associative array of info about the message
mailparse_msg_get_part -- Returns a handle on a given section in a mimemessage
mailparse_msg_get_structure -- Returns an array of mime section names in the supplied message
mailparse_msg_parse_file -- Parse file and return a resource representing the structure
mailparse_msg_parse -- Incrementally parse data into buffer
mailparse_rfc822_parse_addresses -- Parse addresses and returns a hash containing that data
mailparse_stream_encode -- Streams data from source file pointer, apply encoding and write to destfp
mailparse_uudecode_all -- Scans the data from fp and extract each embedded uuencoded file. Returns an array listing filename information

Předcházející | Domů | Další
mail | Nahoru | mailparse_determine_best_xfer_encoding


mailparse_determine_best_xfer_encoding

(4.1.0 - 4.1.2 only)

mailparse_determine_best_xfer_encoding -- Figures out the best way of encoding the content read from the file pointer fp, which must be seek-able

Description

int mailparse_determine_best_xfer_encoding ( resource fp)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mailparse Functions | Nahoru | mailparse_msg_create


mailparse_msg_create

(4.1.0 - 4.1.2 only)

mailparse_msg_create -- Returns a handle that can be used to parse a message

Description

int mailparse_msg_create ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mailparse_determine_best_xfer_encoding | Nahoru | mailparse_msg_extract_part_file


mailparse_msg_extract_part_file

(4.1.0 - 4.1.2 only)

mailparse_msg_extract_part_file -- Extracts/decodes a message section, decoding the transfer encoding

Description

string mailparse_msg_extract_part_file ( resource rfc2045, string filename [, string callbackfunc])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mailparse_msg_create | Nahoru | mailparse_msg_extract_part


mailparse_msg_extract_part

(4.1.0 - 4.1.2 only)

mailparse_msg_extract_part -- Extracts/decodes a message section. If callbackfunc is not specified, the contents will be sent to "stdout"

Description

void mailparse_msg_extract_part ( resource rfc2045, string msgbody [, string callbackfunc])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mailparse_msg_extract_part_file | Nahoru | mailparse_msg_free


mailparse_msg_free

(4.1.0 - 4.1.2 only)

mailparse_msg_free -- Frees a handle allocated by mailparse_msg_create()

Description

void mailparse_msg_free ( resource rfc2045buf)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mailparse_msg_extract_part | Nahoru | mailparse_msg_get_part_data


mailparse_msg_get_part_data

(4.1.0 - 4.1.2 only)

mailparse_msg_get_part_data -- Returns an associative array of info about the message

Description

array mailparse_msg_get_part_data ( resource rfc2045)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mailparse_msg_free | Nahoru | mailparse_msg_get_part


mailparse_msg_get_part

(4.1.0 - 4.1.2 only)

mailparse_msg_get_part -- Returns a handle on a given section in a mimemessage

Description

int mailparse_msg_get_part ( resource rfc2045, string mimesection)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mailparse_msg_get_part_data | Nahoru | mailparse_msg_get_structure


mailparse_msg_get_structure

(4.1.0 - 4.1.2 only)

mailparse_msg_get_structure -- Returns an array of mime section names in the supplied message

Description

array mailparse_msg_get_structure ( resource rfc2045)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mailparse_msg_get_part | Nahoru | mailparse_msg_parse_file


mailparse_msg_parse_file

(4.1.0 - 4.1.2 only)

mailparse_msg_parse_file -- Parse file and return a resource representing the structure

Description

resource mailparse_msg_parse_file ( string filename)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mailparse_msg_get_structure | Nahoru | mailparse_msg_parse


mailparse_msg_parse

(4.1.0 - 4.1.2 only)

mailparse_msg_parse -- Incrementally parse data into buffer

Description

void mailparse_msg_parse ( resource rfc2045buf, string data)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mailparse_msg_parse_file | Nahoru | mailparse_rfc822_parse_addresses


mailparse_rfc822_parse_addresses

(4.1.0 - 4.1.2 only)

mailparse_rfc822_parse_addresses -- Parse addresses and returns a hash containing that data

Description

array mailparse_rfc822_parse_addresses ( string addresses)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mailparse_msg_parse | Nahoru | mailparse_stream_encode


mailparse_stream_encode

(4.1.0 - 4.1.2 only)

mailparse_stream_encode -- Streams data from source file pointer, apply encoding and write to destfp

Description

bool mailparse_stream_encode ( resource sourcefp, resource destfp, string encoding)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mailparse_rfc822_parse_addresses | Nahoru | mailparse_uudecode_all


mailparse_uudecode_all

(no version information, might be only in CVS)

mailparse_uudecode_all -- Scans the data from fp and extract each embedded uuencoded file. Returns an array listing filename information

Description

array mailparse_uudecode_all ( resource fp)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mailparse_stream_encode | Nahoru | Matematické funkce


Matematické funkce

Manuál PHP
Předcházející Další

LII. Matematické funkce

Úvod

Tyto matematické funkce pracují pouze s hodnotami v rozmezí typů integer a float (v současnosti odpovídají typům long resp. double jazyka C). Pokud potřebujete pracovat s většími čísly, použijte funkce pro práci s libovolně přesnými čísly.

Podívejte se také na aritmetické operátory.

Požadavky

Tyto funkce jsou k dispozici jako součást standardního modulu, který je vždy dostupný.

Instalace

K používání těchto funkcí není třeba žádná instalace, jsou součástí jádra PHP.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Konstanty z tohoto seznamu jsou vždy dostupné jako součást jádra PHP.

Tabulka 1. Matematické konstanty

Konstanta | Hodnota | Popis
M_PI | 3.14159265358979323846 | Pí
M_E | 2.7182818284590452354 | e
M_LOG2E | 1.4426950408889634074 | log_2 e
M_LOG10E | 0.43429448190325182765 | log_10 e
M_LN2 | 0.69314718055994530942 | log_e 2
M_LN10 | 2.30258509299404568402 | log_e 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 | sqrt(pi) [4.0.2]
M_2_SQRTPI | 1.12837916709551257390 | 2/sqrt(pi)
M_SQRT2 | 1.41421356237309504880 | sqrt(2)
M_SQRT3 | 1.73205080756887729352 | sqrt(3) [4.0.2]
M_SQRT1_2 | 0.70710678118654752440 | 1/sqrt(2)
M_LNPI | 1.14472988584940017414 | log_e(pi) [4.0.2]
M_EULER | 0.57721566490153286061 | Eulerova konstanta [4.0.2]
Ve verzi 4.0.0 a starších byla k dispozici pouze konstanta M_PI. Ostatní konstanty byly k dispozici od této verze. Konstanty označené [4.0.2] byly přidány v PHP 4.0.2.

Obsah
abs -- Absolutní hodnota
acos -- Arcus cosinus
acosh -- Inversní hyperbolický cosinus
asin -- Arcus sinus
asinh -- Inversní hyperbolický sinus
atan2 -- Arcus tangens dvou proměnných
atan -- Arcus tangens
atanh -- Inversní hyperbolický tangens
base_convert -- Převod čísla mezi různými soustavami
bindec -- Binární na desítkové
ceil -- Zaokrouhlení zlomků nahoru
cos -- Cosinus
cosh -- Hyperbolický cosinus
decbin -- Desítkové na binární
dechex -- Desítkové na hexadecimální
decoct -- Desítkové na osmičkové
deg2rad -- Převod čísla ve stupních na radiány
exp -- Vypočtení mocniny čísla e (základ přirozeného logaritmu)
expm1 -- Vrátí exp(number) - 1 vypočítaný způsobem, který je přesný i v případě, že je hodonota parametru blízká nule
floor -- Zaokrouhlení zlomků dolů
fmod -- Neceločíselný zbytek dělení (modulus) dvou parametrů
getrandmax -- Zjištění největšího možného náhodného čísla
hexdec -- Hexadecimální na desítkové
hypot -- Vrátí sqrt( num1*num1 + num2*num2)
is_finite -- Zjištění, zda je hodnota konečné číslo
is_infinite -- Zjištění, zda je hodnota nekonečné číslo
is_nan -- Zjištění, zda hodnota není číslo
lcg_value -- Kombinovaný lineární kongruenční generátor
log10 -- Logaritmus o základu 10
log1p -- Vrátí log(1 + number) vypočítaný způsobem, který je přesný i v případě, že je hodonota parametru blízká nule
log -- Přirozený logaritmus
max -- Nalezení největší hodnoty
min -- Nalezení nejmenší hodnoty
mt_getrandmax -- Zjištění největšího možného náhodného čísla
mt_rand -- Generování lepšího náhodného čísla
mt_srand -- Inicializace lepšího generátoru náhodných čísel
octdec -- Osmičkové na desítkové
pi -- Získání hodnoty pí
pow -- Mocnina
rad2deg -- Převod čísla v radiánech na stupně
rand -- Generování náhodného čísla
round -- Zaokrouhlení čísla
sin -- Sinus
sinh -- Hyperbolický sinus
sqrt -- Odmocnina
srand -- Inicializace generátoru náhodných čísel
tan -- Tangens
tanh -- Hyperbolický tangens

Předcházející | Domů | Další
mailparse_uudecode_all | Nahoru | abs


abs

(PHP 3, PHP 4 , PHP 5)

abs -- Absolutní hodnota

Popis

number abs ( mixed number)

Vrátí absolutní hodnotu parametru number. Pokud je parametr number typu float, návratová hodnota je také typu float, jinak je typu integer (protože float má obvykle větší rozmezí hodnot než integer).

Příklad 1. abs() - příklad

<?php
$abs = abs(-4.2); // $abs = 4.2; (double/float)
$abs2 = abs(5);   // $abs2 = 5; (integer)
$abs3 = abs(-5);  // $abs3 = 5; (integer)
?>

Předcházející | Domů | Další
Matematické funkce | Nahoru | acos


acos

(PHP 3, PHP 4 , PHP 5)

acos -- Arcus cosinus

Popis

float acos ( float arg)

Vrání arcus cosinus parametru arg v radiánech. acos() je inverzní k funkci cos(), což znamená, že a==cos(acos(a)) pro každou hodnotu z definičního oboru funkce acos().

Viz také acosh(), asin() a atan().

Předcházející | Domů | Další
abs | Nahoru | acosh


acosh

(PHP 4 >= 4.1.0, PHP 5)

acosh -- Inversní hyperbolický cosinus

Popis

float acosh ( float arg)

Vrátí inversní hyperbolický cosinus parametru arg, což je hodnota, jejíž hyperbolický cosinus je arg.

Poznámka: Tato funkce není implementována na platformách Windows.

Viz také acos(), asinh() a atanh().

Předcházející | Domů | Další
acos | Nahoru | asin


asin

(PHP 3, PHP 4 , PHP 5)

asin -- Arcus sinus

Popis

float asin ( float arg)

Vrátí arcus sinus parametru arg v radiánech. asin() je inverzní k funkci sin(), což znamená, že a==sin(asin(a)) pro každou hodnotu z definičního oboru funkce asin().

Viz také asinh(), acos() a atan().

Předcházející | Domů | Další
acosh | Nahoru | asinh


asinh

(PHP 4 >= 4.1.0, PHP 5)

asinh -- Inversní hyperbolický sinus

Popis

float asinh ( float arg)

Vrátí inversní hyperbolický sinus parametru arg, což je hodnota, jejíž hyperbolický sinus je arg.

Poznámka: Tato funkce není implementována na platformách Windows.

Viz také asin(), acosh() a atanh().

Předcházející | Domů | Další
asin | Nahoru | atan2


atan2

(PHP 3>= 3.0.5, PHP 4 , PHP 5)

atan2 -- Arcus tangens dvou proměnných

Popis

float atan2 ( float y, float x)

Tato funkce spočítá arcus tangens dvou proměnných x a y. Je to skoro totéž jako spočítání arcus tangens z hodnoty y / x s tím rozdílem, že podle znamének obou argumentů je určen kvadrant výsledku.

Tato funkce vrací výsledek v radiánech, v rozmezí -PI a PI (včetně).

Viz také acos() a atan().

Předcházející | Domů | Další
asinh | Nahoru | atan


atan

(PHP 3, PHP 4 , PHP 5)

atan -- Arcus tangens

Popis

float atan ( float arg)

Vrátí arcus tangens parametru arg v radiánech. atan() je inverzní k funkci tan(), což znamená, že a==tan(atan(a)) pro každou hodnotu z definičního oboru funkce atan().

Viz také atanh(), asin() a acos().

Předcházející | Domů | Další
atan2 | Nahoru | atanh


atanh

(PHP 4 >= 4.1.0, PHP 5)

atanh -- Inversní hyperbolický tangens

Popis

float atanh ( float arg)

Vrátí inversní hyperbolický tangens parametru arg, což je hodnota, jejíž hyperbolický tangens je arg.

Poznámka: Tato funkce není implementována na platformách Windows.

Viz také atan(), asinh() a acosh().

Předcházející | Domů | Další
atan | Nahoru | base_convert


base_convert

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

base_convert -- Převod čísla mezi různými soustavami

Popis

string base_convert ( string number, int frombase, int tobase)

Vrátí řetězec obsahující parametr number reprezentovaný v soustavě tobase. Soustava, ve které je parametr number je určena v parametru frombase. Oba parametry frombase a tobase musí být mezi 2 a 36 včetně. Číslice v soustavách se základem větším než 10 budou reprezentovány znaky a-z s tím, že a znamená 10, b znamená 11 až z znamená 35.

Příklad 1. base_convert()

<?php
$hexadecimal = 'A37334';
echo base_convert($hexadecimal, 16, 2);
?>

Výsledek:

101000110111001100110100

Předcházející | Domů | Další
atanh | Nahoru | bindec


bindec

(PHP 3, PHP 4 , PHP 5)

bindec -- Binární na desítkové

Popis

int bindec ( string binary_string)

Vrátí desítkové číslo ekvivalentní binárnímu číslu uvedenému v parametru binary_string.

bindec() převádí binární číslo na typ integer. Největší číslo, které lze převést, je 31 bitů jediček neboli 2147483647 desítkově.

Viz také decbin(), octdec(), hexdec() a base_convert().

Předcházející | Domů | Další
base_convert | Nahoru | ceil


ceil

(PHP 3, PHP 4 , PHP 5)

ceil -- Zaokrouhlení zlomků nahoru

Popis

float ceil ( float value)

Vrátí první větší celé číslo získané případným zaokrouhlením parametru value nahoru. Návratová hodnota funkce ceil() je typu float, protože typ float umožňuje uložit větší hodnoty než typ integer.

Příklad 1. ceil() - příklad

<?php
echo ceil(4.3);    // 5
echo ceil(9.999);  // 10
?>

Viz také floor() a round().

Předcházející | Domů | Další
bindec | Nahoru | cos


cos

(PHP 3, PHP 4 , PHP 5)

cos -- Cosinus

Popis

float cos ( float arg)

cos() vrátí cosinus parametru arg. Parametr arg je v radiánech.

Příklad 1. cos() - příklad

<?php

echo cos(M_PI); // -1

?>

Viz také acos(), sin(), tan() a deg2rad().

Předcházející | Domů | Další
ceil | Nahoru | cosh


cosh

(PHP 4 >= 4.1.0, PHP 5)

cosh -- Hyperbolický cosinus

Popis

float cosh ( float arg)

Vrátí hyperbolický cosinus parametru arg, který je definován jako (exp(arg) + exp(-arg))/2.

Viz také cos(), acosh(), sin() a tan().

Předcházející | Domů | Další
cos | Nahoru | decbin


decbin

(PHP 3, PHP 4 , PHP 5)

decbin -- Desítkové na binární

Popis

string decbin ( int number)

Vrátí řetězec obsahující binární reprezentaci čísla předaného v parametru number. Největší převoditelné číslo je 4294967295 desítkově, které se převede na 32 jedniček.

Viz také bindec(), decoct(), dechex() a base_convert().

Předcházející | Domů | Další
cosh | Nahoru | dechex


dechex

(PHP 3, PHP 4 , PHP 5)

dechex -- Desítkové na hexadecimální

Popis

string dechex ( int number)

Vrátí řetězec obsahující hexadecimální reprezentaci čísla předaného v parametru number. Největší převoditelné číslo je 2147483647 desítkově, které se převede na "7fffffff".

Viz také hexdec(), decbin(), decoct() a base_convert().

Předcházející | Domů | Další
decbin | Nahoru | decoct


decoct

(PHP 3, PHP 4 , PHP 5)

decoct -- Desítkové na osmičkové

Popis

string decoct ( int number)

Vrátí řetězec obsahující osmičkovou reprezentaci čísla předaného v parametru number. Největší převoditelné číslo je 2147483647 desítkově, které se převede na "17777777777".

Viz také octdec(), decbin(), dechex() a base_convert().

Předcházející | Domů | Další
dechex | Nahoru | deg2rad


deg2rad

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

deg2rad -- Převod čísla ve stupních na radiány

Popis

float deg2rad ( float number)

Tato funkce převede parametr number ve stupních na odpovídající hodnotu v radiánech.

Příklad 1. deg2rad() - příklad

<?php

echo deg2rad(45); // 0.785398163397
var_dump(deg2rad(45) === M_PI_4); // bool(true)

?>

Viz také rad2deg().

Předcházející | Domů | Další
decoct | Nahoru | exp


exp

(PHP 3, PHP 4 , PHP 5)

exp -- Vypočtení mocniny čísla e (základ přirozeného logaritmu)

Popis

float exp ( float arg)

Vrátí e umocněné na hodnotu parametru arg.

Viz také log() a pow().

Předcházející | Domů | Další
deg2rad | Nahoru | expm1


expm1

(PHP 4 >= 4.1.0, PHP 5)

expm1 -- Vrátí exp(number) - 1 vypočítaný způsobem, který je přesný i v případě, že je hodonota parametru blízká nule

Popis

float expm1 ( float number)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
exp | Nahoru | floor


floor

(PHP 3, PHP 4 , PHP 5)

floor -- Zaokrouhlení zlomků dolů

Popis

float floor ( float value)

Vrátí první menší celé číslo získané případným zaokrouhlením parametru value dolů. Návratová hodnota funkce ceil() je typu float, protože typ float umožňuje uložit větší hodnoty než typ integer.

Příklad 1. floor() - příklad

<?php
echo floor(4.3);   // 4
echo floor(9.999); // 9
?>

Viz také ceil() a round().

Předcházející | Domů | Další
expm1 | Nahoru | fmod


fmod

(PHP 4 >= 4.2.0, PHP 5)

fmod -- Neceločíselný zbytek dělení (modulus) dvou parametrů

Popis

float fmod ( float x, float y)

Vrátí neceločíselný zbytek dělení dělence (x) dělitelem (y). Zbytek (r) je definován jako: x = i * y + r, pro nějaké celé číslo i. Pokud je parametr y nenulový, má výsledek r znaménko podle parametru x a absolutní hodnotu menší než parametr y.

Příklad 1. Použití funkce fmod()

<?php
$x = 5.7;
$y = 1.3;
$r = fmod($x, $y);
// $r equals 0.5, because 4 * 1.3 + 0.5 = 5.7
?>

Předcházející | Domů | Další
floor | Nahoru | getrandmax


getrandmax

(PHP 3, PHP 4 , PHP 5)

getrandmax -- Zjištění největšího možného náhodného čísla

Popis

int getrandmax ( void )

Vrátí největší hodnotu, kterou může vrátit funkce rand().

Viz také rand(), srand() a mt_getrandmax().

Předcházející | Domů | Další
fmod | Nahoru | hexdec


hexdec

(PHP 3, PHP 4 , PHP 5)

hexdec -- Hexadecimální na desítkové

Popis

int hexdec ( string hex_string)

Vrátí desítkové číslo ekvivalentní hexadecimálnímu číslu uvedenému v parametru hex_string. hexdec() převádí hexadecimální číslo na typ integer. Největší číslo, které lze převést, je 7fffffff neboli 2147483647 desítkově.

hexdec() zamění všechny nehexadecimální znaky číslicí 0. V tomto případě jsou nuly vlevo ignorovány, ale nuly vpravo jsou započítány.

Příklad 1. hexdec() - příklad

<?php
var_dump(hexdec("See"));
var_dump(hexdec("ee"));
// both print "int(238)"

var_dump(hexdec("that"));
var_dump(hexdec("a0"));
// both print int(160)
?>

Viz také dechex(), bindec(), octdec() a base_convert().

Předcházející | Domů | Další
getrandmax | Nahoru | hypot


hypot

(PHP 4 >= 4.1.0, PHP 5)

hypot -- Vrátí sqrt( num1*num1 + num2*num2)

Popis

float hypot ( float num1, float num2)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
hexdec | Nahoru | is_finite


is_finite

(PHP 4 >= 4.2.0, PHP 5)

is_finite -- Zjištění, zda je hodnota konečné číslo

Popis

bool is_finite ( float val)

Vrátí TRUE, pokud je parametr val konečné číslo v rozsahu povoleném v PHP pro typ float na dané platformě.

Viz také is_infinite() a is_nan().

Předcházející | Domů | Další
hypot | Nahoru | is_infinite


is_infinite

(PHP 4 >= 4.2.0, PHP 5)

is_infinite -- Zjištění, zda je hodnota nekonečné číslo

Popis

bool is_infinite ( float val)

Vrátí TRUE, pokud je parametr val nekonečné číslo (kladné nebo záporné), t.j. například výsledek log(0) nebo libovolná hodnota příliš velká pro typ float na dané platformě.

Viz také is_finite() a is_nan().

Předcházející | Domů | Další
is_finite | Nahoru | is_nan


is_nan

(PHP 4 >= 4.2.0, PHP 5)

is_nan -- Zjištění, zda hodnota není číslo

Popis

bool is_nan ( float val)

Vrátí TRUE, pokud je parametr val 'nečíslo', t.j. například výsledek acos(1.01).

Viz také is_finite() a is_infinite().

Předcházející | Domů | Další
is_infinite | Nahoru | lcg_value


lcg_value

(PHP 4 , PHP 5)

lcg_value -- Kombinovaný lineární kongruenční generátor

Popis

float lcg_value ( void )

lcg_value() vrátí pseudonáhodné číslo v rozmezí (0, 1). Funkce kombinuje dva kongruenční generátory s periodou 2^31 - 85 a 2^31 - 249. Perioda této funkce odpovídá součinu obou prvočísel.

Předcházející | Domů | Další
is_nan | Nahoru | log10


log10

(PHP 3, PHP 4 , PHP 5)

log10 -- Logaritmus o základu 10

Popis

float log10 ( float arg)

Vrátí desítkový logaritmus parametru arg.

Viz také log()

Předcházející | Domů | Další
lcg_value | Nahoru | log1p


log1p

(PHP 4 >= 4.1.0, PHP 5)

log1p -- Vrátí log(1 + number) vypočítaný způsobem, který je přesný i v případě, že je hodonota parametru blízká nule

Popis

float log1p ( float number)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
log10 | Nahoru | log


log

(PHP 3, PHP 4 , PHP 5)

log -- Přirozený logaritmus

Popis

float log ( float arg [, float base])

Pokud je předán volitelný parametr base, vrátí funkce logbase arg, jinak vrátí přirozený logaritmus parametru arg.

Poznámka: Parametr base je k dizpocici od PHP 4.3.0.

Logaritmus o základu b čísla n lze samozřejmě vypočítat jako logb(n) = log(n)/log(b), kde log je přirozený logaritmus.

Viz také exp().

Předcházející | Domů | Další
log1p | Nahoru | max


max

(PHP 3, PHP 4 , PHP 5)

max -- Nalezení největší hodnoty

Popis

mixed max ( number arg1, number arg2 [, number ...])

mixed max ( array numbers [, array ...])

Funkce max() vrátí číselně největší hodnotu z předaných parametrů.

Pokud je první a jediný parametr pole, vrátí funkce max() největší hodnotu z tohoto pole. Pokud je první parametr číslo, řetězec nebo desetinné číslo, je nutné funkci zavolat alespoň s dvěmi parametry. Funkce max() v tomto případě vrátí hodnotu největšího parametru. Lze porovnat neomezené množství hodnot.

Poznámka: PHP pracuje s nečíselným parametrem typu string jako s hodnotou 0, ale pokud bude tato hodnota shledána největší, vrátí funkce předaný řetězec. Pokud se jako 0 vyhodnotí více parametrů, pracuje funkce max() s parametrem, který je uveden jako první (nejvíce vlevo).

Příklad 1. Příklady použití funkce max()

<?php
echo max(1, 3, 5, 6, 7);  // 7
echo max(array(2, 4, 5)); // 5

echo max(0, 'hello');     // 0
echo max('hello', 0);     // hello
echo max(-1, 'hello');    // hello

// S více poli porovnává funkce max prvky zleva doprava
// v našem případě tedy: 2 == 2, ale 4 < 5
$val = max(array(2, 4, 8), array(2, 5, 7)); // array(2, 5, 7)

// Když jsou předané parametry typu pole i jiných typů,
// je pole vždy vyhodnoceno jako největší
$val = max('string', array(2, 5, 7), 42);   // array(2, 5, 7)
?>

Viz také min() a count().

Předcházející | Domů | Další
log | Nahoru | min


min

(PHP 3, PHP 4 , PHP 5)

min -- Nalezení nejmenší hodnoty

Popis

mixed min ( number arg1, number arg2 [, number ...])

mixed min ( array numbers [, array ...])

Funkce min() vrátí číselně nejmenší hodnotu z předaných parametrů.

Pokud je první a jediný parametr pole, vrátí funkce min() nejmenší hodnotu z tohoto pole. Pokud je první parametr číslo, řetězec nebo desetinné číslo, je nutné funkci zavolat alespoň s dvěmi parametry. Funkce min() v tomto případě vrátí hodnotu nejmenšího parametru. Lze porovnat neomezené množství hodnot.

Poznámka: PHP pracuje s nečíselným parametrem typu string jako s hodnotou 0, ale pokud bude tato hodnota shledána nejmenší, vrátí funkce předaný řetězec. Pokud se jako 0 vyhodnotí více parametrů, pracuje funkce min() s parametrem, který je uveden jako první (nejvíce vlevo).

Příklad 1. Example uses of min()

<?php
echo min(2, 3, 1, 6, 7);  // 1
echo min(array(2, 4, 5)); // 2

echo min(0, 'hello');     // 0
echo min('hello', 0);     // hello
echo min('hello', -1);    // -1

// S více poli porovnává funkce min prvky zleva doprava
// v našem případě tedy: 2 == 2, ale 4 < 5
$val = min(array(2, 4, 8), array(2, 5, 1)); // array(2, 4, 8)

// Když jsou předané parametry typu pole i jiných typů, není
// pole nikdy vráceno, protože je vyhodnoceno jako největší
$val = min('string', array(2, 5, 7), 42);   // string
?>

Viz také max() a count().

Předcházející | Domů | Další
max | Nahoru | mt_getrandmax


mt_getrandmax

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

mt_getrandmax -- Zjištění největšího možného náhodného čísla

Popis

int mt_getrandmax ( void )

Vrátí největší hodnotu, kterou může vrátit funkce mt_rand().

Viz také mt_rand(), mt_srand() a getrandmax().

Předcházející | Domů | Další
min | Nahoru | mt_rand


mt_rand

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

mt_rand -- Generování lepšího náhodného čísla

Popis

int mt_rand ( [int min, int max])

Řada generátorů náhodných čísel ze starších knihoven libc má podezřelé nebo neznámé charakteristiky a je pomalá. PHP standardně používá ve funkci rand() generátor náhodných čísel knihovny libc. Funkce mt_rand() tuto funkci plně nahrazuje. Používá generátor náhodných čísel známých charakteristik Mersenne Twister, který generuje náhodná čísla použitelná pro různé obory kryptografie (detaily viz na domácí stránce). Také je průměrně čtyřikrát rychlejší než funkce z knihovny libc.

Pokud je funkce mt_rand() zavolána bez nepovinných parametrů min a max, vrátí pseudonáhodné číslo v rozmezí 0 až RAND_MAX. Pokud chcete například náhodné číslo v rozmezí 5 a 15 (včetně), použijte mt_rand (5, 15).

Poznámka: Od PHP 4.2.0 není třeba inicializovat generátor náhodných čísel funkcí srand() nebo mt_srand(), protože se tak nyní stane automaticky.

Poznámka: Parametr max odpovídal v PHP starších než 3.0.7 významu range. Pro získání náhodného čísla v rozmezí 5 až 15 zavolejte v těchto verzích mt_rand (5, 11).

Viz také mt_srand(),
mt_getrandmax() a
rand().

Předcházející | Domů | Další
mt_getrandmax | Nahoru | mt_srand


mt_srand

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

mt_srand -- Inicializace lepšího generátoru náhodných čísel

Popis

void mt_srand ( [int seed])

Inicializuje generátor náhodných čísel parametrem seed. Parametr seed je od PHP 4.2.0 nepovinný. Pokud není uveden, je vygenerována co nejnáhodnější inicializace.

<?php
// inicializace mikrosekundami
function make_seed() {
    list($usec, $sec) = explode(' ', microtime());
    return (float) $sec + ((float) $usec * 100000);
}
mt_srand(make_seed());
$randval = mt_rand();
?>

Poznámka: Od PHP 4.2.0 není třeba inicializovat generátor náhodných čísel funkcí srand() nebo mt_srand(), protože se tak nyní stane automaticky.

Viz také mt_rand(), mt_getrandmax() a srand().

Předcházející | Domů | Další
mt_rand | Nahoru | octdec


octdec

(PHP 3, PHP 4 , PHP 5)

octdec -- Osmičkové na desítkové

Popis

int octdec ( string octal_string)

Vrátí desítkové číslo ekvivalentní osmičkovému číslu uvedenému v parametru binary_string. Největší číslo, které lze převést, je 17777777777 neboli 2147483647 desítkově.

Viz také decoct(), bindec(), hexdec() a base_convert().

Předcházející | Domů | Další
mt_srand | Nahoru | pi


pi

(PHP 3, PHP 4 , PHP 5)

pi -- Získání hodnoty pí

Popis

float pi ( void )

Vrátí přibližnou hodnotu pí. Vrácená hodnota typu float má přesnost v závislosti na nastavení direktivy precision z php.ini, jejíž výchozí nastavení je 14. Kromě toho lze také použít konstantu M_PI, jejíž hodnota je stejná jako návratová hodnota funkce pi().

<?php
echo pi(); // 3.1415926535898
echo M_PI; // 3.1415926535898
?>

Předcházející | Domů | Další
octdec | Nahoru | pow


pow

(PHP 3, PHP 4 , PHP 5)

pow -- Mocnina

Popis

number pow ( number base, number exp)

Vrátí parametr base umocněný hodnotou parametru exp. Pokud je to možné, vrátí tato funkce integer.

Pokud mocninu nelze vypočítat, vyvolá funkce pow() varování a vrátí FALSE.

Příklad 1. Příklady použití funkce pow()

<?php

var_dump( pow(2,8) ); // int(256)
echo pow(-1,20); // 1
echo pow(0, 0); // 1

echo pow(-1, 5.5); // chyba

?>

Varování

V PHP 4.0.6 a starších byla návratová hodnota funkce pow() vždy typu float a funkce nevyvolávala varování.

Viz také exp() a sqrt().

Předcházející | Domů | Další
pi | Nahoru | rad2deg


rad2deg

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

rad2deg -- Převod čísla v radiánech na stupně

Popis

float rad2deg ( float number)

Tato funkce převede parametr number v radiánech na odpovídající hodnotu ve stupních.

Příklad 1. rad2deg() - příklad

<?php

echo rad2deg(M_PI_4); // 45

?>

Viz také deg2rad().

Předcházející | Domů | Další
pow | Nahoru | rand


rand

(PHP 3, PHP 4 , PHP 5)

rand -- Generování náhodného čísla

Popis

int rand ( [int min, int max])

Pokud je funkce rand() zavolána bez nepovinných parametrů min a max, vrátí pseudonáhodné číslo v rozmezí 0 až RAND_MAX. Pokud chcete například náhodné číslo v rozmezí 5 a 15 (včetně), použijte rand (5, 15).

Poznámka: Na některých platformách (např. Windows) je RAND_MAX pouze 32768. Pokud potřebujete rozsah větší než 32768, použijte místo této funkce raději funkci mt_rand().

Poznámka: Od PHP 4.2.0 není třeba inicializovat generátor náhodných čísel funkcí srand() nebo mt_srand(), protože se tak nyní stane automaticky.

Poznámka: Parametr max odpovídal v PHP starších než 3.0.7 významu range. Pro získání náhodného čísla v rozmezí 5 až 15 zavolejte v těchto verzích rand (5, 11).

Viz také srand(),
getrandmax() a
mt_rand().

Předcházející | Domů | Další
rad2deg | Nahoru | round


round

(PHP 3, PHP 4 , PHP 5)

round -- Zaokrouhlení čísla

Popis

float round ( float val [, int precision])

Vrátí hodnotu parametru val zaokrouhlenou podle parametru precision (počet čísel za desetinnou tečkou). Parametr precision může být také záporný nebo nulový (výchozí).

Příklad 1. round() - příklady

<?php
echo round(3.4);         // 3
echo round(3.5);         // 4
echo round(3.6);         // 4
echo round(3.6, 0);      // 4
echo round(1.95583, 2);  // 1.96
echo round(1241757, -3); // 1242000
echo round(5.045, 2);    // 5.04
echo round(5.055, 2);    // 5.06
?>

Poznámka: PHP ve výchozím nastavení nepřevádí správně řetězce ve tvaru "12,300.2". Viz převod z řetězců.

Poznámka: Parametr precision je k dispozici od PHP 4.

Viz také ceil(),
floor() a
number_format().

Předcházející | Domů | Další
rand | Nahoru | sin


sin

(PHP 3, PHP 4 , PHP 5)

sin -- Sinus

Popis

float sin ( float arg)

Funkce sin() vrátí sinus parametru arg. Parametr arg je v radiánech.

<?php

// Přesnost závisí na direktivě precision
print sin(deg2rad(60));  //  0.866025403 ...
print sin(60);           // -0.304810621 ...

?>

Viz také asin(), cos(), tan() a deg2rad().

Předcházející | Domů | Další
round | Nahoru | sinh


sinh

(PHP 4 >= 4.1.0, PHP 5)

sinh -- Hyperbolický sinus

Popis

float sinh ( float arg)

Vrátí hyperbolický sinus parametru arg, který je definován jako (exp(arg) - exp(-arg))/2.

Viz také sin(), asinh(), cos() a tan().

Předcházející | Domů | Další
sin | Nahoru | sqrt


sqrt

(PHP 3, PHP 4 , PHP 5)

sqrt -- Odmocnina

Popis

float sqrt ( float arg)

Vrátí odmocninu parametru arg.

<?php
// Přesnost závisí na direktivě precision
echo sqrt(9); // 3
echo sqrt(10); // 3.16227766 ...
?>

Viz také pow().

Předcházející | Domů | Další
sinh | Nahoru | srand


srand

(PHP 3, PHP 4 , PHP 5)

srand -- Inicializace generátoru náhodných čísel

Popis

void srand ( [int seed])

Inicializuje generátor náhodných čísel parametrem seed. Parametr seed je od PHP 4.2.0 nepovinný. Pokud není uveden, je vygenerována co nejnáhodnější inicializace.

<?php
// inicializace mikrosekundami
function make_seed() {
    list($usec, $sec) = explode(' ', microtime());
    return (float) $sec + ((float) $usec * 100000);
}
srand(make_seed());
$randval = rand();
?>

Poznámka: Od PHP 4.2.0 není třeba inicializovat generátor náhodných čísel funkcí srand() nebo mt_srand(), protože se tak nyní stane automaticky.

Viz také rand(),
getrandmax() a
mt_srand().

Předcházející | Domů | Další
sqrt | Nahoru | tan


tan

(PHP 3, PHP 4 , PHP 5)

tan -- Tangens

Popis

float tan ( float arg)

Funkce tan() vrátí tangens parametru arg. Parametr arg je v radiánech.

Příklad 1. tan() - příklad

<?php

echo tan(M_PI_2); // 1

?>

Viz také atan(), sin(), cos() a deg2rad().

Předcházející | Domů | Další
srand | Nahoru | tanh


tanh

(PHP 4 >= 4.1.0, PHP 5)

tanh -- Hyperbolický tangens

Popis

float tanh ( float arg)

Vrátí hyperbolický tangens parametru arg, který je definován jako sinh(arg)/cosh(arg).

Viz také tan(), atanh(), sin() a cos().

Předcházející | Domů | Další
tan | Nahoru | Multibyte String Functions


Multibyte String Functions

Manuál PHP
Předcházející Další

LIII. Multibyte String Functions

Úvod

While there are many languages in which every necessary character can be represented by a one-to-one mapping to a 8-bit value, there are also several languages which require so many characters for written communication that cannot be contained within the range a mere byte can code. Multibyte character encoding schemes were developed to express that many (more than 256) characters in the regular bytewise coding system.

When you manipulate (trim, split, splice, etc.) strings encoded in a multibyte encoding, you need to use special functions since two or more consecutive bytes may represent a single character in such encoding schemes. Otherwise, if you apply a non-multibyte-aware string function to the string, it probably fails to detect the beginning or ending of the multibyte character and ends up with a corrupted garbage string that most likely loses its original meaning.

mbstring provides these multibyte specific string functions that help you deal with multibyte encodings in PHP, which is basically supposed to be used with single byte encodings. In addition to that, mbstring handles character encoding conversion between the possible encoding pairs.

mbstring is also designed to handle Unicode-based encodings such as UTF-8 and UCS-2 and many single-byte encodings for convenience (listed below), whereas mbstring was originally developed for use in Japanese web pages.

PHP Character Encoding Requirements

Encodings of the following types are safely used with PHP.

  • A singlebyte encoding,

    • which has ASCII-compatible (ISO646 compatible) mappings for the characters in range of 00h to 7fh.

  • A multibyte encoding,

    • which has ASCII-compatible mappings for the characters in range of 00h to 7fh.

    • which don't use ISO2022 escape sequences.

    • which don't use a value from 00h to 7fh in any of the compounded bytes that represents a single character.

These are examples of character encodings that are unlikely to work with PHP.

JIS, SJIS, ISO-2022-JP, BIG-5

Although PHP scripts written in any of those encodings might not work, especially in the case where encoded strings appear as identifiers or literals in the script, you can almost avoid using these encodings by setting up the mbstring's transparent encoding filter function for incoming HTTP queries.

Poznámka: It's highly discouraged to use SJIS, BIG5, CP936, CP949 and GB18030 for the internal encoding unless you are familiar with the parser, the scanner and the character encoding.

Poznámka: If you have some database connected with PHP, it is recommended that you use the same character encoding for both database and the internal encoding for ease of use and better performance.

If you are using PostgreSQL, the character encoding used in the database and the one used in the PHP may differ as it supports automatic character set conversion between the backend and the frontend.

Instalace

mbstring is a non-default extension. This means it is not enabled by default. You must explicitly enable the module with the configure option. See the Install section for details.

The following configure options are related to the mbstring module.

  • --enable-mbstring=LANG: Enable mbstring functions. This option is required to use mbstring functions.

    As of PHP 4.3.0, mbstring extension provides
enhanced support for Simplified Chinese, Traditional Chinese,
Korean, and Russian in addition to Japanese.
To enable that feature, you will have to supply either one of the
following options to the LANG parameter;
--enable-mbstring=cn for Simplified Chinese support,
--enable-mbstring=tw for Traditional Chinese support,
--enable-mbstring=kr for Korean support,
--enable-mbstring=ru for Russian support, and
--enable-mbstring=ja for Japanese support.

    Also --enable-mbstring=all is convenient for you to enable all the supported languages listed above.

    Poznámka: Japanese language support is also enabled by --enable-mbstring without any options for the sake of backwards compatibility.

  • --enable-mbstr-enc-trans : Enable HTTP input character encoding conversion using mbstring conversion engine. If this feature is enabled, HTTP input character encoding may be converted to mbstring.internal_encoding automatically.

    Poznámka: As of PHP 4.3.0, the option --enable-mbstr-enc-trans was eliminated and replaced with the runtime setting mbstring.encoding_translation. HTTP input character encoding conversion is enabled when this is set to On (the default is Off).

  • --enable-mbregex: Enable regular expression functions with multibyte character support.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 1. mbstring configuration options

Name | Default | Changeable
mbstring.language | "neutral" | PHP_INI_SYSTEM | PHP_INI_PERDIR
mbstring.detect_order | NULL | PHP_INI_ALL
mbstring.http_input | "pass" | PHP_INI_ALL
mbstring.http_output | "pass" | PHP_INI_ALL
mbstring.internal_encoding | NULL | PHP_INI_ALL
mbstring.script_encoding | NULL | PHP_INI_ALL
mbstring.substitute_character | NULL | PHP_INI_ALL
mbstring.func_overload | "0" | PHP_INI_SYSTEM | PHP_INI_PERDIR
mbstring.encoding_translation | "0" | PHP_INI_SYSTEM | PHP_INI_PERDIR
For the definition of the PHP_INI_* constants, please refer to ini_set().

Zde je stručné vysvětlení konfiguračních direktiv.

  • mbstring.language is the default national language setting (NLS) used in mbstring. Note that this option automagically defines mbstring.internal_encoding and mbstring.internal_encoding should be placed after mbstring.language in php.ini

  • mbstring.encoding_translation enables the transparent character encoding filter for the incoming HTTP queries, which performs detection and conversion of the input encoding to the internal character encoding.

  • mbstring.internal_encoding defines the default internal character encoding.

  • mbstring.http_input defines the default HTTP input character encoding.

  • mbstring.http_output defines the default HTTP output character encoding.

  • mbstring.detect_order defines default character code detection order. See also mb_detect_order().

  • mbstring.substitute_character defines character to substitute for invalid character encoding.

  • mbstring.func_overload overloads a set of single byte functions by the mbstring counterparts. See Funtion overloading for more information.

According to the HTML 4.01 specification, Web browsers are allowed to encode a form being submitted with a character encoding different from the one used for the page. See mb_http_input() to detect character encoding used by browsers.

Although popular browsers are capable of giving a reasonably accurate guess to the character encoding of a given HTML document, it would be better to set the charset parameter in the Content-Type HTTP header to the appropriate value by header() or default_charset ini setting.

Příklad 1. php.ini setting examples

; Set default language
mbstring.language        = Neutral; Set default language to Neutral(UTF-8) (default)
mbstring.language        = English; Set default language to English
mbstring.language        = Japanese; Set default language to Japanese

;; Set default internal encoding
;; Note: Make sure to use character encoding works with PHP
mbstring.internal_encoding    = UTF-8  ; Set internal encoding to UTF-8

;; HTTP input encoding translation is enabled.
mbstring.encoding_translation = On

;; Set default HTTP input character encoding
;; Note: Script cannot change http_input setting.
mbstring.http_input           = pass    ; No conversion.
mbstring.http_input           = auto    ; Set HTTP input to auto
                                ; "auto" is expanded to "ASCII,JIS,UTF-8,EUC-JP,SJIS"
mbstring.http_input           = SJIS    ; Set HTTP2 input to  SJIS
mbstring.http_input           = UTF-8,SJIS,EUC-JP ; Specify order

;; Set default HTTP output character encoding
mbstring.http_output          = pass    ; No conversion
mbstring.http_output          = UTF-8   ; Set HTTP output encoding to UTF-8

;; Set default character encoding detection order
mbstring.detect_order         = auto    ; Set detect order to auto
mbstring.detect_order         = ASCII,JIS,UTF-8,SJIS,EUC-JP ; Specify order

;; Set default substitute character
mbstring.substitute_character = 12307   ; Specify Unicode value
mbstring.substitute_character = none    ; Do not print character
mbstring.substitute_character = long    ; Long Example: U+3000,JIS+7E7E

Příklad 2. php.ini setting for EUC-JP users

;; Disable Output Buffering
output_buffering      = Off

;; Set HTTP header charset
default_charset       = EUC-JP

;; Set default language to Japanese
mbstring.language = Japanese

;; HTTP input encoding translation is enabled.
mbstring.encoding_translation = On

;; Set HTTP input encoding conversion to auto
mbstring.http_input   = auto

;; Convert HTTP output to EUC-JP
mbstring.http_output  = EUC-JP

;; Set internal encoding to EUC-JP
mbstring.internal_encoding = EUC-JP

;; Do not print invalid characters
mbstring.substitute_character = none

Příklad 3. php.ini setting for SJIS users

;; Enable Output Buffering
output_buffering     = On

;; Set mb_output_handler to enable output conversion
output_handler       = mb_output_handler

;; Set HTTP header charset
default_charset      = Shift_JIS

;; Set default language to Japanese
mbstring.language = Japanese

;; Set http input encoding conversion to auto
mbstring.http_input  = auto

;; Convert to SJIS
mbstring.http_output = SJIS

;; Set internal encoding to EUC-JP
mbstring.internal_encoding = EUC-JP

;; Do not print invalid characters
mbstring.substitute_character = none

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

MB_OVERLOAD_MAIL (integer)

MB_OVERLOAD_STRING (integer)

MB_OVERLOAD_REGEX (integer)

HTTP Input and Output

HTTP input/output character encoding conversion may convert binary data also. Users are supposed to control character encoding conversion if binary data is used for HTTP input/output.

Poznámka: In PHP 4.3.2 or earlier versions, there was a limitation in this functionality that mbstring does not perform character encoding conversion in POST data if the enctype attribute in the form element is set to multipart/form-data. So you have to convert the incoming data by yourself in this case if necessary.

Beginning with PHP 4.3.3, if enctype for HTML form is set to multipart/form-data and mbstring.encoding_translation is set to On in php.ini the POST'ed variables and the names of uploaded files will be converted to the internal character encoding as well. However, the conversion isn't applied to the query keys.

  • HTTP Input

    There is no way to control HTTP input character conversion from PHP script. To disable HTTP input character conversion, it has to be done in php.ini.

    Příklad 4. Disable HTTP input conversion in php.ini

    ;; Disable HTTP Input conversion
mbstring.http_input = pass
;; Disable HTTP Input conversion (PHP 4.3.0 or higher)
mbstring.encoding_translation = Off

    When using PHP as an Apache module, it is possible to override those settings in each Virtual Host directive in httpd.conf or per directory with .htaccess. Refer to the Configuration section and Apache Manual for details.

  • HTTP Output

    There are several ways to enable output character encoding conversion. One is using php.ini, another is using ob_start() with mb_output_handler() as ob_start callback function.

    Poznámka: PHP3-i18n users should note that mbstring's output conversion differs from PHP3-i18n. Character encoding is converted using output buffer.

Příklad 5. php.ini setting example

;; Enable output character encoding conversion for all PHP pages

;; Enable Output Buffering
output_buffering    = On

;; Set mb_output_handler to enable output conversion
output_handler      = mb_output_handler

Příklad 6. Script example

<?php

// Enable output character encoding conversion only for this page

// Set HTTP output character encoding to SJIS
mb_http_output('SJIS');

// Start buffering and specify "mb_output_handler" as
// callback function
ob_start('mb_output_handler');

?>

Supported Character Encodings

Currently the following character encodings are supported by the mbstring module. Any of those Character encodings can be specified in the encoding parameter of mbstring functions.

The following character encoding is supported in this PHP extension:

  • UCS-4

  • UCS-4BE

  • UCS-4LE

  • UCS-2

  • UCS-2BE

  • UCS-2LE

  • UTF-32

  • UTF-32BE

  • UTF-32LE

  • UTF-16

  • UTF-16BE

  • UTF-16LE

  • UTF-7

  • UTF7-IMAP

  • UTF-8

  • ASCII

  • EUC-JP

  • SJIS

  • eucJP-win

  • SJIS-win

  • ISO-2022-JP

  • JIS

  • ISO-8859-1

  • ISO-8859-2

  • ISO-8859-3

  • ISO-8859-4

  • ISO-8859-5

  • ISO-8859-6

  • ISO-8859-7

  • ISO-8859-8

  • ISO-8859-9

  • ISO-8859-10

  • ISO-8859-13

  • ISO-8859-14

  • ISO-8859-15

  • byte2be

  • byte2le

  • byte4be

  • byte4le

  • BASE64

  • 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

php.ini entry, which accepts encoding name, accepts "auto" and "pass" also. mbstring functions, which accepts encoding name, and accepts "auto".

If "pass" is set, no character encoding conversion is performed.

If "auto" is set, it is expanded to the list of encodings defined per the NLS. For instance, if the NLS is set to Japanese, the value is assumed to be "ASCII,JIS,UTF-8,EUC-JP,SJIS".

See also mb_detect_order()

Function Overloading Feature

You might often find it difficult to get an existing PHP application work in a given multibyte environment. That's mostly because lots of PHP applications out there are written with the standard string functions such as substr(), which are known to not properly handle multibyte-encoded strings.

mbstring supports 'function overloading' feature which enables you to add multibyte awareness to such an application without code modification by overloading multibyte counterparts on the standard string functions. For example, mb_substr() is called instead of substr() if function overloading is enabled. This feature makes it easy to port applications that only support single-byte encodings to a multibyte environment in many cases.

To use the function overloading, set mbstring.func_overload in php.ini to a positive value that represents a combination of bitmasks specifying the categories of functions to be overloaded. It should be set to 1 to overload the mail() function. 2 for string functions, 4 for regular expression functions. For example, if is set for 7, mail, strings and regular expression functions should be overloaded. The list of overloaded functions are shown below.

Tabulka 2. Functions to be overloaded

value of mbstring.func_overload | original function | overloaded function
1 | mail() | mb_send_mail()
2 | strlen() | mb_strlen()
2 | strpos() | mb_strpos()
2 | strrpos() | mb_strrpos()
2 | substr() | mb_substr()
2 | strtolower() | mb_strtolower()
2 | strtoupper() | mb_strtoupper()
2 | substr_count() | mb_substr_count()
4 | ereg() | mb_ereg()
4 | eregi() | mb_eregi()
4 | ereg_replace() | mb_ereg_replace()
4 | eregi_replace() | mb_eregi_replace()
4 | split() | mb_split()

Poznámka: It is not recommended to use the function overloading option in the per-directory context, because it's not confirmed yet to be stable enough in a production environment and may lead to undefined behaviour.

Basics of Japanese multi-byte encodings

It is often said quite hard to figure out how Japanese texts are handled in the computer. This is not only because Japanese characters can only be represented by multibyte encodings, but because different encoding standards are adopted for different purposes / platforms. Moreover, not a few character set standards are used there, which are slightly different from one another. Those facts have often led developers to inevitable mess-up.

To create a working web application that would be put in the Japanese environment, it is important to use the proper character encoding and character set for the task in hand.

  • Storage for a character can be up to six bytes

  • Most of multibyte characters often appear twice as wide as a single-byte character on display. Those characters are called "zen-kaku" in Japanese which means "full width", and the other (narrower) characters are called "han-kaku" - means half width. However the graphical properties of the characters depend on the glyphs of the type faces used to display them or print them out.

  • Some character encodings use shift(escape) sequences defined in ISO2022 to switch the code map of the specific code area (00h to 7fh).

  • ISO-2022-JP should be used in SMTP/NNTP, and headers and entities should be reencoded as per RFC requirements. Although those are not requisites, it's still a good idea because several popular user agents cannot recognize any other encoding methods.

  • Webpages created for mobile phone services such as i-mode, Vodafone live!, or EZweb are supposed to use Shift_JIS.

References

Multibyte character encoding schemes and the related issues are very complicated. There should be too few space to cover in sufficient details. Please refer to the following URLs and other resources for further readings.

  • Unicode materials

    http://www.unicode.org/

  • Japanese/Korean/Chinese character information

    http://examples.oreilly.com/cjkvinfo/doc/cjk.inf

Summaries of supported encodings

Summaries of supported encodings

Name in the IANA character set registry: ISO-10646-UCS-4

Underlying character set: ISO 10646

Description: The Universal Character Set with 31-bit code space, standardized as UCS-4 by ISO/IEC 10646. It is kept synchronized with the latest version of the Unicode code map.

Additional note: If this name is used in the encoding conversion facility, the converter attempts to identify by the preceding BOM (byte order mark)in which endian the subsequent bytes are represented.

Name in the IANA character set registry: ISO-10646-UCS-4

Underlying character set: UCS-4

Description: See above.

Additional note: In contrast to UCS-4, strings are always assumed to be in big endian form.

Name in the IANA character set registry: ISO-10646-UCS-4

Underlying character set: UCS-4

Description: See above.

Additional note: In contrast to UCS-4, strings are always assumed to be in little endian form.

Name in the IANA character set registry: ISO-10646-UCS-2

Underlying character set: UCS-2

Description: The Universal Character Set with 16-bit code space, standardized as UCS-2 by ISO/IEC 10646. It is kept synchronized with the latest version of the unicode code map.

Additional note: If this name is used in the encoding conversion facility, the converter attempts to identify by the preceding BOM (byte order mark)in which endian the subsequent bytes are represented.

Name in the IANA character set registry: ISO-10646-UCS-2

Underlying character set: UCS-2

Description: See above.

Additional note: In contrast to UCS-2, strings are always assumed to be in big endian form.

Name in the IANA character set registry: ISO-10646-UCS-2

Underlying character set: UCS-2

Description: See above.

Additional note: In contrast to UCS-2, strings are always assumed to be in little endian form.

Name in the IANA character set registry: UTF-32

Underlying character set: Unicode

Description: Unicode Transformation Format of 32-bit unit width, whose encoding space refers to the Unicode's codeset standard. This encoding scheme wasn't identical to UCS-4 because the code space of Unicode were limited to a 21-bit value.

Additional note: If this name is used in the encoding conversion facility, the converter attempts to identify by the preceding BOM (byte order mark)in which endian the subsequent bytes are represented.

Name in the IANA character set registry: UTF-32BE

Underlying character set: Unicode

Description: See above

Additional note: In contrast to UTF-32, strings are always assumed to be in big endian form.

Name in the IANA character set registry: UTF-32LE

Underlying character set: Unicode

Description: See above

Additional note: In contrast to UTF-32, strings are always assumed to be in little endian form.

Name in the IANA character set registry: UTF-16

Underlying character set: Unicode

Description: Unicode Transformation Format of 16-bit unit width. It's worth a note that UTF-16 is no longer the same specification as UCS-2 because the surrogate mechanism has been introduced since Unicode 2.0 and UTF-16 now refers to a 21-bit code space.

Additional note: If this name is used in the encoding conversion facility, the converter attempts to identify by the preceding BOM (byte order mark)in which endian the subsequent bytes are represented.

Name in the IANA character set registry: UTF-16BE

Underlying character set: Unicode

Description: See above.

Additional note: In contrast to UTF-16, strings are always assumed to be in big endian form.

Name in the IANA character set registry: UTF-16BE

Underlying character set: Unicode

Description: See above.

Additional note: In contrast to UTF-16, strings are always assumed to be in big endian form.

Name in the IANA character set registry: UTF-8

Underlying character set: Unicode / UCS

Description: Unicode Transformation Format of 8-bit unit width.

Additional note: none

Name in the IANA character set registry: UTF-7

Underlying character set: Unicode

Description: A mail-safe transformation format of Unicode, specified in RFC2152.

Additional note: none

Name in the IANA character set registry: (none)

Underlying character set: Unicode

Description: A variant of UTF-7 which is specialized for use in the IMAP protocol.

Additional note: none

Name in the IANA character set registry: US-ASCII (preferred MIME name) / iso-ir-6 / ANSI_X3.4-1986 / ISO_646.irv:1991 / ASCII / ISO646-US / us / IBM367 / CP367 / csASCII

Underlying character set: ASCII / ISO 646

Description: American Standard Code for Information Interchange is a commonly-used 7-bit encoding. Also standardized as an international standard, ISO 646.

Additional note: (none)

Name in the IANA character set registry: EUC-JP (preferred MIME name) / Extended_UNIX_Code_Packed_Format_for_Japanese / csEUCPkdFmtJapanese

Underlying character set: Compound of US-ASCII / JIS X0201:1997 (hankaku kana part) / JIS X0208:1990 / JIS X0212:1990

Description: As you see the name is derived from an abbreviation of Extended UNIX Code Packed Format for Japanese, this encoding is mostly used on UNIX or alike platforms. The original encoding scheme, Extended UNIX Code, is designed on the basis of ISO 2022.

Additional note: The character set referred to by EUC-JP is different to IBM932 / CP932, which are used by OS/2® and Microsoft® Windows®. For information interchange with those platforms, use EUCJP-WIN instead.

Name in the IANA character set registry: Shift_JIS (preferred MIME name) / MS_Kanji / csShift_JIS

Underlying character set: Compound of JIS X0201:1997 / JIS X0208:1997

Description: Shift_JIS was developed in early 80's, at the time personal Japanese word processors were brought into the market, in order to maintain compatiblities with the legacy encoding scheme JIS X 0201:1976. According to the IANA definition the codeset of Shift_JIS is slightly different to IBM932 / CP932. However, the names "SJIS" / "Shift_JIS" are often wrongly used to refer to these codesets.

Additional note: For the CP932 codemap, use SJIS-WIN instead.

Name in the IANA character set registry: (none)

Underlying character set: Compound of JIS X0201:1997 / JIS X0208:1997 / IBM extensions / NEC extensions

Description: While this "encoding" uses the same encoding scheme as EUC-JP, the underlying character set is different. That is, some code points map to different characters than EUC-JP.

Additional note: none

Name in the IANA character set registry: Windows-31J / csWindows31J

Underlying character set: Compound of JIS X0201:1997 / JIS X0208:1997 / IBM extensions / NEC extensions

Description: While this "encoding" uses the same encoding scheme as Shift_JIS, the underlying character set is different. That means some code points map to different characters than Shift_JIS.

Additional note: (none)

Name in the IANA character set registry: ISO-2022-JP (preferred MIME name) / csISO2022JP

Underlying character set: US-ASCII / JIS X0201:1976 / JIS X0208:1978 / JIS X0208:1983

Description: RFC1468

Additional note: (none)

Name in the IANA character set registry: JIS

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-1

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-2

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-3

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-4

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-5

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-6

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-7

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-8

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-9

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-10

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-13

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-14

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-15

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: byte2be

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: byte2le

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: byte4be

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: byte4le

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: BASE64

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: HTML-ENTITIES

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: 7bit

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: 8bit

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: EUC-CN

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: CP936

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: HZ

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: EUC-TW

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: CP950

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: BIG-5

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: EUC-KR

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: UHC (CP949)

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-2022-KR

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: Windows-1251 (CP1251)

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: Windows-1252 (CP1252)

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: CP866 (IBM866)

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: KOI8-R

Underlying character set:

Description:

Additional note:

Obsah
mb_convert_case -- Perform case folding on a string
mb_convert_encoding -- Convert character encoding
mb_convert_kana -- Convert "kana" one from another ("zen-kaku", "han-kaku" and more)
mb_convert_variables -- Convert character code in variable(s)
mb_decode_mimeheader -- Decode string in MIME header field
mb_decode_numericentity -- Decode HTML numeric string reference to character
mb_detect_encoding -- Detect character encoding
mb_detect_order -- Set/Get character encoding detection order
mb_encode_mimeheader -- Encode string for MIME header
mb_encode_numericentity -- Encode character to HTML numeric string reference
mb_ereg_match -- Regular expression match for multibyte string
mb_ereg_replace -- Replace regular expression with multibyte support
mb_ereg_search_getpos -- Returns start point for next regular expression match
mb_ereg_search_getregs -- Retrieve the result from the last multibyte regular expression match
mb_ereg_search_init -- Setup string and regular expression for multibyte regular expression match
mb_ereg_search_pos -- Return position and length of matched part of multibyte regular expression for predefined multibyte string
mb_ereg_search_regs -- Returns the matched part of multibyte regular expression
mb_ereg_search_setpos -- Set start point of next regular expression match
mb_ereg_search -- Multibyte regular expression match for predefined multibyte string
mb_ereg -- Regular expression match with multibyte support
mb_eregi_replace -- Replace regular expression with multibyte support ignoring case
mb_eregi -- Regular expression match ignoring case with multibyte support
mb_get_info -- Get internal settings of mbstring
mb_http_input -- Detect HTTP input character encoding
mb_http_output -- Set/Get HTTP output character encoding
mb_internal_encoding -- Set/Get internal character encoding
mb_language -- Set/Get current language
mb_output_handler -- Callback function converts character encoding in output buffer
mb_parse_str -- Parse GET/POST/COOKIE data and set global variable
mb_preferred_mime_name -- Get MIME charset string
mb_regex_encoding -- Returns current encoding for multibyte regex as string
mb_regex_set_options -- Set/Get the default options for mbregex functions
mb_send_mail -- Send encoded mail.
mb_split -- Split multibyte string using regular expression
mb_strcut -- Get part of string
mb_strimwidth -- Get truncated string with specified width
mb_strlen -- Get string length
mb_strpos -- Find position of first occurrence of string in a string
mb_strrpos -- Find position of last occurrence of a string in a string
mb_strtolower -- Make a string lowercase
mb_strtoupper -- Make a string uppercase
mb_strwidth -- Return width of string
mb_substitute_character -- Set/Get substitution character
mb_substr_count -- Count the number of substring occurrences
mb_substr -- Get part of string

Předcházející | Domů | Další
tanh | Nahoru | mb_convert_case


mb_convert_case

(PHP 4 >= 4.3.0, PHP 5)

mb_convert_case -- Perform case folding on a string

Description

string mb_convert_case ( string str, int mode [, string encoding])

mb_convert_case() returns case folded version of string converted in the way specified by mode.

mode can be one of MB_CASE_UPPER, MB_CASE_LOWER or MB_CASE_TITLE.

encoding specifies the encoding of str; if omitted, the internal character encoding value will be used.

The return value is str with the appropriate case folding applied.

By contrast to the standard case folding functions such as strtolower() and strtoupper(), case folding is performed on the basis of the Unicode character properties. Thus the behaviour of this function is not affected by locale settings and it can convert any characters that have 'alphabetic' property, such as A-umlaut (Ä).

For more information about the Unicode properties, please see http://www.unicode.org/unicode/reports/tr21/.

Příklad 1. mb_convert_case() example

<?php
$str = "mary had a Little lamb and she loved it so";
$str = mb_convert_case($str, MB_CASE_UPPER, "UTF-8");
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
?>

See also mb_strtolower(),
mb_strtoupper(),
strtolower() and
strtoupper().

Předcházející | Domů | Další
Multibyte String Functions | Nahoru | mb_convert_encoding


mb_convert_encoding

(PHP 4 >= 4.0.6, PHP 5)

mb_convert_encoding -- Convert character encoding

Description

string mb_convert_encoding ( string str, string to-encoding [, mixed from-encoding])

mb_convert_encoding() converts character encoding of string str from from-encoding to to-encoding.

str : String to be converted.

from-encoding is specified by character code name before conversion. it can be array or string - comma separated enumerated list. If it is not specified, the internal encoding will be used.

Příklad 1. mb_convert_encoding() example

<?php
/* Convert internal character encoding to SJIS */
$str = mb_convert_encoding($str, "SJIS");

/* Convert EUC-JP to UTF-7 */
$str = mb_convert_encoding($str, "UTF-7", "EUC-JP");

/* Auto detect encoding from JIS, eucjp-win, sjis-win, then convert str to UCS-2LE */
$str = mb_convert_encoding($str, "UCS-2LE", "JIS, eucjp-win, sjis-win");

/* "auto" is expanded to "ASCII,JIS,UTF-8,EUC-JP,SJIS" */
$str = mb_convert_encoding($str, "EUC-JP", "auto");
?>

See also mb_detect_order().

Předcházející | Domů | Další
mb_convert_case | Nahoru | mb_convert_kana


mb_convert_kana

(PHP 4 >= 4.0.6, PHP 5)

mb_convert_kana -- Convert "kana" one from another ("zen-kaku", "han-kaku" and more)

Description

string mb_convert_kana ( string str, string option [, mixed encoding])

mb_convert_kana() performs "han-kaku" - "zen-kaku" conversion for string str. It returns converted string. This function is only useful for Japanese.

option is conversion option. Default value is "KV".

encoding is character encoding. If it is omitted, internal character encoding is used.

Specify with combination of following options. Default value is KV.

Tabulka 1. Applicable Conversion Options

Option | Meaning
r | Convert "zen-kaku" alphabets to "han-kaku"
R | Convert "han-kaku" alphabets to "zen-kaku"
n | Convert "zen-kaku" numbers to "han-kaku"
N | Convert "han-kaku" numbers to "zen-kaku"
a | Convert "zen-kaku" alphabets and numbers to "han-kaku"
A | Convert "han-kaku" alphabets and numbers to "zen-kaku" (Characters included in "a", "A" options are U+0021 - U+007E excluding U+0022, U+0027, U+005C, U+007E)
s | Convert "zen-kaku" space to "han-kaku" (U+3000 -> U+0020)
S | Convert "han-kaku" space to "zen-kaku" (U+0020 -> U+3000)
k | Convert "zen-kaku kata-kana" to "han-kaku kata-kana"
K | Convert "han-kaku kata-kana" to "zen-kaku kata-kana"
h | Convert "zen-kaku hira-gana" to "han-kaku kata-kana"
H | Convert "han-kaku kata-kana" to "zen-kaku hira-gana"
c | Convert "zen-kaku kata-kana" to "zen-kaku hira-gana"
C | Convert "zen-kaku hira-gana" to "zen-kaku kata-kana"
V | Collapse voiced sound notation and convert them into a character. Use with "K","H"

Příklad 1. mb_convert_kana() example

<?php
/* Convert all "kana" to "zen-kaku" "kata-kana" */
$str = mb_convert_kana($str, "KVC");

/* Convert "han-kaku" "kata-kana" to "zen-kaku" "kata-kana"
   and "zen-kaku" alpha-numeric to "han-kaku" */
$str = mb_convert_kana($str, "KVa");
?>

Předcházející | Domů | Další
mb_convert_encoding | Nahoru | mb_convert_variables


mb_convert_variables

(PHP 4 >= 4.0.6, PHP 5)

mb_convert_variables -- Convert character code in variable(s)

Description

string mb_convert_variables ( string to-encoding, mixed from-encoding, mixed vars)

mb_convert_variables() convert character encoding of variables vars in encoding from-encoding to encoding to-encoding. It returns character encoding before conversion for success, FALSE for failure.

mb_convert_variables() join strings in Array or Object to detect encoding, since encoding detection tends to fail for short strings. Therefore, it is impossible to mix encoding in single array or object.

It from-encoding is specified by array or comma separated string, it tries to detect encoding from from-coding. When encoding is omitted, detect_order is used.

vars (3rd and larger) is reference to variable to be converted. String, Array and Object are accepted. mb_convert_variables() assumes all parameters have the same encoding.

Příklad 1. mb_convert_variables() example

<?php
/* Convert variables $post1, $post2 to internal encoding */
$interenc = mb_internal_encoding();
$inputenc = mb_convert_variables($interenc, "ASCII,UTF-8,SJIS-win", $post1, $post2);
?>

Předcházející | Domů | Další
mb_convert_kana | Nahoru | mb_decode_mimeheader


mb_decode_mimeheader

(PHP 4 >= 4.0.6, PHP 5)

mb_decode_mimeheader -- Decode string in MIME header field

Description

string mb_decode_mimeheader ( string str)

mb_decode_mimeheader() decodes encoded-word string str in MIME header.

It returns decoded string in internal character encoding.

See also mb_encode_mimeheader().

Předcházející | Domů | Další
mb_convert_variables | Nahoru | mb_decode_numericentity


mb_decode_numericentity

(PHP 4 >= 4.0.6, PHP 5)

mb_decode_numericentity -- Decode HTML numeric string reference to character

Description

string mb_decode_numericentity ( string str, array convmap [, string encoding])

Convert numeric string reference of string str in specified block to character. It returns converted string.

convmap is array to specifies code area to convert.

encoding is character encoding. If it is omitted, internal character encoding is used.

Příklad 1. convmap example

$convmap = array (
   int start_code1, int end_code1, int offset1, int mask1,
   int start_code2, int end_code2, int offset2, int mask2,
   ........
   int start_codeN, int end_codeN, int offsetN, int maskN );
// Specify Unicode value for start_codeN and end_codeN
// Add offsetN to value and take bit-wise 'AND' with maskN,
// then convert value to numeric string reference.

See also mb_encode_numericentity().

Předcházející | Domů | Další
mb_decode_mimeheader | Nahoru | mb_detect_encoding


mb_detect_encoding

(PHP 4 >= 4.0.6, PHP 5)

mb_detect_encoding -- Detect character encoding

Description

string mb_detect_encoding ( string str [, mixed encoding-list])

mb_detect_encoding() detects character encoding in string str. It returns detected character encoding.

encoding-list is list of character encoding. Encoding order may be specified by array or comma separated list string.

If encoding_list is omitted, detect_order is used.

Příklad 1. mb_detect_encoding() example

<?php
/* Detect character encoding with current detect_order */
echo mb_detect_encoding($str);

/* "auto" is expanded to "ASCII,JIS,UTF-8,EUC-JP,SJIS" */
echo mb_detect_encoding($str, "auto");

/* Specify encoding_list character encoding by comma separated list */
echo mb_detect_encoding($str, "JIS, eucjp-win, sjis-win");

/* Use array to specify encoding_list  */
$ary[] = "ASCII";
$ary[] = "JIS";
$ary[] = "EUC-JP";
echo mb_detect_encoding($str, $ary);
?>

See also mb_detect_order().

Předcházející | Domů | Další
mb_decode_numericentity | Nahoru | mb_detect_order


mb_detect_order

(PHP 4 >= 4.0.6, PHP 5)

mb_detect_order -- Set/Get character encoding detection order

Description

array mb_detect_order ( [mixed encoding-list])

mb_detect_order() sets automatic character encoding detection order to encoding-list. It returns TRUE for success, FALSE for failure.

encoding-list is array or comma separated list of character encoding. ("auto" is expanded to "ASCII, JIS, UTF-8, EUC-JP, SJIS")

If encoding-list is omitted, it returns current character encoding detection order as array.

This setting affects mb_detect_encoding() and mb_send_mail().

Poznámka: mbstring currently implements following encoding detection filters. If there is an invalid byte sequence for following encoding, encoding detection will fail.

Poznámka: UTF-8, UTF-7, ASCII, EUC-JP,SJIS, eucJP-win, SJIS-win, JIS, ISO-2022-JP

For ISO-8859-*, mbstring always detects as ISO-8859-*.

For UTF-16, UTF-32, UCS2 and UCS4, encoding detection will fail always.

Příklad 1. Useless detect order example

; Always detect as ISO-8859-1
detect_order = ISO-8859-1, UTF-8

; Always detect as UTF-8, since ASCII/UTF-7 values are
; valid for UTF-8
detect_order = UTF-8, ASCII, UTF-7

Příklad 2. mb_detect_order() examples

<?php
/* Set detection order by enumerated list */
mb_detect_order("eucjp-win,sjis-win,UTF-8");

/* Set detection order by array */
$ary[] = "ASCII";
$ary[] = "JIS";
$ary[] = "EUC-JP";
mb_detect_order($ary);

/* Display current detection order */
echo implode(", ", mb_detect_order());
?>

See also mb_internal_encoding(),
mb_http_input(),
mb_http_output() and
mb_send_mail().

Předcházející | Domů | Další
mb_detect_encoding | Nahoru | mb_encode_mimeheader


mb_encode_mimeheader

(PHP 4 >= 4.0.6, PHP 5)

mb_encode_mimeheader -- Encode string for MIME header

Description

string mb_encode_mimeheader ( string str [, string charset [, string transfer-encoding [, string linefeed]]])

mb_encode_mimeheader() encodes a given string str by the MIME header encoding scheme. Returns a converted version of the string represented in ASCII.

charset specifies the name of the character set in which str is represented in. The default value is determined by the current NLS setting (mbstring.language).

transfer-encoding specifies the scheme of MIME encoding. It should be either "B" (Base64) or "Q" (Quoted-Printable). Falls back to "B" if not given.

linefeed specifies the EOL (end-of-line) marker with which mb_encode_mime_header() performs line-folding (a RFC term, the act of breaking a line longer than a certain length into multiple lines. The length is currently hard-coded to 74 characters). Falls back to "\r\n" (CRLF) if not given.

Příklad 1. mb_encode_mimeheader() example

<?php
$name = ""; // kanji
$mbox = "kru";
$doma = "gtinn.mon";
$addr = mb_encode_mimeheader($name, "UTF-7", "Q") . " <" . $mbox . "@" . $doma . ">";
echo $addr;
?>

Poznámka: This function isn't designed to break lines at higher-level contextual break points (word boundaries, etc.). This behaviour may clutter up the original string with unexpected spaces.

See also mb_decode_mimeheader().

Předcházející | Domů | Další
mb_detect_order | Nahoru | mb_encode_numericentity


mb_encode_numericentity

(PHP 4 >= 4.0.6, PHP 5)

mb_encode_numericentity -- Encode character to HTML numeric string reference

Description

string mb_encode_numericentity ( string str, array convmap [, string encoding])

mb_encode_numericentity() converts specified character codes in string str from HTML numeric character reference to character code. It returns converted string.

convmap is array specifies code area to convert.

encoding is character encoding.

Příklad 1. convmap example

$convmap = array (
 int start_code1, int end_code1, int offset1, int mask1,
 int start_code2, int end_code2, int offset2, int mask2,
 ........
 int start_codeN, int end_codeN, int offsetN, int maskN );
// Specify Unicode value for start_codeN and end_codeN
// Add offsetN to value and take bit-wise 'AND' with maskN, then
// it converts value to numeric string reference.

Příklad 2. mb_encode_numericentity() example

<?php
/* Convert Left side of ISO-8859-1 to HTML numeric character reference */
$convmap = array(0x80, 0xff, 0, 0xff);
$str = mb_encode_numericentity($str, $convmap, "ISO-8859-1");

/* Convert user defined SJIS-win code in block 95-104 to numeric
   string reference */
$convmap = array(
       0xe000, 0xe03e, 0x1040, 0xffff,
       0xe03f, 0xe0bb, 0x1041, 0xffff,
       0xe0bc, 0xe0fa, 0x1084, 0xffff,
       0xe0fb, 0xe177, 0x1085, 0xffff,
       0xe178, 0xe1b6, 0x10c8, 0xffff,
       0xe1b7, 0xe233, 0x10c9, 0xffff,
       0xe234, 0xe272, 0x110c, 0xffff,
       0xe273, 0xe2ef, 0x110d, 0xffff,
       0xe2f0, 0xe32e, 0x1150, 0xffff,
       0xe32f, 0xe3ab, 0x1151, 0xffff );
$str = mb_encode_numericentity($str, $convmap, "sjis-win");
?>

See also mb_decode_numericentity().

Předcházející | Domů | Další
mb_encode_mimeheader | Nahoru | mb_ereg_match


mb_ereg_match

(PHP 4 >= 4.2.0)

mb_ereg_match -- Regular expression match for multibyte string

Description

bool mb_ereg_match ( string pattern, string string [, string option])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

mb_ereg_match() returns TRUE if string matches regular expression pattern, FALSE if not.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Poznámka: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg().

Předcházející | Domů | Další
mb_encode_numericentity | Nahoru | mb_ereg_replace


mb_ereg_replace

(PHP 4 >= 4.2.0)

mb_ereg_replace -- Replace regular expression with multibyte support

Description

string mb_ereg_replace ( string pattern, string replacement, string string [, array option])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

mb_ereg_replace() scans string for matches to pattern, then replaces the matched text with replacement and returns the result string or FALSE on error. Multibyte character can be used in pattern.

Matching condition can be set by option parameter. If i is specified for this parameter, the case will be ignored. If x is specified, white space will be ignored. If m is specified, match will be executed in multiline mode and line break will be included in '.'. If p is specified, match will be executed in POSIX mode, line break will be considered as normal character. If e is specified, replacement string will be evaluated as PHP expression.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Poznámka: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_eregi_replace().

Předcházející | Domů | Další
mb_ereg_match | Nahoru | mb_ereg_search_getpos


mb_ereg_search_getpos

(PHP 4 >= 4.2.0)

mb_ereg_search_getpos -- Returns start point for next regular expression match

Description

array mb_ereg_search_getpos ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

mb_ereg_search_getpos() returns
the point to start regular expression match for
mb_ereg_search(),
mb_ereg_search_pos(),
mb_ereg_search_regs(). The position is
represented by bytes from the head of string.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Poznámka: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg_search_setpos().

Předcházející | Domů | Další
mb_ereg_replace | Nahoru | mb_ereg_search_getregs


mb_ereg_search_getregs

(PHP 4 >= 4.2.0)

mb_ereg_search_getregs -- Retrieve the result from the last multibyte regular expression match

Description

array mb_ereg_search_getregs ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

mb_ereg_search_getregs() returns an array including the sub-string of matched part by last mb_ereg_search(), mb_ereg_search_pos(), mb_ereg_search_regs(). If there are some maches, the first element will have the matched sub-string, the second element will have the first part grouped with brackets, the third element will have the second part grouped with brackets, and so on. It returns FALSE on error;

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Poznámka: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg_search_init().

Předcházející | Domů | Další
mb_ereg_search_getpos | Nahoru | mb_ereg_search_init


mb_ereg_search_init

(PHP 4 >= 4.2.0)

mb_ereg_search_init -- Setup string and regular expression for multibyte regular expression match

Description

array mb_ereg_search_init ( string string [, string pattern [, string option]])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

mb_ereg_search_init() sets string and pattern for multibyte regular expression. These values are used for mb_ereg_search(), mb_ereg_search_pos(), mb_ereg_search_regs(). It returns TRUE for success, FALSE for error.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Poznámka: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg_search_regs().

Předcházející | Domů | Další
mb_ereg_search_getregs | Nahoru | mb_ereg_search_pos


mb_ereg_search_pos

(PHP 4 >= 4.2.0)

mb_ereg_search_pos -- Return position and length of matched part of multibyte regular expression for predefined multibyte string

Description

array mb_ereg_search_pos ( [string pattern [, string option]])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

mb_ereg_search_pos() returns an array including position of matched part for multibyte regular expression. The first element of the array will be the beginning of matched part, the second element will be length (bytes) of matched part. It returns FALSE on error.

The string for match is specified by mb_ereg_search_init(). It it is not specified, the previous one will be used.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Poznámka: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg_search_init().

Předcházející | Domů | Další
mb_ereg_search_init | Nahoru | mb_ereg_search_regs


mb_ereg_search_regs

(PHP 4 >= 4.2.0)

mb_ereg_search_regs -- Returns the matched part of multibyte regular expression

Description

array mb_ereg_search_regs ( [string pattern [, string option]])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

mb_ereg_search_regs() executes the multibyte regular expression match, and if there are some matched part, it returns an array including substring of matched part as first element, the first grouped part with brackets as second element, the second grouped part as third element, and so on. It returns FALSE on error.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Poznámka: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg_search_init().

Předcházející | Domů | Další
mb_ereg_search_pos | Nahoru | mb_ereg_search_setpos


mb_ereg_search_setpos

(PHP 4 >= 4.2.0)

mb_ereg_search_setpos -- Set start point of next regular expression match

Description

array mb_ereg_search_setpos ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

mb_ereg_search_setpos() sets the starting point of match for mb_ereg_search().

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Poznámka: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg_search_init().

Předcházející | Domů | Další
mb_ereg_search_regs | Nahoru | mb_ereg_search


mb_ereg_search

(PHP 4 >= 4.2.0)

mb_ereg_search -- Multibyte regular expression match for predefined multibyte string

Description

bool mb_ereg_search ( [string pattern [, string option]])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

mb_ereg_search() returns TRUE if the multibyte string matches with the regular expression, FALSE for otherwise. The string for matching is set by mb_ereg_search_init(). If pattern is not specified, the previous one is used.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Poznámka: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg_search_init().

Předcházející | Domů | Další
mb_ereg_search_setpos | Nahoru | mb_ereg


mb_ereg

(PHP 4 >= 4.2.0)

mb_ereg -- Regular expression match with multibyte support

Description

int mb_ereg ( string pattern, string string [, array regs])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

mb_ereg() executes the regular expression match with multibyte support, and returns 1 if matches are found. If the optional third parameter was specified, the function returns the byte length of matched part, and the array regs will contain the substring of matched string. The functions returns 1 if it matches with the empty string. If no matches found or error happend, FALSE will be returned.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Poznámka: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_eregi()

Předcházející | Domů | Další
mb_ereg_search | Nahoru | mb_eregi_replace


mb_eregi_replace

(PHP 4 >= 4.2.0)

mb_eregi_replace -- Replace regular expression with multibyte support ignoring case

Description

string mb_eregi_replace ( string pattern, string replace, string string)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

mb_ereg_replace() scans string for matches to pattern, then replaces the matched text with replacement and returns the result string or FALSE on error. Multibyte character can be used in pattern. The case will be ignored.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Poznámka: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg_replace().

Předcházející | Domů | Další
mb_ereg | Nahoru | mb_eregi


mb_eregi

(PHP 4 >= 4.2.0)

mb_eregi -- Regular expression match ignoring case with multibyte support

Description

int mb_eregi ( string pattern, string string [, array regs])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

mb_eregi() executes the regular expression match with multibyte support, and returns 1 if matches are found. This function ignore case. If the optional third parameter was specified, the function returns the byte length of matched part, and the array regs will contain the substring of matched string. The functions returns 1 if it matches with the empty string. If no matches found or error happend, FALSE will be returned.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Poznámka: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg().

Předcházející | Domů | Další
mb_eregi_replace | Nahoru | mb_get_info


mb_get_info

(PHP 4 >= 4.2.0, PHP 5)

mb_get_info -- Get internal settings of mbstring

Description

string mb_get_info ( [string type])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

mb_get_info() returns internal setting parameter of mbstring.

If type isn't specified or is specified to "all", an array having the elements "internal_encoding", "http_output", "http_input", "func_overload" will be returned.

If type is specified for "http_output", "http_input", "internal_encoding", "func_overload", the specified setting parameter will be returned.

See also mb_internal_encoding(), mb_http_output().

Předcházející | Domů | Další
mb_eregi | Nahoru | mb_http_input


mb_http_input

(PHP 4 >= 4.0.6, PHP 5)

mb_http_input -- Detect HTTP input character encoding

Description

string mb_http_input ( [string type])

mb_http_input() returns result of HTTP input character encoding detection.

type: Input string specifies input type. "G" for GET, "P" for POST, "C" for COOKIE. If type is omitted, it returns last input type processed.

Return Value: Character encoding name. If mb_http_input() does not process specified HTTP input, it returns FALSE.

See also mb_internal_encoding(),
mb_http_output(),
mb_detect_order().

Předcházející | Domů | Další
mb_get_info | Nahoru | mb_http_output


mb_http_output

(PHP 4 >= 4.0.6, PHP 5)

mb_http_output -- Set/Get HTTP output character encoding

Description

string mb_http_output ( [string encoding])

If encoding is set, mb_http_output() sets HTTP output character encoding to encoding. Output after this function is converted to encoding. mb_http_output() returns TRUE for success and FALSE for failure.

If encoding is omitted, mb_http_output() returns current HTTP output character encoding.

See also mb_internal_encoding(),
mb_http_input(),
mb_detect_order().

Předcházející | Domů | Další
mb_http_input | Nahoru | mb_internal_encoding


mb_internal_encoding

(PHP 4 >= 4.0.6, PHP 5)

mb_internal_encoding -- Set/Get internal character encoding

Description

mixed mb_internal_encoding ( [string encoding])

mb_internal_encoding() sets internal character encoding to encoding If parameter is omitted, it returns current internal encoding.

encoding is used for HTTP input character encoding conversion, HTTP output character encoding conversion and default character encoding for string functions defined by mbstring module.

encoding: Character encoding name

Return Value: If encoding is set,mb_internal_encoding() returns TRUE for success, otherwise returns FALSE. If encoding is omitted, it returns current character encoding name.

Příklad 1. mb_internal_encoding() example

<?php
/* Set internal character encoding to UTF-8 */
mb_internal_encoding("UTF-8");

/* Display current internal character encoding */
echo mb_internal_encoding();
?>

See also mb_http_input(),
mb_http_output() and
mb_detect_order().

Předcházející | Domů | Další
mb_http_output | Nahoru | mb_language


mb_language

(PHP 4 >= 4.0.6, PHP 5)

mb_language -- Set/Get current language

Description

string mb_language ( [string language])

mb_language() sets language. If language is omitted, it returns current language as string.

language setting is used for encoding e-mail messages. Valid languages are "Japanese", "ja","English","en" and "uni" (UTF-8). mb_send_mail() uses this setting to encode e-mail.

Language and its setting is ISO-2022-JP/Base64 for Japanese, UTF-8/Base64 for uni, ISO-8859-1/quoted printable for English.

Return Value: If language is set and language is valid, it returns TRUE. Otherwise, it returns FALSE. When language is omitted, it returns language name as string. If no language is set previously, it returns FALSE.

See also mb_send_mail().

Předcházející | Domů | Další
mb_internal_encoding | Nahoru | mb_output_handler


mb_output_handler

(PHP 4 >= 4.0.6, PHP 5)

mb_output_handler -- Callback function converts character encoding in output buffer

Description

string mb_output_handler ( string contents, int status)

mb_output_handler() is
ob_start() callback
function. mb_output_handler() converts
characters in output buffer from internal character encoding to
HTTP output character encoding.

4.1.0 or later version, this handler adds charset HTTP header when following conditions are met:

  • Does not set Content-Type by header()

  • Default MIME type begins with text/

  • http_output setting is other than pass

contents : Output buffer contents

status : Output buffer status

Return Value: String converted

Příklad 1. mb_output_handler() example

<?php
mb_http_output("UTF-8");
ob_start("mb_output_handler");
?>

Poznámka: If you want to output some binary data such as image from PHP script with PHP 4.3.0 or later, Content-Type: header must be send using header() before any binary data was send to client (e.g. header("Content-Type: image/png")). If Content-Type: header was send, output character encoding conversion will not be performed.

Note that if 'Content-Type: text/*' was send using header(), the sending data is regarded as text, encoding conversion will be performed using character encoding settings.

If you want to output some binary data such as image from PHP script with PHP 4.2.x or earlier, you must set output encoding to "pass" using mb_http_output().

See also ob_start().

Předcházející | Domů | Další
mb_language | Nahoru | mb_parse_str


mb_parse_str

(PHP 4 >= 4.0.6, PHP 5)

mb_parse_str -- Parse GET/POST/COOKIE data and set global variable

Description

bool mb_parse_str ( string encoded_string [, array result])

mb_parse_str() parses GET/POST/COOKIE data and sets global variables. Since PHP does not provide raw POST/COOKIE data, it can only used for GET data for now. It preses URL encoded data, detects encoding, converts coding to internal encoding and set values to result array or global variables.

encoded_string: URL encoded data.

result: Array contains decoded and character encoding converted values.

Return Value: It returns TRUE for success or FALSE for failure.

See also mb_detect_order(), mb_internal_encoding().

Předcházející | Domů | Další
mb_output_handler | Nahoru | mb_preferred_mime_name


mb_preferred_mime_name

(PHP 4 >= 4.0.6, PHP 5)

mb_preferred_mime_name -- Get MIME charset string

Description

string mb_preferred_mime_name ( string encoding)

mb_preferred_mime_name() returns MIME charset string for character encoding encoding. It returns charset string.

Příklad 1. mb_preferred_mime_string() example

<?php
$outputenc = "sjis-win";
mb_http_output($outputenc);
ob_start("mb_output_handler");
header("Content-Type: text/html; charset=" . mb_preferred_mime_name($outputenc));
?>

Předcházející | Domů | Další
mb_parse_str | Nahoru | mb_regex_encoding


mb_regex_encoding

(PHP 4 >= 4.2.0)

mb_regex_encoding -- Returns current encoding for multibyte regex as string

Description

string mb_regex_encoding ( [string encoding])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

mb_regex_encoding() returns the character encoding used by multibyte regex functions.

If the optional parameter encoding is specified, it is set to the character encoding for multibyte regex. The default value is the internal character encoding.

Poznámka: This function is supported in PHP 4.2.0 or higher.

See also: mb_internal_encoding(), mb_ereg()

Předcházející | Domů | Další
mb_preferred_mime_name | Nahoru | mb_regex_set_options


mb_regex_set_options

(PHP 4 >= 4.3.0)

mb_regex_set_options -- Set/Get the default options for mbregex functions

Description

string mb_regex_set_options ( [string options])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

mb_regex_set_options() sets the default options described by options for multibyte regex functions.

Returns the previous options. If options is omitted, it returns the string that describes the current options.

Poznámka: This function is supported in PHP 4.3.0 or higher.

See also
mb_split(),
mb_ereg() and
mb_eregi()

Předcházející | Domů | Další
mb_regex_encoding | Nahoru | mb_send_mail


mb_send_mail

(PHP 4 >= 4.0.6, PHP 5)

mb_send_mail -- Send encoded mail.

Description

bool mb_send_mail ( string to, string subject, string message [, string additional_headers [, string additional_parameter]])

mb_send_mail() sends email. Headers and
message are converted and encoded according to
mb_language() setting.
mb_send_mail() is wrapper
function of mail(). See
mail() for details.

to is mail addresses send to. Multiple recipients can be specified by putting a comma between each address in to. This parameter is not automatically encoded.

subject is subject of mail.

message is mail message.

additional_headers is inserted at the end of the header. This is typically used to add extra headers. Multiple extra headers are separated with a newline ("\n").

additional_parameter is a MTA command line parameter. It is useful when setting the correct Return-Path header when using sendmail.

Vrací TRUE při úspěchu, FALSE při selhání.

See also mail(),
mb_encode_mimeheader(), and
mb_language().

Předcházející | Domů | Další
mb_regex_set_options | Nahoru | mb_split


mb_split

(PHP 4 >= 4.2.0)

mb_split -- Split multibyte string using regular expression

Description

array mb_split ( string pattern, string string [, int limit])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

mb_split() split multibyte string using regular expression pattern and returns the result as an array.

If optional parameter limit is specified, it will be split in limit elements as maximum.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

Poznámka: This function is supported in PHP 4.2.0 or higher.

See also: mb_regex_encoding(), mb_ereg().

Předcházející | Domů | Další
mb_send_mail | Nahoru | mb_strcut


mb_strcut

(PHP 4 >= 4.0.6, PHP 5)

mb_strcut -- Get part of string

Description

string mb_strcut ( string str, int start [, int length [, string encoding]])

mb_strcut() returns the portion of str specified by the start and length parameters.

mb_strcut() performs equivalent operation as mb_substr() with different method. If start position is multi-byte character's second byte or larger, it starts from first byte of multi-byte character.

It subtracts string from str that is shorter than length AND character that is not part of multi-byte string or not being middle of shift sequence.

encoding is character encoding. If it is not set, internal character encoding is used.

See also mb_substr(), mb_internal_encoding().

Předcházející | Domů | Další
mb_split | Nahoru | mb_strimwidth


mb_strimwidth

(PHP 4 >= 4.0.6, PHP 5)

mb_strimwidth -- Get truncated string with specified width

Description

string mb_strimwidth ( string str, int start, int width, string trimmarker [, string encoding])

mb_strimwidth() truncates string str to specified width. It returns truncated string.

If trimmarker is set, trimmarker is appended to return value.

start is start position offset. Number of characters from the beginning of string. (First character is 0)

trimmarker is string that is added to the end of string when string is truncated.

encoding is character encoding. If it is omitted, internal encoding is used.

Příklad 1. mb_strimwidth() example

<?php
$str = mb_strimwidth($str, 0, 40, "..>");
?>

See also mb_strwidth() and mb_internal_encoding().

Předcházející | Domů | Další
mb_strcut | Nahoru | mb_strlen


mb_strlen

(PHP 4 >= 4.0.6, PHP 5)

mb_strlen -- Get string length

Description

string mb_strlen ( string str [, string encoding])

mb_strlen() returns number of characters in string str having character encoding encoding. A multi-byte character is counted as 1.

encoding is character encoding for str. If encoding is omitted, internal character encoding is used.

See also mb_internal_encoding(), strlen().

Předcházející | Domů | Další
mb_strimwidth | Nahoru | mb_strpos


mb_strpos

(PHP 4 >= 4.0.6, PHP 5)

mb_strpos -- Find position of first occurrence of string in a string

Description

int mb_strpos ( string haystack, string needle [, int offset [, string encoding]])

mb_strpos() returns the numeric position of the first occurrence of needle in the haystack string. If needle is not found, it returns FALSE.

mb_strpos() performs multi-byte safe strpos() operation based on number of characters. needle position is counted from the beginning of the haystack. First character's position is 0. Second character position is 1, and so on.

If encoding is omitted, internal character encoding is used. mb_strrpos() accepts string for needle where strrpos() accepts only character.

offset is search offset. If it is not specified, 0 is used.

encoding is character encoding name. If it is omitted, internal character encoding is used.

See also mb_strpos(),
mb_internal_encoding(),
strpos()

Předcházející | Domů | Další
mb_strlen | Nahoru | mb_strrpos


mb_strrpos

(PHP 4 >= 4.0.6, PHP 5)

mb_strrpos -- Find position of last occurrence of a string in a string

Description

int mb_strrpos ( string haystack, string needle [, string encoding])

mb_strrpos() returns the numeric position of the last occurrence of needle in the haystack string. If needle is not found, it returns FALSE.

mb_strrpos() performs multi-byte safe strrpos() operation based on number of characters. needle position is counted from the beginning of haystack. First character's position is 0. Second character position is 1.

If encoding is omitted, internal encoding is assumed. mb_strrpos() accepts string for needle where strrpos() accepts only character.

encoding is character encoding. If it is not specified, internal character encoding is used.

See also mb_strpos(),
mb_internal_encoding(),
strrpos().

Předcházející | Domů | Další
mb_strpos | Nahoru | mb_strtolower


mb_strtolower

(PHP 4 >= 4.3.0, PHP 5)

mb_strtolower -- Make a string lowercase

Description

string mb_strtolower ( string str [, string encoding])

mb_strtolower() returns str with all alphabetic characters converted to lowercase.

encoding specifies the encoding of str; if omitted, the internal character encoding value will be used.

For more information about the Unicode properties, please see http://www.unicode.org/unicode/reports/tr21/.

By contrast to strtolower(), 'alphabetic' is determined by the Unicode character properties. Thus the behaviour of this function is not affected by locale settings and it can convert any characters that have 'alphabetic' property, such as A-umlaut (Ä).

Příklad 1. mb_strtolower() example

<?php
$str = "Mary Had A Little Lamb and She LOVED It So";
$str = mb_strtolower($str);
echo $str; // Prints mary had a little lamb and she loved it so
?>

See also strtolower(),
mb_strtoupper() and
mb_convert_case().

Předcházející | Domů | Další
mb_strrpos | Nahoru | mb_strtoupper


mb_strtoupper

(PHP 4 >= 4.3.0, PHP 5)

mb_strtoupper -- Make a string uppercase

Description

string mb_strtoupper ( string str [, string encoding])

mb_strtoupper() returns str with all alphabetic characters converted to uppercase.

encoding specifies the encoding of str; if omitted, the internal character encoding value will be used.

By contrast to strtoupper(), 'alphabetic' is determined by the Unicode character properties. Thus the behaviour of this function is not affected by locale settings and it can convert any characters that have 'alphabetic' property, such as a-umlaut (ä).

For more information about the Unicode properties, please see http://www.unicode.org/unicode/reports/tr21/.

Příklad 1. mb_strtoupper() example

<?php
$str = "Mary Had A Little Lamb and She LOVED It So";
$str = mb_strtoupper($str);
echo $str; // Prints MARY HAD A LITTLE LAMB AND SHE LOVED IT SO
?>

See also strtoupper(),
mb_strtolower() and
mb_convert_case().

Předcházející | Domů | Další
mb_strtolower | Nahoru | mb_strwidth


mb_strwidth

(PHP 4 >= 4.0.6, PHP 5)

mb_strwidth -- Return width of string

Description

int mb_strwidth ( string str [, string encoding])

mb_strwidth() returns width of string str.

Multi-byte character usually twice of width compare to single byte character.

Tabulka 1. Characters width

Chars | Width
U+0000 - U+0019 | 0
U+0020 - U+1FFF | 1
U+2000 - U+FF60 | 2
U+FF61 - U+FF9F | 1
U+FFA0 - | 2

encoding is character encoding. If it is omitted, internal encoding is used.

See also: mb_strimwidth(), mb_internal_encoding().

Předcházející | Domů | Další
mb_strtoupper | Nahoru | mb_substitute_character


mb_substitute_character

(PHP 4 >= 4.0.6, PHP 5)

mb_substitute_character -- Set/Get substitution character

Description

mixed mb_substitute_character ( [mixed substrchar])

mb_substitute_character() specifies substitution character when input character encoding is invalid or character code is not exist in output character encoding. Invalid characters may be substituted NULL(no output), string or integer value (Unicode character code value).

This setting affects mb_convert_encoding(),
mb_convert_variables(),
mb_output_handler(),
and mb_send_mail().

substchar : Specify Unicode value as integer or specify as string as follows

  • "none" : no output

  • "long" : Output character code value (Example: U+3000,JIS+7E7E)

Return Value: If substchar is set, it returns TRUE for success, otherwise returns FALSE. If substchar is not set, it returns Unicode value or "none"/"long".

Příklad 1. mb_substitute_character() example

<?php
/* Set with Unicode U+3013 (GETA MARK) */
mb_substitute_character(0x3013);

/* Set hex format */
mb_substitute_character("long");

/* Display current setting */
echo mb_substitute_character();
?>

Předcházející | Domů | Další
mb_strwidth | Nahoru | mb_substr_count


mb_substr_count

(PHP 4 >= 4.3.0, PHP 5)

mb_substr_count -- Count the number of substring occurrences

Description

int mb_substr_count ( string haystack, string needle [, string encoding])

mb_substr_count() returns the number of times the needle substring occurs in the haystack string.

encoding specifies the encoding for needle and haystack. If omitted, internal character encoding is used.

Příklad 1. mb_substr_count() example

<?php
echo mb_substr_count("This is a test", "is"); // prints out 2
?>

See also substr_count(), mb_strpos(), mb_substr().

Předcházející | Domů | Další
mb_substitute_character | Nahoru | mb_substr


mb_substr

(PHP 4 >= 4.0.6, PHP 5)

mb_substr -- Get part of string

Description

string mb_substr ( string str, int start [, int length [, string encoding]])

mb_substr() returns the portion of str specified by the start and length parameters.

mb_substr() performs multi-byte safe substr() operation based on number of characters. Position is counted from the beginning of str. First character's position is 0. Second character position is 1, and so on.

If encoding is omitted, internal encoding is assumed.

encoding is character encoding. If it is omitted, internal character encoding is used.

See also mb_strcut(), mb_internal_encoding().

Předcházející | Domů | Další
mb_substr_count | Nahoru | MCAL Functions


MCAL Functions

Manuál PHP
Předcházející Další

LIV. MCAL Functions

Úvod

MCAL stands for Modular Calendar Access Library.

Libmcal is a C library for accessing calendars. It's written to be very modular, with pluggable drivers. MCAL is the calendar equivalent of the IMAP module for mailboxes.

With mcal support, a calendar stream can be opened much like the mailbox stream with the IMAP support. Calendars can be local file stores, remote ICAP servers, or other formats that are supported by the mcal library.

Calendar events can be pulled up, queried, and stored. There is also support for calendar triggers (alarms) and recurring events.

With libmcal, central calendar servers can be accessed, removing the need for any specific database or local file programming.

Most of the functions use an internal event structure that is unique for each stream. This alleviates the need to pass around large objects between functions. There are convenience functions for setting, initializing, and retrieving the event structure values.

Poznámka: Toto rozšíření bylo odstraněno podle PHP 5 a přesunuto do repozitáře PECL.

Poznámka: PHP had an ICAP extension previously, but the original library and the PHP extension is not supported anymore. The suggested replacement is MCAL.

Poznámka: Toto rozšíření není k dispozici na platformách Windows.

Požadavky

This extension requires the mcal library to be installed. Grab the latest version from http://mcal.chek.com/ and compile and install it.

Instalace

After you installed the mcal library, to get these functions to work, you have to compile PHP -with-mcal[=DIR].

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

MCAL_SUNDAY (integer)

MCAL_MONDAY (integer)

MCAL_TUESDAY (integer)

MCAL_WEDNESDAY (integer)

MCAL_THURSDAY (integer)

MCAL_FRIDAY (integer)

MCAL_SATURDAY (integer)

MCAL_JANUARY (integer)

MCAL_FEBRUARY (integer)

MCAL_MARCH (integer)

MCAL_APRIL (integer)

MCAL_MAY (integer)

MCAL_JUNE (integer)

MCAL_JULY (integer)

MCAL_AUGUST (integer)

MCAL_SEPTEMBER (integer)

MCAL_OCTOBER (integer)

MCAL_NOVEMBER (integer)

MCAL_DECEMBER (integer)

MCAL_RECUR_NONE (integer)

MCAL_RECUR_DAILY (integer)

MCAL_RECUR_WEEKLY (integer)

MCAL_RECUR_MONTHLY_MDAY (integer)

MCAL_RECUR_MONTHLY_WDAY (integer)

MCAL_RECUR_YEARLY (integer)

MCAL_M_SUNDAY (integer)

MCAL_M_MONDAY (integer)

MCAL_M_TUESDAY (integer)

MCAL_M_WEDNESDAY (integer)

MCAL_M_THURSDAY (integer)

MCAL_M_FRIDAY (integer)

MCAL_M_SATURDAY (integer)

MCAL_M_WEEKDAYS (integer)

MCAL_M_WEEKEND (integer)

MCAL_M_ALLDAYS (integer)

Obsah
mcal_append_event -- Store a new event into an MCAL calendar
mcal_close -- Close an MCAL stream
mcal_create_calendar -- Create a new MCAL calendar
mcal_date_compare -- Compares two dates
mcal_date_valid -- Returns TRUE if the given year, month, day is a valid date
mcal_day_of_week -- Returns the day of the week of the given date
mcal_day_of_year -- Returns the day of the year of the given date
mcal_days_in_month -- Returns the number of days in a month
mcal_delete_calendar -- Delete an MCAL calendar
mcal_delete_event -- Delete an event from an MCAL calendar
mcal_event_add_attribute -- Adds an attribute and a value to the streams global event structure
mcal_event_init -- Initializes a streams global event structure
mcal_event_set_alarm -- Sets the alarm of the streams global event structure
mcal_event_set_category -- Sets the category of the streams global event structure
mcal_event_set_class -- Sets the class of the streams global event structure
mcal_event_set_description -- Sets the description of the streams global event structure
mcal_event_set_end -- Sets the end date and time of the streams global event structure
mcal_event_set_recur_daily -- Sets the recurrence of the streams global event structure
mcal_event_set_recur_monthly_mday -- Sets the recurrence of the streams global event structure
mcal_event_set_recur_monthly_wday -- Sets the recurrence of the streams global event structure
mcal_event_set_recur_none -- Sets the recurrence of the streams global event structure
mcal_event_set_recur_weekly -- Sets the recurrence of the streams global event structure
mcal_event_set_recur_yearly -- Sets the recurrence of the streams global event structure
mcal_event_set_start -- Sets the start date and time of the streams global event structure
mcal_event_set_title -- Sets the title of the streams global event structure
mcal_expunge -- Deletes all events marked for being expunged.
mcal_fetch_current_stream_event -- Returns an object containing the current streams event structure
mcal_fetch_event -- Fetches an event from the calendar stream
mcal_is_leap_year -- Returns if the given year is a leap year or not
mcal_list_alarms -- Return a list of events that has an alarm triggered at the given datetime
mcal_list_events -- Return a list of IDs for a date or a range of dates
mcal_next_recurrence -- Returns the next recurrence of the event
mcal_open -- Opens up an MCAL connection
mcal_popen -- Opens up a persistent MCAL connection
mcal_rename_calendar -- Rename an MCAL calendar
mcal_reopen -- Reopens an MCAL connection
mcal_snooze -- Turn off an alarm for an event
mcal_store_event -- Modify an existing event in an MCAL calendar
mcal_time_valid -- Returns TRUE if the given hour, minutes and seconds is a valid time
mcal_week_of_year -- Returns the week number of the given date

Předcházející | Domů | Další
mb_substr | Nahoru | mcal_append_event


mcal_append_event

(PHP 4 )

mcal_append_event -- Store a new event into an MCAL calendar

Description

int mcal_append_event ( int mcal_stream)

mcal_append_event() stores the global event into an MCAL calendar for the stream mcal_stream.

Returns the id of the newly inserted event.

Předcházející | Domů | Další
MCAL Functions | Nahoru | mcal_close


mcal_close

(PHP 3>= 3.0.13, PHP 4 )

mcal_close -- Close an MCAL stream

Description

int mcal_close ( int mcal_stream, int flags)

Closes the given mcal stream.

Předcházející | Domů | Další
mcal_append_event | Nahoru | mcal_create_calendar


mcal_create_calendar

(PHP 3>= 3.0.13, PHP 4 )

mcal_create_calendar -- Create a new MCAL calendar

Description

bool mcal_create_calendar ( int stream, string calendar)

Creates a new calendar named calendar.

Předcházející | Domů | Další
mcal_close | Nahoru | mcal_date_compare


mcal_date_compare

(PHP 3>= 3.0.13, PHP 4 )

mcal_date_compare -- Compares two dates

Description

int mcal_date_compare ( int a_year, int a_month, int a_day, int b_year, int b_month, int b_day)

mcal_date_compare() Compares the two given dates, returns <0, 0, >0 if a<b, a==b, a>b respectively.

Předcházející | Domů | Další
mcal_create_calendar | Nahoru | mcal_date_valid


mcal_date_valid

(PHP 3>= 3.0.13, PHP 4 )

mcal_date_valid -- Returns TRUE if the given year, month, day is a valid date

Description

int mcal_date_valid ( int year, int month, int day)

mcal_date_valid() Returns TRUE if the given year, month and day is a valid date, FALSE if not.

Předcházející | Domů | Další
mcal_date_compare | Nahoru | mcal_day_of_week


mcal_day_of_week

(PHP 3>= 3.0.13, PHP 4 )

mcal_day_of_week -- Returns the day of the week of the given date

Description

int mcal_day_of_week ( int year, int month, int day)

mcal_day_of_week() returns the day of the week of the given date. Possible return values range from 0 for Sunday through 6 for Saturday.

Předcházející | Domů | Další
mcal_date_valid | Nahoru | mcal_day_of_year


mcal_day_of_year

(PHP 3>= 3.0.13, PHP 4 )

mcal_day_of_year -- Returns the day of the year of the given date

Description

int mcal_day_of_year ( int year, int month, int day)

mcal_day_of_year() returns the day of the year of the given date.

Předcházející | Domů | Další
mcal_day_of_week | Nahoru | mcal_days_in_month


mcal_days_in_month

(PHP 3>= 3.0.13, PHP 4 )

mcal_days_in_month -- Returns the number of days in a month

Description

int mcal_days_in_month ( int month, int leap_year)

mcal_days_in_month() returns the number of days in the month month, taking into account if the considered year is a leap year or not.

Předcházející | Domů | Další
mcal_day_of_year | Nahoru | mcal_delete_calendar


mcal_delete_calendar

(PHP 3>= 3.0.13, PHP 4 )

mcal_delete_calendar -- Delete an MCAL calendar

Description

string mcal_delete_calendar ( int stream, string calendar)

Deletes the calendar named calendar.

Předcházející | Domů | Další
mcal_days_in_month | Nahoru | mcal_delete_event


mcal_delete_event

(PHP 3>= 3.0.13, PHP 4 )

mcal_delete_event -- Delete an event from an MCAL calendar

Description

int mcal_delete_event ( int mcal_stream [, int event_id])

mcal_delete_event() deletes the calendar event specified by the event_id.

Returns TRUE.

Předcházející | Domů | Další
mcal_delete_calendar | Nahoru | mcal_event_add_attribute


mcal_event_add_attribute

(PHP 3>= 3.0.15, PHP 4 )

mcal_event_add_attribute -- Adds an attribute and a value to the streams global event structure

Description

void mcal_event_add_attribute ( int stream, string attribute, string value)

mcal_event_add_attribute() adds an attribute to the stream's global event structure with the value given by "value".

Předcházející | Domů | Další
mcal_delete_event | Nahoru | mcal_event_init


mcal_event_init

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_init -- Initializes a streams global event structure

Description

int mcal_event_init ( int stream)

mcal_event_init() initializes a streams global event structure. this effectively sets all elements of the structure to 0, or the default settings.

Returns TRUE.

Předcházející | Domů | Další
mcal_event_add_attribute | Nahoru | mcal_event_set_alarm


mcal_event_set_alarm

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_alarm -- Sets the alarm of the streams global event structure

Description

int mcal_event_set_alarm ( int stream, int alarm)

mcal_event_set_alarm() sets the streams global event structure's alarm to the given minutes before the event.

Returns TRUE.

Předcházející | Domů | Další
mcal_event_init | Nahoru | mcal_event_set_category


mcal_event_set_category

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_category -- Sets the category of the streams global event structure

Description

int mcal_event_set_category ( int stream, string category)

mcal_event_set_category() sets the streams global event structure's category to the given string.

Returns TRUE.

Předcházející | Domů | Další
mcal_event_set_alarm | Nahoru | mcal_event_set_class


mcal_event_set_class

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_class -- Sets the class of the streams global event structure

Description

int mcal_event_set_class ( int stream, int class)

mcal_event_set_class() sets the streams global event structure's class to the given value. The class is either 1 for public, or 0 for private.

Returns TRUE.

Předcházející | Domů | Další
mcal_event_set_category | Nahoru | mcal_event_set_description


mcal_event_set_description

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_description -- Sets the description of the streams global event structure

Description

int mcal_event_set_description ( int stream, string description)

mcal_event_set_description() sets the streams global event structure's description to the given string.

Returns TRUE.

Předcházející | Domů | Další
mcal_event_set_class | Nahoru | mcal_event_set_end


mcal_event_set_end

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_end -- Sets the end date and time of the streams global event structure

Description

int mcal_event_set_end ( int stream, int year, int month [, int day [, int hour [, int min [, int sec]]]])

mcal_event_set_end() sets the streams global event structure's end date and time to the given values.

Returns TRUE.

Předcházející | Domů | Další
mcal_event_set_description | Nahoru | mcal_event_set_recur_daily


mcal_event_set_recur_daily

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_recur_daily -- Sets the recurrence of the streams global event structure

Description

int mcal_event_set_recur_daily ( int stream, int year, int month, int day, int interval)

mcal_event_set_recur_daily() sets the streams global event structure's recurrence to the given value to be reoccurring on a daily basis, ending at the given date.

Předcházející | Domů | Další
mcal_event_set_end | Nahoru | mcal_event_set_recur_monthly_mday


mcal_event_set_recur_monthly_mday

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_recur_monthly_mday -- Sets the recurrence of the streams global event structure

Description

int mcal_event_set_recur_monthly_mday ( int stream, int year, int month, int day, int interval)

mcal_event_set_recur_monthly_mday() sets the streams global event structure's recurrence to the given value to be reoccurring on a monthly by month day basis, ending at the given date.

Předcházející | Domů | Další
mcal_event_set_recur_daily | Nahoru | mcal_event_set_recur_monthly_wday


mcal_event_set_recur_monthly_wday

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_recur_monthly_wday -- Sets the recurrence of the streams global event structure

Description

int mcal_event_set_recur_monthly_wday ( int stream, int year, int month, int day, int interval)

mcal_event_set_recur_monthly_wday() sets the streams global event structure's recurrence to the given value to be reoccurring on a monthly by week basis, ending at the given date.

Předcházející | Domů | Další
mcal_event_set_recur_monthly_mday | Nahoru | mcal_event_set_recur_none


mcal_event_set_recur_none

(PHP 3>= 3.0.15, PHP 4 )

mcal_event_set_recur_none -- Sets the recurrence of the streams global event structure

Description

int mcal_event_set_recur_none ( int stream)

mcal_event_set_recur_none() sets the streams global event structure to not recur (event->recur_type is set to MCAL_RECUR_NONE).

Předcházející | Domů | Další
mcal_event_set_recur_monthly_wday | Nahoru | mcal_event_set_recur_weekly


mcal_event_set_recur_weekly

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_recur_weekly -- Sets the recurrence of the streams global event structure

Description

int mcal_event_set_recur_weekly ( int stream, int year, int month, int day, int interval, int weekdays)

mcal_event_set_recur_weekly() sets the streams global event structure's recurrence to the given value to be reoccurring on a weekly basis, ending at the given date.

Předcházející | Domů | Další
mcal_event_set_recur_none | Nahoru | mcal_event_set_recur_yearly


mcal_event_set_recur_yearly

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_recur_yearly -- Sets the recurrence of the streams global event structure

Description

int mcal_event_set_recur_yearly ( int stream, int year, int month, int day, int interval)

mcal_event_set_recur_yearly() sets the streams global event structure's recurrence to the given value to be reoccurring on a yearly basis,ending at the given date.

Předcházející | Domů | Další
mcal_event_set_recur_weekly | Nahoru | mcal_event_set_start


mcal_event_set_start

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_start -- Sets the start date and time of the streams global event structure

Description

int mcal_event_set_start ( int stream, int year, int month [, int day [, int hour [, int min [, int sec]]]])

mcal_event_set_start() sets the streams global event structure's start date and time to the given values.

Returns TRUE.

Předcházející | Domů | Další
mcal_event_set_recur_yearly | Nahoru | mcal_event_set_title


mcal_event_set_title

(PHP 3>= 3.0.13, PHP 4 )

mcal_event_set_title -- Sets the title of the streams global event structure

Description

int mcal_event_set_title ( int stream, string title)

mcal_event_set_title() sets the streams global event structure's title to the given string.

Returns TRUE.

Předcházející | Domů | Další
mcal_event_set_start | Nahoru | mcal_expunge


mcal_expunge

(no version information, might be only in CVS)

mcal_expunge -- Deletes all events marked for being expunged.

Description

int mcal_expunge ( int stream)

mcal_expunge() deletes all events which have been previously marked for deletion.

Předcházející | Domů | Další
mcal_event_set_title | Nahoru | mcal_fetch_current_stream_event


mcal_fetch_current_stream_event

(PHP 3>= 3.0.13, PHP 4 )

mcal_fetch_current_stream_event -- Returns an object containing the current streams event structure

Description

object mcal_fetch_current_stream_event ( int stream)

mcal_fetch_current_stream_event() returns the current stream's event structure as an object containing:

  • int id - ID of that event.

  • int public - TRUE if the event if public, FALSE if it is private.

  • string category - Category string of the event.

  • string title - Title string of the event.

  • string description - Description string of the event.

  • int alarm - number of minutes before the event to send an alarm/reminder.

  • object start - Object containing a datetime entry.

  • object end - Object containing a datetime entry.

  • int recur_type - recurrence type

  • int recur_interval - recurrence interval

  • datetime recur_enddate - recurrence end date

  • int recur_data - recurrence data

All datetime entries consist of an object that contains:

  • int year - year

  • int month - month

  • int mday - day of month

  • int hour - hour

  • int min - minutes

  • int sec - seconds

  • int alarm - minutes before event to send an alarm

Předcházející | Domů | Další
mcal_expunge | Nahoru | mcal_fetch_event


mcal_fetch_event

(PHP 3>= 3.0.13, PHP 4 )

mcal_fetch_event -- Fetches an event from the calendar stream

Description

object mcal_fetch_event ( int mcal_stream, int event_id [, int options])

mcal_fetch_event() fetches an event from the calendar stream specified by id.

Returns an event object consisting of:

  • int id - ID of that event.

  • int public - TRUE if the event if public, FALSE if it is private.

  • string category - Category string of the event.

  • string title - Title string of the event.

  • string description - Description string of the event.

  • int alarm - number of minutes before the event to send an alarm/reminder.

  • object start - Object containing a datetime entry.

  • object end - Object containing a datetime entry.

  • int recur_type - recurrence type

  • int recur_interval - recurrence interval

  • datetime recur_enddate - recurrence end date

  • int recur_data - recurrence data

All datetime entries consist of an object that contains:

  • int year - year

  • int month - month

  • int mday - day of month

  • int hour - hour

  • int min - minutes

  • int sec - seconds

  • int alarm - minutes before event to send an alarm

The possible values for recur_type are:

  • 0 - Indicates that this event does not recur

  • 1 - This event recurs daily

  • 2 - This event recurs on a weekly basis

  • 3 - This event recurs monthly on a specific day of the month (e.g. the 10th of the month)

  • 4 - This event recurs monthly on a sequenced day of the week (e.g. the 3rd Saturday)

  • 5 - This event recurs on an annual basis

Předcházející | Domů | Další
mcal_fetch_current_stream_event | Nahoru | mcal_is_leap_year


mcal_is_leap_year

(PHP 3>= 3.0.13, PHP 4 )

mcal_is_leap_year -- Returns if the given year is a leap year or not

Description

int mcal_is_leap_year ( int year)

mcal_is_leap_year() returns 1 if the given year is a leap year, 0 if not.

Předcházející | Domů | Další
mcal_fetch_event | Nahoru | mcal_list_alarms


mcal_list_alarms

(PHP 3>= 3.0.13, PHP 4 )

mcal_list_alarms -- Return a list of events that has an alarm triggered at the given datetime

Description

array mcal_list_alarms ( int mcal_stream [, int begin_year [, int begin_month [, int begin_day [, int end_year [, int end_month [, int end_day]]]]]])

Returns an array of event ID's that has an alarm going off between the start and end dates, or if just a stream is given, uses the start and end dates in the global event structure.

mcal_list_events() function takes in an optional beginning date and an end date for a calendar stream. An array of event id's that are between the given dates or the internal event dates are returned.

Předcházející | Domů | Další
mcal_is_leap_year | Nahoru | mcal_list_events


mcal_list_events

(PHP 3>= 3.0.13, PHP 4 )

mcal_list_events -- Return a list of IDs for a date or a range of dates

Description

array mcal_list_events ( int mcal_stream, object begin_date [, object end_date])

Returns an array of ID's that are between the start and end dates, or if just a stream is given, uses the start and end dates in the global event structure.

mcal_list_events() takes in an beginning date and an optional end date for a calendar stream. An array of event id's that are between the given dates or the internal event dates are returned.

Předcházející | Domů | Další
mcal_list_alarms | Nahoru | mcal_next_recurrence


mcal_next_recurrence

(PHP 3>= 3.0.13, PHP 4 )

mcal_next_recurrence -- Returns the next recurrence of the event

Description

int mcal_next_recurrence ( int stream, int weekstart, array next)

mcal_next_recurrence() returns an object filled with the next date the event occurs, on or after the supplied date. Returns empty date field if event does not occur or something is invalid. Uses weekstart to determine what day is considered the beginning of the week.

Předcházející | Domů | Další
mcal_list_events | Nahoru | mcal_open


mcal_open

(PHP 3>= 3.0.13, PHP 4 )

mcal_open -- Opens up an MCAL connection

Description

int mcal_open ( string calendar, string username, string password [, int options])

Returns an MCAL stream on success, FALSE on error.

mcal_open() opens up an MCAL connection to the specified calendar store. If the optional options is specified, passes the options to that mailbox also. The streams internal event structure is also initialized upon connection.

Předcházející | Domů | Další
mcal_next_recurrence | Nahoru | mcal_popen


mcal_popen

(PHP 3>= 3.0.13, PHP 4 )

mcal_popen -- Opens up a persistent MCAL connection

Description

int mcal_popen ( string calendar, string username, string password [, int options])

Returns an MCAL stream on success, FALSE on error.

mcal_popen() opens up an MCAL connection to the specified calendar store. If the optional options is specified, passes the options to that mailbox also. The streams internal event structure is also initialized upon connection.

Předcházející | Domů | Další
mcal_open | Nahoru | mcal_rename_calendar


mcal_rename_calendar

(PHP 3>= 3.0.13, PHP 4 )

mcal_rename_calendar -- Rename an MCAL calendar

Description

string mcal_rename_calendar ( int stream, string old_name, string new_name)

Renames the calendar old_name to new_name.

Předcházející | Domů | Další
mcal_popen | Nahoru | mcal_reopen


mcal_reopen

(PHP 3>= 3.0.13, PHP 4 )

mcal_reopen -- Reopens an MCAL connection

Description

int mcal_reopen ( string calendar [, int options])

Reopens an MCAL stream to a new calendar.

mcal_reopen() reopens an MCAL connection to the specified calendar store. If the optional options is specified, passes the options to that mailbox also.

Předcházející | Domů | Další
mcal_rename_calendar | Nahoru | mcal_snooze


mcal_snooze

(PHP 3>= 3.0.13, PHP 4 )

mcal_snooze -- Turn off an alarm for an event

Description

bool mcal_snooze ( int stream_id, int event_id)

mcal_snooze() turns off an alarm for a calendar event specified by the stream_id and event_id.

Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
mcal_reopen | Nahoru | mcal_store_event


mcal_store_event

(PHP 3>= 3.0.13, PHP 4 )

mcal_store_event -- Modify an existing event in an MCAL calendar

Description

int mcal_store_event ( int mcal_stream)

mcal_store_event() stores the modifications to the current global event for the given stream.

Returns the event id of the modified event on success and FALSE on error.

Předcházející | Domů | Další
mcal_snooze | Nahoru | mcal_time_valid


mcal_time_valid

(PHP 3>= 3.0.13, PHP 4 )

mcal_time_valid -- Returns TRUE if the given hour, minutes and seconds is a valid time

Description

int mcal_time_valid ( int hour, int minutes, int seconds)

mcal_time_valid() Returns TRUE if the given hour, minutes and seconds is a valid time, FALSE if not.

Předcházející | Domů | Další
mcal_store_event | Nahoru | mcal_week_of_year


mcal_week_of_year

(PHP 4 )

mcal_week_of_year -- Returns the week number of the given date

Description

int mcal_week_of_year ( int day, int month, int year)

mcal_week_of_year() returns the week number of the given date.

Předcházející | Domů | Další
mcal_time_valid | Nahoru | Mcrypt Encryption Functions


Mcrypt Encryption Functions

Manuál PHP
Předcházející Další

LV. Mcrypt Encryption Functions

Úvod

This is an interface to the mcrypt library, which supports a wide variety of block algorithms such as DES, TripleDES, Blowfish (default), 3-WAY, SAFER-SK64, SAFER-SK128, TWOFISH, TEA, RC2 and GOST in CBC, OFB, CFB and ECB cipher modes. Additionally, it supports RC6 and IDEA which are considered "non-free".

Požadavky

These functions work using mcrypt. To use it, download libmcrypt-x.x.tar.gz from http://mcrypt.sourceforge.net/ and follow the included installation instructions. Windows users will find all the needed compiled mcrypt binaries at http://ftp.emini.dk/pub/php/win32/mcrypt/.

If you linked against libmcrypt 2.4.x or higher, the following additional block algorithms are supported: CAST, LOKI97, RIJNDAEL, SAFERPLUS, SERPENT and the following stream ciphers: ENIGMA (crypt), PANAMA, RC4 and WAKE. With libmcrypt 2.4.x or higher another cipher mode is also available; nOFB.

Instalace

You need to compile PHP with the --with-mcrypt[=DIR] parameter to enable this extension. DIR is the mcrypt install directory. Make sure you compile libmcrypt with the option --disable-posix-threads.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 1. Mcrypt configuration options

Name | Default | Changeable
mcrypt.algorithms_dir | NULL | PHP_INI_ALL
mcrypt.modes_dir | NULL | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

Mcrypt can operate in four block cipher modes (CBC, OFB, CFB, and ECB). If linked against libmcrypt-2.4.x or higher the functions can also operate in the block cipher mode nOFB and in STREAM mode. Below you find a list with all supported encryption modes together with the constants that are defines for the encryption mode. For a more complete reference and discussion see Applied Cryptography by Schneier (ISBN 0-471-11709-9).

  • MCRYPT_MODE_ECB (electronic codebook) is suitable for random data, such as encrypting other keys. Since data there is short and random, the disadvantages of ECB have a favorable negative effect.

  • MCRYPT_MODE_CBC (cipher block chaining) is especially suitable for encrypting files where the security is increased over ECB significantly.

  • MCRYPT_MODE_CFB (cipher feedback) is the best mode for encrypting byte streams where single bytes must be encrypted.

  • MCRYPT_MODE_OFB (output feedback, in 8bit) is comparable to CFB, but can be used in applications where error propagation cannot be tolerated. It's insecure (because it operates in 8bit mode) so it is not recommended to use it.

  • MCRYPT_MODE_NOFB (output feedback, in nbit) is comparable to OFB, but more secure because it operates on the block size of the algorithm.

  • MCRYPT_MODE_STREAM is an extra mode to include some stream algorithms like WAKE or RC4.

Some other mode and random device constants:

MCRYPT_ENCRYPT (integer)

MCRYPT_DECRYPT (integer)

MCRYPT_DEV_RANDOM (integer)

MCRYPT_DEV_URANDOM (integer)

MCRYPT_RAND (integer)

Mcrypt ciphers

Here is a list of ciphers which are currently supported by the mcrypt extension. For a complete list of supported ciphers, see the defines at the end of mcrypt.h. The general rule with the mcrypt-2.2.x API is that you can access the cipher from PHP with MCRYPT_ciphername. With the libmcrypt-2.4.x and libmcrypt-2.5.x API these constants also work, but it is possible to specify the name of the cipher as a string with a call to mcrypt_module_open().

  • MCRYPT_3DES

  • MCRYPT_ARCFOUR_IV (libmcrypt > 2.4.x only)

  • MCRYPT_ARCFOUR (libmcrypt > 2.4.x only)

  • MCRYPT_BLOWFISH

  • MCRYPT_CAST_128

  • MCRYPT_CAST_256

  • MCRYPT_CRYPT

  • MCRYPT_DES

  • MCRYPT_DES_COMPAT (libmcrypt 2.2.x only)

  • MCRYPT_ENIGMA (libmcrypt > 2.4.x only, alias for MCRYPT_CRYPT)

  • MCRYPT_GOST

  • MCRYPT_IDEA (non-free)

  • MCRYPT_LOKI97 (libmcrypt > 2.4.x only)

  • MCRYPT_MARS (libmcrypt > 2.4.x only, non-free)

  • MCRYPT_PANAMA (libmcrypt > 2.4.x only)

  • MCRYPT_RIJNDAEL_128 (libmcrypt > 2.4.x only)

  • MCRYPT_RIJNDAEL_192 (libmcrypt > 2.4.x only)

  • MCRYPT_RIJNDAEL_256 (libmcrypt > 2.4.x only)

  • MCRYPT_RC2

  • MCRYPT_RC4 (libmcrypt 2.2.x only)

  • MCRYPT_RC6 (libmcrypt > 2.4.x only)

  • MCRYPT_RC6_128 (libmcrypt 2.2.x only)

  • MCRYPT_RC6_192 (libmcrypt 2.2.x only)

  • MCRYPT_RC6_256 (libmcrypt 2.2.x only)

  • MCRYPT_SAFER64

  • MCRYPT_SAFER128

  • MCRYPT_SAFERPLUS (libmcrypt > 2.4.x only)

  • MCRYPT_SERPENT(libmcrypt > 2.4.x only)

  • MCRYPT_SERPENT_128 (libmcrypt 2.2.x only)

  • MCRYPT_SERPENT_192 (libmcrypt 2.2.x only)

  • MCRYPT_SERPENT_256 (libmcrypt 2.2.x only)

  • MCRYPT_SKIPJACK (libmcrypt > 2.4.x only)

  • MCRYPT_TEAN (libmcrypt 2.2.x only)

  • MCRYPT_THREEWAY

  • MCRYPT_TRIPLEDES (libmcrypt > 2.4.x only)

  • MCRYPT_TWOFISH (for older mcrypt 2.x versions, or mcrypt > 2.4.x )

  • MCRYPT_TWOFISH128 (TWOFISHxxx are available in newer 2.x versions, but not in the 2.4.x versions)

  • MCRYPT_TWOFISH192

  • MCRYPT_TWOFISH256

  • MCRYPT_WAKE (libmcrypt > 2.4.x only)

  • MCRYPT_XTEA (libmcrypt > 2.4.x only)

You must (in CFB and OFB mode) or can (in CBC mode) supply an initialization vector (IV) to the respective cipher function. The IV must be unique and must be the same when decrypting/encrypting. With data which is stored encrypted, you can take the output of a function of the index under which the data is stored (e.g. the MD5 key of the filename). Alternatively, you can transmit the IV together with the encrypted data (see chapter 9.3 of Applied Cryptography by Schneier (ISBN 0-471-11709-9) for a discussion of this topic).

Příklady

Mcrypt can be used to encrypt and decrypt using the above mentioned ciphers. If you linked against libmcrypt-2.2.x, the four important mcrypt commands (mcrypt_cfb(), mcrypt_cbc(), mcrypt_ecb(), and mcrypt_ofb()) can operate in both modes which are named MCRYPT_ENCRYPT and MCRYPT_DECRYPT, respectively.

Příklad 1. Encrypt an input value with TripleDES under 2.2.x in ECB mode

<?php
$key = "this is a secret key";
$input = "Let us meet at 9 o'clock at the secret place.";

$encrypted_data = mcrypt_ecb (MCRYPT_3DES, $key, $input, MCRYPT_ENCRYPT);
?>
This example will give you the encrypted data as a string in $encrypted_data.

If you linked against libmcrypt 2.4.x or 2.5.x, these functions are still available, but it is recommended that you use the advanced functions.

Příklad 2. Encrypt an input value with TripleDES under 2.4.x and higher in ECB mode

<?php
    $key = "this is a secret key";
    $input = "Let us meet at 9 o'clock at the secret place.";

    $td = mcrypt_module_open('tripledes', '', 'ecb', '');
    $iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
    mcrypt_generic_init($td, $key, $iv);
    $encrypted_data = mcrypt_generic($td, $input);
    mcrypt_generic_deinit($td);
    mcrypt_module_close($td);
?>
This example will give you the encrypted data as a string in $encrypted_data. For a full example see mcrypt_module_open().

Obsah
mcrypt_cbc -- Encrypt/decrypt data in CBC mode
mcrypt_cfb -- Encrypt/decrypt data in CFB mode
mcrypt_create_iv -- Create an initialization vector (IV) from a random source
mcrypt_decrypt -- Decrypts crypttext with given parameters
mcrypt_ecb -- Deprecated: Encrypt/decrypt data in ECB mode
mcrypt_enc_get_algorithms_name -- Returns the name of the opened algorithm
mcrypt_enc_get_block_size -- Returns the blocksize of the opened algorithm
mcrypt_enc_get_iv_size -- Returns the size of the IV of the opened algorithm
mcrypt_enc_get_key_size -- Returns the maximum supported keysize of the opened mode
mcrypt_enc_get_modes_name -- Returns the name of the opened mode
mcrypt_enc_get_supported_key_sizes -- Returns an array with the supported keysizes of the opened algorithm
mcrypt_enc_is_block_algorithm_mode -- Checks whether the encryption of the opened mode works on blocks
mcrypt_enc_is_block_algorithm -- Checks whether the algorithm of the opened mode is a block algorithm
mcrypt_enc_is_block_mode -- Checks whether the opened mode outputs blocks
mcrypt_enc_self_test -- This function runs a self test on the opened module
mcrypt_encrypt -- Encrypts plaintext with given parameters
mcrypt_generic_deinit -- This function deinitializes an encryption module
mcrypt_generic_end -- This function terminates encryption
mcrypt_generic_init -- This function initializes all buffers needed for encryption
mcrypt_generic -- This function encrypts data
mcrypt_get_block_size -- Get the block size of the specified cipher
mcrypt_get_cipher_name -- Get 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 -- Get the key size of the specified cipher
mcrypt_list_algorithms -- Get an array of all supported ciphers
mcrypt_list_modes -- Get an array of all supported modes
mcrypt_module_close -- Close the mcrypt module
mcrypt_module_get_algo_block_size -- Returns the blocksize of the specified algorithm
mcrypt_module_get_algo_key_size -- Returns the maximum supported keysize of the opened mode
mcrypt_module_get_supported_key_sizes -- Returns an array with the supported keysizes of the opened algorithm
mcrypt_module_is_block_algorithm_mode -- 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
mcrypt_ofb -- Encrypt/decrypt data in OFB mode
mdecrypt_generic -- Decrypt data

Předcházející | Domů | Další
mcal_week_of_year | Nahoru | mcrypt_cbc


mcrypt_cbc

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

mcrypt_cbc -- Encrypt/decrypt data in CBC mode

Description

string mcrypt_cbc ( int cipher, string key, string data, int mode [, string iv])

string mcrypt_cbc ( string cipher, string key, string data, int mode [, string iv])

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or higher. The mode should be either MCRYPT_ENCRYPT or MCRYPT_DECRYPT.

This function should not be used anymore, see mcrypt_generic() and mdecrypt_generic() for replacements.

Předcházející | Domů | Další
Mcrypt Encryption Functions | Nahoru | mcrypt_cfb


mcrypt_cfb

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

mcrypt_cfb -- Encrypt/decrypt data in CFB mode

Description

string mcrypt_cfb ( int cipher, string key, string data, int mode, string iv)

string mcrypt_cfb ( string cipher, string key, string data, int mode [, string iv])

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or higher. The mode should be either MCRYPT_ENCRYPT or MCRYPT_DECRYPT.

This function should not be used anymore, see mcrypt_generic() and mdecrypt_generic() for replacements.

Předcházející | Domů | Další
mcrypt_cbc | Nahoru | mcrypt_create_iv


mcrypt_create_iv

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

mcrypt_create_iv -- Create an initialization vector (IV) from a random source

Description

string mcrypt_create_iv ( int size, int source)

mcrypt_create_iv() is used to create an IV.

mcrypt_create_iv() takes two arguments, size determines the size of the IV, source specifies 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). If you use MCRYPT_RAND, make sure to call srand() before to initialize the random number generator. MCRYPT_RAND is the only one supported on Windows because Windows (of course) doesn't have /dev/random or /dev/urandom.

Příklad 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);
?>

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 loosing security.

More information can be found at http://www.ciphersbyritter.com/GLOSSARY.HTM#IV, http://fn2.freenet.edmonton.ab.ca/~jsavard/crypto/co0409.htm and in chapter 9.3 of Applied Cryptography by Schneier (ISBN 0-471-11709-9) for a discussion of this topic.

Předcházející | Domů | Další
mcrypt_cfb | Nahoru | mcrypt_decrypt


mcrypt_decrypt

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_decrypt -- Decrypts crypttext with given parameters

Description

string mcrypt_decrypt ( string cipher, string key, string data, string mode [, string iv])

mcrypt_decrypt() decrypts the data and returns the unencrypted data.

Cipher is one of the MCRYPT_ciphername constants of the name of the algorithm as string.

Key is the key with which the data is encrypted. If it's smaller that the required keysize, it is padded with '\0'.

Data is the data that will be decrypted with the given cipher and mode. If the size of the data is not n * blocksize, the data will be padded with '\0'.

Mode is one of the MCRYPT_MODE_modename constants of one of "ecb", "cbc", "cfb", "ofb", "nofb" or "stream".

The IV parameter is used for the initialisation in CBC, CFB, OFB modes, and in some algorithms in STREAM mode. If you do not supply an IV, while it is needed for an algorithm, the function issues a warning and uses an IV with all bytes set to '\0'.

Předcházející | Domů | Další
mcrypt_create_iv | Nahoru | mcrypt_ecb


mcrypt_ecb

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

mcrypt_ecb -- Deprecated: Encrypt/decrypt data in ECB mode

Description

string mcrypt_ecb ( int cipher, string key, string data, int mode)

string mcrypt_ecb ( string cipher, string key, string data, int mode [, string iv])

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or higher. The mode should be either MCRYPT_ENCRYPT or MCRYPT_DECRYPT.

This function is deprecated and should not be used anymore, see mcrypt_generic() and mdecrypt_generic() for replacements.

Předcházející | Domů | Další
mcrypt_decrypt | Nahoru | mcrypt_enc_get_algorithms_name


mcrypt_enc_get_algorithms_name

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_algorithms_name -- Returns the name of the opened algorithm

Description

string mcrypt_enc_get_algorithms_name ( resource td)

This function returns the name of the algorithm.

Příklad 1. mcrypt_enc_get_algorithms_name() example

<?php
    $td = mcrypt_module_open(MCRYPT_CAST_256, '', MCRYPT_MODE_CFB, '');
    echo mcrypt_enc_get_algorithms_name($td). "\n";

    $td = mcrypt_module_open('cast-256', '', MCRYPT_MODE_CFB, '');
    echo mcrypt_enc_get_algorithms_name($td). "\n";
?>

Prints:
CAST-256
CAST-256

Předcházející | Domů | Další
mcrypt_ecb | Nahoru | mcrypt_enc_get_block_size


mcrypt_enc_get_block_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_block_size -- Returns the blocksize of the opened algorithm

Description

int mcrypt_enc_get_block_size ( resource td)

This function returns the block size of the algorithm specified by the encryption descriptor td in bytes.

Předcházející | Domů | Další
mcrypt_enc_get_algorithms_name | Nahoru | mcrypt_enc_get_iv_size


mcrypt_enc_get_iv_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_iv_size -- Returns the size of the IV of the opened algorithm

Description

int mcrypt_enc_get_iv_size ( resource td)

This function returns the size of the iv of the algorithm specified by the encryption descriptor in bytes. If it returns '0' then the IV is ignored in the algorithm. An IV is used in cbc, cfb and ofb modes, and in some algorithms in stream mode.

Předcházející | Domů | Další
mcrypt_enc_get_block_size | Nahoru | mcrypt_enc_get_key_size


mcrypt_enc_get_key_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_key_size -- Returns the maximum supported keysize of the opened mode

Description

int mcrypt_enc_get_key_size ( resource td)

This function returns the maximum supported key size of the algorithm specified by the encryption descriptor td in bytes.

Předcházející | Domů | Další
mcrypt_enc_get_iv_size | Nahoru | mcrypt_enc_get_modes_name


mcrypt_enc_get_modes_name

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_modes_name -- Returns the name of the opened mode

Description

string mcrypt_enc_get_modes_name ( resource td)

This function returns the name of the mode.

Příklad 1. mcrypt_enc_get_modes_name() example

<?php
    $td = mcrypt_module_open (MCRYPT_CAST_256, '', MCRYPT_MODE_CFB, '');
    echo mcrypt_enc_get_modes_name($td). "\n";

    $td = mcrypt_module_open ('cast-256', '', 'ecb', '');
    echo mcrypt_enc_get_modes_name($td). "\n";
?>

Prints:

CFB
ECB

Předcházející | Domů | Další
mcrypt_enc_get_key_size | Nahoru | mcrypt_enc_get_supported_key_sizes


mcrypt_enc_get_supported_key_sizes

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_supported_key_sizes -- Returns an array with the supported keysizes of the opened algorithm

Description

array mcrypt_enc_get_supported_key_sizes ( resource td)

Returns an array with the key sizes supported by the algorithm specified by the encryption descriptor. If it returns an empty array then all key sizes between 1 and mcrypt_enc_get_key_size() are supported by the algorithm.

Příklad 1. mcrypt_enc_get_supported_key_sizes() example

<?php
    $td = mcrypt_module_open('rijndael-256', '', 'ecb', '');
    var_dump(mcrypt_enc_get_supported_key_sizes($td));
?>

This will print:

array(3) {
  [0]=>
  int(16)
  [1]=>
  int(24)
  [2]=>
  int(32)
}

Předcházející | Domů | Další
mcrypt_enc_get_modes_name | Nahoru | mcrypt_enc_is_block_algorithm_mode


mcrypt_enc_is_block_algorithm_mode

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_is_block_algorithm_mode -- Checks whether the encryption of the opened mode works on blocks

Description

bool mcrypt_enc_is_block_algorithm_mode ( resource td)

This function returns TRUE if the mode is for use with block algorithms, otherwise it returns FALSE. (e.g. FALSE for stream, and TRUE for cbc, cfb, ofb).

Předcházející | Domů | Další
mcrypt_enc_get_supported_key_sizes | Nahoru | mcrypt_enc_is_block_algorithm


mcrypt_enc_is_block_algorithm

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_is_block_algorithm -- Checks whether the algorithm of the opened mode is a block algorithm

Description

bool mcrypt_enc_is_block_algorithm ( resource td)

This function returns TRUE if the algorithm is a block algorithm, or FALSE if it is a stream algorithm.

Předcházející | Domů | Další
mcrypt_enc_is_block_algorithm_mode | Nahoru | mcrypt_enc_is_block_mode


mcrypt_enc_is_block_mode

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_is_block_mode -- Checks whether the opened mode outputs blocks

Description

bool mcrypt_enc_is_block_mode ( resource td)

This function returns TRUE if the mode outputs blocks of bytes or FALSE if it outputs bytes. (e.g. TRUE for cbc and ecb, and FALSE for cfb and stream).

Předcházející | Domů | Další
mcrypt_enc_is_block_algorithm | Nahoru | mcrypt_enc_self_test


mcrypt_enc_self_test

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_self_test -- This function runs a self test on the opened module

Description

bool mcrypt_enc_self_test ( resource td)

This function runs the self test on the algorithm specified by the descriptor td. If the self test succeeds it returns FALSE. In case of an error, it returns TRUE.

Předcházející | Domů | Další
mcrypt_enc_is_block_mode | Nahoru | mcrypt_encrypt


mcrypt_encrypt

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_encrypt -- Encrypts plaintext with given parameters

Description

string mcrypt_encrypt ( string cipher, string key, string data, string mode [, string iv])

mcrypt_encrypt() encrypts the data and returns the encrypted data.

Cipher is one of the MCRYPT_ciphername constants of the name of the algorithm as string.

Key is the key with which the data will be encrypted. If it's smaller that the required keysize, it is padded with '\0'. It is better not to use ASCII strings for keys. It is recommended to use the mhash functions to create a key from a string.

Data is the data that will be encrypted with the given cipher and mode. If the size of the data is not n * blocksize, the data will be padded with '\0'. The returned crypttext can be larger that the size of the data that is given by data.

Mode is one of the MCRYPT_MODE_modename constants of one of "ecb", "cbc", "cfb", "ofb", "nofb" or "stream".

The IV parameter is used for the initialisation in CBC, CFB, OFB modes, and in some algorithms in STREAM mode. If you do not supply an IV, while it is needed for an algorithm, the function issues a warning and uses an IV with all bytes set to '\0'.

Příklad 1. mcrypt_encrypt() Example

<?php
    $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
    $key = "This is a very secret key";
    $text = "Meet me at 11 o'clock behind the monument.";
    echo strlen($text) . "\n";

    $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv);
    echo strlen($crypttext) . "\n";
?>

The above example will print out:
42
64

See also mcrypt_module_open() for a more advanced API and an example.

Předcházející | Domů | Další
mcrypt_enc_self_test | Nahoru | mcrypt_generic_deinit


mcrypt_generic_deinit

(PHP 4 >= 4.1.1, PHP 5)

mcrypt_generic_deinit -- This function deinitializes an encryption module

Description

bool mcrypt_generic_deinit ( resource td)

This function terminates encryption specified by the encryption descriptor (td). It clears all buffers, but does not close the module. You need to call mcrypt_module_close() yourself. (But PHP does this for you at the end of the script.) Returns FALSE on error, or TRUE on success.

See for an example mcrypt_module_open() and the entry on mcrypt_generic_init().

Předcházející | Domů | Další
mcrypt_encrypt | Nahoru | mcrypt_generic_end


mcrypt_generic_end

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_generic_end -- This function terminates encryption

Description

bool mcrypt_generic_end ( resource td)

Varování

This function is deprecated, use mcrypt_generic_deinit() instead. It can cause crashes when used with mcrypt_module_close() due to multiple buffer frees.

This function terminates encryption specified by the encryption descriptor (td). Actually it clears all buffers, and closes all the modules used. Returns FALSE on error, or TRUE on success.

Předcházející | Domů | Další
mcrypt_generic_deinit | Nahoru | mcrypt_generic_init


mcrypt_generic_init

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_generic_init -- This function initializes all buffers needed for encryption

Description

int mcrypt_generic_init ( resource td, string key, string iv)

The maximum length of the key should be the one obtained by calling mcrypt_enc_get_key_size() and every value smaller than this is legal. The IV should normally have the size of the algorithms block size, but you must obtain the size by calling mcrypt_enc_get_iv_size(). IV is ignored in ECB. IV MUST exist in CFB, CBC, STREAM, nOFB and OFB modes. It needs to be random and unique (but not secret). The same IV must be used for encryption/decryption. If you do not want to use it you should set it to zeros, but this is not recommended.

The function returns a negative value on error, -3 when the key length was incorrect, -4 when there was a memory allocation problem and any other return value is an unknown error. If an error occurs a warning will be displayed accordingly.

You need to call this function before every call to mcrypt_generic() or mdecrypt_generic().

See for an example mcrypt_module_open().

Předcházející | Domů | Další
mcrypt_generic_end | Nahoru | mcrypt_generic


mcrypt_generic

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_generic -- This function encrypts data

Description

string mcrypt_generic ( resource td, string data)

This function encrypts data. The data is padded with "\0" to make sure the length of the data is n * blocksize. This function returns the encrypted data. Note that the length of the returned string can in fact be longer then the input, due to the padding of the data.

If you want to store the encrypted data in a database make sure to store the entire string as returned by mcrypt_generic, or the string will not entirely decrypt properly. If your original string is 10 characters long and the block size is 8 (use mcrypt_enc_get_block_size() to determine the blocksize), you would need at least 16 characters in your database field. Note the string returned by mdecrypt_generic() will be 16 characters as well...use rtrim()($str, "\0") to remove the padding.

If you are for example storing the data in a MySQL database remember 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.

The encryption handle should always be initialized with mcrypt_generic_init() with a key and an IV before calling this function. Where the encryption is done, you should free the encryption buffers by calling mcrypt_generic_deinit(). See mcrypt_module_open() for an example.

See also mdecrypt_generic(),
mcrypt_generic_init(), and
mcrypt_generic_deinit().

Předcházející | Domů | Další
mcrypt_generic_init | Nahoru | mcrypt_get_block_size


mcrypt_get_block_size

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

mcrypt_get_block_size -- Get the block size of the specified cipher

Description

int mcrypt_get_block_size ( int cipher)

int mcrypt_get_block_size ( string cipher, string module)

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().

This example shows how to use this function when linked against libmcrypt 2.4.x and 2.5.x.

Příklad 1. mcrypt_get_block_size() example

<?php
    echo mcrypt_get_block_size('tripledes', 'ecb');
?>

Prints:
8

See also: mcrypt_get_key_size(),
mcrypt_enc_get_block_size() and
mcrypt_encrypt().

Předcházející | Domů | Další
mcrypt_generic | Nahoru | mcrypt_get_cipher_name


mcrypt_get_cipher_name

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

mcrypt_get_cipher_name -- Get the name of the specified cipher

Description

string mcrypt_get_cipher_name ( int cipher)

string mcrypt_get_cipher_name ( string cipher)

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.

Příklad 1. mcrypt_get_cipher_name() Example

<?php
   $cipher = MCRYPT_TripleDES;

   echo mcrypt_get_cipher_name($cipher);
?>

The above example will produce:
3DES

Předcházející | Domů | Další
mcrypt_get_block_size | Nahoru | mcrypt_get_iv_size


mcrypt_get_iv_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_get_iv_size -- Returns the size of the IV belonging to a specific cipher/mode combination

Description

int mcrypt_get_iv_size ( string cipher, string mode)

mcrypt_get_iv_size() returns the size of the Initialisation Vector (IV) in bytes. On error the function returns FALSE. If the IV is ignored in the specified cipher/mode combination zero is returned.

cipher is one of the MCRYPT_ciphername constants of the name of the algorithm as string.

mode is one of the MCRYPT_MODE_modename constants or one of "ecb", "cbc", "cfb", "ofb", "nofb" or "stream". The IV is ignored in ECB mode as this mode does not require it. You will need to have the same IV (think: starting point) both at encryption and decryption stages, otherwise your encryption will fail.

It is more useful to use the mcrypt_enc_get_iv_size() function as this uses the resource returned by mcrypt_module_open().

Příklad 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";
?>

See also
mcrypt_get_block_size(),
mcrypt_enc_get_iv_size() and
mcrypt_create_iv().

Předcházející | Domů | Další
mcrypt_get_cipher_name | Nahoru | mcrypt_get_key_size


mcrypt_get_key_size

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

mcrypt_get_key_size -- Get the key size of the specified cipher

Description

int mcrypt_get_key_size ( int cipher)

int mcrypt_get_key_size ( string cipher, string module)

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).

This example shows how to use this function when linked against libmcrypt 2.4.x and 2.5.x. It is more useful to use the mcrypt_enc_get_key_size() function as this uses the resource returned by mcrypt_module_open().

Příklad 1. mcrypt_get_block_size() example

<?php
    echo mcrypt_get_key_size('tripledes', 'ecb');
?>

Prints:
24

See also: mcrypt_get_block_size(),
mcrypt_end_get_key_size() and
mcrypt_encrypt().

Předcházející | Domů | Další
mcrypt_get_iv_size | Nahoru | mcrypt_list_algorithms


mcrypt_list_algorithms

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_list_algorithms -- Get an array of all supported ciphers

Description

array mcrypt_list_algorithms ( [string lib_dir])

mcrypt_list_algorithms() is used to get an array of all supported algorithms in the lib_dir parameter.

mcrypt_list_algorithms() takes an optional lib_dir parameter which specifies the directory where all algorithms are located. If not specifies, the value of the mcrypt.algorithms_dir php.ini directive is used.

Příklad 1. mcrypt_list_algorithms() Example

<?php
    $algorithms = mcrypt_list_algorithms("/usr/local/lib/libmcrypt");

    foreach ($algorithms as $cipher) {
        echo "$cipher<br />\n";
    }
?>

The above example will produce a list with all supported algorithms in the "/usr/local/lib/libmcrypt" directory.

Předcházející | Domů | Další
mcrypt_get_key_size | Nahoru | mcrypt_list_modes


mcrypt_list_modes

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_list_modes -- Get an array of all supported modes

Description

array mcrypt_list_modes ( [string lib_dir])

mcrypt_list_modes() is used to get an array of all supported modes in the lib_dir.

mcrypt_list_modes() takes as optional parameter a directory which specifies the directory where all modes are located. If not specifies, the value of the mcrypt.modes_dir php.ini directive is used.

Příklad 1. mcrypt_list_modes() Example

<?php
    $modes = mcrypt_list_modes();

    foreach ($modes as $mode) {
        echo "$mode <br />\n";
    }
?>

The above example will produce a list with all supported algorithms in the default mode directory. If it is not set with the ini directive mcrypt.modes_dir, the default directory of mcrypt is used (which is /usr/local/lib/libmcrypt).

Předcházející | Domů | Další
mcrypt_list_algorithms | Nahoru | mcrypt_module_close


mcrypt_module_close

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_close -- Close the mcrypt module

Description

bool mcrypt_module_close ( resource td)

This function closes the specified encryption handle.

See mcrypt_module_open() for an example.

Předcházející | Domů | Další
mcrypt_list_modes | Nahoru | mcrypt_module_get_algo_block_size


mcrypt_module_get_algo_block_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_get_algo_block_size -- Returns the blocksize of the specified algorithm

Description

int mcrypt_module_get_algo_block_size ( string algorithm [, string lib_dir])

This function returns the block size of the algorithm specified in bytes. The optional lib_dir parameter can contain the location where the mode module is on the system.

Předcházející | Domů | Další
mcrypt_module_close | Nahoru | mcrypt_module_get_algo_key_size


mcrypt_module_get_algo_key_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_get_algo_key_size -- Returns the maximum supported keysize of the opened mode

Description

int mcrypt_module_get_algo_key_size ( string algorithm [, string lib_dir])

This function returns the maximum supported key size of the algorithm specified in bytes. The optional lib_dir parameter can contain the location where the mode module is on the system.

Předcházející | Domů | Další
mcrypt_module_get_algo_block_size | Nahoru | mcrypt_module_get_supported_key_sizes


mcrypt_module_get_supported_key_sizes

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_get_supported_key_sizes -- Returns an array with the supported keysizes of the opened algorithm

Description

array mcrypt_module_get_supported_key_sizes ( string algorithm [, string lib_dir])

Returns an array with the key sizes supported by the specified algorithm. If it returns an empty array then all key sizes between 1 and mcrypt_module_get_algo_key_size() are supported by the algorithm. The optional lib_dir parameter can contain the location where the mode module is on the system.

See also mcrypt_enc_get_supported_key_sizes() which is used on open encryption modules.

Předcházející | Domů | Další
mcrypt_module_get_algo_key_size | Nahoru | mcrypt_module_is_block_algorithm_mode


mcrypt_module_is_block_algorithm_mode

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_is_block_algorithm_mode -- returns if the specified module is a block algorithm or not

Description

bool mcrypt_module_is_block_algorithm_mode ( string mode [, string lib_dir])

This function returns TRUE if the mode is for use with block algorithms, otherwise it returns FALSE. (e.g. FALSE for stream, and TRUE for cbc, cfb, ofb). The optional lib_dir parameter can contain the location where the mode module is on the system.

Předcházející | Domů | Další
mcrypt_module_get_supported_key_sizes | Nahoru | mcrypt_module_is_block_algorithm


mcrypt_module_is_block_algorithm

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_is_block_algorithm -- This function checks whether the specified algorithm is a block algorithm

Description

bool mcrypt_module_is_block_algorithm ( string algorithm [, string lib_dir])

This function returns TRUE if the specified algorithm is a block algorithm, or FALSE is it is a stream algorithm. The optional lib_dir parameter can contain the location where the algorithm module is on the system.

Předcházející | Domů | Další
mcrypt_module_is_block_algorithm_mode | Nahoru | mcrypt_module_is_block_mode


mcrypt_module_is_block_mode

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_is_block_mode -- Returns if the specified mode outputs blocks or not

Description

bool mcrypt_module_is_block_mode ( string mode [, string lib_dir])

This function returns TRUE if the mode outputs blocks of bytes or FALSE if it outputs just bytes. (e.g. TRUE for cbc and ecb, and FALSE for cfb and stream). The optional lib_dir parameter can contain the location where the mode module is on the system.

Předcházející | Domů | Další
mcrypt_module_is_block_algorithm | Nahoru | mcrypt_module_open


mcrypt_module_open

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_open -- Opens the module of the algorithm and the mode to be used

Description

resource mcrypt_module_open ( string algorithm, string algorithm_directory, string mode, string mode_directory)

This function opens the module of the algorithm and the mode to be used. The name of the algorithm is specified in algorithm, e.g. "twofish" or is one of the MCRYPT_ciphername constants. The module is closed by calling mcrypt_module_close(). Normally it returns an encryption descriptor, or FALSE on error.

The algorithm_directory and mode_directory are used to locate the encryption modules. When you supply a directory name, it is used. When you set one of these to the empty string (""), the value set by the mcrypt.algorithms_dir or mcrypt.modes_dir ini-directive is used. When these are not set, the default directories that are used are the ones that were compiled in into libmcrypt (usually /usr/local/lib/libmcrypt).

Příklad 1. mcrypt_module_open() examples

<?php
    $td = mcrypt_module_open(MCRYPT_DES, '',
        MCRYPT_MODE_ECB, '/usr/lib/mcrypt-modes');

    $td = mcrypt_module_open('rijndael-256', '', 'ofb', '');
?>

The first line in the example above will try to open the DES cipher from the default directory and the EBC mode from the directory /usr/lib/mcrypt-modes. The second example uses strings as name for the cipher and mode, this only works when the extension is linked against libmcrypt 2.4.x or 2.5.x.

Příklad 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, used 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";
?>

The first line in the example above will try to open the DES cipher from the default directory and the EBC mode from the directory /usr/lib/mcrypt-modes. The second example uses strings as name for the cipher and mode, this only works when the extension is linked against libmcrypt 2.4.x or 2.5.x.

See also
mcrypt_module_close(),
mcrypt_generic(),
mdecrypt_generic(),
mcrypt_generic_init(), and
mcrypt_generic_deinit().

Předcházející | Domů | Další
mcrypt_module_is_block_mode | Nahoru | mcrypt_module_self_test


mcrypt_module_self_test

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_self_test -- This function runs a self test on the specified module

Description

bool mcrypt_module_self_test ( string algorithm [, string lib_dir])

This function runs the self test on the algorithm specified. The optional lib_dir parameter can contain the location of where the algorithm module is on the system.

The function returns TRUE if the self test succeeds, or FALSE when if fails.

Příklad 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));
?>

The above example will output:

bool(true)
bool(false)

Předcházející | Domů | Další
mcrypt_module_open | Nahoru | mcrypt_ofb


mcrypt_ofb

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

mcrypt_ofb -- Encrypt/decrypt data in OFB mode

Description

string mcrypt_ofb ( int cipher, string key, string data, int mode, string iv)

string mcrypt_ofb ( string cipher, string key, string data, int mode [, string iv])

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or higher. The mode should be either MCRYPT_ENCRYPT or MCRYPT_DECRYPT.

This function should not be used anymore, see mcrypt_generic() and mdecrypt_generic() for replacements.

Předcházející | Domů | Další
mcrypt_module_self_test | Nahoru | mdecrypt_generic


mdecrypt_generic

(PHP 4 >= 4.0.2, PHP 5)

mdecrypt_generic -- Decrypt data

Description

string mdecrypt_generic ( resource td, string data)

This function decrypts data. Note that the length of the returned string can in fact be longer then the unencrypted string, due to the padding of the data.

Příklad 1. mdecrypt_generic() example

<?php
    /* Data */
    $key = 'this is a very long key, even too long for the cipher';
    $plain_text = 'very important data';

    /* Open module, and create IV */
    $td = mcrypt_module_open('des', '', 'ecb', '');
    $key = substr($key, 0, mcrypt_enc_get_key_size($td));
    $iv_size = mcrypt_enc_get_iv_size($td);
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);

    /* Initialize encryption handle */
    if (mcrypt_generic_init($td, $key, $iv) != -1) {

        /* Encrypt data */
        $c_t = mcrypt_generic($td, $plain_text);
        mcrypt_generic_deinit($td);

        /* Reinitialize buffers for decryption */
        mcrypt_generic_init($td, $key, $iv);
        $p_t = mdecrypt_generic($td, $c_t);

        /* Clean up */
        mcrypt_generic_deinit($td);
        mcrypt_module_close($td);
    }

    if (strncmp($p_t, $plain_text, strlen($plain_text)) == 0) {
        echo "ok\n";
    } else {
        echo "error\n";
    }
?>

The above example shows how to check if the data before the encryption is the same as the data after the decryption. It is very important to reinitialize the encryption buffer with mcrypt_generic_init() before you try to decrypt the data.

The decryption handle should always be initialized with mcrypt_generic_init() with a key and an IV before calling this function. Where the encryption is done, you should free the encryption buffers by calling mcrypt_generic_deinit(). See mcrypt_module_open() for an example.

See also mcrypt_generic(),
mcrypt_generic_init(), and
mcrypt_generic_deinit().

Předcházející | Domů | Další
mcrypt_ofb | Nahoru | MCVE Payment Functions


MCVE Payment Functions

Manuál PHP
Předcházející Další

LVI. MCVE Payment Functions

Úvod

These functions interface the MCVE API (libmcve), allowing you to work directly with MCVE from your PHP scripts. MCVE is Main Street Softworks' solution to direct credit card processing for Linux / Unix ( http://www.mainstreetsoftworks.com/ ). It lets you directly address the credit card clearing houses via your *nix box, modem and/or internet connection (bypassing the need for an additional service such as Authorize.Net or Pay Flow Pro). Using the MCVE module for PHP, you can process credit cards directly through MCVE via your PHP scripts. The following references will outline the process.

Poznámka: MCVE is the replacement for RedHat's CCVS. They contracted with RedHat in late 2001 to migrate all existing clientele to the MCVE platform.

Poznámka: Toto rozšíření není k dispozici na platformách Windows.

Instalace

To enable MCVE Support in PHP, first verify your LibMCVE installation directory. You will then need to configure PHP with the --with-mcve option. If you use this option without specifying the path to your MCVE installation, PHP will attempt to look in the default LibMCVE Install location (/usr/local). If MCVE is in a non-standard location, run configure with: --with-mcve=$mcve_path, where $mcve_path is the path to your MCVE installation. Please note that MCVE support requires that $mcve_path/lib and $mcve_path/include exist, and include mcve.h under the include directory and libmcve.so and/or libmcve.a under the lib directory.

Since MCVE has true server/client separation, there are no additional requirements for running PHP with MCVE support. To test your MCVE extension in PHP, you may connect to testbox.mcve.com on port 8333 for IP, or port 8444 for SSL using the MCVE PHP API. Use 'vitale' for your username, and 'test' for your password. Additional information about test facilities are available at http://www.mainstreetsoftworks.com/.

Viz také

Additional documentation about MCVE's PHP API can be found at http://www.mainstreetsoftworks.com/docs/phpapi.pdf. Main Street's documentation is complete and should be the primary reference for functions.

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

MC_TRANTYPE (integer)

MC_USERNAME (integer)

MC_PASSWORD (integer)

MC_ACCOUNT (integer)

MC_TRACKDATA (integer)

MC_EXPDATE (integer)

MC_STREET (integer)

MC_ZIP (integer)

MC_CV (integer)

MC_COMMENTS (integer)

MC_CLERKID (integer)

MC_STATIONID (integer)

MC_APPRCODE (integer)

MC_AMOUNT (integer)

MC_PTRANNUM (integer)

MC_TTID (integer)

MC_USER (integer)

MC_PWD (integer)

MC_ACCT (integer)

MC_BDATE (integer)

MC_EDATE (integer)

MC_BATCH (integer)

MC_FILE (integer)

MC_ADMIN (integer)

MC_AUDITTYPE (integer)

MC_CUSTOM (integer)

MC_EXAMOUNT (integer)

MC_EXCHARGES (integer)

MC_RATE (integer)

MC_RENTERNAME (integer)

MC_RETURNCITY (integer)

MC_RETURNSTATE (integer)

MC_RETURNLOCATION (integer)

MC_PRIORITY (integer)

MC_INQUIRY (integer)

MC_CARDTYPES (integer)

MC_SUB (integer)

MC_MARKER (integer)

MC_DEVICETYPE (integer)

MC_ERRORCODE (integer)

MC_NEWBATCH (integer)

MC_CURR (integer)

MC_DESCMERCH (integer)

MC_DESCLOC (integer)

MC_ORIGTYPE (integer)

MC_PIN (integer)

MC_VOIDORIGTYPE (integer)

MC_TIMESTAMP (integer)

MC_PRIO_HIGH (integer)

MC_PRIO_NORMAL (integer)

MC_PRIO_LOW (integer)

MC_USER_PROC (integer)

MC_USER_USER (integer)

MC_USER_PWD (integer)

MC_USER_INDCODE (integer)

MC_USER_MERCHID (integer)

MC_USER_BANKID (integer)

MC_USER_TERMID (integer)

MC_USER_CLIENTNUM (integer)

MC_USER_STOREID (integer)

MC_USER_AGENTID (integer)

MC_USER_CHAINID (integer)

MC_USER_ZIPCODE (integer)

MC_USER_TIMEZONE (integer)

MC_USER_MERCHCAT (integer)

MC_USER_MERNAME (integer)

MC_USER_MERCHLOC (integer)

MC_USER_STATECODE (integer)

MC_USER_PHONE (integer)

MC_USER_SUB (integer)

MC_USER_CARDTYPES (integer)

MC_USER_MODE (integer)

MC_USER_VNUMBER (integer)

MC_USER_ROUTINGID (integer)

MC_USER_PPROPERTY (integer)

MC_USER_PID (integer)

MC_USER_PIDPWD (integer)

MC_USER_SMID (integer)

MC_USER_SMIDPWD (integer)

MC_USER_USDDIV (integer)

MC_USER_AUDDIV (integer)

MC_USER_DKKDIV (integer)

MC_USER_GBPDIV (integer)

MC_USER_HKDDIV (integer)

MC_USER_JPYDIV (integer)

MC_USER_NZDDIV (integer)

MC_USER_NOKDIV (integer)

MC_USER_SGDDIV (integer)

MC_USER_ZARDIV (integer)

MC_USER_SEKDIV (integer)

MC_USER_CHFDIV (integer)

MC_USER_CADDIV (integer)

MC_USER_DIVNUM (integer)

MC_CARD_VISA (integer)

MC_CARD_MC (integer)

MC_CARD_AMEX (integer)

MC_CARD_DISC (integer)

MC_CARD_JCB (integer)

MC_CARD_CB (integer)

MC_CARD_DC (integer)

MC_CARD_GIFT (integer)

MC_CARD_OTHER (integer)

MC_CARD_ALL (integer)

MC_MODE_AUTH (integer)

MC_MODE_SETTLE (integer)

MC_MODE_BOTH (integer)

MC_MODE_ALL (integer)

MC_EXCHARGES_REST (integer)

MC_EXCHARGES_GIFT (integer)

MC_EXCHARGES_MINI (integer)

MC_EXCHARGES_TELE (integer)

MC_EXCHARGES_OTHER (integer)

MC_EXCHARGES_LAUND (integer)

MC_EXCHARGES_NONE (integer)

MC_EXCHARGES_GAS (integer)

MC_EXCHARGES_MILE (integer)

MC_EXCHARGES_LATE (integer)

MC_EXCHARGES_1WAY (integer)

MC_EXCHARGES_VIOL (integer)

MC_TRAN_SALE (integer)

MC_TRAN_REDEMPTION (integer)

MC_TRAN_PREAUTH (integer)

MC_TRAN_VOID (integer)

MC_TRAN_PREAUTHCOMPLETE (integer)

MC_TRAN_FORCE (integer)

MC_TRAN_OVERRIDE (integer)

MC_TRAN_RETURN (integer)

MC_TRAN_RELOAD (integer)

MC_TRAN_CREDIT (integer)

MC_TRAN_SETTLE (integer)

MC_TRAN_INCREMENTAL (integer)

MC_TRAN_REVERSAL (integer)

MC_TRAN_ACTIVATE (integer)

MC_TRAN_BALANCEINQ (integer)

MC_TRAN_CASHOUT (integer)

MC_TRAN_TOREVERSAL (integer)

MC_TRAN_SETTLERFR (integer)

MC_TRAN_ISSUE (integer)

MC_TRAN_TIP (integer)

MC_TRAN_MERCHRETURN (integer)

MC_TRAN_IVRREQ (integer)

MC_TRAN_IVRRESP (integer)

MC_TRAN_ADMIN (integer)

MC_TRAN_PING (integer)

MC_TRAN_CHKPWD (integer)

MC_TRAN_CHNGPWD (integer)

MC_TRAN_LISTSTATS (integer)

MC_TRAN_LISTUSERS (integer)

MC_TRAN_GETUSERINFO (integer)

MC_TRAN_ADDUSER (integer)

MC_TRAN_EDITUSER (integer)

MC_TRAN_DELUSER (integer)

MC_TRAN_ENABLEUSER (integer)

MC_TRAN_DISABLEUSER (integer)

MC_TRAN_IMPORT (integer)

MC_TRAN_EXPORT (integer)

MC_TRAN_ERRORLOG (integer)

MC_TRAN_CLEARERRORLOG (integer)

MC_TRAN_GETSUBACCTS (integer)

MC_ADMIN_GUT (integer)

MC_ADMIN_GL (integer)

MC_ADMIN_GFT (integer)

MC_ADMIN_BT (integer)

MC_ADMIN_UB (integer)

MC_ADMIN_QC (integer)

MC_ADMIN_RS (integer)

MC_ADMIN_CTH (integer)

MC_ADMIN_CFH (integer)

MC_ADMIN_FORCESETTLE (integer)

MC_ADMIN_SETBATCHNUM (integer)

MC_ADMIN_RENUMBERBATCH (integer)

MC_ADMIN_FIELDEDIT (integer)

MC_ADMIN_CLOSEBATCH (integer)

MCVE_UNUSED (integer)

MCVE_NEW (integer)

MCVE_PENDING (integer)

MCVE_DONE (integer)

MCVE_GOOD (integer)

MCVE_BAD (integer)

MCVE_STREET (integer)

MCVE_ZIP (integer)

MCVE_UNKNOWN (integer)

MCVE_ERROR (integer)

MCVE_FAIL (integer)

MCVE_SUCCESS (integer)

MCVE_AUTH (integer)

MCVE_DENY (integer)

MCVE_CALL (integer)

MCVE_DUPL (integer)

MCVE_PKUP (integer)

MCVE_RETRY (integer)

MCVE_SETUP (integer)

MCVE_TIMEOUT (integer)

MCVE_SALE (integer)

MCVE_PREAUTH (integer)

MCVE_FORCE (integer)

MCVE_OVERRIDE (integer)

MCVE_RETURN (integer)

MCVE_SETTLE (integer)

MCVE_PROC (integer)

MCVE_USER (integer)

MCVE_PWD (integer)

MCVE_INDCODE (integer)

MCVE_MERCHID (integer)

MCVE_BANKID (integer)

MCVE_TERMID (integer)

MCVE_CLIENTNUM (integer)

MCVE_STOREID (integer)

MCVE_AGENTID (integer)

MCVE_CHAINID (integer)

MCVE_ZIPCODE (integer)

MCVE_TIMEZONE (integer)

MCVE_MERCHCAT (integer)

MCVE_MERNAME (integer)

MCVE_MERCHLOC (integer)

MCVE_STATECODE (integer)

MCVE_SERVICEPHONE (integer)

Obsah
mcve_adduser -- Add an MCVE user using usersetup structure
mcve_adduserarg -- Add a value to user configuration structure
mcve_bt -- Get unsettled batch totals
mcve_checkstatus -- Check to see if a transaction has completed
mcve_chkpwd -- Verify Password
mcve_chngpwd -- Change the system administrator's password
mcve_completeauthorizations -- Number of complete authorizations in queue, returning an array of their identifiers
mcve_connect -- Establish the connection to MCVE
mcve_connectionerror -- Get a textual representation of why a connection failed
mcve_deleteresponse -- Delete specified transaction from MCVE_CONN structure
mcve_deletetrans -- Delete specified transaction from MCVE_CONN structure
mcve_deleteusersetup -- Deallocate data associated with usersetup structure
mcve_deluser -- Delete an MCVE user account
mcve_destroyconn -- Destroy the connection and MCVE_CONN structure
mcve_destroyengine -- Free memory associated with IP/SSL connectivity
mcve_disableuser -- Disable an active MCVE user account
mcve_edituser -- Edit MCVE user using usersetup structure
mcve_enableuser -- Enable an inactive MCVE user account
mcve_force -- Send a FORCE to MCVE. (typically, a phone-authorization)
mcve_getcell -- Get a specific cell from a comma delimited response by column name
mcve_getcellbynum -- Get a specific cell from a comma delimited response by column number
mcve_getcommadelimited -- Get the RAW comma delimited data returned from MCVE
mcve_getheader -- Get the name of the column in a comma-delimited response
mcve_getuserarg -- Grab a value from usersetup structure
mcve_getuserparam -- Get a user response parameter
mcve_gft -- Audit MCVE for Failed transactions
mcve_gl -- Audit MCVE for settled transactions
mcve_gut -- Audit MCVE for Unsettled Transactions
mcve_initconn -- Create and initialize an MCVE_CONN structure
mcve_initengine -- Ready the client for IP/SSL Communication
mcve_initusersetup -- Initialize structure to store user data
mcve_iscommadelimited -- Checks to see if response is comma delimited
mcve_liststats -- List statistics for all users on MCVE system
mcve_listusers -- List all users on MCVE system
mcve_maxconntimeout -- The maximum amount of time the API will attempt a connection to MCVE
mcve_monitor -- Perform communication with MCVE (send/receive data) Non-blocking
mcve_numcolumns -- Number of columns returned in a comma delimited response
mcve_numrows -- Number of rows returned in a comma delimited response
mcve_override -- Send an OVERRIDE to MCVE
mcve_parsecommadelimited -- Parse the comma delimited response so mcve_getcell, etc will work
mcve_ping -- Send a ping request to MCVE
mcve_preauth -- Send a PREAUTHORIZATION to MCVE
mcve_preauthcompletion -- Complete a PREAUTHORIZATION... Ready it for settlement
mcve_qc -- Audit MCVE for a list of transactions in the outgoing queue
mcve_responseparam -- Get a custom response parameter
mcve_return -- Issue a RETURN or CREDIT to MCVE
mcve_returncode -- Grab the exact return code from the transaction
mcve_returnstatus -- Check to see if the transaction was successful
mcve_sale -- Send a SALE to MCVE
mcve_setblocking -- Set blocking/non-blocking mode for connection
mcve_setdropfile -- Set the connection method to Drop-File
mcve_setip -- Set the connection method to IP
mcve_setssl_files -- Set certificate key files and certificates if server requires client certificate verification
mcve_setssl -- Set the connection method to SSL
mcve_settimeout -- Set maximum transaction time (per trans)
mcve_settle -- Issue a settlement command to do a batch deposit
mcve_text_avs -- Get a textual representation of the return_avs
mcve_text_code -- Get a textual representation of the return_code
mcve_text_cv -- Get a textual representation of the return_cv
mcve_transactionauth -- Get the authorization number returned for the transaction (alpha-numeric)
mcve_transactionavs -- Get the Address Verification return status
mcve_transactionbatch -- Get the batch number associated with the transaction
mcve_transactioncv -- Get the CVC2/CVV2/CID return status
mcve_transactionid -- Get the unique system id for the transaction
mcve_transactionitem -- Get the ITEM number in the associated batch for this transaction
mcve_transactionssent -- Check to see if outgoing buffer is clear
mcve_transactiontext -- Get verbiage (text) return from MCVE or processing institution
mcve_transinqueue -- Number of transactions in client-queue
mcve_transnew -- Start a new transaction
mcve_transparam -- Add a parameter to a transaction
mcve_transsend -- Finalize and send the transaction
mcve_ub -- Get a list of all Unsettled batches
mcve_uwait -- Wait x microsecs
mcve_verifyconnection -- Set whether or not to PING upon connect to verify connection
mcve_verifysslcert -- Set whether or not to verify the server ssl certificate
mcve_void -- VOID a transaction in the settlement queue

Předcházející | Domů | Další
mdecrypt_generic | Nahoru | mcve_adduser


mcve_adduser

(PHP 4 >= 4.2.0, PHP 5)

mcve_adduser -- Add an MCVE user using usersetup structure

Description

int mcve_adduser ( resource conn, string admin_password, int usersetup)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
MCVE Payment Functions | Nahoru | mcve_adduserarg


mcve_adduserarg

(PHP 4 >= 4.2.0, PHP 5)

mcve_adduserarg -- Add a value to user configuration structure

Description

int mcve_adduserarg ( resource usersetup, int argtype, string argval)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_adduser | Nahoru | mcve_bt


mcve_bt

(PHP 4 >= 4.2.0, PHP 5)

mcve_bt -- Get unsettled batch totals

Description

int mcve_bt ( resource conn, string username, string password)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_adduserarg | Nahoru | mcve_checkstatus


mcve_checkstatus

(PHP 4 >= 4.2.0, PHP 5)

mcve_checkstatus -- Check to see if a transaction has completed

Description

int mcve_checkstatus ( resource conn, int identifier)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_bt | Nahoru | mcve_chkpwd


mcve_chkpwd

(PHP 4 >= 4.2.0, PHP 5)

mcve_chkpwd -- Verify Password

Description

int mcve_chkpwd ( resource conn, string username, string password)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_checkstatus | Nahoru | mcve_chngpwd


mcve_chngpwd

(PHP 4 >= 4.2.0, PHP 5)

mcve_chngpwd -- Change the system administrator's password

Description

int mcve_chngpwd ( resource conn, string admin_password, string new_password)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_chkpwd | Nahoru | mcve_completeauthorizations


mcve_completeauthorizations

(PHP 4 >= 4.2.0, PHP 5)

mcve_completeauthorizations -- Number of complete authorizations in queue, returning an array of their identifiers

Description

int mcve_completeauthorizations ( resource conn, int &array)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_chngpwd | Nahoru | mcve_connect


mcve_connect

(PHP 4 >= 4.2.0, PHP 5)

mcve_connect -- Establish the connection to MCVE

Description

int mcve_connect ( resource conn)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_completeauthorizations | Nahoru | mcve_connectionerror


mcve_connectionerror

(PHP 4 >= 4.3.0, PHP 5)

mcve_connectionerror -- Get a textual representation of why a connection failed

Description

string mcve_connectionerror ( resource conn)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_connect | Nahoru | mcve_deleteresponse


mcve_deleteresponse

(PHP 4 >= 4.2.0, PHP 5)

mcve_deleteresponse -- Delete specified transaction from MCVE_CONN structure

Description

bool mcve_deleteresponse ( resource conn, int identifier)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_connectionerror | Nahoru | mcve_deletetrans


mcve_deletetrans

(PHP 4 >= 4.3.0, PHP 5)

mcve_deletetrans -- Delete specified transaction from MCVE_CONN structure

Description

bool mcve_deletetrans ( resource conn, int identifier)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_deleteresponse | Nahoru | mcve_deleteusersetup


mcve_deleteusersetup

(PHP 4 >= 4.2.0, PHP 5)

mcve_deleteusersetup -- Deallocate data associated with usersetup structure

Description

void mcve_deleteusersetup ( resource usersetup)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_deletetrans | Nahoru | mcve_deluser


mcve_deluser

(PHP 4 >= 4.2.0, PHP 5)

mcve_deluser -- Delete an MCVE user account

Description

int mcve_deluser ( resource conn, string admin_password, string username)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_deleteusersetup | Nahoru | mcve_destroyconn


mcve_destroyconn

(PHP 4 >= 4.2.0, PHP 5)

mcve_destroyconn -- Destroy the connection and MCVE_CONN structure

Description

void mcve_destroyconn ( resource conn)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_deluser | Nahoru | mcve_destroyengine


mcve_destroyengine

(PHP 4 >= 4.2.0, PHP 5)

mcve_destroyengine -- Free memory associated with IP/SSL connectivity

Description

void mcve_destroyengine ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_destroyconn | Nahoru | mcve_disableuser


mcve_disableuser

(PHP 4 >= 4.2.0, PHP 5)

mcve_disableuser -- Disable an active MCVE user account

Description

int mcve_disableuser ( resource conn, string admin_password, string username)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_destroyengine | Nahoru | mcve_edituser


mcve_edituser

(PHP 4 >= 4.2.0, PHP 5)

mcve_edituser -- Edit MCVE user using usersetup structure

Description

int mcve_edituser ( resource conn, string admin_password, int usersetup)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_disableuser | Nahoru | mcve_enableuser


mcve_enableuser

(PHP 4 >= 4.2.0, PHP 5)

mcve_enableuser -- Enable an inactive MCVE user account

Description

int mcve_enableuser ( resource conn, string admin_password, string username)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_edituser | Nahoru | mcve_force


mcve_force

(PHP 4 >= 4.2.0, PHP 5)

mcve_force -- Send a FORCE to MCVE. (typically, a phone-authorization)

Description

int mcve_force ( resource conn, string username, string password, string trackdata, string account, string expdate, float amount, string authcode, string comments, string clerkid, string stationid, int ptrannum)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_enableuser | Nahoru | mcve_getcell


mcve_getcell

(PHP 4 >= 4.2.0, PHP 5)

mcve_getcell -- Get a specific cell from a comma delimited response by column name

Description

string mcve_getcell ( resource conn, int identifier, string column, int row)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_force | Nahoru | mcve_getcellbynum


mcve_getcellbynum

(PHP 4 >= 4.2.0, PHP 5)

mcve_getcellbynum -- Get a specific cell from a comma delimited response by column number

Description

string mcve_getcellbynum ( resource conn, int identifier, int column, int row)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_getcell | Nahoru | mcve_getcommadelimited


mcve_getcommadelimited

(PHP 4 >= 4.2.0, PHP 5)

mcve_getcommadelimited -- Get the RAW comma delimited data returned from MCVE

Description

string mcve_getcommadelimited ( resource conn, int identifier)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_getcellbynum | Nahoru | mcve_getheader


mcve_getheader

(PHP 4 >= 4.2.0, PHP 5)

mcve_getheader -- Get the name of the column in a comma-delimited response

Description

string mcve_getheader ( resource conn, int identifier, int column_num)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_getcommadelimited | Nahoru | mcve_getuserarg


mcve_getuserarg

(PHP 4 >= 4.2.0, PHP 5)

mcve_getuserarg -- Grab a value from usersetup structure

Description

string mcve_getuserarg ( resource usersetup, int argtype)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_getheader | Nahoru | mcve_getuserparam


mcve_getuserparam

(PHP 4 >= 4.3.0, PHP 5)

mcve_getuserparam -- Get a user response parameter

Description

string mcve_getuserparam ( resource conn, long identifier, int key)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_getuserarg | Nahoru | mcve_gft


mcve_gft

(PHP 4 >= 4.2.0, PHP 5)

mcve_gft -- Audit MCVE for Failed transactions

Description

int mcve_gft ( resource conn, string username, string password, int type, string account, string clerkid, string stationid, string comments, int ptrannum, string startdate, string enddate)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_getuserparam | Nahoru | mcve_gl


mcve_gl

(PHP 4 >= 4.2.0, PHP 5)

mcve_gl -- Audit MCVE for settled transactions

Description

int mcve_gl ( int conn, string username, string password, int type, string account, string batch, string clerkid, string stationid, string comments, int ptrannum, string startdate, string enddate)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_gft | Nahoru | mcve_gut


mcve_gut

(PHP 4 >= 4.2.0, PHP 5)

mcve_gut -- Audit MCVE for Unsettled Transactions

Description

int mcve_gut ( resource conn, string username, string password, int type, string account, string clerkid, string stationid, string comments, int ptrannum, string startdate, string enddate)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_gl | Nahoru | mcve_initconn


mcve_initconn

(PHP 4 >= 4.2.0, PHP 5)

mcve_initconn -- Create and initialize an MCVE_CONN structure

Description

resource mcve_initconn ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_gut | Nahoru | mcve_initengine


mcve_initengine

(PHP 4 >= 4.2.0, PHP 5)

mcve_initengine -- Ready the client for IP/SSL Communication

Description

int mcve_initengine ( string location)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_initconn | Nahoru | mcve_initusersetup


mcve_initusersetup

(PHP 4 >= 4.2.0, PHP 5)

mcve_initusersetup -- Initialize structure to store user data

Description

resource mcve_initusersetup ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_initengine | Nahoru | mcve_iscommadelimited


mcve_iscommadelimited

(PHP 4 >= 4.2.0, PHP 5)

mcve_iscommadelimited -- Checks to see if response is comma delimited

Description

int mcve_iscommadelimited ( resource conn, int identifier)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_initusersetup | Nahoru | mcve_liststats


mcve_liststats

(PHP 4 >= 4.2.0, PHP 5)

mcve_liststats -- List statistics for all users on MCVE system

Description

int mcve_liststats ( resource conn, string admin_password)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_iscommadelimited | Nahoru | mcve_listusers


mcve_listusers

(PHP 4 >= 4.2.0, PHP 5)

mcve_listusers -- List all users on MCVE system

Description

int mcve_listusers ( resource conn, string admin_password)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_liststats | Nahoru | mcve_maxconntimeout


mcve_maxconntimeout

(PHP 4 >= 4.3.0, PHP 5)

mcve_maxconntimeout -- The maximum amount of time the API will attempt a connection to MCVE

Description

bool mcve_maxconntimeout ( resource conn, int secs)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_listusers | Nahoru | mcve_monitor


mcve_monitor

(PHP 4 >= 4.2.0, PHP 5)

mcve_monitor -- Perform communication with MCVE (send/receive data) Non-blocking

Description

int mcve_monitor ( resource conn)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_maxconntimeout | Nahoru | mcve_numcolumns


mcve_numcolumns

(PHP 4 >= 4.2.0, PHP 5)

mcve_numcolumns -- Number of columns returned in a comma delimited response

Description

int mcve_numcolumns ( resource conn, int identifier)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_monitor | Nahoru | mcve_numrows


mcve_numrows

(PHP 4 >= 4.2.0, PHP 5)

mcve_numrows -- Number of rows returned in a comma delimited response

Description

int mcve_numrows ( resource conn, int identifier)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_numcolumns | Nahoru | mcve_override


mcve_override

(PHP 4 >= 4.2.0, PHP 5)

mcve_override -- Send an OVERRIDE to MCVE

Description

int mcve_override ( resource conn, string username, string password, string trackdata, string account, string expdate, float amount, string street, string zip, string cv, string comments, string clerkid, string stationid, int ptrannum)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_numrows | Nahoru | mcve_parsecommadelimited


mcve_parsecommadelimited

(PHP 4 >= 4.2.0, PHP 5)

mcve_parsecommadelimited -- Parse the comma delimited response so mcve_getcell, etc will work

Description

int mcve_parsecommadelimited ( resource conn, int identifier)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_override | Nahoru | mcve_ping


mcve_ping

(PHP 4 >= 4.3.0, PHP 5)

mcve_ping -- Send a ping request to MCVE

Description

int mcve_ping ( resource conn)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_parsecommadelimited | Nahoru | mcve_preauth


mcve_preauth

(PHP 4 >= 4.2.0, PHP 5)

mcve_preauth -- Send a PREAUTHORIZATION to MCVE

Description

int mcve_preauth ( resource conn, string username, string password, string trackdata, string account, string expdate, float amount, string street, string zip, string cv, string comments, string clerkid, string stationid, int ptrannum)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_ping | Nahoru | mcve_preauthcompletion


mcve_preauthcompletion

(PHP 4 >= 4.2.0, PHP 5)

mcve_preauthcompletion -- Complete a PREAUTHORIZATION... Ready it for settlement

Description

int mcve_preauthcompletion ( resource conn, string username, string password, float finalamount, int sid, int ptrannum)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_preauth | Nahoru | mcve_qc


mcve_qc

(PHP 4 >= 4.2.0, PHP 5)

mcve_qc -- Audit MCVE for a list of transactions in the outgoing queue

Description

int mcve_qc ( resource conn, string username, string password, string clerkid, string stationid, string comments, int ptrannum)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_preauthcompletion | Nahoru | mcve_responseparam


mcve_responseparam

(PHP 4 >= 4.3.0, PHP 5)

mcve_responseparam -- Get a custom response parameter

Description

string mcve_responseparam ( resource conn, long identifier, string key)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_qc | Nahoru | mcve_return


mcve_return

(PHP 4 >= 4.2.0, PHP 5)

mcve_return -- Issue a RETURN or CREDIT to MCVE

Description

int mcve_return ( int conn, string username, string password, string trackdata, string account, string expdate, float amount, string comments, string clerkid, string stationid, int ptrannum)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_responseparam | Nahoru | mcve_returncode


mcve_returncode

(PHP 4 >= 4.2.0, PHP 5)

mcve_returncode -- Grab the exact return code from the transaction

Description

int mcve_returncode ( resource conn, int identifier)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_return | Nahoru | mcve_returnstatus


mcve_returnstatus

(PHP 4 >= 4.2.0, PHP 5)

mcve_returnstatus -- Check to see if the transaction was successful

Description

int mcve_returnstatus ( resource conn, int identifier)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_returncode | Nahoru | mcve_sale


mcve_sale

(PHP 4 >= 4.2.0, PHP 5)

mcve_sale -- Send a SALE to MCVE

Description

int mcve_sale ( resource conn, string username, string password, string trackdata, string account, string expdate, float amount, string street, string zip, string cv, string comments, string clerkid, string stationid, int ptrannum)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_returnstatus | Nahoru | mcve_setblocking


mcve_setblocking

(PHP 4 >= 4.3.0, PHP 5)

mcve_setblocking -- Set blocking/non-blocking mode for connection

Description

int mcve_setblocking ( resource conn, int tf)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_sale | Nahoru | mcve_setdropfile


mcve_setdropfile

(PHP 4 >= 4.2.0, PHP 5)

mcve_setdropfile -- Set the connection method to Drop-File

Description

int mcve_setdropfile ( resource conn, string directory)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_setblocking | Nahoru | mcve_setip


mcve_setip

(PHP 4 >= 4.2.0, PHP 5)

mcve_setip -- Set the connection method to IP

Description

int mcve_setip ( resource conn, string host, int port)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_setdropfile | Nahoru | mcve_setssl_files


mcve_setssl_files

(PHP 4 >= 4.3.3, PHP 5)

mcve_setssl_files -- Set certificate key files and certificates if server requires client certificate verification

Description

int mcve_setssl_files ( string sslkeyfile, string sslcertfile)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_setip | Nahoru | mcve_setssl


mcve_setssl

(PHP 4 >= 4.2.0, PHP 5)

mcve_setssl -- Set the connection method to SSL

Description

int mcve_setssl ( resource conn, string host, int port)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_setssl_files | Nahoru | mcve_settimeout


mcve_settimeout

(PHP 4 >= 4.2.0, PHP 5)

mcve_settimeout -- Set maximum transaction time (per trans)

Description

int mcve_settimeout ( resource conn, int seconds)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_setssl | Nahoru | mcve_settle


mcve_settle

(PHP 4 >= 4.2.0, PHP 5)

mcve_settle -- Issue a settlement command to do a batch deposit

Description

int mcve_settle ( resource conn, string username, string password, string batch)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_settimeout | Nahoru | mcve_text_avs


mcve_text_avs

(PHP 4 >= 4.3.0, PHP 5)

mcve_text_avs -- Get a textual representation of the return_avs

Description

string mcve_text_avs ( string code)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_settle | Nahoru | mcve_text_code


mcve_text_code

(PHP 4 >= 4.3.0, PHP 5)

mcve_text_code -- Get a textual representation of the return_code

Description

string mcve_text_code ( string code)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_text_avs | Nahoru | mcve_text_cv


mcve_text_cv

(PHP 4 >= 4.3.0, PHP 5)

mcve_text_cv -- Get a textual representation of the return_cv

Description

string mcve_text_cv ( int code)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_text_code | Nahoru | mcve_transactionauth


mcve_transactionauth

(PHP 4 >= 4.2.0, PHP 5)

mcve_transactionauth -- Get the authorization number returned for the transaction (alpha-numeric)

Description

string mcve_transactionauth ( resource conn, int identifier)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_text_cv | Nahoru | mcve_transactionavs


mcve_transactionavs

(PHP 4 >= 4.2.0, PHP 5)

mcve_transactionavs -- Get the Address Verification return status

Description

int mcve_transactionavs ( resource conn, int identifier)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_transactionauth | Nahoru | mcve_transactionbatch


mcve_transactionbatch

(PHP 4 >= 4.2.0, PHP 5)

mcve_transactionbatch -- Get the batch number associated with the transaction

Description

int mcve_transactionbatch ( resource conn, int identifier)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_transactionavs | Nahoru | mcve_transactioncv


mcve_transactioncv

(PHP 4 >= 4.2.0, PHP 5)

mcve_transactioncv -- Get the CVC2/CVV2/CID return status

Description

int mcve_transactioncv ( resource conn, int identifier)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_transactionbatch | Nahoru | mcve_transactionid


mcve_transactionid

(PHP 4 >= 4.2.0, PHP 5)

mcve_transactionid -- Get the unique system id for the transaction

Description

int mcve_transactionid ( resource conn, int identifier)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_transactioncv | Nahoru | mcve_transactionitem


mcve_transactionitem

(PHP 4 >= 4.2.0, PHP 5)

mcve_transactionitem -- Get the ITEM number in the associated batch for this transaction

Description

int mcve_transactionitem ( resource conn, int identifier)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_transactionid | Nahoru | mcve_transactionssent


mcve_transactionssent

(PHP 4 >= 4.2.0, PHP 5)

mcve_transactionssent -- Check to see if outgoing buffer is clear

Description

int mcve_transactionssent ( resource conn)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_transactionitem | Nahoru | mcve_transactiontext


mcve_transactiontext

(PHP 4 >= 4.2.0, PHP 5)

mcve_transactiontext -- Get verbiage (text) return from MCVE or processing institution

Description

string mcve_transactiontext ( resource conn, int identifier)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_transactionssent | Nahoru | mcve_transinqueue


mcve_transinqueue

(PHP 4 >= 4.2.0, PHP 5)

mcve_transinqueue -- Number of transactions in client-queue

Description

int mcve_transinqueue ( resource conn)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_transactiontext | Nahoru | mcve_transnew


mcve_transnew

(PHP 4 >= 4.3.0, PHP 5)

mcve_transnew -- Start a new transaction

Description

int mcve_transnew ( resource conn)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_transinqueue | Nahoru | mcve_transparam


mcve_transparam

(PHP 4 >= 4.3.0, PHP 5)

mcve_transparam -- Add a parameter to a transaction

Description

int mcve_transparam ( resource conn, long identifier, int key)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_transnew | Nahoru | mcve_transsend


mcve_transsend

(PHP 4 >= 4.3.0, PHP 5)

mcve_transsend -- Finalize and send the transaction

Description

int mcve_transsend ( resource conn, long identifier)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_transparam | Nahoru | mcve_ub


mcve_ub

(PHP 4 >= 4.2.0, PHP 5)

mcve_ub -- Get a list of all Unsettled batches

Description

int mcve_ub ( resource conn, string username, string password)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_transsend | Nahoru | mcve_uwait


mcve_uwait

(PHP 4 >= 4.3.0, PHP 5)

mcve_uwait -- Wait x microsecs

Description

int mcve_uwait ( long microsecs)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_ub | Nahoru | mcve_verifyconnection


mcve_verifyconnection

(PHP 4 >= 4.3.0, PHP 5)

mcve_verifyconnection -- Set whether or not to PING upon connect to verify connection

Description

bool mcve_verifyconnection ( resource conn, int tf)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_uwait | Nahoru | mcve_verifysslcert


mcve_verifysslcert

(PHP 4 >= 4.3.0, PHP 5)

mcve_verifysslcert -- Set whether or not to verify the server ssl certificate

Description

bool mcve_verifysslcert ( resource conn, int tf)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_verifyconnection | Nahoru | mcve_void


mcve_void

(PHP 4 >= 4.2.0, PHP 5)

mcve_void -- VOID a transaction in the settlement queue

Description

int mcve_void ( resource conn, string username, string password, int sid, int ptrannum)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mcve_verifysslcert | Nahoru | Mhash funkce


Mhash funkce

Manuál PHP
Předcházející Další

LVII. Mhash funkce

Úvod

Tyto funkce jsou určeny pro práci s mhash. Mhash lze použít pro vytvoření kontrolních součtů, otisků zpráv, autentizačních kódů zpráv atd.

Toto je rozhraní ke knihovně mhash. mhash podporuje širokou škálu hash algoritmů jako např. MD5, SHA1, GOST a mnoho jiných. Kompletní seznam podporovaných hash algoritmů naleznete v dokumentaci knohovny mhash. Obecné pravidlo je, že k hash algoritmu lze z PHP přistupovat přes MHASH_NÁZEVHASHE. Například pro hash TIGER použijte PHP konstantu MHASH_TIGER.

Požadavky

Pokud chcete tyto funkce používat, stáhněte si mhash distribuci z jeho webových stránek a postupujte podle přiložených instrukcí k instalaci.

Instalace

K aktivaci tohoto modulu budete muset zkompilovat PHP s volbou --with-mhash. DIR je instalační adresář mhash.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

Zde je seznam hashů podporovaných mhashem v současné době. Pokud zde není některý hash jmenován, ale v dokumentaci mhashe je uveden jako podporovaný, můžete bezpečně předpokládat, že je tato dokumentace zastaralá.

  • MHASH_MD5

  • MHASH_SHA1

  • MHASH_HAVAL256

  • MHASH_HAVAL192

  • MHASH_HAVAL160

  • MHASH_HAVAL128

  • MHASH_RIPEMD160

  • MHASH_GOST

  • MHASH_TIGER

  • MHASH_CRC32

  • MHASH_CRC32B

Příklady

Příklad 1. Vypočítat MD5 otisk a hmac a vypsat je v hexadecimálním tvaru

<?php
$input = "what do ya want for nothing?";
$hash = mhash (MHASH_MD5, $input);
print "Hash je ".bin2hex ($hash)."<br />\n";
$hash = mhash (MHASH_MD5, $input, "Jefe");
print "Hmac je ".bin2hex ($hash)."<br />\n";
?>

This will produce:
Hash je d03cb659cbf9192dcd066272249f8412
Hmac je 750c783e6ab0b503eaa86e310a5db738

Obsah
mhash_count -- Získat nejvyšší dostupné hash id
mhash_get_block_size -- Získat velikost bloku určeného hashe
mhash_get_hash_name -- Získat název zadaného hashe
mhash_keygen_s2k -- Vygenerovat klíč
mhash -- Spočítat hash

Předcházející | Domů | Další
mcve_void | Nahoru | mhash_count


mhash_count

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

mhash_count -- Získat nejvyšší dostupné hash id

Popis

int mhash_count ( void )

mhash_count() vrací nejvyšší dostupné hash id. Hashe jsou číslované od 0 po toto hash id.

Příklad 1. Traversing all hashes

<?php

$nr = mhash_count();

for ($i = 0; $i <= $nr; $i++) {
    echo sprintf ("The blocksize of %s is %d\n",
        mhash_get_hash_name ($i),
        mhash_get_block_size ($i));
}
?>

Předcházející | Domů | Další
Mhash funkce | Nahoru | mhash_get_block_size


mhash_get_block_size

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

mhash_get_block_size -- Získat velikost bloku určeného hashe

Popis

int mhash_get_block_size ( int hash)

mhash_get_block_size() se používá ke zjištění velikosti bloku argumentu hash.

mhash_get_block_size() přijímá jeden argument, hash a vrací velikost v bytech nebo FALSE, pokud hash neexistuje.

Předcházející | Domů | Další
mhash_count | Nahoru | mhash_get_hash_name


mhash_get_hash_name

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

mhash_get_hash_name -- Získat název zadaného hashe

Popis

string mhash_get_hash_name ( int hash)

mhash_get_hash_name() se používá ke zjištění názvu zadaného hashe.

mhash_get_hash_name() přijímá id hashe jako argument a vrací název tohoto hashe nebo FALSE, pokud tento hash neexistuje.

Příklad 1. Ukázka mhash_get_hash_name()

<?php
$hash = MHASH_MD5;

print mhash_get_hash_name ($hash);
?>
Výše uvedená ukázka vytiskne:
MD5

Předcházející | Domů | Další
mhash_get_block_size | Nahoru | mhash_keygen_s2k


mhash_keygen_s2k

(PHP 4 >= 4.0.4, PHP 5)

mhash_keygen_s2k -- Vygenerovat klíč

Popis

string mhash_keygen_s2k ( int hash, string password, string salt, int bytes)

mhash_keygen_s2k() generuje klíč, který je bytes dlouhý, z předaného hesla. Toto je Salted S2K algoritmus specifikovaný v OpenPGP dokumentu (RFC 2440). Tento algoritmus použije k vytvoření klíče hash algoritmus. salt musí být pro každý generovaný klíč jiný a dostatečně náhodný, aby vytvořil různé klíče. Salt musí být při kontrole klíčů znám, tudíž je dobrý nápad ho připojit ke klíči. Salt ma pevnou délku 8 bytů a pokud dodáte méně bytů, bude doplněn nulami. Pamatujte, že uživatelsky určená hesla nejsou vhodná k použití jako klíče, protože uživatelé obvykle volí klíče, které mohou napsat na klávesnici. Tato hesla využívají pouze 6 až 7 bytů na znak (nebo méně). Je velmi vhodné na uživateli určené klíče použít nějakou transformaci (jako je tato funkce).

Předcházející | Domů | Další
mhash_get_hash_name | Nahoru | mhash


mhash

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

mhash -- Spočítat hash

Popis

string mhash ( int hash, string data, string [ key ])

mhash() aplikuje hash funkci určenou argumentem hash na data a vrací výsledný hash (také nazývaný digest). Pokud je předán key, vrací výsledný HMAC. HMAC is keyed hashing for message authentication, or simply a message digest that depends on the specified key. Not all algorithms supported in mhash can be used in HMAC mode. In case of an error returns FALSE.

Předcházející | Domů | Další
mhash_keygen_s2k | Nahoru | Mimetype Functions


Mimetype Functions

Manuál PHP
Předcházející Další

LVIII. Mimetype Functions

Úvod

Varování

This extension has been deprecated as the PECL extension fileinfo provides the same functionality (and more) in a much cleaner way.

The functions in this module try to guess the content type and encoding of a file by looking for certain magic byte sequences at specific positions within the file. While this is not a bullet proof approach the heuristics used do a very good job.

This extension is derived from Apache mod_mime_magic, which is itself based on the file command maintained by Ian F. Darwin. See the source code for further historic and copyright information.

Požadavky

Tyto funkce jsou k dispozici jako součást standardního modulu, který je vždy dostupný.

Instalace

You must compile PHP with the configure switch --with-mime-magic to get support for mime-type functions. The extension needs a copy of the simplified magic file that is distributed with the Apache httpd.

Poznámka: The configure option has been changed from --enable-mime-magic to --with-mime-magic since PHP 4.3.2

Poznámka: This extension is not capable of handling the fully decorated magic file that generally comes with standard Linux distro's and is supposed to be used with recent versions of file command.

Note to Win32 Users: In order to use this module on a Windows environment, you must set the path to the bundled magic.mime file in your php.ini.

Příklad 1. Setting the path to magic.mime

mime_magic.magicfile = "$PHP_INSTALL_DIR\magic.mime"

Remember to substitute the $PHP_INSTALL_DIR for your actual path to PHP in the above example. e.g. c:\php

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 1. Mimetype configuration options

Name | Default | Changeable
mime_magic.magicfile | "/usr/share/misc/magic.mime" | PHP_INI_SYSTEM
For further details and definition of the PHP_INI_* constants see ini_set().

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Obsah
mime_content_type -- Detect MIME Content-type for a file

Předcházející | Domů | Další
mhash | Nahoru | mime_content_type


mime_content_type

(PHP 4 >= 4.3.0, PHP 5)

mime_content_type -- Detect MIME Content-type for a file

Description

string mime_content_type ( string filename)

Returns the MIME content type for a file as determined by using information from the magic.mime file. Content types are returned in MIME format, like text/plain or application/octet-stream.

Příklad 1. mime_content_type() example

<?php
echo mime_content_type('php.gif') . "\n";
echo mime_content_type('test.php');
?>

The above example will output:

image/gif
text/plain

Předcházející | Domů | Další
Mimetype Functions | Nahoru | Microsoft SQL Server Functions


Microsoft SQL Server Functions

Manuál PHP
Předcházející Další

LIX. Microsoft SQL Server Functions

Úvod

These functions allow you to access MS SQL Server database.

Požadavky

Requirements for Win32 platforms.

The extension requires the MS SQL Client Tools to be installed on the system where PHP is installed. The Client Tools can be installed from the MS SQL Server CD or by copying ntwdblib.dll from \winnt\system32 on the server to \winnt\system32 on the PHP box. Copying ntwdblib.dll will only provide access. Configuration of the client will require installation of all the tools.

Requirements for Unix/Linux platforms.

To use the MSSQL extension on Unix/Linux, you first need to build and install the FreeTDS library. Source code and installation instructions are available at the FreeTDS home page: http://www.freetds.org/

Poznámka: In Windows, the DBLIB from Microsoft is used. Functions that return a column name are based on the dbcolname() function in DBLIB. DBLIB was developed for SQL Server 6.x where the max identifier length is 30. For this reason, the maximum column length is 30 characters. On platforms where FreeTDS is used (Linux), this is not a problem.

Instalace

The MSSQL extension is enabled by adding extension=php_mssql.dll to php.ini.

To get these functions to work, you have to compile PHP with --with-mssql[=DIR], where DIR is the FreeTDS install prefix. And FreeTDS should be compiled using --enable-msdblib.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 1. MS SQL Server configuration options

Name | Default | Changeable
mssql.allow_persistent | "1" | PHP_INI_SYSTEM
mssql.max_persistent | "-1" | PHP_INI_SYSTEM
mssql.max_links | "-1" | PHP_INI_SYSTEM
mssql.min_error_severity | "10" | PHP_INI_ALL
mssql.min_message_severity | "10" | PHP_INI_ALL
mssql.compatability_mode | "0" | PHP_INI_ALL
mssql.connect_timeout | "5" | PHP_INI_ALL
mssql.timeout | "60" | PHP_INI_ALL
mssql.textsize | "-1" | PHP_INI_ALL
mssql.textlimit | "-1" | PHP_INI_ALL
mssql.batchsize | "0" | PHP_INI_ALL
mssql.datetimeconvert | "1" | PHP_INI_ALL
mssql.secure_connection | "0" | PHP_INI_SYSTEM
mssql.max_procs | "25" | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Typy prostředků

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

MSSQL_ASSOC (integer)

MSSQL_NUM (integer)

MSSQL_BOTH (integer)

SQLTEXT (integer)

SQLVARCHAR (integer)

SQLCHAR (integer)

SQLINT1 (integer)

SQLINT2 (integer)

SQLINT4 (integer)

SQLBIT (integer)

SQLFLT8 (integer)

Obsah
mssql_bind -- Adds a parameter to a stored procedure or a remote stored procedure
mssql_close -- Close MS SQL Server connection
mssql_connect -- Open MS SQL server connection
mssql_data_seek -- Moves internal row pointer
mssql_execute -- Executes a stored procedure on a MS SQL server database
mssql_fetch_array -- Fetch a result row as an associative array, a numeric array, or both
mssql_fetch_assoc -- Returns an associative array of the current row in the result set specified by result_id
mssql_fetch_batch -- Returns the next batch of records
mssql_fetch_field -- Get field information
mssql_fetch_object -- Fetch row as object
mssql_fetch_row -- Get row as enumerated array
mssql_field_length -- Get the length of a field
mssql_field_name -- Get the name of a field
mssql_field_seek -- Seeks to the specified field offset
mssql_field_type -- Gets the type of a field
mssql_free_result -- Free result memory
mssql_free_statement -- Free statement memory
mssql_get_last_message -- Returns the last message from the server
mssql_guid_string -- Converts a 16 byte binary GUID to a string
mssql_init -- Initializes a stored procedure or a remote stored procedure
mssql_min_error_severity -- Sets the lower error severity
mssql_min_message_severity -- Sets the lower message severity
mssql_next_result -- Move the internal result pointer to the next result
mssql_num_fields -- Gets the number of fields in result
mssql_num_rows -- Gets the number of rows in result
mssql_pconnect -- Open persistent MS SQL connection
mssql_query -- Send MS SQL query
mssql_result -- Get result data
mssql_rows_affected -- Returns the number of records affected by the query
mssql_select_db -- Select MS SQL database

Předcházející | Domů | Další
mime_content_type | Nahoru | mssql_bind


mssql_bind

(PHP 4 >= 4.1.0, PHP 5)

mssql_bind -- Adds a parameter to a stored procedure or a remote stored procedure

Description

bool mssql_bind ( resource stmt, string param_name, mixed var, int type [, int is_output [, int is_null [, int maxlen]]])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

See also mssql_execute(),
mssql_free_statement(), and
mssql_init().

Předcházející | Domů | Další
Microsoft SQL Server Functions | Nahoru | mssql_close


mssql_close

(PHP 3, PHP 4 , PHP 5)

mssql_close -- Close MS SQL Server connection

Description

bool mssql_close ( [resource link_identifier])

mssql_close() closes the link to a MS SQL Server database that's associated with the specified link identifier. If the link identifier isn't specified, the last opened link is assumed.

Vrací TRUE při úspěchu, FALSE při selhání.

Note that this isn't usually necessary, as non-persistent open links are automatically closed at the end of the script's execution.

mssql_close() will not close persistent links generated by mssql_pconnect().

See also mssql_connect(), and mssql_pconnect().

Předcházející | Domů | Další
mssql_bind | Nahoru | mssql_connect


mssql_connect

(PHP 3, PHP 4 , PHP 5)

mssql_connect -- Open MS SQL server connection

Description

int mssql_connect ( [string servername [, string username [, string password]]])

Returns: A positive MS SQL link identifier on success, or FALSE on error.

mssql_connect() establishes a connection to a MS SQL server. The servername argument has to be a valid servername that is defined in the 'interfaces' file.

In case a second call is made to mssql_connect() with the same arguments, no new link will be established, but instead, the link identifier of the already opened link will be returned.

The link to the server will be closed as soon as the execution of the script ends, unless it's closed earlier by explicitly calling mssql_close().

See also mssql_pconnect(), mssql_close().

Předcházející | Domů | Další
mssql_close | Nahoru | mssql_data_seek


mssql_data_seek

(PHP 3, PHP 4 , PHP 5)

mssql_data_seek -- Moves internal row pointer

Description

bool mssql_data_seek ( resource result_identifier, int row_number)

Vrací TRUE při úspěchu, FALSE při selhání.

mssql_data_seek() moves the internal row pointer of the MS SQL result associated with the specified result identifier to point to the specified row number, first row being number 0. The next call to mssql_fetch_row() would return that row.

See also mssql_data_seek().

Předcházející | Domů | Další
mssql_connect | Nahoru | mssql_execute


mssql_execute

(PHP 4 >= 4.1.0, PHP 5)

mssql_execute -- Executes a stored procedure on a MS SQL server database

Description

mixed mssql_execute ( resource stmt [, bool skip_results])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Poznámka: If the stored procedure returns parameters or a return value these will be available after the call to mssql_execute() unless the stored procedure returns more than one result set. In that case use mssql_next_result() to shift through the results. When the last result has been processed the output parameters and return values will be available.

See also mssql_bind(),
mssql_free_statement(), and
mssql_init().

Předcházející | Domů | Další
mssql_data_seek | Nahoru | mssql_fetch_array


mssql_fetch_array

(PHP 3, PHP 4 , PHP 5)

mssql_fetch_array -- Fetch a result row as an associative array, a numeric array, or both

Description

array mssql_fetch_array ( resource result [, int result_type])

Returns: An array that corresponds to the fetched row, or FALSE if there are no more rows.

mssql_fetch_array() is an extended version of mssql_fetch_row(). In addition to storing the data in the numeric indices of the result array, it also stores the data in associative indices, using the field names as keys.

An important thing to note is that using mssql_fetch_array() is NOT significantly slower than using mssql_fetch_row(), while it provides a significant added value.

Poznámka: Názvy polí vrácené touto funkcí rozlišují velikost písmen.

For further details, also see mssql_fetch_row().

Předcházející | Domů | Další
mssql_execute | Nahoru | mssql_fetch_assoc


mssql_fetch_assoc

(PHP 4 >= 4.2.0, PHP 5)

mssql_fetch_assoc -- Returns an associative array of the current row in the result set specified by result_id

Description

array mssql_fetch_assoc ( resource result_id)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mssql_fetch_array | Nahoru | mssql_fetch_batch


mssql_fetch_batch

(PHP 4 >= 4.0.4, PHP 5)

mssql_fetch_batch -- Returns the next batch of records

Description

int mssql_fetch_batch ( resource result_index)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mssql_fetch_assoc | Nahoru | mssql_fetch_field


mssql_fetch_field

(PHP 3, PHP 4 , PHP 5)

mssql_fetch_field -- Get field information

Description

object mssql_fetch_field ( resource result [, int field_offset])

Returns an object containing field information.

mssql_fetch_field() can be used in order to obtain information about fields in a certain query result. If the field offset isn't specified, the next field that wasn't yet retrieved by mssql_fetch_field() is retrieved.

The properties of the object are:

  • name - column name. if the column is a result of a function, this property is set to computed#N, where #N is a serial number.

  • column_source - the table from which the column was taken

  • max_length - maximum length of the column

  • numeric - 1 if the column is numeric

  • type - the column type.

See also mssql_field_seek().

Předcházející | Domů | Další
mssql_fetch_batch | Nahoru | mssql_fetch_object


mssql_fetch_object

(PHP 3, PHP 5)

mssql_fetch_object -- Fetch row as object

Description

object mssql_fetch_object ( resource result)

Returns: An object with properties that correspond to the fetched row, or FALSE if there are no more rows.

mssql_fetch_object() is similar to mssql_fetch_array(), with one difference - an object is returned, instead of an array. Indirectly, that means that you can only access the data by the field names, and not by their offsets (numbers are illegal property names).

Poznámka: Názvy polí vrácené touto funkcí rozlišují velikost písmen.

Speed-wise, the function is identical to mssql_fetch_array(), and almost as quick as mssql_fetch_row() (the difference is insignificant).

See also mssql_fetch_array(), and mssql_fetch_row().

Předcházející | Domů | Další
mssql_fetch_field | Nahoru | mssql_fetch_row


mssql_fetch_row

(PHP 3, PHP 4 , PHP 5)

mssql_fetch_row -- Get row as enumerated array

Description

array mssql_fetch_row ( resource result)

Returns: An array that corresponds to the fetched row, or FALSE if there are no more rows.

mssql_fetch_row() fetches one row of data from the result associated with the specified result identifier. The row is returned as an array. Each result column is stored in an array offset, starting at offset 0.

Subsequent call to mssql_fetch_row() would return the next row in the result set, or FALSE if there are no more rows.

See also
mssql_fetch_array(),
mssql_fetch_object(),
mssql_data_seek(),
mssql_fetch_lengths(), and
mssql_result().

Předcházející | Domů | Další
mssql_fetch_object | Nahoru | mssql_field_length


mssql_field_length

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

mssql_field_length -- Get the length of a field

Description

int mssql_field_length ( resource result [, int offset])

This function returns the length of field no. offset in result result. If offset is omitted, the current field is used.

Note to Win32 Users: Due to a limitation in the underlying API used by PHP (MS DbLib C API), the length of VARCHAR fields is limited to 255. If you need to store more data, use a TEXT field instead.

Předcházející | Domů | Další
mssql_fetch_row | Nahoru | mssql_field_name


mssql_field_name

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

mssql_field_name -- Get the name of a field

Description

string mssql_field_name ( resource result [, int offset])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mssql_field_length | Nahoru | mssql_field_seek


mssql_field_seek

(PHP 3, PHP 4 , PHP 5)

mssql_field_seek -- Seeks to the specified field offset

Description

bool mssql_field_seek ( resource result, int field_offset)

Seeks to the specified field offset. If the next call to mssql_fetch_field() won't include a field offset, this field would be returned.

Vrací TRUE při úspěchu, FALSE při selhání.

See also mssql_fetch_field().

Předcházející | Domů | Další
mssql_field_name | Nahoru | mssql_field_type


mssql_field_type

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

mssql_field_type -- Gets the type of a field

Description

string mssql_field_type ( resource result [, int offset])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mssql_field_seek | Nahoru | mssql_free_result


mssql_free_result

(PHP 3, PHP 4 , PHP 5)

mssql_free_result -- Free result memory

Description

bool mssql_free_result ( resource result)

mssql_free_result() only needs to be called if you are worried about using too much memory while your script is running. All result memory will automatically be freed when the script ends. You may call mssql_free_result() with the result identifier as an argument and the associated result memory will be freed.

Předcházející | Domů | Další
mssql_field_type | Nahoru | mssql_free_statement


mssql_free_statement

(PHP 4 >= 4.3.2, PHP 5)

mssql_free_statement -- Free statement memory

Description

bool mssql_free_statement ( resource statement)

mssql_free_statement() only needs to be called if you are worried about using too much memory while your script is running. All statement memory will automatically be freed when the script ends. You may call mssql_free_statement() with the statement identifier as an argument and the associated statement memory will be freed.

See also mssql_bind(),
mssql_execute(), and
mssql_init()

Předcházející | Domů | Další
mssql_free_result | Nahoru | mssql_get_last_message


mssql_get_last_message

(PHP 3, PHP 4 , PHP 5)

mssql_get_last_message -- Returns the last message from the server

Description

string mssql_get_last_message ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mssql_free_statement | Nahoru | mssql_guid_string


mssql_guid_string

(PHP 4 >= 4.1.0, PHP 5)

mssql_guid_string -- Converts a 16 byte binary GUID to a string

Description

string mssql_guid_string ( string binary [, int short_format])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mssql_get_last_message | Nahoru | mssql_init


mssql_init

(PHP 4 >= 4.1.0, PHP 5)

mssql_init -- Initializes a stored procedure or a remote stored procedure

Description

int mssql_init ( string sp_name [, resource conn_id])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

See also mssql_bind(),
mssql_execute(), and
mssql_free_statement()

Předcházející | Domů | Další
mssql_guid_string | Nahoru | mssql_min_error_severity


mssql_min_error_severity

(PHP 3, PHP 4 , PHP 5)

mssql_min_error_severity -- Sets the lower error severity

Description

void mssql_min_error_severity ( int severity)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mssql_init | Nahoru | mssql_min_message_severity


mssql_min_message_severity

(PHP 3, PHP 4 , PHP 5)

mssql_min_message_severity -- Sets the lower message severity

Description

void mssql_min_message_severity ( int severity)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mssql_min_error_severity | Nahoru | mssql_next_result


mssql_next_result

(PHP 4 >= 4.0.5, PHP 5)

mssql_next_result -- Move the internal result pointer to the next result

Description

bool mssql_next_result ( resource result_id)

When sending more than one SQL statement to the server or executing a stored procedure with multiple results, it will cause the server to return multiple result sets. This function will test for additional results available form the server. If an additional result set exists it will free the existing result set and prepare to fetch the rows from the new result set. The function will return TRUE if an additional result set was available or FALSE otherwise.

Příklad 1. mssql_next_result() example

<?php
    $link = mssql_connect("localhost", "userid", "secret");
    mssql_select_db("MyDB", $link);
    $SQL = "Select * from table1 select * from table2";
    $rs = mssql_query($SQL, $link);
    do {
        while ($row = mssql_fetch_row($rs)) {
        }
    } while (mssql_next_result($rs));
    mssql_free_result($rs);
    mssql_close($link);
?>

Předcházející | Domů | Další
mssql_min_message_severity | Nahoru | mssql_num_fields


mssql_num_fields

(PHP 3, PHP 4 , PHP 5)

mssql_num_fields -- Gets the number of fields in result

Description

int mssql_num_fields ( resource result)

mssql_num_fields() returns the number of fields in a result set.

See also
mssql_query(),
mssql_fetch_field(), and
mssql_num_rows().

Předcházející | Domů | Další
mssql_next_result | Nahoru | mssql_num_rows


mssql_num_rows

(PHP 3, PHP 4 , PHP 5)

mssql_num_rows -- Gets the number of rows in result

Description

int mssql_num_rows ( resource result)

mssql_num_rows() returns the number of rows in a result set.

See also mssql_query() and mssql_fetch_row().

Předcházející | Domů | Další
mssql_num_fields | Nahoru | mssql_pconnect


mssql_pconnect

(PHP 3, PHP 4 , PHP 5)

mssql_pconnect -- Open persistent MS SQL connection

Description

int mssql_pconnect ( [string servername [, string username [, string password]]])

Returns: A positive MS SQL persistent link identifier on success, or FALSE on error.

mssql_pconnect() acts very much like mssql_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 (mssql_close() will not close links established by mssql_pconnect()).

This type of links is therefore called 'persistent'.

Předcházející | Domů | Další
mssql_num_rows | Nahoru | mssql_query


mssql_query

(PHP 3, PHP 4 , PHP 5)

mssql_query -- Send MS SQL query

Description

resource mssql_query ( string query [, resource link_identifier [, int batch_size]])

Returns: A positive MS SQL result identifier on success, or FALSE on error.

mssql_query() sends a query to the currently active database on the server that's associated with the specified link identifier. If the link identifier isn't specified, the last opened link is assumed. If no link is open, the function tries to establish a link as if mssql_connect() was called, and use it.

See also mssql_select_db() and mssql_connect().

Předcházející | Domů | Další
mssql_pconnect | Nahoru | mssql_result


mssql_result

(PHP 3, PHP 4 , PHP 5)

mssql_result -- Get result data

Description

string mssql_result ( resource result, int row, mixed field)

mssql_result() returns the contents of one cell from a MS SQL result set. The field argument can be the field's offset, the field's name or the field's table dot field's name (tablename.fieldname). If the column name has been aliased ('select foo as bar from...'), it uses the alias instead of the column name.

When working on large result sets, you should consider using one of the functions that fetch an entire row (specified below). As these functions return the contents of multiple cells in one function call, they're MUCH quicker than mssql_result(). Also, note that specifying a numeric offset for the field argument is much quicker than specifying a fieldname or tablename.fieldname argument.

Recommended high-performance alternatives:
mssql_fetch_row(),
mssql_fetch_array(), and
mssql_fetch_object().

Předcházející | Domů | Další
mssql_query | Nahoru | mssql_rows_affected


mssql_rows_affected

(PHP 4 >= 4.0.4, PHP 5)

mssql_rows_affected -- Returns the number of records affected by the query

Description

int mssql_rows_affected ( resource conn_id)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
mssql_result | Nahoru | mssql_select_db


mssql_select_db

(PHP 3, PHP 4 , PHP 5)

mssql_select_db -- Select MS SQL database

Description

bool mssql_select_db ( string database_name [, resource link_identifier])

Vrací TRUE při úspěchu, FALSE při selhání.

mssql_select_db() sets the current active database on the server that's associated with the specified link identifier. If no link identifier is specified, the last opened link is assumed. If no link is open, the function will try to establish a link as if mssql_connect() was called, and use it.

Every subsequent call to mssql_query() will be made on the active database.

In order to select a database containing a space or a hyphen ("-") you need to enclose the database name in brackets, like is shown in the example below:

Příklad 1. mssql_select_db() example

<?php
    $conn = mssql_connect('MYSQLSERVER', 'sa', 'password');
    mssql_select_db('[my data-base]', $conn);
?>

See also:
    mssql_connect(),
    mssql_pconnect(), and
    mssql_query()

Předcházející | Domů | Další
mssql_rows_affected | Nahoru | Ming functions for Flash


Ming functions for Flash

Manuál PHP
Předcházející Další

LX. Ming functions for Flash

Varování

Toto rozšíření je EXPERIMENTÁLNÍ. Chování tohoto rozšíření, názvy funkcí a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může bez ohlášení změnit. Berte to v úvahu a používejte tento modul na vlastní nebezpečí.

Úvod

First of all: Ming is not an acronym. Ming is an open-source (LGPL) library which allows you to create SWF ("Flash") format movies. Ming supports almost all of Flash 4's features, including: shapes, gradients, bitmaps (pngs and jpegs), morphs ("shape tweens"), text, buttons, actions, sprites ("movie clips"), streaming mp3, and color transforms --the only thing that's missing is sound events.

Note that all values specifying length, distance, size, etc. are in "twips", twenty units per pixel. That's pretty much arbitrary, though, since the player scales the movie to whatever pixel size is specified in the embed/object tag, or the entire frame if not embedded.

Ming offers a number of advantages over the existing PHP/libswf module. You can use Ming anywhere you can compile the code, whereas libswf is closed-source and only available for a few platforms, Windows not one of them. Ming provides some insulation from the mundane details of the SWF file format, wrapping the movie elements in PHP objects. Also, Ming is still being maintained; if there's a feature that you want to see, just let us know ming@opaque.net.

Ming was added in PHP 4.0.5.

Požadavky

To use Ming with PHP, you first need to build and install the Ming library. Source code and installation instructions are available at the Ming home page: http://ming.sourceforge.net/ along with examples, a small tutorial, and the latest news.

Download the ming archive. Unpack the archive. Go in the Ming directory. make. make install.

This will build libming.so and install it into /usr/lib/, and copy ming.h into /usr/include/. Edit the PREFIX= line in the Makefile to change the installation directory.

Instalace

Příklad 1. built into PHP (Unix)

mkdir <phpdir>/ext/ming
cp php_ext/* <phpdir>/ext/ming
cd <phpdir>
./buildconf
./configure --with-ming <other config options>

Build and install PHP as usual, restart web server if necessary.

Now either just add extension=php_ming.so to your php.ini file, or put dl('php_ming.so'); at the head of all of your Ming scripts.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

SWFBUTTON_HIT (integer)

SWFBUTTON_DOWN (integer)

SWFBUTTON_OVER (integer)

SWFBUTTON_UP (integer)

SWFBUTTON_MOUSEUPOUTSIDE (integer)

SWFBUTTON_DRAGOVER (integer)

SWFBUTTON_DRAGOUT (integer)

SWFBUTTON_MOUSEUP (integer)

SWFBUTTON_MOUSEDOWN (integer)

SWFBUTTON_MOUSEOUT (integer)

SWFBUTTON_MOUSEOVER (integer)

SWFFILL_RADIAL_GRADIENT (integer)

SWFFILL_LINEAR_GRADIENT (integer)

SWFFILL_TILED_BITMAP (integer)

SWFFILL_CLIPPED_BITMAP (integer)

SWFTEXTFIELD_HASLENGTH (integer)

SWFTEXTFIELD_NOEDIT (integer)

SWFTEXTFIELD_PASSWORD (integer)

SWFTEXTFIELD_MULTILINE (integer)

SWFTEXTFIELD_WORDWRAP (integer)

SWFTEXTFIELD_DRAWBOX (integer)

SWFTEXTFIELD_NOSELECT (integer)

SWFTEXTFIELD_HTML (integer)

SWFTEXTFIELD_ALIGN_LEFT (integer)

SWFTEXTFIELD_ALIGN_RIGHT (integer)

SWFTEXTFIELD_ALIGN_CENTER (integer)

SWFTEXTFIELD_ALIGN_JUSTIFY (integer)

SWFACTION_ONLOAD (integer)

SWFACTION_ENTERFRAME (integer)

SWFACTION_UNLOAD (integer)

SWFACTION_MOUSEMOVE (integer)

SWFACTION_MOUSEDOWN (integer)

SWFACTION_MOUSEUP (integer)

SWFACTION_KEYDOWN (integer)

SWFACTION_KEYUP (integer)

SWFACTION_DATA (integer)

Předdefinované třídy

Tyto třídy jsou definovány rozšířením a budou dostupné pouze v případě, že PHP bude zkompilováno s tímto rozšířením nebo bude rozšíření zavedeno dynamicky za běhu.

Ming introduces 13 new objects in PHP, all with matching methods and attributes. To use them, you need to know about objects.

swfshape

swffill

swfgradient

swfbitmap

swftext

swftextfield

swffont

swfdisplayitem

swfmovie

swfbutton

swfaction

swfmorph

swfsprite

Obsah
ming_setcubicthreshold -- Set cubic threshold (?)
ming_setscale -- Set scale (?)
ming_useswfversion -- Use SWF version (?)
SWFAction -- Creates a new Action.
SWFBitmap->getHeight -- Returns the bitmap's height.
SWFBitmap->getWidth -- Returns the bitmap's width.
SWFBitmap -- Loads Bitmap object
swfbutton_keypress -- Returns the action flag for keyPress(char)
SWFbutton->addAction -- Adds an action
SWFbutton->addShape -- Adds a shape to a button
SWFbutton->setAction -- Sets the action
SWFbutton->setdown -- Alias for addShape(shape, SWFBUTTON_DOWN)
SWFbutton->setHit -- Alias for addShape(shape, SWFBUTTON_HIT)
SWFbutton->setOver -- Alias for addShape(shape, SWFBUTTON_OVER)
SWFbutton->setUp -- Alias for addShape(shape, SWFBUTTON_UP)
SWFbutton -- Creates a new Button.
SWFDisplayItem->addColor -- Adds the given color to this item's color transform.
SWFDisplayItem->move -- Moves object in relative coordinates.
SWFDisplayItem->moveTo -- Moves object in global coordinates.
SWFDisplayItem->multColor -- Multiplies the item's color transform.
SWFDisplayItem->remove -- Removes the object from the movie
SWFDisplayItem->Rotate -- Rotates in relative coordinates.
SWFDisplayItem->rotateTo -- Rotates the object in global coordinates.
SWFDisplayItem->scale -- Scales the object in relative coordinates.
SWFDisplayItem->scaleTo -- Scales the object in global coordinates.
SWFDisplayItem->setDepth -- Sets z-order
SWFDisplayItem->setName -- Sets the object's name
SWFDisplayItem->setRatio -- Sets the object's ratio.
SWFDisplayItem->skewX -- Sets the X-skew.
SWFDisplayItem->skewXTo -- Sets the X-skew.
SWFDisplayItem->skewY -- Sets the Y-skew.
SWFDisplayItem->skewYTo -- Sets the Y-skew.
SWFDisplayItem -- Creates a new displayitem object.
SWFFill->moveTo -- Moves fill origin
SWFFill->rotateTo -- Sets fill's rotation
SWFFill->scaleTo -- Sets fill's scale
SWFFill->skewXTo -- Sets fill x-skew
SWFFill->skewYTo -- Sets fill y-skew
SWFFill -- Loads SWFFill object
swffont->getwidth -- Returns the string's width
SWFFont -- Loads a font definition
SWFGradient->addEntry -- Adds an entry to the gradient list.
SWFGradient -- Creates a gradient object
SWFMorph->getshape1 -- Gets a handle to the starting shape
SWFMorph->getshape2 -- Gets a handle to the ending shape
SWFMorph -- Creates a new SWFMorph object.
SWFMovie->add -- Adds any type of data to a movie.
SWFMovie->nextframe -- Moves to the next frame of the animation.
SWFMovie->output -- Dumps your lovingly prepared movie out.
swfmovie->remove -- Removes the object instance from the display list.
SWFMovie->save -- Saves your movie in a file.
SWFMovie->setbackground -- Sets the background color.
SWFMovie->setdimension -- Sets the movie's width and height.
SWFMovie->setframes -- Sets the total number of frames in the animation.
SWFMovie->setrate -- Sets the animation's frame rate.
SWFMovie->streammp3 -- Streams a MP3 file.
SWFMovie -- Creates a new movie object, representing an SWF version 4 movie.
SWFShape->addFill -- Adds a solid fill to the shape.
SWFShape->drawCurve -- Draws a curve (relative).
SWFShape->drawCurveTo -- Draws a curve.
SWFShape->drawLine -- Draws a line (relative).
SWFShape->drawLineTo -- Draws a line.
SWFShape->movePen -- Moves the shape's pen (relative).
SWFShape->movePenTo -- Moves the shape's pen.
SWFShape->setLeftFill -- Sets left rasterizing color.
SWFShape->setLine -- Sets the shape's line style.
SWFShape->setRightFill -- Sets right rasterizing color.
SWFShape -- Creates a new shape object.
swfsprite->add -- Adds an object to a sprite
SWFSprite->nextframe -- Moves to the next frame of the animation.
SWFSprite->remove -- Removes an object to a sprite
SWFSprite->setframes -- Sets the total number of frames in the animation.
SWFSprite -- Creates a movie clip (a sprite)
SWFText->addString -- Draws a string
SWFText->getWidth -- Computes string's width
SWFText->moveTo -- Moves the pen
SWFText->setColor -- Sets the current font color
SWFText->setFont -- Sets the current font
SWFText->setHeight -- Sets the current font height
SWFText->setSpacing -- Sets the current font spacing
SWFText -- Creates a new SWFText object.
SWFTextField->addstring -- Concatenates the given string to the text field
SWFTextField->align -- Sets the text field alignment
SWFTextField->setbounds -- Sets the text field width and height
SWFTextField->setcolor -- Sets the color of the text field.
SWFTextField->setFont -- Sets the text field font
SWFTextField->setHeight -- Sets the font height of this text field font.
SWFTextField->setindentation -- Sets the indentation of the first line.
SWFTextField->setLeftMargin -- Sets the left margin width of the text field.
SWFTextField->setLineSpacing -- Sets the line spacing of the text field.
SWFTextField->setMargins -- Sets the margins width of the text field.
SWFTextField->setname -- Sets the variable name
SWFTextField->setrightMargin -- Sets the right margin width of the text field.
SWFTextField -- Creates a text field object

Předcházející | Domů | Další
mssql_select_db | Nahoru | ming_setcubicthreshold


ming_setcubicthreshold

(PHP 4 >= 4.0.5, PHP 5)

ming_setcubicthreshold -- Set cubic threshold (?)

Description

void ming_setcubicthreshold ( int threshold)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
Ming functions for Flash | Nahoru | ming_setscale


ming_setscale

(PHP 4 >= 4.0.5, PHP 5)

ming_setscale -- Set scale (?)

Description

void ming_setscale ( int scale)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ming_setcubicthreshold | Nahoru | ming_useswfversion


ming_useswfversion

(PHP 4 >= 4.2.0, PHP 5)

ming_useswfversion -- Use SWF version (?)

Description

void ming_useswfversion ( int version)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ming_setscale | Nahoru | SWFAction


SWFAction

(PHP 4 >= 4.0.5)

SWFAction -- Creates a new Action.

Description

new swfaction ( string script)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfaction() creates a new Action, and compiles the given script into an SWFAction object.

The script syntax is based on the C language, but with a lot taken out- the SWF bytecode machine is just too simpleminded to do a lot of things we might like. For instance, we can't implement function calls without a tremendous amount of hackery because the jump bytecode has a hardcoded offset value. No pushing your calling address to the stack and returning- every function would have to know exactly where to return to.

So what's left? The compiler recognises the following tokens:

  • break

  • for

  • continue

  • if

  • else

  • do

  • while

There is no typed data; all values in the SWF action machine are stored as strings. The following functions can be used in expressions:

time()

Returns the number of milliseconds (?) elapsed since the movie started.

random(seed)

Returns a pseudo-random number in the range 0-seed.

length(expr)

Returns the length of the given expression.

int(number)

Returns the given number rounded down to the nearest integer.

concat(expr, expr)

Returns the concatenation of the given expressions.

ord(expr)

Returns the ASCII code for the given character

chr(num)

Returns the character for the given ASCII code

substr(string, location, length)

Returns the substring of length length at location location of the given string string.

Additionally, the following commands may be used:

duplicateClip(clip, name, depth)

Duplicate the named movie clip (aka sprite). The new movie clip has name name and is at depth depth.

removeClip(expr)

Removes the named movie clip.

trace(expr)

Write the given expression to the trace log. Doubtful that the browser plugin does anything with this.

startDrag(target, lock, [left, top, right, bottom])

Start dragging the movie clip target. The lock argument indicates whether to lock the mouse (?)- use 0 (FALSE) or 1 (TRUE). Optional parameters define a bounding area for the dragging.

stopDrag()

Stop dragging my heart around. And this movie clip, too.

callFrame(expr)

Call the named frame as a function.

getURL(url, target, [method])

Load the given URL into the named target. The target argument corresponds to HTML document targets (such as "_top" or "_blank"). The optional method argument can be POST or GET if you want to submit variables back to the server.

loadMovie(url, target)

Load the given URL into the named target. The target argument can be a frame name (I think), or one of the magical values "_level0" (replaces current movie) or "_level1" (loads new movie on top of current movie).

nextFrame()

Go to the next frame.

prevFrame()

Go to the last (or, rather, previous) frame.

play()

Start playing the movie.

stop()

Stop playing the movie.

toggleQuality()

Toggle between high and low quality.

stopSounds()

Stop playing all sounds.

gotoFrame(num)

Go to frame number num. Frame numbers start at 0.

gotoFrame(name)

Go to the frame named name. Which does a lot of good, since I haven't added frame labels yet.

setTarget(expr)

Sets the context for action. Or so they say- I really have no idea what this does.

And there's one weird extra thing. The expression frameLoaded(num) can be used in if statements and while loops to check if the given frame number has been loaded yet. Well, it's supposed to, anyway, but I've never tested it and I seriously doubt it actually works. You can just use /:framesLoaded instead.

Movie clips (all together now- aka sprites) have properties. You can read all of them (or can you?), you can set some of them, and here they are:

  • x

  • y

  • xScale

  • yScale

  • currentFrame - (read-only)

  • totalFrames - (read-only)

  • alpha - transparency level

  • visible - 1=on, 0=off (?)

  • width - (read-only)

  • height - (read-only)

  • rotation

  • target - (read-only) (???)

  • framesLoaded - (read-only)

  • name

  • dropTarget - (read-only) (???)

  • url - (read-only) (???)

  • highQuality - 1=high, 0=low (?)

  • focusRect - (???)

  • soundBufTime - (???)

So, setting a sprite's x position is as simple as /box.x = 100;. Why the slash in front of the box, though? That's how flash keeps track of the sprites in the movie, just like a Unix filesystem- here it shows that box is at the top level. If the sprite named box had another sprite named biff inside of it, you'd set its x position with /box/biff.x = 100;. At least, I think so; correct me if I'm wrong here.

This simple example will move the red square across the window.

Příklad 1. swfaction() example

<?php
  $s = new SWFShape();
  $f = $s->addFill(0xff, 0, 0);
  $s->setRightFill($f);

  $s->movePenTo(-500, -500);
  $s->drawLineTo(500, -500);
  $s->drawLineTo(500, 500);
  $s->drawLineTo(-500, 500);
  $s->drawLineTo(-500, -500);

  $p = new SWFSprite();
  $i = $p->add($s);
  $i->setDepth(1);
  $p->nextFrame();

  for ($n=0; $n<5; ++$n) {
    $i->rotate(-15);
    $p->nextFrame();
  }

  $m = new SWFMovie();
  $m->setBackground(0xff, 0xff, 0xff);
  $m->setDimension(6000, 4000);

  $i = $m->add($p);
  $i->setDepth(1);
  $i->moveTo(-500,2000);
  $i->setName("box");

  $m->add(new SWFAction("/box.x += 3;"));
  $m->nextFrame();
  $m->add(new SWFAction("gotoFrame(0); play();"));
  $m->nextFrame();

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

This simple example tracks down your mouse on the screen.

Příklad 2. swfaction() example

<?php

  $m = new SWFMovie();
  $m->setRate(36.0);
  $m->setDimension(1200, 800);
  $m->setBackground(0, 0, 0);

  /* mouse tracking sprite - empty, but follows mouse so we can
     get its x and y coordinates */

  $i = $m->add(new SWFSprite());
  $i->setName('mouse');

  $m->add(new SWFAction("
    startDrag('/mouse', 1); /* '1' means lock sprite to the mouse */
  "));

  /* might as well turn off antialiasing, since these are just squares. */

  $m->add(new SWFAction("
    this.quality = 0;
  "));

  /* morphing box */
  $r = new SWFMorph();
  $s = $r->getShape1();

  /* Note this is backwards from normal shapes.  No idea why. */
  $s->setLeftFill($s->addFill(0xff, 0xff, 0xff));
  $s->movePenTo(-40, -40);
  $s->drawLine(80, 0);
  $s->drawLine(0, 80);
  $s->drawLine(-80, 0);
  $s->drawLine(0, -80);

  $s = $r->getShape2();

  $s->setLeftFill($s->addFill(0x00, 0x00, 0x00));
  $s->movePenTo(-1, -1);
  $s->drawLine(2, 0);
  $s->drawLine(0, 2);
  $s->drawLine(-2, 0);
  $s->drawLine(0, -2);

  /* sprite container for morphing box -
     this is just a timeline w/ the box morphing */

  $box = new SWFSprite();
  $box->add(new SWFAction("
    stop();
  "));
  $i = $box->add($r);

  for ($n=0; $n<=20; ++$n) {
    $i->setRatio($n/20);
    $box->nextFrame();
  }

  /* this container sprite allows us to use the same action code many times */

  $cell = new SWFSprite();
  $i = $cell->add($box);
  $i->setName('box');

  $cell->add(new SWFAction("

    setTarget('box');

    /* ...x means the x coordinate of the parent, i.e. (..).x */
    dx = (/mouse.x + random(6)-3 - ...x)/5;
    dy = (/mouse.y + random(6)-3 - ...y)/5;
    gotoFrame(int(dx*dx + dy*dy));

  "));

  $cell->nextFrame();
  $cell->add(new SWFAction("

    gotoFrame(0);
    play();

  "));

  $cell->nextFrame();

  /* finally, add a bunch of the cells to the movie */

  for ($x=0; $x<12; ++$x) {
    for ($y=0; $y<8; ++$y) {
      $i = $m->add($cell);
      $i->moveTo(100*$x+50, 100*$y+50);
    }
  }

  $m->nextFrame();

  $m->add(new SWFAction("

    gotoFrame(1);
    play();

  "));

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Same as above, but with nice colored balls...

Příklad 3. swfaction() example

<?php

  $m = new SWFMovie();
  $m->setDimension(11000, 8000);
  $m->setBackground(0x00, 0x00, 0x00);

  $m->add(new SWFAction("

this.quality = 0;
/frames.visible = 0;
startDrag('/mouse', 1);

  "));

  // mouse tracking sprite
  $t = new SWFSprite();
  $i = $m->add($t);
  $i->setName('mouse');

  $g = new SWFGradient();
  $g->addEntry(0, 0xff, 0xff, 0xff, 0xff);
  $g->addEntry(0.1, 0xff, 0xff, 0xff, 0xff);
  $g->addEntry(0.5, 0xff, 0xff, 0xff, 0x5f);
  $g->addEntry(1.0, 0xff, 0xff, 0xff, 0);

  // gradient shape thing
  $s = new SWFShape();
  $f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT);
  $f->scaleTo(0.03);
  $s->setRightFill($f);
  $s->movePenTo(-600, -600);
  $s->drawLine(1200, 0);
  $s->drawLine(0, 1200);
  $s->drawLine(-1200, 0);
  $s->drawLine(0, -1200);

  // need to make this a sprite so we can multColor it
  $p = new SWFSprite();
  $p->add($s);
  $p->nextFrame();

  // put the shape in here, each frame a different color
  $q = new SWFSprite();
  $q->add(new SWFAction("gotoFrame(random(7)+1); stop();"));
  $i = $q->add($p);

  $i->multColor(1.0, 1.0, 1.0);
  $q->nextFrame();
  $i->multColor(1.0, 0.5, 0.5);
  $q->nextFrame();
  $i->multColor(1.0, 0.75, 0.5);
  $q->nextFrame();
  $i->multColor(1.0, 1.0, 0.5);
  $q->nextFrame();
  $i->multColor(0.5, 1.0, 0.5);
  $q->nextFrame();
  $i->multColor(0.5, 0.5, 1.0);
  $q->nextFrame();
  $i->multColor(1.0, 0.5, 1.0);
  $q->nextFrame();

  // finally, this one contains the action code
  $p = new SWFSprite();
  $i = $p->add($q);
  $i->setName('frames');
  $p->add(new SWFAction("

dx = (/:mousex-/:lastx)/3 + random(10)-5;
dy = (/:mousey-/:lasty)/3;
x = /:mousex;
y = /:mousey;
alpha = 100;

  "));
  $p->nextFrame();

  $p->add(new SWFAction("

this.x = x;
this.y = y;
this.alpha = alpha;
x += dx;
y += dy;
dy += 3;
alpha -= 8;

  "));
  $p->nextFrame();

  $p->add(new SWFAction("prevFrame(); play();"));
  $p->nextFrame();

  $i = $m->add($p);
  $i->setName('frames');
  $m->nextFrame();

  $m->add(new SWFAction("

lastx = mousex;
lasty = mousey;
mousex = /mouse.x;
mousey = /mouse.y;

++num;

if (num == 11)
  num = 1;

removeClip('char' & num);
duplicateClip(/frames, 'char' & num, num);

  "));

  $m->nextFrame();
  $m->add(new SWFAction("prevFrame(); play();"));

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Předcházející | Domů | Další
ming_useswfversion | Nahoru | SWFBitmap->getHeight


SWFBitmap->getHeight

(no version information, might be only in CVS)

SWFBitmap->getHeight -- Returns the bitmap's height.

Description

int swfbitmap->getheight ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfbitmap->getheight() returns the bitmap's height in pixels.

See also swfbitmap->getwidth().

Předcházející | Domů | Další
SWFAction | Nahoru | SWFBitmap->getWidth


SWFBitmap->getWidth

(no version information, might be only in CVS)

SWFBitmap->getWidth -- Returns the bitmap's width.

Description

int swfbitmap->getwidth ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfbitmap->getwidth() returns the bitmap's width in pixels.

See also swfbitmap->getheight().

Předcházející | Domů | Další
SWFBitmap->getHeight | Nahoru | SWFBitmap


SWFBitmap

(PHP 4 >= 4.0.5)

SWFBitmap -- Loads Bitmap object

Description

new swfbitmap ( string filename [, int alphafilename])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfbitmap() creates a new SWFBitmap object from the Jpeg or DBL file named filename. alphafilename indicates a MSK file to be used as an alpha mask for a Jpeg image.

Poznámka: We can only deal with baseline (frame 0) jpegs, no baseline optimized or progressive scan jpegs!

SWFBitmap has the following methods : swfbitmap->getwidth() and swfbitmap->getheight().

You can't import png images directly, though- have to use the png2dbl utility to make a dbl ("define bits lossless") file from the png. The reason for this is that I don't want a dependency on the png library in ming- autoconf should solve this, but that's not set up yet.

Příklad 1. Import PNG files

<?php
  $s = new SWFShape();
  $f = $s->addFill(new SWFBitmap("png.dbl"));
  $s->setRightFill($f);

  $s->drawLine(32, 0);
  $s->drawLine(0, 32);
  $s->drawLine(-32, 0);
  $s->drawLine(0, -32);

  $m = new SWFMovie();
  $m->setDimension(32, 32);
  $m->add($s);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

And you can put an alpha mask on a jpeg fill.

Příklad 2. swfbitmap() example

<?php

  $s = new SWFShape();

  // .msk file generated with "gif2mask" utility
  $f = $s->addFill(new SWFBitmap("alphafill.jpg", "alphafill.msk"));
  $s->setRightFill($f);

  $s->drawLine(640, 0);
  $s->drawLine(0, 480);
  $s->drawLine(-640, 0);
  $s->drawLine(0, -480);

  $c = new SWFShape();
  $c->setRightFill($c->addFill(0x99, 0x99, 0x99));
  $c->drawLine(40, 0);
  $c->drawLine(0, 40);
  $c->drawLine(-40, 0);
  $c->drawLine(0, -40);

  $m = new SWFMovie();
  $m->setDimension(640, 480);
  $m->setBackground(0xcc, 0xcc, 0xcc);

  // draw checkerboard background
  for ($y=0; $y<480; $y+=40) {
    for ($x=0; $x<640; $x+=80) {
      $i = $m->add($c);
      $i->moveTo($x, $y);
    }

    $y+=40;

    for ($x=40; $x<640; $x+=80) {
      $i = $m->add($c);
      $i->moveTo($x, $y);
    }
  }

  $m->add($s);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Předcházející | Domů | Další
SWFBitmap->getWidth | Nahoru | swfbutton_keypress


swfbutton_keypress

(PHP 4 >= 4.0.5)

swfbutton_keypress -- Returns the action flag for keyPress(char)

Description

int swfbutton_keypress ( string str)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
SWFBitmap | Nahoru | SWFbutton->addAction


SWFbutton->addAction

(no version information, might be only in CVS)

SWFbutton->addAction -- Adds an action

Description

void swfbutton->addaction ( resource action, int flags)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfbutton->addaction() adds the action action to this button for the given conditions. The following flags are valid: SWFBUTTON_MOUSEOVER, SWFBUTTON_MOUSEOUT, SWFBUTTON_MOUSEUP, SWFBUTTON_MOUSEUPOUTSIDE, SWFBUTTON_MOUSEDOWN, SWFBUTTON_DRAGOUT and SWFBUTTON_DRAGOVER.

See also swfbutton->addshape() and swfaction().

Předcházející | Domů | Další
swfbutton_keypress | Nahoru | SWFbutton->addShape


SWFbutton->addShape

(no version information, might be only in CVS)

SWFbutton->addShape -- Adds a shape to a button

Description

void swfbutton->addshape ( resource shape, int flags)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfbutton->addshape() adds the shape shape to this button. The following flags' values are valid: SWFBUTTON_UP, SWFBUTTON_OVER, SWFBUTTON_DOWN or SWFBUTTON_HIT. SWFBUTTON_HIT isn't ever displayed, it defines the hit region for the button. That is, everywhere the hit shape would be drawn is considered a "touchable" part of the button.

Předcházející | Domů | Další
SWFbutton->addAction | Nahoru | SWFbutton->setAction


SWFbutton->setAction

(no version information, might be only in CVS)

SWFbutton->setAction -- Sets the action

Description

void swfbutton->setaction ( resource action)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfbutton->setaction() sets the action to be performed when the button is clicked. Alias for addAction(shape, SWFBUTTON_MOUSEUP). action is a swfaction().

See also swfbutton->addshape() and swfaction().

Předcházející | Domů | Další
SWFbutton->addShape | Nahoru | SWFbutton->setdown


SWFbutton->setdown

(no version information, might be only in CVS)

SWFbutton->setdown -- Alias for addShape(shape, SWFBUTTON_DOWN)

Description

void swfbutton->setdown ( resource shape)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfbutton->setdown() alias for addShape(shape, SWFBUTTON_DOWN).

See also swfbutton->addshape() and swfaction().

Předcházející | Domů | Další
SWFbutton->setAction | Nahoru | SWFbutton->setHit


SWFbutton->setHit

(no version information, might be only in CVS)

SWFbutton->setHit -- Alias for addShape(shape, SWFBUTTON_HIT)

Description

void swfbutton->sethit ( resource shape)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfbutton->sethit() alias for addShape(shape, SWFBUTTON_HIT).

See also swfbutton->addshape() and swfaction().

Předcházející | Domů | Další
SWFbutton->setdown | Nahoru | SWFbutton->setOver


SWFbutton->setOver

(no version information, might be only in CVS)

SWFbutton->setOver -- Alias for addShape(shape, SWFBUTTON_OVER)

Description

void swfbutton->setover ( resource shape)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfbutton->setover() alias for addShape(shape, SWFBUTTON_OVER).

See also swfbutton->addshape() and swfaction().

Předcházející | Domů | Další
SWFbutton->setHit | Nahoru | SWFbutton->setUp


SWFbutton->setUp

(no version information, might be only in CVS)

SWFbutton->setUp -- Alias for addShape(shape, SWFBUTTON_UP)

Description

void swfbutton->setup ( resource shape)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfbutton->setup() alias for addShape(shape, SWFBUTTON_UP).

See also swfbutton->addshape() and swfaction().

Předcházející | Domů | Další
SWFbutton->setOver | Nahoru | SWFbutton


SWFbutton

(PHP 4 >= 4.0.5)

SWFbutton -- Creates a new Button.

Description

new swfbutton ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfbutton() creates a new Button. Roll over it, click it, see it call action code. Swank.

SWFButton has the following methods : swfbutton->addshape(),
swfbutton->setup(), swfbutton->setover()
swfbutton->setdown(), swfbutton->sethit()
swfbutton->setaction() and
swfbutton->addaction().

This simple example will show your usual interactions with buttons : rollover, rollon, mouseup, mousedown, noaction.

Příklad 1. swfbutton() example

<?php

  $f = new SWFFont("_serif");

  $p = new SWFSprite();

  function label($string)
  {
    global $f;

    $t = new SWFTextField();
    $t->setFont($f);
    $t->addString($string);
    $t->setHeight(200);
    $t->setBounds(3200, 200);
    return $t;
  }

  function addLabel($string)
  {
    global $p;

    $i = $p->add(label($string));
    $p->nextFrame();
    $p->remove($i);
  }

  $p->add(new SWFAction("stop();"));
  addLabel("NO ACTION");
  addLabel("SWFBUTTON_MOUSEUP");
  addLabel("SWFBUTTON_MOUSEDOWN");
  addLabel("SWFBUTTON_MOUSEOVER");
  addLabel("SWFBUTTON_MOUSEOUT");
  addLabel("SWFBUTTON_MOUSEUPOUTSIDE");
  addLabel("SWFBUTTON_DRAGOVER");
  addLabel("SWFBUTTON_DRAGOUT");

  function rect($r, $g, $b)
  {
    $s = new SWFShape();
    $s->setRightFill($s->addFill($r, $g, $b));
    $s->drawLine(600, 0);
    $s->drawLine(0, 600);
    $s->drawLine(-600, 0);
    $s->drawLine(0, -600);

    return $s;
  }

  $b = new SWFButton();
  $b->addShape(rect(0xff, 0, 0), SWFBUTTON_UP | SWFBUTTON_HIT);
  $b->addShape(rect(0, 0xff, 0), SWFBUTTON_OVER);
  $b->addShape(rect(0, 0, 0xff), SWFBUTTON_DOWN);

  $b->addAction(new SWFAction("setTarget('/label'); gotoFrame(1);"),
            SWFBUTTON_MOUSEUP);

  $b->addAction(new SWFAction("setTarget('/label'); gotoFrame(2);"),
        SWFBUTTON_MOUSEDOWN);

  $b->addAction(new SWFAction("setTarget('/label'); gotoFrame(3);"),
        SWFBUTTON_MOUSEOVER);

  $b->addAction(new SWFAction("setTarget('/label'); gotoFrame(4);"),
        SWFBUTTON_MOUSEOUT);

  $b->addAction(new SWFAction("setTarget('/label'); gotoFrame(5);"),
        SWFBUTTON_MOUSEUPOUTSIDE);

  $b->addAction(new SWFAction("setTarget('/label'); gotoFrame(6);"),
        SWFBUTTON_DRAGOVER);

  $b->addAction(new SWFAction("setTarget('/label'); gotoFrame(7);"),
        SWFBUTTON_DRAGOUT);

  $m = new SWFMovie();
  $m->setDimension(4000, 3000);

  $i = $m->add($p);
  $i->setName("label");
  $i->moveTo(400, 1900);

  $i = $m->add($b);
  $i->moveTo(400, 900);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

This simple example will enables you to drag draw a big red button on the windows. No drag-and-drop, just moving around.

Příklad 2. swfbutton->addaction() example

<?php

  $s = new SWFShape();
  $s->setRightFill($s->addFill(0xff, 0, 0));
  $s->drawLine(1000,0);
  $s->drawLine(0,1000);
  $s->drawLine(-1000,0);
  $s->drawLine(0,-1000);

  $b = new SWFButton();
  $b->addShape($s, SWFBUTTON_HIT | SWFBUTTON_UP | SWFBUTTON_DOWN | SWFBUTTON_OVER);

  $b->addAction(new SWFAction("startDrag('/test', 0);"), // '0' means don't lock to mouse
        SWFBUTTON_MOUSEDOWN);

  $b->addAction(new SWFAction("stopDrag();"),
        SWFBUTTON_MOUSEUP | SWFBUTTON_MOUSEUPOUTSIDE);

  $p = new SWFSprite();
  $p->add($b);
  $p->nextFrame();

  $m = new SWFMovie();
  $i = $m->add($p);
  $i->setName('test');
  $i->moveTo(1000,1000);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Předcházející | Domů | Další
SWFbutton->setUp | Nahoru | SWFDisplayItem->addColor


SWFDisplayItem->addColor

(no version information, might be only in CVS)

SWFDisplayItem->addColor -- Adds the given color to this item's color transform.

Description

void swfdisplayitem->addcolor ( [int red [, int green [, int blue [, int a]]]])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfdisplayitem->addcolor() adds the color to this item's color transform. The color is given in its RGB form.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

Předcházející | Domů | Další
SWFbutton | Nahoru | SWFDisplayItem->move


SWFDisplayItem->move

(no version information, might be only in CVS)

SWFDisplayItem->move -- Moves object in relative coordinates.

Description

void swfdisplayitem->move ( int dx, int dy)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfdisplayitem->move() moves the current object by (dx,dy) from its current position.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also swfdisplayitem->moveto().

Předcházející | Domů | Další
SWFDisplayItem->addColor | Nahoru | SWFDisplayItem->moveTo


SWFDisplayItem->moveTo

(no version information, might be only in CVS)

SWFDisplayItem->moveTo -- Moves object in global coordinates.

Description

void swfdisplayitem->moveto ( int x, int y)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfdisplayitem->moveto() moves the current object to (x,y) in global coordinates.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also swfdisplayitem->move().

Předcházející | Domů | Další
SWFDisplayItem->move | Nahoru | SWFDisplayItem->multColor


SWFDisplayItem->multColor

(no version information, might be only in CVS)

SWFDisplayItem->multColor -- Multiplies the item's color transform.

Description

void swfdisplayitem->multcolor ( [int red [, int green [, int blue [, int a]]]])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfdisplayitem->multcolor() multiplies the item's color transform by the given values.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

This simple example will modify your picture's atmospher to Halloween (use a landscape or bright picture).

Příklad 1. swfdisplayitem->multcolor() example

<?php

  $b = new SWFBitmap("backyard.jpg");
  // note use your own picture :-)
  $s = new SWFShape();
  $s->setRightFill($s->addFill($b));
  $s->drawLine($b->getWidth(), 0);
  $s->drawLine(0, $b->getHeight());
  $s->drawLine(-$b->getWidth(), 0);
  $s->drawLine(0, -$b->getHeight());

  $m = new SWFMovie();
  $m->setDimension($b->getWidth(), $b->getHeight());

  $i = $m->add($s);

  for ($n=0; $n<=20; ++$n) {
    $i->multColor(1.0-$n/10, 1.0, 1.0);
    $i->addColor(0xff*$n/20, 0, 0);
    $m->nextFrame();
  }

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Předcházející | Domů | Další
SWFDisplayItem->moveTo | Nahoru | SWFDisplayItem->remove


SWFDisplayItem->remove

(no version information, might be only in CVS)

SWFDisplayItem->remove -- Removes the object from the movie

Description

void swfdisplayitem->remove ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfdisplayitem->remove() removes this object from the movie's display list.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also swfmovie->add().

Předcházející | Domů | Další
SWFDisplayItem->multColor | Nahoru | SWFDisplayItem->Rotate


SWFDisplayItem->Rotate

(no version information, might be only in CVS)

SWFDisplayItem->Rotate -- Rotates in relative coordinates.

Description

void swfdisplayitem->rotate ( float ddegrees)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfdisplayitem->rotate() rotates the current object by ddegrees degrees from its current rotation.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also swfdisplayitem->rotateto().

Předcházející | Domů | Další
SWFDisplayItem->remove | Nahoru | SWFDisplayItem->rotateTo


SWFDisplayItem->rotateTo

(no version information, might be only in CVS)

SWFDisplayItem->rotateTo -- Rotates the object in global coordinates.

Description

void swfdisplayitem->rotateto ( float degrees)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfdisplayitem->rotateto() set the current object rotation to degrees degrees in global coordinates.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

This example bring three rotating string from the background to the foreground. Pretty nice.

Příklad 1. swfdisplayitem->rotateto() example

<?php
  $thetext =  "ming!";

  $f = new SWFFont("Bauhaus 93.fdb");

  $m = new SWFMovie();
  $m->setRate(24.0);
  $m->setDimension(2400, 1600);
  $m->setBackground(0xff, 0xff, 0xff);

  // functions with huge numbers of arbitrary
  // arguments are always a good idea!  Really!

  function text($r, $g, $b, $a, $rot, $x, $y, $scale, $string)
  {
    global $f, $m;

    $t = new SWFText();
    $t->setFont($f);
    $t->setColor($r, $g, $b, $a);
    $t->setHeight(960);
    $t->moveTo(-($f->getWidth($string))/2, $f->getAscent()/2);
    $t->addString($string);

    // we can add properties just like a normal PHP var,
    // as long as the names aren't already used.
    // e.g., we can't set $i->scale, because that's a function

    $i = $m->add($t);
    $i->x = $x;
    $i->y = $y;
    $i->rot = $rot;
    $i->s = $scale;
    $i->rotateTo($rot);
    $i->scale($scale, $scale);

    // but the changes are local to the function, so we have to
    // return the changed object.  kinda weird..

    return $i;
 }

  function step($i)
  {
    $oldrot = $i->rot;
    $i->rot = 19*$i->rot/20;
    $i->x = (19*$i->x + 1200)/20;
    $i->y = (19*$i->y + 800)/20;
    $i->s = (19*$i->s + 1.0)/20;

    $i->rotateTo($i->rot);
    $i->scaleTo($i->s, $i->s);
    $i->moveTo($i->x, $i->y);

    return $i;
  }

  // see?  it sure paid off in legibility:

  $i1 = text(0xff, 0x33, 0x33, 0xff, 900, 1200, 800, 0.03, $thetext);
  $i2 = text(0x00, 0x33, 0xff, 0x7f, -560, 1200, 800, 0.04, $thetext);
  $i3 = text(0xff, 0xff, 0xff, 0x9f, 180, 1200, 800, 0.001, $thetext);

  for ($i=1; $i<=100; ++$i) {
    $i1 = step($i1);
    $i2 = step($i2);
    $i3 = step($i3);

    $m->nextFrame();
  }

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

See also swfdisplayitem->rotate().

Předcházející | Domů | Další
SWFDisplayItem->Rotate | Nahoru | SWFDisplayItem->scale


SWFDisplayItem->scale

(no version information, might be only in CVS)

SWFDisplayItem->scale -- Scales the object in relative coordinates.

Description

void swfdisplayitem->scale ( int dx, int dy)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfdisplayitem->scale() scales the current object by (dx,dy) from its current size.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also swfdisplayitem->scaleto().

Předcházející | Domů | Další
SWFDisplayItem->rotateTo | Nahoru | SWFDisplayItem->scaleTo


SWFDisplayItem->scaleTo

(no version information, might be only in CVS)

SWFDisplayItem->scaleTo -- Scales the object in global coordinates.

Description

void swfdisplayitem->scaleto ( int x, int y)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfdisplayitem->scaleto() scales the current object to (x,y) in global coordinates.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also swfdisplayitem->scale().

Předcházející | Domů | Další
SWFDisplayItem->scale | Nahoru | SWFDisplayItem->setDepth


SWFDisplayItem->setDepth

(no version information, might be only in CVS)

SWFDisplayItem->setDepth -- Sets z-order

Description

void swfdisplayitem->setdepth ( float depth)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfdisplayitem->rotate() sets the object's z-order to depth. Depth defaults to the order in which instances are created (by adding a shape/text to a movie)- newer ones are on top of older ones. If two objects are given the same depth, only the later-defined one can be moved.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

Předcházející | Domů | Další
SWFDisplayItem->scaleTo | Nahoru | SWFDisplayItem->setName


SWFDisplayItem->setName

(no version information, might be only in CVS)

SWFDisplayItem->setName -- Sets the object's name

Description

void swfdisplayitem->setname ( string name)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfdisplayitem->setname() sets the object's name to name, for targetting with action script. Only useful on sprites.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

Předcházející | Domů | Další
SWFDisplayItem->setDepth | Nahoru | SWFDisplayItem->setRatio


SWFDisplayItem->setRatio

(no version information, might be only in CVS)

SWFDisplayItem->setRatio -- Sets the object's ratio.

Description

void swfdisplayitem->setratio ( float ratio)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfdisplayitem->setratio() sets the object's ratio to ratio. Obviously only useful for morphs.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

This simple example will morph nicely three concentric circles.

Příklad 1. swfdisplayitem->setname() example

<?php

  $p = new SWFMorph();

  $g = new SWFGradient();
  $g->addEntry(0.0, 0, 0, 0);
  $g->addEntry(0.16, 0xff, 0xff, 0xff);
  $g->addEntry(0.32, 0, 0, 0);
  $g->addEntry(0.48, 0xff, 0xff, 0xff);
  $g->addEntry(0.64, 0, 0, 0);
  $g->addEntry(0.80, 0xff, 0xff, 0xff);
  $g->addEntry(1.00, 0, 0, 0);

  $s = $p->getShape1();
  $f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT);
  $f->scaleTo(0.05);
  $s->setLeftFill($f);
  $s->movePenTo(-160, -120);
  $s->drawLine(320, 0);
  $s->drawLine(0, 240);
  $s->drawLine(-320, 0);
  $s->drawLine(0, -240);

  $g = new SWFGradient();
  $g->addEntry(0.0, 0, 0, 0);
  $g->addEntry(0.16, 0xff, 0, 0);
  $g->addEntry(0.32, 0, 0, 0);
  $g->addEntry(0.48, 0, 0xff, 0);
  $g->addEntry(0.64, 0, 0, 0);
  $g->addEntry(0.80, 0, 0, 0xff);
  $g->addEntry(1.00, 0, 0, 0);

  $s = $p->getShape2();
  $f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT);
  $f->scaleTo(0.05);
  $f->skewXTo(1.0);
  $s->setLeftFill($f);
  $s->movePenTo(-160, -120);
  $s->drawLine(320, 0);
  $s->drawLine(0, 240);
  $s->drawLine(-320, 0);
  $s->drawLine(0, -240);

  $m = new SWFMovie();
  $m->setDimension(320, 240);
  $i = $m->add($p);
  $i->moveTo(160, 120);

  for ($n=0; $n<=1.001; $n+=0.01) {
    $i->setRatio($n);
    $m->nextFrame();
  }

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Předcházející | Domů | Další
SWFDisplayItem->setName | Nahoru | SWFDisplayItem->skewX


SWFDisplayItem->skewX

(no version information, might be only in CVS)

SWFDisplayItem->skewX -- Sets the X-skew.

Description

void swfdisplayitem->skewx ( float ddegrees)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfdisplayitem->skewx() adds ddegrees to current x-skew.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also
swfdisplayitem->skewx(),
swfdisplayitem->skewy() and
swfdisplayitem->skewyto().

Předcházející | Domů | Další
SWFDisplayItem->setRatio | Nahoru | SWFDisplayItem->skewXTo


SWFDisplayItem->skewXTo

(no version information, might be only in CVS)

SWFDisplayItem->skewXTo -- Sets the X-skew.

Description

void swfdisplayitem->skewxto ( float degrees)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfdisplayitem->skewxto() sets the x-skew to degrees. For degrees is 1.0, it means a 45-degree forward slant. More is more forward, less is more backward.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also
swfdisplayitem->skewx(),
swfdisplayitem->skewy() and
swfdisplayitem->skewyto().

Předcházející | Domů | Další
SWFDisplayItem->skewX | Nahoru | SWFDisplayItem->skewY


SWFDisplayItem->skewY

(no version information, might be only in CVS)

SWFDisplayItem->skewY -- Sets the Y-skew.

Description

void swfdisplayitem->skewy ( float ddegrees)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfdisplayitem->skewy() adds ddegrees to current y-skew.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also
swfdisplayitem->skewyto(),
swfdisplayitem->skewx() and
swfdisplayitem->skewxto().

Předcházející | Domů | Další
SWFDisplayItem->skewXTo | Nahoru | SWFDisplayItem->skewYTo


SWFDisplayItem->skewYTo

(no version information, might be only in CVS)

SWFDisplayItem->skewYTo -- Sets the Y-skew.

Description

void swfdisplayitem->skewyto ( float degrees)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfdisplayitem->skewyto() sets the y-skew to degrees. For degrees is 1.0, it means a 45-degree forward slant. More is more upward, less is more downward.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also
swfdisplayitem->skewy(),
swfdisplayitem->skewx() and
swfdisplayitem->skewxto().

Předcházející | Domů | Další
SWFDisplayItem->skewY | Nahoru | SWFDisplayItem


SWFDisplayItem

(no version information, might be only in CVS)

SWFDisplayItem -- Creates a new displayitem object.

Description

new swfdisplayitem ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfdisplayitem() creates a new swfdisplayitem object.

Here's where all the animation takes place. After you define a shape, a text object, a sprite, or a button, you add it to the movie, then use the returned handle to move, rotate, scale, or skew the thing.

SWFDisplayItem has the following methods : swfdisplayitem->move(),
swfdisplayitem->moveto(), swfdisplayitem->scaleto(),
swfdisplayitem->scale(), swfdisplayitem->rotate(),
swfdisplayitem->rotateto(), swfdisplayitem->skewxto(),
swfdisplayitem->skewx(), swfdisplayitem->skewyto()
swfdisplayitem->skewyto(), swfdisplayitem->setdepth()
swfdisplayitem->remove(), swfdisplayitem->setname()
swfdisplayitem->setratio(), swfdisplayitem->addcolor()
and swfdisplayitem->multcolor().

Předcházející | Domů | Další
SWFDisplayItem->skewYTo | Nahoru | SWFFill->moveTo


SWFFill->moveTo

(no version information, might be only in CVS)

SWFFill->moveTo -- Moves fill origin

Description

void swffill->moveto ( int x, int y)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swffill->moveto() moves fill's origin to (x,y) in global coordinates.

Předcházející | Domů | Další
SWFDisplayItem | Nahoru | SWFFill->rotateTo


SWFFill->rotateTo

(no version information, might be only in CVS)

SWFFill->rotateTo -- Sets fill's rotation

Description

void swffill->rotateto ( float degrees)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swffill->rotateto() sets fill's rotation to degrees degrees.

Předcházející | Domů | Další
SWFFill->moveTo | Nahoru | SWFFill->scaleTo


SWFFill->scaleTo

(no version information, might be only in CVS)

SWFFill->scaleTo -- Sets fill's scale

Description

void swffill->scaleto ( int x, int y)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swffill->scaleto() sets fill's scale to x in the x-direction, y in the y-direction.

Předcházející | Domů | Další
SWFFill->rotateTo | Nahoru | SWFFill->skewXTo


SWFFill->skewXTo

(no version information, might be only in CVS)

SWFFill->skewXTo -- Sets fill x-skew

Description

void swffill->skewxto ( float x)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swffill->skewxto() sets fill x-skew to x. For x is 1.0, it is a 45-degree forward slant. More is more forward, less is more backward.

Předcházející | Domů | Další
SWFFill->scaleTo | Nahoru | SWFFill->skewYTo


SWFFill->skewYTo

(no version information, might be only in CVS)

SWFFill->skewYTo -- Sets fill y-skew

Description

void swffill->skewyto ( float y)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swffill->skewyto() sets fill y-skew to y. For y is 1.0, it is a 45-degree upward slant. More is more upward, less is more downward.

Předcházející | Domů | Další
SWFFill->skewXTo | Nahoru | SWFFill


SWFFill

(PHP 4 >= 4.0.5)

SWFFill -- Loads SWFFill object

Description

new SWFFill ( void )

The swffill() object allows you to transform (scale, skew, rotate) bitmap and gradient fills. swffill() objects are created by the swfshape->addfill() methods.

SWFFill has the following methods : swffill->moveto() and swffill->scaleto(), swffill->rotateto(), swffill->skewxto() and swffill->skewyto().

Předcházející | Domů | Další
SWFFill->skewYTo | Nahoru | swffont->getwidth


swffont->getwidth

(no version information, might be only in CVS)

swffont->getwidth -- Returns the string's width

Description

int swffont->getwidth ( string string)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swffont->getwidth() returns the string string's width, using font's default scaling. You'll probably want to use the swftext() version of this method which uses the text object's scale.

Předcházející | Domů | Další
SWFFill | Nahoru | SWFFont


SWFFont

(PHP 4 >= 4.0.5)

SWFFont -- Loads a font definition

Description

new swffont ( string filename)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

If filename is the name of an FDB file (i.e., it ends in ".fdb"), load the font definition found in said file. Otherwise, create a browser-defined font reference.

FDB ("font definition block") is a very simple wrapper for the SWF DefineFont2 block which contains a full description of a font. One may create FDB files from SWT Generator template files with the included makefdb utility- look in the util directory off the main ming distribution directory.

Browser-defined fonts don't contain any information about the font other than its name. It is assumed that the font definition will be provided by the movie player. The fonts _serif, _sans, and _typewriter should always be available. For example:
<?php
$f = newSWFFont("_sans");
?>
will give you the standard sans-serif font, probably the same as what you'd get with <font name="sans-serif"> in HTML.

swffont() returns a reference to the font definition, for use in the swftext->setfont() and the swftextfield->setfont() methods.

SWFFont has the following methods : swffont->getwidth().

Předcházející | Domů | Další
swffont->getwidth | Nahoru | SWFGradient->addEntry


SWFGradient->addEntry

(no version information, might be only in CVS)

SWFGradient->addEntry -- Adds an entry to the gradient list.

Description

void swfgradient->addentry ( float ratio, int red, int green, int blue [, int a])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfgradient->addentry() adds an entry to the gradient list. ratio is a number between 0 and 1 indicating where in the gradient this color appears. Thou shalt add entries in order of increasing ratio.

red, green, blue is a color (RGB mode). Last parameter a is optional.

Předcházející | Domů | Další
SWFFont | Nahoru | SWFGradient


SWFGradient

(PHP 4 >= 4.0.5)

SWFGradient -- Creates a gradient object

Description

new swfgradient ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfgradient() creates a new SWFGradient object.

After you've added the entries to your gradient, you can use the gradient in a shape fill with the swfshape->addfill() method.

SWFGradient has the following methods : swfgradient->addentry().

This simple example will draw a big black-to-white gradient as background, and a reddish disc in its center.

Příklad 1. swfgradient() example

<?php

  $m = new SWFMovie();
  $m->setDimension(320, 240);

  $s = new SWFShape();

  // first gradient- black to white
  $g = new SWFGradient();
  $g->addEntry(0.0, 0, 0, 0);
  $g->addEntry(1.0, 0xff, 0xff, 0xff);

  $f = $s->addFill($g, SWFFILL_LINEAR_GRADIENT);
  $f->scaleTo(0.01);
  $f->moveTo(160, 120);
  $s->setRightFill($f);
  $s->drawLine(320, 0);
  $s->drawLine(0, 240);
  $s->drawLine(-320, 0);
  $s->drawLine(0, -240);

  $m->add($s);

  $s = new SWFShape();

  // second gradient- radial gradient from red to transparent
  $g = new SWFGradient();
  $g->addEntry(0.0, 0xff, 0, 0, 0xff);
  $g->addEntry(1.0, 0xff, 0, 0, 0);

  $f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT);
  $f->scaleTo(0.005);
  $f->moveTo(160, 120);
  $s->setRightFill($f);
  $s->drawLine(320, 0);
  $s->drawLine(0, 240);
  $s->drawLine(-320, 0);
  $s->drawLine(0, -240);

  $m->add($s);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Předcházející | Domů | Další
SWFGradient->addEntry | Nahoru | SWFMorph->getshape1


SWFMorph->getshape1

(no version information, might be only in CVS)

SWFMorph->getshape1 -- Gets a handle to the starting shape

Description

mixed swfmorph->getshape1 ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfmorph->getshape1() gets a handle to the morph's starting shape. swfmorph->getshape1() returns an swfshape() object.

Předcházející | Domů | Další
SWFGradient | Nahoru | SWFMorph->getshape2


SWFMorph->getshape2

(no version information, might be only in CVS)

SWFMorph->getshape2 -- Gets a handle to the ending shape

Description

mixed swfmorph->getshape2 ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfmorph->getshape2() gets a handle to the morph's ending shape. swfmorph->getshape2() returns an swfshape() object.

Předcházející | Domů | Další
SWFMorph->getshape1 | Nahoru | SWFMorph


SWFMorph

(PHP 4 >= 4.0.5)

SWFMorph -- Creates a new SWFMorph object.

Description

new swfmorph ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfmorph() creates a new SWFMorph object.

Also called a "shape tween". This thing lets you make those tacky twisting things that make your computer choke. Oh, joy!

The methods here are sort of weird. It would make more sense to just have newSWFMorph(shape1, shape2);, but as things are now, shape2 needs to know that it's the second part of a morph. (This, because it starts writing its output as soon as it gets drawing commands- if it kept its own description of its shapes and wrote on completion this and some other things would be much easier.)

SWFMorph has the following methods : swfmorph->getshape1() and swfmorph->getshape1().

This simple example will morph a big red square into a smaller blue black-bordered square.

Příklad 1. swfmorph() example

<?php
  $p = new SWFMorph();

  $s = $p->getShape1();
  $s->setLine(0, 0, 0, 0);

  /* Note that this is backwards from normal shapes (left instead of right).
     I have no idea why, but this seems to work.. */

  $s->setLeftFill($s->addFill(0xff, 0, 0));
  $s->movePenTo(-1000,-1000);
  $s->drawLine(2000,0);
  $s->drawLine(0,2000);
  $s->drawLine(-2000,0);
  $s->drawLine(0,-2000);

  $s = $p->getShape2();
  $s->setLine(60,0,0,0);
  $s->setLeftFill($s->addFill(0, 0, 0xff));
  $s->movePenTo(0,-1000);
  $s->drawLine(1000,1000);
  $s->drawLine(-1000,1000);
  $s->drawLine(-1000,-1000);
  $s->drawLine(1000,-1000);

  $m = new SWFMovie();
  $m->setDimension(3000,2000);
  $m->setBackground(0xff, 0xff, 0xff);

  $i = $m->add($p);
  $i->moveTo(1500,1000);

  for ($r=0.0; $r<=1.0; $r+=0.1) {
    $i->setRatio($r);
    $m->nextFrame();
  }

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Předcházející | Domů | Další
SWFMorph->getshape2 | Nahoru | SWFMovie->add


SWFMovie->add

(no version information, might be only in CVS)

SWFMovie->add -- Adds any type of data to a movie.

Description

void swfmovie->add ( resource instance)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfmovie->add() adds instance to the current movie. instance is any type of data : Shapes, text, fonts, etc. must all be added to the movie to make this work.

For displayable types (shape, text, button, sprite), this returns an swfdisplayitem(), a handle to the object in a display list. Thus, you can add the same shape to a movie multiple times and get separate handles back for each separate instance.

See also all other objects (adding this later), and swfmovie->remove()

See examples in : swfdisplayitem->rotateto() and swfshape->addfill().

Předcházející | Domů | Další
SWFMorph | Nahoru | SWFMovie->nextframe


SWFMovie->nextframe

(no version information, might be only in CVS)

SWFMovie->nextframe -- Moves to the next frame of the animation.

Description

void swfmovie->nextframe ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfmovie->nextframe() moves to the next frame of the animation.

Předcházející | Domů | Další
SWFMovie->add | Nahoru | SWFMovie->output


SWFMovie->output

(no version information, might be only in CVS)

SWFMovie->output -- Dumps your lovingly prepared movie out.

Description

void swfmovie->output ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfmovie->output() dumps your lovingly prepared movie out. In PHP, preceding this with the command
<?php
header('Content-type: application/x-shockwave-flash');
?>
convinces the browser to display this as a flash movie.

See also swfmovie->save().

See examples in :
swfmovie->streammp3(),
swfdisplayitem->rotateto(),
swfaction()...
Any example will use this method.

Předcházející | Domů | Další
SWFMovie->nextframe | Nahoru | swfmovie->remove


swfmovie->remove

(no version information, might be only in CVS)

swfmovie->remove -- Removes the object instance from the display list.

Description

void swfmovie->remove ( resource instance)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfmovie->remove() removes the object instance instance from the display list.

See also swfmovie->add().

Předcházející | Domů | Další
SWFMovie->output | Nahoru | SWFMovie->save


SWFMovie->save

(no version information, might be only in CVS)

SWFMovie->save -- Saves your movie in a file.

Description

void swfmovie->save ( string filename)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfmovie->save() saves your movie to the file named filename.

See also output().

Předcházející | Domů | Další
swfmovie->remove | Nahoru | SWFMovie->setbackground


SWFMovie->setbackground

(no version information, might be only in CVS)

SWFMovie->setbackground -- Sets the background color.

Description

void swfmovie->setbackground ( int red, int green, int blue)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfmovie->setbackground() sets the background color. Why is there no rgba version? Think about it. (Actually, that's not such a dumb question after all- you might want to let the HTML background show through. There's a way to do that, but it only works on IE4. Search the http://www.macromedia.com/ site for details.)

Předcházející | Domů | Další
SWFMovie->save | Nahoru | SWFMovie->setdimension


SWFMovie->setdimension

(no version information, might be only in CVS)

SWFMovie->setdimension -- Sets the movie's width and height.

Description

void swfmovie->setdimension ( int width, int height)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfmovie->setdimension() sets the movie's width to width and height to height.

Předcházející | Domů | Další
SWFMovie->setbackground | Nahoru | SWFMovie->setframes


SWFMovie->setframes

(no version information, might be only in CVS)

SWFMovie->setframes -- Sets the total number of frames in the animation.

Description

void swfmovie->setframes ( string numberofframes)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfmovie->setframes() sets the total number of frames in the animation to numberofframes.

Předcházející | Domů | Další
SWFMovie->setdimension | Nahoru | SWFMovie->setrate


SWFMovie->setrate

(no version information, might be only in CVS)

SWFMovie->setrate -- Sets the animation's frame rate.

Description

void swfmovie->setrate ( int rate)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfmovie->setrate() sets the frame rate to rate, in frame per seconds. Animation will slow down if the player can't render frames fast enough- unless there's a streaming sound, in which case display frames are sacrificed to keep sound from skipping.

Předcházející | Domů | Další
SWFMovie->setframes | Nahoru | SWFMovie->streammp3


SWFMovie->streammp3

(no version information, might be only in CVS)

SWFMovie->streammp3 -- Streams a MP3 file.

Description

void swfmovie->streammp3 ( string mp3FileName)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfmovie->streammp3() streams the mp3 file mp3FileName. Not very robust in dealing with oddities (can skip over an initial ID3 tag, but that's about it). Like swfshape->addjpegfill(), this isn't a stable function- we'll probably need to make a separate SWFSound object to contain sound types.

Note that the movie isn't smart enough to put enough frames in to contain the entire mp3 stream- you'll have to add (length of song * frames per second) frames to get the entire stream in.

Yes, now you can use ming to put that rock and roll devil worship music into your SWF files. Just don't tell the RIAA.

Příklad 1. swfmovie->streammp3() example

<?php
  $m = new SWFMovie();
  $m->setRate(12.0);
  $m->streamMp3("distortobass.mp3");
  // use your own MP3

  // 11.85 seconds at 12.0 fps = 142 frames
  $m->setFrames(142);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Předcházející | Domů | Další
SWFMovie->setrate | Nahoru | SWFMovie


SWFMovie

(PHP 4 >= 4.0.5)

SWFMovie -- Creates a new movie object, representing an SWF version 4 movie.

Description

new swfmovie ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfmovie() creates a new movie object, representing an SWF version 4 movie.

SWFMovie has the following methods :
swfmovie->output(),swfmovie->save(),
swfmovie->add(), swfmovie->remove(),
swfmovie->nextframe(), swfmovie->setbackground(),
swfmovie->setrate(), swfmovie->setdimension(),
swfmovie->setframes() and swfmovie->streammp3().

See examples in : swfdisplayitem->rotateto(), swfshape->setline(), swfshape->addfill()... Any example will use this object.

Předcházející | Domů | Další
SWFMovie->streammp3 | Nahoru | SWFShape->addFill


SWFShape->addFill

(no version information, might be only in CVS)

SWFShape->addFill -- Adds a solid fill to the shape.

Description

void swfshape->addfill ( int red, int green, int blue [, int a])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

void swfshape->addfill ( SWFbitmap bitmap [, int flags])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

void swfshape->addfill ( SWFGradient gradient [, int flags])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfshape->addfill() adds a solid fill to the shape's list of fill styles. swfshape->addfill() accepts three different types of arguments.

red, green, blue is a color (RGB mode). Last parameter a is optional.

The bitmap argument is an swfbitmap() object. The flags argument can be one of the following values : SWFFILL_CLIPPED_BITMAP or SWFFILL_TILED_BITMAP. Default is SWFFILL_TILED_BITMAP. I think.

The gradient argument is an swfgradient() object. The flags argument can be one of the following values : SWFFILL_RADIAL_GRADIENT or SWFFILL_LINEAR_GRADIENT. Default is SWFFILL_LINEAR_GRADIENT. I'm sure about this one. Really.

swfshape->addfill() returns an swffill()
object for use with the swfshape->setleftfill()
and swfshape->setrightfill() functions
described below.

See also swfshape->setleftfill() and swfshape->setrightfill().

This simple example will draw a frame on a bitmap. Ah, here's another buglet in the flash player- it doesn't seem to care about the second shape's bitmap's transformation in a morph. According to spec, the bitmap should stretch along with the shape in this example..

Příklad 1. swfshape->addfill() example

<?php

  $p = new SWFMorph();

  $b = new SWFBitmap("alphafill.jpg");
  // use your own bitmap
  $width = $b->getWidth();
  $height = $b->getHeight();

  $s = $p->getShape1();
  $f = $s->addFill($b, SWFFILL_TILED_BITMAP);
  $f->moveTo(-$width/2, -$height/4);
  $f->scaleTo(1.0, 0.5);
  $s->setLeftFill($f);
  $s->movePenTo(-$width/2, -$height/4);
  $s->drawLine($width, 0);
  $s->drawLine(0, $height/2);
  $s->drawLine(-$width, 0);
  $s->drawLine(0, -$height/2);

  $s = $p->getShape2();
  $f = $s->addFill($b, SWFFILL_TILED_BITMAP);

  // these two have no effect!
  $f->moveTo(-$width/4, -$height/2);
  $f->scaleTo(0.5, 1.0);

  $s->setLeftFill($f);
  $s->movePenTo(-$width/4, -$height/2);
  $s->drawLine($width/2, 0);
  $s->drawLine(0, $height);
  $s->drawLine(-$width/2, 0);
  $s->drawLine(0, -$height);

  $m = new SWFMovie();
  $m->setDimension($width, $height);
  $i = $m->add($p);
  $i->moveTo($width/2, $height/2);

  for ($n=0; $n<1.001; $n+=0.03) {
    $i->setRatio($n);
    $m->nextFrame();
  }

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Předcházející | Domů | Další
SWFMovie | Nahoru | SWFShape->drawCurve


SWFShape->drawCurve

(no version information, might be only in CVS)

SWFShape->drawCurve -- Draws a curve (relative).

Description

void swfshape->drawcurve ( int controldx, int controldy, int anchordx, int anchordy)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfshape->drawcurve() draws a quadratic curve (using the current line style,set by swfshape->setline()) from the current pen position to the relative position (anchorx,anchory) using relative control point (controlx,controly). That is, head towards the control point, then smoothly turn to the anchor point.

See also
swfshape->drawlineto(),
swfshape->drawline(),
swfshape->movepento() and
swfshape->movepen().

Předcházející | Domů | Další
SWFShape->addFill | Nahoru | SWFShape->drawCurveTo


SWFShape->drawCurveTo

(no version information, might be only in CVS)

SWFShape->drawCurveTo -- Draws a curve.

Description

void swfshape->drawcurveto ( int controlx, int controly, int anchorx, int anchory)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfshape->drawcurveto() draws a quadratic curve (using the current line style, set by swfshape->setline()) from the current pen position to (anchorx,anchory) using (controlx,controly) as a control point. That is, head towards the control point, then smoothly turn to the anchor point.

See also
swfshape->drawlineto(),
swfshape->drawline(),
swfshape->movepento() and
swfshape->movepen().

Předcházející | Domů | Další
SWFShape->drawCurve | Nahoru | SWFShape->drawLine


SWFShape->drawLine

(no version information, might be only in CVS)

SWFShape->drawLine -- Draws a line (relative).

Description

void swfshape->drawline ( int dx, int dy)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfshape->drawline() draws a line (using the current line style set by swfshape->setline()) from the current pen position to displacement (dx,dy).

See also
swfshape->movepento(),
swfshape->drawcurveto(),
swfshape->movepen() and
swfshape->drawlineto().

Předcházející | Domů | Další
SWFShape->drawCurveTo | Nahoru | SWFShape->drawLineTo


SWFShape->drawLineTo

(no version information, might be only in CVS)

SWFShape->drawLineTo -- Draws a line.

Description

void swfshape->drawlineto ( int x, int y)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfshape->setrightfill() draws a line (using the current line style, set by swfshape->setline()) from the current pen position to point (x,y) in the shape's coordinate space.

See also
swfshape->movepento(),
swfshape->drawcurveto(),
swfshape->movepen() and
swfshape->drawline().

Předcházející | Domů | Další
SWFShape->drawLine | Nahoru | SWFShape->movePen


SWFShape->movePen

(no version information, might be only in CVS)

SWFShape->movePen -- Moves the shape's pen (relative).

Description

void swfshape->movepen ( int dx, int dy)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfshape->setrightfill() move the shape's pen from coordinates (current x,current y) to (current x + dx, current y + dy) in the shape's coordinate space.

See also
swfshape->movepento(),
swfshape->drawcurveto(),
swfshape->drawlineto() and
swfshape->drawline().

Předcházející | Domů | Další
SWFShape->drawLineTo | Nahoru | SWFShape->movePenTo


SWFShape->movePenTo

(no version information, might be only in CVS)

SWFShape->movePenTo -- Moves the shape's pen.

Description

void swfshape->movepento ( int x, int y)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfshape->setrightfill() move the shape's pen to (x,y) in the shape's coordinate space.

See also
swfshape->movepen(),
swfshape->drawcurveto(),
swfshape->drawlineto() and
swfshape->drawline().

Předcházející | Domů | Další
SWFShape->movePen | Nahoru | SWFShape->setLeftFill


SWFShape->setLeftFill

(no version information, might be only in CVS)

SWFShape->setLeftFill -- Sets left rasterizing color.

Description

void swfshape->setleftfill ( swfgradient fill)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

void swfshape->setleftfill ( int red, int green, int blue [, int a])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

What this nonsense is about is, every edge segment borders at most two fills. When rasterizing the object, it's pretty handy to know what those fills are ahead of time, so the swf format requires these to be specified.

swfshape->setleftfill() sets the fill on the left side of the edge- that is, on the interior if you're defining the outline of the shape in a counter-clockwise fashion. The fill object is an SWFFill object returned from one of the addFill functions above.

This seems to be reversed when you're defining a shape in a morph, though. If your browser crashes, just try setting the fill on the other side.

Shortcut for swfshape->setleftfill($s->addfill($r, $g, $b [, $a]));.

See also swfshape->setrightfill().

Předcházející | Domů | Další
SWFShape->movePenTo | Nahoru | SWFShape->setLine


SWFShape->setLine

(no version information, might be only in CVS)

SWFShape->setLine -- Sets the shape's line style.

Description

void swfshape->setline ( int width [, int red [, int green [, int blue [, int a]]]])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfshape->setline() sets the shape's line style. width is the line's width. If width is 0, the line's style is removed (then, all other arguments are ignored). If width > 0, then line's color is set to red, green, blue. Last parameter a is optional.

swfshape->setline() accepts 1, 4 or 5 arguments (not 3 or 2).

You must declare all line styles before you use them (see example).

This simple example will draw a big "!#%*@", in funny colors and gracious style.

Příklad 1. swfshape->setline() example

<?php
  $s = new SWFShape();
  $f1 = $s->addFill(0xff, 0, 0);
  $f2 = $s->addFill(0xff, 0x7f, 0);
  $f3 = $s->addFill(0xff, 0xff, 0);
  $f4 = $s->addFill(0, 0xff, 0);
  $f5 = $s->addFill(0, 0, 0xff);

  // bug: have to declare all line styles before you use them
  $s->setLine(40, 0x7f, 0, 0);
  $s->setLine(40, 0x7f, 0x3f, 0);
  $s->setLine(40, 0x7f, 0x7f, 0);
  $s->setLine(40, 0, 0x7f, 0);
  $s->setLine(40, 0, 0, 0x7f);

  $f = new SWFFont('Techno.fdb');

  $s->setRightFill($f1);
  $s->setLine(40, 0x7f, 0, 0);
  $s->drawGlyph($f, '!');
  $s->movePen($f->getWidth('!'), 0);

  $s->setRightFill($f2);
  $s->setLine(40, 0x7f, 0x3f, 0);
  $s->drawGlyph($f, '#');
  $s->movePen($f->getWidth('#'), 0);

  $s->setRightFill($f3);
  $s->setLine(40, 0x7f, 0x7f, 0);
  $s->drawGlyph($f, '%');
  $s->movePen($f->getWidth('%'), 0);

  $s->setRightFill($f4);
  $s->setLine(40, 0, 0x7f, 0);
  $s->drawGlyph($f, '*');
  $s->movePen($f->getWidth('*'), 0);

  $s->setRightFill($f5);
  $s->setLine(40, 0, 0, 0x7f);
  $s->drawGlyph($f, '@');

  $m = new SWFMovie();
  $m->setDimension(3000,2000);
  $m->setRate(12.0);
  $i = $m->add($s);
  $i->moveTo(1500-$f->getWidth("!#%*@")/2, 1000+$f->getAscent()/2);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Předcházející | Domů | Další
SWFShape->setLeftFill | Nahoru | SWFShape->setRightFill


SWFShape->setRightFill

(no version information, might be only in CVS)

SWFShape->setRightFill -- Sets right rasterizing color.

Description

void swfshape->setrightfill ( swfgradient fill)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

void swfshape->setrightfill ( int red, int green, int blue [, int a])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

See also swfshape->setleftfill().

Shortcut for swfshape->setrightfill($s->addfill($r, $g, $b [, $a]));.

Předcházející | Domů | Další
SWFShape->setLine | Nahoru | SWFShape


SWFShape

(PHP 4 >= 4.0.5)

SWFShape -- Creates a new shape object.

Description

new swfshape ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfshape() creates a new shape object.

SWFShape has the following methods : swfshape->setline(),
swfshape->addfill(), swfshape->setleftfill(),
swfshape->setrightfill(), swfshape->movepento(),
swfshape->movepen(), swfshape->drawlineto(),
swfshape->drawline(), swfshape->drawcurveto()
and swfshape->drawcurve().

This simple example will draw a big red elliptic quadrant.

Příklad 1. swfshape() example

<?php
  $s = new SWFShape();
  $s->setLine(40, 0x7f, 0, 0);
  $s->setRightFill($s->addFill(0xff, 0, 0));
  $s->movePenTo(200, 200);
  $s->drawLineTo(6200, 200);
  $s->drawLineTo(6200, 4600);
  $s->drawCurveTo(200, 4600, 200, 200);

  $m = new SWFMovie();
  $m->setDimension(6400, 4800);
  $m->setRate(12.0);
  $m->add($s);
  $m->nextFrame();

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Předcházející | Domů | Další
SWFShape->setRightFill | Nahoru | swfsprite->add


swfsprite->add

(no version information, might be only in CVS)

swfsprite->add -- Adds an object to a sprite

Description

void swfsprite->add ( resource object)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfsprite->add() adds a swfshape(), a
swfbutton(), a swftext(),
a swfaction() or a swfsprite() object.

For displayable types (swfshape(),
swfbutton(), swftext(),
swfaction() or swfsprite()),
this returns a handle  to the object in a display list.

Předcházející | Domů | Další
SWFShape | Nahoru | SWFSprite->nextframe


SWFSprite->nextframe

(no version information, might be only in CVS)

SWFSprite->nextframe -- Moves to the next frame of the animation.

Description

void swfsprite->nextframe ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfsprite->setframes() moves to the next frame of the animation.

Předcházející | Domů | Další
swfsprite->add | Nahoru | SWFSprite->remove


SWFSprite->remove

(no version information, might be only in CVS)

SWFSprite->remove -- Removes an object to a sprite

Description

void swfsprite->remove ( resource object)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfsprite->remove() remove a swfshape(), a
swfbutton(), a swftext(),
a swfaction() or a swfsprite() object
from the sprite.

Předcházející | Domů | Další
SWFSprite->nextframe | Nahoru | SWFSprite->setframes


SWFSprite->setframes

(no version information, might be only in CVS)

SWFSprite->setframes -- Sets the total number of frames in the animation.

Description

void swfsprite->setframes ( int numberofframes)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfsprite->setframes() sets the total number of frames in the animation to numberofframes.

Předcházející | Domů | Další
SWFSprite->remove | Nahoru | SWFSprite


SWFSprite

(PHP 4 >= 4.0.5)

SWFSprite -- Creates a movie clip (a sprite)

Description

new swfsprite ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swfsprite() are also known as a "movie clip", this allows one to create objects which are animated in their own timelines. Hence, the sprite has most of the same methods as the movie.

swfsprite() has the following methods :
swfsprite->add(),
swfsprite->remove(), swfsprite->nextframe()
and swfsprite->setframes().

This simple example will spin gracefully a big red square.

Příklad 1. swfsprite() example

<?php
  $s = new SWFShape();
  $s->setRightFill($s->addFill(0xff, 0, 0));
  $s->movePenTo(-500, -500);
  $s->drawLineTo(500, -500);
  $s->drawLineTo(500, 500);
  $s->drawLineTo(-500, 500);
  $s->drawLineTo(-500, -500);

  $p = new SWFSprite();
  $i = $p->add($s);
  $p->nextFrame();
  $i->rotate(15);
  $p->nextFrame();
  $i->rotate(15);
  $p->nextFrame();
  $i->rotate(15);
  $p->nextFrame();
  $i->rotate(15);
  $p->nextFrame();
  $i->rotate(15);
  $p->nextFrame();

  $m = new SWFMovie();
  $i = $m->add($p);
  $i->moveTo(1500, 1000);
  $i->setName("blah");

  $m->setBackground(0xff, 0xff, 0xff);
  $m->setDimension(3000, 2000);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Předcházející | Domů | Další
SWFSprite->setframes | Nahoru | SWFText->addString


SWFText->addString

(no version information, might be only in CVS)

SWFText->addString -- Draws a string

Description

void swftext->addstring ( string string)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swftext->addstring() draws the string string at the current pen (cursor) location. Pen is at the baseline of the text; i.e., ascending text is in the -y direction.

Předcházející | Domů | Další
SWFSprite | Nahoru | SWFText->getWidth


SWFText->getWidth

(no version information, might be only in CVS)

SWFText->getWidth -- Computes string's width

Description

void swftext->getwidth ( string string)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swftext->addstring() returns the rendered width of the string string at the text object's current font, scale, and spacing settings.

Předcházející | Domů | Další
SWFText->addString | Nahoru | SWFText->moveTo


SWFText->moveTo

(no version information, might be only in CVS)

SWFText->moveTo -- Moves the pen

Description

void swftext->moveto ( int x, int y)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swftext->moveto() moves the pen (or cursor, if that makes more sense) to (x,y) in text object's coordinate space. If either is zero, though, value in that dimension stays the same. Annoying, should be fixed.

Předcházející | Domů | Další
SWFText->getWidth | Nahoru | SWFText->setColor


SWFText->setColor

(no version information, might be only in CVS)

SWFText->setColor -- Sets the current font color

Description

void swftext->setcolor ( int red, int green, int blue [, int a])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swftext->setspacing() changes the current text color. Default is black. I think. Color is represented using the RGB system.

Předcházející | Domů | Další
SWFText->moveTo | Nahoru | SWFText->setFont


SWFText->setFont

(no version information, might be only in CVS)

SWFText->setFont -- Sets the current font

Description

void swftext->setfont ( string font)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swftext->setfont() sets the current font to font.

Předcházející | Domů | Další
SWFText->setColor | Nahoru | SWFText->setHeight


SWFText->setHeight

(no version information, might be only in CVS)

SWFText->setHeight -- Sets the current font height

Description

void swftext->setheight ( int height)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swftext->setheight() sets the current font height to height. Default is 240.

Předcházející | Domů | Další
SWFText->setFont | Nahoru | SWFText->setSpacing


SWFText->setSpacing

(no version information, might be only in CVS)

SWFText->setSpacing -- Sets the current font spacing

Description

void swftext->setspacing ( float spacing)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swftext->setspacing() sets the current font spacing to spacingspacing. Default is 1.0. 0 is all of the letters written at the same point. This doesn't really work that well because it inflates the advance across the letter, doesn't add the same amount of spacing between the letters. I should try and explain that better, prolly. Or just fix the damn thing to do constant spacing. This was really just a way to figure out how letter advances work, anyway.. So nyah.

Předcházející | Domů | Další
SWFText->setHeight | Nahoru | SWFText


SWFText

(PHP 4 >= 4.0.5)

SWFText -- Creates a new SWFText object.

Description

new swftext ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swftext() creates a new SWFText object, fresh for manipulating.

SWFText has the following methods : swftext->setfont(),
swftext->setheight(), swftext->setspacing(),
swftext->setcolor(), swftext->moveto(),
swftext->addstring() and swftext->getwidth().

This simple example will draw a big yellow "PHP generates Flash with Ming" text, on white background.

Příklad 1. swftext() example

<?php
  $f = new SWFFont("Techno.fdb");
  $t = new SWFText();
  $t->setFont($f);
  $t->moveTo(200, 2400);
  $t->setColor(0xff, 0xff, 0);
  $t->setHeight(1200);
  $t->addString("PHP generates Flash with Ming!!");

  $m = new SWFMovie();
  $m->setDimension(5400, 3600);

  $m->add($t);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Předcházející | Domů | Další
SWFText->setSpacing | Nahoru | SWFTextField->addstring


SWFTextField->addstring

(no version information, might be only in CVS)

SWFTextField->addstring -- Concatenates the given string to the text field

Description

void swftextfield->addstring ( string string)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swftextfield->setname() concatenates the string string to the text field.

Předcházející | Domů | Další
SWFText | Nahoru | SWFTextField->align


SWFTextField->align

(no version information, might be only in CVS)

SWFTextField->align -- Sets the text field alignment

Description

void swftextfield->align ( int alignement)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swftextfield->align() sets the text field alignment to alignement. Valid values for alignement are : SWFTEXTFIELD_ALIGN_LEFT, SWFTEXTFIELD_ALIGN_RIGHT, SWFTEXTFIELD_ALIGN_CENTER and SWFTEXTFIELD_ALIGN_JUSTIFY.

Předcházející | Domů | Další
SWFTextField->addstring | Nahoru | SWFTextField->setbounds


SWFTextField->setbounds

(no version information, might be only in CVS)

SWFTextField->setbounds -- Sets the text field width and height

Description

void swftextfield->setbounds ( int width, int height)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swftextfield->setbounds() sets the text field width to width and height to height. If you don't set the bounds yourself, Ming makes a poor guess at what the bounds are.

Předcházející | Domů | Další
SWFTextField->align | Nahoru | SWFTextField->setcolor


SWFTextField->setcolor

(no version information, might be only in CVS)

SWFTextField->setcolor -- Sets the color of the text field.

Description

void swftextfield->setcolor ( int red, int green, int blue [, int a])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swftextfield->setcolor() sets the color of the text field. Default is fully opaque black. Color is represented using RGB system.

Předcházející | Domů | Další
SWFTextField->setbounds | Nahoru | SWFTextField->setFont


SWFTextField->setFont

(no version information, might be only in CVS)

SWFTextField->setFont -- Sets the text field font

Description

void swftextfield->setfont ( string font)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swftextfield->setfont() sets the text field font to the [browser-defined?] font font.

Předcházející | Domů | Další
SWFTextField->setcolor | Nahoru | SWFTextField->setHeight


SWFTextField->setHeight

(no version information, might be only in CVS)

SWFTextField->setHeight -- Sets the font height of this text field font.

Description

void swftextfield->setheight ( int height)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swftextfield->setheight() sets the font height of this text field font to the given height height. Default is 240.

Předcházející | Domů | Další
SWFTextField->setFont | Nahoru | SWFTextField->setindentation


SWFTextField->setindentation

(no version information, might be only in CVS)

SWFTextField->setindentation -- Sets the indentation of the first line.

Description

void swftextfield->setindentation ( int width)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swftextfield->setindentation() sets the indentation of the first line in the text field, to width.

Předcházející | Domů | Další
SWFTextField->setHeight | Nahoru | SWFTextField->setLeftMargin


SWFTextField->setLeftMargin

(no version information, might be only in CVS)

SWFTextField->setLeftMargin -- Sets the left margin width of the text field.

Description

void swftextfield->setleftmargin ( int width)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swftextfield->setleftmargin() sets the left margin width of the text field to width. Default is 0.

Předcházející | Domů | Další
SWFTextField->setindentation | Nahoru | SWFTextField->setLineSpacing


SWFTextField->setLineSpacing

(no version information, might be only in CVS)

SWFTextField->setLineSpacing -- Sets the line spacing of the text field.

Description

void swftextfield->setlinespacing ( int height)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swftextfield->setlinespacing() sets the line spacing of the text field to the height of height. Default is 40.

Předcházející | Domů | Další
SWFTextField->setLeftMargin | Nahoru | SWFTextField->setMargins


SWFTextField->setMargins

(no version information, might be only in CVS)

SWFTextField->setMargins -- Sets the margins width of the text field.

Description

void swftextfield->setmargins ( int left, int right)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swftextfield->setmargins() set both margins at once, for the man on the go.

Předcházející | Domů | Další
SWFTextField->setLineSpacing | Nahoru | SWFTextField->setname


SWFTextField->setname

(no version information, might be only in CVS)

SWFTextField->setname -- Sets the variable name

Description

void swftextfield->setname ( string name)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swftextfield->setname() sets the variable name of this text field to name, for form posting and action scripting purposes.

Předcházející | Domů | Další
SWFTextField->setMargins | Nahoru | SWFTextField->setrightMargin


SWFTextField->setrightMargin

(no version information, might be only in CVS)

SWFTextField->setrightMargin -- Sets the right margin width of the text field.

Description

void swftextfield->setrightmargin ( int width)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swftextfield->setrightmargin() sets the right margin width of the text field to width. Default is 0.

Předcházející | Domů | Další
SWFTextField->setname | Nahoru | SWFTextField


SWFTextField

(PHP 4 >= 4.0.5)

SWFTextField -- Creates a text field object

Description

new swftextfield ( [int flags])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

swftextfield() creates a new text field object. Text Fields are less flexible than swftext() objects- they can't be rotated, scaled non-proportionally, or skewed, but they can be used as form entries, and they can use browser-defined fonts.

The optional flags change the text field's behavior. It has the following possibles values :

  • SWFTEXTFIELD_DRAWBOX draws the outline of the textfield

  • SWFTEXTFIELD_HASLENGTH

  • SWFTEXTFIELD_HTML allows text markup using HTML-tags

  • SWFTEXTFIELD_MULTILINE allows multiple lines

  • SWFTEXTFIELD_NOEDIT indicates that the field shouldn't be user-editable

  • SWFTEXTFIELD_NOSELECT makes the field non-selectable

  • SWFTEXTFIELD_PASSWORD obscures the data entry

  • SWFTEXTFIELD_WORDWRAP allows text to wrap

Flags are combined with the bitwise OR operation. For example,
<?php
$t = newSWFTextField(SWFTEXTFIELD_PASSWORD | SWFTEXTFIELD_NOEDIT);
?>
creates a totally useless non-editable password field.

SWFTextField has the following methods : swftextfield->setfont(),
swftextfield->setbounds(), swftextfield->align(),
swftextfield->setheight(), swftextfield->setleftmargin(),
swftextfield->setrightmargin(), swftextfield->setmargins(),
swftextfield->setindentation(), swftextfield->setlinespacing(),
swftextfield->setcolor(), swftextfield->setname() and
swftextfield->addstring().

Předcházející | Domů | Další
SWFTextField->setrightMargin | Nahoru | Různé funkce


Různé funkce

Manuál PHP
Předcházející Další

LXI. Různé funkce

Úvod

Tyto funkce byly umístěny zde, protože nespadají do žádné jiné kategorie.

Požadavky

Tyto funkce jsou k dispozici jako součást standardního modulu, který je vždy dostupný.

Instalace

K používání těchto funkcí není třeba žádná instalace, jsou součástí jádra PHP.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 1. Misc. Configuration Options

Name | Default | Changeable
ignore_user_abort | "0" | PHP_INI_ALL
highlight.string | #DD0000 | PHP_INI_ALL
highlight.comment | #FF9900 | PHP_INI_ALL
highlight.keyword | #007700 | PHP_INI_ALL
highlight.bg | #FFFFFF | PHP_INI_ALL
highlight.default | #0000BB | PHP_INI_ALL
highlight.html | #000000 | PHP_INI_ALL
browscap | NULL | PHP_INI_SYSTEM
For further details and definition of the PHP_INI_* constants see ini_set().

Zde je stručné vysvětlení konfiguračních direktiv.

ignore_user_abort boolean

TRUE by default. If changed to FALSE scripts will be terminated as soon as they try to output something after a client has aborted their connection.

See also ignore_user_abort().

highlight.comment string, highlight.default string, highlight.html string, highlight.keyword string, highlight.string string

Colors for Syntax Highlighting mode. Anything that's acceptable in <font color="??????"> would work.

browscap string

Name (e.g.: browscap.ini) and location of browser capabilities file. See also get_browser().

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

CONNECTION_ABORTED (integer)

CONNECTION_NORMAL (integer)

CONNECTION_TIMEOUT (integer)

Obsah
connection_aborted -- Vrací TRUE, pokud se klient odpojil
connection_status -- Vrací bitové pole stavu spojení
connection_timeout -- Return TRUE if script timed out
constant -- Returns the value of a constant
define -- Definuje pojmenovanou konstantu.
defined -- Zkontroluje, jestli existuje daná pojmenovaná konstanta
die -- Vytiskne vzkaz a ukončí současný skript
eval -- Vyhodnotí řetězec jako PHP kód
exit -- Ukončí současný skript
get_browser -- Určuje schopnosti uživatelova browseru
highlight_file -- Zvýrazní syntaxi souboru
highlight_string -- Zvýraznění syntaxe řetězce
ignore_user_abort -- Nastavuje, jestli má ukončení spojení klientem přerušit vykonávání skriptu
pack -- Sbalí data do binárního řetězce.
show_source -- Zvýrazní syntaxi souboru
sleep -- Odloží provedení
uniqid -- Generatuje unikátní id
unpack -- Rozbalí data z binárního řetězce
usleep -- Odloží provedení v mikrosekundách

Předcházející | Domů | Další
SWFTextField | Nahoru | connection_aborted


connection_aborted

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

connection_aborted -- Vrací TRUE, pokud se klient odpojil

Popis

int connection_aborted ( void )

Vrátí TRUE, pokud se klient odpojil. Úplné vysvětlení viz popis v Obsluha spojení v kapitole Vlastnosti.

Předcházející | Domů | Další
Různé funkce | Nahoru | connection_status


connection_status

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

connection_status -- Vrací bitové pole stavu spojení

Popis

int connection_status ( void )

Vrací bitové pole stavu spojení. Úplné vysvětlení viz popis v Obsluha spojení v kapitole Vlastnosti.

Předcházející | Domů | Další
connection_aborted | Nahoru | connection_timeout


connection_timeout

(PHP 3>= 3.0.7, PHP 4 <= 4.0.4)

connection_timeout -- Return TRUE if script timed out

Popis

int connection_timeout ( void )

Returns TRUE if script timed out. Úplné vysvětlení viz popis v Obsluha spojení v kapitole Vlastnosti.

Předcházející | Domů | Další
connection_status | Nahoru | constant


constant

(PHP 4 >= 4.0.4, PHP 5)

constant -- Returns the value of a constant

Description

mixed constant ( string name)

constant() will return the value of the constant indicated by name.

constant() is useful if you need to retrieve the value of a constant, but do not know its name. i.e. It is stored in a variable or returned by a function.

Příklad 1. constant() example

<?php

define("MAXSIZE", 100);

echo MAXSIZE;
echo constant("MAXSIZE"); // same thing as the previous line

?>

See also define(), defined() and the section on Constants.

Předcházející | Domů | Další
connection_timeout | Nahoru | define


define

(PHP 3, PHP 4 , PHP 5)

define -- Definuje pojmenovanou konstantu.

Popis

int define ( string name, mixed value [, int case_insensitive])

Definuje pojmenovanou konstantu, která je podobná proměnné s výjimkou toho, že:

  • Konstanty nemají znak dolaru ('$') před jménem;

  • Konstanty jsou dostupné odkudkoliv bez ohledu na pravidla rozsahu platnosti proměnných;

  • Konstanty se nedají předefinovávat a rušit; a

  • Konstanty se mohou nabývat pouze skalárních hodnot.

Název konstanty je dán argumentem name; hodnota je dána argumentem value.

Dále je dostupný volitelní třetí argument case_insensitive. Pokud má hodnotu 1, konstanta bude definována case-insensitive. Výchozí chování je case-sensitive; tj. CONSTANT and Constant reprezentují různé hodnoty.

Příklad 1. Definování konstant

<?php
define ("CONSTANT", "Hello world.");
echo CONSTANT; // výstup je "Hello world."
?>

define() vrací TRUE při úspěchu a FALSE pokud dojde k chybě.

Viz také defined() a sekci Konstanty.

Předcházející | Domů | Další
constant | Nahoru | defined


defined

(PHP 3, PHP 4 , PHP 5)

defined -- Zkontroluje, jestli existuje daná pojmenovaná konstanta

Popis

int defined ( string name)

Vrací TRUE, pokud byla definována pojmenovaná konstanta daná argumentem name, jinak FALSE.

Příklad 1. Kontrola konstant

<?php
if (defined("CONSTANT")){ // název konstanty by měl být v uvozovkách
    echo CONSTANT; //
    }
?>

Viz také define() a sekci Konstanty.

Předcházející | Domů | Další
define | Nahoru | die


die

(no version information, might be only in CVS)

die -- Vytiskne vzkaz a ukončí současný skript

Popis

void die ( string message)

Tento jazykový konstrukt vytiskne vzkaz a ukončí parsování skriptu. Nemá návratovou hodnotu.

Příklad 1. die example

<?php
$filename = '/path/to/data-file';
$file = fopen ($filename, 'r')
    or die("nepodařilo se otevřít soubor ($filename)");
?>

Viz také exit().

Předcházející | Domů | Další
defined | Nahoru | eval


eval

(PHP 3, PHP 4, PHP 5 )

eval -- Vyhodnotí řetězec jako PHP kód

Popis

mixed eval ( string code_str)

eval() vyhodnotí řetězec předaný v code_str jako PHP kód. Kromě jiného se dá využít na ukládání kódu v textovém sloupci databáze pro pozdější vykonání.

Při používání eval() byste měli mít na paměti několik faktorů. Pamatujte si, že předávaný řetězec musí být platný PHP kód, včetně věcí jako ukončování výrazů středníkem, aby parser nezemřel na řádku po eval(), a řádné escapování v code_str.

Také pamatujte, ze hodnoty přiřazené proměnným v eval() těmto proměnným zůstanou i v hlavním skriptu.

Výraz return okamžitě ukončí vyhodnocování předaného řetězce. V PHP 4 můžete použít return k vrácení hodnoty, která se stane výsledkem eval() funkce, zatímco v PHP 3 byl eval() typu void nic nevracel.

Příklad 1. eval() příklad - jednoduché spojení textů

<?php
$string = 'cup';
$name = 'coffee';
$str = 'This is a $string with my $name in it.<br>';
echo $str;
eval ("\$str = \"$str\";");
echo $str;
?>

Výše uvedený příklad ukáže:
This is a $string with my $name in it.
This is a cup with my coffee in it.

Předcházející | Domů | Další
die | Nahoru | exit


exit

(PHP 3, PHP 4, PHP 5 )

exit -- Ukončí současný skript

Popis

void exit ( void )

Tento jazykový konstrkut ukončí parsování skriptu. Nevrací žádnou hodnotu.

Viz také die().

Předcházející | Domů | Další
eval | Nahoru | get_browser


get_browser

(PHP 3, PHP 4 , PHP 5)

get_browser -- Určuje schopnosti uživatelova browseru

Popis

object get_browser ( [string user_agent])

get_browser() se pokusí určit schopnosti uživatelova browseru. Toho je dosaženo vyhledáním informací o browseru v souboru browscap.ini. Standardne se použije $HTTP_USER_AGENT; nicméně, můžete to změnit (tj. vyhledat informace o jiném browseru) předáním volitelného argumentu user_agent.

Informace se vracejí jako objekt, který obsahuje různé datové elementy, které reprezentují například hlavní a vedlejší číslo verze a ID řetězec; TRUE/false hodnoty vlastností jako podpora rámců, JavaScript a cookies, atd.

Jakkoli browscap.ini obsahuje informace o mnoha browserech, aktuálnost databáze závisí na uživatelských updatech. Formát souboru je poměrně snadno pochopitelný.

Následující příklad ukazuje, jak by se daly vypsat všechny informace získané o uživatelově browseru.

Příklad 1. get_browser() příklad

<?php
function list_array ($array) {
    while (list ($key, $value) = each ($array)) {
    $str .= "<b>$key:</b> $value<br>\n";
    }
    return $str;
}
echo "$HTTP_USER_AGENT<hr>\n";
$browser = get_browser();
echo list_array ((array) $browser);
?>

Výstup z výše uvedeného skriptu by vypadal asi takto:

Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586)<hr>
<b>browser_name_pattern:</b> Mozilla/4\.5.*<br>
<b>parent:</b> Netscape 4.0<br>
<b>platform:</b> Unknown<br>
<b>majorver:</b> 4<br>
<b>minorver:</b> 5<br>
<b>browser:</b> Netscape<br>
<b>version:</b> 4<br>
<b>frames:</b> 1<br>
<b>tables:</b> 1<br>
<b>cookies:</b> 1<br>
<b>backgroundsounds:</b> <br>
<b>vbscript:</b> <br>
<b>javascript:</b> 1<br>
<b>javaapplets:</b> 1<br>
<b>activexcontrols:</b> <br>
<b>beta:</b> <br>
<b>crawler:</b> <br>
<b>authenticodeupdate:</b> <br>
<b>msn:</b> <br>

Aby to fungovalo, browscap direktiva ve vašem konfiguračním souboru musí ukazovat na platné umístění browscap.ini souboru.

Pro další informace (včetně lokací na kterých můžete získat browscap.ini soubor) viz PHP FAQ na http://www.php.net/manual/faq.php.

Předcházející | Domů | Další
exit | Nahoru | highlight_file


highlight_file

(PHP 4 , PHP 5)

highlight_file -- Zvýrazní syntaxi souboru

Popis

boolean highlight_file ( string filename)

Funkce highlight_file() vytiskne barevně zvýrazněnou syntaxi kódu obsaženého ve filename s použitím barev definovaných ve zvýrazňovači syntaxe zabudovaném v PHP. Vrací TRUE při úspěchu, jinak FALSE (PHP 4).

Příklad 1. Tvorba URL zvyrazňující syntaxi

K vytvoření URL, která zvýrazní syntaxi jakéhokoliv skriptu, který jí předáte využijeme "ForceType" direktivu Apache k vytvoření hezkého vzorce URL, and pomocí funkce highlight_file() vypíšeme hezky vypadající výpis kódu.

Do svého httpd.conf přidejte následující:

<Location /source>
    ForceType application/x-httpd-php
</Location>

A potom vytvořte soubor pojmenovaný "source", a umístěte ho do svého web root adresáře.

<HTML>
<HEAD>
<TITLE>Zobrazení zdroje</TITLE>
</HEAD>
<BODY BGCOLOR="white">
<?php
    $script = getenv ("PATH_TRANSLATED");
    if(!$script) {
    echo "<BR><B>CHYBA: Je potřeba název skriptu!</B><BR>";
    } else {
    if (ereg("(\.php|\.inc)$",$script)) {
    echo "<H1>Zdroj souboru: $PATH_INFO</H1>\n<HR>\n";
    highlight_file($script);
    } else {
    echo "<H1>CHYBA: Povoleny jsou pouze soubory s příponou .php nebo .inc!</H1>";
    }
    }
    echo "<HR>Zpracováno: ".date("Y/M/d H:i:s",time());
?>
</BODY>
</HTML>

Potom můžete použít URL jako je ta níže k zobrazení obarvené verze skriptu umístěné v "/path/to/script.php" na vašem webu.

http://your.server.com/source/path/to/script.php

Viz také highlight_string(), show_source().

Předcházející | Domů | Další
get_browser | Nahoru | highlight_string


highlight_string

(PHP 4 , PHP 5)

highlight_string -- Zvýraznění syntaxe řetězce

Popis

void highlight_string ( string str)

Funkce highlight_string() vytiskne barevně zvýrazněnou verzi str s použitím barev definovaných ve zvýrazňovači syntaxe zabudovaném v PHP. Vrací TRUE při úspěchu, jinak FALSE (PHP 4).

Viz také highlight_file(), show_source().

Předcházející | Domů | Další
highlight_file | Nahoru | ignore_user_abort


ignore_user_abort

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ignore_user_abort -- Nastavuje, jestli má ukončení spojení klientem přerušit vykonávání skriptu

Popis

int ignore_user_abort ( [int setting])

Tato funkce nastavuje, jestli má odpojení klienta způsobit ukončení skriptu. Vrací předchozí nastavení, a při zavolání bez argumentu současné nastavení nemění, pouze ho vrací. Úplné vysvětlení viz popis v sekci Obsluha spojení v kapitole Vlastnosti

Předcházející | Domů | Další
highlight_string | Nahoru | pack


pack

(PHP 3, PHP 4 , PHP 5)

pack -- Sbalí data do binárního řetězce.

Popis

string pack ( string format [, mixed args])

Sbalí předané argumenty do binárního řetězce podle argumentu format. Vrací binární řetězec obsahující předaná data.

Nápad na tuto funkci byl převzat z Perlu, a všechny formátovací kódy fungují stejně jako tam, nicméně, některé formátovací kódy chybí, jako například Perlovský formátovací kód "u". Formátovací řetězec sestává z formátovacích kódu následovaných volitelným opakovacím argumentem. Opakovací argument může být buď celočíselná hodnota, nebo * pro opakování do konce vstupních dat. U a, A, h, H počet opakování určuje, kolik znaků se vezme z jednoho datového argumentu, u @ je to absolutní pozice, kde se mají umístit další data, u všeho ostatního počet opakování určuje, kolik datových argumentů se spotřebuje a sbalí do výsledného binárního řetězce. V současnosti jsou implementovány

  • a řetězec doplněný NUL hodnotami

  • A řetězec doplněný SPACE hodnotami

  • h Hex řetězec, spodní slabika první

  • H Hex řetězec, horní slabika první

  • c signed char

  • C unsigned char

  • s signed short (vždy 16 bitů, machine byte order)

  • S unsigned short (vždy 16 bitů, machine byte order)

  • n unsigned short (vždy 16 bitů, big endian byte order)

  • v unsigned short (vždy 16 bitů, little endian byte order)

  • i signed integer (velikost a pořadí bytů závislá na systému)

  • I unsigned integer (velikost a pořadí bytů závislá na systému)

  • l signed long (vždy 32 bitů, machine byte order)

  • L unsigned long (vždy 32 bitů, machine byte order)

  • N unsigned long (vždy 32 bitů, big endian byte order)

  • V unsigned long (vždy 32 bitů, little endian byte order)

  • f float (velikost a reprezentace závislá na systému)

  • d double (velikost a reprezentace závislá na systému)

  • x NUL byte

  • X Back up one byte

  • @ NUL-fill to absolute position

Příklad 1. pack() formátovací řetězec

$binarydata = pack ("nvc*", 0x1234, 0x5678, 65, 66);

Výsledný binární řetězec bude 6 bytů dlouhý, a bude obsahovat bytovou sekvenci 0x12, 0x34, 0x78, 0x56, 0x41, 0x42.

Všimněte si, že rozdíl mezi hodnotami se znaménkem a bez znaménka ovlivňuje pouze funkci unpack(), zatímco funkce pack() dává stejný výsledek pro formátovací kódy se znaménkem i bez znaménka.

Dále si všimněte, že PHP interně ukládá celočíselné hodnoty jako hodnoty se znaménkem o velikosti závislé na systému. Pokud zadáte hodnotu bez znaménka, která bude příliš velká, než aby se dala takto uložit, převede se na double, což často vytváří nežádoucí výsledky.

Předcházející | Domů | Další
ignore_user_abort | Nahoru | show_source


show_source

(PHP 4 , PHP 5)

show_source -- Zvýrazní syntaxi souboru

Popis

boolean show_source ( string filename)

Funkce show_source() vytiskne barevně zvýrazněnou syntaxi kódu obsaženého ve filename s použitím barev definovaných ve zvýrazňovači syntaxe zabudovaném v PHP. Vrací TRUE při úspěchu, jinak FALSE (PHP 4).

Poznámka: Tato funkce je alias funkce highlight_file()

Viz také highlight_string(), highlight_file().

Předcházející | Domů | Další
pack | Nahoru | sleep


sleep

(PHP 3, PHP 4 , PHP 5)

sleep -- Odloží provedení

Popis

void sleep ( int seconds)

Funkce sleep odkládá provedení programu o počet sekund předaný v argumentu seconds.

Viz také usleep().

Předcházející | Domů | Další
show_source | Nahoru | uniqid


uniqid

(PHP 3, PHP 4 , PHP 5)

uniqid -- Generatuje unikátní id

Popis

int uniqid ( string prefix [, boolean lcg])

uniqid() vrací unikátní identifikátor založený na současném čase v mikrosekundách, opatřený prefixem. Prefix může být užitečný například pokud generujete identifikátory na několika serverech současně, které by mohly vygenerovat identifikátor ve stejnou mikrosekundu. Prefix může být až 114 znaků dlouhý.

Pokud je volitelný argument lcg TRUE, uniqid() přidá dodatečnou "kombinovanou LCG" entropii na konec své návratové hodnoty, což by mělo učinit výsledky ještě unikátnějšími.

Pokud je prefix prázdný, vrácený řetěec bude 13 znaků dlouhý. Pokud je lcg TRUE, bude dlouhý 23 znaků.

Poznámka: lcg argument je přístupný pouze v PHP 4 and PHP 3.0.13 a vyšších.

Pokud potřebujete unikátní identifikátor nebo symbol, a zamýšlíte předat tento symbol uživateli po síti (např. session cookies), doporučujeme použít něco jako

$token = md5 (uniqid ("")); // no random portion
$better_token = md5 (uniqid (rand())); // better, difficult to guess

Toto vytvoří 32znakový identifikátor (128bitové hexa číslo), které se extrémně težko předpovídá.

Předcházející | Domů | Další
sleep | Nahoru | unpack


unpack

(PHP 3, PHP 4 , PHP 5)

unpack -- Rozbalí data z binárního řetězce

Popis

array unpack ( string format, string data)

unpack() rozbalí data z binárního řetězce do pole podle format. Vrací pole obsahující rozbalené prvky binárního řetězce.

unpack() funguje trochu jinak než v Perlu, jelikož rozbalená data jsou uložena v asociativním poli. Toho dosáhnete tak, že vyjmenujete různé formátovací kódy a oddělíte je lomítkem /.

Příklad 1. unpack() format string

$array = unpack ("c2chars/nint", $binarydata);

Výsledné pole obsahuej položky "chars1", "chars2" and "int".

Vysvětlení formátovacích kódů viz také: pack()

Všimněte si, že PHP interně ukládá celočíselné hodnoty se znaménkem. Pokud rozbalíte velkou celočíselnou hodnotu bez znaménka a ta má stejnou velikost jako hodnoty interně ukládané PHP, výsledkem bude negativní číslo, i když bylo zadáno rozbalování bez znaménka.

Předcházející | Domů | Další
uniqid | Nahoru | usleep


usleep

(PHP 3, PHP 4 , PHP 5)

usleep -- Odloží provedení v mikrosekundách

Popis

void usleep ( int micro_seconds)

Funkce usleep() odloží provedení skriptu o daný počet micro_seconds.

Viz také sleep().

Poznámka: Tato funkce nefunguje na Windows systémech.

Předcházející | Domů | Další
unpack | Nahoru | mnoGoSearch Functions


mnoGoSearch Functions

Manuál PHP
Předcházející Další

LXII. mnoGoSearch Functions

Úvod

These functions allow you to access the mnoGoSearch (former UdmSearch) free search engine. mnoGoSearch is a full-featured search engine software for intranet and internet servers, distributed under the GNU license. mnoGoSearch has a number of unique features, which makes it appropriate for a wide range of applications from search within your site to a specialized search system such as cooking recipes or newspaper search, FTP archive search, news articles search, etc. It offers full-text indexing and searching for HTML, PDF, and text documents. mnoGoSearch consists of two parts. The first is an indexing mechanism (indexer). The purpose of the indexer is to walk through HTTP, FTP, NEWS servers or local files, recursively grabbing all the documents and storing meta-data about that documents in a SQL database in a smart and effective manner. After every document is referenced by its corresponding URL, meta-data is collected by the indexer for later use in a search process. The search is performed via Web interface. C, CGI, PHP and Perl search front ends are included.

More information about mnoGoSearch can be found at http://www.mnogosearch.ru/.

Poznámka: Toto rozšíření není k dispozici na platformách Windows.

Požadavky

Download mnoGosearch from http://www.mnogosearch.ru/ and install it on your system. You need at least version 3.1.10 of mnoGoSearch installed to use these functions.

Instalace

In order to have these functions available, you must compile PHP with mnoGosearch support by using the --with-mnogosearchoption. If you use this option without specifying the path to mnoGosearch, PHP will look for mnoGosearch under /usr/local/mnogosearch path by default. If you installed mnoGosearch at a different location you should specify it: --with-mnogosearch=DIR.

Poznámka: PHP contains built-in MySQL access library, which can be used to access MySQL. It is known that mnoGoSearch is not compatible with this built-in library and can work only with generic MySQL libraries. Thus, if you use mnoGoSearch with MySQL, during PHP configuration you have to indicate the directory of your MySQL installation, that was used during mnoGoSearch configuration, i.e. for example: --with-mnogosearch --with-mysql=/usr.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

UDM_FIELD_URLID (integer)

UDM_FIELD_URL (integer)

UDM_FIELD_CONTENT (integer)

UDM_FIELD_TITLE (integer)

UDM_FIELD_KEYWORDS (integer)

UDM_FIELD_DESC (integer)

UDM_FIELD_DESCRIPTION (integer)

UDM_FIELD_TEXT (integer)

UDM_FIELD_SIZE (integer)

UDM_FIELD_RATING (integer)

UDM_FIELD_SCORE (integer)

UDM_FIELD_MODIFIED (integer)

UDM_FIELD_ORDER (integer)

UDM_FIELD_CRC (integer)

UDM_FIELD_CATEGORY (integer)

UDM_FIELD_LANG (integer)

UDM_FIELD_CHARSET (integer)

UDM_PARAM_PAGE_SIZE (integer)

UDM_PARAM_PAGE_NUM (integer)

UDM_PARAM_SEARCH_MODE (integer)

UDM_PARAM_CACHE_MODE (integer)

UDM_PARAM_TRACK_MODE (integer)

UDM_PARAM_PHRASE_MODE (integer)

UDM_PARAM_CHARSET (integer)

UDM_PARAM_LOCAL_CHARSET (integer)

UDM_PARAM_BROWSER_CHARSET (integer)

UDM_PARAM_STOPTABLE (integer)

UDM_PARAM_STOP_TABLE (integer)

UDM_PARAM_STOPFILE (integer)

UDM_PARAM_STOP_FILE (integer)

UDM_PARAM_WEIGHT_FACTOR (integer)

UDM_PARAM_WORD_MATCH (integer)

UDM_PARAM_MAX_WORD_LEN (integer)

UDM_PARAM_MAX_WORDLEN (integer)

UDM_PARAM_MIN_WORD_LEN (integer)

UDM_PARAM_MIN_WORDLEN (integer)

UDM_PARAM_ISPELL_PREFIXES (integer)

UDM_PARAM_ISPELL_PREFIX (integer)

UDM_PARAM_PREFIXES (integer)

UDM_PARAM_PREFIX (integer)

UDM_PARAM_CROSS_WORDS (integer)

UDM_PARAM_CROSSWORDS (integer)

UDM_PARAM_VARDIR (integer)

UDM_PARAM_DATADIR (integer)

UDM_PARAM_HLBEG (integer)

UDM_PARAM_HLEND (integer)

UDM_PARAM_SYNONYM (integer)

UDM_PARAM_SEARCHD (integer)

UDM_PARAM_QSTRING (integer)

UDM_PARAM_REMOTE_ADDR (integer)

UDM_LIMIT_CAT (integer)

UDM_LIMIT_URL (integer)

UDM_LIMIT_TAG (integer)

UDM_LIMIT_LANG (integer)

UDM_LIMIT_DATE (integer)

UDM_PARAM_FOUND (integer)

UDM_PARAM_NUM_ROWS (integer)

UDM_PARAM_WORDINFO (integer)

UDM_PARAM_WORD_INFO (integer)

UDM_PARAM_SEARCHTIME (integer)

UDM_PARAM_SEARCH_TIME (integer)

UDM_PARAM_FIRST_DOC (integer)

UDM_PARAM_LAST_DOC (integer)

UDM_MODE_ALL (integer)

UDM_MODE_ANY (integer)

UDM_MODE_BOOL (integer)

UDM_MODE_PHRASE (integer)

UDM_CACHE_ENABLED (integer)

UDM_CACHE_DISABLED (integer)

UDM_TRACK_ENABLED (integer)

UDM_TRACK_DISABLED (integer)

UDM_PHRASE_ENABLED (integer)

UDM_PHRASE_DISABLED (integer)

UDM_CROSS_WORDS_ENABLED (integer)

UDM_CROSSWORDS_ENABLED (integer)

UDM_CROSS_WORDS_DISABLED (integer)

UDM_CROSSWORDS_DISABLED (integer)

UDM_PREFIXES_ENABLED (integer)

UDM_PREFIX_ENABLED (integer)

UDM_ISPELL_PREFIXES_ENABLED (integer)

UDM_ISPELL_PREFIX_ENABLED (integer)

UDM_PREFIXES_DISABLED (integer)

UDM_PREFIX_DISABLED (integer)

UDM_ISPELL_PREFIXES_DISABLED (integer)

UDM_ISPELL_PREFIX_DISABLED (integer)

UDM_ISPELL_TYPE_AFFIX (integer)

UDM_ISPELL_TYPE_SPELL (integer)

UDM_ISPELL_TYPE_DB (integer)

UDM_ISPELL_TYPE_SERVER (integer)

UDM_MATCH_WORD (integer)

UDM_MATCH_BEGIN (integer)

UDM_MATCH_SUBSTR (integer)

UDM_MATCH_END (integer)

Obsah
udm_add_search_limit -- Add various search limits
udm_alloc_agent_array -- Allocate mnoGoSearch session
udm_alloc_agent -- Allocate mnoGoSearch session
udm_api_version -- Get mnoGoSearch API version.
udm_cat_list -- Get all the categories on the same level with the current one.
udm_cat_path -- Get the path to the current category.
udm_check_charset -- Check if the given charset is known to mnogosearch
udm_check_stored -- Check connection to stored
udm_clear_search_limits -- Clear all mnoGoSearch search restrictions
udm_close_stored -- Close connection to stored
udm_crc32 -- Return CRC32 checksum of given string
udm_errno -- Get mnoGoSearch error number
udm_error -- Get mnoGoSearch error message
udm_find -- Perform search
udm_free_agent -- Free mnoGoSearch session
udm_free_ispell_data -- Free memory allocated for ispell data
udm_free_res -- Free mnoGoSearch result
udm_get_doc_count -- Get total number of documents in database.
udm_get_res_field -- Fetch mnoGoSearch result field
udm_get_res_param -- Get mnoGoSearch result parameters
udm_hash32 -- Return Hash32 checksum of gived string
udm_load_ispell_data -- Load ispell data
udm_open_stored -- Open connection to stored
udm_set_agent_param -- Set mnoGoSearch agent session parameters

Předcházející | Domů | Další
usleep | Nahoru | udm_add_search_limit


udm_add_search_limit

(PHP 4 >= 4.0.5, PHP 5)

udm_add_search_limit -- Add various search limits

Description

bool udm_add_search_limit ( resource agent, int var, string val)

udm_add_search_limit() adds search restrictions. Vrací TRUE při úspěchu, FALSE při selhání.

agent - a link to Agent, received after call to udm_alloc_agent().

var - defines parameter, indicating limit.

val - defines the value of the current parameter.

Possible var values:

  • UDM_LIMIT_URL - defines document URL limitations to limit the search through subsection of the database. It supports SQL % and _ LIKE wildcards, where % matches any number of characters, even zero characters, and _ matches exactly one character. E.g. http://www.example.___/catalog may stand for http://www.example.com/catalog and http://www.example.net/catalog.

  • UDM_LIMIT_TAG - defines site TAG limitations. In indexer-conf you can assign specific TAGs to various sites and parts of a site. Tags in mnoGoSearch 3.1.x are lines, that may contain metasymbols % and _. Metasymbols allow searching among groups of tags. E.g. there are links with tags ABCD and ABCE, and search restriction is by ABC_ - the search will be made among both of the tags.

  • UDM_LIMIT_LANG - defines document language limitations.

  • UDM_LIMIT_CAT - defines document category limitations. Categories are similar to tag feature, but nested. So you can have one category inside another and so on. You have to use two characters for each level. Use a hex number going from 0-F or a 36 base number going from 0-Z. Therefore a top-level category like 'Auto' would be 01. If it has a subcategory like 'Ford', then it would be 01 (the parent category) and then 'Ford' which we will give 01. Put those together and you get 0101. If 'Auto' had another subcategory named 'VW', then it's id would be 01 because it belongs to the 'Ford' category and then 02 because it's the next category. So it's id would be 0102. If VW had a sub category called 'Engine' then it's id would start at 01 again and it would get the 'VW' id 02 and 'Auto' id of 01, making it 010201. If you want to search for sites under that category then you pass it cat=010201 in the URL.

  • UDM_LIMIT_DATE - defines limitation by date the document was modified.

    Format of parameter value: a string with first character < or >, then with no space - date in unixtime format, for example:

    Příklad 1.

    <?php
      Udm_Add_Search_Limit($udm, UDM_LIMIT_DATE, "&lt;908012006");
?>

    If > character is used, then the search will be restricted to those documents having a modification date greater than entered, if <, then smaller.

Předcházející | Domů | Další
mnoGoSearch Functions | Nahoru | udm_alloc_agent_array


udm_alloc_agent_array

(PHP 4 >= 4.3.3, PHP 5)

udm_alloc_agent_array -- Allocate mnoGoSearch session

Description

resource udm_alloc_agent_array ( array databases)

udm_alloc_agent_array() will create an agent with multiple database connections. The array databases must contain one database URL per element, analog to the first parameter of udm_alloc_agent().

See also: udm_alloc_agent().

Předcházející | Domů | Další
udm_add_search_limit | Nahoru | udm_alloc_agent


udm_alloc_agent

(PHP 4 >= 4.0.5, PHP 5)

udm_alloc_agent -- Allocate mnoGoSearch session

Description

resource udm_alloc_agent ( string dbaddr [, string dbmode])

Returns a mnogosearch agent identifier on success, FALSE on failure. This function creates a session with database parameters.

dbaddr - URL-style database description, with options (type, host, database name, port, user and password) to connect to SQL database. Do not matter for built-in text files support. Format for dbaddr: DBType:[//[DBUser[:DBPass]@]DBHost[:DBPort]]/DBName/. Currently supported DBType values are: mysql, pgsql, msql, solid, mssql, oracle, and ibase. Actually, it does not matter for native libraries support, but ODBC users should specify one of the supported values. If your database type is not supported, you may use unknown instead.

dbmode - You may select the SQL database mode of words storage. Possible values of dbmode are: single, multi, crc, or crc-multi. When single is specified, all words are stored in the same table. If multi is selected, words will be located in different tables depending of their lengths. "multi" mode is usually faster, but requires more tables in the database. If "crc" mode is selected, mnoGoSearch will store 32 bit integer word IDs calculated by CRC32 algorithm instead of words. This mode requires less disk space and it is faster comparing with "single" and "multi" modes. crc-multi uses the same storage structure with the "crc" mode, but also stores words in different tables depending on words lengths like in "multi" mode.

Poznámka: dbaddr and dbmode must match those used during indexing.

Poznámka: In fact this function does not open a connection to the database and thus does not check the entered login and password. Establishing a connection to the database and login/password verification is done by udm_find().

Předcházející | Domů | Další
udm_alloc_agent_array | Nahoru | udm_api_version


udm_api_version

(PHP 4 >= 4.0.5, PHP 5)

udm_api_version -- Get mnoGoSearch API version.

Description

int udm_api_version ( void )

udm_api_version() returns the mnoGoSearch API version number. E.g. if mnoGoSearch 3.1.10 API is used, this function will return 30110.

This function allows the user to identify which API functions are available, e.g. udm_get_doc_count() function is only available in mnoGoSearch 3.1.11 or later.

Příklad 1. udm_api_version() example

<?php
if (udm_api_version() >= 30111) {
    echo  "Total number of URLs in database: " . udm_get_doc_count($udm) . "<br />\n";
}
?>

Předcházející | Domů | Další
udm_alloc_agent | Nahoru | udm_cat_list


udm_cat_list

(PHP 4 >= 4.0.6, PHP 5)

udm_cat_list -- Get all the categories on the same level with the current one.

Description

array udm_cat_list ( resource agent, string category)

Returns an array listing all categories of the same level as the current category in the categories tree. agent is the agent identifier returned by a previous call to >udm_alloc_agent().

The function can be useful for developing categories tree browser.

The returned array consists of pairs. Elements with even index numbers contain the category paths, odd elements contain the corresponding category names.

$array[0] will contain '020300'
  $array[1] will contain 'Audi'
  $array[2] will contain '020301'
  $array[3] will contain 'BMW'
  $array[4] will contain '020302'
  $array[5] will contain 'Opel'
  ...
 etc.

Following is an example of displaying links of the current level in format:
Audi
  BMW
  Opel
  ...

Příklad 1. udm_cat_list()example

<?php
 $cat_list_arr = udm_cat_list($udm_agent, $cat);
 $cat_list = '';
 for ($i=0; $i<count($cat_list_arr); $i+=2) {
    $path = $cat_list_arr[$i];
    $name = $cat_list_arr[$i+1];
    $cat_list .= "<a href=\"$_SERVER[PHP_SELF]?cat=$path\">$name</a><br />";
 }
?>

See also udm_cat_path().

Předcházející | Domů | Další
udm_api_version | Nahoru | udm_cat_path


udm_cat_path

(PHP 4 >= 4.0.6, PHP 5)

udm_cat_path -- Get the path to the current category.

Description

array udm_cat_path ( resource agent, string category)

Returns an array describing the path in the categories tree from the tree root to the current one, specified by category. agent is the agent identifier returned by a previous call to >udm_alloc_agent().

The returned array consists of pairs. Elements with even index numbers contain the category paths, odd elements contain the corresponding category names.

For example, the call $array=udm_cat_path($agent, '02031D'); may return the following array:
$array[0] will contain ''
 $array[1] will contain 'Root'
 $array[2] will contain '02'
 $array[3] will contain 'Sport'
 $array[4] will contain '0203'
 $array[5] will contain 'Auto'
 $array[4] will contain '02031D'
 $array[5] will contain 'Ferrari'

Příklad 1. Specifying path to the current category in the following format: '> Root > Sport > Auto > Ferrari'

<?php
  $cat_path_arr = udm_cat_path($udm_agent, $cat);
  $cat_path = '';
  for ($i=0; $i<count($cat_path_arr); $i+=2) {
    $path = $cat_path_arr[$i];
    $name = $cat_path_arr[$i+1];
    $cat_path .= " > <a href=\"$_SERVER[PHP_SELF]?cat=$path\">$name</a> ";
  }
?>

See also udm_cat_list().

Předcházející | Domů | Další
udm_cat_list | Nahoru | udm_check_charset


udm_check_charset

(PHP 4 >= 4.2.0, PHP 5)

udm_check_charset -- Check if the given charset is known to mnogosearch

Description

bool udm_check_charset ( resource agent, string charset)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
udm_cat_path | Nahoru | udm_check_stored


udm_check_stored

(PHP 4 >= 4.2.0, PHP 5)

udm_check_stored -- Check connection to stored

Description

int udm_check_stored ( resource agent, int link, string doc_id)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
udm_check_charset | Nahoru | udm_clear_search_limits


udm_clear_search_limits

(PHP 4 >= 4.0.5, PHP 5)

udm_clear_search_limits -- Clear all mnoGoSearch search restrictions

Description

bool udm_clear_search_limits ( resource agent)

udm_clear_search_limits() resets defined search limitations and returns TRUE.

See also udm_add_search_limit().

Předcházející | Domů | Další
udm_check_stored | Nahoru | udm_close_stored


udm_close_stored

(PHP 4 >= 4.2.0, PHP 5)

udm_close_stored -- Close connection to stored

Description

int udm_close_stored ( resource agent, int link)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
udm_clear_search_limits | Nahoru | udm_crc32


udm_crc32

(PHP 4 >= 4.2.0, PHP 5)

udm_crc32 -- Return CRC32 checksum of given string

Description

int udm_crc32 ( resource agent, string str)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
udm_close_stored | Nahoru | udm_errno


udm_errno

(PHP 4 >= 4.0.5, PHP 5)

udm_errno -- Get mnoGoSearch error number

Description

int udm_errno ( resource agent)

udm_errno() returns mnoGoSearch error number, zero if no error.

agent - link to agent identifier, received after call to udm_alloc_agent().

Receiving numeric agent error code.

Předcházející | Domů | Další
udm_crc32 | Nahoru | udm_error


udm_error

(PHP 4 >= 4.0.5, PHP 5)

udm_error -- Get mnoGoSearch error message

Description

string udm_error ( resource agent)

udm_error() returns mnoGoSearch error message, empty string if no error.

agent - link to agent identifier, received after call to udm_alloc_agent().

Receiving agent error message.

Předcházející | Domů | Další
udm_errno | Nahoru | udm_find


udm_find

(PHP 4 >= 4.0.5, PHP 5)

udm_find -- Perform search

Description

resource udm_find ( resource agent, string query)

Returns a result link identifier on success, or FALSE on failure.

The search itself. The first argument - session, the next one - query itself. To find something just type words you want to find and press SUBMIT button. For example, "mysql odbc". You should not use quotes " in query, they are written here only to divide a query from other text. mnoGoSearch will find all documents that contain word "mysql" and/or word "odbc". Best documents having bigger weights will be displayed first. If you use search mode ALL, search will return documents that contain both (or more) words you entered. In case you use mode ANY, the search will return list of documents that contain any of the words you entered. If you want more advanced results you may use query language. You should select "bool" match mode in the search from.

mnoGoSearch understands the following boolean operators:

& - logical AND. For example, "mysql & odbc". mnoGoSearch will find any URLs that contain both "mysql" and "odbc".

| - logical OR. For example "mysql|odbc". mnoGoSearch will find any URLs, that contain word "mysql" or word "odbc".

~ - logical NOT. For example "mysql & ~odbc". mnoGoSearch will find URLs that contain word "mysql" and do not contain word "odbc" at the same time. Note that ~ just excludes given word from results. Query "~odbc" will find nothing!

() - group command to compose more complex queries. For example "(mysql | msql) & ~postgres". Query language is simple and powerful at the same time. Just consider query as usual boolean expression.

Předcházející | Domů | Další
udm_error | Nahoru | udm_free_agent


udm_free_agent

(PHP 4 >= 4.0.5, PHP 5)

udm_free_agent -- Free mnoGoSearch session

Description

int udm_free_agent ( resource agent)

Vrací TRUE při úspěchu, FALSE při selhání.

agent - link to agent identifier, received ` after call to udm_alloc_agent().

Freeing up memory allocated for agent session.

Předcházející | Domů | Další
udm_find | Nahoru | udm_free_ispell_data


udm_free_ispell_data

(PHP 4 >= 4.0.5, PHP 5)

udm_free_ispell_data -- Free memory allocated for ispell data

Description

bool udm_free_ispell_data ( int agent)

udm_free_ispell_data() always returns TRUE.

agent - agent link identifier, received after call to udm_alloc_agent().

Poznámka: This function is supported beginning from version 3.1.12 of mnoGoSearch and it does not do anything in previous versions.

Předcházející | Domů | Další
udm_free_agent | Nahoru | udm_free_res


udm_free_res

(PHP 4 >= 4.0.5, PHP 5)

udm_free_res -- Free mnoGoSearch result

Description

bool udm_free_res ( resource res)

Vrací TRUE při úspěchu, FALSE při selhání.

res - a link to result identifier, received after call to udm_find().

Freeing up memory allocated for results.

Předcházející | Domů | Další
udm_free_ispell_data | Nahoru | udm_get_doc_count


udm_get_doc_count

(PHP 4 >= 4.0.5, PHP 5)

udm_get_doc_count -- Get total number of documents in database.

Description

int udm_get_doc_count ( resource agent)

udm_get_doc_count() returns the number of documents in the database.

agent - link to agent identifier, received after call to udm_alloc_agent().

Poznámka: This function is supported only in mnoGoSearch 3.1.11 or later.

Předcházející | Domů | Další
udm_free_res | Nahoru | udm_get_res_field


udm_get_res_field

(PHP 4 >= 4.0.5, PHP 5)

udm_get_res_field -- Fetch mnoGoSearch result field

Description

string udm_get_res_field ( resource res, int row, int field)

udm_get_res_field() returns result field value on success, FALSE on error.

res - a link to result identifier, received after call to udm_find().

row - the number of the link on the current page. May have values from 0 to UDM_PARAM_NUM_ROWS-1.

field - field identifier, may have the following values:

  • UDM_FIELD_URL - document URL field

  • UDM_FIELD_CONTENT - document Content-type field (for example, text/html).

  • UDM_FIELD_CATEGORY - document category field. Use udm_cat_path() to get full path to current category from the categories tree root. (This parameter is available only in PHP 4.0.6 or later).

  • UDM_FIELD_TITLE - document title field.

  • UDM_FIELD_KEYWORDS - document keywords field (from META KEYWORDS tag).

  • UDM_FIELD_DESC - document description field (from META DESCRIPTION tag).

  • UDM_FIELD_TEXT - document body text (the first couple of lines to give an idea of what the document is about).

  • UDM_FIELD_SIZE - document size.

  • UDM_FIELD_URLID - unique URL ID of the link.

  • UDM_FIELD_RATING - page rating (as calculated by mnoGoSearch).

  • UDM_FIELD_MODIFIED - last-modified field in unixtime format.

  • UDM_FIELD_ORDER - the number of the current document in set of found documents.

  • UDM_FIELD_CRC - document CRC.

Předcházející | Domů | Další
udm_get_doc_count | Nahoru | udm_get_res_param


udm_get_res_param

(PHP 4 >= 4.0.5, PHP 5)

udm_get_res_param -- Get mnoGoSearch result parameters

Description

string udm_get_res_param ( resource res, int param)

udm_get_res_param() returns result parameter value on success, FALSE on error.

res - a link to result identifier, received after call to udm_find().

param - parameter identifier, may have the following values:

  • UDM_PARAM_NUM_ROWS - number of received found links on the current page. It is equal to UDM_PARAM_PAGE_SIZE for all search pages, on the last page - the rest of links.

  • UDM_PARAM_FOUND - total number of results matching the query.

  • UDM_PARAM_WORDINFO - information on the words found. E.g. search for "a good book" will return "a: stopword, good:5637, book: 120"

  • UDM_PARAM_SEARCHTIME - search time in seconds.

  • UDM_PARAM_FIRST_DOC - the number of the first document displayed on current page.

  • UDM_PARAM_LAST_DOC - the number of the last document displayed on current page.

Předcházející | Domů | Další
udm_get_res_field | Nahoru | udm_hash32


udm_hash32

(PHP 4 >= 4.3.3, PHP 5)

udm_hash32 -- Return Hash32 checksum of gived string

Description

int udm_hash32 ( resource agent, string str)

udm_hash32() will take a string str and return a quite unique 32-bit hash number from it. Requires an allocated agent.

See also: udm_alloc_agent().

Předcházející | Domů | Další
udm_get_res_param | Nahoru | udm_load_ispell_data


udm_load_ispell_data

(PHP 4 >= 4.0.5, PHP 5)

udm_load_ispell_data -- Load ispell data

Description

bool udm_load_ispell_data ( resource agent, int var, string val1, string val2, int flag)

udm_load_ispell_data() loads ispell data. Vrací TRUE při úspěchu, FALSE při selhání.

agent - agent link identifier, received after call to udm_alloc_agent().

var - parameter, indicating the source for ispell data. May have the following values:

After using this function to free memory allocated for ispell data, please use udm_free_ispell_data(), even if you use UDM_ISPELL_TYPE_SERVER mode.

The fastest mode is UDM_ISPELL_TYPE_SERVER. UDM_ISPELL_TYPE_TEXT is slower and UDM_ISPELL_TYPE_DB is the slowest. The above pattern is TRUE for mnoGoSearch 3.1.10 - 3.1.11. It is planned to speed up DB mode in future versions and it is going to be faster than TEXT mode.

  • UDM_ISPELL_TYPE_DB - indicates that ispell data should be loaded from SQL. In this case, parameters val1 and val2 are ignored and should be left blank. flag should be equal to 1.

    Poznámka: flag indicates that after loading ispell data from defined source it should be sorted (it is necessary for correct functioning of ispell). In case of loading ispell data from files there may be several calls to udm_load_ispell_data(), and there is no sense to sort data after every call, but only after the last one. Since in db mode all the data is loaded by one call, this parameter should have the value 1. In this mode in case of error, e.g. if ispell tables are absent, the function will return FALSE and code and error message will be accessible through udm_error() and udm_errno().

    Příklad 1. udm_load_ispell_data()example

    <?php
if (! udm_load_ispell_data($udm, UDM_ISPELL_TYPE_DB, '', '', 1)) {
  printf("Error #%d: '%s'\n", udm_errno($udm), udm_error($udm));
  exit;
}
?>

  • UDM_ISPELL_TYPE_AFFIX - indicates that ispell data should be loaded from file and initiates loading affixes file. In this case val1 defines double letter language code for which affixes are loaded, and val2 - file path. Please note, that if a relative path entered, the module looks for the file not in UDM_CONF_DIR, but in relation to current path, i.e. to the path where the script is executed. In case of error in this mode, e.g. if file is absent, the function will return FALSE, and an error message will be displayed. Error message text cannot be accessed through udm_error() and udm_errno(), since those functions can only return messages associated with SQL. Please, see flag parameter description in UDM_ISPELL_TYPE_DB.

    Příklad 2. udm_load_ispell_data() example

    <?php
if ((! udm_load_ispell_data($udm, UDM_ISPELL_TYPE_AFFIX, 'en', '/opt/ispell/en.aff', 0)) ||
    (! udm_load_ispell_data($udm, UDM_ISPELL_TYPE_AFFIX, 'ru', '/opt/ispell/ru.aff', 0)) ||
    (! udm_load_ispell_data($udm, UDM_ISPELL_TYPE_SPELL, 'en', '/opt/ispell/en.dict', 0)) ||
    (! udm_load_ispell_data($udm, UDM_ISPELL_TYPE_SPELL, 'ru', '/opt/ispell/ru.dict', 1))) {
    exit;
}
?>

    Poznámka: flag is equal to 1 only in the last call.

  • UDM_ISPELL_TYPE_SPELL - indicates that ispell data should be loaded from file and initiates loading of ispell dictionary file. In this case val1 defines double letter language code for which affixes are loaded, and val2 - file path. Please note, that if a relative path entered, the module looks for the file not in UDM_CONF_DIR, but in relation to current path, i.e. to the path where the script is executed. In case of error in this mode, e.g. if file is absent, the function will return FALSE, and an error message will be displayed. Error message text cannot be accessed through udm_error() and udm_errno(), since those functions can only return messages associated with SQL. Please, see flag parameter description in UDM_ISPELL_TYPE_DB.

    <?php
     if ((! Udm_Load_Ispell_Data($udm, UDM_ISPELL_TYPE_AFFIX, 'en', '/opt/ispell/en.aff', 0)) ||
        (! Udm_Load_Ispell_Data($udm, UDM_ISPELL_TYPE_AFFIX, 'ru', '/opt/ispell/ru.aff', 0)) ||
        (! Udm_Load_Ispell_Data($udm, UDM_ISPELL_TYPE_SPELL, 'en', '/opt/ispell/en.dict', 0)) ||
        (! Udm_Load_Ispell_Data($udm, UDM_ISPELL_TYPE_SPELL, 'ru', '/opt/ispell/ru.dict', 1))) {
      exit;
      }
?>

    Poznámka: flag is equal to 1 only in the last call.

  • UDM_ISPELL_TYPE_SERVER - enables spell server support. val1 parameter indicates address of the host running spell server. val2 ` is not used yet, but in future releases it is going to indicate number of port used by spell server. flag parameter in this case is not needed since ispell data is stored on spellserver already sorted.

    Spelld server reads spell-data from a separate configuration file (/usr/local/mnogosearch/etc/spelld.conf by default), sorts it and stores in memory. With clients server communicates in two ways: to indexer all the data is transferred (so that indexer starts faster), from search.cgi server receives word to normalize and then passes over to client (search.cgi) list of normalized word forms. This allows fastest, compared to db and text modes processing of search queries (by omitting loading and sorting all the spell data).

    udm_load_ispell_data() function in UDM_ISPELL_TYPE_SERVER mode does not actually load ispell data, but only defines server address. In fact, server is automatically used by udm_find() function when performing search. In case of errors, e.g. if spellserver is not running or invalid host indicated, there are no messages returned and ispell conversion does not work.

    Poznámka: This function is available in mnoGoSearch 3.1.12 or later.

    Example:

    <?php
if (!udm_load_ispell_data($udm, UDM_ISPELL_TYPE_SERVER, '', '', 1)) {
    echo "Error loading ispell data from server<br />\n";
    exit;
}
?>

Předcházející | Domů | Další
udm_hash32 | Nahoru | udm_open_stored


udm_open_stored

(PHP 4 >= 4.2.0, PHP 5)

udm_open_stored -- Open connection to stored

Description

int udm_open_stored ( resource agent, string storedaddr)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
udm_load_ispell_data | Nahoru | udm_set_agent_param


udm_set_agent_param

(PHP 4 >= 4.0.5, PHP 5)

udm_set_agent_param -- Set mnoGoSearch agent session parameters

Description

bool udm_set_agent_param ( resource agent, int var, string val)

Vrací TRUE při úspěchu, FALSE při selhání. Defines mnoGoSearch session parameters.

The following parameters and their values are available:

  • UDM_PARAM_PAGE_NUM - used to choose search results page number (results are returned by pages beginning from 0, with UDM_PARAM_PAGE_SIZE results per page).

  • UDM_PARAM_PAGE_SIZE - number of search results displayed on one page.

  • UDM_PARAM_SEARCH_MODE - search mode. The following values available: UDM_MODE_ALL - search for all words; UDM_MODE_ANY - search for any word; UDM_MODE_PHRASE - phrase search; UDM_MODE_BOOL - boolean search. See udm_find() for details on boolean search.

  • UDM_PARAM_CACHE_MODE - turns on or off search result cache mode. When enabled, the search engine will store search results to disk. In case a similar search is performed later, the engine will take results from the cache for faster performance. Available values: UDM_CACHE_ENABLED, UDM_CACHE_DISABLED.

  • UDM_PARAM_TRACK_MODE - turns on or off trackquery mode. Since version 3.1.2 mnoGoSearch has a query tracking support. Note that tracking is implemented in SQL version only and not available in built-in database. To use tracking, you have to create tables for tracking support. For MySQL, use create/mysql/track.txt. When doing a search, front-end uses those tables to store query words, a number of found documents and current Unix timestamp in seconds. Available values: UDM_TRACK_ENABLED, UDM_TRACK_DISABLED.

  • UDM_PARAM_PHRASE_MODE - defines whether index database using phrases ("phrase" parameter in indexer.conf). Possible values: UDM_PHRASE_ENABLED and UDM_PHRASE_DISABLED. Please note, that if phrase search is enabled (UDM_PHRASE_ENABLED), it is still possible to do search in any mode (ANY, ALL, BOOL or PHRASE). In 3.1.10 version of mnoGoSearch phrase search is supported only in sql and built-in database modes, while beginning with 3.1.11 phrases are supported in cachemode as well.

    Examples of phrase search:

    "Arizona desert" - This query returns all indexed documents that contain "Arizona desert" as a phrase. Notice that you need to put double quotes around the phrase

  • UDM_PARAM_CHARSET - defines local charset. Available values: set of charsets supported by mnoGoSearch, e.g. koi8-r, cp1251, ...

  • UDM_PARAM_STOPFILE - Defines name and path to stopwords file. (There is a small difference with mnoGoSearch - while in mnoGoSearch if relative path or no path entered, it looks for this file in relation to UDM_CONF_DIR, the module looks for the file in relation to current path, i.e. to the path where the PHP script is executed.)

  • UDM_PARAM_STOPTABLE - Load stop words from the given SQL table. You may use several StopwordTable commands. This command has no effect when compiled without SQL database support.

  • UDM_PARAM_WEIGHT_FACTOR - represents weight factors for specific document parts. Currently body, title, keywords, description, url are supported. To activate this feature please use degrees of 2 in *Weight commands of the indexer.conf. Let's imagine that we have these weights:

    URLWeight 1
    BodyWeight 2
    TitleWeight 4
    KeywordWeight 8
    DescWeight 16

    As far as indexer uses bit OR operation for word weights when some word presents several time in the same document, it is possible at search time to detect word appearance in different document parts. Word which appears only in the body will have 00000010 aggregate weight (in binary notation). Word used in all document parts will have 00011111 aggregate weight.

    This parameter's value is a string of hex digits ABCDE. Each digit is a factor for corresponding bit in word weight. For the given above weights configuration:

    E is a factor for weight 1 (URL Weight bit)
    D is a factor for weight 2 (BodyWeight bit)
    C is a factor for weight 4 (TitleWeight bit)
    B is a factor for weight 8 (KeywordWeight bit)
    A is a factor for weight 16 (DescWeight bit)

    Examples:

    UDM_PARAM_WEIGHT_FACTOR=00001 will search through URLs only.

    UDM_PARAM_WEIGHT_FACTOR=00100 will search through Titles only.

    UDM_PARAM_WEIGHT_FACTOR=11100 will search through Title,Keywords,Description but not through URL and Body.

    UDM_PARAM_WEIGHT_FACTOR=F9421 will search through:

    Description with factor 15 (F hex)
    Keywords with factor 9
    Title with factor 4
    Body with factor 2
    URL with factor 1

    If UDM_PARAM_WEIGHT_FACTOR variable is omitted, original weight value is taken to sort results. For a given above weight configuration it means that document description has a most big weight 16.

  • UDM_PARAM_WORD_MATCH - word match. You may use this parameter to choose word match type. This feature works only in "single" and "multi" modes using SQL based and built-in database. It does not work in cachemode and other modes since they use word CRC and do not support substring search. Available values:

    UDM_MATCH_BEGIN - word beginning match;

    UDM_MATCH_END - word ending match;

    UDM_MATCH_WORD - whole word match;

    UDM_MATCH_SUBSTR - word substring match.

  • UDM_PARAM_MIN_WORD_LEN - defines minimal word length. Any word shorter this limit is considered to be a stopword. Please note that this parameter value is inclusive, i.e. if UDM_PARAM_MIN_WORD_LEN=3, a word 3 characters long will not be considered a stopword, while a word 2 characters long will be. Default value is 1.

  • UDM_PARAM_ISPELL_PREFIXES - Possible values: UDM_PREFIXES_ENABLED and UDM_PREFIXES_DISABLED, that respectively enable or disable using prefixes. E.g. if a word "tested" is in search query, also words like "test", "testing", etc. Only suffixes are supported by default. Prefixes usually change word meanings, for example if somebody is searching for the word "tested" one hardly wants "untested" to be found. Prefixes support may also be found useful for site's spelling checking purposes. In order to enable ispell, you have to load ispell data with udm_load_ispell_data().

  • UDM_PARAM_CROSS_WORDS - enables or disables crosswords support. Possible values: UDM_CROSS_WORDS_ENABLED and UDM_CROSS_WORDS_DISABLED.

    The crosswords feature allows to assign words between <a href="xxx"> and </a> also to a document this link leads to. It works in SQL database mode and is not supported in built-in database and Cachemode.

    Poznámka: Crosswords are supported only in mnoGoSearch 3.1.11 or later.

  • UDM_PARAM_VARDIR - specifies a custom path to directory where indexer stores data when using built-in database and in cache mode. By default /var directory of mnoGoSearch installation is used. Can have only string values. The parameter is available in PHP 4.1.0 or later.

Předcházející | Domů | Další
udm_open_stored | Nahoru | mSQL Functions


mSQL Functions

Manuál PHP
Předcházející Další

LXIII. mSQL Functions

Úvod

These functions allow you to access mSQL database servers. More information about mSQL can be found at http://www.hughes.com.au/.

Instalace

In order to have these functions available, you must compile PHP with msql support by using the --with-msql[=DIR] option. DIR is the mSQL base install directory, defaults to /usr/local/msql3.

Note to Win32 Users: In order to enable this module on a Windows environment, you must copy msql.dll from the DLL folder of the PHP/Win32 binary package to the SYSTEM32 folder of your windows machine. (Ex: C:\WINNT\SYSTEM32 or C:\WINDOWS\SYSTEM32)

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 1. mSQL configuration options

Name | Default | Changeable
msql.allow_persistent | "On" | PHP_INI_SYSTEM
msql.max_persistent | "-1" | PHP_INI_SYSTEM
msql.max_links | "-1" | PHP_INI_SYSTEM
For further details and definition of the PHP_INI_* constants see ini_set().

Zde je stručné vysvětlení konfiguračních direktiv.

msql.allow_persistent boolean

Whether to allow persistent mSQL connections.

msql.max_persistent integer

The maximum number of persistent mSQL connections per process.

msql.max_links integer

The maximum number of mSQL connections per process, including persistent connections.

Typy prostředků

There are two resource types used in the mSQL module. The first one is the link identifier for a database connection, the second a resource which holds the result of a query.

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

MSQL_ASSOC (integer)

MSQL_NUM (integer)

MSQL_BOTH (integer)

Příklady

This simple example shows how to connect, execute a query, print resulting rows and disconnect from a mSQL database.

Příklad 1. mSQL usage example

<?php
/* Connecting, selecting database */
$link = msql_connect('localhost', 'username', 'password')
    or die('Could not connect : ' . msql_error($link));

msql_select_db('database')
    or die('Could not select database', $link);

/* Issue SQL query */
$query = 'SELECT * FROM my_table';
$result = msql_query($query, $link) or die('Query failed : ' . msql_error($link));

/* Printing results in HTML */
echo "<table>\n";
while ($row = msql_fetch_array($result, MSQL_ASSOC)) {
    echo "\t<tr>\n";
    foreach ($row as $col_value) {
        echo "\t\t<td>$col_value</td>\n";
    }
    echo "\t</tr>\n";
}
echo "</table>\n";

/* Free result set */
msql_free_result($result);

/* Close connection */
msql_close($link);
?>

Obsah
msql_affected_rows -- Returns number of affected rows
msql_close -- Close mSQL connection
msql_connect -- Open mSQL connection
msql_create_db -- Create mSQL database
msql_createdb -- Alias of msql_create_db()
msql_data_seek -- Move internal row pointer
msql -- Send mSQL query
msql_dbname -- Alias of msql_result()
msql_drop_db -- Drop (delete) mSQL database
msql_error -- Returns error message of last msql call
msql_fetch_array -- Fetch row as array
msql_fetch_field -- Get field information
msql_fetch_object -- Fetch row as object
msql_fetch_row -- Get row as enumerated array
msql_field_flags -- Get field flags
msql_field_len -- Get field length
msql_field_name -- Get field name
msql_field_seek -- Set field offset
msql_field_table -- Get table name for field
msql_field_type -- Get field type
msql_fieldflags -- Alias of msql_field_flags()
msql_fieldlen -- Alias of msql_field_len()
msql_fieldname -- Alias of msql_field_name()
msql_fieldtable -- Alias of msql_field_table()
msql_fieldtype -- Alias of msql_field_type()
msql_free_result -- Free result memory
msql_list_dbs -- List mSQL databases on server
msql_list_fields -- List result fields
msql_list_tables -- List tables in an mSQL database
msql_num_fields -- Get number of fields in result
msql_num_rows -- Get number of rows in result
msql_numfields -- Alias of msql_num_fields()
msql_numrows -- Alias of msql_num_rows()
msql_pconnect -- Open persistent mSQL connection
msql_query -- Send mSQL query
msql_regcase -- Alias of sql_regcase()
msql_result -- Get result data
msql_select_db -- Select mSQL database
msql_tablename -- Alias of msql_result()
msql -- Alias of msql_db_query()

Předcházející | Domů | Další
udm_set_agent_param | Nahoru | msql_affected_rows


msql_affected_rows

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

msql_affected_rows -- Returns number of affected rows

Description

int msql_affected_rows ( resource query_identifier)

Returns number of affected ("touched") rows by a specific query (i.e. the number of rows returned by a SELECT, the number of rows modified by an update, or the number of rows removed by a delete).

See also: msql_query().

Předcházející | Domů | Další
mSQL Functions | Nahoru | msql_close


msql_close

(PHP 3, PHP 4 , PHP 5)

msql_close -- Close mSQL connection

Description

int msql_close ( [resource link_identifier])

msql_close() closes the link to a mSQL database that's associated with the specified link identifier. If the link identifier isn't specified, the last opened link is assumed.

Vrací TRUE při úspěchu, FALSE při selhání.

Note that this isn't usually necessary, as non-persistent open links are automatically closed at the end of the script's execution.

msql_close() will not close persistent links generated by msql_pconnect().

See also: msql_connect() and msql_pconnect().

Předcházející | Domů | Další
msql_affected_rows | Nahoru | msql_connect


msql_connect

(PHP 3, PHP 4 , PHP 5)

msql_connect -- Open mSQL connection

Description

int msql_connect ( [string hostname [, string username [, string password]]])

msql_connect() establishes a connection to a mSQL server. The hostname parameter can also include a port number. e.g. "hostname:port". It defaults to 'localhost'.

Returns a positive mSQL link identifier on success, or FALSE on error.

In case a second call is made to msql_connect() with the same arguments, no new link will be established, but instead, the link identifier of the already opened link will be returned.

The link to the server will be closed as soon as the execution of the script ends, unless it's closed earlier by explicitly calling msql_close().

See also msql_pconnect() and msql_close().

Předcházející | Domů | Další
msql_close | Nahoru | msql_create_db


msql_create_db

(PHP 3, PHP 4 , PHP 5)

msql_create_db -- Create mSQL database

Description

bool msql_create_db ( string database_name [, resource link_identifier])

msql_create_db() attempts to create a new database on the server associated with the specified link_identifier.

Vrací TRUE při úspěchu, FALSE při selhání.

See also msql_drop_db().

Předcházející | Domů | Další
msql_connect | Nahoru | msql_createdb


msql_createdb

msql_createdb -- Alias of msql_create_db()

Description

This function is an alias of msql_create_db().

Předcházející | Domů | Další
msql_create_db | Nahoru | msql_data_seek


msql_data_seek

(PHP 3, PHP 4 , PHP 5)

msql_data_seek -- Move internal row pointer

Description

bool msql_data_seek ( resource query_identifier, int row_number)

msql_data_seek() moves the internal row pointer of the mSQL result associated with the specified query identifier to point to the specified row number. The next call to msql_fetch_row() would return that row.

Vrací TRUE při úspěchu, FALSE při selhání.

See also msql_fetch_row().

Předcházející | Domů | Další
msql_createdb | Nahoru | msql


msql

(PHP 3, PHP 4 , PHP 5)

msql -- Send mSQL query

Description

resouce msql_db_query ( string database, string query [, resource link_identifier])

Returns a positive mSQL query identifier to the query result, or FALSE on error.

msql_db_query() selects a database and executes a query on it. If the optional link_identifier is not specified, the function will try to find an open link to the mSQL server; if no such link is found it will try to create one as if msql_connect() was called with no arguments.

See also msql_connect().

Předcházející | Domů | Další
msql_data_seek | Nahoru | msql_dbname


msql_dbname

msql_dbname -- Alias of msql_result()

Description

This function is an alias of msql_result().

Předcházející | Domů | Další
msql | Nahoru | msql_drop_db


msql_drop_db

(PHP 3, PHP 4 , PHP 5)

msql_drop_db -- Drop (delete) mSQL database

Description

int msql_drop_db ( string database_name [, resource link_identifier])

Vrací TRUE při úspěchu, FALSE při selhání.

msql_drop_db() attempts to drop (remove) an entire database from the server associated with the specified link identifier.

See also: msql_create_db().

Předcházející | Domů | Další
msql_dbname | Nahoru | msql_error


msql_error

(PHP 3, PHP 4 , PHP 5)

msql_error -- Returns error message of last msql call

Description

string msql_error ( [resource link_identifier])

msql_error() returns the last issued error by the mSQL server or an empty string if no error was issued. If no link is explicitly passed, the last successful open link will be used to retrieve the error message. Note that only the last error message is accessible with msql_error().

Předcházející | Domů | Další
msql_drop_db | Nahoru | msql_fetch_array


msql_fetch_array

(PHP 3, PHP 4 , PHP 5)

msql_fetch_array -- Fetch row as array

Description

int msql_fetch_array ( int query_identifier [, int result_type])

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

msql_fetch_array() is an extended version of msql_fetch_row(). In addition to storing the data in the numeric indices of the result array, it also stores the data in associative indices, using the field names as keys.

The second optional argument result_type in msql_fetch_array() is a constant and can take the following values: MSQL_ASSOC, MSQL_NUM, and MSQL_BOTH with MSQL_BOTH being the default.

Be careful if you are retrieving results from a query that may return a record that contains only one field that has a value of 0 (or an empty string, or NULL).

An important thing to note is that using msql_fetch_array() is NOT significantly slower than using msql_fetch_row(), while it provides a significant added value.

See also msql_fetch_row() and msql_fetch_object().

Předcházející | Domů | Další
msql_error | Nahoru | msql_fetch_field


msql_fetch_field

(PHP 3, PHP 4 , PHP 5)

msql_fetch_field -- Get field information

Description

object msql_fetch_field ( resource query_identifier, int field_offset)

Returns an object containing field information

msql_fetch_field() can be used in order to obtain information about fields in a certain query result. If the field offset isn't specified, the next field that wasn't yet retrieved by msql_fetch_field() is retrieved.

The properties of the object are:

  • name - column name

  • table - name of the table the column belongs to

  • not_null - 1 if the column cannot be NULL

  • primary_key - 1 if the column is a primary key

  • unique - 1 if the column is a unique key

  • type - the type of the column

See also msql_field_seek().

Předcházející | Domů | Další
msql_fetch_array | Nahoru | msql_fetch_object


msql_fetch_object

(PHP 3, PHP 4 , PHP 5)

msql_fetch_object -- Fetch row as object

Description

int msql_fetch_object ( int query_identifier)

Returns an object with properties that correspond to the fetched row, or FALSE if there are no more rows.

msql_fetch_object() is similar to msql_fetch_array(), with one difference - an object is returned, instead of an array. Indirectly, that means that you can only access the data by the field names, and not by their offsets (numbers are illegal property names).

Speed-wise, the function is identical to msql_fetch_array(), and almost as quick as msql_fetch_row() (the difference is insignificant).

See also: msql_fetch_array() and msql_fetch_row().

Předcházející | Domů | Další
msql_fetch_field | Nahoru | msql_fetch_row


msql_fetch_row

(PHP 3, PHP 4 , PHP 5)

msql_fetch_row -- Get row as enumerated array

Description

array msql_fetch_row ( resource query_identifier)

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

msql_fetch_row() fetches one row of data from the result associated with the specified query identifier. The row is returned as an array. Each result column is stored in an array offset, starting at offset 0.

Subsequent call to msql_fetch_row() would return the next row in the result set, or FALSE if there are no more rows.

See also: msql_fetch_array(),
msql_fetch_object(),
msql_data_seek(), and
msql_result().

Předcházející | Domů | Další
msql_fetch_object | Nahoru | msql_field_flags


msql_field_flags

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

msql_field_flags -- Get field flags

Description

string msql_field_flags ( resource query_identifier, int field_offset)

msql_field_flags() returns the field flags of the specified field. Currently this is either, "not NULL", "primary key", a combination of the two or "" (an empty string).

Předcházející | Domů | Další
msql_fetch_row | Nahoru | msql_field_len


msql_field_len

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

msql_field_len -- Get field length

Description

int msql_field_len ( resource query_identifier, int field_offset)

msql_field_len() returns the length of the specified field or FALSE on error.

Předcházející | Domů | Další
msql_field_flags | Nahoru | msql_field_name


msql_field_name

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

msql_field_name -- Get field name

Description

string msql_field_name ( resource query_identifier, int field)

msql_field_name() returns the name of the specified field from the result resource query_identifier. msql_field_name($result, 2); will return the name of the second field in the result set associated with the result identifier.

Předcházející | Domů | Další
msql_field_len | Nahoru | msql_field_seek


msql_field_seek

(PHP 3, PHP 4 , PHP 5)

msql_field_seek -- Set field offset

Description

int msql_field_seek ( int query_identifier, int field_offset)

Seeks to the specified field offset. If the next call to msql_fetch_field() won't include a field offset, this field would be returned.

This function returns FALSE on failure.

See also: msql_fetch_field().

Předcházející | Domů | Další
msql_field_name | Nahoru | msql_field_table


msql_field_table

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

msql_field_table -- Get table name for field

Description

int msql_field_table ( int query_identifier, int field)

Returns the name of the table field was fetched from.

This function returns FALSE on failure.

Předcházející | Domů | Další
msql_field_seek | Nahoru | msql_field_type


msql_field_type

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

msql_field_type -- Get field type

Description

string msql_field_type ( resource query_identifier, int field_offset)

msql_field_type() is similar to the msql_field_name() function. The arguments are identical, but the field type is returned. This will be one of "int", "char" or "real".

This function returns FALSE on failure.

Předcházející | Domů | Další
msql_field_table | Nahoru | msql_fieldflags


msql_fieldflags

msql_fieldflags -- Alias of msql_field_flags()

Description

This function is an alias of msql_field_flags().

Předcházející | Domů | Další
msql_field_type | Nahoru | msql_fieldlen


msql_fieldlen

msql_fieldlen -- Alias of msql_field_len()

Description

This function is an alias of msql_field_len().

Předcházející | Domů | Další
msql_fieldflags | Nahoru | msql_fieldname


msql_fieldname

msql_fieldname -- Alias of msql_field_name()

Description

This function is an alias of msql_field_name().

Předcházející | Domů | Další
msql_fieldlen | Nahoru | msql_fieldtable


msql_fieldtable

msql_fieldtable -- Alias of msql_field_table()

Description

This function is an alias of msql_field_table().

Předcházející | Domů | Další
msql_fieldname | Nahoru | msql_fieldtype


msql_fieldtype

msql_fieldtype -- Alias of msql_field_type()

Description

This function is an alias of msql_field_type().

Předcházející | Domů | Další
msql_fieldtable | Nahoru | msql_free_result


msql_free_result

(PHP 3, PHP 4 , PHP 5)

msql_free_result -- Free result memory

Description

int msql_free_result ( resource query_identifier)

msql_free_result() frees the memory associated with query_identifier. When PHP completes a request, this memory is freed automatically, so you only need to call this function when you want to make sure you don't use too much memory while the script is running.

For downward compatibility, the alias named msql_freeresult() may be used. This, however, is deprecated and not recommended.

Předcházející | Domů | Další
msql_fieldtype | Nahoru | msql_list_dbs


msql_list_dbs

(PHP 3, PHP 4 , PHP 5)

msql_list_dbs -- List mSQL databases on server

Description

resource msql_list_dbs ( [resource link_identifier])

msql_list_dbs() will return a result pointer containing the databases available from the current msql daemon. Use the msql_result() function to traverse this result pointer.

For downward compatibility, the alias named msql_listtables() may be used. This, however, is deprecated and not recommended.

Předcházející | Domů | Další
msql_free_result | Nahoru | msql_list_fields


msql_list_fields

(PHP 3, PHP 4 , PHP 5)

msql_list_fields -- List result fields

Description

resource msql_list_fields ( string database, string tablename [, resource link_identifier])

msql_list_fields() retrieves information about the given tablename. The returned result set can be traversed with any function that fetches result sets, such as msql_fetch_array().

This function returns FALSE on failure.

For downward compatibility, the alias named msql_listfields() may be used. This, however, is deprecated and not recommended.

Předcházející | Domů | Další
msql_list_dbs | Nahoru | msql_list_tables


msql_list_tables

(PHP 3, PHP 4 , PHP 5)

msql_list_tables -- List tables in an mSQL database

Description

resource msql_list_tables ( string database [, resource link_identifier])

msql_list_tables() lists the tables on the specified database. It returns a result set which may be traversed with any function that fetches result sets, such as msql_fetch_array().

This function returns FALSE on failure.

For downward compatibility, the alias named msql_listtables() may be used. This, however, is deprecated and not recommended.

Předcházející | Domů | Další
msql_list_fields | Nahoru | msql_num_fields


msql_num_fields

(PHP 3, PHP 4 , PHP 5)

msql_num_fields -- Get number of fields in result

Description

int msql_num_fields ( resource query_identifier)

msql_num_fields() returns the number of fields in a result set.

For downwards compatability, the alias named msql_numfields() may be used. This, however, is deprecated and not recommended.

See also: msql_query(),
msql_fetch_field(), and
msql_num_rows().

Předcházející | Domů | Další
msql_list_tables | Nahoru | msql_num_rows


msql_num_rows

(PHP 3, PHP 4 , PHP 5)

msql_num_rows -- Get number of rows in result

Description

int msql_num_rows ( resource query_identifier)

msql_num_rows() returns the number of rows in a result set.

For downwards compatability, the alias named msql_numrows() may be used. This, however is deprecated and not recommended.

See also: msql_db_query() and msql_query().

Předcházející | Domů | Další
msql_num_fields | Nahoru | msql_numfields


msql_numfields

msql_numfields -- Alias of msql_num_fields()

Description

This function is an alias of msql_num_fields().

Předcházející | Domů | Další
msql_num_rows | Nahoru | msql_numrows


msql_numrows

msql_numrows -- Alias of msql_num_rows()

Description

This function is an alias of msql_num_rows().

Předcházející | Domů | Další
msql_numfields | Nahoru | msql_pconnect


msql_pconnect

(PHP 3, PHP 4 , PHP 5)

msql_pconnect -- Open persistent mSQL connection

Description

int msql_pconnect ( [string server [, string username [, string password]]])

msql_pconnect() acts very much like msql_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. 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 (msql_close() will not close links established by msql_pconnect()).

Returns a positive mSQL persistent link identifier on success, or FALSE on error.

Předcházející | Domů | Další
msql_numrows | Nahoru | msql_query


msql_query

(PHP 3, PHP 4 , PHP 5)

msql_query -- Send mSQL query

Description

resource msql_query ( string query [, resource link_identifier])

msql_query() sends a query to the currently active database on the server that's associated with the specified link identifier. If the link identifier isn't specified, the last opened link is assumed. If no link is open, the function tries to establish a link as if msql_connect() was called, and use it.

Returns a positive mSQL query identifier on success, or FALSE on error.

Příklad 1. msql_query() example

<?php
$link = msql_connect("dbserver")
   or die("unable to connect to msql server: " . msql_error());
msql_select_db("db", $link)
   or die("unable to select database 'db': " . msql_error());

$result = msql_query("SELECT * FROM table WHERE id=1", $link);
if (!$result) {
   die("query failed: " . msql_error());
}

while ($row = msql_fetch_array($result)) {
    echo $row["id"];
}
?>

See also
msql_db_query(),
msql_select_db(), and
msql_connect().

Předcházející | Domů | Další
msql_pconnect | Nahoru | msql_regcase


msql_regcase

msql_regcase -- Alias of sql_regcase()

Description

This function is an alias of sql_regcase().

Předcházející | Domů | Další
msql_query | Nahoru | msql_result


msql_result

(PHP 3, PHP 4 , PHP 5)

msql_result -- Get result data

Description

string msql_result ( resource query_identifier, int row [, mixed field])

Returns the contents of the cell at the row and offset in the specified mSQL result set.

msql_result() returns the contents of one cell from a mSQL result set. The field argument can be the field's offset, or the field's name, or the field's table dot field's name (fieldname.tablename). If the column name has been aliased ('select foo as bar from ...'), use the alias instead of the column name.

When working on large result sets, you should consider using one of the functions that fetch an entire row (specified below). As these functions return the contents of multiple cells in one function call, they are often much quicker than msql_result(). Also, note that specifying a numeric offset for the field argument is much quicker than specifying a fieldname or tablename.fieldname argument.

Recommended high-performance alternatives:
msql_fetch_row(),
msql_fetch_array(), and
msql_fetch_object().

For downward compatibility, the aliases named msql(), msql_tablename(), and msql_dbname() may be used. This, however, is deprecated and not recommended.

Předcházející | Domů | Další
msql_regcase | Nahoru | msql_select_db


msql_select_db

(PHP 3, PHP 4 , PHP 5)

msql_select_db -- Select mSQL database

Description

bool msql_select_db ( string database_name [, resource link_identifier])

msql_select_db() sets the current active database on the server that's associated with the specified link_identifier. If no link identifier is specified, the last opened link is assumed. If no link is open, the function will try to establish a link as if msql_connect() was called, and use it.

Vrací TRUE při úspěchu, FALSE při selhání.

Subsequent calls to msql_query() will be made on the active database.

For downward compatibility, the alias named msql_selectdb() may be used. This, however, is deprecated and not recommended.

See also
msql_connect(),
msql_pconnect(), and
msql_query().

Předcházející | Domů | Další
msql_result | Nahoru | msql_tablename


msql_tablename

msql_tablename -- Alias of msql_result()

Description

This function is an alias of msql_result().

Předcházející | Domů | Další
msql_select_db | Nahoru | msql


msql

msql -- Alias of msql_db_query()

Description

This function is an alias of msql_db_query().

Předcházející | Domů | Další
msql_tablename | Nahoru | MySQL funkce


MySQL funkce

Manuál PHP
Předcházející Další

LXIV. MySQL funkce

Úvod

Tyto funkce zprostředkovávají přístup na MySQL databázový server. Více informací o MySQL lze nalézt na http://www.mysql.com/.

Dokumentace k MySQL je dostupná na http://dev.mysql.com/doc/.

Požadavky

Aby byly tyto funkce dostupné, musí být PHP zkompilováno s podporou MySQL.

Instalace

Použitím konfigurační volby --with-mysql[=DIR] povolíte PHP přistupovat k MySQL databázím.

V PHP 4 je volba --with-mysql ve výchozím nastavení povolena. Pro zakázání MySQL můžete použít volbu --without-mysql. Pokud v PHP 4 povolíte MySQL bez zadání cesty k MySQL, PHP použije přibalené klientské knihovny MySQL. Pod Windows není potřeba žádné DLL, je přímo obsaženo v PHP 4. Uživatelé, kteří používají jiné aplikace, které používají MySQL (například auth-mysql) by neměli použít přibalené knihovny, ale měli by raději určit cestu k instalačnímu adresáři MySQL, např.: --with-mysql=/path/to/mysql. To přinutí PHP používat klientské knihovny instalované MySQL, čímž se vyhnete případným konfliktům.

V PHP 5 není ve výchozím nastavení MySQL nadále zapnuto ani nejsou k dispozici přibalené knihovny MySQL. Přečtěte si tuto FAQ s vysvětlením důvodů.

Toto MySQL rozšíření nebude pracovat s MySQL verzemi většími než 4.1.0. Pro tyto verze použijte MySQLi.

Varování

Padání a problémy při startu PHP mohou nastat, pokud nahráváte toto rozšíření spolu s rozšířením recode. Viz rozšíření recode pro bližší informace.

Poznámka: Pokud potřebujete kódové stránky jiné než latin (výchozí), musíte nainstalovat externí (ne přibalenou) knihovnu se zakompilovanou podporou kódových stránek.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 1. Možnosti nastavení MySQL

Jméno | Výchozí | Změnitelné
mysql.allow_persistent | "On" | PHP_INI_SYSTEM
mysql.max_persistent | "-1" | PHP_INI_SYSTEM
mysql.max_links | "-1" | PHP_INI_SYSTEM
mysql.default_port | NULL | PHP_INI_ALL
mysql.default_socket | NULL | PHP_INI_ALL
mysql.default_host | NULL | PHP_INI_ALL
mysql.default_user | NULL | PHP_INI_ALL
mysql.default_password | NULL | PHP_INI_ALL
mysql.connect_timeout | "0" | PHP_INI_SYSTEM
Podrobný popis a definice konstant PHP_INI_* naleznete v ini_set().

Zde je stručné vysvětlení konfiguračních direktiv.

mysql.allow_persistent boolean

Má-li být povoleno persistentní (trvalá) spojení s MySQL.

mysql.max_persistent integer

Maximální počet persistentních spojení na jeden proces.

mysql.max_links integer

Maximální počet spojení s MySQL na jeden proces včetně persistentních spojení.

mysql.default_port string

Číslo výchozího TCP portu pro spojení s databázovým serverem, pokud není port zadán. Není-li výchozí port zadán, použije se port uvedený v proměnné prostředí MYSQL_TCP_PORT, záznam mysql-tcp v /etc/services nebo "compile-time" konstanta MYSQL_PORT, v tomto pořadí. Win32 používá pouze konstantu MYSQL_PORT.

mysql.default_socket string

Výchozí jméno socketu pro připojení k lokálnímu databázovému serveru, není-li jiný socket specifikován.

mysql.default_host string

Výchozí server pro spojení s databázovým serverem, není-li uveden jiný. Nelze použít při bezpečném režimu (safe mode).

mysql.default_user string

Výchozí uživatel pro spojení s databázovým serverem, není-li uveden jiný uživatel. Nelze použít při bezpečném režimu (safe mode).

mysql.default_password string

Výchozí heslo pro spojení s databázovým serverem, není-li uvedeno jiné heslo. Nelze použít při bezpečném režimu (safe mode).

mysql.connect_timeout integer

Timeout připojení v sekundách. Na Linuxu je tento timeout použit také pro čekání na první odpověď serveru.

Typy prostředků

V MySQL modulu jsou použity dva typy zdrojů. První je identifikátor spojení pro připojení k databázi a druhý uchovává výsledek dotazu.

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

Od PHP 4.3.0 je možné nastavit klienta doplňujícími parametry pro funkce mysql_connect() a mysql_pconnect() Jsou definovány následující konstanty:

Tabulka 2. MySQL klientské konstanty

Konstanta | Popis
MYSQL_CLIENT_COMPRESS | Použije kompresní protokol
MYSQL_CLIENT_IGNORE_SPACE | Povolí mezeru za názvy funkcí
MYSQL_CLIENT_INTERACTIVE | Povolí interactive_timeout sekundy (namísto wait_timeout) neaktivity před uzavřením spojení.

Funkce mysql_fetch_array() používá konstanty pro různé typy výsledkových polí. Jsou definovány následující konstanty:

Tabulka 3. MySQL fetch konstanty

Konstanta | Popis
MYSQL_ASSOC | Sloupce jsou vraceny do pole jehož klíčemi jsou názvy sloupců.
MYSQL_BOTH | Sloupce jsou vráceny do pole majícího číslené i textové klíče, určující pořadí sloupce v tabulce, respektive jeho jméno.
MYSQL_NUM | Vrací sloupec do pole s číselnými klíči reprezentujícími pořadí sloupce v tabulce. První sloupec tabulky začíná klíčem 0.

Příklady

Tento jednoduchý příklad ukazuje jak se připojit, provést dotaz, zobrazit výsledné řádky a odpojit se z MySQL databáze.

Příklad 1. Ukázkový příklad použití MySQL

<?php
    /* Připojení, výběr databáze */
    $link = mysql_connect("mysql_host", "mysql_user", "mysql_password")
        or die("Nelze se připojit: " . mysql_error());
    print "Připojeno úspěšně";
    mysql_select_db("my_database") or die("Nelze vybrat databázi");

    /* Příprava SQL dotazu */
    $query = "SELECT * FROM my_table";
    $result = mysql_query($query) or die("Dotaz nelze provést: " . mysql_error());

    /* Zobrazení výsledku v HTML */
    print "<table>\n";
    while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
        print "\t<tr>\n";
        foreach ($line as $col_value) {
            print "\t\t<td>$col_value</td>\n";
        }
        print "\t</tr>\n";
    }
    print "</table>\n";

    /* Uvolnit výsledek */
    mysql_free_result($result);

    /* Odpojení od databáze */
    mysql_close($link);
?>

Obsah
mysql_affected_rows -- Vrátí počet ovlivněných (změněných) záznamů v MySQL po posledním dotazu
mysql_change_user -- Změní přihlášeného uživatele v současném spojení
mysql_client_encoding -- Vrátí název znakové sady
mysql_close -- Ukončí (zavře) MySQL spojení
mysql_connect -- Vytvoří spojení s MySQL Serverem
mysql_create_db -- Vytvoří MySQL databázi
mysql_data_seek -- Přesune ukazatel na aktuální záznam
mysql_db_name -- Vrátí seznam všech databází
mysql_db_query -- Pošle MySQL dotaz
mysql_drop_db -- Vymaže (odstraní) MySQL databázi
mysql_errno -- Vrátí číslenou hodnotu chybové hlášky předchozího MySQL příkazu.
mysql_error -- Vrátí text chybové zprávy předchozího MySQL příkazu.
mysql_escape_string -- Upraví řetězec pro bezpečné použití v mysql_query.
mysql_fetch_array -- Načte výsledný řádek do asociativního, čísleného pole nebo obojího.
mysql_fetch_assoc -- Načte výsledný řádek do asociativního pole
mysql_fetch_field -- Načte informace o sloupci z výsledku do proměnné objektu
mysql_fetch_lengths -- Zjistí délku všech položek aktuálního výstupu
mysql_fetch_object -- Načte výsledný záznam do proměnné objektu
mysql_fetch_row -- Načte výsledný záznam do pole
mysql_field_flags -- Načte příznaky sloupce tabulky
mysql_field_len -- Vrací délku sloupce tabulky
mysql_field_name -- Načte název sloupce tabulky
mysql_field_seek -- Nastaví ukazatel na zadaný sloupec
mysql_field_table -- Zjistí jméno tabulky, v níž se nachází uvedený sloupec
mysql_field_type -- Vrací typ specifikovaného sloupce.
mysql_free_result -- Uvolní výsledek z paměti
mysql_get_client_info -- Načte verzi klientské knihovny MySQL
mysql_get_host_info -- Načte informaci o hostu
mysql_get_proto_info -- Načte informaci o protokolu MySQL
mysql_get_server_info -- Načte informace o serveru MySQL
mysql_info -- Vrací informace o posledním dotazu
mysql_insert_id -- Vrací generovanou hodnotu id posledního příkazu INSERT
mysql_list_dbs -- Načte všechny dostupné databáze na MySQL serveru
mysql_list_fields -- Načte výsledek s obsahem sloupce
mysql_list_processes -- List MySQL processes
mysql_list_tables -- Načte všechny tabulky v MySQL databázi
mysql_num_fields -- Vrací počet sloupců ve výsledku
mysql_num_rows -- Vrací počet záznamů ve výsledku
mysql_pconnect -- Otevře persistentní spojení s MySQL serverem
mysql_ping -- Ověří spojení se serverem, případně, není-li spojení dostupné, pokusí se připojit znovu.
mysql_query -- Pošle MySQL dotaz
mysql_real_escape_string -- Upraví řetězec pro bezpečné použití v mysql_query.
mysql_result -- Načte obsah jednoho sloupce tabulky
mysql_select_db -- Nastaví MySQL databázi
mysql_stat -- Vrací aktuální stav systému
mysql_tablename -- Načte jméno tabulky
mysql_thread_id -- Vrací id aktuálního vlákna
mysql_unbuffered_query -- Pošle SQL dotaz bez načtení a bufferování výsledných záznamů

Předcházející | Domů | Další
msql | Nahoru | mysql_affected_rows


mysql_affected_rows

(PHP 3, PHP 4 , PHP 5)

mysql_affected_rows -- Vrátí počet ovlivněných (změněných) záznamů v MySQL po posledním dotazu

Popis

int mysql_affected_rows ( [resource spojeni])

mysql_affected_rows() vrátí počet záznamů ovlivněných posledním použitím dotazu INSERT, UPDATE nebo DELETE, kterému odpovídá spojeni. Není-li identifikátor spojení uveden, použije se poslední spojení otevřené pomocí mysql_connect().

Poznámka: Používáte-li transakce, je nutné mysql_affected_rows() volat až po dotazu INSERT, UPDATE nebo DELETE, nikoli hned po potvrzení transakce.

Byl-li poslední dotaz DELETE bez části WHERE, budou smázany všechny záznamy z tabulky, ale tato funce vrátí nulu.

Poznámka: Při použití UPDATE, MySQL neuloží sloupce, ve kterých je nová hodnota shodná s původní. Toto může způsobit, že mysql_affected_rows() nemusí vždy přesně souhlasit se skutečným počtem ovlivněných řádků.

mysql_affected_rows() nelze použít s dotazy SELECT, ale jen s takovými, které mění záznamy. K zjištění počtu řádků vrácených dotazem SELECT použijte funkci mysql_num_rows().

Je-li poslední dotaz chybný, funkce vrátí -1.

Příklad 1. Dotaz typu DELETE (mazání)

<?php
    /* připojení k databázi */
    mysql_pconnect("localhost", "mysql_uziv", "mysql_heslo") or
        die ("Nelze se připojit: " . mysql_error());

    /* tohle vrátí správný počet smazaných záznamů */
    mysql_query("DELETE FROM moje_tabulka WHERE id < 10");
    printf ("Smazáno záznamů: %d\n", mysql_affected_rows());

    /* bez použití klauzule where v dotazu typu DELETE, bude vrácena 0 */
    mysql_query("DELETE FROM moje_tabulka");
    printf ("Smazáno záznamů: %d\n", mysql_affected_rows());
?>

Předchozí příklad by měl následující výstup:
Smazáno záznamů: 10
Smazáno záznamů: 0

Příklad 2. Dotaz typu UPDATE (změna)

<?php
    /* připojení k databázi */
    mysql_pconnect("localhost", "mysql_uziv", "mysql_heslo") or
        die ("Nelze se připojit: " . mysql_error());

    /* Změna záznamů */
    mysql_query("UPDATE moje_tabulka SET used=1 WHERE id < 10");
    printf ("Změněno záznamů: %d\n", mysql_affected_rows());
    mysql_query("COMMIT");
?>

Předchozí příklad by měl následující výstup:
Změněno záznamů: 10

Dále také: mysql_num_rows(), mysql_info().

Předcházející | Domů | Další
MySQL funkce | Nahoru | mysql_change_user


mysql_change_user

(PHP 3>= 3.0.13)

mysql_change_user -- Změní přihlášeného uživatele v současném spojení

Popis

int mysql_change_user ( string uzivatel, string heslo [, string databaze [, resource spojeni]])

mysql_change_user() změní přihlášeného uživatele současného aktivního spojení nebo spojení definované nepovinným parametrem spojeni. Je-li uveden parameter databaze nastaví se tato databáze jako výchozí, v opačném případě zůstane aktivní současná databáze definovaná ve změněném spojení. Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: Tato funkce byla přidána v PHP 3.0.13 a vyžaduje použití MySQL 3.23.3 nebo vyšší. Není dostupná v PHP 4.

Předcházející | Domů | Další
mysql_affected_rows | Nahoru | mysql_client_encoding


mysql_client_encoding

(PHP 4 >= 4.3.0, PHP 5)

mysql_client_encoding -- Vrátí název znakové sady

Popis

int mysql_client_encoding ( [resource link_identifier])

mysql_client_encoding() vrátí výchozí název znakové sady pro aktuální spojení.

Příklad 1. mysql_client_encoding() příklad

<?php
$link = mysql_connect('localhost', 'mysql_uziv', 'mysql_heslo');
$charset = mysql_client_encoding($link);
printf ("aktuální znaková sada je %s\n", $charset);
?>

Předchozí příklad může mít následující výstup:
aktuální znaková sada je latin1

Viz. také: mysql_real_escape_string()

Předcházející | Domů | Další
mysql_change_user | Nahoru | mysql_close


mysql_close

(PHP 3, PHP 4 , PHP 5)

mysql_close -- Ukončí (zavře) MySQL spojení

Popis

bool mysql_close ( [resource spojeni])

Vrací TRUE při úspěchu, FALSE při selhání.

Funkce mysql_close() uzavře spojení s MySQL serverem, které je asociováno se určitým identikátorem spojení Pokud spojeni není zadán uzavře poslední otevřené spojení.

Použití mysql_close() není obvykle nutné, protože nepersistentní (netrvalá) otevřená spojení jsou zavřena automaticky po zpracování scriptu. Dále viz. uvolnění zdrojů.

Poznámka: mysql_close() neuzavře persistentní spojení otevřené pomocí mysql_pconnect().

Příklad 1. Příklad k MySQL close

<?php
    $link = mysql_connect("kraemer", "marliesle", "tajne")
        or die("Nelze se připojit: " . mysql_error());
    print ("Spojení navázáno");
    mysql_close($link);
?>

Viz. také: mysql_connect(), a mysql_pconnect().

Předcházející | Domů | Další
mysql_client_encoding | Nahoru | mysql_connect


mysql_connect

(PHP 3, PHP 4 , PHP 5)

mysql_connect -- Vytvoří spojení s MySQL Serverem

Popis

resource mysql_connect ( [string server [, string uziv_jmeno [, string heslo [, bool nove_spojeni [, int nastaveni_klienta]]]]])

Je-li spojení úspěšné vrátí identifikátor spojení v opačném případě FALSE.

mysql_connect() vytvoří spojení s MySQL serverem.
Nejsou-li zadány nepovinné parametry, použijí se následující hodnoty:
server = 'localhost:3306',
uziv_jmeno = jméno uživatele, pod kterým běží právě spuštěný skript a
heslo = bez hesla.

Parametr server může obsahovat číslo portu ve tvaru "hostname:port" nebo cestu k socketu ve tvaru ":/cesta/k/socketu" pro localhost.

Poznámka: Vždy když uvedete "localhost" nebo "localhost:port" jako server, klientská knihovna MySQL na toto nebude brát zřetel a pokusí se připojit na místní soket ("named pipe" na Windows). Ccete-li použít TCP/IP, uvedte "127.0.0.1" namísto "localhost". Pokud se klientská knihovna MySQL pokouší připojovat na špatný soket, měli byste nastavit správnou cestu jako mysql.default_host ve vaší PHP konfiguraci a nechat pole server prázdné.

Podpora pro ":port" byla přidána v PHP 3.0B4.

Podpora pro ":/cesta/k/socketu" byla přidána v PHP 3.0.10.

Chybovou hlášku lze potlačit přidáním @ před jméno funkce.

Bude-li funkce mysql_connect() zavolána podruhé se stejnými parametry, nebude vytvořeno nové spojení, ale použije se stávající a je vrácen i stejný identifikátor spojení. Nepovinný parametr nove_spojeni toto chování upravuje a každé volání mysql_connect() vytvoří vždy nové spojení v případě, že funkce mysql_connect() byla volána znovu se stejnými parametry. Parametr nastaveni_klienta může být kombinace konstant MYSQL_CLIENT_COMPRESS, MYSQL_CLIENT_IGNORE_SPACE a MYSQL_CLIENT_INTERACTIVE.

Poznámka: Parametr nove_spojeni byl přidán v PHP 4.2.0

Parametr nastaveni_klienta byl přidán v PHP 4.3.0

Spojení se serverem bude ukončeno automaticky po skončení běhu skriptu nebude-li dříve zavolána funkce mysql_close()

Příklad 1. MySQL příklad spojení

<?php
    $link = mysql_connect("localhost", "uziv_jmeno", "tajne")
        or die("Nelze se připojit");
    print ("Spojení navázáno");
    mysql_close($link);
?>

Viz. také mysql_pconnect() a mysql_close().

Předcházející | Domů | Další
mysql_close | Nahoru | mysql_create_db


mysql_create_db

(PHP 3, PHP 4 , PHP 5)

mysql_create_db -- Vytvoří MySQL databázi

Popis

bool mysql_create_db ( string jméno databáze [, resource spojeni])

mysql_create_db() vytvoří na serveru identifikovaném parametrem spojení novou databázi.

Vrací TRUE při úspěchu, FALSE při selhání.

Příklad 1. MySQL příklad vytvoření nové databáze

<?php
    $link = mysql_pconnect("kron", "jutta", "geheim")
        or exit("Nelze se připojit");
    if (mysql_create_db("moje_db")) {
        print ("Databáze byla vytvořena\n");
    } else {
        printf ("Chyba při vytváření databáze: %s\n", mysql_error ());
    }
?>

Kvůli zpětné kompatibilitě je možné použít i mysql_createdb(). Není to však doporučeno.

Poznámka: Také používání mysql_create_db() bylo zavrhnuto. K zakládání nových databází používejte funkci mysql_query() společně s příkazem SQL CREATE DATABASE.

Varování

Tato funkce není dostupná, pokud je modul MySQL zkompilován s MySQL 4.x klientskou knihovnou.

Viz také: mysql_drop_db(), mysql_query().

Předcházející | Domů | Další
mysql_connect | Nahoru | mysql_data_seek


mysql_data_seek

(PHP 3, PHP 4 , PHP 5)

mysql_data_seek -- Přesune ukazatel na aktuální záznam

Popis

bool mysql_data_seek ( zdroj identifikator_vysledku, int cislo_zaznamu)

Vrací TRUE při úspěchu, FALSE při selhání.

mysql_data_seek() přesune interní ukazatel výsledku MySQL na záznam specifikovaný číslem záznamu. Následné volání funkce mysql_fetch_row() načte požadovaný záznam.

Není-li zadáno cislo_zaznamu začíná se od 0. Parametr cislo_zaznamu by mělo být číslo mezi 0 a (mysql_num_rows - 1).

Poznámka: Funkce mysql_data_seek() může být použita pouze ve spolupráci s mysql_query(), ne s mysql_unbuffered_query().

Příklad 1. MySQL příklad přesunutí ukazatele

<?php
    $link = mysql_pconnect("kron", "jutta", "geheim")
        or die("Nelze se připojit");

    mysql_select_db("samp_db")
        or exit("Nelze vybrat databázi");

    $query = "SELECT last_name, first_name FROM friends";
    $result = mysql_query($query)
        or die("Chyba dotazu");

    // načtení záznamů v obráceném pořadí

    for ($i = mysql_num_rows($result) - 1; $i >=0; $i--) {
        if (!mysql_data_seek($result, $i)) {
            echo "Nelze nalézt záznam $i\n";
            continue;
        }

        if(!($row = mysql_fetch_object($result)))
            continue;

        echo "$row->last_name $row->first_name<br />\n";
    }

    mysql_free_result($result);
?>

Viz také: mysql_query(), mysql_num_rows().

Předcházející | Domů | Další
mysql_create_db | Nahoru | mysql_db_name


mysql_db_name

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

mysql_db_name -- Vrátí seznam všech databází

Popis

string mysql_db_name ( resource výsledek, int záznam [, mixed field])

První parametr funkce mysql_db_name() obsahuje identifikátor volání mysql_list_dbs(). Parametr záznam určuje pořadí databáze ve výsledku.

Nastane-li chyba vrací FALSE. Použitím mysql_errno() a mysql_error() zjistíte chybovou hlášku.

Příklad 1. mysql_db_name() příklad

<?php
error_reporting(E_ALL);

mysql_connect('dbhost', 'uziv_jmeno', 'heslo');
$db_list = mysql_list_dbs();

$i = 0;
$cnt = mysql_num_rows($db_list);
while ($i < $cnt) {
    echo mysql_db_name($db_list, $i) . "\n";
    $i++;
}
?>

Kvůli zpětné kompatibilitě lze použít i mysql_dbname(). Není to však doporučeno.

Předcházející | Domů | Další
mysql_data_seek | Nahoru | mysql_db_query


mysql_db_query

(PHP 3, PHP 4 , PHP 5)

mysql_db_query -- Pošle MySQL dotaz

Popis

resource mysql_db_query ( string databáze, string dotaz [, resource spojeni])

Vrátí kladný identifikátor výsledku dotazu do určené databáze nebo FALSE nastane-li chyba. Funkce dále vrací TRUE/FALSE pro dotazy INSERT/UPDATE/DELETE pro indikace úspěch/chyba.

mysql_db_query() provede dotaz v databázi specifikované parametrem database. Není-li identifikátor databáze uveden, funkce se pokusí nalézt již otevřené spojení s MySQL serverem. Pokud není žádné aktivní spojení nalezeno, pokusí se vytvořit nové spojení s výchozími hodnotami funkce mysql_connect()

Uvědomte si, že tato funkce NEPŘEPÍNÁ zpět na databázi, ke které jste byli připojeni předtím. Jinými slovy, tuto funkci nemůžete použít k dočasnému spuštění sql dotazu nad jinou databázi, museli byste se přepnout zpět na tu původní. Uživatelům se namísto této funkce vřele doporučuje použití database.table syntaxe v sql dotazech.

Viz. také mysql_connect() a mysql_query().

Poznámka: Tato funkce není od verze PHP 4.0.6 podporována. Místo této funkce použijtemysql_select_db() a mysql_query().

Předcházející | Domů | Další
mysql_db_name | Nahoru | mysql_drop_db


mysql_drop_db

(PHP 3, PHP 4 , PHP 5)

mysql_drop_db -- Vymaže (odstraní) MySQL databázi

Popis

bool mysql_drop_db ( string database_name [, resource spojeni])

mysql_drop_db() odstraní ze serveru databázi uvedeného jména pod specifikovaným identifikátorem spojení.

Vrací TRUE při úspěchu, FALSE při selhání.

Kvůli zpětné kompatibilitě se můžete setkat i s mysql_dropdb(). Nedoporučujeme však používat. Tento zápis nemusí být v příštích verzích PHP podporován.

Poznámka: Namísto používání funkce mysql_drop_db() se doporučuje ke smazání databáze upřednostnit funkci mysql_query(), do níž je vložen SQL dotaz s příkazem DROP DATABASE.

Viz. také: mysql_create_db() a mysql_query().

Předcházející | Domů | Další
mysql_db_query | Nahoru | mysql_errno


mysql_errno

(PHP 3, PHP 4 , PHP 5)

mysql_errno -- Vrátí číslenou hodnotu chybové hlášky předchozího MySQL příkazu.

Popis

int mysql_errno ( [resource spojeni])

Vrátí číselnou hodnotu chybové hlášky vyvolané poslední MySQL funkcí nebo 0 (nulu), pokud nenastala žádná chyba.

Chyby vrácené MySQL již nezpůsobují upozorňující chybové hlášení (warning). Potřebujete-li zjistit číselný kód chyby, použijte mysql_errno(), případně mysql_error() k zjištění textu chyby. Pamatujte, že tato funkce vrací chybový kód pouze naposledy vykonané MySQL funkce (netýká se mysql_error() a mysql_errno()), pokud ji tedy budete používat, musíte kontrolovat hodnotu ještě před voláním další MySQL funkce.

Příklad 1. mysql_errno() example

<?php
    mysql_connect("localhost", "mysql_uziv", "mysql_heslo");

    mysql_select_db("neexististujicidb");
    echo mysql_errno() . ": " . mysql_error(). "\n";

    mysql_select_db("kossu");
    mysql_query("SELECT * FROM neexististujicitabulka");
    echo mysql_errno() . ": " . mysql_error() . "\n";
?>

Předchozí příklad by zobrazil následující výstup:

1049: Unknown database 'neexististujicidb'
1146: Table 'kossu.neexististujicitabulka' doesn't exist

Poznámka: Je-li jako volitelný parametr uveden i identifikátor spojení, použije se k vrácení chybového kódu. V opačném případě je použito poslední otevřené spojení.

Viz. také: mysql_error()

Předcházející | Domů | Další
mysql_drop_db | Nahoru | mysql_error


mysql_error

(PHP 3, PHP 4 , PHP 5)

mysql_error -- Vrátí text chybové zprávy předchozího MySQL příkazu.

Popis

string mysql_error ( [resource spojeni])

Vrátí text chybové zprávy posledního MySQL příkazu nebo '' (prázdný řetězec) pokud žádná chyba nenastala.

Chyby vrácené MySQL již nezpůsobují upozorňující chybové hlášení (warning). Potřebujete-li zjistit text chyby, použijte mysql_error(), případně mysql_errno() k zjištění čísleného kódu chyby. Pamatujte, že tato funkce vrací chybový kód pouze naposledy vykonané MySQL funkce (netýká se mysql_error() a mysql_errno()), pokud ji tedy budete používat, musíte kontrolovat hodnotu ještě před voláním další MySQL funkce.

Příklad 1. mysql_errno() example

<?php
    mysql_connect("localhost", "mysql_uziv", "mysql_heslo");

    mysql_select_db("neexististujicidb");
    echo mysql_errno() . ": " . mysql_error(). "\n";

    mysql_select_db("kossu");
    mysql_query("SELECT * FROM neexististujicitabulka");
    echo mysql_errno() . ": " . mysql_error() . "\n";
?>

Předchozí příklad by zobrazil následující výstup:

1049: Unknown database 'neexististujicidb'
1146: Table 'kossu.neexististujicitabulka' doesn't exist

Poznámka: Je-li jako volitelný parametr uveden i identifikátor spojení, použije se k vrácení chybového kódu. V opačném případě je použito poslední otevřené spojení.

Viz. také: mysql_errno()

Předcházející | Domů | Další
mysql_errno | Nahoru | mysql_escape_string


mysql_escape_string

(PHP 4 >= 4.0.3, PHP 5)

mysql_escape_string -- Upraví řetězec pro bezpečné použití v mysql_query.

Popis

string mysql_escape_string ( string neupraveny_retezec)

Tato funkce opatří speciální znaky v neupraveny_retezec zpětným lomítkem pro bezpečné použití v mysql_query() (konce řádků jsou nahrazeny značkou \n atd.).

Poznámka: mysql_escape_string() nepřidává zpětná lomítka před znaky % a _.

Funkce je téměř identická s mysql_real_escape_string(). Vyjma toho, že mysql_real_escape_string() upraví řetězec podle nastavené znakové sady v aktuálním identifikátoru spojení. mysql_escape_string() nepoužívá identifikátor spojení a ani nebere v potaz aktuální znakovou sadu.

Příklad 1. mysql_escape_string() příklad

<?php
    $item = "Zak's Laptop";
    $escaped_item = mysql_escape_string($item);
    printf ("Escaped string: %s\n", $escaped_item);
?>

Předchozí příklad by zobrazil následující výstup:
Escaped string: Zak\'s Laptop

Dále také: mysql_real_escape_string(), addslashes() a magic_quotes_gpc directive.

Předcházející | Domů | Další
mysql_error | Nahoru | mysql_fetch_array


mysql_fetch_array

(PHP 3, PHP 4 , PHP 5)

mysql_fetch_array -- Načte výsledný řádek do asociativního, čísleného pole nebo obojího.

Popis

array mysql_fetch_array ( resource výsledek [, int result_type])

Funkce vrací pole hodnot načteného záznamu nebo FALSE, není-li žádný další řádek.

mysql_fetch_array() je rozšířenou verzí mysql_fetch_row(). Navíc jsou zde data uložena v poli nejen pod číselnými klíči, ale také pod asociativními textovými klíči jmenujícími se podle názvu sloupce sql tabulky.

Pokud dva nebo více sloupců mají stejný název, bude dostupná hodnota pouze toho posledního. Chcete-li přistupovat i k hodnotám ostatních sloupců, musíte k nim v sql dotazu vytvořit aliasy. Název klíče sloupce, k němuž je vytvořem alias, je vždy jméno aliasu a proto není možné použít originální jméno sloupce v sql tabulce (viz. 'sloupec' v následujícím příkladu).

Příklad 1. Dotaz se zdvojenými názvy polí

select tabulka1.sloupec as sloupec1, tabulka2.sloupec as sloupec2
from tabulka1, tabulka2

Důležité ovšem je, že použití mysql_fetch_array() není nijak významně pomalejší než použití mysql_fetch_row(), pokud je její použití přidanou hodnotou.

Nepovinný druhý parametr result_type v mysql_fetch_array() je komstanta, která může nabývat následujících hodnot: MYSQL_ASSOC, MYSQL_NUM, a MYSQL_BOTH. Tato vlastnost byla přidána v PHP 3.0.7. Výchozí hodnota je MYSQL_BOTH.

Použitím MYSQL_BOTH získáte pole s asociativními i číselnými klíči. Použitím MYSQL_ASSOC získáte pole pouze s asociativními klíči (stejně funguje mysql_fetch_assoc()) a použitím MYSQL_NUM, pole obsahovat pouze číselné klíče (tak funguje mysql_fetch_row()).

Příklad 2. mysql_fetch_array s MYSQL_NUM

<?php
    mysql_connect("localhost", "mysql_uziv", "mysql_heslo") or
        die("Nelze se spojit");
    mysql_select_db("mojedb");

    $result = mysql_query("SELECT id, jmeno FROM moje_tabulka");

    while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
        printf ("ID: %s  Jméno: %s", $row[0], $row[1]);
    }

    mysql_free_result($result);
?>

Příklad 3. mysql_fetch_array s MYSQL_ASSOC

<?php
    mysql_connect("localhost", "mysql_uziv", "mysql_heslo") or
        die("Nelze se spojit");
    mysql_select_db("mojedb");

    $result = mysql_query("SELECT id, jmeno FROM moje_table");

    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
        printf ("ID: %s  Jméno: %s", $row["id"], $row["jmeno"]);
    }

    mysql_free_result($result);
?>

Příklad 4. mysql_fetch_array s MYSQL_BOTH

<?php
    mysql_connect("localhost", "mysql_uziv", "mysql_heslo") or
        die("Nelze se spojit");
    mysql_select_db("mojedb");

    $result = mysql_query("SELECT id, jmeno FROM moje_table");

    while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
        printf ("ID: %s  Jméno: %s", $row[0], $row["jmeno"]);
    }

    mysql_free_result($result);
?>

Viz také mysql_fetch_row() a mysql_fetch_assoc().

Předcházející | Domů | Další
mysql_escape_string | Nahoru | mysql_fetch_assoc


mysql_fetch_assoc

(PHP 4 >= 4.0.3, PHP 5)

mysql_fetch_assoc -- Načte výsledný řádek do asociativního pole

Popis

array mysql_fetch_assoc ( resource výsledek)

Funkce vrací asociativní pole hodnot vráceného záznamu nebo FALSE, není-li žádný další záznam.

mysql_fetch_assoc() je akvalentem k mysql_fetch_array() s nepovinným druhým parametrem MYSQL_ASSOC, což vrací pouze asociativní pole. Pokud potřebujete používat číselné indexy spolu s asociativními, použijte mysql_fetch_array().

Pokud dva nebo více sloupců mají stejný název, bude dostupná hodnota pouze toho posledního. Chcete-li přistupovat i k hodnotám ostatních sloupců, musíte k nim v sql dotazu vytvořit aliasy. Název klíče sloupce, k němuž je vytvořem alias, je vždy jméno aliasu a proto není možné použít originální jméno sloupce v sql tabulce. Podívejte se na vysvětlení použití aliasů v příkladu u mysql_fetch_array().

Důležité ovšem je, že použití mysql_fetch_assoc() není nijak významně pomalejší než použití mysql_fetch_row(), pokud je její použití přidanou hodnotou.

Příklad 1. Rozšířený příklad mysql_fetch_assoc()

<?php

    $conn = mysql_connect("localhost", "mysql_user", "mysql_password");

    if (!$conn) {
        echo "Nelze se spojit s DB: " . mysql_error();
        exit;
    }

    if (!mysql_select_db("mydbname")) {
        echo "Nelze vybrat mydbname: " . mysql_error();
        exit;
    }

    $sql = "SELECT id as userid, fullname, userstatus
            FROM   sometable
            WHERE  userstatus = 1";

    $result = mysql_query($sql);

    if (!$result) {
        echo "Zpracování dotazu nebylo úspěšné ($sql) na DB: " . mysql_error();
        exit;
    }

    if (mysql_num_rows($result) == 0) {
        echo "Nenalezeny žádné řádky, nic k zobrazení, takže končím.";
        exit;
    }

    // Pokud nějaké záznamy dat existují, vlozží každý záznam do asociativního pole $row.
    // Tip: Očekáváte-li pouze jeden záznam, můžete vynechat smyčku.
    // Tip: Přidáte-li do následující smyčky extract($row);, vytvoří se rovnou proměnné $userid, $fullname a $userstatus
    while ($row = mysql_fetch_assoc($result)) {
        echo $row["userid"];
        echo $row["fullname"];
        echo $row["userstatus"];
    }

    mysql_free_result($result);

?>

Pro další detaily viz. také
mysql_fetch_row(),
mysql_fetch_array(),
mysql_query() a
mysql_error().

Předcházející | Domů | Další
mysql_fetch_array | Nahoru | mysql_fetch_field


mysql_fetch_field

(PHP 3, PHP 4 , PHP 5)

mysql_fetch_field -- Načte informace o sloupci z výsledku do proměnné objektu

Popis

object mysql_fetch_field ( resource výsledek [, int poradi_sloupce])

Vrátí objekt obsahující informace o sloupci z výsledku.

mysql_fetch_field() můžete použít v případě, že potřebujete získat informace o sloupci z určitého výsledku. Není-li specifikováno pořadí sloupce (počítáno do nuly), funkce načte informace o prvním následujícím ještě nenačteném sloupci.

Vlastnosti objektu jsou:

  • name - název sloupce

  • table - název tabulky, v níž se tento sloupec nachází

  • max_length - maximální délka sloupce ve znacích

  • not_null - 1 pokud sloupec nemůže být NULL

  • primary_key - 1 pokud je sloupec primární klíč

  • unique_key - 1 pokud je sloupec unikátní klíč

  • multiple_key - 1 pokud je sloupec jiný než unikátní klíč

  • numeric - 1 pokud je sloupec číslo

  • blob - 1 pokud je sloupec BLOB

  • type - typ sloupce

  • unsigned - 1 pokud je sloupec bez znaménka

  • zerofill - 1 pokud je sloupec dolpněn nulami na svou velikost

Příklad 1. mysql_fetch_field()

<?php
mysql_connect('localhost:3306', $user, $password)
    or die ("Nelze se připojit: " . mysql_error());
mysql_select_db("databaze");
$result = mysql_query("select * from tabulka")
    or die("Chyba dotazu: " . mysql_error());
# vrátí informace o sloupci
$i = 0;
while ($i < mysql_num_fields($result)) {
    echo "Informace pro sloupec $i:<br />\n";
    $meta = mysql_fetch_field($result);
    if (!$meta) {
        echo "Nejsou dostupné žádné informace<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);
?>

Viz. také mysql_field_seek().

Předcházející | Domů | Další
mysql_fetch_assoc | Nahoru | mysql_fetch_lengths


mysql_fetch_lengths

(PHP 3, PHP 4 , PHP 5)

mysql_fetch_lengths -- Zjistí délku všech položek aktuálního výstupu

Popis

array mysql_fetch_lengths ( resource výsledek)

Vrácí pole obsahující délku každého sloupce v posledně načteném záznamu pomocí mysql_fetch_row(), nebo FALSE dojde-li k chybě.

     mysql_fetch_lengths() obsahuje délky hodnot všech
vrácených sloupců posledního načteného záznamu pomocí
mysql_fetch_row(),
mysql_fetch_array(), a
mysql_fetch_object() v poli, začínajícího klíčem 0.

Viz. také: mysql_fetch_row().

Předcházející | Domů | Další
mysql_fetch_field | Nahoru | mysql_fetch_object


mysql_fetch_object

(PHP 3, PHP 4 , PHP 5)

mysql_fetch_object -- Načte výsledný záznam do proměnné objektu

Popis

object mysql_fetch_object ( resource výsledek)

Vrácí objekt, jehož proměnné obsahují hodnoty načteného záznamu nebo FALSE není-li žádný další záznam.

mysql_fetch_object() je obdobou mysql_fetch_array(), s jedním rozdílem - narozdíl od pole, je vrácen objekt. Což znamená, že k hodnotám výsledku lze přistupovat pouze přes názvy sloupců a nikoli přes jejich číselné klíče (název vlastnosti nemůže být číslo).

<?php

/* tohle je správný zápis */
echo $row->field;
/* a toto je chybný zápis */
echo $row->0;

?>

Rychlostně je tato funkce identická s mysql_fetch_array(), a téměr tak rychlá jako mysql_fetch_row() (rozdíl je nevýznamný).

Příklad 1. mysql_fetch_object() příklad

<?php
mysql_connect("localhost", "mysql_uziv", "mysql_heslo");
mysql_select_db($db);
$result = mysql_query("select uziv_id, celejmeno from tabulka");
while ($row = mysql_fetch_object($result)) {
    echo $row->uziv_id;
    echo $row->celejmeno;
}
mysql_free_result($result);
?>

Viz. také: mysql_fetch_array() a mysql_fetch_row().

Předcházející | Domů | Další
mysql_fetch_lengths | Nahoru | mysql_fetch_row


mysql_fetch_row

(PHP 3, PHP 4 , PHP 5)

mysql_fetch_row -- Načte výsledný záznam do pole

Popis

array mysql_fetch_row ( resource výsledek)

Funkce vrací číslené pole hodnot načteného záznamu nebo FALSE, není-li žádný další záznam.

mysql_fetch_row() načte jeden záznam výsledku do pole s číslenými klíči. Každá hodnota sloupce je samostatná hodnota pole; klíče jsou číslovány od 0.

Další volání mysql_fetch_row() vrátí následující záznam výsledku, nebo FALSE není-li žádný další záznam.

Viz. také: mysql_fetch_array(),
mysql_fetch_object(),
mysql_data_seek(),
mysql_fetch_lengths() a
mysql_result().

Předcházející | Domů | Další
mysql_fetch_object | Nahoru | mysql_field_flags


mysql_field_flags

(PHP 3, PHP 4 , PHP 5)

mysql_field_flags -- Načte příznaky sloupce tabulky

Popis

string mysql_field_flags ( resource výsledek, int číslo_sloupce)

mysql_field_flags() vrací další informace o uvedeném sloupci tabulky. Každý příznak je reprezentován jedním slovem a jsou od sebe odděleny mezerou tak, že lze výstup snadno rozdělit pomocí funkce explode().

Vrácené příznaky mohou být následující (jestliže je vaše verze MySQL podporuje): "not_null", "primary_key", "unique_key", "multiple_key", "blob", "unsigned", "zerofill", "binary", "enum", "auto_increment", "timestamp".

Z důvodů zpětné kompatibility můžete také narazit na funkci mysql_fieldflags(). Tuto funkci však nedoporučujeme používat, neboť nemusí být již v dalších verzích PHP podporována.

Předcházející | Domů | Další
mysql_fetch_row | Nahoru | mysql_field_len


mysql_field_len

(PHP 3, PHP 4 , PHP 5)

mysql_field_len -- Vrací délku sloupce tabulky

Popis

int mysql_field_len ( resource výsledek, int číslo_sloupce)

mysql_field_len() vrací délku uvedeného sloupce v tabulce.

Z důvodů zpětné kompatibility můžete také narazit na funkci mysql_fieldlen(). Tuto funkci však nedoporučujeme používat, neboť nemusí být již v dalších verzích PHP podporována.

Předcházející | Domů | Další
mysql_field_flags | Nahoru | mysql_field_name


mysql_field_name

(PHP 3, PHP 4 , PHP 5)

mysql_field_name -- Načte název sloupce tabulky

Popis

string mysql_field_name ( resource výsledek, int číslo_sloupce)

mysql_field_name() vrací jméno uvedeného sloupce v tabulce. výsledek musí být platný identifikátor spojení a číslo_sloupce je pořadí sloupce v tabulce.

Poznámka: číslo_sloupce začíná nulou.

Např. pořadí třetího sloupce tabulky bude číslo 2, čtvrtý sloupec v tabulce má číslo 3, atd.

Příklad 1. mysql_field_name() příklad

/* Tabulka &quot;uzivatele&quot; má následující tři sloupce::
 *   uziv_id
 *   jmeno
 *   heslo.
 */
 $link = mysql_connect('localhost', $uzivatel, "tajne");
mysql_select_db($dbjmeno, $link)
    or die("Nelze se spojit s$dbjmeno: " . mysql_error());
$res = mysql_query("select * from uzivatele", $link);

echo mysql_field_name($res, 0) . "\n";
echo mysql_field_name($res, 2);

Předchozí příklad by zobrazil následující výstup:
uziv_id
heslo

Z důvodů zpětné kompatibility můžete také narazit na funkci mysql_fieldname(). Tuto funkci však nedoporučujeme používat, neboť nemusí být již v dalších verzích PHP podporována.

Předcházející | Domů | Další
mysql_field_len | Nahoru | mysql_field_seek


mysql_field_seek

(PHP 3, PHP 4 , PHP 5)

mysql_field_seek -- Nastaví ukazatel na zadaný sloupec

Popis

int mysql_field_seek ( resource výsledek, int číslo sloupce)

Nastaví ukazatel na určený sloupec. Pokud následující volání funkce mysql_fetch_field() nemá zadán druhý parametr (číselné pořadí sloupce), vrátí informace o sloupci určeném právě v mysql_field_seek().

Viz. také: mysql_fetch_field().

Předcházející | Domů | Další
mysql_field_name | Nahoru | mysql_field_table


mysql_field_table

(PHP 3, PHP 4 , PHP 5)

mysql_field_table -- Zjistí jméno tabulky, v níž se nachází uvedený sloupec

Popis

string mysql_field_table ( resource výsledek, int číslo_sloupce)

Vrácí jméno tabulky, která obsahuje uvedený sloupec.

Z důvodů zpětné kompatibility můžete také narazit na funkci mysql_fieldtable(). Tuto funkci však nedoporučujeme používat, neboť nemusí být již v dalších verzích PHP podporována.

Předcházející | Domů | Další
mysql_field_seek | Nahoru | mysql_field_type


mysql_field_type

(PHP 3, PHP 4 , PHP 5)

mysql_field_type -- Vrací typ specifikovaného sloupce.

Popis

string mysql_field_type ( iresource výsledek, int číslo_sloupce)

mysql_field_type() je podobná funkci mysql_field_name(). Argumenty jsou totožné, pouze namísto jméno vrací typ sloupce. Sloupec může být typu: "int", "real", "string", "blob", a další detailně popsané v MySQL dokumentaci.

Příklad 1. MySQL typy sloupců

<?php
    mysql_connect("localhost", "mysql_uziv", "mysql_heslo");
    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 "Tvá tabulka '".$table."' má ".$fields." sloupců a ".$rows." záznam(ů)\n";
    echo "Tabulka má následující sloupce:\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();

?>

Předchozí příklad by mohl mít následující výstup:

Tvá tabulka 'func' má 4 sloupců a 1 záznam(ů)
Tabulka má následující sloupce:
string jmeno 64 not_null primary_key binary
int cislo 1 not_null
string poznamka 128 not_null
string typ 9 not_null enum

Z důvodů zpětné kompatibility můžete také narazit na funkci mysql_fieldtype(). Tuto funkci však nedoporučujeme používat, neboť nemusí být již v dalších verzích PHP podporována.

Předcházející | Domů | Další
mysql_field_table | Nahoru | mysql_free_result


mysql_free_result

(PHP 3, PHP 4 , PHP 5)

mysql_free_result -- Uvolní výsledek z paměti

Popis

bool mysql_free_result ( resource vysledek)

mysql_free_result() uvolní pamět obsazenou výsledkem definovaným identifikátorem spojení vysledek.

mysql_free_result() je vhodné používat pouze v případě, kdy vám záleží na tom, jak moc paměti je v průběhu skriptu použíto pro vykonaný dotaz a když výsledek dotazu je příliš velký. Všechna paměť obsazená výsledky spojení bude jinak automaticky ulovněna až s koncem běhu skriptu.

Vrací TRUE při úspěchu, FALSE při selhání.

Z důvodů zpětné kompatibility můžete také narazit na funkci mysql_freeresult(). Tuto funkci však nedoporučujeme používat, neboť nemusí být již v dalších verzích PHP podporována.

Předcházející | Domů | Další
mysql_field_type | Nahoru | mysql_get_client_info


mysql_get_client_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_client_info -- Načte verzi klientské knihovny MySQL

Popis

string mysql_get_client_info ( void )

mysql_get_client_info() vrací řetězec obsahující verzi používané klientské knihovny MySQL.

Příklad 1. mysql_get_client_info Příklad

<?php
    printf ("MySQL klient info: %s\n", mysql_get_client_info());
?>

TPředchozí příklad by mohl mít následující výstup:

MySQL klient info: 3.23.39

Dále také: mysql_get_host_info(),
          mysql_get_proto_info() z
          mysql_get_server_info().

Předcházející | Domů | Další
mysql_free_result | Nahoru | mysql_get_host_info


mysql_get_host_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_host_info -- Načte informaci o hostu

Popis

string mysql_get_host_info ( [resource spojeni])

mysql_get_host_info() vrací řetězec popisující použitý typ spojení v spojeni, obsahující server host name. Pokud je spojeni vynecháno, použije posledně otevřené spojení.

Příklad 1. mysql_get_host_info Příklad

<?php
    mysql_connect("localhost", "mysql_uziv", "mysql_heslod") or
        die("Nelze se spojit: " . mysql_error());
    printf ("MySQL host info: %s\n", mysql_get_host_info());
?>

Předchozí příklad by mohl mít následující výstup:

MySQL host info: Localhost via UNIX socket

Dále také: mysql_get_client_info(),
          mysql_get_proto_info() and
          mysql_get_server_info().

Předcházející | Domů | Další
mysql_get_client_info | Nahoru | mysql_get_proto_info


mysql_get_proto_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_proto_info -- Načte informaci o protokolu MySQL

Popis

int mysql_get_proto_info ( [resource spojeni])

mysql_get_proto_info() vrací číslo verze protokolu v použitém spojeni. Je-li spojeni vynecháno, použije se posledně otevřené spojení.

Příklad 1. mysql_get_proto_info Příklad

<?php
    mysql_connect("localhost", "mysql_uziv", "mysql_heslo") or
        die("Nelze se spojit: " . mysql_error());
    printf ("Verze protokolu MySQL: %s\n", mysql_get_proto_info());
?>

Předchozí příklad by mohl mít následující výstup:

Verze protokolu MySQL: 10

Dále také: mysql_get_client_info(),
          mysql_get_host_info() a
          mysql_get_server_info().

Předcházející | Domů | Další
mysql_get_host_info | Nahoru | mysql_get_server_info


mysql_get_server_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_server_info -- Načte informace o serveru MySQL

Popis

int mysql_get_server_info ( [resource spojeni])

mysql_get_server_info() vrací verzi serveru v použitém spojeni. Pokud je spojeni vynecháno, použije se posledně otevřené spojení.

Příklad 1. mysql_get_server_info Příklad

<?php
    mysql_connect("localhost", "mysql_uziv", "mysql_heslo") or
        die("Nelze se spojit: " . mysql_error());
    printf ("Verze MySQL serveru: %s\n", mysql_get_server_info());
?>

Předchozí příklad by mohl mít následující výstup:

Verze MySQL serveru: 4.0.1-alpha

Dále také: mysql_get_client_info(),
          mysql_get_host_info() a
          mysql_get_proto_info().

Předcházející | Domů | Další
mysql_get_proto_info | Nahoru | mysql_info


mysql_info

(PHP 4 >= 4.3.0, PHP 5)

mysql_info -- Vrací informace o posledním dotazu

Popis

string mysql_info ( [resource spojeni])

mysql_info() vrací detailní informace o posledním dotazu v použitém spojeni. Pokud spojeni není uvedeno, použije se poslední otevřené spojení.

mysql_info() vrací řetezec z všemi dotazy vylistovanými níže. Pro všechny ostatní FALSE. Formát řetězce je závislý na použitém typu dotazu.

Příklad 1. Příslušné MySQL dotazy

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
Čísla uvedená v příkladu jsou jen pro ilustraci; jejich hodnoty budou shodné s výsledkem dotazu.

Poznámka: mysql_info() vrací hodnotu jinou než FALSE v případě dotazu INSERT ... VALUES, ve kterém jsou uvedeny hodnoty pro zápis více záznamů najednou.

Dále také: mysql_affected_rows()

Předcházející | Domů | Další
mysql_get_server_info | Nahoru | mysql_insert_id


mysql_insert_id

(PHP 3, PHP 4 , PHP 5)

mysql_insert_id -- Vrací generovanou hodnotu id posledního příkazu INSERT

Popis

int mysql_insert_id ( [resource spojeni])

mysql_insert_id() vrací hodnotu ID vygenerovanou pro sloupec AUTO_INCREMENT předchozím dotazem typu INSERT indetifikovaným parametrem spojeni. Pokud je spojeni vynecháno, použije se posledně otevřené spojení.

mysql_insert_id() vrací 0 pokud pro předchozí dotaz nebyla vygenerována žádná hodnota pomocí AUTO_INCREMENT. I v případě, že potřebujete hodnotu použít později, dbejte na to, abyste funkci mysql_insert_id() volali okamžitě po dotazu, pro nějž byla vygenerována hodnota pomocí AUTO_INCREMENT.

Poznámka: Hodnota MySQL SQL funkce LAST_INSERT_ID() vždy obsahuje nejvyšší posledně vygenerovanou hodnotu AUTO_INCREMENT a není mezi dalšími dotazy vynulována.

Varování

mysql_insert_id() převádí typ vrácený nativní MySQL C API funkcí mysql_insert_id() z typu long (ekvivalent v PHP int). Pokud je sloupec AUTO_INCREMENT typu BIGINT, hodnota vrácená mysql_insert_id() bude nesprávná (pouze v případě, že i samotná hodnota bude mít velikost BIGINT). Místo toho použijte vnitřní MySQL SQL funkci LAST_INSERT_ID() přímo v SQL dotazu.

Příklad 1. mysql_insert_id Příklad

<?php
    mysql_connect("localhost", "mysql_uziv", "mysql_heslo") or
        die("Nelze se spojit: " . mysql_error());
    mysql_select_db("mojedb");

    mysql_query("INSERT INTO mojetabulka (produkt) values ('kosa')");
    printf ("Posledně vložený záznam má id: %d\n", mysql_insert_id());
?>

Dále také: mysql_query().

Předcházející | Domů | Další
mysql_info | Nahoru | mysql_list_dbs


mysql_list_dbs

(PHP 3, PHP 4 , PHP 5)

mysql_list_dbs -- Načte všechny dostupné databáze na MySQL serveru

Popis

resource mysql_list_dbs ( [resource spojeni])

mysql_list_dbs() vrací ukazatel výsledku obsahující databáze dostupné na aktuálním mysql démonovi. Lze použít například společně s funkcí mysql_tablename() k získání názvů tabulek, případně jiných funkcích k získání záznamů z tabulkek jako například mysql_fetch_array().

Příklad 1. mysql_list_dbs() příklad

<?php
$link = mysql_connect('localhost', 'mojejmeno', 'tajne');
$db_list = mysql_list_dbs($link);

while ($row = mysql_fetch_object($db_list)) {
    echo $row->Database . "\n";
}
?>

Předchozí příklad by měl následující výstup:
databaze1
databaze2
databaze3
...

Poznámka: Předchozí kód by tak snadno pracoval i s mysql_fetch_row() či podobnými funkcemi.

Z důvodů zpětné kompatibility můžete také narazit na funkci mysql_listdbs(). Tuto funkci však nedoporučujeme používat, neboť nemusí být již v dalších verzích PHP podporována.

Viz. také mysql_db_name().

Předcházející | Domů | Další
mysql_insert_id | Nahoru | mysql_list_fields


mysql_list_fields

(PHP 3, PHP 4 , PHP 5)

mysql_list_fields -- Načte výsledek s obsahem sloupce

Popis

resource mysql_list_fields ( string jmeno_databaze, string table_name [, resource spojeni])

     mysql_list_fields() vrací ukazatel výsledku o sloupcích
uvedené tabulky. Argumentu jsou jméno databáze a jméno tabulky.
Vrácený ukazatel výsledku může být použit spolu s funkcemi
mysql_field_flags(),
mysql_field_len(),
mysql_field_name(), a
mysql_field_type().

Příklad 1. mysql_list_fields() příklad

<?php
$link = mysql_connect('localhost', 'mojejmeno', 'tajne');

$fields = mysql_list_fields("databaze1", "tabulka1", $link);
$columns = mysql_num_fields($fields);

for ($i = 0; $i < $columns; $i++) {
    echo mysql_field_name($fields, $i) . "\n";
}
?>

Předchozí příklad by mohl mít následující výstup:
sloupec1
sloupec2
sloupec3
...

Z důvodů zpětné kompatibility můžete také narazit na funkci mysql_listfields(). Tuto funkci však nedoporučujeme používat, neboť nemusí být již v dalších verzích PHP podporována.

Předcházející | Domů | Další
mysql_list_dbs | Nahoru | mysql_list_processes


mysql_list_processes

(PHP 4 >= 4.3.0, PHP 5)

mysql_list_processes -- List MySQL processes

Popis

resource mysql_list_processes ( [resource spojeni])

mysql_list_processes() vrací ukazatel popisující aktuální vlákna serveru.

Příklad 1. mysql_list_processes() příklad

<?php
$link = mysql_connect('localhost', 'mysql_jmeno', 'mysql_heslo');

$result = mysql_list_processes($link);
while ($row = mysql_fetch_row($result)){
    printf("%s %s %s %s %s\n", $row["Id"], $row["Host"], $row["db"],
       $row["Command"], $row["Time"]);
}
mysql_free_result ($result);
?>

Předchozí příklad by zobrazit následující výstup:
1 localhost test Processlist 0
4 localhost mysql sleep 5

Dále také: mysql_thread_id()

Předcházející | Domů | Další
mysql_list_fields | Nahoru | mysql_list_tables


mysql_list_tables

(PHP 3, PHP 4 , PHP 5)

mysql_list_tables -- Načte všechny tabulky v MySQL databázi

Popis

resource mysql_list_tables ( string database [, resource spojeni])

mysql_list_tables() Na základě jména databáze vrací ukazatel výsledku na tabulky přesně tak jako mysql_db_query(). Použítím funkce mysql_tablename() můžete zjistit jména všech tabulek z ukazatele výsledku nebo použít jiné funkce k zjištění dalších informací jako např. mysql_fetch_array().

Parametr database je název databáze, z které se mají číst jména tabulky. Dojde-li k chybě, mysql_list_tables() vrací FALSE.

Z důvodů zpětné kompatibility můžete také narazit na funkci mysql_listtables(). Tuto funkci však nedoporučujeme používat, neboť nemusí být již v dalších verzích PHP podporována.

Poznámka: Tato funkce byla zavržena, dále ji nepoužívejte. Používejte místo ní příkaz SHOW TABLES FROM DATABASE.

Příklad 1. mysql_list_tables Příklad

<?php
    $dbname = 'mysql_dbjmeno';

    if (!mysql_connect('mysql_host', 'mysql_uziv', 'mysql_heslo')) {
        print 'Nelze se spojit';
        exit;
    }

    $result = mysql_list_tables($dbname);

    if (!$result) {
        print "Chyba DB, nelze číst tabulky\n";
        print 'MySQL chyba: ' . mysql_error();
        exit;
    }

    while ($row = mysql_fetch_row($result)) {
        print "Tabulka: $row[0]\n";
    }

    mysql_free_result($result);
?>

Dále také: mysql_list_dbs(), a mysql_tablename().

Předcházející | Domů | Další
mysql_list_processes | Nahoru | mysql_num_fields


mysql_num_fields

(PHP 3, PHP 4 , PHP 5)

mysql_num_fields -- Vrací počet sloupců ve výsledku

Popis

int mysql_num_fields ( resource výsledek)

mysql_num_fields() vrací počet sloupců získaných sql dotazem ve výsledku výsledek

Viz. také:
mysql_db_query(),
mysql_query(),
mysql_fetch_field() a
mysql_num_rows().

Příklad 1. mysql_num_fields() příklad

<?php
$r = mysql_query("SELECT sloupec1, sloupec2, sloupec3 FROM tabulka";
$pocet_sloupcu = mysql_num_fields($r);
echo "Počet sloupců ve výsledku: " . $pocet_sloupcu;

Předchozí příklad by měl následující výstup:
Počet sloupců ve výsledku: 3

Z důvodů zpětné kompatibility můžete také narazit na funkci mysql_numfields(). Tuto funkci však nedoporučujeme používat, neboť nemusí být již v dalších verzích PHP podporována.

Předcházející | Domů | Další
mysql_list_tables | Nahoru | mysql_num_rows


mysql_num_rows

(PHP 3, PHP 4 , PHP 5)

mysql_num_rows -- Vrací počet záznamů ve výsledku

Popis

int mysql_num_rows ( resource výsledek)

mysql_num_rows() vrací počet záznamů ve výsledku dotazu. Tento příkaz je použitelný pouze pro dotaz typu SELECT. Potřebujete-li získat počet záznamů ovlivněných dotazy INSERT, UPDATE nebo DELETE, použijte mysql_affected_rows().

Příklad 1. mysql_num_rows() příklad

<?php

$link = mysql_connect("localhost", "mysql_uziv", "mysql_heslo");
mysql_select_db("databaze", $link);

$result = mysql_query("SELECT * FROM tabulka1", $link);
$num_rows = mysql_num_rows($result);

echo "Řádků: $num_rows\n";

?>

Poznámka: Používáte-li mysql_unbuffered_query(), mysql_num_rows() nebude vracet správnou hodnotu dokud nebudou přijaty všechny záznamy ve výsledku.

Dále také:
mysql_affected_rows(),
mysql_connect(),
mysql_data_seek(),
mysql_select_db() a
mysql_query().

Z důvodů zpětné kompatibility můžete také narazit na funkci mysql_numrows(). Tuto funkci však nedoporučujeme používat, neboť nemusí být již v dalších verzích PHP podporována.

Předcházející | Domů | Další
mysql_num_fields | Nahoru | mysql_pconnect


mysql_pconnect

(PHP 3, PHP 4 , PHP 5)

mysql_pconnect -- Otevře persistentní spojení s MySQL serverem

Popis

resource mysql_pconnect ( [string server [, string jmeno [, string heslo [, int nastaveni_klienta]]]])

Vytvoří persistentní (trvalé) spojení s MySQL serverem a vrací identifikátor spojení. Při neúspěšném pokusu o spojení vrací FALSE.

mysql_pconnect() otevře spojení s MySQL server. Je-li funkce volána bez nepovinných paramtrů, jsou u nich předpokládány následující výchozí hodnoty: server = 'localhost:3306', jmeno = jméno vlastníka procesu a heslo = prázdné heslo. Parametr nastaveni_klienta může být kombinací konstant MYSQL_CLIENT_COMPRESS, MYSQL_CLIENT_IGNORE_SPACE nebo MYSQL_CLIENT_INTERACTIVE.

Parametr server může obsahovat číslo portu ve stylu "hostname:port" nebo cestu k soketu ve stylu ":/cesta/k/soketu" pro localhost.

Poznámka: Podpora pro ":port" byla přidána v PHP 3.0B4.

Podpora pro ":/cesta/k/soketu" byla přidána v PHP 3.0.10.

Funkce mysql_pconnect() je velmi podobná funkci mysql_connect() s dvěma hlavními rozdíly.

Za prvé, funkce se nejprve pokusí nalézt již existující (persistentní) spojení otevřené na stejném portu pod stejným jménem a heslem. Je-li takové spojení nalezeno, použije se namísto vytváření nového.

Za druhé, spojení s SQL serverem nebude uzavřeno při ukončení běhu skriptu. Zůstane otevřeno pro použití v dalších skriptech, které teprve budou spouštěny (mysql_close() neuzavře persistentní spojení vytvořené pomocí mysql_pconnect()).

Nepovinný parametr nastaveni_klientabyl přidán v PHP 4.3.0.

Proto je tento typ spojení nazýván jako 'persistentní' - trvalý.

Poznámka: Persistentní spojení funguje pouze v případě, kdy je PHP spuštěno jako modul (nikoli CGI). Více o této problematice naleznete v sekci Persistentní databázová spojení.

Varování

Používání persistetního spojení může vyžadovat malou úpravu v konfiguraci Apache a MySQL k zajištění nepřekročení maximálního limitu povolených připojení k MySQL.

Předcházející | Domů | Další
mysql_num_rows | Nahoru | mysql_ping


mysql_ping

(PHP 4 >= 4.3.0, PHP 5)

mysql_ping -- Ověří spojení se serverem, případně, není-li spojení dostupné, pokusí se připojit znovu.

Popis

bool mysql_ping ( [resource spojeni])

mysql_ping() zkouší, zda je či není spojení se serverem. V případě, že spojení je ztraceno, automaticky se pokusí vytvořit nové spojení. Tato funkce může být použita ve scriptech, které zůstávají dlouho dobu nečinné k zjištění, zda je sepojení se serverem již zavřeno a v případě nutnosti navážou automaticky spojení nové. mysql_ping() vrací TRUE pokud je spojení navázáno, jinak FALSE.

Dále také: mysql_thread_id(), mysql_list_processes().

Předcházející | Domů | Další
mysql_pconnect | Nahoru | mysql_query


mysql_query

(PHP 3, PHP 4 , PHP 5)

mysql_query -- Pošle MySQL dotaz

Popis

resource mysql_query ( string query [, resource spojeni])

mysql_query() Provede dotaz na aktuálním spojení v aktivní databázi na serveru a vrátí identifikátor výsledku. Není-li parametr spojeni uveden, použije posledně otevřené spojení. Pokud není žádné otevřené spojení nalezeno, funkce se ho pokusí vytvořit za použití výchozích hodnot funkce mysql_connect() (jakoby byla volána bez parametrů).

Poznámka: Řetězec dotazu by neměl končit středníkem.

Pouze při použití dotazu typu SELECT je vrácen identifikátor výsledku či FALSE pokud při vykonávání dotazu došlo k chybě. Při ostatních typech dotazů mysql_query() vrací TRUE při úspěšném dotazu nebo FALSE dojde-li k chybě. Ne-FALSE vrácená hodnota znamená, že dotaz byl vykonán serverem bez chyb. Tato funkce nezaznamenává žádné údaje o počtu ovlivněných nebo vrácených řádků. Lze pouze zjistit, zda dotaz proběhl v pořádku.

Následující dotaz je syntakticky nesprávný, takže jeho vykonávání v mysql_query() selže a vrátí FALSE:

Příklad 1. mysql_query()

<php
$result = mysql_query("SELECT * WHERE 1=1")
    or die("Špatný dotaz: " . mysql_error());
?>

Následující dotaz je významově nesprávný my_col není sloupec v tabulce my_tbl, takže mysql_query() selže a vrátí FALSE:

Příklad 2. mysql_query()

<?php
$result = mysql_query("SELECT my_col FROM my_tbl")
    or exit ("Špatný dotaz: " . mysql_error());
?>

mysql_query() také vždy selže a vrátí FALSE jestliže nemáte dostatečné oprávnění přístupu do tabulky (tabulek) uvedených v dotazu.

Potřebujete-li zjistit počet záznamů vrácených dotazem typu SELECT, použijte následně funkci mysql_num_rows() či případně funkci mysql_affected_rows(), pokud potřebujete zjistit počet všech ovlivněných záznamů dotazy typů DELETE, INSERT, REPLACE nebo UPDATE.

Pouze při dotazech SELECT, SHOW, DESCRIBE nebo EXPLAIN mysql_query() vrací nový identifikátor dotazu, který lze použít například pro volání funkce mysql_fetch_array() a dalších funkcí pro zpracování výsledků dotazu. Nepotřebujete-li již obsah výsledku dotazu, můžete uvolnit pamět voláním funkce mysql_free_result(). Nicméně pamět bude stejně uvolněna automaticky na konci běhu skriptu.

Viz. také: mysql_num_rows()
mysql_affected_rows(),
mysql_unbuffered_query(),
mysql_free_result(),
mysql_fetch_array(),
mysql_fetch_row(),
mysql_fetch_assoc(),
mysql_result(),
mysql_select_db(), a
mysql_connect().

Předcházející | Domů | Další
mysql_ping | Nahoru | mysql_real_escape_string


mysql_real_escape_string

(PHP 4 >= 4.3.0, PHP 5)

mysql_real_escape_string -- Upraví řetězec pro bezpečné použití v mysql_query.

Popis

string mysql_real_escape_string ( string neupraveny_retezec [, resource spojeni])

Tato funkce opatří speciální znaky v neupraveny_retezec zpětným lomítkem pro bezpečné použití v mysql_query() v závislosti na aktuální znakové sadě spojení (konce řádků jsou nahrazeny značkou \n atd.).

Poznámka: mysql_real_escape_string() nepřidává zpětná lomítka před % and _.

Příklad 1. mysql_real_escape_string() příklad

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$item = "Zak's and Derick's Laptop";
$escaped_item = mysql_real_escape_string($item);
printf ("Escaped string: %s\n", $escaped_item);
?>

Předchozí příklad by zobrazil následující výstup:
Escaped string: Zak\'s and Derick\'s Laptop

Dále také: mysql_escape_string(), mysql_character_set_name().

Předcházející | Domů | Další
mysql_query | Nahoru | mysql_result


mysql_result

(PHP 3, PHP 4 , PHP 5)

mysql_result -- Načte obsah jednoho sloupce tabulky

Popis

mixed mysql_result ( resource výsledek, int záznam [, mixed field])

mysql_result() vrací záznamy jednoho sloupce z výsledku MySQL. Argumenty mohou být číslo sloupce, jméno sloupce, jméno tabulky nebo jméno tabulky tečka jméno sloupce (tabulka.sloupec). Má-li některý sloupec jmenný alias (SELECT muj_sloupec as tvuj_sloupec FROM ...), používejte alias namísto jméno sloupce.

Pokud pracujete s velkými záznamy, měli byste uvážit použití jedné z funkcí, které vrací úplně celý záznam (všechny sloupce specifikované v dotazu SELECT najednou), protože tyto funkce vrací celý výsledek v jednom volání funkce a jsou proto MNOHEM rychlejší než mysql_result(). Dále je nutné podotknout, že jako argument sloupce je mnohem rychlejší uvést číselný identifikátor než jméno sloupce či zápis tabulka.sloupec.

Volání funkce mysql_result() by nemělo být mícháno s voláním jiných funkcí, protože by došlo k dělení záznamů z výsledku.

Doporučené mnohem výkonější alternativy:
mysql_fetch_row(),
mysql_fetch_array() a
mysql_fetch_object().

Předcházející | Domů | Další
mysql_real_escape_string | Nahoru | mysql_select_db


mysql_select_db

(PHP 3, PHP 4 , PHP 5)

mysql_select_db -- Nastaví MySQL databázi

Popis

bool mysql_select_db ( string jmeno_databaze [, resource spojeni])

Vrací TRUE při úspěchu, FALSE při selhání.

mysql_select_db() nastaví aktuální databázi na serveru a asocijuje ji s uvedeným identifikátorem spojení. Není-li identifikátor spojení uveden, použije posledně otevřené spojení. Není-li žádné spojení otevřeno, funkce se jej pokusí vytvořit tak, jakoby byla volána funkce mysql_connect() bez parametrů.

Každé další volání mysql_query() bude vytvořeno už na platnou databázi.

Viz. také:
    mysql_connect(),
    mysql_pconnect() a
    mysql_query().

Z důvodů zpětné kompatibility můžete také narazit na funkci mysql_selectdb(). Tuto funkci však nedoporučujeme používat, neboť nemusí být již v dalších verzích PHP podporována.

Předcházející | Domů | Další
mysql_result | Nahoru | mysql_stat


mysql_stat

(PHP 4 >= 4.3.0, PHP 5)

mysql_stat -- Vrací aktuální stav systému

popis

string mysql_stat ( [resource spojeni])

mysql_stat() vrací aktuální stav systému.

Poznámka: mysql_stat() vrací hodnoty stavů pouze pro čas od startu MySQL serveru, vlákna, pomalé dotazy, otevřené tabulky, flush tabulky a dotazy za sekundu. Pro kompletní výpis stavů dalších proměnných musíte použít sql dotaz SHOW STATUS.

Příklad 1. mysql_stat() příklad

<?php
$link = mysql_connect('localhost', "mysql_uziv", "mysql_heslo");
$status = explode('  ', mysql_stat($link));
print_r($status);
?>

předchozí příklad by zobrazil následující výstup:
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
)

Předcházející | Domů | Další
mysql_select_db | Nahoru | mysql_tablename


mysql_tablename

(PHP 3, PHP 4 , PHP 5)

mysql_tablename -- Načte jméno tabulky

Popis

string mysql_tablename ( resource výsledek, int i)

mysql_tablename() přijímá identifikátor výsledku vrácený funkcí mysql_list_tables() a celočíslený index a vrací jméno tabulky. K určení celočísleného indexu může být použita funkce mysql_num_rows(). Návratovou hodnotu funkce mysql_tablename() můžete projít pomocí funkce mysql_tablename nebo libovolné jiné funkce pro zpracování výsledků dotazů, např. mysql_fetch_array().

Příklad 1. mysql_tablename() příklad

<?php
    mysql_connect("localhost", "mysql_uziv", "mysql_heslo");
    $result = mysql_list_tables("mojedb");

    for ($i = 0; $i < mysql_num_rows($result); $i++)
        printf ("Tabulka: %s\n", mysql_tablename($result, $i));

    mysql_free_result($result);
?>

Dále také: mysql_list_tables().

Předcházející | Domů | Další
mysql_stat | Nahoru | mysql_thread_id


mysql_thread_id

(PHP 4 >= 4.3.0, PHP 5)

mysql_thread_id -- Vrací id aktuálního vlákna

Popis

int mysql_thread_id ( [resource spojeni])

mysql_thread_id() Vrátí id aktuálního vlákna. Je-li spojení ztraceno a znovu navázáno pomocí mysql_ping(), id vlánka se změní. To znamená, že byste neměli načítat ID vlákna dopředu pro pozdější použití, ale teprve tehdy, když jej potřebujete.

Příklad 1. mysql_thread_id() příklad

<?php
$link = mysql_connect('localhost', 'mysql_uziv', 'mysql_heslo');
$thread_id = mysql_thread_id($link);
if ($thread_id){
    printf ("id aktuálního vlákna je %d\n", $thread_id);
}
?>

Předchozí příklad by zobrazil následující výstup:
id aktuálního vlákna je 73

Dále také: mysql_ping(), mysql_list_processes().

Předcházející | Domů | Další
mysql_tablename | Nahoru | mysql_unbuffered_query


mysql_unbuffered_query

(PHP 4 >= 4.0.6, PHP 5)

mysql_unbuffered_query -- Pošle SQL dotaz bez načtení a bufferování výsledných záznamů

Popis

resource mysql_unbuffered_query ( string dotaz [, resource spojeni])

mysql_unbuffered_query() pošle SQL dotaz dotaz do MySQL bez načtení a bufferování výsledných záznamů automaticky, jako to dělá funkce mysql_query(). Na jednu stranu toto chování ušetří značné množství použité paměti u SQL dotazů, které vytvářejí rozsáhlé výsledky. Na druhou stranu můžete začít pracovat na výsledku okamžitě po prvním záznamu, který byl vrácen; tj. nemusíte čekat dokud nebude proveden celý SQL dotaz. Použijete-li přepínač DB-connects, můžete zadat volitelný parametr spojeni.

Poznámka: každá výhoda mysql_unbuffered_query() něco stojí: Nemůžete používat funkci mysql_num_rows() k zjištění počtu záznamů vrácených pomocí mysql_unbuffered_query(). Dále také musíte načíst všechny záznamy vracené nebufferovaným dotazem předtím, než pošlete nový SQL dotaz do MySQL.

Viz. také: mysql_query().

Předcházející | Domů | Další
mysql_thread_id | Nahoru | Improved MySQL Extension


Improved MySQL Extension

Manuál PHP
Předcházející Další

LXV. Improved MySQL Extension

Úvod

The mysqli extension allows you to access the functionality provided by MySQL 4.1 and above. More information about the MySQL Database server can be found at http://www.mysql.com/

Documentation for MySQL can be found at http://dev.mysql.com/doc/.

Parts of this documentation included from MySQL manual with permissions of MySQL AB.

Požadavky

In order to have these functions available, you must compile PHP with support for the mysqli extension.

Poznámka: The mysqli extension is designed to work with the version 4.1.2 or above of MySQL. For previous versions, please see the MySQL extension documentation.

Instalace

To install the mysqli extension for PHP, use the --with-mysqli=mysql_config_path/mysql_config configuration option where mysql_config_path represents the location of the mysql_config program that comes with MySQL versions greater than 4.1.

If you would like to install the mysql extension along with the mysqli extension you have to use the same client library to avoid any conflicts.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 1. MySQLi Configuration Options

Name | Default | Changeable
mysqli.max_links | "-1" | PHP_INI_SYSTEM
mysqli.default_port | NULL | PHP_INI_ALL
mysqli.default_socket | NULL | PHP_INI_ALL
mysqli.default_host | NULL | PHP_INI_ALL
mysqli.default_user | NULL | PHP_INI_ALL
mysqli.default_pw | NULL | PHP_INI_ALL

For further details and definitions of the above PHP_INI_* constants, see the chapter on configuration changes.

Zde je stručné vysvětlení konfiguračních direktiv.

mysqli.max_links integer

The maximum number of MySQL connections per process.

mysqli.default_port string

The default TCP port number to use when connecting to the database server if no other port is specified. If no default is specified, the port will be obtained from the MYSQL_TCP_PORT environment variable, the mysql-tcp entry in /etc/services or the compile-time MYSQL_PORT constant, in that order. Win32 will only use the MYSQL_PORT constant.

mysqli.default_socket string

The default socket name to use when connecting to a local database server if no other socket name is specified.

mysqli.default_host string

The default server host to use when connecting to the database server if no other host is specified. Doesn't apply in safe mode.

mysqli.default_user string

The default user name to use when connecting to the database server if no other name is specified. Doesn't apply in safe mode.

mysqli.default_password string

The default password to use when connecting to the database server if no other password is specified. Doesn't apply in safe mode.

Předdefinované třídy

mysqli

Represents a connection between PHP and a MySQL database.

Konstruktor

  • mysqli() - construct a new mysqli object

Metody

  • autocommit() - turns on or off auto-commiting database modifications

  • change_user() - changes the user of the specified database connection

  • character_set_name - returns the default character set for the database connection

  • close - closes a previously opened connection

  • commit - commits the current transaction

  • connect - opens a new connection to MySQL database server

  • debug - performs debugging operations

  • dump_debug_info - dumps debug information

  • get_client_info - returns client version

  • get_host_info - returns type of connection used

  • get_server_info - returns version of the MySQL server

  • get_server_version - returns version of the MySQL server

  • init - initializes mysqli object

  • info - retrieves information about the most recently executed query

  • kill - asks the server to kill a mysql thread

  • multi_query - performs multiple queries

  • more_results - check if more results exists from currently executed multi-query

  • next_result - reads next result from currently executed multi-query

  • options - set options

  • ping - pings a server connection or reconnects if there is no connection

  • prepare - prepares a SQL query

  • query - performs a query

  • real_connect - attempts to open a connection to MySQL database server

  • escape_string - Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection

  • rollback - rolls back the current transaction

  • select_db - selects the default database

  • ssl_set - sets ssl parameters

  • stat - gets the current system status

  • stmt_initInitializes a statement for use with mysqli_stmt_prepare

  • store_result - transfers a resultset from last query

  • use_result - transfers an unbuffered resultset from last query

  • thread-safe - returns whether thread safety is given or not

Vlastnosti

  • affected_rows - gets the number of affected rows in a previous MySQL operation

  • errno - returns the error code for the most recent function call

  • error - returns the error string for the most recent function call

  • field_count - returns the number of columns for the most recent query

  • host_info - returns a string representing the type of connection used

  • info - retrieves information about the most recently executed query

  • insert-id - returns the auto generated id used in the last query

  • protocol_version - returns the version of the MySQL protocol used

  • sqlstate - returns a string containing the SQLSTATE error code for the last error

  • thread_id - returns the thread ID for the current connection

  • warning-count - returns the number of warnings generated during execution of the previous SQL statement

mysqli_stmt

Represents a prepared statement.

Metody

  • bind_param - Binds variables to a prepared statement

  • bind_result - Binds variables to a prepared statement for result storage

  • close - Closes a prepared statement

  • data-seek - Seeks to an arbitrary row in a statement result set

  • execute - Executes a prepared statement

  • fetch - Fetches result from a prepared statement into bound variables

  • free_result - Frees stored result memory for the given statement handle

  • result_metadata - Retrieves a resultset from a prepared statement for metadata information

  • prepare - prepares a SQL query

  • send_long_data - Sends data in chunks

  • store_result - Buffers complete resultset from a prepared statement

Vlastnosti

  • affected_rows - Returns affected rows from last statement execution

  • errno - Returns errorcode for last statement function

  • errno - Returns errormessage for last statement function

  • param_count - Returns number of parameter for a given prepare statement

  • sqlstate - returns a string containing the SQLSTATE error code for the last statement function

mysqli_result

Represents the result set obtained from a query against the database.

Metody

  • close - closes resultset

  • data_seek - moves internal result pointer

  • fetch_field - gets column information from a resultset

  • fetch_fields - gets information for all columns from a resulset

  • fetch_field_direct - gets column information for specified column

  • fetch_array - fetches a result row as an associative array, a numeric array, or both.

  • fetch_assoc - fetches a result row as an associative array

  • fetch_object - fetches a result row as an object

  • fetch_row - gets a result row as an enumerated array

  • close - frees result memory

  • field_seek - set result pointer to a specified field offset

Vlastnosti

  • current_field - returns offset of current fieldpointer

  • field_count - returns number of fields in resultset

  • lengths - returns an array of columnlengths

  • num_rows - returns number of rows in resultset

Předdefinované konstanty

Tabulka 2. MySQLi Constants

Name | Description
MYSQLI_READ_DEFAULT_GROUP (integer) | Read options from the named group from `my.cnf' or the file specified with MYSQLI_READ_DEFAULT_FILE
MYSQLI_READ_DEFAULT_FILE (integer) | Read options from the named option file instead of from my.cnf
MYSQLI_OPT_CONNECT_TIMEOUT (integer) | Connect timeout in seconds
MYSQLI_OPT_LOCAL_INFILE (integer) | Enables command LOAD LOCAL INFILE
MYSQLI_INIT_COMMAND (integer) | Command to execute when connecting to MySQL server. Will automatically be re-executed when reconnecting.
MYSQLI_CLIENT_SSL (integer) | Use SSL (encrypted protocol). This option should not be set by application programs; it is set internally in the MySQL client library
MYSQLI_CLIENT_COMPRESS (integer) | Use compression protocol
MYSQLI_CLIENT_INTERACTIVE (integer) | Allow interactive_timeout seconds (instead of wait_timeout seconds) of inactivity before closing the connection. The client's session wait_timeout variable will be set to the value of the session interactive_timeout variable.
MYSQLI_CLIENT_IGNORE_SPACE (integer) | Allow spaces after function names. Makes all functions names reserved words.
MYSQLI_CLIENT_NO_SCHEMA (integer) | Don't allow the db_name.tbl_name.col_name syntax.
MYSQLI_CLIENT_MULTI_QUERIES (integer) |
MYSQLI_STORE_RESULT (integer) | For using buffered resultsets
MYSQLI_USE_RESULT (integer) | For using unbuffered resultsets
MYSQLI_ASSOC (integer) | Columns are returned into the array having the fieldname as the array index.
MYSQLI_NUM (integer) | Columns are returned into the array having an enumerated index.
MYSQLI_BOTH (integer) | Columns are returned into the array having both a numerical index and the fieldname as the associative index.
MYSQLI_NOT_NULL_FLAG (integer) | Indicates that a field is defined as NOT NULL
MYSQLI_PRI_KEY_FLAG (integer) | Field is part of a primary index
MYSQLI_UNIQUE_KEY_FLAG (integer) | Field is part of an unique index.
MYSQLI_MULTIPLE_KEY_FLAG (integer) | Field is part of an index.
MYSQLI_BLOB_FLAG (integer) | Field is defined as BLOB
MYSQLI_UNSIGNED_FLAG (integer) | Field is defined as UNSIGNED
MYSQLI_ZEROFILL_FLAG (integer) | Field is defined as ZEROFILL
MYSQLI_AUTO_INCREMENT_FLAG (integer) | Field is defined as AUTO_INCREMENT
MYSQLI_TIMESTAMP_FLAG (integer) | Field is defined as TIMESTAMP
MYSQLI_SET_FLAG (integer) | Field is defined as SET
MYSQLI_NUM_FLAG (integer) | Field is defined as NUMERIC
MYSQLI_PART_KEY_FLAG (integer) | Field is part of an multi-index
MYSQLI_GROUP_FLAG (integer) | Field is part of GROUP BY
MYSQLI_TYPE_DECIMAL (integer) | Field is defined as DECIMAL
MYSQLI_TYPE_TINY (integer) | Field is defined as TINYINT
MYSQLI_TYPE_SHORT (integer) | Field is defined as INT
MYSQLI_TYPE_LONG (integer) | Field is defined as INT
MYSQLI_TYPE_FLOAT (integer) | Field is defined as FLOAT
MYSQLI_TYPE_DOUBLE (integer) | Field is defined as DOUBLE
MYSQLI_TYPE_NULL (integer) | Field is defined as DEFAULT NULL
MYSQLI_TYPE_TIMESTAMP (integer) | Field is defined as TIMESTAMP
MYSQLI_TYPE_LONGLONG (integer) | Field is defined as BIGINT
MYSQLI_TYPE_INT24 (integer) | Field is defined as MEDIUMINT
MYSQLI_TYPE_DATE (integer) | Field is defined as DATE
MYSQLI_TYPE_TIME (integer) | Field is defined as TIME
MYSQLI_TYPE_DATETIME (integer) | Field is defined as DATETIME
MYSQLI_TYPE_YEAR (integer) | Field is defined as YEAR
MYSQLI_TYPE_NEWDATE (integer) | Field is defined as DATE
MYSQLI_TYPE_ENUM (integer) | Field is defined as ENUM
MYSQLI_TYPE_SET (integer) | Field is defined as SET
MYSQLI_TYPE_TINY_BLOB (integer) | Field is defined as TINYBLOB
MYSQLI_TYPE_MEDIUM_BLOB (integer) | Field is defined as MEDIUMBLOB
MYSQLI_TYPE_LONG_BLOB (integer) | Field is defined as LONGBLOB
MYSQLI_TYPE_BLOB (integer) | Field is defined as BLOB
MYSQLI_TYPE_STRING (integer) | Field is defined as VARCHAR
MYSQLI_TYPE_CHAR (integer) | Field is defined as CHAR
MYSQLI_TYPE_GEOMETRY (integer) | Field is defined as GEOMETRY
MYSQLI_NEED_DATA (integer) | More data available for bind variable
MYSQLI_NO_DATA (integer) | No more data available for bind variable

Examples

All Examples in the MySQLI documentation use the world database from MySQL AB. The world database can be found at http://www.mysql.com/get/Downloads/Manual/world.sql.gz/from/pick

Obsah
mysqli_affected_rows -- Gets the number of affected rows in a previous MySQL operation
mysqli_autocommit -- Turns on or off auto-commiting database modifications
mysqli_bind_param -- Alias for mysqli_stmt_bind_param()
mysqli_bind_result -- Alias for mysqli_stmt_bind_result()
mysqli_change_user -- Changes the user of the specified database connection
mysqli_character_set_name -- Returns the default character set for the database connection
mysqli_client_encoding -- Alias of mysqli_character_set_name()
mysqli_close -- Closes a previously opened database connection
mysqli_commit -- Commits the current transaction
mysqli_connect_errno -- Returns the error code from last connect call
mysqli_connect_error -- Returns a string description of the last connect error
mysqli_connect -- Open a new connection to the MySQL server
mysqli_data_seek -- Adjusts the result pointer to an arbitary row in the result
mysqli_debug -- Performs debugging operations
mysqli_disable_reads_from_master --
mysqli_disable_rpl_parse --
mysqli_dump_debug_info -- Dump debugging information into the log
mysqli_embedded_connect -- Open a connection to an embedded mysql server.
mysqli_enable_reads_from_master --
mysqli_enable_rpl_parse --
mysqli_errno -- Returns the error code for the most recent function call
mysqli_error -- Returns a string description of the last error
mysqli_escape_string -- Alias of mysqli_real_escape_string()
mysqli_execute -- Alias for mysqli_stmt_execute()
mysqli_fetch_array -- Fetch a result row as an associative, a numeric array, or both.
mysqli_fetch_assoc -- Fetch a result row as an associative array
mysqli_fetch_field_direct -- Fetch meta-data for a single field
mysqli_fetch_field -- Returns the next field in the result set
mysqli_fetch_fields -- Returns an array of objects representing the fields in a result set
mysqli_fetch_lengths -- Returns the lengths of the columns of the current row in the result set
mysqli_fetch_object -- Returns the current row of a result set as an object
mysqli_fetch_row -- Get a result row as an enumerated array
mysqli_fetch -- Alias for mysqli_stmt_fetch()
mysqli_field_count -- Returns the number of columns for the most recent query
mysqli_field_seek -- Set result pointer to a specified field offset
mysqli_field_tell -- Get current field offset of a result pointer
mysqli_free_result -- Frees the memory associated with a result
mysqli_get_client_info -- Returns the MySQL client version as a string
mysqli_get_client_version -- Get MySQL client info.
mysqli_get_host_info -- Returns a string representing the type of connection used
mysqli_get_metadata -- Alias for mysqli_stmt_result_metadata()
mysqli_get_proto_info -- Returns the version of the MySQL protocol used
mysqli_get_server_info -- Returns the version of the MySQL server
mysqli_get_server_version -- Returns the version of the MySQL server as an integer
mysqli_info -- Retrieves information about the most recently executed query
mysqli_init -- Initializes MySQLi and returns an object for use with mysqli_real_connect
mysqli_insert_id -- Returns the auto generated id used in the last query
mysqli_kill -- Asks the server to kill a MySQL thread
mysqli_master_query -- Enforce execution of a query on the master in a master/slave setup.
mysqli_more_results -- Check if there any more query results from a multi query.
mysqli_multi_query -- Performs a query on the database
mysqli_next_result -- prepare next result from multi_query.
mysqli_num_fields -- Get the number of fields in a result
mysqli_num_rows -- Gets the number of rows in a result
mysqli_options -- set options
mysqli_param_count -- Alias for mysqli_stmt_param_count()
mysqli_ping -- Pings a server connection, or tries to reconnect if the connection has gone down.
mysqli_prepare -- Prepare a SQL statement for execution
mysqli_query -- Performs a query on the database
mysqli_real_connect -- Opens a connection to a mysql server
mysqli_real_escape_string -- Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection
mysqli_real_query -- Execute an SQL query
mysqli_report -- enables or disables internal report functions
mysqli_rollback -- Rolls back current transaction
mysqli_rpl_parse_enabled --
mysqli_rpl_probe --
mysqli_rpl_query_type --
mysqli_select_db -- Selects the default database for database queries
mysqli_send_long_data -- Alias for mysqli_stmt_send_long_data()
mysqli_send_query --
mysqli_server_end --
mysqli_server_init -- Initialize embedded server.
mysqli_set_opt -- Alias of mysqli_options()
mysqli_sqlstate -- Returns the SQLSTATE error from previous MySQL operation.
mysqli_ssl_set -- Used for establishing secure connections using SSL.
mysqli_stat -- Gets the current system status
mysqli_stmt_affected_rows -- Returns the total number of rows changed, deleted, or inserted by the last executed statement
mysqli_stmt_bind_param -- Binds variables to a prepared statement as parameters
mysqli_stmt_bind_result -- Binds variables to a prepared statement for result storage
mysqli_stmt_close -- Closes a prepared statement
mysqli_stmt_data_seek -- Seeks to an arbitray row in statement result set
mysqli_stmt_errno -- Returns the error code for the most recent statement call
mysqli_stmt_error -- Returns a string description for last statement error
mysqli_stmt_execute -- Executes a prepared Query
mysqli_stmt_fetch -- Fetch results from a prepared statement into the bound variables
mysqli_stmt_free_result -- Frees stored result memory for the given statement handle
mysqli_stmt-init -- Initializes a statement and returns an object for use with mysqli_stmt_prepare
mysqli_stmt_num_rows -- Return the number of rows in statements result set.
mysqli_stmt_param_count -- Returns the number of parameter for the given statement
mysqli_stmt_prepare -- Prepare a SQL statement for execution
mysqli_stmt_result_metadata -- returns result set metadata from a prepared statement
mysqli_stmt_send_long_data -- Send data in blocks
mysqli_stmt_sqlstate -- returns SQLSTATE error from previous statement operation
mysqli_stmt_store_result -- Transfers a result set from a prepared statement
mysqli_store_result -- Transfers a result set from the last query
mysqli_thread_id -- Returns the thread ID for the current connection
mysqli_thread_safe -- Returns whether thread safety is given or not
mysqli_use_result -- Initiate a result set retrieval
mysqli_warning_count -- Returns the number of warnings from the last query for the given link

Předcházející | Domů | Další
mysql_unbuffered_query | Nahoru | mysqli_affected_rows


mysqli_affected_rows

(PHP 5)

mysqli_affected_rows

(no version information, might be only in CVS)

mysqli->affected_rows -- Gets the number of affected rows in a previous MySQL operation

Description

Procedural style:

mixed mysqli_affected_rows ( object link)

Object oriented style (property):

class mysqli {

mixed affected_rows

}

mysqli_affected_rows() returns the number of rows affected by the last INSERT, UPDATE, or DELETE query associated with the provided link parameter. If the last query was invalid, this function will return -1.

Poznámka: For SELECT statements mysqli_affected_rows() works like mysqli_num_rows().

The mysqli_affected_rows() function only works with queries which modify a table. In order to return the number of rows from a SELECT query, use the mysqli_num_rows() function instead.

Return Values

An integer greater than zero indicates the number of rows affected or retrieved. Zero indicates that no records where updated for an UPDATE statement, no rows matched the WHERE clause in the query or that no query has yet been executed. -1 indicates that the query returned an error.

Poznámka: If the number of affected rows is greater than maximal int value, the number of affected rows will be returned as a string.

See also

mysqli_num_rows(), mysqli_info().

Example

Příklad 1. Object oriented style

<?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();
}

/* 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);

$result->close();

/* Delete table Language */
$mysqli->query("DROP TABLE Language");

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

if (!$link) {
    printf("Can't connect to localhost. Error: %s\n", mysqli_connect_error());
    exit();
}

/* 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));

mysqli_free_result($result);

/* Delete table Language */
mysqli_query($link, "DROP TABLE Language");

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Affected rows (INSERT): 984
Affected rows (UPDATE): 168
Affected rows (DELETE): 815
Affected rows (SELECT): 169

Předcházející | Domů | Další
Improved MySQL Extension | Nahoru | mysqli_autocommit


mysqli_autocommit

(PHP 5)

mysqli_autocommit

(no version information, might be only in CVS)

mysqli->auto_commit -- Turns on or off auto-commiting database modifications

Description

Procedural style:

bool mysqli_autocommit ( object link, bool mode)

Object oriented style (method)

class mysqli {

bool auto_commit ( bool mode)

}

mysqli_autocommit() is used to turn on or off auto-commit mode on queries for the database connection represented by the link object.

Poznámka: mysqli_autocommit() doesn't work with non transactional table types (like MyISAM or ISAM).

To determine the current state of autocommit use the SQL command 'SELECT @@autocommit'.

Return values

Vrací TRUE při úspěchu, FALSE při selhání.

See also

mysqli_commit(), mysqli_rollback().

Example

Příklad 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* turn autocommit on */
$mysqli->autocommit(TRUE);

if ($result = $mysqli->query("SELECT @@autocommit")) {
    $row = $result->fetch_row();
    printf("Autocommit is %s\n", $row[0]);
    $result->free();
}

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

if (!$link) {
    printf("Can't connect to localhost. Error: %s\n", mysqli_connect_error());
    exit();
}

/* turn autocommit on */
mysqli_autocommit($link, TRUE);

if ($result = mysqli_query($link, "SELECT @@autocommit")) {
    $row = mysqli_fetch_row($result);
    printf("Autocommit is %s\n", $row[0]);
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Autocommit is 1

Předcházející | Domů | Další
mysqli_affected_rows | Nahoru | mysqli_bind_param


mysqli_bind_param

mysqli_bind_param -- Alias for mysqli_stmt_bind_param()

Description

This function is an alias of mysqli_stmt_bind_param(). For a detailled descripton see description of mysqli_stmt_bind_param().

Poznámka: mysqli_bind_param() is deprecated and will be removed.

See also

mysqli_stmt_bind_param()

Předcházející | Domů | Další
mysqli_autocommit | Nahoru | mysqli_bind_result


mysqli_bind_result

mysqli_bind_result -- Alias for mysqli_stmt_bind_result()

Description

This function is an alias of mysqli_stmt_bind_result(). For a detailled descripton see description of mysqli_stmt_bind_result().

Poznámka: mysqli_bind_result() is deprecated and will be removed.

See also

mysqli_stmt_bind_result()

Předcházející | Domů | Další
mysqli_bind_param | Nahoru | mysqli_change_user


mysqli_change_user

(PHP 5)

mysqli_change_user

(no version information, might be only in CVS)

mysqli->change_user -- Changes the user of the specified database connection

Description

Procedural style:

bool mysqli_change_user ( object link, string user, string password, string database)

Object oriented style (method):

class mysqli {

bool change_user ( string user, string password, string database)

}

mysqli_change_user() is used to change the user of the specified database connection as given by the link parameter and to set the current database to that specified by the database parameter.

If desired, the NULL value may be passed in place of the database parameter resulting in only changing the user and not selecting a database. To select a database in this case use the mysqli_select_db() function.

In order to successfully change users a valid username and password parameters must be provided and that user must have sufficient permissions to access the desired database. If for any reason authorization fails, the current user authentication will remain.

Poznámka: Using this command will always cause the current database connection to behave as if was a completely new database connection, regardless of if the operation was completed successfully. This reset includes performing a rollback on any active transactions, closing all temporary tables, and unlocking all locked tables.

Return Values

Vrací TRUE při úspěchu, FALSE při selhání.

See also:

mysqli_connect() mysqli_select_db()

Example

Příklad 1. Object oriented style

<?php

/* connect database test */
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Set Variable a */
$mysqli->query("SET @a:=1");

/* reset all and select a new database */
$mysqli->change_user("my_user", "my_password", "world");

if ($result = $mysqli->query("SELECT DATABASE()")) {
    $row = $result->fetch_row();
    printf("Default database: %s\n", $row[0]);
    $result->close();
}

if ($result = $mysqli->query("SELECT @a")) {
    $row = $result->fetch_row();
    if ($row[0] === NULL) {
        printf("Value of variable a is NULL\n");
    }
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?php
/* connect database test */
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Set Variable a */
mysqli_query($link, "SET @a:=1");

/* reset all and select a new database */
mysqli_change_user($link, "my_user", "my_password", "world");

if ($result = mysqli_query($link, "SELECT DATABASE()")) {
    $row = mysqli_fetch_row($result);
    printf("Default database: %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("Value of variable a is NULL\n");
    }
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Default database: world
Value of variable a is NULL

Předcházející | Domů | Další
mysqli_bind_result | Nahoru | mysqli_character_set_name


mysqli_character_set_name

(PHP 5)

mysqli_character_set_name

(no version information, might be only in CVS)

mysqli->character_set_name -- Returns the default character set for the database connection

Description

Procedural style:

string mysqli_character_set_name ( object link)

Object oriented style (method):

class mysqli {

string character_set_name ( void )

}

Returns the current character set for the database connection specified by the link parameter.

Return values

The default character set for the current connection

See also

mysqli_client_encoding(). mysqli_real_escape_string().

Example

Příklad 1. Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Print current character set */
$charset = $mysqli->character_set_name();
printf ("Current character set is %s\n", $charset);

$mysqli->close();
?>

Příklad 2. Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Print current character set */
$charset = mysqli_character_set_name($link);
printf ("Current character set is %s\n",$charset);

/* close connection */
mysqli_close($link);
?>

The above examples would be produce the following output:

Current character set is latin1_swedish_ci

Předcházející | Domů | Další
mysqli_change_user | Nahoru | mysqli_client_encoding


mysqli_client_encoding

mysqli_client_encoding -- Alias of mysqli_character_set_name()

Description

This function is an alias of mysqli_character_set_name(). For a detailled descripton see description of mysqli_character_set_name().

See also

mysqli_client_encoding(). mysqli_real_escape_string().

Předcházející | Domů | Další
mysqli_character_set_name | Nahoru | mysqli_close


mysqli_close

(PHP 5)

mysqli_close

(no version information, might be only in CVS)

mysqli->close -- Closes a previously opened database connection

Description

Procedural style:

bool mysqli_close ( object link)

Object oriented style (method):

class mysqli {

bool close ( void )

}

The mysqli_close() function closes a previously opened database connection specified by the link parameter.

Return values

Vrací TRUE při úspěchu, FALSE při selhání.

See also

mysqli_connect(),
mysqli_init(),
mysqli_real_connect().

Předcházející | Domů | Další
mysqli_client_encoding | Nahoru | mysqli_commit


mysqli_commit

(PHP 5)

mysqli_commit

(no version information, might be only in CVS)

mysqli->commit -- Commits the current transaction

Description

Procedural style:

bool mysqli_commit ( object link)

Object oriented style (method)

class mysqli {

bool commit ( void )

}

Commits the current transaction for the database connection specified by the link parameter.

Return values

Vrací TRUE při úspěchu, FALSE při selhání.

See also

mysqli_autocommit(), mysqli_rollback().

Examples

Příklad 1. Object oriented style

<?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();
}

$mysqli->query("CREATE TABLE Language LIKE CountryLanguage Type=InnoDB");

/* set autocommit to off */
$mysqli->autocommit(FALSE);

/* Insert some values */
$mysqli->query("INSERT INTO Language VALUES ('DEU', 'Bavarian', 'F', 11.2)");
$mysqli->query("INSERT INTO Language VALUES ('DEU', 'Swabian', 'F', 9.4)");

/* commit transaction */
$mysqli->commit();

/* drop table */
$mysqli->query("DROP TABLE Language");

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* set autocommit to off */
mysqli_autocommit($link, FALSE);

mysqli_query($link, "CREATE TABLE Language LIKE CountryLanguage Type=InnoDB");

/* Insert some values */
mysqli_query($link, "INSERT INTO Language VALUES ('DEU', 'Bavarian', 'F', 11.2)");
mysqli_query($link, "INSERT INTO Language VALUES ('DEU', 'Swabian', 'F', 9.4)");

/* commit transaction */
mysqli_commit($link);

/* close connection */
mysqli_close($link);
?>

Předcházející | Domů | Další
mysqli_close | Nahoru | mysqli_connect_errno


mysqli_connect_errno

(PHP 5)

mysqli_connect_errno -- Returns the error code from last connect call

Description

int mysqli_connect_errno ( void )

The mysqli_connect_errno() function will return the last error code number for last call to mysqli_connect(). If no errors have occured, this function will return zero.

Poznámka: Client error message numbers are listed in the MySQL errmsg.h header file, server error message numbers are listed in mysqld_error.h. In the MySQL source distribution you can find a complete list of error messages and error numbers in the file Docs/mysqld_error.txt.

Return values

An error code value for the last call to mysqli_connect(), if it failed. zero means no error occurred.

See also

mysqli_connect(),
mysqli_connect_error(),
mysqli_errno(),
mysqli_error(),
mysqli_sqlstate()

Example

Příklad 1. mysqli_connect_errno sample

<?php

$link = @mysqli_connect("localhost", "nonexisting_user", "");

if (!$link) {
    printf("Can't connect to localhost. Errorcode: %d\n", mysqli_connect_errno());
}
?>

Předcházející | Domů | Další
mysqli_commit | Nahoru | mysqli_connect_error


mysqli_connect_error

(PHP 5)

mysqli_connect_error -- Returns a string description of the last connect error

Description

string mysqli_connect_error ( void )

The mysqli_connect_error() function is identical to the corresponding mysqli_connect_errno() function in every way, except instead of returning an integer error code the mysqli_connect_error() function will return a string representation of the last error to occur for the last mysqli_connect() call. If no error has occured, this function will return an empty string.

Return values

A string that describes the error. An empty string if no error occurred.

See also

mysqli_connect(),
mysqli_connect_errno(),
mysqli_errno(),
mysqli_error(),
mysqli_sqlstate()

Example

Příklad 1. mysqli_connect_error sample

<?php

$link = @mysqli_connect("localhost", "nonexisting_user", "");

if (!$link) {
    printf("Can't connect to localhost. Error: %s\n", mysqli_connect_error());
}
?>

Předcházející | Domů | Další
mysqli_connect_errno | Nahoru | mysqli_connect


mysqli_connect

(PHP 5)

mysqli_connect

(no version information, might be only in CVS)

mysqli() -- Open a new connection to the MySQL server

Description

Procedural style

object mysqli_connect ( [string host [, string username [, string passwd [, string dbname [, int port [, string socket]]]]]])

Object oriented style (constructor):

class mysqli {

__construct ( [string host [, string username [, string passwd [, string dbname [, int port [, string socket]]]]]])

}

The mysqli_connect() function attempts to open a connection to the MySQL Server running on host which can be either a host name or an IP address. Passing the NULL value or the string "localhost" to this parameter, the local host is assumed. When possible, pipes will be used instead of the TCP/IP protocol. If successful, the mysqli_connect() will return an object representing the connection to the database, or FALSE on failure.

The username and password parameters specify the username and password under which to connect to the MySQL server. If the password is not provided (the NULL value is passed), the MySQL server will attempt to authenticate the user against those user records which have no password only. This allows one username to be used with different permissions (depending on if a password as provided or not).

The dbname parameter if provided will specify the default database to be used when performing queries.

The port and socket parameters are used in conjunction with the host parameter to further control how to connect to the database server. The port parameter specifies the port number to attempt to connect to the MySQL server on, while the socket parameter specifies the socket or named pipe that should be used.

Poznámka: Specifying the socket parameter will not explicitly determine the type of connection to be used when connecting to the MySQL server. How the connection is made to the MySQL database is determined by the host parameter.

Return values

Returns a object which represents the connection to a MySQL Server or FALSE if the connection failed.

Example

Příklad 1. Object oriented style

<?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();
}

printf("Host information: %s\n", $mysqli->host_info);

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

printf("Host information: %s\n", mysqli_get_host_info($link));

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Host information: Localhost via UNIX socket

Předcházející | Domů | Další
mysqli_connect_error | Nahoru | mysqli_data_seek


mysqli_data_seek

(PHP 5)

mysqli_data_seek

(no version information, might be only in CVS)

result->data_seek -- Adjusts the result pointer to an arbitary row in the result

Description

Procedural style:

bool mysqli_data_seek ( object result, int offset)

Object oriented style (method):

class result {

bool data_seek ( int offset)

}

The mysqli_data_seek() function seeks to an arbitrary result pointer specified by the offset in the result set represented by result. The offset parameter must be between zero and the total number of rows minus one (0..mysqli_num_rows() - 1).

Poznámka: This function can only be used with unbuffered results attained from the use of the mysqli_store_result() or mysqli_query() functions.

Return values

Vrací TRUE při úspěchu, FALSE při selhání.

See also

mysqli_store_result(),
mysqli_fetch_row(),
mysqli_num_rows().

Example

Příklad 1. Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
if ($result = $mysqli->query( $query)) {

    /* seek to row no. 400 */
    $result->data_seek(399);

    /* fetch row */
    $row = $result->fetch_row();

    printf ("City: %s  Countrycode: %s\n", $row[0], $row[1]);

    /* free result set*/
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";

if ($result = mysqli_query($link, $query)) {

    /* seek to row no. 400 */
    mysqli_data_seek($result, 399);

    /* fetch row */
    $row = mysqli_fetch_row($result);

    printf ("City: %s  Countrycode: %s\n", $row[0], $row[1]);

    /* free result set*/
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

City: Benin City  Countrycode: NGA

Předcházející | Domů | Další
mysqli_connect | Nahoru | mysqli_debug


mysqli_debug

(PHP 5)

mysqli_debug -- Performs debugging operations

Description

void mysqli_debug ( string debug)

The mysqli_debug() function is used to perform debugging operations using the Fred Fish debugging library. The debug parameter is a string representing the debugging operation to perform.

Poznámka: To use the mysqli_debug() function you must complile the MySQL client library to support debugging.

Return values

mysqli_debug() doesn't return any value.

See also

mysqli_dump_debug_info(), mysqli_report()

Example

Příklad 1. Generating a Trace File

<?php

/* Create a trace file in '/tmp/client.trace' on the local (client) machine: */
mysqli_debug("d:t:0,/tmp/client.trace");

?>

Předcházející | Domů | Další
mysqli_data_seek | Nahoru | mysqli_disable_reads_from_master


mysqli_disable_reads_from_master

(PHP 5)

mysqli_disable_reads_from_master --

Description

void mysqli_disable_reads_from_master ( resource link)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Předcházející | Domů | Další
mysqli_debug | Nahoru | mysqli_disable_rpl_parse


mysqli_disable_rpl_parse

(PHP 5)

mysqli_disable_rpl_parse --

Description

void mysqli_disable_rpl_parse ( object link)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Předcházející | Domů | Další
mysqli_disable_reads_from_master | Nahoru | mysqli_dump_debug_info


mysqli_dump_debug_info

(PHP 5)

mysqli_dump_debug_info

(no version information, might be only in CVS)

mysqli->dump_debug_info -- Dump debugging information into the log

Description

bool mysqli_dump_debug_info ( object link)

This function is designed to be executed by an user with the SUPER privlege and is used to dump debugging information into the log for the MySQL Server relating to the connection specified by the link parameter.

Return values

Vrací TRUE při úspěchu, FALSE při selhání.

See also

mysqli_debug().

Předcházející | Domů | Další
mysqli_disable_rpl_parse | Nahoru | mysqli_embedded_connect


mysqli_embedded_connect

(PHP 5)

mysqli_embedded_connect -- Open a connection to an embedded mysql server.

Description

object mysqli_embedded_connect ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Předcházející | Domů | Další
mysqli_dump_debug_info | Nahoru | mysqli_enable_reads_from_master


mysqli_enable_reads_from_master

(PHP 5)

mysqli_enable_reads_from_master --

Description

void mysqli_enable_reads_from_master ( object link)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Předcházející | Domů | Další
mysqli_embedded_connect | Nahoru | mysqli_enable_rpl_parse


mysqli_enable_rpl_parse

(PHP 5)

mysqli_enable_rpl_parse --

Description

void mysqli_enable_rpl_parse ( object link)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Předcházející | Domů | Další
mysqli_enable_reads_from_master | Nahoru | mysqli_errno


mysqli_errno

(PHP 5)

mysqli_errno

(no version information, might be only in CVS)

mysqli->errno -- Returns the error code for the most recent function call

Description

Procedural style:

int mysqli_errno ( object link)

Object oriented style (property):

class mysqli {

int errno

}

The mysqli_errno() function will return the last error code for the most recent MySQLi function call that can succeed or fail with respect to the database link defined by the link parameter. If no errors have occured, this function will return zero.

Poznámka: Client error message numbers are listed in the MySQL errmsg.h header file, server error message numbers are listed in mysqld_error.h. In the MySQL source distribution you can find a complete list of error messages and error numbers in the file Docs/mysqld_error.txt.

Return values

An error code value for the last call, if it failed. zero means no error occurred.

See also

mysqli_connect_errno(),
mysqli_connect_error(),
mysqli_error(),
mysqli_sqlstate()

Example

Příklad 1. Object oriented style

<?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();
?>

Příklad 2. Procedural style

<?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);
?>

The above examples would produce the following output:

Errorcode: 1193

Předcházející | Domů | Další
mysqli_enable_rpl_parse | Nahoru | mysqli_error


mysqli_error

(PHP 5)

mysqli_error -- Returns a string description of the last error

Description

Procedural style:

string mysqli_error ( object link)

Object oriented style (property)

class mysqli {

string error

}

The mysqli_error() function is identical to the corresponding mysqli_errno() function in every way, except instead of returning an integer error code the mysqli_error() function will return a string representation of the last error to occur for the database connection represented by the link parameter. If no error has occured, this function will return an empty string.

Return values

A string that describes the error. An empty string if no error occurred.

See also

mysqli_connect_errno(),
mysqli_connect_error(),
mysqli_errno(),
mysqli_sqlstate()

Example

Příklad 1. Object oriented style

<?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("Errormessage: %s\n", $mysqli->error);
}

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?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("Errormessage: %s\n", mysqli_error($link));
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Errormessage: Unknown system variable 'a'

Předcházející | Domů | Další
mysqli_errno | Nahoru | mysqli_escape_string


mysqli_escape_string

mysqli_escape_string -- Alias of mysqli_real_escape_string()

Description

This function is an alias of mysqli_real_escape_string().

Předcházející | Domů | Další
mysqli_error | Nahoru | mysqli_execute


mysqli_execute

mysqli_execute -- Alias for mysqli_stmt_execute()

Description

This function is an alias of mysqli_stmt_execute(). For a detailled descripton see description of mysqli_stmt_execute().

Poznámka: mysqli_execute() is deprecated and will be removed.

See also

mysqli_stmt_execute()

Předcházející | Domů | Další
mysqli_escape_string | Nahoru | mysqli_fetch_array


mysqli_fetch_array

(PHP 5)

mysqli_fetch_array

(no version information, might be only in CVS)

result->fetch_array -- Fetch a result row as an associative, a numeric array, or both.

Description

Procedural style:

mixed mysqli_fetch_array ( object result [, int resulttype])

Object oriend style (method):

class result {

mixed fetch_array ( [int resulttype])

}

Returns an array that corresponds to the fetched row or NULL if there are no more rows for the resultset represented by the result parameter.

mysqli_fetch_array() is an extended version of the mysqli_fetch_row() function. In addition to storing the data in the numeric indices of the result array, the mysqli_fetch_array() function can also store the data in associative indices, using the field names of the result set as keys.

Poznámka: Názvy polí vrácené touto funkcí rozlišují velikost písmen.

If two or more columns of the result have the same field names, the last column will take precedence and overwrite the earlier data. In order to access multiple columns with the same name, the numerically indexed version of the row must be used.

The optional second argument resulttype is a constant indicating what type of array should be produced from the current row data. The possible values for this parameter are the constants MYSQLI_ASSOC, MYSQLI_NUM, or MYSQLI_BOTH. By default the mysqli_fetch_array() function will assume MYSQLI_BOTH for this parameter.

By using the MYSQLI_ASSOC constant this function will behave identically to the mysqli_fetch_assoc(), while MYSQLI_NUM will behave identically to the mysqli_fetch_row() function. The final option MYSQLI_BOTH will create a single array with the attributes of both.

Return values

Returns an array that corresponds to the fetched row or NULL if there are no more rows in resultset.

See also

mysqli_fetch_assoc(),
mysqli_fetch_row(),
mysqli_fetch_object().

Example

Příklad 1. Object oriented style

<?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();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3";
$result = $mysqli->query($query);

/* numeric array */
$row = $result->fetch_array(MYSQLI_NUM);
printf ("%s (%s)\n", $row[0], $row[1]);

/* associative array */
$row = $result->fetch_array(MYSQLI_ASSOC);
printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);

/* associative and numeric array */
$row = $result->fetch_array(MYSQLI_BOTH);
printf ("%s (%s)\n", $row[0], $row["CountryCode"]);

/* free result set */
$result->close();

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?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();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3";
$result = mysqli_query($link, $query);

/* numeric array */
$row = mysqli_fetch_array($result, MYSQLI_NUM);
printf ("%s (%s)\n", $row[0], $row[1]);

/* associative array */
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);

/* associative and numeric array */
$row = mysqli_fetch_array($result, MYSQLI_BOTH);
printf ("%s (%s)\n", $row[0], $row["CountryCode"]);

/* free result set */
mysqli_free_result($result);

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Kabul (AFG)
Qandahar (AFG)
Herat (AFG)

Předcházející | Domů | Další
mysqli_execute | Nahoru | mysqli_fetch_assoc


mysqli_fetch_assoc

(PHP 5)

mysqli_fetch_assoc

(no version information, might be only in CVS)

mysqli->fetch_assoc -- Fetch a result row as an associative array

Description

Procedural style:

array mysqli_fetch_assoc ( object result)

Object oriend style (method):

class result {

array fetch_assoc ( void )

}

Returns an associative array that corresponds to the fetched row or NULL if there are no more rows.

The mysqli_fetch_assoc() function is used to return an associative array representing the next row in the result set for the result represented by the result parameter, where each key in the array represents the name of one of the result set's columns.

If two or more columns 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 mysqli_fetch_row() or add alias names.

Poznámka: Názvy polí vrácené touto funkcí rozlišují velikost písmen.

Return values

Returns an array that corresponds to the fetched row or NULL if there are no more rows in resultset.

See also

mysqli_fetch_array(),
mysqli_fetch_row(),
mysqli_fetch_object().

Example

Příklad 1. Object oriented style

<?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();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = $mysqli->query($query)) {

    /* fetch associative array */
    while ($row = $result->fetch_assoc()) {
        printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
    }

    /* free result set */
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?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();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = mysqli_query($link, $query)) {

    /* fetch associative array */
    while ($row = mysqli_fetch_assoc($result)) {
        printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
    }

    /* free result set */
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Předcházející | Domů | Další
mysqli_fetch_array | Nahoru | mysqli_fetch_field_direct


mysqli_fetch_field_direct

(PHP 5)

mysqli_fetch_field_direct

(no version information, might be only in CVS)

result->fetch_field_direct -- Fetch meta-data for a single field

Description

Procedural style:

mixed mysqli_fetch_field_direct ( object result, int fieldnr)

Object oriented style (method):

class result {

mixed fetch_field_direct ( int fieldnr)

}

mysqli_fetch_field_direct() returns an object which contains field definition informations from specified resultset. The value of fieldnr must be in the range from 0 to number of fields - 1.

Return values

Returns an object which contains field definition informations or FALSE if no field information for specified fieldnr is available.

Tabulka 1. Object attributes

Attribute | Description
name | The name of the column
orgname | Original column name if an alias was specified
table | The name of the table this field belongs to (if not calculated)
orgtable | Original table name if an alias was specified
def | The default value for this field, represented as a string
max_length | The maximum width of the field for the result set.
flags | An integer representing the bit-flags for the field.
type | The data type used for this field
decimals | The number of decimals used (for integer fields)

See also

mysqli_num_fields()
mysqli_fetch_field()
mysqli_fetch_fields()

Example

Příklad 1. Object oriented style

<?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();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Name LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Get field information for column '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();
}

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?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();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Name LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Get field information for column '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);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

Předcházející | Domů | Další
mysqli_fetch_assoc | Nahoru | mysqli_fetch_field


mysqli_fetch_field

(PHP 5)

mysqli_fetch_field

(no version information, might be only in CVS)

result->fetch_field -- Returns the next field in the result set

Description

Procedural style:

mixed mysqli_fetch_field ( object result)

Object oriented style (method):

class result {

mixed fetch_field ( void )

}

The mysqli_fetch_field() returns the definition of one column of a result set as an object. Call this function repeatedly to retrieve information about all columns in the result set. mysqli_fetch_field() returns FALSE when no more fields are left.

Return values

Returns an object which contains field definition informations or FALSE if no field information is available.

Tabulka 1. Object properties

Property | Description
name | The name of the column
orgname | Original column name if an alias was specified
table | The name of the table this field belongs to (if not calculated)
orgtable | Original table name if an alias was specified
def | The default value for this field, represented as a string
max_length | The maximum width of the field for the result set.
flags | An integer representing the bit-flags for the field.
type | The data type used for this field
decimals | The number of decimals used (for integer fields)

See also

mysqli_num_fields()
mysqli_fetch_field_direct()
mysqli_fetch_fields()
mysqli_field_seek()

Example

Příklad 1. Object oriented style

<?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();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Get field information for all columns */
    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();
}

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?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();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Get field information for all fields */
    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);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Name:     Name
Table:    Country
max. Len: 11
Flags:    1
Type:     254

Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

Předcházející | Domů | Další
mysqli_fetch_field_direct | Nahoru | mysqli_fetch_fields


mysqli_fetch_fields

(PHP 5)

mysqli_fetch_fields

(no version information, might be only in CVS)

result->fetch_fields -- Returns an array of objects representing the fields in a result set

Description

Procedural Style:

mixed mysqli_fetch_fields ( object result)

Object oriented style (method):

class result {

mixed fetch_fields ( void )

}

This function serves an identical purpose to the mysqli_fetch_field() function with the single difference that, instead of returning one object at a time for each field, the columns are returned as an array of objects.

Return values

Returns an array of objects which contains field definition informations or FALSE if no field information is available.

Tabulka 1. Object properties

Property | Description
name | The name of the column
orgname | Original column name if an alias was specified
table | The name of the table this field belongs to (if not calculated)
orgtable | Original table name if an alias was specified
def | The default value for this field, represented as a string
max_length | The maximum width of the field for the result set.
flags | An integer representing the bit-flags for the field.
type | The data type used for this field
decimals | The number of decimals used (for integer fields)

See also

mysqli_num_fields()
mysqli_fetch_field()
mysqli_fetch_field_direct()

Example

Příklad 1. Object oriented style

<?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();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Get field information for all columns */
    $finfo = $result->fetch_fields();

    for ($i=0; $i < count($finfo); $i++) {
        printf("Name:     %s\n", $finfo[$i]->name);
        printf("Table:    %s\n", $finfo[$i]->table);
        printf("max. Len: %d\n", $finfo[$i]->max_length);
        printf("Flags:    %d\n", $finfo[$i]->flags);
        printf("Type:     %d\n\n", $finfo[$i]->type);
    }
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?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();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Get field information for all columns */
    $finfo = mysqli_fetch_fields($result);

    for ($i=0; $i < count($finfo); $i++) {
        printf("Name:     %s\n", $finfo[$i]->name);
        printf("Table:    %s\n", $finfo[$i]->table);
        printf("max. Len: %d\n", $finfo[$i]->max_length);
        printf("Flags:    %d\n", $finfo[$i]->flags);
        printf("Type:     %d\n\n", $finfo[$i]->type);
    }
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Name:     Name
Table:    Country
max. Len: 11
Flags:    1
Type:     254

Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

Předcházející | Domů | Další
mysqli_fetch_field | Nahoru | mysqli_fetch_lengths


mysqli_fetch_lengths

(PHP 5)

mysqli_fetch_lengths

(no version information, might be only in CVS)

result->lengths -- Returns the lengths of the columns of the current row in the result set

Description

Procedural style:

mixed mysqli_fetch_lengths ( object result)

Object oriented style (property):

class result {

mixed lengths

}

The mysqli_fetch_lengths() function returns an array containing the lengths of every column of the current row within the result set represented by the result parameter. If successful, a numerically indexed array representing the lengths of each column is returned or FALSE on failure.

Return values

An array of integers representing the size of each column (not including any terminating null characters). FALSE if an error occurred.

mysql_fetch_lengths() is valid only for the current row of the result set. It returns FALSE if you call it before calling mysql_fetch_row/array/object or after retrieving all rows in the result.

Example

Příklad 1. Object oriented style

<?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();
}

$query = "SELECT * from Country ORDER BY Code LIMIT 1";

if ($result = $mysqli->query($query)) {

    $row = $result->fetch_row();

    /* display column lengths */
    for ($i=0; $i < count($result->lengths); $i++) {
        printf("Field %2d has Length %2d\n", $i+1, $result->lengths[$i]);
    }
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?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();
}

$query = "SELECT * from Country ORDER BY Code LIMIT 1";

if ($result = mysqli_query($link, $query)) {

    $row = mysqli_fetch_row($result);

    /* display column lengths */
    $lengths = mysqli_fetch_lengths($result);
    for ($i=0; $i < count($lengths); $i++) {
        printf("Field %2d has Length %2d\n", $i+1, $lengths[$i]);
    }
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Field  1 has Length  3
Field  2 has Length  5
Field  3 has Length 13
Field  4 has Length  9
Field  5 has Length  6
Field  6 has Length  1
Field  7 has Length  6
Field  8 has Length  4
Field  9 has Length  6
Field 10 has Length  6
Field 11 has Length  5
Field 12 has Length 44
Field 13 has Length  7
Field 14 has Length  3
Field 15 has Length  2

Předcházející | Domů | Další
mysqli_fetch_fields | Nahoru | mysqli_fetch_object


mysqli_fetch_object

(PHP 5)

mysqli_fetch_object

(no version information, might be only in CVS)

result->fetch_object -- Returns the current row of a result set as an object

Description

Procedural style:

mixed mysqli_fetch_object ( object result)

Object oriented style (method):

class result {

mixed fetch_object ( void )

}

The mysqli_fetch_object() will return the current row result set as an object where the attributes of the object represent the names of the fields found within the result set. If no more rows exist in the current result set, NULL is returned.

Return values

Returns an object that corresponds to the fetched row or NULL if there are no more rows in resultset.

Poznámka: Názvy polí vrácené touto funkcí rozlišují velikost písmen.

See also

mysqli_fetch_array(),
mysqli_fetch_assoc(),
mysqli_fetch_row().

Example

Příklad 1. Object oriented style

<?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();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = $mysqli->query($query)) {

    /* fetch object array */
    while ($obj = $result->fetch_object()) {
        printf ("%s (%s)\n", $obj->Name, $obj->CountryCode);
    }

    /* free result set */
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?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();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = mysqli_query($link, $query)) {

    /* fetch associative array */
    while ($obj = mysqli_fetch_object($result)) {
        printf ("%s (%s)\n", $obj->Name, $obj->CountryCode);
    }

    /* free result set */
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Předcházející | Domů | Další
mysqli_fetch_lengths | Nahoru | mysqli_fetch_row


mysqli_fetch_row

(PHP 5)

mysqli_fetch_row

(no version information, might be only in CVS)

result->fetch_row -- Get a result row as an enumerated array

Description

Procedural style:

mixed mysqli_fetch_row ( object result)

Object oriented style (method):

class result {

mixed fetch_row ( void )

}

Returns an array that corresponds to the fetched row, or NULL if there are no more rows.

mysqli_fetch_row() fetches one row of data from the result set represented by result and returns it as an enumerated array, where each column is stored in an array offset starting from 0 (zero). Each subsequent call to the mysqli_fetch_row() function will return the next row within the result set, or FALSE if there are no more rows.

Return values

mysqli_fetch_row() returns an array that corresponds to the fetched row or NULL if there are no more rows in result set.

See also

mysqli_fetch_array(),
mysqli_fetch_assoc(),
mysqli_fetch_object().

Example

Příklad 1. Object oriented style

<?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();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = $mysqli->query($query)) {

    /* fetch object array */
    while ($row = $result->fetch_row()) {
        printf ("%s (%s)\n", $row[0], $row[1]);
    }

    /* free result set */
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?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();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = mysqli_query($link, $query)) {

    /* fetch associative array */
    while ($row = mysqli_fetch_row($result)) {
        printf ("%s (%s)\n", $row[0], $row[1]);
    }

    /* free result set */
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Předcházející | Domů | Další
mysqli_fetch_object | Nahoru | mysqli_fetch


mysqli_fetch

mysqli_fetch -- Alias for mysqli_stmt_fetch()

Description

This function is an alias of mysqli_stmt_fetch(). For a detailled descripton see description of mysqli_stmt_fetch().

Poznámka: mysqli_fetch() is deprecated and will be removed.

See also

mysqli_stmt_fetch()

Předcházející | Domů | Další
mysqli_fetch_row | Nahoru | mysqli_field_count


mysqli_field_count

(PHP 5)

mysqli_field_count

(no version information, might be only in CVS)

mysqli->field_count -- Returns the number of columns for the most recent query

Description

Procedural style:

int mysqli_field_count ( object link)

Object oriented style (method):

class mysql {

int field_count ( void )

}

Returns the number of columns for the most recent query on the connection represented by the link parameter. This function can be useful when using the mysqli_store_result() function to determine if the query should have produced a non-empty result set or not without knowing the nature of the query.

Return values

An integer representing the number of fields in a result set

Example

Příklad 1. Object oriented style

<?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')");

$mysqli->real_query($HTTP_POST_VARS['query']);

if (mysql_field_count($link)) {
    /* this was a select/show or describe query */
    $result = $mysqli->store_result();

    /* process resultset */
    $row = $result->fetch_row();

    /* free resultset */
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?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')");

mysqli_real_query($link, $HTTP_POST_VARS['query']);

if (mysql_field_count($link)) {
    /* this was a select/show or describe query */
    $result = mysqli_store_result($link);

    /* process resultset */
    $row = mysqli_fetch_row($result);

    /* free resultset */
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

Předcházející | Domů | Další
mysqli_fetch | Nahoru | mysqli_field_seek


mysqli_field_seek

(PHP 5)

mysqli_field_seek

(no version information, might be only in CVS)

result->field_seek -- Set result pointer to a specified field offset

Description

Procedural style:

int mysqli_field_seek ( object result, int fieldnr)

Object oriented style (method):

class result {

int field_seek ( int fieldnr)

}

Sets the field cursor to the given offset. The next call to mysqli_fetch_field() will retrieve the field definition of the column associated with that offset.

Poznámka: To seek to the beginning of a row, pass an offset value of zero.

Return values

mysqli_field_seek() returns previuos value of field cursor.

See also

mysqli_fetch_field()

Example

Příklad 1. Object oriented style

<?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();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Get field information for 2nd column */
    $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();
}

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?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();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Get field information for 2nd column */
    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);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

Předcházející | Domů | Další
mysqli_field_count | Nahoru | mysqli_field_tell


mysqli_field_tell

(PHP 5)

mysqli_field_tell

(no version information, might be only in CVS)

result->current_field -- Get current field offset of a result pointer

Description

Procedural style:

int mysqli_field_tell ( object result)

Object oriented style (property):

class result {

int current_field

}

Returns the position of the field cursor used for the last mysqli_fetch_field() call. This value can be used as an argument to mysqli_field_seek().

Návratové hodnoty

Returns current offset of field cursor.

Viz také

mysqli_fetch_field(), mysqli_field_seek()

Example

Příklad 1. Object oriented style

<?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();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Get field information for all columns */
    while ($finfo = $result->fetch_field()) {

        /* get fieldpointer offset */
        $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();
}

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?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();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Get field information for all fields */
    while ($finfo = mysqli_fetch_field($result)) {

        /* get fieldpointer offset */
        $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);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

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

Předcházející | Domů | Další
mysqli_field_seek | Nahoru | mysqli_free_result


mysqli_free_result

(PHP 5)

mysqli_free_result

(no version information, might be only in CVS)

result->free -- Frees the memory associated with a result

Description

Procedural style:

void mysqli_free_result ( object result)

Object oriented style (method):

class result {

void free ( void )

}

The mysqli_free_result() function frees the memory associated with the result represented by the result parameter, which was allocated by mysqli_query(), mysqli_store_result() or mysqli_use_result().

Poznámka: You should always free your result with mysqli_free_result(), when your result object is not needed anymore.

Návratové hodnoty

This function doesn't return any value.

Viz také

mysqli_query(),
mysqli_stmt_store_result(),
mysqli_store_result(),
mysqli_use_result().

Předcházející | Domů | Další
mysqli_field_tell | Nahoru | mysqli_get_client_info


mysqli_get_client_info

(PHP 5)

mysqli_get_client_info -- Returns the MySQL client version as a string

Description

string mysqli_get_client_info ( void )

The mysqli_get_client_info() function is used to return a string representing the client version being used in the MySQLi extension.

Návratové hodnoty

A string that represents the MySQL client library version

See also

mysqli_get_client_version(),
mysqli_get_server_info(),
mysqli_get_server_version()

Example

Příklad 1. mysqli_get_client_info

<?php

/* We don't need a connection to determine
   the version of mysql client library */

printf("Client library version: %s\n", mysqli_get_client_info());
?>

Předcházející | Domů | Další
mysqli_free_result | Nahoru | mysqli_get_client_version


mysqli_get_client_version

(PHP 5)

mysqli_get_client_version -- Get MySQL client info.

Description

int mysqli_get_client_version ( void )

Returns client version number as an integer.

Return values

A number that represents the MySQL client library version in format: main_version*10000 + minor_version *100 + sub_version. For example, 4.1.0 is returned as 40100.

This is useful to quickly determine the version of the client library to know if some capability exits.

See also

mysqli_get_client_info(),
mysqli_get_server_info(),
mysqli_get_server_version()

Example

Příklad 1. mysqli_get_client_version

<?php

/* We don't need a connection to determine
   the version of mysql client library */

printf("Client library version: %d\n", mysqli_get_client_version());
?>

Předcházející | Domů | Další
mysqli_get_client_info | Nahoru | mysqli_get_host_info


mysqli_get_host_info

(PHP 5)

mysqli_get_host_info

(no version information, might be only in CVS)

mysqli->get_host_info -- Returns a string representing the type of connection used

Description

Procdural style:

string mysqli_get_host_info ( object link)

Object oriented style (property):

class mysqli {

string host_info

}

The mysqli_get_host_info() function returns a string describing the connection represented by the link parameter is using (including the server host name).

Návratové hodnoty

A character string representing the server hostname and the connection type.

See also

mysqli_get_proto_info()

Example

Příklad 1. Object oriented style

<?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();
}

/* print host information */
printf("Host info: %s\n", $mysqli->host_info);

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?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();
}

/* print host information */
printf("Host info: %s\n", mysqli_get_host_info($link));

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Host info: Localhost via UNIX socket

Předcházející | Domů | Další
mysqli_get_client_version | Nahoru | mysqli_get_metadata


mysqli_get_metadata

mysqli_get_metadata -- Alias for mysqli_stmt_result_metadata()

Description

This function is an alias of mysqli_stmt_result_metadata(). For a detailled descripton see description of mysqli_stmt_result_metadata().

Poznámka: mysqli_get_metadata() is deprecated and will be removed.

See also

mysqli_stmt_result_metadata()

Předcházející | Domů | Další
mysqli_get_host_info | Nahoru | mysqli_get_proto_info


mysqli_get_proto_info

(PHP 5)

mysqli_get_proto_info

(no version information, might be only in CVS)

mysqli->protocol_version -- Returns the version of the MySQL protocol used

Description

Procedural style:

int mysqli_get_proto_info ( object link)

Object oriented style (property):

class mysqli {

string protocol_version

}

Returns an integer representing the MySQL protocol version used by the connection represented by the link parameter.

Návratové hodnoty

Returns an integer representing the protocol version.

See also

mysqli_get_host_info()

Example

Příklad 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print protocol version */
printf("Protocol version: %d\n", $mysqli->protocol_version);

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print protocol version */
printf("Protocol version: %d\n", mysqli_get_proto_info($link));

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Protocol version: 10

Předcházející | Domů | Další
mysqli_get_metadata | Nahoru | mysqli_get_server_info


mysqli_get_server_info

(PHP 5)

mysqli_get_server_info

(no version information, might be only in CVS)

mysqli->server_info -- Returns the version of the MySQL server

Description

Procedural style:

string mysqli_get_server_info ( object link)

Object oriented style (property):

class mysqli {

string server_info

}

Returns a string representing the version of the MySQL server that the MySQLi extension is connected to (represented by the link parameter).

Návratové hodnoty

A character string representing the server version.

See also

mysqli_get_client_info(),
mysqli_get_client_version(),
mysqli_get_server_version()

Example

Příklad 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print server version */
printf("Server version: %s\n", $mysqli->server_info);

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print server version */
printf("Server version: %s\n", mysqli_get_server_info($link));

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Server version: 4.1.2-alpha-debug

Předcházející | Domů | Další
mysqli_get_proto_info | Nahoru | mysqli_get_server_version


mysqli_get_server_version

(PHP 5)

mysqli_get_server_version -- Returns the version of the MySQL server as an integer

Description

Procedural style:

int mysqli_get_server_version ( object link)

Object oriented style (property):

class mysqli {

int server_version

}

The mysqli_get_server_version() function returns the version of the server connected to (represented by the link parameter) as an integer.

The form of this version number is main_version * 10000 + minor_version * 100 + sub_version (i.e. version 4.1.0 is 40100).

Návratové hodnoty

An integer representing the server version.

See also

mysqli_get_client_info(),
mysqli_get_client_version(),
mysqli_get_server_info()

Example

Příklad 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print server version */
printf("Server version: %d\n", $mysqli->server_version);

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print server version */
printf("Server version: %d\n", mysqli_get_server_version($link));

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Server version: 40102

Předcházející | Domů | Další
mysqli_get_server_info | Nahoru | mysqli_info


mysqli_info

(PHP 5)

mysqli_info

(no version information, might be only in CVS)

mysqli->info -- Retrieves information about the most recently executed query

Description

Procedural style:

string mysqli_info ( object link)

Object oriented style (property)

class mysqli {

string info

}

The mysqli_info() function returns a string providing information about the last query executed. The nature of this string is provided below:

Tabulka 1. Possible mysqli_info return values

Query type | Example result string
INSERT INTO...SELECT... | Records: 100 Duplicates: 0 Warnings: 0
INSERT INTO...VALUES (...),(...),(...) | Records: 3 Duplicates: 0 Warnings: 0
LOAD DATA INFILE ... | Records: 1 Deleted: 0 Skipped: 0 Warnings: 0
ALTER TABLE ... | Records: 3 Duplicates: 0 Warnings: 0
UPDATE ... | Rows matched: 40 Changed: 40 Warnings: 0

Poznámka: Queries which do not fall into one of the above formats are not supported. In these situations, mysqli_info() will return an empty string.

Návratové hodnoty

A character string representing additional information about the most recently executed query.

Viz také

mysqli_affected_rows(),
mysqli_warning_count(),
mysqli_num_rows()

Example

Příklad 1. Object oriented style

<?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();
}

$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);

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?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();
}

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));

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Records: 150  Duplicates: 0  Warnings: 0

Předcházející | Domů | Další
mysqli_get_server_version | Nahoru | mysqli_init


mysqli_init

(PHP 5)

mysqli_init -- Initializes MySQLi and returns an object for use with mysqli_real_connect

Description

object mysqli_init ( void )

Allocates or initializes a MYSQL object suitable for mysqli_options() and mysqli_real_connect().

Poznámka: Any subsequent calls to any mysqli function (except mysqli_options()) will fail until mysqli_real_connect() was called.

Návratové hodnoty

Returns an object.

Viz také

mysqli_options(),
mysqli_close(),
mysqli_real_connect(),
mysqli_connect()

Předcházející | Domů | Další
mysqli_info | Nahoru | mysqli_insert_id


mysqli_insert_id

(PHP 5)

mysqli_insert_id

(no version information, might be only in CVS)

mysqli->insert_id -- Returns the auto generated id used in the last query

Description

Procedural style:

mixed mysqli_insert_id ( object link)

Object oriented style (property):

class mysqli {

mixed insert_id

}

The mysqli_insert_id() function returns the ID generated by a query on a table with a column having the AUTO_INCREMENT attribute. If the last query wasn't an INSERT or UPDATE statement or if the modified table does not have a column with the AUTO_INCREMENT attribute, this function will return zero.

Poznámka: Performing an INSERT or UPDATE statement using the LAST_INSERT_ID() function will also modify the value returned by the mysqli_insert_id() function.

Návratové hodnoty

The value of the AUTO_INCREMENT field that was updated by the previous query. Returns zero if there was no previous query on the connection or if the query did not update an AUTO_INCREMENT value.

Poznámka: If the number is greater than maximal int value, mysqli_insert_id() will return a string.

Example

Příklad 1. Object oriented style

<?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();
}

$mysqli->query("CREATE TABLE myCity LIKE City");

$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
$mysqli->query($query);

printf ("New Record has id %d.\n", $mysqli->insert_id);

/* drop table */
$mysqli->query("DROP TABLE myCity");

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?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();
}

mysqli_query($link, "CREATE TABLE myCity LIKE City");

$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
mysqli_query($link, $query);

printf ("New Record has id %d.\n", mysqli_insert_id($link));

/* drop table */
mysqli_query($link, "DROP TABLE myCity");

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

New Record has id 1.

Předcházející | Domů | Další
mysqli_init | Nahoru | mysqli_kill


mysqli_kill

(PHP 5)

mysqli_kill

(no version information, might be only in CVS)

mysqli->kill -- Asks the server to kill a MySQL thread

Description

Procedural style:

bool mysqli_kill ( object link, int processid)

Object oriented style (method)

class mysqli {

bool kill ( int processid)

}

This function is used to ask the server to kill a MySQL thread specified by the processid parameter. This value must be retrieved by calling the mysqli_thread_id() function.

Poznámka: To stop a running query you should use the SQL command KILL QUERY processid.

Návratové hodnoty

Vrací TRUE při úspěchu, FALSE při selhání.

Viz také

mysqli_thread_id()

Example

Příklad 1. Object oriented style

<?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();
}

/* determine our thread id */
$thread_id = $mysqli->thread_id;

/* Kill connection */
$mysqli->kill($thread_id);

/* This should produce an error */
if (!$mysqli->query("CREATE TABLE myCity LIKE City")) {
    printf("Error: %s\n", $mysqli->error);
    exit;
}

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?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();
}

/* determine our thread id */
$thread_id = mysqli_thread_id($link);

/* Kill connection */
mysqli_kill($link, $thread_id);

/* This should produce an error */
if (!mysqli_query($link, "CREATE TABLE myCity LIKE City")) {
    printf("Error: %s\n", mysqli_error($link));
    exit;
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Error: MySQL server has gone away

Předcházející | Domů | Další
mysqli_insert_id | Nahoru | mysqli_master_query


mysqli_master_query

(PHP 5)

mysqli_master_query -- Enforce execution of a query on the master in a master/slave setup.

Description

bool mysqli_master_query ( object link, string query)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Předcházející | Domů | Další
mysqli_kill | Nahoru | mysqli_more_results


mysqli_more_results

(PHP 5)

mysqli_more_results

(no version information, might be only in CVS)

mysqli->more_results -- Check if there any more query results from a multi query.

Description

bool mysqli_more_results ( object link)

mysqli_more_results() indicates if one or more result sets are available from a previous call to mysqli_multi_query().

Return values

Vrací TRUE při úspěchu, FALSE při selhání.

See also

mysqli_multi_query(),
mysqli_next_result(),
mysqli_store_result(),
mysqli_use_result()

Example

See mysqli_multi_query().

Předcházející | Domů | Další
mysqli_master_query | Nahoru | mysqli_multi_query


mysqli_multi_query

(PHP 5)

mysqli_multi_query

(no version information, might be only in CVS)

mysqli->multi_query -- Performs a query on the database

Description

Procedural style:

bool mysqli_multi_query ( object link, string query)

Object oriented style (method):

class mysqli {

bool multi_query ( string query)

}

The mysqli_multi_query() executes one or multiple queries which are concatenated by a semicolon.

To retrieve the resultset from the first query you can use mysqli_use_result() or mysqli_store_result(). All subsequent query results can be processed using mysqli_more_results() and mysqli_next_result().

Return values

Vrací TRUE při úspěchu, FALSE při selhání.

See also

mysqli_use_result(),
mysqli_store_result(),
mysqli_next_result(),
mysqli_more_results()

Example

Příklad 1. Object oriented style

<?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();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* execute multi query */
if ($mysqli->multi_query($query)) {
    do {
        /* store first result set */
        if ($result = $mysqli->store_result()) {
            while ($row = $result->fetch_row()) {
                printf("%s\n", $row[0]);
            }
            $result->close();
        }
        /* print divider */
        if ($mysqli->more_results()) {
            printf("-----------------\n");
        }
    } while ($mysqli->next_result());
}

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?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();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* execute multi query */
if (mysqli_multi_query($link, $query)) {
    do {
        /* store first result set */
        if ($result = mysqli_store_result($link)) {
            while ($row = mysqli_fetch_row($result)) {
                printf("%s\n", $row[0]);
            }
            mysqli_free_result($result);
        }
        /* print divider */
        if (mysqli_more_results($link)) {
            printf("-----------------\n");
        }
    } while (mysqli_next_result($link));
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

my_user@localhost
-----------------
Amersfoort
Maastricht
Dordrecht
Leiden
Haarlemmermeer

Předcházející | Domů | Další
mysqli_more_results | Nahoru | mysqli_next_result


mysqli_next_result

(PHP 5)

mysqli_next_result

(no version information, might be only in CVS)

mysqli->next_result -- prepare next result from multi_query.

Description

bool mysqli_next_result ( object link)

mysqli_next_result() prepares next result set from a previous call to mysqli_multi_query() which can be retrieved by mysqli_store_result() or mysqli_use_result().

Return values

Vrací TRUE při úspěchu, FALSE při selhání.

See also

mysqli_multi_query(),
mysqli_more_results(),
mysqli_store_result(),
mysqli_use_result()

Example

See mysqli_multi_query().

Předcházející | Domů | Další
mysqli_multi_query | Nahoru | mysqli_num_fields


mysqli_num_fields

(PHP 5)

mysqli_num_fields

(no version information, might be only in CVS)

result->field_count -- Get the number of fields in a result

Description

Procedural style:

int mysqli_num_fields ( object result)

Object oriented style (property):

class result {

int field_count

}

mysqli_num_fields() returns the number of fields from specified result set.

Návratové hodnoty

The number of fields from a result set

Viz také

mysqli_fetch_field()

Example

Příklad 1. Object oriented style

<?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 ($result = $mysqli->query("SELECT * FROM City ORDER BY ID LIMIT 1")) {

    /* determine number of fields in result set */
    $field_cnt = $result->field_count;

    printf("Result set has %d fields.\n", $field_cnt);

    /* close result set */
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?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 ($result = mysqli_query($link, "SELECT * FROM City ORDER BY ID LIMIT 1")) {

    /* determine number of fields in result set */
    $field_cnt = mysqli_num_fields($result);

    printf("Result set has %d fields.\n", $field_cnt);

    /* close result set */
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Result set has 5 fields.

Předcházející | Domů | Další
mysqli_next_result | Nahoru | mysqli_num_rows


mysqli_num_rows

(PHP 5)

mysqli_num_rows -- Gets the number of rows in a result

Description

Procedural style:

mixed mysqli_num_rows ( object result)

Object oriented style (property):

class mysqli {

mixed num_rows

}

Returns the number of rows in the result set.

The use of mysqli_num_rows() depends on whether you use buffered or unbuffered result sets. In case you use unbuffered resultsets mysqli_num_rows() will not correct the correct number of rows until all the rows in the result have been retrieved.

Návratové hodnoty

Returns number of rows in the result set.

Poznámka: If the number of rows is greater than maximal int value, the number will be returned as a string.

Viz také

mysqli_affected_rows()
mysqli_store_result()
mysqli_use_result()
mysqli_query()

Example

Příklad 1. Object oriented style

<?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 ($result = $mysqli->query("SELECT Code, Name FROM Country ORDER BY Name")) {

    /* determine number of rows result set */
    $row_cnt = $result->num_rows;

    printf("Result set has %d rows.\n", $row_cnt);

    /* close result set */
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?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 ($result = mysqli_query($link, "SELECT Code, Name FROM Country ORDER BY Name")) {

    /* determine number of rows result set */
    $row_cnt = mysqli_num_rows($result);

    printf("Result set has %d rows.\n", $row_cnt);

    /* close result set */
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Result set has 239 rows.

Předcházející | Domů | Další
mysqli_num_fields | Nahoru | mysqli_options


mysqli_options

(PHP 5)

mysqli_options

(no version information, might be only in CVS)

mysqli->options -- set options

Description

Procedural style:

bool mysqli_options ( object link, int option, mixed value)

Object oriented style (method)

class mysqli {

bool options ( int option, mixed value)

}

mysqli_options() can be used to set extra connect options and affect behavior for a connection.

This function may be called multiple times to set several options.

mysqli_options() should be called after mysqli_init() and before mysqli_real_connect().

The parameter option is the option that you want to set, the value is the value for the option. The parameter option can be one of the following values:

Tabulka 1. Valid options

Name | Description
MYSQLI_OPT_CONNECT_TIMEOUT | connection timeout in seconds
MYSQLI_OPT_COMPRESS | use compression protocol
MYSQLI_OPT_LOCAL_INFILE | enable/disable use of LOAD LOCAL INFILE
MYSQLI_INIT_CMD | command to execute after when connecting to MySQL server
MYSQLI_READ_DEFAULT_FILE | Read options from named option file instead of my.cnf
MYSQLI_READ_DEFAULT_GROUP | Read options from the named group from my.cnf or the file specified with MYSQL_READ_DEFAULT_FILE.

Návratové hodnoty

Vrací TRUE při úspěchu, FALSE při selhání.

Viz také

mysqli_init(), mysqli_real_connect()

Example

See mysqli_real_connect().

Předcházející | Domů | Další
mysqli_num_rows | Nahoru | mysqli_param_count


mysqli_param_count

mysqli_param_count -- Alias for mysqli_stmt_param_count()

Description

This function is an alias of mysqli_stmt_param_count(). For a detailled descripton see description of mysqli_stmt_param_count().

Poznámka: mysqli_param_count() is deprecated and will be removed.

See also

mysqli_stmt_param_count()

Předcházející | Domů | Další
mysqli_options | Nahoru | mysqli_ping


mysqli_ping

(PHP 5)

mysqli_ping

(no version information, might be only in CVS)

mysqli->ping -- Pings a server connection, or tries to reconnect if the connection has gone down.

Description

Procedural style:

bool mysqli_ping ( object link)

Object oriented style (method):

class mysqli {

bool ping ( void )

}

Checks whether the connection to the server is working. If it has gone down, and global option mysqli.reconnect is enabled an automatic reconnection is attempted.

This function can be used by clients that remain idle for a long while, to check whether the server has closed the connection and reconnect if necessary.

Return values

Vrací TRUE při úspěchu, FALSE při selhání.

Example

Příklad 1. Object oriented style

<?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();
}

/* check if server is alive */
if ($mysqli->ping()) {
    printf ("Our connection is ok!\n");
} else {
    printf ("Error: %s\n", $mysqli->error);
}

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?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();
}

/* check if server is alive */
if (mysqli_ping($link)) {
    printf ("Our connection is ok!\n");
} else {
    printf ("Error: %s\n", mysqli_error($link));
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Our connection is ok!

Předcházející | Domů | Další
mysqli_param_count | Nahoru | mysqli_prepare


mysqli_prepare

(PHP 5)

mysqli_prepare

(no version information, might be only in CVS)

mysqli->prepare -- Prepare a SQL statement for execution

Description

Procedure style:

mixed mysqli_prepare ( object link, string query)

Object oriented style (method)

class stmt {

mixed prepare ( string query)

}

mysqli_prepare() prepares the SQL query pointed to by the null-terminated string query, and returns a statement handle to be used for further operations on the statement. The query must consist of a single SQL statement.

Poznámka: You should not add a terminating semicolon or \g to the statement.

The parameter query can include one or more parameter markers in the SQL statement by embedding question mark (?) characters at the appropriate positions.

Poznámka: The markers are legal only in certain places in SQL statements. For example, they are allowed in the VALUES() list of an INSERT statement (to specify column values for a row), or in a comparison with a column in a WHERE clause to specify a comparison value.

However, they are not allowed for identifiers (such as table or column names), in the select list that names the columns to be returned by a SELECT statement), or to specify both operands of a binary operator such as the = equal sign. The latter restriction is necessary because it would be impossible to determine the parameter type. In general, parameters are legal only in Data Manipulation Languange (DML) statements, and not in Data Defination Language (DDL) statements.

The parameter markers must be bound to application variables using mysqli_stmt_bind_param() and/or mysqli_stmt_bind_result() before executing the statement or fetching rows.

Návratové hodnoty

mysqli_prepare() returns a statement object or FALSE if an error occured.

Viz také

mysqli_stmt_execute(),
mysqli_stmt_fetch(),
mysqli_stmt_bind_param(),
mysqli_stmt_bind_result(),
mysqli_stmt_close()

Example

Příklad 1. Object oriented style

<?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();
}

$city = "Amersfoort";

/* create a prepared statement */
if ($stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?")) {

    /* bind parameters for markers */
    $stmt->bind_param("s", $city);

    /* execute query */
    $stmt->execute();

    /* bind result variables */
    $stmt->bind_result($district);

    /* fetch value */
    $stmt->fetch();

    printf("%s is in district %s\n", $city, $district);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?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();
}

$city = "Amersfoort";

/* create a prepared statement */
if ($stmt = mysqli_prepare($link, "SELECT District FROM City WHERE Name=?")) {

    /* bind parameters for markers */
    mysqli_stmt_bind_param($stmt, "s", $city);

    /* execute query */
    mysqli_stmt_execute($stmt);

    /* bind result variables */
    mysqli_stmt_bind_result($stmt, $district);

    /* fetch value */
    mysqli_stmt_fetch($stmt);

    printf("%s is in district %s\n", $city, $district);

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Amersfoort is in district Utrecht

Předcházející | Domů | Další
mysqli_ping | Nahoru | mysqli_query


mysqli_query

(PHP 5)

mysqli_query

(no version information, might be only in CVS)

mysqli->query -- Performs a query on the database

Description

Procedural style:

mixed mysqli_query ( object link, string query [, int resultmode])

Object oriented style (method):

class mysqli {

mixed query ( string query)

}

The mysqli_query() function is used to simplify the act of performing a query against the database represented by the link parameter.

Functionally, using this function is identical to calling mysqli_real_query() followed either by mysqli_use_result() or mysqli_store_result() where query is the query string itself and resultmode is either the constant MYSQLI_USE_RESULT or MYSQLI_STORE_RESULT depending on the desired behavior. By default, if the resultmode is not provided MYSQLI_STORE_RESULT is used.

If you execute mysqli_query() with resultmode MYSQLI_USE_RESULT all subsequent calls will return error Commands out of sync unless you call mysqli_free_result().

Return values

Vrací TRUE při úspěchu, FALSE při selhání. For SELECT, SHOW, DESCRIBE or EXPLAIN mysqli_query() will return a result object.

See also

mysqli_real_query(),
mysqli_multi_query(),
mysqli_free_result()

Example

Příklad 1. Object oriented style

<?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();
}

/* Create table doesn't return a resultset */
if ($mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) {
    printf("Table myCity successfully created.\n");
}

/* Select queries return a resultset */
if ($result = $mysqli->query("SELECT Name FROM City LIMIT 10")) {
    printf("Select returned %d rows.\n", $result->num_rows);

    /* free result set */
    $result->close();
}

/* If we have to retrieve large amount of data we use MYSQLI_USE_RESULT */
if ($result = $mysqli->query("SELECT * FROM City", MYSQLI_USE_RESULT)) {

    /* Note, that we can't execute any functions which interact with the
       server until result set was closed. All calls will return an
       'out of sync' error */
    if (!$mysqli->query("SET @a:='this will not work'")) {
        printf("Error: %s\n", $mysqli->error);
    }
    $result->close();
}

$mysqli->close();
?>

Příklad 2. Procedural style

<?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();
}

/* Create table doesn't return a resultset */
if (mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) {
    printf("Table myCity successfully created.\n");
}

/* Select queries return a resultset */
if ($result = mysqli_query($link, "SELECT Name FROM City LIMIT 10")) {
    printf("Select returned %d rows.\n", mysqli_num_rows($result));

    /* free result set */
    mysqli_free_result($result);
}

/* If we have to retrieve large amount of data we use MYSQLI_USE_RESULT */
if ($result = mysqli_query($link, "SELECT * FROM City", MYSQLI_USE_RESULT)) {

    /* Note, that we can't execute any functions which interact with the
       server until result set was closed. All calls will return an
       'out of sync' error */
    if (!mysqli_query($link, "SET @a:='this will not work'")) {
        printf("Error: %s\n", mysqli_error($link));
    }
    mysqli_free_result($result);
}

mysqli_close($link);
?>

The above examples would produce the following output:

Table myCity successfully created.
Select returned 10 rows.
Error: Commands out of sync;  You can't run this command now

Předcházející | Domů | Další
mysqli_prepare | Nahoru | mysqli_real_connect


mysqli_real_connect

(PHP 5)

mysqli_real_connect

(no version information, might be only in CVS)

mysqli->real_connect -- Opens a connection to a mysql server

Description

Procedural style

bool mysqli_real_connect ( object link [, string hostname [, string username [, string passwd [, string dbname [, int port [, string socket [, int flags]]]]]]])

Object oriented style (method)

class mysqli {

bool real_connect ( [string hostname [, string username [, string passwd [, string dbname [, int port [, string socket [, int flags]]]]]]])

}

mysql_real_connect() attempts to establish a connection to a MySQL database engine running on host.

This function differs from mysqli_connect():

  • mysqli_real_connect() needs a valid object which has to be created by function mysqli_init()

  • With function mysqli_options() you can set various options for connection.

  • With the parameter flags you can set diffrent connection options:

    Tabulka 1. Supported flags

    Name | Description
    MYSQLI_CLIENT_COMPRESS | Use compression protocol
    MYSQLI_CLIENT_FOUND_ROWS | return number of matched rows, not the number of affected rows
    MYSQLI_CLIENT_IGNORE_SPACE | Allow spaces after function names. Makes all function names reserved words.
    MYSQLI_CLIENT_INTERACTIVE | Allow interactive_timeout seconds (instead of wait_timeout seconds) of inactivity before closing the connection
    MYSQLI_CLIENT_SSL | Use SSL (encryption)

    Poznámka: For security reasons the MULTI_STATEMENT flag is not supported in PHP. If you want to execute multiple queries use the mysqli_multi_query() function.

Návratové hodnoty

Vrací TRUE při úspěchu, FALSE při selhání.

Viz také

mysqli_connect(),
mysqli_init(),
mysqli_options(),
mysqli_ssl_set(),
mysqli_close().

Example

Příklad 1. Object oriented style

<?php

/* create a connection object which is not connected */
$mysqli = mysqli_init();

/* set connection options */
$mysqli->options(MYSQLI_INIT_COMMAND, "SET AUTOCOMMIT=0");
$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 5);

/* connect to server */
$mysqli->real_connect('localhost', 'my_user', 'my_password', 'world');

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

printf ("Connection: %s\n.", $mysqli->host_info);

$mysqli->close();
?>

Příklad 2. Procedural style

<?php

/* create a connection object which is not connected */
$link = mysqli_init();

/* set connection options */
mysqli_options($link, MYSQLI_INIT_COMMAND, "SET AUTOCOMMIT=0");
mysqli_options($link, MYSQLI_OPT_CONNECT_TIMEOUT, 5);

/* connect to server */
mysqli_real_connect($link, 'localhost', 'my_user', 'my_password', 'world');

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

printf ("Connection: %s\n.", mysqli_get_host_info($link));

mysqli_close($link);
?>

The above examples would produce the following output:

Connection: Localhost via UNIX socket

Předcházející | Domů | Další
mysqli_query | Nahoru | mysqli_real_escape_string


mysqli_real_escape_string

(PHP 5)

mysqli_real_escape_string

(no version information, might be only in CVS)

mysqli->real_escape_string -- Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection

Description

Procedural style:

string mysqli_real_escape_string ( object link, string escapestr)

Object oriented style (method):

class mysqli {

string real_escape_sring ( string query)

}

This function is used to create a legal SQL string that you can use in a SQL statement. The string escapestr is encoded to an escaped SQL string, taking into account the current character set of the connection.

Characters encoded are NUL (ASCII 0), \n, \r, \, ', ", and Control-Z.

Return values

Returns an escaped string.

See also

mysqli_character_set_name().

Example

Příklad 1. Object oriented style

<?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();
}

$mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City");

$city = "'s Hertogenbosch";

/* this query will fail, cause we didn't escape $city */
if (!$mysqli->query("INSERT into myCity (Name) VALUES ('$city')")) {
    printf("Error: %s\n", $mysqli->sqlstate);
}

$city = $mysqli->real_escape_string($city);

/* this query with escaped $city will work */
if ($mysqli->query("INSERT into myCity (Name) VALUES ('$city')")) {
    printf("%d Row inserted.\n", $mysqli->affected_rows);
}

$mysqli->close();
?>

Příklad 2. Procedural style

<?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();
}

mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City");

$city = "'s Hertogenbosch";

/* this query will fail, cause we didn't escape $city */
if (!mysqli_query($link, "INSERT into myCity (Name) VALUES ('$city')")) {
    printf("Error: %s\n", mysqli_sqlstate($link));
}

$city = mysqli_real_escape_string($link, $city);

/* this query with escaped $city will work */
if (mysqli_query($link, "INSERT into myCity (Name) VALUES ('$city')")) {
    printf("%d Row inserted.\n", mysqli_affected_rows($link));
}

mysqli_close($link);
?>

The above examples would produce the following output:

Error: 42000
1 Row inserted.

Předcházející | Domů | Další
mysqli_real_connect | Nahoru | mysqli_real_query


mysqli_real_query

(PHP 5)

mysqli_real_query

(no version information, might be only in CVS)

mysqli->real_query -- Execute an SQL query

Description

Procedural style

bool mysqli_real_query ( object link, string query)

Object oriented style (method):

class mysqli {

bool real_query ( string query)

}

The mysqli_real_query() function is used to execute only a query against the database represented by the link whose result can then be retrieved or stored using the mysqli_store_result() or mysqli_use_result() functions.

Poznámka: In order to determine if a given query should return a result set or not, see mysqli_field_count().

Return values

Vrací TRUE při úspěchu, FALSE při selhání.

See also

mysqli_query()
mysqli_store_result()
mysqli_use_result()

Předcházející | Domů | Další
mysqli_real_escape_string | Nahoru | mysqli_report


mysqli_report

(PHP 5)

mysqli_report -- enables or disables internal report functions

Description

bool mysqli_report ( int flags)

mysqli_report() is a powerful function to improve your queries and code during development and testing phase. Depending on the flags it reports errors from mysqli function calls or queries which don't use an index (or use a bad index).

Tabulka 1. Supported flags

Name | Description
MYSQLI_REPORT_OFF | Turns reporting off
MYSQLI_REPORT_ERROR | Report errors from mysqli function calls
MYSQLI_REPORT_INDEX | Report if no index or bad index was used in a query
MYSQLI_REPORT_ALL | Set all options (report all)

Return values

Vrací TRUE při úspěchu, FALSE při selhání.

See also

mysqli_debug(), mysqli_dump_debug_info()

Example

Příklad 1. Object oriented style

<?php
/* activate reporting */
mysqli_report(MYSQLI_REPORT_ALL);

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* this query should report an error */
$result = $mysqli->query("SELECT Name FROM Nonexistingtable WHERE population > 50000");

/* this query should report a warning */
$result = $mysqli->query("SELECT Name FROM City WHERE population > 50000");
$result->close();

$mysqli->close();
?>

Předcházející | Domů | Další
mysqli_real_query | Nahoru | mysqli_rollback


mysqli_rollback

(PHP 5)

mysqli_rollback

(no version information, might be only in CVS)

mysqli->rollback -- Rolls back current transaction

Description

bool mysqli_rollback ( object link)

class mysqli {

bool rollback ( void )

}

Rollbacks the current transaction for the database specified by the link parameter.

Return values

Vrací TRUE při úspěchu, FALSE při selhání.

See also

mysqli_commit() mysqli_autocommit()

Example

Příklad 1. Object oriented style

<?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();
}

/* disable autocommit */
$mysqli->autocommit(FALSE);

$mysqli->query("CREATE TABLE myCity LIKE City");
$mysqli->query("ALTER TABLE myCity Type=InnoDB");
$mysqli->query("INSERT INTO myCity SELECT * FROM City LIMIT 50");

/* commit insert */
$mysqli->commit();

/* delete all rows */
$mysqli->query("DELETE FROM myCity");

if ($result = $mysqli->query("SELECT COUNT(*) FROM myCity")) {
    $row = $result->fetch_row();
    printf("%d rows in table myCity.\n", $row[0]);
    /* Free result */
    $result->close();
}

/* Rollback */
$mysqli->rollback();

if ($result = $mysqli->query("SELECT COUNT(*) FROM myCity")) {
    $row = $result->fetch_row();
    printf("%d rows in table myCity (after rollback).\n", $row[0]);
    /* Free result */
    $result->close();
}

/* Drop table myCity */
$mysqli->query("DROP TABLE myCity");

$mysqli->close();
?>

Příklad 2. Procedural style

<?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();
}

/* disable autocommit */
mysqli_autocommit($link, FALSE);

mysqli_query($link, "CREATE TABLE myCity LIKE City");
mysqli_query($link, "ALTER TABLE myCity Type=InnoDB");
mysqli_query($link, "INSERT INTO myCity SELECT * FROM City LIMIT 50");

/* commit insert */
mysqli_commit($link);

/* delete all rows */
mysqli_query($link, "DELETE FROM myCity");

if ($result = mysqli_query($link, "SELECT COUNT(*) FROM myCity")) {
    $row = mysqli_fetch_row($result);
    printf("%d rows in table myCity.\n", $row[0]);
    /* Free result */
    mysqli_free_result($result);
}

/* Rollback */
mysqli_rollback($link);

if ($result = mysqli_query($link, "SELECT COUNT(*) FROM myCity")) {
    $row = mysqli_fetch_row($result);
    printf("%d rows in table myCity (after rollback).\n", $row[0]);
    /* Free result */
    mysqli_free_result($result);
}

/* Drop table myCity */
mysqli_query($link, "DROP TABLE myCity");

mysqli_close($link);
?>

The above examples would produce the following output:

0 rows in table myCity.
50 rows in table myCity (after rollback).

Předcházející | Domů | Další
mysqli_report | Nahoru | mysqli_rpl_parse_enabled


mysqli_rpl_parse_enabled

(PHP 5)

mysqli_rpl_parse_enabled --

Description

int mysqli_rpl_parse_enabled ( object link)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Předcházející | Domů | Další
mysqli_rollback | Nahoru | mysqli_rpl_probe


mysqli_rpl_probe

(PHP 5)

mysqli_rpl_probe --

Description

bool mysqli_rpl_probe ( object link)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Předcházející | Domů | Další
mysqli_rpl_parse_enabled | Nahoru | mysqli_rpl_query_type


mysqli_rpl_query_type

(PHP 5)

mysqli_rpl_query_type --

Description

int mysqli_rpl_query_type ( string query)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Předcházející | Domů | Další
mysqli_rpl_probe | Nahoru | mysqli_select_db


mysqli_select_db

(PHP 5)

mysqli_select_db

(no version information, might be only in CVS)

mysqli->select_db -- Selects the default database for database queries

Description

bool mysqli_select_db ( object link, string dbname)

The mysqli_select_db() function selects the default database (specified by the dbname parameter) to be used when performing queries against the database connection represented by the link parameter.

Poznámka: This function should only be used to change the default database for the connection. You can select the default database with 4th parameter in mysqli_connect().

Return values

Vrací TRUE při úspěchu, FALSE při selhání.

See also

mysqli_connect() mysqli_real_connect()

Example

Příklad 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* return name of current default database */
if ($result = $mysqli->query("SELECT DATABASE()")) {
    $row = $result->fetch_row();
    printf("Default database is %s.\n", $row[0]);
    $result->close();
}

/* change db to world db */
$mysqli->select_db("world");

/* return name of current default database */
if ($result = $mysqli->query("SELECT DATABASE()")) {
    $row = $result->fetch_row();
    printf("Default database is %s.\n", $row[0]);
    $result->close();
}

$mysqli->close();
?>

Příklad 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* return name of current default database */
if ($result = mysqli_query($link, "SELECT DATABASE()")) {
    $row = mysqli_fetch_row($result);
    printf("Default database is %s.\n", $row[0]);
    mysqli_free_result($result);
}

/* change db to world db */
mysqli_select_db($link, "world");

/* return name of current default database */
if ($result = mysqli_query($link, "SELECT DATABASE()")) {
    $row = mysqli_fetch_row($result);
    printf("Default database is %s.\n", $row[0]);
    mysqli_free_result($result);
}

mysqli_close($link);
?>

The above examples would produce the following output:

Default database is test.
Default database is world.

Předcházející | Domů | Další
mysqli_rpl_query_type | Nahoru | mysqli_send_long_data


mysqli_send_long_data

mysqli_send_long_data -- Alias for mysqli_stmt_send_long_data()

Description

This function is an alias of mysqli_stmt_send_long_data(). For a detailled descripton see description of mysqli_stmt_send_long_data().

Poznámka: mysqli_send_long_data() is deprecated and will be removed.

See also

mysqli_stmt_send_long_data()

Předcházející | Domů | Další
mysqli_select_db | Nahoru | mysqli_send_query


mysqli_send_query

(PHP 5)

mysqli_send_query --

Description

bool mysqli_send_query ( resource link, string query)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Předcházející | Domů | Další
mysqli_send_long_data | Nahoru | mysqli_server_end


mysqli_server_end

(PHP 5)

mysqli_server_end --

Description

void mysqli_server_end ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Předcházející | Domů | Další
mysqli_send_query | Nahoru | mysqli_server_init


mysqli_server_init

(PHP 5)

mysqli_server_init -- Initialize embedded server.

Description

bool mysqli_server_init ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Předcházející | Domů | Další
mysqli_server_end | Nahoru | mysqli_set_opt


mysqli_set_opt

mysqli_set_opt -- Alias of mysqli_options()

Description

This function is an alias of mysqli_options().

Předcházející | Domů | Další
mysqli_server_init | Nahoru | mysqli_sqlstate


mysqli_sqlstate

(PHP 5)

mysqli_sqlstate

(no version information, might be only in CVS)

mysqli->sqlstate -- Returns the SQLSTATE error from previous MySQL operation.

Description

string mysqli_sqlstate ( object link)

Returns a string containing the SQLSTATE error code for the last error. The error code consists of five characters. '00000' means no error. The values are specified by ANSI SQL and ODBC. For a list of possible values, see http://dev.mysql.com/doc/mysql/en/Error-returns.html.

Poznámka: Note that not all MySQL errors are yet mapped to SQLSTATE's. The value HY000 (general error) is used for unmapped errors.

Return values

Returns a string containing the SQLSTATE error code for the last error. The error code consists of five characters. '00000' means no error.

See also

mysqli_errno(), mysqli_error()

Example

Příklad 1. Object oriented style

<?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();
}

/* Table City already exists, so we should get an error */
if (!$mysqli->query("CREATE TABLE City (ID INT, Name VARCHAR(30))")) {
    printf("Error - SQLSTATE %s.\n", $mysqli->sqlstate);
}

$mysqli->close();
?>

Příklad 2. Procedural style

<?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();
}

/* Table City already exists, so we should get an error */
if (!mysqli_query($link, "CREATE TABLE City (ID INT, Name VARCHAR(30))")) {
    printf("Error - SQLSTATE %s.\n", mysqli_sqlstate($link));
}

mysqli_close($link);
?>

The above examples would produce the following output:

Error - SQLSTATE 42S01.

Předcházející | Domů | Další
mysqli_set_opt | Nahoru | mysqli_ssl_set


mysqli_ssl_set

(PHP 5)

mysqli_ssl_set

(no version information, might be only in CVS)

mysqli->ssl_set -- Used for establishing secure connections using SSL.

Description

Procedural style:

bool mysqli_ssl_set ( object link [, string key [, string cert [, string ca [, string capath [, string cipher]]]]])

Object oriented style (method):

class mysqli {

bool ssl_set ( [string key [, string cert [, string ca [, string capath [, string cipher]]]]])

}

The function mysqli_ssl_set() is used for establishing secure connections using SSL. It must be called before mysqli_real_connect(). This function does nothing unless OpenSSL support is enabled.

key is the pathname to the key file. cert is the pathname to the certificate file. ca is the pathname to the certificate authority file. capath is the pathname to a directory that contains trusted SSL CA certificates in pem format. cipher is a list of allowable ciphers to use for SSL encryption. Any unused SSL parameters may be given as NULL

Return values

This function always returns TRUE value. If SSL setup is incorrect mysqli_real_connect() will return an error when you attempt to connect.

See also

mysqli_options(), mysqli_real_connect()

Předcházející | Domů | Další
mysqli_sqlstate | Nahoru | mysqli_stat


mysqli_stat

(PHP 5)

mysqli_stat

(no version information, might be only in CVS)

mysqli->stat -- Gets the current system status

Description

Procedural style:

mixed mysqli_stat ( object link)

Object oriented style (method):

class mysqli {

mixed mysqli->stat ( void )

}

mysqli_stat() returns a string containing information similar to that provided by the 'mysqladmin status' command. This includes uptime in seconds and the number of running threads, questions, reloads, and open tables.

Return values

A string describing the server status. FALSE if an error occurred.

See also

mysqli_get_server_info()

Example

Příklad 1. Object oriented style

<?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();
}

printf ("System status: %s\n", $mysqli->stat());

$mysqli->close();
?>

Příklad 2. Procedural style

<?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();
}

printf("System status: %s\n", mysqli_stat($link));

mysqli_close($link);
?>

The above examples would produce the following output:

System status: 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

Předcházející | Domů | Další
mysqli_ssl_set | Nahoru | mysqli_stmt_affected_rows


mysqli_stmt_affected_rows

(PHP 5)

mysqli_stmt_affected_rows

(no version information, might be only in CVS)

mysqli_stmt->affected_rows -- Returns the total number of rows changed, deleted, or inserted by the last executed statement

Description

Procedural style :

mixed mysqli_stmt_affected_rows ( object stmt)

Object oriented style (property):

class stmt {

mixed affected_rows

}

mysqli_stmt_affected_rows() returns the number of rows affected by INSERT, UPDATE, or DELETE query. If the last query was invalid, this function will return -1.

The mysqli_stmt_affected_rows() function only works with queries which update a table. In order to return the number of rows from a SELECT query, use the mysqli_stmt_num_rows() function instead.

Return Values

An integer greater than zero indicates the number of rows affected or retrieved. Zero indicates that no records where updated for an UPDATE/DELETE statement, no rows matched the WHERE clause in the query or that no query has yet been executed. -1 indicates that the query has returned an error.

Poznámka: If the number of affected rows is greater than maximal PHP int value, the number of affected rows will be returned as a string value.

See also

mysqli_stmt_num_rows(), mysqli_prepare()

Example

Příklad 1. Object oriented style

<?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();
}

/* create temp table */
$mysqli->query("CREATE TEMPORARY TABLE myCountry LIKE Country");

$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";

/* prepare statement */
if ($stmt = $mysqli->prepare($query)) {

    /* Bind variable for placeholder */
    $code = 'A%';
    $stmt->bind_param("s", $code);

    /* execute statement */
    $stmt->execute();

    printf("rows inserted: %d\n", $stmt->affected_rows);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?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();
}

/* create temp table */
mysqli_query($link, "CREATE TEMPORARY TABLE myCountry LIKE Country");

$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";

/* prepare statement */
if ($stmt = mysqli_prepare($link, $query)) {

    /* Bind variable for placeholder */
    $code = 'A%';
    mysqli_stmt_bind_param($stmt, "s", $code);

    /* execute statement */
    mysqli_stmt_execute($stmt);

    printf("rows inserted: %d\n", mysqli_stmt_affected_rows($stmt));

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

rows inserted: 17

Předcházející | Domů | Další
mysqli_stat | Nahoru | mysqli_stmt_bind_param


mysqli_stmt_bind_param

(PHP 5)

mysqli_stmt_bind_param

(no version information, might be only in CVS)

stmt->bind_param -- Binds variables to a prepared statement as parameters

Description

Procedural style:

bool mysqli_stmt_bind_param ( object stmt, string types, mixed var1 [, mixed var2, ...])

Object oriented style (method):

class stmt {

bool bind_param ( array types, mixed var1 [, mixed var2, ...])

}

mysqli_stmt_bind_param() is used to bind variables for the parameter markers in the SQL statement that was passed to mysql_prepare(). The string types contains one or more characters which specify the types for the corresponding bind variables

Tabulka 1. Type specification chars

Character | Description
i | corresponding variable has type integer
d | corresponding variable has type double
s | corresponding variable has type string
b | corresponding variable is a blob and will be send in packages

Poznámka: If data size of a variable exceeds max. allowed package size (max_allowed_package), you have to specify b in types and use mysqli_stmt_send_long_data() to send the data in packages.

The number of variables and length of string types must match the parameters in the statement.

Return values

Vrací TRUE při úspěchu, FALSE při selhání.

See also

mysqli_stmt_bind_result(),
mysqli_stmt_execute(),
mysqli_stmt_fetch(),
mysqli_prepare(),
mysqli_stmt_send_long_data(),
mysqli_stmt_errno(),
mysqli_stmt_error()

Example

Příklad 1. Object oriented style

<?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();
}

$stmt = $mysqli->prepare("INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
$stmt->bind_param('sssd', $code, $language, $official, $percent);

$code = 'DEU';
$language = 'Bavarian';
$official = "F";
$percent = 11.2;

/* execute prepared statement */
$stmt->execute();

printf("%d Row inserted.\n", $stmt->affected_rows);

/* close statement and connection */
$stmt->close();

/* Clean up table CountryLanguage */
$mysqli->query("DELETE FROM CountryLanguage WHERE Language='Bavarian'");
printf("%d Row deleted.\n", $mysqli->affected_rows);

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?php
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'world');

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$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;

/* execute prepared statement */
mysqi_stmt_execute($stmt);

printf("%d Row inserted.\n", mysqli_stmt_affected_rows($stmt));

/* close statement and connection */
mysqli_stmt_close($stmt);

/* Clean up table CountryLanguage */
mysqli_query($link, "DELETE FROM CountryLanguage WHERE Language='Bavarian'");
printf("%d Row deleted.\n", mysqli_affected_rows($link));

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

1 Row inserted.
1 Row deleted.

Předcházející | Domů | Další
mysqli_stmt_affected_rows | Nahoru | mysqli_stmt_bind_result


mysqli_stmt_bind_result

(PHP 5)

mysqli_stmt_bind_result

(no version information, might be only in CVS)

stmt->bind_result -- Binds variables to a prepared statement for result storage

Description

Procedural style:

bool mysqli_stnt_bind_result ( object stmt, mixed var1 [, mixed var2, ...])

Object oriented style (method):

class stmt {

bool bind_result ( mixed var1 [, mixed var2, ...])

}

mysqli_stmt_bind_result() is used to associate (bind) columns in the result set to variables. When mysqli_stmt_fetch() is called to fetch data, the MySQL client/server protocol places the data for the bound columns into the specified variables var1, ....

Poznámka: Note that all columns must be bound prior to calling mysqli_stmt_fetch(). Depending on column types bound variables can silently change to the corresponding PHP type.

A column can be bound or rebound at any time, even after a result set has been partially retrieved. The new binding takes effect the next time mysqli_stmt_fetch() is called.

Return values

Vrací TRUE při úspěchu, FALSE při selhání.

See also

mysqli_stmt_bind_param(),
mysqli_stmt_execute(),
mysqli_stmt_fetch(),
mysqli_prepare(),
mysqli_stmt_prepare(),
mysqli_stmt_init(),
mysqli_stmt_errno(),
mysqli_stmt_error()

Example

Příklad 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* prepare statement */
if ($stmt = $mysqli->prepare("SELECT Code, Name FROM Country ORDER BY Name LIMIT 5")) {
    $stmt->execute();

    /* bind variables to prepared statement */
    $stmt->bind_result($col1, $col2);

    /* fetch values */
    while ($stmt->fetch()) {
        printf("%s %s\n", $col1, $col2);
    }

    /* close statement */
    $stmt->close();
}
/* close connection */
$mysqli->close();

?>

Příklad 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* prepare statement */
if ($stmt = mysqli_prepare($link, "SELECT Code, Name FROM Country ORDER BY Name LIMIT 5")) {
    mysqli_stmt_execute($stmt);

    /* bind variables to prepared statement */
    mysqli_stmt_bind_result($stmt, $col1, $col2);

    /* fetch values */
    while (mysqli_stmt_fetch($stmt)) {
       printf("%s %s\n", $col1, $col2);
    }

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

AFG Afghanistan
ALB Albania
DZA Algeria
ASM American Samoa
AND Andorra

Předcházející | Domů | Další
mysqli_stmt_bind_param | Nahoru | mysqli_stmt_close


mysqli_stmt_close

(PHP 5)

mysqli_stmt_close

(no version information, might be only in CVS)

mysqli_stmt->close -- Closes a prepared statement

Description

Procedural style:

bool mysqli_stmt_close ( object stmt)

Object oriented style (method):

class mysqli_stmt {

bool mysqli_stmt->close ( void )

}

Closes a prepared statement. mysql_stmt_close() also deallocates the statement handle pointed to by stmt. If the current statement has pending or unread results, this function cancels them so that the next query can be executed.

Return values

Vrací TRUE při úspěchu, FALSE při selhání.

See also

mysqli_prepare(),

Předcházející | Domů | Další
mysqli_stmt_bind_result | Nahoru | mysqli_stmt_data_seek


mysqli_stmt_data_seek

(PHP 5)

mysqli_stmt_data_seek

(no version information, might be only in CVS)

stmt->data_seek -- Seeks to an arbitray row in statement result set

Description

Procedural style:

bool mysqli_stmt_data_seek ( object statement, int offset)

Object oriented style (method):

class stmt {

bool data_seek ( int offset)

}

The mysqli_stmt_data_seek() function seeks to an arbitrary result pointer specified by the offset in the statement result set represented by statement. The offset parameter must be between zero and the total number of rows minus one (0..mysqli_stmt_num_rows() - 1).

Return values

Vrací TRUE při úspěchu, FALSE při selhání.

See also

mysqli_prepare()

Example

Příklad 1. Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {

    /* execute query */
    $stmt->execute();

    /* bind result variables */
    $stmt->bind_result($name, $code);

    /* store result */
    $stmt->store_result();

    /* seek to row no. 400 */
    $stmt->data_seek(399);

    /* fetch values */
    $stmt->fetch();

    printf ("City: %s  Countrycode: %s\n", $name, $code);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
if ($stmt = mysqli_prepare($link, $query)) {

    /* execute query */
    mysqli_stmt_execute($stmt);

    /* bind result variables */
    mysqli_stmt_bind_result($stmt, $name, $code);

    /* store result */
    mysqli_stmt_store_result($stmt);

    /* seek to row no. 400 */
    mysqli_stmt_data_seek($stmt, 399);

    /* fetch values */
    mysqli_stmt_fetch($stmt);

    printf ("City: %s  Countrycode: %s\n", $name, $code);

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

City: Benin City  Countrycode: NGA

Předcházející | Domů | Další
mysqli_stmt_close | Nahoru | mysqli_stmt_errno


mysqli_stmt_errno

(PHP 5)

mysqli_stmt_errno

(no version information, might be only in CVS)

mysqli_stmt->errno -- Returns the error code for the most recent statement call

Description

Procedural style :

int mysqli_stmt_errno ( object stmt)

Object oriented style (property):

class stmt {

int errno

}

For the statement specified by stmt, mysqli_stmt_errno() returns the error code for the most recently invoked statement function that can succeed or fail.

Poznámka: Client error message numbers are listed in the MySQL errmsg.h header file, server error message numbers are listed in mysqld_error.h. In the MySQL source distribution you can find a complete list of error messages and error numbers in the file Docs/mysqld_error.txt.

Return values

An error code value. Zero means no error occurred.

See also

mysqli_stmt_error(), mysqli_stmt_sqlstate()

Example

Příklad 1. Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
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)) {

    /* drop table */
    $mysqli->query("DROP TABLE myCountry");

    /* execute query */
    $stmt->execute();

    printf("Error: %d.\n", $stmt->errno);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
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)) {

    /* drop table */
    mysqli_query($link, "DROP TABLE myCountry");

    /* execute query */
    mysqli_stmt_execute($stmt);

    printf("Error: %d.\n", mysqli_stmt_errno($stmt));

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Error: 1146.

Předcházející | Domů | Další
mysqli_stmt_data_seek | Nahoru | mysqli_stmt_error


mysqli_stmt_error

(PHP 5)

mysqli_stmt_error

(no version information, might be only in CVS)

mysqli_stmt->error -- Returns a string description for last statement error

Description

Procedural style:

string mysqli_stmt_error ( object stmt)

Object oriented style (property):

class stmt {

string error

}

For the statement specified by stmt, mysql_stmt_error() returns a containing the error message for the most recently invoked statement function that can succeed or fail.

Return values

A string that describes the error. An empty string if no error occurred.

See also

mysqli_stmt_errno(), mysqli_stmt_sqlstate()

Example

Příklad 1. Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
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)) {

    /* drop table */
    $mysqli->query("DROP TABLE myCountry");

    /* execute query */
    $stmt->execute();

    printf("Error: %s.\n", $stmt->error);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
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)) {

    /* drop table */
    mysqli_query($link, "DROP TABLE myCountry");

    /* execute query */
    mysqli_stmt_execute($stmt);

    printf("Error: %s.\n", mysqli_stmt_error($stmt));

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Error: Table 'world.myCountry' doesn't exist.

Předcházející | Domů | Další
mysqli_stmt_errno | Nahoru | mysqli_stmt_execute


mysqli_stmt_execute

(PHP 5)

mysqli_stmt_execute

(no version information, might be only in CVS)

stmt->execute -- Executes a prepared Query

Description

Procedural style:

bool mysqli_stmt_execute ( object stmt)

Object oriented style (method):

class mysql {

bool execute ( void )

}

The mysqli_stmt_execute() function executes a query that has been previously prepared using the mysqli_prepare() function represented by the stmt object. When executed any parameter markers which exist will automatically be replaced with the appropiate data.

If the statement is UPDATE, DELETE, or INSERT, the total number of affected rows can be determined by using the mysqli_stmt_affected_rows() function. Likewise, if the query yields a result set the mysqli_fetch() function is used.

Poznámka: When using mysqli_stmt_execute(), the mysqli_fetch() function must be used to fetch the data prior to preforming any additional queries.

Return values

Vrací TRUE při úspěchu, FALSE při selhání.

See also

mysqli_prepare() mysqli_stmt_bind_param().

Example

Příklad 1. Object oriented style

<?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();
}

$mysqli->query("CREATE TABLE myCity LIKE City");

/* Prepare an insert statement */
$query = "INSERT INTO myCity (Name, CountryCode, District) VALUES (?,?,?)";
$stmt = $mysqli->prepare($query);

$stmt->bind_param("sss", $val1, $val2, $val3);

$val1 = 'Stuttgart';
$val2 = 'DEU';
$val3 = 'Baden-Wuerttemberg';

/* Execute the statement */
$stmt->execute();

$val1 = 'Bordeaux';
$val2 = 'FRA';
$val3 = 'Aquitaine';

/* Execute the statement */
$stmt->execute();

/* close statement */
$stmt->close();

/* retrieve all rows from myCity */
$query = "SELECT Name, CountryCode, District FROM myCity";
if ($result = $mysqli->query($query)) {
    while ($row = $result->fetch_row()) {
        printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
    }
    /* free result set */
    $result->close();
}

/* remove table */
$mysqli->query("DROP TABLE myCity");

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?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();
}

mysqli_query($link, "CREATE TABLE myCity LIKE City");

/* Prepare an insert statement */
$query = "INSERT INTO myCity (Name, CountryCode, District) VALUES (?,?,?)";
$stmt = mysqli_prepare($link, $query);

mysqli_stmt_bind_param($stmt, "sss", $val1, $val2, $val3);

$val1 = 'Stuttgart';
$val2 = 'DEU';
$val3 = 'Baden-Wuerttemberg';

/* Execute the statement */
mysqli_stmt_execute($stmt);

$val1 = 'Bordeaux';
$val2 = 'FRA';
$val3 = 'Aquitaine';

/* Execute the statement */
mysqli_stmt_execute($stmt);

/* close statement */
mysqli_stmt_close($stmt);

/* retrieve all rows from myCity */
$query = "SELECT Name, CountryCode, District FROM myCity";
if ($result = mysqli_query($link, $query)) {
    while ($row = mysqli_fetch_row($result)) {
        printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
    }
    /* free result set */
    mysqli_free_result($result);
}

/* remove table */
mysqli_query($link, "DROP TABLE myCity");

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Stuttgart (DEU,Baden-Wuerttemberg)
Bordeaux (FRA,Aquitaine)

Předcházející | Domů | Další
mysqli_stmt_error | Nahoru | mysqli_stmt_fetch


mysqli_stmt_fetch

(PHP 5)

mysqli_stmt_fetch

(no version information, might be only in CVS)

stmt->fetch -- Fetch results from a prepared statement into the bound variables

Description

Procedural style:

mixed mysqli_stmt_fetch ( object stmt)

Object oriented style (method):

class stmt {

mixed fetch ( void )

}

mysqli_stmt_fetch() returns row data using the variables bound by mysqli_stmt_bind_result().

Poznámka: Note that all columns must be bound by the application before calling mysqli_stmt_fetch().

Return values

Tabulka 1. Return values

Value | Description
TRUE | Success. Data has been fetched
FALSE | Error occured
NULL | No more rows/data exists

See also

mysqli_prepare(),
mysqli_stmt_errno(),
mysqli_stmt_error(),
mysqli_stmt_bind_result()

Example

Příklad 1. Object oriented style

<?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();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 150,5";

if ($stmt = $mysqli->prepare($query)) {

    /* execute statement */
    $stmt->execute();

    /* bind result variables */
    $stmt->bind_result($name, $code);

    /* fetch values */
    while ($stmt->fetch()) {
        printf ("%s (%s)\n", $name, $code);
    }

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?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();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 150,5";

if ($stmt = mysqli_prepare($link, $query)) {

    /* execute statement */
    mysqli_stmt_execute($stmt);

    /* bind result variables */
    mysqli_stmt_bind_result($stmt, $name, $code);

    /* fetch values */
    while (mysqli_stmt_fetch($stmt)) {
        printf ("%s (%s)\n", $name, $code);
    }

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Rockford (USA)
Tallahassee (USA)
Salinas (USA)
Santa Clarita (USA)
Springfield (USA)

Předcházející | Domů | Další
mysqli_stmt_execute | Nahoru | mysqli_stmt_free_result


mysqli_stmt_free_result

(PHP 5)

mysqli_stmt_free_result

(no version information, might be only in CVS)

stmt->free_result -- Frees stored result memory for the given statement handle

Description

Procedural style:

void mysqli_stmt_free_result ( object stmt)

Object oriented style (method):

class stmt {

void free_result ( void )

}

The mysqli_stmt_free_result() function frees the result memory associated with the statement represented by the stmt parameter, which was allocated by mysqli_stmt_store_result().

Návratové hodnoty

This function doesn't return any value.

Viz také

mysqli_stmt_store_result()

Předcházející | Domů | Další
mysqli_stmt_fetch | Nahoru | mysqli_stmt-init


mysqli_stmt-init

(PHP 5)

mysqli_stmt-init

(no version information, might be only in CVS)

mysqli->stmt->init -- Initializes a statement and returns an object for use with mysqli_stmt_prepare

Description

Procedural style :

object mysqli_stmt_init ( object link)

Object oriented style (property):

class mysqli {

object stmt_init ( void )

}

Allocates and initializes a statement object suitable for mysqli_stmt_prepare().

Poznámka: Any subsequent calls to any mysqli_stmt function will fail until mysqli_stmt_prepare() was called.

Návratové hodnoty

Returns an object.

Viz také

mysqli_stmt_prepare()

Předcházející | Domů | Další
mysqli_stmt_free_result | Nahoru | mysqli_stmt_num_rows


mysqli_stmt_num_rows

(PHP 5)

mysqli_stmt_num_rows

(no version information, might be only in CVS)

stmt->num_rows -- Return the number of rows in statements result set.

Description

mixed mysqli_stmt_num_rows ( object stmt)

class stmt {

int num_rows

}

Returns the number of rows in the result set. The use of mysqli_stmt_num_rows() depends on whether or not you used mysqli_stmt_store_result() to buffer the entire result set in the statement handle.

If you use mysqli_stmt_store_result(), mysqli_stmt_num_rows() may be called immediately.

Return values

An integer representing the number of rows in result set.

See also

mysqli_stmt_affected_rows(),
mysqli_prepare(),
mysqli_stmt_store_result()

Example

Příklad 1. Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if ($stmt = $mysqli->prepare($query)) {

    /* execute query */
    $stmt->execute();

    /* store result */
    $stmt->store_result();

    printf("Number of rows: %d.\n", $stmt->num_rows);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if ($stmt = mysqli_prepare($link, $query)) {

    /* execute query */
    mysqli_stmt_execute($stmt);

    /* store result */
    mysqli_stmt_store_result($stmt);

    printf("Number of rows: %d.\n", mysqli_stmt_num_rows($stmt));

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Number of rows: 20.

Předcházející | Domů | Další
mysqli_stmt-init | Nahoru | mysqli_stmt_param_count


mysqli_stmt_param_count

(PHP 5)

mysqli_stmt_param_count

(no version information, might be only in CVS)

stmt->param_count -- Returns the number of parameter for the given statement

Description

Procedural style:

int mysqli_stmt_param_count ( object stmt)

Object oriented style (property):

class stmt {

int param_count

}

mysqli_stmt_param_count() returns the number of parameter markers present in the prepared statement.

Návratové hodnoty

returns an integer representing the number of parameters.

Viz také

mysqli_prepare()

Example

Příklad 1. Object oriented style

<?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 ($stmt = $mysqli->prepare("SELECT Name FROM Country WHERE Name=? OR Code=?")) {

    $marker = $stmt->param_count;
    printf("Statement has %d markers.\n", $marker);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?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 ($stmt = mysqli_prepare($link, "SELECT Name FROM Country WHERE Name=? OR Code=?")) {

    $marker = mysqli_stmt_param_count($stmt);
    printf("Statement has %d markers.\n", $marker);

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Statement has 2 markers.

Předcházející | Domů | Další
mysqli_stmt_num_rows | Nahoru | mysqli_stmt_prepare


mysqli_stmt_prepare

(PHP 5)

mysqli_stmt_prepare

(no version information, might be only in CVS)

stmt->prepare -- Prepare a SQL statement for execution

Description

Procedure style:

bool mysqli_stmt_prepare ( object stmt, string query)

Object oriented style (method)

class stmt {

mixed prepare ( string query)

}

mysqli_stmt_prepare() prepares the SQL query pointed to by the null-terminated string query. The statement object has to be allocated by mysqli_stmt_init(). The query must consist of a single SQL statement.

Poznámka: You should not add a terminating semicolon or \g to the statement.

The parameter query can include one or more parameter markers in the SQL statement by embedding question mark (?) characters at the appropriate positions.

Poznámka: The markers are legal only in certain places in SQL statements. For example, they are allowed in the VALUES() list of an INSERT statement (to specify column values for a row), or in a comparison with a column in a WHERE clause to specify a comparison value.

However, they are not allowed for identifiers (such as table or column names), in the select list that names the columns to be returned by a SELECT statement), or to specify both operands of a binary operator such as the = equal sign. The latter restriction is necessary because it would be impossible to determine the parameter type. In general, parameters are legal only in Data Manipulation Languange (DML) statements, and not in Data Defination Language (DDL) statements.

The parameter markers must be bound to application variables using mysqli_stmt_bind_param() and/or mysqli_stmt_bind_result() before executing the statement or fetching rows.

Návratové hodnoty

Vrací TRUE při úspěchu, FALSE při selhání.

Viz také

mysqli_stmt_init(),
mysqli_stmt_execute(),
mysqli_stmt_fetch(),
mysqli_stmt_bind_param(),
mysqli_stmt_bind_result(),
mysqli_stmt_close()

Example

Příklad 1. Object oriented style

<?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();
}

$city = "Amersfoort";

/* create a prepared statement */
$stmt =  $mysqli->stmt_init();
if ($stmt->prepare("SELECT District FROM City WHERE Name=?")) {

    /* bind parameters for markers */
    $stmt->bind_param("s", $city);

    /* execute query */
    $stmt->execute();

    /* bind result variables */
    $stmt->bind_result($district);

    /* fetch value */
    $stmt->fetch();

    printf("%s is in district %s\n", $city, $district);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?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();
}

$city = "Amersfoort";

/* create a prepared statement */
$stmt = mysqli_stmt_init();
if ($stmt = mysqli_stmt_prepare($stmt, "SELECT District FROM City WHERE Name=?")) {

    /* bind parameters for markers */
    mysqli_stmt_bind_param($stmt, "s", $city);

    /* execute query */
    mysqli_stmt_execute($stmt);

    /* bind result variables */
    mysqli_stmt_bind_result($stmt, $district);

    /* fetch value */
    mysqli_stmt_fetch($stmt);

    printf("%s is in district %s\n", $city, $district);

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Amersfoort is in district Utrecht

Předcházející | Domů | Další
mysqli_stmt_param_count | Nahoru | mysqli_stmt_result_metadata


mysqli_stmt_result_metadata

(PHP 5)

mysqli_stmt_result_metadata -- returns result set metadata from a prepared statement

Description

Procedural style:

mixed mysqli_stmt_result_metadata ( object stmt)

Object oriented style (method):

class stmt {

mixed result_metadata ( void )

}

If a statement passed to mysqli_prepare() is one that produces a result set, mysqli_stmt_result_metadata() returns the result object that can be used to process the meta information such as total number of fields and individual field information.

Poznámka: This result set pointer can be passed as an argument to any of the field-based functions that process result set metadata, such as:

  • 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()

The result set structure should be freed when you are done with it, which you can do by passing it to mysqli_free_result()

Poznámka: The result set returned by mysqli_stmt_result_metadata() contains only metadata. It does not contain any row results. The rows are obtained by using the statement handle with mysqli_fetch().

Návratové hodnoty

mysqli_stmt_result_metadata() returns a result object or FALSE if an error occured.

See also:

mysqli_prepare(), mysqli_free_result()

Example

Příklad 1. Object oriented style

<?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();

/* get resultset for metadata */
$result = $stmt->result_metadata();

/* retrieve field information from metadata result set */
$field = $result->fetch_field();

printf("Fieldname: %s\n", $field->name);

/* close resultset */
$result->close();

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?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);

/* get resultset for metadata */
$result = mysqli_stmt_result_metadata($stmt);

/* retrieve field information from metadata result set */
$field = mysqli_fetch_field($result);

printf("Fieldname: %s\n", $field->name);

/* close resultset */
mysqli_free_result($result);

/* close connection */
mysqli_close($link);
?>

Předcházející | Domů | Další
mysqli_stmt_prepare | Nahoru | mysqli_stmt_send_long_data


mysqli_stmt_send_long_data

(PHP 5)

mysqli_stmt_send_long_data

(no version information, might be only in CVS)

stmt->send_long_data -- Send data in blocks

Description

Procedural style:

bool mysqli_stmt_send_long_data ( object stmt, int param_nr, string data)

Object oriented style (method)

class stmt {

bool stmt_send_long_data ( int param_nr, string data)

}

Allows to send parameter data to the server in pieces (or chunks), e.g. if the size of a blob exceeds the size of max_allowed_packet. This function can be called multiple times to send the parts of a character or binary data value for a column, which must be one of the TEXT or BLOB datatypes.

param_nr indicates which parameter to associate the data with. Parameters are numbered beginning with 0. data is a string containing data to be sent.

Return values

Vrací TRUE při úspěchu, FALSE při selhání.

See also

mysqli_prepare(), mysqli_stmt_bind_param()

Předcházející | Domů | Další
mysqli_stmt_result_metadata | Nahoru | mysqli_stmt_sqlstate


mysqli_stmt_sqlstate

(PHP 5)

mysqli_stmt_sqlstate -- returns SQLSTATE error from previous statement operation

Description

string mysqli_stmt_sqlstate ( object stmt)

Returns a string containing the SQLSTATE error code for the most recently invoked prepared statement function that can succeed or fail. The error code consists of five characters. '00000' means no error. The values are specified by ANSI SQL and ODBC. For a list of possible values, see http://dev.mysql.com/doc/mysql/en/Error-returns.html.

Poznámka: Note that not all MySQL errors are yet mapped to SQLSTATE's. The value HY000 (general error) is used for unmapped errors.

Return values

Returns a string containing the SQLSTATE error code for the last error. The error code consists of five characters. '00000' means no error.

See also

mysqli_stmt_errno(), mysqli_stmt_error()

Example

Příklad 1. Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
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)) {

    /* drop table */
    $mysqli->query("DROP TABLE myCountry");

    /* execute query */
    $stmt->execute();

    printf("Error: %s.\n", $stmt->sqlstate);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
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)) {

    /* drop table */
    mysqli_query($link, "DROP TABLE myCountry");

    /* execute query */
    mysqli_stmt_execute($stmt);

    printf("Error: %s.\n", mysqli_stmt_sqlstate($stmt));

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Error: 42S02.

Předcházející | Domů | Další
mysqli_stmt_send_long_data | Nahoru | mysqli_stmt_store_result


mysqli_stmt_store_result

(PHP 5)

mysqli_stmt_store_result

(no version information, might be only in CVS)

mysqli_stmt->store_result -- Transfers a result set from a prepared statement

Description

Procedural style:

bool mysqli_stmt_store_result ( object stmt)

Object oriented style (method):

class mysqli_stmt {

bool store_result ( void )

}

You must call mysql_stmt_store_result() for every query that successfully produces a result set (SELECT, SHOW, DESCRIBE, EXPLAIN), and only if you want to buffer the complete result set by the client, so that the subsequent mysql_fetch() call returns buffered data.

Poznámka: It is unnecessary to call mysql_stmt_store_result() for other queries, but if you do, it will not harm or cause any notable performance in all cases. You can detect whether the query produced a result set by checking if mysql_stmt_result_metadata() returns NULL.

Return values

Vrací TRUE při úspěchu, FALSE při selhání.

See also

mysqli_prepare(),
mysqli_stmt_result_metadata(),
mysqli_fetch()

Example

Příklad 1. Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if ($stmt = $mysqli->prepare($query)) {

    /* execute query */
    $stmt->execute();

    /* store result */
    $stmt->store_result();

    printf("Number of rows: %d.\n", $stmt->num_rows);

    /* free result */
    $stmt->free_result();

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if ($stmt = mysqli_prepare($link, $query)) {

    /* execute query */
    mysqli_stmt_execute($stmt);

    /* store result */
    mysqli_stmt_store_result($stmt);

    printf("Number of rows: %d.\n", mysqli_stmt_num_rows($stmt));

    /* free result */
    mysqli_stmt_free_result($stmt);

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Number of rows: 20.

Předcházející | Domů | Další
mysqli_stmt_sqlstate | Nahoru | mysqli_store_result


mysqli_store_result

(PHP 5)

mysqli_store_result

(no version information, might be only in CVS)

mysqli->store_result -- Transfers a result set from the last query

Description

Procedural style:

object mysqli_store_result ( object link)

Object oriented style (method):

class mysqli {

object store_result ( void )

}

Transfers the result set from the last query on the database connection represented by the link parameter to be used with the mysqli_data_seek() function.

Poznámka: Although it is always good practice to free the memory used by the result of a query using the mysqli_free_result() function, when transfering large result sets using the mysqli_store_result() this becomes particularly important.

Poznámka: mysqli_store_result() returns FALSE in case the query didn't return a result set (if the query was, for example an INSERT statement). This function also returns FALSE if the reading of the result set failed. You can check if you have got an error by checking if mysqli_error() doesn't return an empty string, if mysqli_errno() returns a non zero value, or if mysqli_field_count() returns a non zero value. Also possible reason for this function returning FALSE after successfull call to mysqli_query() can be too large result set (memory for it cannot be allocated). If mysqli_field_count() returns a non-zero value, the statement should have produced a non-empty result set.

Return values

Returns a buffered result object or FALSE if an error occured.

See also

mysqli_real_query(), mysqli_use_result().

Example

See mysqli_multi_query().

Předcházející | Domů | Další
mysqli_stmt_store_result | Nahoru | mysqli_thread_id


mysqli_thread_id

(PHP 5)

mysqli_thread_id

(no version information, might be only in CVS)

mysqli->thread_id -- Returns the thread ID for the current connection

Description

Procedural style:

int mysqli_thread_id ( object link)

Object oriented style (property):

class mysqli {

int thread_id

}

The mysqli_thread_id() function returns the thread ID for the current connection which can then be killed using the mysqli_kill() function. If the connection is lost and you reconnect with mysqli_ping(), the thread ID will be other. Therefore you should get the thread ID only when you need it.

Poznámka: The thread ID is assigned on a connection-by-connection basis. Hence, if the connection is broken and then re-established a new thread ID will be assigned.

To kill a running query you can use the SQL command KILL QUERY processid].

Return values

mysqli_thread_id() returns the Thread ID for the current connection.

See also

mysqli_kill()

Example

Příklad 1. Object oriented style

<?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();
}

/* determine our thread id */
$thread_id = $mysqli->thread_id;

/* Kill connection */
$mysqli->kill($thread_id);

/* This should produce an error */
if (!$mysqli->query("CREATE TABLE myCity LIKE City")) {
    printf("Error: %s\n", $mysqli->error);
    exit;
}

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?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();
}

/* determine our thread id */
$thread_id = mysqli_thread_id($link);

/* Kill connection */
mysqli_kill($link, $thread_id);

/* This should produce an error */
if (!mysqli_query($link, "CREATE TABLE myCity LIKE City")) {
    printf("Error: %s\n", mysqli_error($link));
    exit;
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Error: MySQL server has gone away

Předcházející | Domů | Další
mysqli_store_result | Nahoru | mysqli_thread_safe


mysqli_thread_safe

(PHP 5)

mysqli_thread_safe -- Returns whether thread safety is given or not

Description

Procedural style:

bool mysqli_thread_safe ( void )

mysqli_thread_safe() indicates whether the client library is compiled as thread-safe.

Return values

TRUE if the client library is thread-safe, otherwise FALSE.

Předcházející | Domů | Další
mysqli_thread_id | Nahoru | mysqli_use_result


mysqli_use_result

(PHP 5)

mysqli_use_result

(no version information, might be only in CVS)

mysqli->use_result -- Initiate a result set retrieval

Description

Procedural style:

mixed mysqli_use_result ( object link)

Object oriented style (method):

class mysqli {

mixed use_result ( void )

}

mysqli_use_result() is used to initiate the retrieval of a result set from the last query executed using the mysqli_real_query() function on the database connection specified by the link parameter. Either this or the mysqli_store_result() function must be called before the results of a query can be retrieved, and one or the other must be called to prevent the next query on that database connection from failing.

Poznámka: The mysqli_use_result() function does not transfer the entire result set from the database and hence cannot be used functions such as mysqli_data_seek() to move to a particular row within the set. To use this functionality, the result set must be stored using mysqli_store_result(). One should not use mysqli_use_result() if a lot of processing on the client side is performed, since this will tie up the server and prevent other threads from updating any tables from which the data is being fetched.

Return values

Returns an unbuffered result object or FALSE if an error occured.

See also

mysqli_real_query(), mysqli_store_result().

Example

Příklad 1. Object oriented style

<?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();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* execute multi query */
if ($mysqli->multi_query($query)) {
    do {
        /* store first result set */
        if ($result = $mysqli->use_result()) {
            while ($row = $result->fetch_row()) {
                printf("%s\n", $row[0]);
            }
            $result->close();
        }
        /* print divider */
        if ($mysqli->more_results()) {
            printf("-----------------\n");
        }
    } while ($mysqli->next_result());
}

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?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();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* execute multi query */
if (mysqli_multi_query($link, $query)) {
    do {
        /* store first result set */
        if ($result = mysqli_use_result($link)) {
            while ($row = mysqli_fetch_row($result)) {
                printf("%s\n", $row[0]);
            }
            mysqli_free_result($result);
        }
        /* print divider */
        if (mysqli_more_results($link)) {
            printf("-----------------\n");
        }
    } while (mysqli_next_result($link));
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

my_user@localhost
-----------------
Amersfoort
Maastricht
Dordrecht
Leiden
Haarlemmermeer

Předcházející | Domů | Další
mysqli_thread_safe | Nahoru | mysqli_warning_count


mysqli_warning_count

(PHP 5)

mysqli_warning_count

(no version information, might be only in CVS)

mysqli->warning_count -- Returns the number of warnings from the last query for the given link

Description

Procedural style:

int mysqli_warning_count ( object link)

Object oriented style (property):

class mysqli {

int warning_count

}

mysqli_warning_count() returns the number of warnings from the last query in the connection represented by the link parameter.

Poznámka: For retrieving warning messages you can use the SQL command SHOW WARNINGS [limit row_count].

Return values

Number of warnings or zero if there are no warnings.

See also

mysqli_errno(),
mysqli_error(),
mysqli_sqlstate()

Example

Příklad 1. Object oriented style

<?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();
}

$mysqli->query("CREATE TABLE myCity LIKE City");

/* a remarkable city in Wales */
$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();
    }
}

/* close connection */
$mysqli->close();
?>

Příklad 2. Procedural style

<?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();
}

mysqli_query($link, "CREATE TABLE myCity LIKE City");

/* a remarkable long city name in Wales */
$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);
    }
}

/* close connection */
mysqli_close($link);
?>

The above examples would produce the following output:

Warning (1264): Data truncated for column 'Name' at row 1

Předcházející | Domů | Další
mysqli_use_result | Nahoru | Mohawk Software Session Handler Functions


Mohawk Software Session Handler Functions

Manuál PHP
Předcházející Další

LXVI. Mohawk Software Session Handler Functions

Úvod

msession is an interface to a high speed session daemon which can run either locally or remotely. It is designed to provide consistent session management for a PHP web farm. More Information about msession and the session server software itself can be found at http://devel.mohawksoft.com/msession.html.

Poznámka: Toto rozšíření není k dispozici na platformách Windows.

Požadavky

Instalace

To enable Msession support configure PHP --with-msession[=DIR], where DIR is the Msession install directory.

Konfigurace běhu

Typy prostředků

Předdefinované konstanty

Obsah
msession_connect -- Connect to msession server
msession_count -- Get session count
msession_create -- Create a session
msession_destroy -- Destroy a session
msession_disconnect -- Close connection to msession server
msession_find -- Find value
msession_get_array -- Get array of ... ?
msession_get -- Get value from session
msession_getdata -- Get data ... ?
msession_inc -- Increment value in session
msession_list -- List ... ?
msession_listvar -- List sessions with variable
msession_lock -- Lock a session
msession_plugin -- Call an escape function within the msession personality plugin
msession_randstr -- Get random string
msession_set_array -- Set array of ...
msession_set -- Set value in session
msession_setdata -- Set data ... ?
msession_timeout -- Set/get session timeout
msession_uniq -- Get uniq id
msession_unlock -- Unlock a session

Předcházející | Domů | Další
mysqli_warning_count | Nahoru | msession_connect


msession_connect

(PHP 4 >= 4.2.0, PHP 5)

msession_connect -- Connect to msession server

Description

bool msession_connect ( string host, string port)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
Mohawk Software Session Handler Functions | Nahoru | msession_count


msession_count

(PHP 4 >= 4.2.0, PHP 5)

msession_count -- Get session count

Description

int msession_count ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
msession_connect | Nahoru | msession_create


msession_create

(PHP 4 >= 4.2.0, PHP 5)

msession_create -- Create a session

Description

bool msession_create ( string session)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
msession_count | Nahoru | msession_destroy


msession_destroy

(PHP 4 >= 4.2.0, PHP 5)

msession_destroy -- Destroy a session

Description

bool msession_destroy ( string name)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
msession_create | Nahoru | msession_disconnect


msession_disconnect

(PHP 4 >= 4.2.0, PHP 5)

msession_disconnect -- Close connection to msession server

Description

void msession_disconnect ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
msession_destroy | Nahoru | msession_find


msession_find

(PHP 4 >= 4.2.0, PHP 5)

msession_find -- Find value

Description

array msession_find ( string name, string value)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
msession_disconnect | Nahoru | msession_get_array


msession_get_array

(PHP 4 >= 4.2.0, PHP 5)

msession_get_array -- Get array of ... ?

Description

array msession_get_array ( string session)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
msession_find | Nahoru | msession_get


msession_get

(PHP 4 >= 4.2.0, PHP 5)

msession_get -- Get value from session

Description

string msession_get ( string session, string name, string value)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
msession_get_array | Nahoru | msession_getdata


msession_getdata

(no version information, might be only in CVS)

msession_getdata -- Get data ... ?

Description

string msession_getdata ( string session)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
msession_get | Nahoru | msession_inc


msession_inc

(PHP 4 >= 4.2.0, PHP 5)

msession_inc -- Increment value in session

Description

string msession_inc ( string session, string name)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
msession_getdata | Nahoru | msession_list


msession_list

(PHP 4 >= 4.2.0, PHP 5)

msession_list -- List ... ?

Description

array msession_list ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
msession_inc | Nahoru | msession_listvar


msession_listvar

(PHP 4 >= 4.2.0, PHP 5)

msession_listvar -- List sessions with variable

Description

array msession_listvar ( string name)

Returns an associative array of value/session for all sessions with a variable named name.

Used for searching sessions with common attributes.

Předcházející | Domů | Další
msession_list | Nahoru | msession_lock


msession_lock

(PHP 4 >= 4.2.0, PHP 5)

msession_lock -- Lock a session

Description

int msession_lock ( string name)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
msession_listvar | Nahoru | msession_plugin


msession_plugin

(PHP 4 >= 4.2.0, PHP 5)

msession_plugin -- Call an escape function within the msession personality plugin

Description

string msession_plugin ( string session, string val [, string param])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
msession_lock | Nahoru | msession_randstr


msession_randstr

(PHP 4 >= 4.2.0, PHP 5)

msession_randstr -- Get random string

Description

string msession_randstr ( int param)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
msession_plugin | Nahoru | msession_set_array


msession_set_array

(PHP 4 >= 4.2.0, PHP 5)

msession_set_array -- Set array of ...

Description

bool msession_set_array ( string session, array tuples)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
msession_randstr | Nahoru | msession_set


msession_set

(PHP 4 >= 4.2.0, PHP 5)

msession_set -- Set value in session

Description

bool msession_set ( string session, string name, string value)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
msession_set_array | Nahoru | msession_setdata


msession_setdata

(no version information, might be only in CVS)

msession_setdata -- Set data ... ?

Description

bool msession_setdata ( string session, string value)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
msession_set | Nahoru | msession_timeout


msession_timeout

(PHP 4 >= 4.2.0, PHP 5)

msession_timeout -- Set/get session timeout

Description

int msession_timeout ( string session [, int param])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
msession_setdata | Nahoru | msession_uniq


msession_uniq

(PHP 4 >= 4.2.0, PHP 5)

msession_uniq -- Get uniq id

Description

string msession_uniq ( int param)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
msession_timeout | Nahoru | msession_unlock


msession_unlock

(PHP 4 >= 4.2.0, PHP 5)

msession_unlock -- Unlock a session

Description

int msession_unlock ( string session, int key)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
msession_uniq | Nahoru | muscat Functions


muscat Functions

Manuál PHP
Předcházející Další

LXVII. muscat Functions

Úvod

Varování

Toto rozšíření je EXPERIMENTÁLNÍ. Chování tohoto rozšíření, názvy funkcí a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může bez ohlášení změnit. Berte to v úvahu a používejte tento modul na vlastní nebezpečí.

Instalace

These functions are only available if PHP was configured with --with-muscat[=DIR].

Obsah
muscat_close -- Shuts down the muscat session and releases any memory back to PHP.
muscat_get -- Gets a line back from the core muscat API.
muscat_give -- Sends string to the core muscat API
muscat_setup_net -- Creates a new muscat session and returns the handle.
muscat_setup -- Creates a new muscat session and returns the handle.

Předcházející | Domů | Další
msession_unlock | Nahoru | muscat_close


muscat_close

(4.0.5 - 4.2.3 only)

muscat_close -- Shuts down the muscat session and releases any memory back to PHP.

Description

int muscat_close ( resource muscat_handle)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

[Not back to the system, note!]

Předcházející | Domů | Další
muscat Functions | Nahoru | muscat_get


muscat_get

(4.0.5 - 4.2.3 only)

muscat_get -- Gets a line back from the core muscat API.

Description

string muscat_get ( resource muscat_handle)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Varování

Tato funkce může vracet booleovskou hodnotu FALSE, ale také nebooleovskou hodnotu odpovídající ohodnocení FALSE, například 0 nebo "". Čtěte prosím sekci o typu Boolean, kde najdete více informací. Pro testování návratové hodnoty této funkce použijte operátor ===.

Předcházející | Domů | Další
muscat_close | Nahoru | muscat_give


muscat_give

(4.0.5 - 4.2.3 only)

muscat_give -- Sends string to the core muscat API

Description

int muscat_give ( resource muscat_handle, string string)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
muscat_get | Nahoru | muscat_setup_net


muscat_setup_net

(4.0.5 - 4.2.3 only)

muscat_setup_net -- Creates a new muscat session and returns the handle.

Description

resource muscat_setup_net ( string muscat_host, int port)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

muscat_setup_net() creates a new muscat session and returns the handle.

muscat_host is the hostname to connect to. port is the port number to connect to.

Předcházející | Domů | Další
muscat_give | Nahoru | muscat_setup


muscat_setup

(4.0.5 - 4.2.3 only)

muscat_setup -- Creates a new muscat session and returns the handle.

Description

resource muscat_setup ( int size [, string muscat_dir])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

size is the amount of memory in bytes to allocate for muscat. muscat_dir is the muscat installation dir e.g. "/usr/local/empower", it defaults to the compile time muscat directory.

Předcházející | Domů | Další
muscat_setup_net | Nahoru | Síťové funkce


Síťové funkce

Manuál PHP
Předcházející Další

LXVIII. Síťové funkce

Úvod

Požadavky

Tyto funkce jsou k dispozici jako součást standardního modulu, který je vždy dostupný.

Instalace

K používání těchto funkcí není třeba žádná instalace, jsou součástí jádra PHP.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 1. Síť - konfigurační volby

Název | Výchozí hodnota | Lze změnit v
define_syslog_variables | "0" | PHP_INI_ALL
Bližší informace o PHP_INI_* konstantách naleznete v části ini_set().

Zde je stručné vysvětlení konfiguračních direktiv.

define_syslog_variables boolean

Určuje, zda definovat různé proměnné funkce syslog (např. $LOG_PID, $LOG_CRON, atd.). Vypnutí těchto proměnných je užitečné pro výkonnost. Za běhu můžete tyto proměnné definovat funkcí define_syslog_variables().

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Konstanty z tohoto seznamu jsou vždy dostupné jako součást jádra PHP.

Tabulka 2. openlog() - parametr option

Konstanta | Popis
LOG_CONS | pokud nastane chyba při zápisu do systémového logu, zapíše přímo na systémovou konzoli
LOG_NDELAY | otevřít připojení k loggeru ihned
LOG_ODELAY | (výchozí) vyčkat s otevřením spojení do prvního záznamu
LOG_NOWAIT |
LOG_PERROR | vypsat zprávy logu také na chybový výstup
LOG_PID | ke každé zprávě přidat PID

Tabulka 3. openlog() - parametr facility

Konstanta | Popis
LOG_AUTH | bezpečnostní/autorizační zprávy (na systémech, kde je definována konstanta LOG_AUTHPRIV, použijte raději tu)
LOG_AUTHPRIV | bezpečnostní/autorizační zprávy (soukromé)
LOG_CRON | clock daemon (cron a at)
LOG_DAEMON | jiné systémové daemony
LOG_KERN | zprávy kernelu
LOG_LOCAL0 ... LOG_LOCAL7 | vyhrazeno pro místní použití, nejsou k dispozici pod Windows
LOG_LPR | subsystém tiskárny
LOG_MAIL | subsystém e-mailu
LOG_NEWS | subsystém USENET news
LOG_SYSLOG | zprávy interně generované daemonem syslogd
LOG_USER | obecné zprávy na uživatelské úrovni
LOG_UUCP | subsystém UUCP

Tabulka 4. syslog() - parametr priority

Konstanta | Popis
LOG_EMERG | systém je nepoužitelný
LOG_ALERT | zásah musí proběhnout ihned
LOG_CRIT | kritické okolnosti
LOG_ERR | chybové okolnosti
LOG_WARNING | varovné okolnosti
LOG_NOTICE | normální, ale důležité okolnosti
LOG_INFO | informační zpráva
LOG_DEBUG | ladící zpráva

Tabulka 5. dns_get_record() - parametr option

Konstanta | Popis
DNS_A | IPv4 Address Resource
DNS_MX | Mail Exchanger Resource
DNS_CNAME | Alias (Canonical Name) Resource
DNS_NS | Authoritative Name Server Resource
DNS_PTR | Pointer Resource
DNS_HINFO | Host Info Resource (Viz odkaz organizace IANA Operating System Names pro význam těchto hodnot
DNS_SOA | Start of Authority Resource
DNS_TXT | Text Resource
DNS_ANY | Any Resource Record. Na většině systémů vrátí všechny záznamy, ale mělo by se používat pouze za krizových okolností. Raději použijte DNS_ALL.
DNS_AAAA | IPv6 Address Resource
DNS_ALL | Postupně se dotáže name-serveru na všechny dostupné typy záznamů.
Obsah
checkdnsrr -- Ověří DNS záznamy odpovídající danému názvu počítače na Internetu nebo jeho IP adrese.
closelog -- Zavře spojení do systémového protokolu
debugger_off -- Vypne vnitřní PHP debugger
debugger_on -- Zapne vnitřní PHP debugger
define_syslog_variables -- Inicializuje všechny konstanty související se systémovým protokolem
dns_check_record -- Synonym for checkdnsrr()
dns_get_mx -- Synonym for getmxrr()
dns_get_record -- Fetch DNS Resource Records associated with a hostname
fsockopen -- Otevře socketové spojení v internetové nebo unixové doméně.
gethostbyaddr -- Vrací intertnetové jméno počítače, odpovídající dané IP adrese
gethostbyname -- Vrací IP adresu odpovídající danému internetovému jménu počítače
gethostbynamel -- Vracé seznam IP adres odpovídajících danému internetovému jménu počítače
getmxrr -- Vrací MX záznamy odpovídající dané internetové jmenné adrese
getprotobyname -- Vrací číslo protokolu podle názvu tohoto protokolu
getprotobynumber -- Vrací název protokolu podle čísla tohoto protokolu
getservbyname -- Vrací číslo portu podle internetové služby a protokolu
getservbyport -- Vrací internetovou službu odpovídající specifikovanému portu a protokolu
ip2long -- Převede řetězec obsahující internetovou (IPv4) adresu v tečkové notaci na odpovídající adresu.
long2ip -- Převede internetovou (IPv4) adresu na řetězec ve standardním tečkovém formátu
openlog -- Otevře spojení do systémového protokolu
pfsockopen -- Otevře perzistentní (přetrvávající) socketové spojení v internetové nebo unixové doméně
socket_get_status -- Vrací informace o existujícím socketovém proudu
socket_set_blocking -- Nastavuje blokující/neblokující režim socketu
socket_set_timeout -- Nastaví časový limit (timeout) socketu
syslog -- Vygeneruje zprávu do systémového protokolu

Předcházející | Domů | Další
muscat_setup | Nahoru | checkdnsrr


checkdnsrr

(PHP 3, PHP 4 , PHP 5)

checkdnsrr -- Ověří DNS záznamy odpovídající danému názvu počítače na Internetu nebo jeho IP adrese.

Popis

int checkdnsrr ( string host [, string type])

Prohledá DNS na záznamy typu type, odpovídající názvu host. Vrací TRUE, pokud najde nějaké záznamy a FALSE, pokud nic nenajde nebo nastane chyba.

type může být jeden z těchto: A, MX, NS, SOA, PTR, CNAME, or ANY. Implicitní je MX.

Host může být jak IP adresa (v "tečkové" notaci), tak název stroje.

Poznámka: Tato funkce není implementována na platformách Windows.

Viz také getmxrr(),
gethostbyaddr(),
gethostbyname(),
gethostbynamel(), a manuálovou stránku named(8).

Předcházející | Domů | Další
Síťové funkce | Nahoru | closelog


closelog

(PHP 3, PHP 4 , PHP 5)

closelog -- Zavře spojení do systémového protokolu

Popis

int closelog ( void )

closelog() zavře deskriptor použitý k zápisu do systémového protokolu. Použití closelog() je nepovinné.

Viz také define_syslog_variables(),
syslog() a
openlog().

Předcházející | Domů | Další
checkdnsrr | Nahoru | debugger_off


debugger_off

(PHP 3)

debugger_off -- Vypne vnitřní PHP debugger

Popis

int debugger_off ( void )

Vypne vnitřní PHP debugger. Na debuggeru stále probíhá vývoj.

Předcházející | Domů | Další
closelog | Nahoru | debugger_on


debugger_on

(PHP 3)

debugger_on -- Zapne vnitřní PHP debugger

Popis

int debugger_on ( string address)

Zapne vnitřní PHP debugger s připojením na address. Na debuggeru stále probíhá vývoj.

Předcházející | Domů | Další
debugger_off | Nahoru | define_syslog_variables


define_syslog_variables

(PHP 3, PHP 4 , PHP 5)

define_syslog_variables -- Inicializuje všechny konstanty související se systémovým protokolem

Popis

void define_syslog_variables ( void )

Inicializuje všechny konstanty použité ve funkcích systémového protokolu.

Viz také openlog(),
syslog() a
closelog().

Předcházející | Domů | Další
debugger_on | Nahoru | dns_check_record


dns_check_record

(PHP 5)

dns_check_record -- Synonym for checkdnsrr()

Description

int dns_check_record ( string host [, string type])

Check DNS records corresponding to a given Internet host name or IP address

Předcházející | Domů | Další
define_syslog_variables | Nahoru | dns_get_mx


dns_get_mx

(PHP 5)

dns_get_mx -- Synonym for getmxrr()

Description

int dns_get_mx ( string hostname, array mxhosts [, array &weight])

Get MX records corresponding to a given Internet host name.

Předcházející | Domů | Další
dns_check_record | Nahoru | dns_get_record


dns_get_record

(PHP 5)

dns_get_record -- Fetch DNS Resource Records associated with a hostname

Description

array dns_get_record ( string hostname [, int type [, array &authns, array &addtl]])

Poznámka: This function is not implemented on Windows platforms. Try the PEAR class Net_DNS.

This function returns an array of associative arrays. Each associative array contains at minimum the following keys:

Tabulka 1. 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.

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.

By default, dns_get_record() will search for any resource records associated with hostname. To limit the query, specify the optional type parameter. type may be any one of the following: DNS_A, DNS_CNAME, DNS_HINFO, DNS_MX, DNS_NS, DNS_PTR, DNS_SOA, DNS_TXT, DNS_AAAA, DNS_SRV, DNS_NAPTR, DNS_ALL or DNS_ANY. The default is DNS_ANY.

Poznámka: 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.

The optional third and fourth arguments to this function, authns and addtl are passed by reference and, if given, will be populated with Resource Records for the Authoritative Name Servers, and any Additional Records respectively. See the example below.

Tabulka 2. 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.
SOA | mname: FQDN of the machine from which the resource records originated. rname: Email address of the administrative contain 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
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.

Poznámka: 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().

Příklad 1. Using dns_get_record()

<?php
$result = dns_get_record("php.net");
print_r($result);
?>

Produces output similar to the following:

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
        )

)

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 addtl which contains associate records. authns is returned as well containing a list of authoritative name servers.

Příklad 2. Using dns_get_record() and DNS_ANY

<?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);
?>

Produces output similar to the following:

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
        )

)

See also dns_get_mx(), and dns_check_record()

Předcházející | Domů | Další
dns_get_mx | Nahoru | fsockopen


fsockopen

(PHP 3, PHP 4 , PHP 5)

fsockopen -- Otevře socketové spojení v internetové nebo unixové doméně.

Popis

int fsockopen ( string hostname, int port [, int errno [, string errstr [, float timeout]]])

Iniciuje proudové spojení v internetové (AF_INET, za použití TCP nebo UDP) nebo unixové (AF_UNIX) doméně. Pro internetovou doménu otevře TCP kanál na stroj hostname na port port. hostname v takovém případě může být plně určené doménové jméno nebo IP adresa. Pro spojení UDP musíte explicitně specifikovat protokol předřazením 'udp://' před hostname. V unixové doméně se hostname použije jako cesta k socketu port se pak musí nastavit na 0. Nepovinný parametr timeout se může použít k nastavení time-outu pro systémové volání connect.

Od PHP 4.3.0, pokud jste PHP zkompilovali s podporou OpenSSL, můžete před hostname předřadit 'ssl://' nebo 'tls://' pro použití SSL nebo TSL spojení na vzdálený stroj přes TCP/IP.

fsockopen() vrací deskriptor souboru, který lze
použít s jinými souborovými funkcemi (např.
fgets(), fgetss(),
fputs(), fclose() a
feof()).

Pokud volání selže, vrací funkce FALSE, a pokud jsou přítomny nepovinné parametry errno a errstr, budou nastaveny na aktuální chybovou úroveň v systémovém volání connect(). Je-li vrácená hodnota v errno rovna 0 a funkce vrátila FALSE, znamená to, že chyba nastala před voláním connect(). Nejčastěji je to kvůli problému při inicializaci socketu. Uvědomte si, že argumenty errno a errstr se vždy předávají odkazem.

V závislosti na prostředí nemusí být k dispozici unixová doména nebo volitelný parametr timeout.

Socket se implicitně otevře v blokujícím režimu. Do neblokujícího režimu ho můžete přepnout použitím socket_set_blocking().

Příklad 1. fsockopen() Příklad

<?php
$fp = fsockopen ("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br>\n";
} else {
    fputs ($fp, "GET / HTTP/1.0\r\nHost: www.example.com\r\n\r\n");
    while (!feof($fp)) {
        echo fgets ($fp,128);
    }
    fclose ($fp);
}
?>
Další (níže uvedený) příklad ukazuje, jak získat datum a čas z UDP služby "daytime" (port 13) na vašem vlastním počítači.

Příklad 2. Použití UDP spojení

<?php
$fp = fsockopen("udp://127.0.0.1", 13, $errno, $errstr);
if (!$fp) {
    echo "CHYBA: $errno - $errstr<br>\n";
} else {
    fwrite($fp,"\n");
    echo fread($fp, 26);
    fclose($fp);
}
?>

Poznámka: Parametr timeout by zaveden v PHP 3.0.9 a podpora UDP v PHP 4.

Viz také pfsockopen(), socket_set_blocking(), socket_set_timeout(), fgets(), fgetss(), fputs(), fclose(), feof() a rozšíření Curl.

Předcházející | Domů | Další
dns_get_record | Nahoru | gethostbyaddr


gethostbyaddr

(PHP 3, PHP 4 , PHP 5)

gethostbyaddr -- Vrací intertnetové jméno počítače, odpovídající dané IP adrese

Popis

string gethostbyaddr ( string ip_address)

Vrací internetové doménové jméno počítače specifikované pomocí ip_address. Vyskytne-li se chyba, vrací ip_address.

Viz také gethostbyname().

Předcházející | Domů | Další
fsockopen | Nahoru | gethostbyname


gethostbyname

(PHP 3, PHP 4 , PHP 5)

gethostbyname -- Vrací IP adresu odpovídající danému internetovému jménu počítače

Popis

string gethostbyname ( string hostname)

Vrací IP adresu počítače v síti Internet specifikovaného pomocí hostname.

Viz také gethostbyaddr().

Předcházející | Domů | Další
gethostbyaddr | Nahoru | gethostbynamel


gethostbynamel

(PHP 3, PHP 4 , PHP 5)

gethostbynamel -- Vracé seznam IP adres odpovídajících danému internetovému jménu počítače

Popis

array gethostbynamel ( string hostname)

Vrací seznam IP adres, které odpovídají počítači v síti Internet specifikovanému pomocí hostname.

Viz také gethostbyname(),
gethostbyaddr(),
checkdnsrr(), getmxrr()
a manuálovou stránku named(8).

Předcházející | Domů | Další
gethostbyname | Nahoru | getmxrr


getmxrr

(PHP 3, PHP 4 , PHP 5)

getmxrr -- Vrací MX záznamy odpovídající dané internetové jmenné adrese

Popis

int getmxrr ( string hostname, array mxhosts [, array weight])

Prohledá DNS na MX záznamy odpovídající hodnotě hostname. Vrací TRUE, pokud najde nějaké záznamy; FALSE, nenajde-li nic nebo dojde k chybě.

Seznam MX záznamů je vrácen v poli mxhosts. Je-li specifikováno také pole weight, bude naplněno získanými informacemi o vahách jednotlivých Mail Exchangerů.

Viz také checkdnsrr(),
gethostbyname(),
gethostbynamel(),
gethostbyaddr() a manuálovou stránku
named(8).

Předcházející | Domů | Další
gethostbynamel | Nahoru | getprotobyname


getprotobyname

(PHP 4 , PHP 5)

getprotobyname -- Vrací číslo protokolu podle názvu tohoto protokolu

Popis

int getprotobyname ( string name)

getprotobyname() vrací číslo protokolu podle jeho názvu (parametr name), jak je specifikováno v /etc/protocols.

Viz také: getprotobynumber().

Předcházející | Domů | Další
getmxrr | Nahoru | getprotobynumber


getprotobynumber

(PHP 4 , PHP 5)

getprotobynumber -- Vrací název protokolu podle čísla tohoto protokolu

Popis

string getprotobynumber ( int number)

getprotobynumber() vrací název protokolu podle jeho čísla (parametr number), jak je specifikováno v /etc/protocols.

Viz také: getprotobyname().

Předcházející | Domů | Další
getprotobyname | Nahoru | getservbyname


getservbyname

(PHP 4 , PHP 5)

getservbyname -- Vrací číslo portu podle internetové služby a protokolu

Popis

int getservbyname ( string service, string protocol)

getservbyname() vrací internetový port, odpovídající službě service pro specifikovaný protokol (protocol). Vychází se ze souboru /etc/services, protocol je buď "tcp", nebo "udp" (malými písmeny).

Viz také: getservbyport().

Předcházející | Domů | Další
getprotobynumber | Nahoru | getservbyport


getservbyport

(PHP 4 , PHP 5)

getservbyport -- Vrací internetovou službu odpovídající specifikovanému portu a protokolu

Popis

string getservbyport ( int port, string protocol)

getservbyport() vrací internetovou službu podle parametrů port a protocol, jak je specifikována v /etc/services. protocol je "tcp" nebo "udp" (malými písmeny).

Viz také: getservbyname().

Předcházející | Domů | Další
getservbyname | Nahoru | ip2long


ip2long

(PHP 4 , PHP 5)

ip2long -- Převede řetězec obsahující internetovou (IPv4) adresu v tečkové notaci na odpovídající adresu.

Popis

int ip2long ( string ip_address)

Funkce ip2long() generuje síťovou IPv4 adresu ze standardního internetového formátu (čísla oddělená tečkami).

Příklad 1. ip2long() Příklad

<?php
$ip = gethostbyname("www.example.com");
$out = "Následující URL jsou ekvivalentní:<br>\n";
$out .= "http://www.example.com/, http://".$ip."/, and http://".sprintf("%u",ip2long($ip))."/<br>\n";
echo $out;
?>

Poznámka: Protože celé číslo (integer) v PHP obsahuje znaménko a mnoho IP adres vyjde jako záporné, musíte k získání správné (nezáporné) hodnoty použít funkce sprintf() nebo printf() vždy s formátovačem %u.

Tento druhý příklad ukazuje, jak tiskout zkonvertovanou adresu funkcí printf():

Příklad 2. Zobrazení IP adresy

<?php
$ip = gethostbyname("www.example.com");
printf("%u\n", ip2long($ip));
echo $out;
?>

Viz také: long2ip()

Předcházející | Domů | Další
getservbyport | Nahoru | long2ip


long2ip

(PHP 4 , PHP 5)

long2ip -- Převede internetovou (IPv4) adresu na řetězec ve standardním tečkovém formátu

Popis

string long2ip ( int proper_address)

Funkce long2ip() generuje internetovou adresu v tečkovém formátu (např. aaa.bbb.ccc.ddd) z číselné reprezentace adresy.

Viz také: ip2long()

Předcházející | Domů | Další
ip2long | Nahoru | openlog


openlog

(PHP 3, PHP 4 , PHP 5)

openlog -- Otevře spojení do systémového protokolu

Popis

int openlog ( string ident, int option, int facility)

openlog() otevře pro program spojení do systémového protokolu. Do každé zprávy se přidá řetězec ident. Hodnoty pro option a facility jsou uvedeny níže. Parametr option se používá k určení, které volby budou při generování zprávy použity. Argument facility specifikuje, jaký typ programu zaznamenává zprávu. To umožňuje specifikovat (v konfiguraci systémového protokolu na vašem počítači), jak budou zprávy přicházející z různých zdrojů obsluhovány. Použití openlog() není povinné. Volá se automaticky ze syslog() v případě potřeby; v takovém případě bude ident implicitně FALSE.

Tabulka 1. openlog() Volby

Konstanta | Popis
LOG_CONS | při chybě během posílání dat do protokolu zapisuj přímo na systémovou konzoli
LOG_NDELAY | ihned otevři spojení do protokolu
LOG_ODELAY | (implicitní) otevři spojení až v okamžiku zápisu první zprávy
LOG_PERROR | tiskni zprávy také na standardní chybový výstup (stderr)
LOG_PID | do každé zprávy přidej PID
Můžete použít jednu nebo více voleb. V případě použití více voleb je musíte spojit pomocí OR, tedy např. "otevři spojení ihned, zapisuj na konzoli a přidej PID" bude vypadat: LOG_CONS | LOG_NDELAY | LOG_PID

Tabulka 2. openlog() Charaktery

Konstanta | Popis
LOG_AUTH | bezpečnostní/autorizační zprávy (použijte raději LOG_AUTHPRIV na systémech, kde je tato konstanta definována)
LOG_AUTHPRIV | bezpečnostní/autorizační zprávy (soukromé)
LOG_CRON | časový démon (cron a at)
LOG_DAEMON | ostatní démoni systému
LOG_KERN | zprávy jádra
LOG_LOCAL0 ... LOG_LOCAL7 | vyhrazeno pro místní použití
LOG_LPR | subsystém tiskárny
LOG_MAIL | poštovní subsystém
LOG_NEWS | subsystém USENET news
LOG_SYSLOG | zprávy generované vnitřně démonem syslogd
LOG_USER | generické uživatelské zprávy
LOG_UUCP | subsystém UUCP

Viz také define_syslog_variables(),
syslog() a
closelog().

Předcházející | Domů | Další
long2ip | Nahoru | pfsockopen


pfsockopen

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

pfsockopen -- Otevře perzistentní (přetrvávající) socketové spojení v internetové nebo unixové doméně

Popis

int pfsockopen ( string hostname, int port [, int errno [, string errstr [, int timeout]]])

Tato funkce se chová naprosto stejně jako fsockopen(), s tím rozdílem, že spojení se po skončení skriptu neuzavře. Je to perzistentní verze fsockopen().

Předcházející | Domů | Další
openlog | Nahoru | socket_get_status


socket_get_status

(PHP 4 , PHP 5)

socket_get_status -- Vrací informace o existujícím socketovém proudu

Popis

array socket_get_status ( resource socketstream)

Vrací informace o existujícím socketovém streamu. Tato funkce pracuje pouze na socketu vytvořeném pomocí fsockopen(), pfsockopen() a síťových socketech vrácených funkcí fopen() s URL jako parametrem. NEFUNGUJE se sockety ze Socketového rozšíření. Ve výsledkovém poli v současné době vrací čtyři položky:

  • timed_out (bool) - Vypršel časový limit pro čekání na data

  • blocked (bool) - Socket byl zablokován

  • eof (bool) - Indikuje konec souboru (EOF)

  • unread_bytes (int) - Počet bytů zbývajících v bufferu socketu

Viz také: Socketové rozšíření.

Předcházející | Domů | Další
pfsockopen | Nahoru | socket_set_blocking


socket_set_blocking

(PHP 4 , PHP 5)

socket_set_blocking -- Nastavuje blokující/neblokující režim socketu

Popis

int socket_set_blocking ( int socket descriptor, int mode)

Pokud má mode hodnotu FALSE, příslušný deskriptor socketu se přepne do neblokujícího režimu; je-li TRUE, přepne se do blokujícího režimu. To má vliv na volání jako je fgets(), která čtou ze socketu. V neblokujícím režimu volání funkce fgets() vždy předává řízení zpět, zatímco v blokujícím režimu bude čekat na to, až budou na socketu dostupná data.

Tato funkce se dříve jmenovala set_socket_blocking(), ale tento název je nyní zavržený.

Předcházející | Domů | Další
socket_get_status | Nahoru | socket_set_timeout


socket_set_timeout

(PHP 4 , PHP 5)

socket_set_timeout -- Nastaví časový limit (timeout) socketu

Popis

bool socket_set_timeout ( int socket descriptor, int seconds, int microseconds)

Nastavuje velikost časového limitu socketu daného hodnotou socket descriptor, ve formě součtu sekund (seconds) a mikrosekund (microseconds).

Příklad 1. socket_set_timeout() Příklad

<?php
$fp = fsockopen("www.example.com", 80);
if(!$fp) {
    echo "Nelze otevřít\n";
} else {
    fputs($fp,"GET / HTTP/1.0\n\n");
    $start = time();
    socket_set_timeout($fp, 2);
    $res = fread($fp, 2000);
    var_dump(socket_get_status($fp));
    fclose($fp);
    print $res;
}
?>

Tato funkce se dříve jmenovala set_socket_timeout(), ale tento název je nyní zavržený.

Viz také: fsockopen() a fopen().

Předcházející | Domů | Další
socket_set_blocking | Nahoru | syslog


syslog

(PHP 3, PHP 4 , PHP 5)

syslog -- Vygeneruje zprávu do systémového protokolu

Popis

int syslog ( int priority, string message)

syslog() vygeneruje zprávu do protokolu, která se distribuuje prostřednictvím démona systémového protokolu. priority představuje kombinaci charakteru a úrovně zprávy; hodnoty popisuje následující sekce. Zbývající argument je zpráva, která se má odeslat. Dva znaky ve zprávě (%m) se však nahradí řetězcem chybové zprávy (strerror) odpovídající aktuální hodnotě errno.

Tabulka 1. syslog() Priority (v klesajícím pořádku)

Konstanta | Popis
LOG_EMERG | systém je nepoužitelný
LOG_ALERT | je nutný okamžitý zásah
LOG_CRIT | kritická situace
LOG_ERR | chyba
LOG_WARNING | varování
LOG_NOTICE | normální, avšak významná, zpráva
LOG_INFO | informativní zpráva
LOG_DEBUG | ladicí zpráva

Příklad 1. Použití syslog()

<?php
define_syslog_variables();
// otevře syslog, vloží ID procesu a odešle také na standardní chybový
// výstup; použije uživatelsky definovaný protokolovací mechanismus
openlog("myScripLog", LOG_PID | LOG_PERROR, LOG_LOCAL0);

// nějaký kód

if (authorized_client()) {
    // něco udělej
} else {
    // neautorizovaný klient!
    // zaznamenej pokus o přístup
    $access = date("Y/m/d H:i:s");
    syslog(LOG_WARNING,"Neautorizovaný klient: $access $REMOTE_ADDR ($HTTP_USER_AGENT)");
}

closelog();
?>
Více informací o nastavení uživatelské obsluhy protokolování -- viz unixovou manuálovou stránku syslog.conf(5). Více informací o možnostech a volbách mechanismu syslog najdete (na unixových strojích) v manuálových stránkách pro syslog(3).

Na Windows NT je služba syslog emulována pomocí služby Event Log.

Viz také define_syslog_variables(),
openlog() a
closelog().

Předcházející | Domů | Další
socket_set_timeout | Nahoru | Ncurses Terminal Screen Control Functions


Ncurses Terminal Screen Control Functions

Manuál PHP
Předcházející Další

LXIX. Ncurses Terminal Screen Control Functions

Úvod

ncurses (new curses) is a free software emulation of curses in System V Rel 4.0 (and above). It uses terminfo format, supports pads, colors, multiple highlights, form characters and function key mapping. Because of the interactive nature of this library, it will be of little use for writing Web applications, but may be useful when writing scripts meant using PHP from the command line.

Varování

Toto rozšíření je EXPERIMENTÁLNÍ. Chování tohoto rozšíření, názvy funkcí a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může bez ohlášení změnit. Berte to v úvahu a používejte tento modul na vlastní nebezpečí.

Ncurses is available for the following platforms:

  • AIX

  • BeOS

  • Cygwin

  • Digital Unix (aka OSF1)

  • FreeBSD

  • GNU/Linux

  • HPUX

  • IRIX

  • OS/2

  • SCO OpenServer

  • Solaris

  • SunOS

Požadavky

You need the ncurses libraries and headerfiles. Download the latest version from the ftp://ftp.gnu.org/pub/gnu/ncurses/ or from an other GNU-Mirror.

Instalace

To get these functions to work, you have to compile the CGI or CLI version of PHP with --with-ncurses[=DIR].

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 1. Ncurses configuration options

Name | Default | Changeable
ncurses.value | "42" | PHP_INI_ALL
ncurses.string | "foobar" | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

Error codes

On error ncurses functions return NCURSES_ERR.

Colors

Tabulka 2. ncurses color constants

constant | meaning
NCURSES_COLOR_BLACK | no color (black)
NCURSES_COLOR_WHITE | white
NCURSES_COLOR_RED | red - supported when terminal is in color mode
NCURSES_COLOR_GREEN | green - supported when terminal is in color mod
NCURSES_COLOR_YELLOW | yellow - supported when terminal is in color mod
NCURSES_COLOR_BLUE | blue - supported when terminal is in color mod
NCURSES_COLOR_CYAN | cyan - supported when terminal is in color mod
NCURSES_COLOR_MAGENTA | magenta - supported when terminal is in color mod

Keys

Tabulka 3. ncurses key constants

constant | meaning
NCURSES_KEY_F0 - NCURSES_KEY_F64 | function keys F1 - F64
NCURSES_KEY_DOWN | down arrow
NCURSES_KEY_UP | up arrow
NCURSES_KEY_LEFT | left arrow
NCURSES_KEY_RIGHT | right arrow
NCURSES_KEY_HOME | home key (upward+left arrow)
NCURSES_KEY_BACKSPACE | backspace
NCURSES_KEY_DL | delete line
NCURSES_KEY_IL | insert line
NCURSES_KEY_DC | delete character
NCURSES_KEY_IC | insert char or enter insert mode
NCURSES_KEY_EIC | exit insert char mode
NCURSES_KEY_CLEAR | clear screen
NCURSES_KEY_EOS | clear to end of screen
NCURSES_KEY_EOL | clear to end of line
NCURSES_KEY_SF | scroll one line forward
NCURSES_KEY_SR | scroll one line backward
NCURSES_KEY_NPAGE | next page
NCURSES_KEY_PPAGE | previous page
NCURSES_KEY_STAB | set tab
NCURSES_KEY_CTAB | clear tab
NCURSES_KEY_CATAB | clear all tabs
NCURSES_KEY_SRESET | soft (partial) reset
NCURSES_KEY_RESET | reset or hard reset
NCURSES_KEY_PRINT | print
NCURSES_KEY_LL | lower left
NCURSES_KEY_A1 | upper left of keypad
NCURSES_KEY_A3 | upper right of keypad
NCURSES_KEY_B2 | center of keypad
NCURSES_KEY_C1 | lower left of keypad
NCURSES_KEY_C3 | lower right of keypad
NCURSES_KEY_BTAB | back tab
NCURSES_KEY_BEG | beginning
NCURSES_KEY_CANCEL | cancel
NCURSES_KEY_CLOSE | close
NCURSES_KEY_COMMAND | cmd (command)
NCURSES_KEY_COPY | copy
NCURSES_KEY_CREATE | create
NCURSES_KEY_END | end
NCURSES_KEY_EXIT | exit
NCURSES_KEY_FIND | find
NCURSES_KEY_HELP | help
NCURSES_KEY_MARK | mark
NCURSES_KEY_MESSAGE | message
NCURSES_KEY_MOVE | move
NCURSES_KEY_NEXT | next
NCURSES_KEY_OPEN | open
NCURSES_KEY_OPTIONS | options
NCURSES_KEY_PREVIOUS | previous
NCURSES_KEY_REDO | redo
NCURSES_KEY_REFERENCE | ref (reference)
NCURSES_KEY_REFRESH | refresh
NCURSES_KEY_REPLACE | replace
NCURSES_KEY_RESTART | restart
NCURSES_KEY_RESUME | resume
NCURSES_KEY_SAVE | save
NCURSES_KEY_SBEG | shiftet beg (beginning)
NCURSES_KEY_SCANCEL | shifted cancel
NCURSES_KEY_SCOMMAND | shifted command
NCURSES_KEY_SCOPY | shifted copy
NCURSES_KEY_SCREATE | shifted create
NCURSES_KEY_SDC | shifted delete char
NCURSES_KEY_SDL | shifted delete line
NCURSES_KEY_SELECT | select
NCURSES_KEY_SEND | shifted end
NCURSES_KEY_SEOL | shifted end of line
NCURSES_KEY_SEXIT | shifted exit
NCURSES_KEY_SFIND | shifted find
NCURSES_KEY_SHELP | shifted help
NCURSES_KEY_SHOME | shifted home
NCURSES_KEY_SIC | shifted input
NCURSES_KEY_SLEFT | shifted left arrow
NCURSES_KEY_SMESSAGE | shifted message
NCURSES_KEY_SMOVE | shifted move
NCURSES_KEY_SNEXT | shifted next
NCURSES_KEY_SOPTIONS | shifted options
NCURSES_KEY_SPREVIOUS | shifted previous
NCURSES_KEY_SPRINT | shifted print
NCURSES_KEY_SREDO | shifted redo
NCURSES_KEY_SREPLACE | shifted replace
NCURSES_KEY_SRIGHT | shifted right arrow
NCURSES_KEY_SRSUME | shifted resume
NCURSES_KEY_SSAVE | shifted save
NCURSES_KEY_SSUSPEND | shifted suspend
NCURSES_KEY_UNDO | undo
NCURSES_KEY_MOUSE | mouse event has occurred
NCURSES_KEY_MAX | maximum key value

Mouse

Tabulka 4. mouse constants

Constant | meaning
NCURSES_BUTTON1_RELEASED - NCURSES_BUTTON4_RELEASED | button (1-4) released
NCURSES_BUTTON1_PRESSED - NCURSES_BUTTON4_PRESSED | button (1-4) pressed
NCURSES_BUTTON1_CLICKED - NCURSES_BUTTON4_CLICKED | button (1-4) clicked
NCURSES_BUTTON1_DOUBLE_CLICKED - NCURSES_BUTTON4_DOUBLE_CLICKED | button (1-4) double clicked
NCURSES_BUTTON1_TRIPLE_CLICKED - NCURSES_BUTTON4_TRIPLE_CLICKED | button (1-4) triple clicked
NCURSES_BUTTON_CTRL | ctrl pressed during click
NCURSES_BUTTON_SHIFT | shift pressed during click
NCURSES_BUTTON_ALT | alt pressed during click
NCURSES_ALL_MOUSE_EVENTS | report all mouse events
NCURSES_REPORT_MOUSE_POSITION | report mouse position
Obsah
ncurses_addch -- Add character at current position and advance cursor
ncurses_addchnstr -- Add attributed string with specified length at current position
ncurses_addchstr -- Add attributed string at current position
ncurses_addnstr -- Add string with specified length at current position
ncurses_addstr -- Output text at current position
ncurses_assume_default_colors -- Define default colors for color 0
ncurses_attroff -- Turn off the given attributes
ncurses_attron -- Turn on the given attributes
ncurses_attrset -- Set given attributes
ncurses_baudrate -- Returns baudrate of terminal
ncurses_beep -- Let the terminal beep
ncurses_bkgd -- Set background property for terminal screen
ncurses_bkgdset -- Control screen background
ncurses_border -- Draw a border around the screen using attributed characters
ncurses_bottom_panel -- Moves a visible panel to the bottom of the stack
ncurses_can_change_color -- Check if we can change terminals colors
ncurses_cbreak -- Switch of input buffering
ncurses_clear -- Clear screen
ncurses_clrtobot -- Clear screen from current position to bottom
ncurses_clrtoeol -- Clear screen from current position to end of line
ncurses_color_content -- Gets the RGB value for color
ncurses_color_set -- Set fore- and background color
ncurses_curs_set -- Set cursor state
ncurses_def_prog_mode -- Saves terminals (program) mode
ncurses_def_shell_mode -- Saves terminals (shell) mode
ncurses_define_key -- Define a keycode
ncurses_del_panel -- Remove panel from the stack and delete it (but not the associated window)
ncurses_delay_output -- Delay output on terminal using padding characters
ncurses_delch -- Delete character at current position, move rest of line left
ncurses_deleteln -- Delete line at current position, move rest of screen up
ncurses_delwin -- Delete a ncurses window
ncurses_doupdate -- Write all prepared refreshes to terminal
ncurses_echo -- Activate keyboard input echo
ncurses_echochar -- Single character output including refresh
ncurses_end -- Stop using ncurses, clean up the screen
ncurses_erase -- Erase terminal screen
ncurses_erasechar -- Returns current erase character
ncurses_filter --
ncurses_flash -- Flash terminal screen (visual bell)
ncurses_flushinp -- Flush keyboard input buffer
ncurses_getch -- Read a character from keyboard
ncurses_getmaxyx -- Returns the size of a window
ncurses_getmouse -- Reads mouse event
ncurses_getyx -- Returns the current cursor position for a window
ncurses_halfdelay -- Put terminal into halfdelay mode
ncurses_has_colors -- Check if terminal has colors
ncurses_has_ic -- Check for insert- and delete-capabilities
ncurses_has_il -- Check for line insert- and delete-capabilities
ncurses_has_key -- Check for presence of a function key on terminal keyboard
ncurses_hide_panel -- Remove panel from the stack, making it invisible
ncurses_hline -- Draw a horizontal line at current position using an attributed character and max. n characters long
ncurses_inch -- Get character and attribute at current position
ncurses_init_color -- Set new RGB value for color
ncurses_init_pair -- Allocate a color pair
ncurses_init -- Initialize ncurses
ncurses_insch -- Insert character moving rest of line including character at current position
ncurses_insdelln -- Insert lines before current line scrolling down (negative numbers delete and scroll up)
ncurses_insertln -- Insert a line, move rest of screen down
ncurses_insstr -- Insert string at current position, moving rest of line right
ncurses_instr -- Reads string from terminal screen
ncurses_isendwin -- Ncurses is in endwin mode, normal screen output may be performed
ncurses_keyok -- Enable or disable a keycode
ncurses_keypad -- Turns keypad on or off
ncurses_killchar -- Returns current line kill character
ncurses_longname -- Returns terminals description
ncurses_meta -- Enables/Disable 8-bit meta key information
ncurses_mouse_trafo -- Transforms coordinates
ncurses_mouseinterval -- Set timeout for mouse button clicks
ncurses_mousemask -- Sets mouse options
ncurses_move_panel -- Moves a panel so that its upper-left corner is at [startx, starty]
ncurses_move -- Move output position
ncurses_mvaddch -- Move current position and add character
ncurses_mvaddchnstr -- Move position and add attributed string with specified length
ncurses_mvaddchstr -- Move position and add attributed string
ncurses_mvaddnstr -- Move position and add string with specified length
ncurses_mvaddstr -- Move position and add string
ncurses_mvcur -- Move cursor immediately
ncurses_mvdelch -- Move position and delete character, shift rest of line left
ncurses_mvgetch -- Move position and get character at new position
ncurses_mvhline -- Set new position and draw a horizontal line using an attributed character and max. n characters long
ncurses_mvinch -- Move position and get attributed character at new position
ncurses_mvvline -- Set new position and draw a vertical line using an attributed character and max. n characters long
ncurses_mvwaddstr -- Add string at new position in window
ncurses_napms -- Sleep
ncurses_new_panel -- Create a new panel and associate it with window
ncurses_newpad -- Creates a new pad (window)
ncurses_newwin -- Create a new window
ncurses_nl -- Translate newline and carriage return / line feed
ncurses_nocbreak -- Switch terminal to cooked mode
ncurses_noecho -- Switch off keyboard input echo
ncurses_nonl -- Do not translate newline and carriage return / line feed
ncurses_noqiflush -- Do not flush on signal characters
ncurses_noraw -- Switch terminal out of raw mode
ncurses_pair_content -- Gets the RGB value for color
ncurses_panel_above -- Returns the panel above panel. If panel is null, returns the bottom panel in the stack
ncurses_panel_below -- Returns the panel below panel. If panel is null, returns the top panel in the stack
ncurses_panel_window -- Returns the window associated with panel
ncurses_pnoutrefresh -- Copies a region from a pad into the virtual screen
ncurses_prefresh -- Copies a region from a pad into the virtual screen
ncurses_putp --
ncurses_qiflush -- Flush on signal characters
ncurses_raw -- Switch terminal into raw mode
ncurses_refresh -- Refresh screen
ncurses_replace_panel -- Replaces the window associated with panel
ncurses_reset_prog_mode -- Resets the prog mode saved by def_prog_mode
ncurses_reset_shell_mode -- Resets the shell mode saved by def_shell_mode
ncurses_resetty -- Restores saved terminal state
ncurses_savetty -- Saves terminal state
ncurses_scr_dump -- Dump screen content to file
ncurses_scr_init -- Initialize screen from file dump
ncurses_scr_restore -- Restore screen from file dump
ncurses_scr_set -- Inherit screen from file dump
ncurses_scrl -- Scroll window content up or down without changing current position
ncurses_show_panel -- Places an invisible panel on top of the stack, making it visible
ncurses_slk_attr -- Returns current soft label key attribute
ncurses_slk_attroff --
ncurses_slk_attron --
ncurses_slk_attrset --
ncurses_slk_clear -- Clears soft labels from screen
ncurses_slk_color -- Sets color for soft label keys
ncurses_slk_init -- Initializes soft label key functions
ncurses_slk_noutrefresh -- Copies soft label keys to virtual screen
ncurses_slk_refresh -- Copies soft label keys to screen
ncurses_slk_restore -- Restores soft label keys
ncurses_slk_set -- Sets function key labels
ncurses_slk_touch -- Forces output when ncurses_slk_noutrefresh is performed
ncurses_standend -- Stop using 'standout' attribute
ncurses_standout -- Start using 'standout' attribute
ncurses_start_color -- Start using colors
ncurses_termattrs -- Returns a logical OR of all attribute flags supported by terminal
ncurses_termname -- Returns terminals (short)-name
ncurses_timeout -- Set timeout for special key sequences
ncurses_top_panel -- Moves a visible panel to the top of the stack
ncurses_typeahead -- Specify different filedescriptor for typeahead checking
ncurses_ungetch -- Put a character back into the input stream
ncurses_ungetmouse -- Pushes mouse event to queue
ncurses_update_panels -- Refreshes the virtual screen to reflect the relations between panels in the stack.
ncurses_use_default_colors -- Assign terminal default colors to color id -1
ncurses_use_env -- Control use of environment information about terminal size
ncurses_use_extended_names -- Control use of extended names in terminfo descriptions
ncurses_vidattr --
ncurses_vline -- Draw a vertical line at current position using an attributed character and max. n characters long
ncurses_waddch -- Adds character at current position in a window and advance cursor
ncurses_waddstr -- Outputs text at current postion in window
ncurses_wattroff -- Turns off attributes for a window
ncurses_wattron -- Turns on attributes for a window
ncurses_wattrset -- Set the attributes for a window
ncurses_wborder -- Draws a border around the window using attributed characters
ncurses_wclear -- Clears window
ncurses_wcolor_set -- Sets windows color pairings
ncurses_werase -- Erase window contents
ncurses_wgetch -- Reads a character from keyboard (window)
ncurses_whline -- Draws a horizontal line in a window at current position using an attributed character and max. n characters long
ncurses_wmouse_trafo -- Transforms window/stdscr coordinates
ncurses_wmove -- Moves windows output position
ncurses_wnoutrefresh -- Copies window to virtual screen
ncurses_wrefresh -- Refresh window on terminal screen
ncurses_wstandend -- End standout mode for a window
ncurses_wstandout -- Enter standout mode for a window
ncurses_wvline -- Draws a vertical line in a window at current position using an attributed character and max. n characters long

Předcházející | Domů | Další
syslog | Nahoru | ncurses_addch


ncurses_addch

(PHP 4 >= 4.1.0, PHP 5)

ncurses_addch -- Add character at current position and advance cursor

Description

int ncurses_addch ( int ch)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
Ncurses Terminal Screen Control Functions | Nahoru | ncurses_addchnstr


ncurses_addchnstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_addchnstr -- Add attributed string with specified length at current position

Description

int ncurses_addchnstr ( string s, int n)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_addch | Nahoru | ncurses_addchstr


ncurses_addchstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_addchstr -- Add attributed string at current position

Description

int ncurses_addchstr ( string s)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_addchnstr | Nahoru | ncurses_addnstr


ncurses_addnstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_addnstr -- Add string with specified length at current position

Description

int ncurses_addnstr ( string s, int n)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_addchstr | Nahoru | ncurses_addstr


ncurses_addstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_addstr -- Output text at current position

Description

int ncurses_addstr ( string text)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_addnstr | Nahoru | ncurses_assume_default_colors


ncurses_assume_default_colors

(PHP 4 >= 4.2.0, PHP 5)

ncurses_assume_default_colors -- Define default colors for color 0

Description

int ncurses_assume_default_colors ( int fg, int bg)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_addstr | Nahoru | ncurses_attroff


ncurses_attroff

(PHP 4 >= 4.1.0, PHP 5)

ncurses_attroff -- Turn off the given attributes

Description

int ncurses_attroff ( int attributes)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_assume_default_colors | Nahoru | ncurses_attron


ncurses_attron

(PHP 4 >= 4.1.0, PHP 5)

ncurses_attron -- Turn on the given attributes

Description

int ncurses_attron ( int attributes)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_attroff | Nahoru | ncurses_attrset


ncurses_attrset

(PHP 4 >= 4.1.0, PHP 5)

ncurses_attrset -- Set given attributes

Description

int ncurses_attrset ( int attributes)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_attron | Nahoru | ncurses_baudrate


ncurses_baudrate

(PHP 4 >= 4.1.0, PHP 5)

ncurses_baudrate -- Returns baudrate of terminal

Description

int ncurses_baudrate ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_attrset | Nahoru | ncurses_beep


ncurses_beep

(PHP 4 >= 4.1.0, PHP 5)

ncurses_beep -- Let the terminal beep

Description

int ncurses_beep ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ncurses_beep() sends an audible alert (bell) and if its not possible flashes the screen. Vrací TRUE při úspěchu, FALSE při selhání.

See also ncurses_flash()

Předcházející | Domů | Další
ncurses_baudrate | Nahoru | ncurses_bkgd


ncurses_bkgd

(PHP 4 >= 4.1.0, PHP 5)

ncurses_bkgd -- Set background property for terminal screen

Description

int ncurses_bkgd ( int attrchar)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_beep | Nahoru | ncurses_bkgdset


ncurses_bkgdset

(PHP 4 >= 4.1.0, PHP 5)

ncurses_bkgdset -- Control screen background

Description

void ncurses_bkgdset ( int attrchar)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_bkgd | Nahoru | ncurses_border


ncurses_border

(PHP 4 >= 4.2.0, PHP 5)

ncurses_border -- Draw a border around the screen using attributed characters

Description

int ncurses_border ( int left, int right, int top, int bottom, int tl_corner, int tr_corner, int bl_corner, int br_corner)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ncurses_border() draws the specified lines and corners around the main window. Each parameter expects 0 to draw a line and 1 to skip it. The corners are top left, top right, bottom left and bottom right.

Use ncurses_wborder() for borders around subwindows!

See also ncurses_wborder().

Předcházející | Domů | Další
ncurses_bkgdset | Nahoru | ncurses_bottom_panel


ncurses_bottom_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_bottom_panel -- Moves a visible panel to the bottom of the stack

Description

int ncurses_bottom_panel ( resource panel)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_border | Nahoru | ncurses_can_change_color


ncurses_can_change_color

(PHP 4 >= 4.1.0, PHP 5)

ncurses_can_change_color -- Check if we can change terminals colors

Description

bool ncurses_can_change_color ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

The function ncurses_can_change_color() returns TRUE or FALSE, depending on whether the terminal has color capabilities and whether the programmer can change the colors.

Předcházející | Domů | Další
ncurses_bottom_panel | Nahoru | ncurses_cbreak


ncurses_cbreak

(PHP 4 >= 4.1.0, PHP 5)

ncurses_cbreak -- Switch of input buffering

Description

bool ncurses_cbreak ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ncurses_cbreak() disables line buffering and character processing (interrupt and flow control characters are unaffected), making characters typed by the user immediately available to the program.

ncurses_cbreak() returns TRUE or NCURSES_ERR if any error occurred.

See also: ncurses_nocbreak()

Předcházející | Domů | Další
ncurses_can_change_color | Nahoru | ncurses_clear


ncurses_clear

(PHP 4 >= 4.1.0, PHP 5)

ncurses_clear -- Clear screen

Description

bool ncurses_clear ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ncurses_clear() clears the screen completely without setting blanks. Vrací TRUE při úspěchu, FALSE při selhání.

Note: ncurses_clear() clears the screen without setting blanks, which have the current background rendition. To clear screen with blanks, use ncurses_erase().

See also ncurses_erase().

Předcházející | Domů | Další
ncurses_cbreak | Nahoru | ncurses_clrtobot


ncurses_clrtobot

(PHP 4 >= 4.1.0, PHP 5)

ncurses_clrtobot -- Clear screen from current position to bottom

Description

bool ncurses_clrtobot ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ncurses_clrtobot() erases all lines from cursor to end of screen and creates blanks. Blanks created by ncurses_clrtobot() have the current background rendition. Vrací TRUE při úspěchu, FALSE při selhání.

See also ncurses_clear(), and ncurses_clrtoeol()

Předcházející | Domů | Další
ncurses_clear | Nahoru | ncurses_clrtoeol


ncurses_clrtoeol

(PHP 4 >= 4.1.0, PHP 5)

ncurses_clrtoeol -- Clear screen from current position to end of line

Description

bool ncurses_clrtoeol ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ncurses_clrtoeol() erases the current line from cursor position to the end. Blanks created by ncurses_clrtoeol() have the current background rendition. Vrací TRUE při úspěchu, FALSE při selhání.

See also ncurses_clear(), and ncurses_clrtobot()

Předcházející | Domů | Další
ncurses_clrtobot | Nahoru | ncurses_color_content


ncurses_color_content

(PHP 4 >= 4.3.0, PHP 5)

ncurses_color_content -- Gets the RGB value for color

Description

int ncurses_color_content ( int color, int &r, int &g, int &b)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_clrtoeol | Nahoru | ncurses_color_set


ncurses_color_set

(PHP 4 >= 4.1.0, PHP 5)

ncurses_color_set -- Set fore- and background color

Description

int ncurses_color_set ( int pair)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_color_content | Nahoru | ncurses_curs_set


ncurses_curs_set

(PHP 4 >= 4.1.0, PHP 5)

ncurses_curs_set -- Set cursor state

Description

int ncurses_curs_set ( int visibility)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_color_set | Nahoru | ncurses_def_prog_mode


ncurses_def_prog_mode

(PHP 4 >= 4.1.0, PHP 5)

ncurses_def_prog_mode -- Saves terminals (program) mode

Description

bool ncurses_def_prog_mode ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ncurses_def_prog_mode() saves the current terminal modes for program (in curses) for use by ncurses_reset_prog_mode(). Returns FALSE on success, otherwise TRUE.

See also: ncurses_reset_prog_mode()

Předcházející | Domů | Další
ncurses_curs_set | Nahoru | ncurses_def_shell_mode


ncurses_def_shell_mode

(PHP 4 >= 4.1.0, PHP 5)

ncurses_def_shell_mode -- Saves terminals (shell) mode

Description

bool ncurses_def_shell_mode ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ncurses_def_shell_mode() saves the current terminal modes for shell (not in curses) for use by ncurses_reset_shell_mode(). Returns FALSE on success, otherwise TRUE.

See also: ncurses_reset_shell_mode()

Předcházející | Domů | Další
ncurses_def_prog_mode | Nahoru | ncurses_define_key


ncurses_define_key

(PHP 4 >= 4.2.0, PHP 5)

ncurses_define_key -- Define a keycode

Description

int ncurses_define_key ( string definition, int keycode)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_def_shell_mode | Nahoru | ncurses_del_panel


ncurses_del_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_del_panel -- Remove panel from the stack and delete it (but not the associated window)

Description

int ncurses_del_panel ( resource panel)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_define_key | Nahoru | ncurses_delay_output


ncurses_delay_output

(PHP 4 >= 4.1.0, PHP 5)

ncurses_delay_output -- Delay output on terminal using padding characters

Description

int ncurses_delay_output ( int milliseconds)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_del_panel | Nahoru | ncurses_delch


ncurses_delch

(PHP 4 >= 4.1.0, PHP 5)

ncurses_delch -- Delete character at current position, move rest of line left

Description

bool ncurses_delch ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ncurses_delch() deletes the character under the cursor. All characters to the right of the cursor on the same line are moved to the left one position and the last character on the line is filled with a blank. The cursor position does not change. Returns FALSE on success, otherwise TRUE.

See also: ncurses_deleteln()

Předcházející | Domů | Další
ncurses_delay_output | Nahoru | ncurses_deleteln


ncurses_deleteln

(PHP 4 >= 4.1.0, PHP 5)

ncurses_deleteln -- Delete line at current position, move rest of screen up

Description

bool ncurses_deleteln ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ncurses_deleteln() deletes the current line under cursorposition. All lines below the current line are moved up one line. The bottom line of window is cleared. Cursor position does not change. Returns FALSE on success, otherwise TRUE.

See also: ncurses_delch()

Předcházející | Domů | Další
ncurses_delch | Nahoru | ncurses_delwin


ncurses_delwin

(PHP 4 >= 4.1.0, PHP 5)

ncurses_delwin -- Delete a ncurses window

Description

int ncurses_delwin ( resource window)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_deleteln | Nahoru | ncurses_doupdate


ncurses_doupdate

(PHP 4 >= 4.1.0, PHP 5)

ncurses_doupdate -- Write all prepared refreshes to terminal

Description

bool ncurses_doupdate ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ncurses_doupdate()() compares the virtual screen to the physical screen and updates the physical screen. This way is more effective than using multiple refresh calls. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
ncurses_delwin | Nahoru | ncurses_echo


ncurses_echo

(PHP 4 >= 4.1.0, PHP 5)

ncurses_echo -- Activate keyboard input echo

Description

bool ncurses_echo ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ncurses_echo() enables echo mode. All characters typed by user are echoed by ncurses_getch(). Returns FALSE on success, TRUE if any error occurred.

To disable echo mode use ncurses_noecho().

Předcházející | Domů | Další
ncurses_doupdate | Nahoru | ncurses_echochar


ncurses_echochar

(PHP 4 >= 4.1.0, PHP 5)

ncurses_echochar -- Single character output including refresh

Description

int ncurses_echochar ( int character)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_echo | Nahoru | ncurses_end


ncurses_end

(PHP 4 >= 4.1.0, PHP 5)

ncurses_end -- Stop using ncurses, clean up the screen

Description

int ncurses_end ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_echochar | Nahoru | ncurses_erase


ncurses_erase

(PHP 4 >= 4.1.0, PHP 5)

ncurses_erase -- Erase terminal screen

Description

bool ncurses_erase ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ncurses_erase() fills the terminal screen with blanks. Created blanks have the current background rendition, set by ncurses_bkgd(). Vrací TRUE při úspěchu, FALSE při selhání.

See also ncurses_bkgd(), and ncurses_clear()

Předcházející | Domů | Další
ncurses_end | Nahoru | ncurses_erasechar


ncurses_erasechar

(PHP 4 >= 4.1.0, PHP 5)

ncurses_erasechar -- Returns current erase character

Description

string ncurses_erasechar ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ncurses_erasechar() returns the current erase char character.

See also: ncurses_killchar()

Předcházející | Domů | Další
ncurses_erase | Nahoru | ncurses_filter


ncurses_filter

(PHP 4 >= 4.1.0, PHP 5)

ncurses_filter --

Description

int ncurses_filter ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_erasechar | Nahoru | ncurses_flash


ncurses_flash

(PHP 4 >= 4.1.0, PHP 5)

ncurses_flash -- Flash terminal screen (visual bell)

Description

bool ncurses_flash ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ncurses_flash() flashes the screen, and if its not possible, sends an audible alert (bell). Returns FALSE on success, otherwise TRUE.

See also: ncurses_beep()

Předcházející | Domů | Další
ncurses_filter | Nahoru | ncurses_flushinp


ncurses_flushinp

(PHP 4 >= 4.1.0, PHP 5)

ncurses_flushinp -- Flush keyboard input buffer

Description

bool ncurses_flushinp ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

The ncurses_flushinp() throws away any typeahead that has been typed and has not yet been read by your program. Returns FALSE on success, otherwise TRUE.

Předcházející | Domů | Další
ncurses_flash | Nahoru | ncurses_getch


ncurses_getch

(PHP 4 >= 4.1.0, PHP 5)

ncurses_getch -- Read a character from keyboard

Description

int ncurses_getch ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_flushinp | Nahoru | ncurses_getmaxyx


ncurses_getmaxyx

(PHP 4 >= 4.3.0, PHP 5)

ncurses_getmaxyx -- Returns the size of a window

Description

void ncurses_getmaxyx ( resource window, int &y, int &x)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ncurses_getmaxyx() puts the horizontal and vertical size of the window window into the given variables &y and &x. Variables must be passed as reference, so they are updated when the user changes terminal size.

Předcházející | Domů | Další
ncurses_getch | Nahoru | ncurses_getmouse


ncurses_getmouse

(PHP 4 >= 4.2.0, PHP 5)

ncurses_getmouse -- Reads mouse event

Description

bool ncurses_getmouse ( array mevent)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ncurses_getmouse() reads mouse event out of queue. Function ncurses_getmouse() will return ;FALSE if a mouse event is actually visible in the given window, otherwise it will return TRUE. Event options will be delivered in parameter mevent, which has to be an array, passed by reference (see example below). On success an associative array with following keys will be delivered:

  • "id" : Id to distinguish multiple devices

  • "x" : screen relative x-position in character cells

  • "y" : screen relative y-position in character cells

  • "z" : currently not supported

  • "mmask" : Mouse action

Příklad 1. ncurses_getmouse() example

<?php
switch (ncurses_getch()){
  case NCURSES_KEY_MOUSE:
    if (!ncurses_getmouse(&$mevent)){
      if ($mevent["mmask"] & NCURSES_MOUSE_BUTTON1_PRESSED){
        $mouse_x = $mevent["x"]; // Save mouse position
        $mouse_y = $mevent["y"];
      }
    }
  break;

  default:
    /* .... */
}
?>

See also ncurses_ungetmouse()

Předcházející | Domů | Další
ncurses_getmaxyx | Nahoru | ncurses_getyx


ncurses_getyx

(PHP 4 >= 4.3.0, PHP 5)

ncurses_getyx -- Returns the current cursor position for a window

Description

void ncurses_getyx ( resource window, int &y, int &x)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_getmouse | Nahoru | ncurses_halfdelay


ncurses_halfdelay

(PHP 4 >= 4.1.0, PHP 5)

ncurses_halfdelay -- Put terminal into halfdelay mode

Description

int ncurses_halfdelay ( int tenth)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_getyx | Nahoru | ncurses_has_colors


ncurses_has_colors

(PHP 4 >= 4.1.0, PHP 5)

ncurses_has_colors -- Check if terminal has colors

Description

bool ncurses_has_colors ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ncurses_has_colors() returns TRUE or FALSE depending on whether the terminal has color capacities.

See also: ncurses_can_change_color()

Předcházející | Domů | Další
ncurses_halfdelay | Nahoru | ncurses_has_ic


ncurses_has_ic

(PHP 4 >= 4.1.0, PHP 5)

ncurses_has_ic -- Check for insert- and delete-capabilities

Description

bool ncurses_has_ic ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ncurses_has_ic() checks terminals insert- and delete capabilities. It returns TRUE when terminal has insert/delete-capabilities, otherwise FALSE.

See also: ncurses_has_il()

Předcházející | Domů | Další
ncurses_has_colors | Nahoru | ncurses_has_il


ncurses_has_il

(PHP 4 >= 4.1.0, PHP 5)

ncurses_has_il -- Check for line insert- and delete-capabilities

Description

bool ncurses_has_il ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ncurses_has_il() checks terminals insert- and delete-line-capabilities. It returns TRUE when terminal has insert/delete-line capabilities, otherwise FALSE

See also: ncurses_has_ic()

Předcházející | Domů | Další
ncurses_has_ic | Nahoru | ncurses_has_key


ncurses_has_key

(PHP 4 >= 4.1.0, PHP 5)

ncurses_has_key -- Check for presence of a function key on terminal keyboard

Description

int ncurses_has_key ( int keycode)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_has_il | Nahoru | ncurses_hide_panel


ncurses_hide_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_hide_panel -- Remove panel from the stack, making it invisible

Description

int ncurses_hide_panel ( resource panel)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_has_key | Nahoru | ncurses_hline


ncurses_hline

(PHP 4 >= 4.2.0, PHP 5)

ncurses_hline -- Draw a horizontal line at current position using an attributed character and max. n characters long

Description

int ncurses_hline ( int charattr, int n)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_hide_panel | Nahoru | ncurses_inch


ncurses_inch

(PHP 4 >= 4.1.0, PHP 5)

ncurses_inch -- Get character and attribute at current position

Description

string ncurses_inch ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ncurses_inch() returns the character from the current position.

Předcházející | Domů | Další
ncurses_hline | Nahoru | ncurses_init_color


ncurses_init_color

(PHP 4 >= 4.2.0, PHP 5)

ncurses_init_color -- Set new RGB value for color

Description

int ncurses_init_color ( int color, int r, int g, int b)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_inch | Nahoru | ncurses_init_pair


ncurses_init_pair

(PHP 4 >= 4.1.0, PHP 5)

ncurses_init_pair -- Allocate a color pair

Description

int ncurses_init_pair ( int pair, int fg, int bg)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_init_color | Nahoru | ncurses_init


ncurses_init

(PHP 4 >= 4.1.0, PHP 5)

ncurses_init -- Initialize ncurses

Description

int ncurses_init ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ncurses_init() initializes the ncurses interface and must be used before any other ncurses function.

Předcházející | Domů | Další
ncurses_init_pair | Nahoru | ncurses_insch


ncurses_insch

(PHP 4 >= 4.1.0, PHP 5)

ncurses_insch -- Insert character moving rest of line including character at current position

Description

int ncurses_insch ( int character)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_init | Nahoru | ncurses_insdelln


ncurses_insdelln

(PHP 4 >= 4.1.0, PHP 5)

ncurses_insdelln -- Insert lines before current line scrolling down (negative numbers delete and scroll up)

Description

int ncurses_insdelln ( int count)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_insch | Nahoru | ncurses_insertln


ncurses_insertln

(PHP 4 >= 4.1.0, PHP 5)

ncurses_insertln -- Insert a line, move rest of screen down

Description

bool ncurses_insertln ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ncurses_insertln() inserts a new line above the current line. The bottom line will be lost.

Předcházející | Domů | Další
ncurses_insdelln | Nahoru | ncurses_insstr


ncurses_insstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_insstr -- Insert string at current position, moving rest of line right

Description

int ncurses_insstr ( string text)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_insertln | Nahoru | ncurses_instr


ncurses_instr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_instr -- Reads string from terminal screen

Description

int ncurses_instr ( string buffer)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ncurses_instr() returns the number of characters read from the current character position until end of line. buffer contains the characters. Attributes are stripped from the characters.

Předcházející | Domů | Další
ncurses_insstr | Nahoru | ncurses_isendwin


ncurses_isendwin

(PHP 4 >= 4.1.0, PHP 5)

ncurses_isendwin -- Ncurses is in endwin mode, normal screen output may be performed

Description

bool ncurses_isendwin ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ncurses_isendwin() returns TRUE, if
ncurses_endwin() has been called without any
subsequent calls to ncurses_wrefresh(),
otherwise FALSE.

See also ncurses_endwin() and ncurses_wrefresh().

Předcházející | Domů | Další
ncurses_instr | Nahoru | ncurses_keyok


ncurses_keyok

(PHP 4 >= 4.2.0, PHP 5)

ncurses_keyok -- Enable or disable a keycode

Description

int ncurses_keyok ( int keycode, bool enable)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_isendwin | Nahoru | ncurses_keypad


ncurses_keypad

(PHP 4 >= 4.2.0, PHP 5)

ncurses_keypad -- Turns keypad on or off

Description

int ncurses_keypad ( resource window, bool bf)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_keyok | Nahoru | ncurses_killchar


ncurses_killchar

(PHP 4 >= 4.1.0, PHP 5)

ncurses_killchar -- Returns current line kill character

Description

bool ncurses_killchar ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ncurses_killchar() returns the current line kill character.

See also: ncurses_erasechar()

Předcházející | Domů | Další
ncurses_keypad | Nahoru | ncurses_longname


ncurses_longname

(PHP 4 >= 4.2.0, PHP 5)

ncurses_longname -- Returns terminals description

Description

string ncurses_longname ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ncurses_longname() returns a verbose description of the terminal. The description is truncated to 128 characters. On Error ncurses_longname() returns NULL.

See also: ncurses_termname()

Předcházející | Domů | Další
ncurses_killchar | Nahoru | ncurses_meta


ncurses_meta

(PHP 4 >= 4.3.0, PHP 5)

ncurses_meta -- Enables/Disable 8-bit meta key information

Description

long ncurses_meta ( resource window, bool 8bit)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_longname | Nahoru | ncurses_mouse_trafo


ncurses_mouse_trafo

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mouse_trafo -- Transforms coordinates

Description

bool ncurses_mouse_trafo ( int &y, int &x, bool toscreen)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_meta | Nahoru | ncurses_mouseinterval


ncurses_mouseinterval

(PHP 4 >= 4.1.0, PHP 5)

ncurses_mouseinterval -- Set timeout for mouse button clicks

Description

int ncurses_mouseinterval ( int milliseconds)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_mouse_trafo | Nahoru | ncurses_mousemask


ncurses_mousemask

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mousemask -- Sets mouse options

Description

int ncurses_mousemask ( int newmask, int oldmask)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Function ncurses_mousemask() will set mouse events to be reported. By default no mouse events will be reported. The function ncurses_mousemask() will return a mask to indicated which of the in parameter newmask specified mouse events can be reported. On complete failure, it returns 0. In parameter oldmask, which is passed by reference ncurses_mousemask() returns the previous value of mouse event mask. Mouse events are represented by NCURSES_KEY_MOUSE in the ncurses_wgetch() input stream. To read the event data and pop the event of of queue, call ncurses_getmouse().

As a side effect, setting a zero mousemask in newmask turns off the mouse pointer. Setting a non zero value turns mouse pointer on.

mouse mask options can be set with the following predefined constants:

  • NCURSES_BUTTON1_PRESSED

  • NCURSES_BUTTON1_RELEASED

  • NCURSES_BUTTON1_CLICKED

  • NCURSES_BUTTON1_DOUBLE_CLICKED

  • NCURSES_BUTTON1_TRIPLE_CLICKED

  • NCURSES_BUTTON2_PRESSED

  • NCURSES_BUTTON2_RELEASED

  • NCURSES_BUTTON2_CLICKED

  • NCURSES_BUTTON2_DOUBLE_CLICKED

  • NCURSES_BUTTON2_TRIPLE_CLICKED

  • NCURSES_BUTTON3_PRESSED

  • NCURSES_BUTTON3_RELEASED

  • NCURSES_BUTTON3_CLICKED

  • NCURSES_BUTTON3_DOUBLE_CLICKED

  • NCURSES_BUTTON3_TRIPLE_CLICKED

  • NCURSES_BUTTON4_PRESSED

  • NCURSES_BUTTON4_RELEASED

  • NCURSES_BUTTON4_CLICKED

  • NCURSES_BUTTON4_DOUBLE_CLICKED

  • NCURSES_BUTTON4_TRIPLE_CLICKED

  • NCURSES_BUTTON_SHIFT>

  • NCURSES_BUTTON_CTRL

  • NCURSES_BUTTON_ALT

  • NCURSES_ALL_MOUSE_EVENTS

  • NCURSES_REPORT_MOUSE_POSITION

Příklad 1. ncurses_mousemask() example

<?php
$newmask = NCURSES_BUTTON1_CLICKED + NCURSES_BUTTON1_RELEASED;
$mask = ncurses_mousemask($newmask, &$oldmask);
if ($mask & $newmask){
  printf ("All specified mouse options will be supported\n");
}
?>

See also ncurses_getmouse(),
ncurses_ungetmouse() and
ncurese_getch().

Předcházející | Domů | Další
ncurses_mouseinterval | Nahoru | ncurses_move_panel


ncurses_move_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_move_panel -- Moves a panel so that its upper-left corner is at [startx, starty]

Description

int ncurses_move_panel ( resource panel, int startx, int starty)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_mousemask | Nahoru | ncurses_move


ncurses_move

(PHP 4 >= 4.1.0, PHP 5)

ncurses_move -- Move output position

Description

int ncurses_move ( int y, int x)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_move_panel | Nahoru | ncurses_mvaddch


ncurses_mvaddch

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvaddch -- Move current position and add character

Description

int ncurses_mvaddch ( int y, int x, int c)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_move | Nahoru | ncurses_mvaddchnstr


ncurses_mvaddchnstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvaddchnstr -- Move position and add attributed string with specified length

Description

int ncurses_mvaddchnstr ( int y, int x, string s, int n)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_mvaddch | Nahoru | ncurses_mvaddchstr


ncurses_mvaddchstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvaddchstr -- Move position and add attributed string

Description

int ncurses_mvaddchstr ( int y, int x, string s)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_mvaddchnstr | Nahoru | ncurses_mvaddnstr


ncurses_mvaddnstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvaddnstr -- Move position and add string with specified length

Description

int ncurses_mvaddnstr ( int y, int x, string s, int n)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_mvaddchstr | Nahoru | ncurses_mvaddstr


ncurses_mvaddstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvaddstr -- Move position and add string

Description

int ncurses_mvaddstr ( int y, int x, string s)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_mvaddnstr | Nahoru | ncurses_mvcur


ncurses_mvcur

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvcur -- Move cursor immediately

Description

int ncurses_mvcur ( int old_y, int old_x, int new_y, int new_x)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_mvaddstr | Nahoru | ncurses_mvdelch


ncurses_mvdelch

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvdelch -- Move position and delete character, shift rest of line left

Description

int ncurses_mvdelch ( int y, int x)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_mvcur | Nahoru | ncurses_mvgetch


ncurses_mvgetch

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvgetch -- Move position and get character at new position

Description

int ncurses_mvgetch ( int y, int x)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_mvdelch | Nahoru | ncurses_mvhline


ncurses_mvhline

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvhline -- Set new position and draw a horizontal line using an attributed character and max. n characters long

Description

int ncurses_mvhline ( int y, int x, int attrchar, int n)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_mvgetch | Nahoru | ncurses_mvinch


ncurses_mvinch

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvinch -- Move position and get attributed character at new position

Description

int ncurses_mvinch ( int y, int x)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_mvhline | Nahoru | ncurses_mvvline


ncurses_mvvline

(no version information, might be only in CVS)

ncurses_mvvline -- Set new position and draw a vertical line using an attributed character and max. n characters long

Description

int ncurses_mvvline ( int y, int x, int attrchar, int n)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_mvinch | Nahoru | ncurses_mvwaddstr


ncurses_mvwaddstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvwaddstr -- Add string at new position in window

Description

int ncurses_mvwaddstr ( resource window, int y, int x, string text)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_mvvline | Nahoru | ncurses_napms


ncurses_napms

(PHP 4 >= 4.1.0, PHP 5)

ncurses_napms -- Sleep

Description

int ncurses_napms ( int milliseconds)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_mvwaddstr | Nahoru | ncurses_new_panel


ncurses_new_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_new_panel -- Create a new panel and associate it with window

Description

resource ncurses_new_panel ( resource window)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_napms | Nahoru | ncurses_newpad


ncurses_newpad

(PHP 4 >= 4.3.0, PHP 5)

ncurses_newpad -- Creates a new pad (window)

Description

resource ncurses_newpad ( int rows, int cols)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_new_panel | Nahoru | ncurses_newwin


ncurses_newwin

(PHP 4 >= 4.1.0, PHP 5)

ncurses_newwin -- Create a new window

Description

resource ncurses_newwin ( int rows, int cols, int y, int x)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ncurses_newwin() creates a new window to draw elements in. Windows can be positioned using x, y, rows and cols. When creating additional windows, remember to use ncurses_getmaxyx() to check for available space, as terminal size is individual and may vary. The return value is a resource ID used to differ between multiple windows.

Předcházející | Domů | Další
ncurses_newpad | Nahoru | ncurses_nl


ncurses_nl

(PHP 4 >= 4.1.0, PHP 5)

ncurses_nl -- Translate newline and carriage return / line feed

Description

bool ncurses_nl ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_newwin | Nahoru | ncurses_nocbreak


ncurses_nocbreak

(PHP 4 >= 4.1.0, PHP 5)

ncurses_nocbreak -- Switch terminal to cooked mode

Description

bool ncurses_nocbreak ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ncurses_nocbreak() routine returns terminal to normal (cooked) mode. Initially the terminal may or may not in cbreak mode as the mode is inherited. Therefore a program should call ncurses_cbreak() and ncurses_nocbreak() explicitly. Returns TRUE if any error occurred, otherwise FALSE.

See also: ncurses_cbreak()

Předcházející | Domů | Další
ncurses_nl | Nahoru | ncurses_noecho


ncurses_noecho

(PHP 4 >= 4.1.0, PHP 5)

ncurses_noecho -- Switch off keyboard input echo

Description

bool ncurses_noecho ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ncurses_noecho() prevents echoing of user typed characters. Returns TRUE if any error occurred, otherwise FALSE.

See also: ncurses_echo(), ncurses_getch()

Předcházející | Domů | Další
ncurses_nocbreak | Nahoru | ncurses_nonl


ncurses_nonl

(PHP 4 >= 4.1.0, PHP 5)

ncurses_nonl -- Do not translate newline and carriage return / line feed

Description

bool ncurses_nonl ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_noecho | Nahoru | ncurses_noqiflush


ncurses_noqiflush

(PHP 4 >= 4.1.0, PHP 5)

ncurses_noqiflush -- Do not flush on signal characters

Description

int ncurses_noqiflush ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_nonl | Nahoru | ncurses_noraw


ncurses_noraw

(PHP 4 >= 4.1.0, PHP 5)

ncurses_noraw -- Switch terminal out of raw mode

Description

bool ncurses_noraw ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ncurses_noraw() switches the terminal out of raw mode. Raw mode is similar to cbreak mode, in that characters typed are immediately passed through to the user program. The differences that are that in raw mode, the interrupt, quit, suspend and flow control characters are all passed through uninterpreted, instead of generating a signal. Returns TRUE if any error occurred, otherwise FALSE.

See also: ncurses_raw(),
ncurses_cbreak(),
ncurses_nocbreak()

Předcházející | Domů | Další
ncurses_noqiflush | Nahoru | ncurses_pair_content


ncurses_pair_content

(PHP 4 >= 4.3.0, PHP 5)

ncurses_pair_content -- Gets the RGB value for color

Description

int ncurses_pair_content ( int pair, int &f, int &b)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_noraw | Nahoru | ncurses_panel_above


ncurses_panel_above

(PHP 4 >= 4.3.0, PHP 5)

ncurses_panel_above -- Returns the panel above panel. If panel is null, returns the bottom panel in the stack

Description

int ncurses_panel_above ( resource panel)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_pair_content | Nahoru | ncurses_panel_below


ncurses_panel_below

(PHP 4 >= 4.3.0, PHP 5)

ncurses_panel_below -- Returns the panel below panel. If panel is null, returns the top panel in the stack

Description

int ncurses_panel_below ( resource panel)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_panel_above | Nahoru | ncurses_panel_window


ncurses_panel_window

(PHP 4 >= 4.3.0, PHP 5)

ncurses_panel_window -- Returns the window associated with panel

Description

int ncurses_panel_window ( resource panel)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_panel_below | Nahoru | ncurses_pnoutrefresh


ncurses_pnoutrefresh

(PHP 4 >= 4.3.0, PHP 5)

ncurses_pnoutrefresh -- Copies a region from a pad into the virtual screen

Description

int ncurses_pnoutrefresh ( resource pad, int pminrow, int pmincol, int sminrow, int smincol, int smaxrow, int smaxcol)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_panel_window | Nahoru | ncurses_prefresh


ncurses_prefresh

(PHP 4 >= 4.3.0, PHP 5)

ncurses_prefresh -- Copies a region from a pad into the virtual screen

Description

int ncurses_prefresh ( resource pad, int pminrow, int pmincol, int sminrow, int smincol, int smaxrow, int smaxcol)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_pnoutrefresh | Nahoru | ncurses_putp


ncurses_putp

(PHP 4 >= 4.2.0, PHP 5)

ncurses_putp --

Description

int ncurses_putp ( string text)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_prefresh | Nahoru | ncurses_qiflush


ncurses_qiflush

(PHP 4 >= 4.1.0, PHP 5)

ncurses_qiflush -- Flush on signal characters

Description

int ncurses_qiflush ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_putp | Nahoru | ncurses_raw


ncurses_raw

(PHP 4 >= 4.1.0, PHP 5)

ncurses_raw -- Switch terminal into raw mode

Description

bool ncurses_raw ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ncurses_raw() places the terminal in raw mode. Raw mode is similar to cbreak mode, in that characters typed are immediately passed through to the user program. The differences that are that in raw mode, the interrupt, quit, suspend and flow control characters are all passed through uninterpreted, instead of generating a signal. Returns TRUE if any error occurred, otherwise FALSE.

See also: ncurses_noraw(),
ncurses_cbreak(),
ncurses_nocbreak()

Předcházející | Domů | Další
ncurses_qiflush | Nahoru | ncurses_refresh


ncurses_refresh

(PHP 4 >= 4.1.0, PHP 5)

ncurses_refresh -- Refresh screen

Description

int ncurses_refresh ( int ch)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_raw | Nahoru | ncurses_replace_panel


ncurses_replace_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_replace_panel -- Replaces the window associated with panel

Description

int ncurses_replace_panel ( resource panel, resource window)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_refresh | Nahoru | ncurses_reset_prog_mode


ncurses_reset_prog_mode

(PHP 4 >= 4.3.0, PHP 5)

ncurses_reset_prog_mode -- Resets the prog mode saved by def_prog_mode

Description

int ncurses_reset_prog_mode ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_replace_panel | Nahoru | ncurses_reset_shell_mode


ncurses_reset_shell_mode

(PHP 4 >= 4.3.0, PHP 5)

ncurses_reset_shell_mode -- Resets the shell mode saved by def_shell_mode

Description

int ncurses_reset_shell_mode ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_reset_prog_mode | Nahoru | ncurses_resetty


ncurses_resetty

(PHP 4 >= 4.1.0, PHP 5)

ncurses_resetty -- Restores saved terminal state

Description

bool ncurses_resetty ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Function ncurses_resetty() restores the terminal state, which was previously saved by calling ncurses_savetty(). This function always returns FALSE.

See also: ncurses_savetty()

Předcházející | Domů | Další
ncurses_reset_shell_mode | Nahoru | ncurses_savetty


ncurses_savetty

(PHP 4 >= 4.1.0, PHP 5)

ncurses_savetty -- Saves terminal state

Description

bool ncurses_savetty ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Function ncurses_savetty() saves the current terminal state. The saved terminal state can be restored with function ncurses_resetty(). ncurses_savetty() always returns FALSE.

See also: ncurses_resetty()

Předcházející | Domů | Další
ncurses_resetty | Nahoru | ncurses_scr_dump


ncurses_scr_dump

(PHP 4 >= 4.2.0, PHP 5)

ncurses_scr_dump -- Dump screen content to file

Description

int ncurses_scr_dump ( string filename)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_savetty | Nahoru | ncurses_scr_init


ncurses_scr_init

(PHP 4 >= 4.2.0, PHP 5)

ncurses_scr_init -- Initialize screen from file dump

Description

int ncurses_scr_init ( string filename)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_scr_dump | Nahoru | ncurses_scr_restore


ncurses_scr_restore

(PHP 4 >= 4.2.0, PHP 5)

ncurses_scr_restore -- Restore screen from file dump

Description

int ncurses_scr_restore ( string filename)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_scr_init | Nahoru | ncurses_scr_set


ncurses_scr_set

(PHP 4 >= 4.2.0, PHP 5)

ncurses_scr_set -- Inherit screen from file dump

Description

int ncurses_scr_set ( string filename)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_scr_restore | Nahoru | ncurses_scrl


ncurses_scrl

(PHP 4 >= 4.1.0, PHP 5)

ncurses_scrl -- Scroll window content up or down without changing current position

Description

int ncurses_scrl ( int count)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_scr_set | Nahoru | ncurses_show_panel


ncurses_show_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_show_panel -- Places an invisible panel on top of the stack, making it visible

Description

int ncurses_show_panel ( resource panel)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_scrl | Nahoru | ncurses_slk_attr


ncurses_slk_attr

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_attr -- Returns current soft label key attribute

Description

bool ncurses_slk_attr ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ncurses_slk_attr() returns the current soft label key attribute. On error returns TRUE, otherwise FALSE.

Předcházející | Domů | Další
ncurses_show_panel | Nahoru | ncurses_slk_attroff


ncurses_slk_attroff

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_attroff --

Description

int ncurses_slk_attroff ( int intarg)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_slk_attr | Nahoru | ncurses_slk_attron


ncurses_slk_attron

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_attron --

Description

int ncurses_slk_attron ( int intarg)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_slk_attroff | Nahoru | ncurses_slk_attrset


ncurses_slk_attrset

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_attrset --

Description

int ncurses_slk_attrset ( int intarg)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_slk_attron | Nahoru | ncurses_slk_clear


ncurses_slk_clear

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_clear -- Clears soft labels from screen

Description

bool ncurses_slk_clear ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

The function ncurses_slk_clear() clears soft label keys from screen. Returns TRUE on error, otherwise FALSE.

Předcházející | Domů | Další
ncurses_slk_attrset | Nahoru | ncurses_slk_color


ncurses_slk_color

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_color -- Sets color for soft label keys

Description

int ncurses_slk_color ( int intarg)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_slk_clear | Nahoru | ncurses_slk_init


ncurses_slk_init

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_init -- Initializes soft label key functions

Description

bool ncurses_slk_init ( int format)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Function ncurses_slk_init() must be called before ncurses_initscr() or ncurses_newterm() is called. If ncurses_initscr() eventually uses a line from stdscr to emulate the soft labels, then format determines how the labels are arranged of the screen. Setting format to 0 indicates a 3-2-3 arrangement of the labels, 1 indicates a 4-4 arrangement and 2 indicates the PC like 4-4-4 mode, but in addition an index line will be created.

Předcházející | Domů | Další
ncurses_slk_color | Nahoru | ncurses_slk_noutrefresh


ncurses_slk_noutrefresh

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_noutrefresh -- Copies soft label keys to virtual screen

Description

bool ncurses_slk_noutrefresh ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_slk_init | Nahoru | ncurses_slk_refresh


ncurses_slk_refresh

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_refresh -- Copies soft label keys to screen

Description

bool ncurses_slk_refresh ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ncurses_slk_refresh() copies soft label keys from virtual screen to physical screen. Returns TRUE on error, otherwise FALSE.

Předcházející | Domů | Další
ncurses_slk_noutrefresh | Nahoru | ncurses_slk_restore


ncurses_slk_restore

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_restore -- Restores soft label keys

Description

bool ncurses_slk_restore ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

The function ncurses_slk_restore() restores the soft label keys after ncurses_slk_clear() has been performed.

Předcházející | Domů | Další
ncurses_slk_refresh | Nahoru | ncurses_slk_set


ncurses_slk_set

(PHP 4 >= 4.2.0, PHP 5)

ncurses_slk_set -- Sets function key labels

Description

bool ncurses_slk_set ( int labelnr, string label, int format)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_slk_restore | Nahoru | ncurses_slk_touch


ncurses_slk_touch

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_touch -- Forces output when ncurses_slk_noutrefresh is performed

Description

bool ncurses_slk_touch ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

The ncurses_slk_touch() function forces all the soft labels to be output the next time a ncurses_slk_noutrefresh() is performed.

Předcházející | Domů | Další
ncurses_slk_set | Nahoru | ncurses_standend


ncurses_standend

(PHP 4 >= 4.1.0, PHP 5)

ncurses_standend -- Stop using 'standout' attribute

Description

int ncurses_standend ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_slk_touch | Nahoru | ncurses_standout


ncurses_standout

(PHP 4 >= 4.1.0, PHP 5)

ncurses_standout -- Start using 'standout' attribute

Description

int ncurses_standout ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_standend | Nahoru | ncurses_start_color


ncurses_start_color

(PHP 4 >= 4.1.0, PHP 5)

ncurses_start_color -- Start using colors

Description

int ncurses_start_color ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_standout | Nahoru | ncurses_termattrs


ncurses_termattrs

(PHP 4 >= 4.1.0, PHP 5)

ncurses_termattrs -- Returns a logical OR of all attribute flags supported by terminal

Description

bool ncurses_termattrs ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_start_color | Nahoru | ncurses_termname


ncurses_termname

(PHP 4 >= 4.2.0, PHP 5)

ncurses_termname -- Returns terminals (short)-name

Description

string ncurses_termname ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ncurses_termname() returns terminals shortname. The shortname is truncated to 14 characters. On error ncurses_termname() returns NULL.

See also: ncurses_longname()

Předcházející | Domů | Další
ncurses_termattrs | Nahoru | ncurses_timeout


ncurses_timeout

(PHP 4 >= 4.1.0, PHP 5)

ncurses_timeout -- Set timeout for special key sequences

Description

void ncurses_timeout ( int millisec)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_termname | Nahoru | ncurses_top_panel


ncurses_top_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_top_panel -- Moves a visible panel to the top of the stack

Description

int ncurses_top_panel ( resource panel)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_timeout | Nahoru | ncurses_typeahead


ncurses_typeahead

(PHP 4 >= 4.1.0, PHP 5)

ncurses_typeahead -- Specify different filedescriptor for typeahead checking

Description

int ncurses_typeahead ( int fd)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_top_panel | Nahoru | ncurses_ungetch


ncurses_ungetch

(PHP 4 >= 4.1.0, PHP 5)

ncurses_ungetch -- Put a character back into the input stream

Description

int ncurses_ungetch ( int keycode)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_typeahead | Nahoru | ncurses_ungetmouse


ncurses_ungetmouse

(PHP 4 >= 4.2.0, PHP 5)

ncurses_ungetmouse -- Pushes mouse event to queue

Description

bool ncurses_ungetmouse ( array mevent)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ncurses_getmouse() pushes a KEY_MOUSE event onto the unput queue and associates with this event the given state sata and screen-relative character cell coordinates, specified in mevent. Event options will be specified in associative array mevent:

  • "id" : Id to distinguish multiple devices

  • "x" : screen relative x-position in character cells

  • "y" : screen relative y-position in character cells

  • "z" : currently not supported

  • "mmask" : Mouse action

ncurses_ungetmouse() returns FALSE on success, otherwise TRUE.

See also: ncurses_getmouse()

Předcházející | Domů | Další
ncurses_ungetch | Nahoru | ncurses_update_panels


ncurses_update_panels

(PHP 4 >= 4.3.0, PHP 5)

ncurses_update_panels -- Refreshes the virtual screen to reflect the relations between panels in the stack.

Description

void ncurses_update_panels ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_ungetmouse | Nahoru | ncurses_use_default_colors


ncurses_use_default_colors

(PHP 4 >= 4.1.0, PHP 5)

ncurses_use_default_colors -- Assign terminal default colors to color id -1

Description

bool ncurses_use_default_colors ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_update_panels | Nahoru | ncurses_use_env


ncurses_use_env

(PHP 4 >= 4.1.0, PHP 5)

ncurses_use_env -- Control use of environment information about terminal size

Description

void ncurses_use_env ( bool flag)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_use_default_colors | Nahoru | ncurses_use_extended_names


ncurses_use_extended_names

(PHP 4 >= 4.1.0, PHP 5)

ncurses_use_extended_names -- Control use of extended names in terminfo descriptions

Description

int ncurses_use_extended_names ( bool flag)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_use_env | Nahoru | ncurses_vidattr


ncurses_vidattr

(PHP 4 >= 4.1.0, PHP 5)

ncurses_vidattr --

Description

int ncurses_vidattr ( int intarg)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_use_extended_names | Nahoru | ncurses_vline


ncurses_vline

(PHP 4 >= 4.2.0, PHP 5)

ncurses_vline -- Draw a vertical line at current position using an attributed character and max. n characters long

Description

int ncurses_vline ( int charattr, int n)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_vidattr | Nahoru | ncurses_waddch


ncurses_waddch

(PHP 4 >= 4.3.0, PHP 5)

ncurses_waddch -- Adds character at current position in a window and advance cursor

Description

int ncurses_waddch ( resource window, int ch)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_vline | Nahoru | ncurses_waddstr


ncurses_waddstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_waddstr -- Outputs text at current postion in window

Description

int ncurses_waddstr ( resource window, string str [, int n])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_waddch | Nahoru | ncurses_wattroff


ncurses_wattroff

(PHP 4 >= 4.3.0, PHP 5)

ncurses_wattroff -- Turns off attributes for a window

Description

int ncurses_wattroff ( resource window, int attrs)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_waddstr | Nahoru | ncurses_wattron


ncurses_wattron

(PHP 4 >= 4.3.0, PHP 5)

ncurses_wattron -- Turns on attributes for a window

Description

int ncurses_wattron ( resource window, int attrs)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_wattroff | Nahoru | ncurses_wattrset


ncurses_wattrset

(PHP 4 >= 4.3.0, PHP 5)

ncurses_wattrset -- Set the attributes for a window

Description

int ncurses_wattrset ( resource window, int attrs)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_wattron | Nahoru | ncurses_wborder


ncurses_wborder

(PHP 4 >= 4.3.0, PHP 5)

ncurses_wborder -- Draws a border around the window using attributed characters

Description

int ncurses_wborder ( resource window, int left, int right, int top, int bottom, int tl_corner, int tr_corner, int bl_corner, int br_corner)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

ncurses_wborder() draws the specified lines and corners around the passed window window. Each parameter expects 0 to draw a line and 1 to skip it. The corners are top left, top right, bottom left and bottom right.

Use ncurses_border() for borders around the main window.

See also ncurses_border().

Předcházející | Domů | Další
ncurses_wattrset | Nahoru | ncurses_wclear


ncurses_wclear

(PHP 4 >= 4.2.0, PHP 5)

ncurses_wclear -- Clears window

Description

int ncurses_wclear ( resource window)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_wborder | Nahoru | ncurses_wcolor_set


ncurses_wcolor_set

(PHP 4 >= 4.2.0, PHP 5)

ncurses_wcolor_set -- Sets windows color pairings

Description

int ncurses_wcolor_set ( resource window, int color_pair)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_wclear | Nahoru | ncurses_werase


ncurses_werase

(PHP 4 >= 4.3.0, PHP 5)

ncurses_werase -- Erase window contents

Description

long ncurses_werase ( resource window)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_wcolor_set | Nahoru | ncurses_wgetch


ncurses_wgetch

(PHP 4 >= 4.2.0, PHP 5)

ncurses_wgetch -- Reads a character from keyboard (window)

Description

int ncurses_wgetch ( resource window)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_werase | Nahoru | ncurses_whline


ncurses_whline

(PHP 4 >= 4.3.0, PHP 5)

ncurses_whline -- Draws a horizontal line in a window at current position using an attributed character and max. n characters long

Description

int ncurses_whline ( resource window, int charattr, int n)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_wgetch | Nahoru | ncurses_wmouse_trafo


ncurses_wmouse_trafo

(PHP 4 >= 4.2.0, PHP 5)

ncurses_wmouse_trafo -- Transforms window/stdscr coordinates

Description

bool ncurses_wmouse_trafo ( resource window, int &y, int &x, bool toscreen)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_whline | Nahoru | ncurses_wmove


ncurses_wmove

(PHP 4 >= 4.2.0, PHP 5)

ncurses_wmove -- Moves windows output position

Description

int ncurses_wmove ( resource window, int y, int x)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_wmouse_trafo | Nahoru | ncurses_wnoutrefresh


ncurses_wnoutrefresh

(PHP 4 >= 4.2.0, PHP 5)

ncurses_wnoutrefresh -- Copies window to virtual screen

Description

int ncurses_wnoutrefresh ( resource window)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_wmove | Nahoru | ncurses_wrefresh


ncurses_wrefresh

(PHP 4 >= 4.2.0, PHP 5)

ncurses_wrefresh -- Refresh window on terminal screen

Description

int ncurses_wrefresh ( resource window)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_wnoutrefresh | Nahoru | ncurses_wstandend


ncurses_wstandend

(PHP 4 >= 4.3.0, PHP 5)

ncurses_wstandend -- End standout mode for a window

Description

int ncurses_wstandend ( resource window)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_wrefresh | Nahoru | ncurses_wstandout


ncurses_wstandout

(PHP 4 >= 4.3.0, PHP 5)

ncurses_wstandout -- Enter standout mode for a window

Description

int ncurses_wstandout ( resource window)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_wstandend | Nahoru | ncurses_wvline


ncurses_wvline

(PHP 4 >= 4.3.0, PHP 5)

ncurses_wvline -- Draws a vertical line in a window at current position using an attributed character and max. n characters long

Description

int ncurses_wvline ( resource window, int charattr, int n)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ncurses_wstandout | Nahoru | Lotus Notes Functions


Lotus Notes Functions

Manuál PHP
Předcházející Další

LXX. Lotus Notes Functions

Úvod

Varování

Toto rozšíření je EXPERIMENTÁLNÍ. Chování tohoto rozšíření, názvy funkcí a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může bez ohlášení změnit. Berte to v úvahu a používejte tento modul na vlastní nebezpečí.

Poznámka: Toto rozšíření bylo odstraněno podle PHP 5 a přesunuto do repozitáře PECL.

Obsah
notes_body -- Open the message msg_number in the specified mailbox on the specified server (leave serv
notes_copy_db -- Create a note using form form_name
notes_create_db -- Create a Lotus Notes database
notes_create_note -- Create a note using form form_name
notes_drop_db -- Drop a Lotus Notes database
notes_find_note -- Returns a note id found in database_name. Specify the name of the note. Leaving type bla
notes_header_info -- Open the message msg_number in the specified mailbox on the specified server (leave serv
notes_list_msgs -- Returns the notes from a selected database_name
notes_mark_read -- Mark a note_id as read for the User user_name
notes_mark_unread -- Mark a note_id as unread for the User user_name
notes_nav_create -- Create a navigator name, in database_name
notes_search -- Find notes that match keywords in database_name
notes_unread -- Returns the unread note id's for the current User user_name
notes_version -- Get the version Lotus Notes

Předcházející | Domů | Další
ncurses_wvline | Nahoru | notes_body


notes_body

(PHP 4 >= 4.0.5)

notes_body -- Open the message msg_number in the specified mailbox on the specified server (leave serv

Description

array notes_body ( string server, string mailbox, int msg_number)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
Lotus Notes Functions | Nahoru | notes_copy_db


notes_copy_db

(PHP 4 >= 4.0.5)

notes_copy_db -- Create a note using form form_name

Description

string notes_copy_db ( string from_database_name, string to_database_name)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
notes_body | Nahoru | notes_create_db


notes_create_db

(PHP 4 >= 4.0.5)

notes_create_db -- Create a Lotus Notes database

Description

bool notes_create_db ( string database_name)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
notes_copy_db | Nahoru | notes_create_note


notes_create_note

(PHP 4 >= 4.0.5)

notes_create_note -- Create a note using form form_name

Description

string notes_create_note ( string database_name, string form_name)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
notes_create_db | Nahoru | notes_drop_db


notes_drop_db

(PHP 4 >= 4.0.5)

notes_drop_db -- Drop a Lotus Notes database

Description

bool notes_drop_db ( string database_name)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
notes_create_note | Nahoru | notes_find_note


notes_find_note

(PHP 4 >= 4.0.5)

notes_find_note -- Returns a note id found in database_name. Specify the name of the note. Leaving type bla

Description

bool notes_find_note ( string database_name, string name [, string type])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
notes_drop_db | Nahoru | notes_header_info


notes_header_info

(PHP 4 >= 4.0.5)

notes_header_info -- Open the message msg_number in the specified mailbox on the specified server (leave serv

Description

object notes_header_info ( string server, string mailbox, int msg_number)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
notes_find_note | Nahoru | notes_list_msgs


notes_list_msgs

(PHP 4 >= 4.0.5)

notes_list_msgs -- Returns the notes from a selected database_name

Description

bool notes_list_msgs ( string db)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
notes_header_info | Nahoru | notes_mark_read


notes_mark_read

(PHP 4 >= 4.0.5)

notes_mark_read -- Mark a note_id as read for the User user_name

Description

string notes_mark_read ( string database_name, string user_name, string note_id)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
notes_list_msgs | Nahoru | notes_mark_unread


notes_mark_unread

(PHP 4 >= 4.0.5)

notes_mark_unread -- Mark a note_id as unread for the User user_name

Description

string notes_mark_unread ( string database_name, string user_name, string note_id)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
notes_mark_read | Nahoru | notes_nav_create


notes_nav_create

(PHP 4 >= 4.0.5)

notes_nav_create -- Create a navigator name, in database_name

Description

bool notes_nav_create ( string database_name, string name)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
notes_mark_unread | Nahoru | notes_search


notes_search

(PHP 4 >= 4.0.5)

notes_search -- Find notes that match keywords in database_name

Description

string notes_search ( string database_name, string keywords)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
notes_nav_create | Nahoru | notes_unread


notes_unread

(PHP 4 >= 4.0.5)

notes_unread -- Returns the unread note id's for the current User user_name

Description

string notes_unread ( string database_name, string user_name)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
notes_search | Nahoru | notes_version


notes_version

(PHP 4 >= 4.0.5)

notes_version -- Get the version Lotus Notes

Description

string notes_version ( string database_name)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
notes_unread | Nahoru | NSAPI-specific Functions


NSAPI-specific Functions

Manuál PHP
Předcházející Další

LXXI. NSAPI-specific Functions

Úvod

These functions are only available when running PHP as a NSAPI module in Netscape/iPlanet/SunONE webservers.

Instalace

For PHP installation on Netscape/iPlanet/SunONE webservers see the NSAPI section in the installation chapter.

Konfigurace běhu

The behaviour of the NSAPI PHP module is affected by settings in php.ini. Configuration settings from php.ini may be overridden by additional parameters to the php4_execute call in obj.conf

Tabulka 1. NSAPI configuration options

Name | Default | Changeable | Function
nsapi.read_timeout | 60 | PHP_INI_ALL | sets the time in seconds the plugin is waiting for POST data from the client

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Viz také

NSAPI implements a subset of the functions from the Apache module for maximum compatibility.

Tabulka 2. Apache functions implemented by NSAPI

Apache function (only as alias) | NSAPI function | Description
apache_request_headers() | nsapi_request_headers() | Fetch all HTTP request headers
apache_response_headers() | nsapi_response_headers() | Fetch all HTTP response headers
getallheaders() | nsapi_request_headers() | Fetch all HTTP request headers
virtual() | nsapi_virtual() | Make NSAPI sub-request

Obsah
nsapi_request_headers -- Fetch all HTTP request headers
nsapi_response_headers -- Fetch all HTTP response headers
nsapi_virtual -- Perform an NSAPI sub-request

Předcházející | Domů | Další
notes_version | Nahoru | nsapi_request_headers


nsapi_request_headers

(PHP 4 >= 4.3.3, PHP 5)

nsapi_request_headers -- Fetch all HTTP request headers

Description

array nsapi_request_headers ( void )

nsapi_request_headers() returns an associative array of all the HTTP headers in the current request. This is only supported when PHP runs as a NSAPI module.

Příklad 1. nsapi_request_headers() example

<?php
$headers = nsapi_request_headers();

foreach ($headers as $header => $value) {
    echo "$header: $value <br />\n";
}
?>

Poznámka: Prior to PHP 4.3.3, getallheaders() was only available for the Apache servers. After PHP 4.3.3, getallheaders() is an alias for nsapi_request_headers() if you use the NSAPI module.

Poznámka: You can also get at the value of the common CGI variables by reading them from the $_SERVER superglobal, which works whether or not you are using PHP as a NSAPI module.

Předcházející | Domů | Další
NSAPI-specific Functions | Nahoru | nsapi_response_headers


nsapi_response_headers

(PHP 4 >= 4.3.3, PHP 5)

nsapi_response_headers -- Fetch all HTTP response headers

Description

array nsapi_response_headers ( void )

Returns an array of all NSAPI response headers. This functionality is only available in PHP 4.3.3 and greater.

See also nsapi_request_headers() and headers_sent().

Předcházející | Domů | Další
nsapi_request_headers | Nahoru | nsapi_virtual


nsapi_virtual

(PHP 4 >= 4.3.3, PHP 5)

nsapi_virtual -- Perform an NSAPI sub-request

Description

int nsapi_virtual ( string uri)

nsapi_virtual() is an NSAPI-specific function which is equivalent to <!--#include virtual...--> in SSI (.shtml files). It does an NSAPI sub-request. It is useful for including CGI scripts or .shtml files, or anything else that you'd parse through webserver.

To run the sub-request, all buffers are terminated and flushed to the browser, pending headers are sent too.

You cannot make recursive requests with this function to other PHP scripts. If you want to include PHP scripts, use include() or require().

Poznámka: This function depends on a undocumented feature of the Netscape/iPlanet/SunONE webservers. Use phpinfo() to determine if it is available. In the Unix environment it should always work, in windows it depends on the name of a ns-httpdXX.dll file. Read the note about subrequests in the install section if you experience this problem.

Předcházející | Domů | Další
nsapi_response_headers | Nahoru | Unified ODBC Functions


Unified ODBC Functions

Manuál PHP
Předcházející Další

LXXII. Unified ODBC Functions

Úvod

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.

Poznámka: 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. The exception to this is iODBC. Building PHP with iODBC support enables you to use any ODBC-compliant drivers with your PHP applications. iODBC is maintained by OpenLink Software. More information on iODBC, as well as a HOWTO, is available at www.iodbc.org.

Požadavky

To access any of the supported databases you need to have the required libraries installed.

Instalace

--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. From PHP 4, 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. From PHP 4, 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).

To disable unified ODBC support in PHP 3 add --disable-unified-odbc to your configure line. Only applicable if iODBC, Adabas, Solid, Velocis or a custom ODBC interface is enabled.

Verze PHP pro Windows má vestavěnou podporu pro toto rozšíření. K použití těchto funkcí není třeba načítat žádná další rozšíření.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 1. Unified ODBC Configuration Options

Name | Default | Changeable
odbc.default_db * | NULL | PHP_INI_ALL
odbc.default_user * | NULL | PHP_INI_ALL
odbc.default_pw * | NULL | PHP_INI_ALL
odbc.allow_persistent | "1" | PHP_INI_SYSTEM
odbc.check_persistent | "1" | PHP_INI_SYSTEM
odbc.max_persistent | "-1" | PHP_INI_SYSTEM
odbc.max_links | "-1" | PHP_INI_SYSTEM
odbc.defaultlrl | "4096" | PHP_INI_ALL
odbc.defaultbinmode | "1" | PHP_INI_ALL

Poznámka: Entries marked with * are not implemented yet.

For further details and definition of the PHP_INI_* constants see ini_set().

Zde je stručné vysvětlení konfiguračních direktiv.

odbc.default_db string

ODBC data source to use if none is specified in odbc_connect() or odbc_pconnect().

odbc.default_user string

User name to use if none is specified in odbc_connect() or odbc_pconnect().

odbc.default_pw string

Password to use if none is specified in odbc_connect() or odbc_pconnect().

odbc.allow_persistent boolean

Whether to allow persistent ODBC connections.

odbc.check_persistent boolean

Check that a connection is still valid before reuse.

odbc.max_persistent integer

The maximum number of persistent ODBC connections per process.

odbc.max_links integer

The maximum number of ODBC connections per process, including persistent connections.

odbc.defaultlrl integer

Handling of LONG fields. Specifies the number of bytes returned to variables.

odbc.defaultbinmode integer

Handling of binary data.

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

ODBC_TYPE (integer)

ODBC_BINMODE_PASSTHRU (integer)

ODBC_BINMODE_RETURN (integer)

ODBC_BINMODE_CONVERT (integer)

SQL_ODBC_CURSORS (integer)

SQL_CUR_USE_DRIVER (integer)

SQL_CUR_USE_IF_NEEDED (integer)

SQL_CUR_USE_ODBC (integer)

SQL_CONCURRENCY (integer)

SQL_CONCUR_READ_ONLY (integer)

SQL_CONCUR_LOCK (integer)

SQL_CONCUR_ROWVER (integer)

SQL_CONCUR_VALUES (integer)

SQL_CURSOR_TYPE (integer)

SQL_CURSOR_FORWARD_ONLY (integer)

SQL_CURSOR_KEYSET_DRIVEN (integer)

SQL_CURSOR_DYNAMIC (integer)

SQL_CURSOR_STATIC (integer)

SQL_KEYSET_SIZE (integer)

SQL_CHAR (integer)

SQL_VARCHAR (integer)

SQL_LONGVARCHAR (integer)

SQL_DECIMAL (integer)

SQL_NUMERIC (integer)

SQL_BIT (integer)

SQL_TINYINT (integer)

SQL_SMALLINT (integer)

SQL_INTEGER (integer)

SQL_BIGINT (integer)

SQL_REAL (integer)

SQL_FLOAT (integer)

SQL_DOUBLE (integer)

SQL_BINARY (integer)

SQL_VARBINARY (integer)

SQL_LONGVARBINARY (integer)

SQL_DATE (integer)

SQL_TIME (integer)

SQL_TIMESTAMP (integer)

SQL_TYPE_DATE (integer)

SQL_TYPE_TIME (integer)

SQL_TYPE_TIMESTAMP (integer)

SQL_BEST_ROWID (integer)

SQL_ROWVER (integer)

SQL_SCOPE_CURROW (integer)

SQL_SCOPE_TRANSACTION (integer)

SQL_SCOPE_SESSION (integer)

SQL_NO_NULLS (integer)

SQL_NULLABLE (integer)

SQL_INDEX_UNIQUE (integer)

SQL_INDEX_ALL (integer)

SQL_ENSURE (integer)

SQL_QUICK (integer)

Obsah
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 -- Returns a result identifier that can be used to fetch a list of columns and associated privileges
odbc_columns -- Lists the column names in specified tables. Returns a result identifier containing the information.
odbc_commit -- Commit an ODBC transaction
odbc_connect -- Connect to a datasource
odbc_cursor -- Get cursorname
odbc_data_source -- Returns information about a current connection
odbc_do -- Synonym for odbc_exec()
odbc_error -- Get the last error code
odbc_errormsg -- Get the last error message
odbc_exec -- Prepare and execute a SQL statement
odbc_execute -- Execute a prepared statement
odbc_fetch_array -- Fetch a result row as an associative array
odbc_fetch_into -- Fetch one result row into array
odbc_fetch_object -- Fetch a result row as an object
odbc_fetch_row -- Fetch a row
odbc_field_len -- Get the length (precision) of a field
odbc_field_name -- Get the columnname
odbc_field_num -- Return column number
odbc_field_precision -- Synonym for odbc_field_len()
odbc_field_scale -- Get the scale of a field
odbc_field_type -- Datatype of a field
odbc_foreignkeys -- Returns a list of foreign keys in the specified table or a list of foreign keys in other tables that refer to the primary key in the specified table
odbc_free_result -- Free resources associated with a result
odbc_gettypeinfo -- Returns a result identifier containing information about data types supported by the data source.
odbc_longreadlen -- Handling of LONG columns
odbc_next_result -- Checks if multiple results are available
odbc_num_fields -- Number of columns in a result
odbc_num_rows -- Number of rows in a result
odbc_pconnect -- Open a persistent database connection
odbc_prepare -- Prepares a statement for execution
odbc_primarykeys -- Returns a result identifier that can be used to fetch the column names that comprise the primary key for a table
odbc_procedurecolumns -- Retrieve information about parameters to procedures
odbc_procedures -- Get the list of procedures stored in a specific data source. Returns a result identifier containing the information.
odbc_result_all -- Print result as HTML table
odbc_result -- Get result data
odbc_rollback -- Rollback a transaction
odbc_setoption -- Adjust ODBC settings. Returns FALSE if an error occurs, otherwise TRUE.
odbc_specialcolumns -- Returns either the optimal set of columns that uniquely identifies a row in the table or columns that are automatically updated when any value in the row is updated by a transaction
odbc_statistics -- Retrieve statistics about a table
odbc_tableprivileges -- Lists tables and the privileges associated with each table
odbc_tables -- Get the list of table names stored in a specific data source. Returns a result identifier containing the information.

Předcházející | Domů | Další
nsapi_virtual | Nahoru | odbc_autocommit


odbc_autocommit

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_autocommit -- Toggle autocommit behaviour

Description

bool odbc_autocommit ( resource connection_id [, bool OnOff])

Without the OnOff parameter, this function returns auto-commit status for connection_id. TRUE is returned if auto-commit is on, FALSE if it is off or an error occurs.

If OnOff is TRUE, auto-commit is enabled, if it is FALSE auto-commit is disabled. Returns TRUE on success, FALSE on failure.

By default, auto-commit is on for a connection. Disabling auto-commit is equivalent with starting a transaction.

See also odbc_commit() and odbc_rollback().

Předcházející | Domů | Další
Unified ODBC Functions | Nahoru | odbc_binmode


odbc_binmode

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_binmode -- Handling of binary column data

Description

int odbc_binmode ( resource result_id, int mode)

(ODBC SQL types affected: BINARY, VARBINARY, LONGVARBINARY)

  • ODBC_BINMODE_PASSTHRU: Passthru BINARY data

  • ODBC_BINMODE_RETURN: Return as is

  • ODBC_BINMODE_CONVERT: Convert to char and return

When binary SQL data is converted to character C data, 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".

Tabulka 1. 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_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 result_id is 0, the settings apply as default for new results.

Poznámka: Default for longreadlen is 4096 and binmode defaults to ODBC_BINMODE_RETURN. Handling of binary long columns is also affected by odbc_longreadlen()

Předcházející | Domů | Další
odbc_autocommit | Nahoru | odbc_close_all


odbc_close_all

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_close_all -- Close all ODBC connections

Description

void odbc_close_all ( void )

odbc_close_all() will close down all connections to database server(s).

Poznámka: This function will fail if there are open transactions on a connection. This connection will remain open in this case.

Předcházející | Domů | Další
odbc_binmode | Nahoru | odbc_close


odbc_close

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_close -- Close an ODBC connection

Description

void odbc_close ( resource connection_id)

odbc_close() will close down the connection to the database server associated with the given connection identifier.

Poznámka: This function will fail if there are open transactions on this connection. The connection will remain open in this case.

Předcházející | Domů | Další
odbc_close_all | Nahoru | odbc_columnprivileges


odbc_columnprivileges

(PHP 4 , PHP 5)

odbc_columnprivileges -- Returns a result identifier that can be used to fetch a list of columns and associated privileges

Description

int odbc_columnprivileges ( resource connection_id [, string qualifier [, string owner [, string table_name [, string column_name]]]])

Lists columns and associated privileges for the given table. Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • TABLE_QUALIFIER

  • TABLE_OWNER

  • TABLE_NAME

  • GRANTOR

  • GRANTEE

  • PRIVILEGE

  • IS_GRANTABLE

The result set is ordered by TABLE_QUALIFIER, TABLE_OWNER and TABLE_NAME.

The column_name argument accepts search patterns ('%' to match zero or more characters and '_' to match a single character).

Předcházející | Domů | Další
odbc_close | Nahoru | odbc_columns


odbc_columns

(PHP 4 , PHP 5)

odbc_columns -- Lists the column names in specified tables. Returns a result identifier containing the information.

Description

resource odbc_columns ( resource connection_id [, string qualifier [, string schema [, string table_name [, string column_name]]]])

Lists all columns in the requested range. Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • TABLE_QUALIFIER

  • TABLE_SCHEM

  • TABLE_NAME

  • COLUMN_NAME

  • DATA_TYPE

  • TYPE_NAME

  • PRECISION

  • LENGTH

  • SCALE

  • RADIX

  • NULLABLE

  • REMARKS

The result set is ordered by TABLE_QUALIFIER, TABLE_SCHEM and TABLE_NAME.

The schema, table_name and column_name arguments accept search patterns ('%' to match zero or more characters and '_' to match a single character).

See also odbc_columnprivileges() to retrieve associated privileges.

Předcházející | Domů | Další
odbc_columnprivileges | Nahoru | odbc_commit


odbc_commit

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_commit -- Commit an ODBC transaction

Description

bool odbc_commit ( resource connection_id)

odbc_commit() commits all pending transactions on the connection_id connection. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
odbc_columns | Nahoru | odbc_connect


odbc_connect

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_connect -- Connect to a datasource

Description

resource odbc_connect ( string dsn, string user, string password [, int cursor_type])

Returns an ODBC connection id or 0 (FALSE) on error.

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. The optional fourth parameter 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.

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.

The following constants are defined for cursortype:

  • SQL_CUR_USE_IF_NEEDED

  • SQL_CUR_USE_ODBC

  • SQL_CUR_USE_DRIVER

  • SQL_CUR_DEFAULT

For persistent connections see odbc_pconnect().

Předcházející | Domů | Další
odbc_commit | Nahoru | odbc_cursor


odbc_cursor

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_cursor -- Get cursorname

Description

string odbc_cursor ( resource result_id)

odbc_cursor will return a cursorname for the given result_id.

Předcházející | Domů | Další
odbc_connect | Nahoru | odbc_data_source


odbc_data_source

(PHP 4 >= 4.3.0, PHP 5)

odbc_data_source -- Returns information about a current connection

Description

resource odbc_data_source ( resource connection_id, constant fetch_type)

Returns FALSE on error, and an array upon success.

This function will return information about the active connection following the information from within the DSN. The connection_id is required to be a valid ODBC connection. The fetch_type can be one of two constant types: SQL_FETCH_FIRST, SQL_FETCH_NEXT. Use SQL_FETCH_FIRST the first time this function is called, thereafter use the SQL_FETCH_NEXT.

Předcházející | Domů | Další
odbc_cursor | Nahoru | odbc_do


odbc_do

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_do -- Synonym for odbc_exec()

Description

resource odbc_do ( resource conn_id, string query)

odbc_do() will execute a query on the given connection.

Předcházející | Domů | Další
odbc_data_source | Nahoru | odbc_error


odbc_error

(PHP 4 >= 4.0.5, PHP 5)

odbc_error -- Get the last error code

Description

string odbc_error ( [resource connection_id])

Returns a six-digit ODBC state, or an empty string if there has been no errors. If connection_id is specified, the last state of that connection is returned, else the last state of any connection is returned.

See also: odbc_errormsg() and odbc_exec().

Předcházející | Domů | Další
odbc_do | Nahoru | odbc_errormsg


odbc_errormsg

(PHP 4 >= 4.0.5, PHP 5)

odbc_errormsg -- Get the last error message

Description

string odbc_errormsg ( [resource connection_id])

Returns a string containing the last ODBC error message, or an empty string if there has been no errors. If connection_id is specified, the last state of that connection is returned, else the last state of any connection is returned.

See also: odbc_error() and odbc_exec().

Předcházející | Domů | Další
odbc_error | Nahoru | odbc_exec


odbc_exec

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_exec -- Prepare and execute a SQL statement

Description

resource odbc_exec ( resource connection_id, string query_string)

Returns FALSE on error. Returns an ODBC result identifier if the SQL command was executed successfully.

odbc_exec() will send an SQL statement to the database server specified by connection_id. This parameter must be a valid identifier returned by odbc_connect() or odbc_pconnect().

See also: odbc_prepare() and odbc_execute() for multiple execution of SQL statements.

Předcházející | Domů | Další
odbc_errormsg | Nahoru | odbc_execute


odbc_execute

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_execute -- Execute a prepared statement

Description

bool odbc_execute ( resource result_id [, array parameters_array])

Executes a statement prepared with odbc_prepare().Vrací TRUE při úspěchu, FALSE při selhání. The array parameters_array only needs to be given if you really have parameters in your statement.

Parameters in parameter_array will be substituted for placeholders in the prepared statement in order.

Any parameters in parameter_array which start and end with single quotes will be taken as the name of a file to read and send to the database server as the data for the appropriate placeholder.

Poznámka: As of PHP 4.1.1, this file reading functionality has the following restrictions:

  • File reading is not subject to any bezpečný režim or open-basedir restrictions. This is fixed in PHP 4.2.0.

  • Remote files are not supported.

  • If you wish to store a string which actually begins and ends with single quotes, you must escape them or add a space or other non-single-quote character to the beginning or end of the parameter, which will prevent the parameter's being taken as a file name. If this is not an option, then you must use another mechanism to store the string, such as executing the query directly with odbc_exec()).

Předcházející | Domů | Další
odbc_exec | Nahoru | odbc_fetch_array


odbc_fetch_array

(PHP 4 >= 4.0.2, PHP 5)

odbc_fetch_array -- Fetch a result row as an associative array

Description

array odbc_fetch_array ( resource result [, int rownumber])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
odbc_execute | Nahoru | odbc_fetch_into


odbc_fetch_into

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_fetch_into -- Fetch one result row into array

Description

bool odbc_fetch_into ( resource result_id [, int rownumber, array result_array])

resource odbc_fetch_into ( resource result_id, array result_array [, int rownumber])

Returns the number of columns in the result; FALSE on error. result_array must be passed by reference, but it 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.

As of PHP 4.0.5 the result_array does not need to be passed by reference any longer.

As of PHP 4.0.6 the rownumber cannot be passed as a constant, but rather as a variable.

As of PHP 4.2.0 the result_array and rownumber have been swapped. This allows the rownumber to be a constant again. This change will also be the last one to this function.

Příklad 1. odbc_fetch_into() pre 4.0.6 example

<?php
$rc = odbc_fetch_into($res_id, $my_array);
?>

or

<?php
$rc = odbc_fetch_into($res_id, $row, $my_array);

$rc = odbc_fetch_into($res_id, 1, $my_array);
?>

Příklad 2. odbc_fetch_into() 4.0.6 example

<?php
$rc = odbc_fetch_into($res_id, $my_array);
?>

or

<?php
$row = 1;
$rc = odbc_fetch_into($res_id, $row, $my_array);
?>

Příklad 3. odbc_fetch_into() 4.2.0 example

<?php
$rc = odbc_fetch_into($res_id, $my_array);
?>

or

<?php
$rc = odbc_fetch_into($res_id, $my_array, 2);
?>

Předcházející | Domů | Další
odbc_fetch_array | Nahoru | odbc_fetch_object


odbc_fetch_object

(PHP 4 >= 4.0.2, PHP 5)

odbc_fetch_object -- Fetch a result row as an object

Description

object odbc_fetch_object ( resource result [, int rownumber])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
odbc_fetch_into | Nahoru | odbc_fetch_row


odbc_fetch_row

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_fetch_row -- Fetch a row

Description

bool odbc_fetch_row ( resource result_id [, int row_number])

If odbc_fetch_row() was successful (there was a row), TRUE is returned. If there are no more rows, FALSE is returned.

odbc_fetch_row() fetches a row of the data that was returned by odbc_do() / odbc_exec(). After odbc_fetch_row() is called, the fields of that row can be accessed with odbc_result().

If row_number is not specified, odbc_fetch_row() will try to fetch the next row in the result set. Calls to odbc_fetch_row() with and without row_number can be mixed.

To step through the result more than once, you can call odbc_fetch_row() with row_number 1, and then continue doing odbc_fetch_row() without row_number to review the result. If a driver doesn't support fetching rows by number, the row_number parameter is ignored.

Předcházející | Domů | Další
odbc_fetch_object | Nahoru | odbc_field_len


odbc_field_len

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_field_len -- Get the length (precision) of a field

Description

int odbc_field_len ( resource result_id, int field_number)

odbc_field_len() will return the length of the field referenced by number in the given ODBC result identifier. Field numbering starts at 1.

See also: odbc_field_scale() to get the scale of a floating point number.

Předcházející | Domů | Další
odbc_fetch_row | Nahoru | odbc_field_name


odbc_field_name

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_field_name -- Get the columnname

Description

string odbc_field_name ( resource result_id, int field_number)

odbc_field_name() will return the name of the field occupying the given column number in the given ODBC result identifier. Field numbering starts at 1. FALSE is returned on error.

Předcházející | Domů | Další
odbc_field_len | Nahoru | odbc_field_num


odbc_field_num

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_field_num -- Return column number

Description

int odbc_field_num ( resource result_id, string field_name)

odbc_field_num() will return the number of the column slot that corresponds to the named field in the given ODBC result identifier. Field numbering starts at 1. FALSE is returned on error.

Předcházející | Domů | Další
odbc_field_name | Nahoru | odbc_field_precision


odbc_field_precision

(PHP 4 , PHP 5)

odbc_field_precision -- Synonym for odbc_field_len()

Description

string odbc_field_precision ( resource result_id, int field_number)

odbc_field_precision() will return the precision of the field referenced by number in the given ODBC result identifier.

See also: odbc_field_scale() to get the scale of a floating point number.

Předcházející | Domů | Další
odbc_field_num | Nahoru | odbc_field_scale


odbc_field_scale

(PHP 4 , PHP 5)

odbc_field_scale -- Get the scale of a field

Description

string odbc_field_scale ( resource result_id, int field_number)

odbc_field_precision() will return the scale of the field referenced by number in the given ODBC result identifier.

Předcházející | Domů | Další
odbc_field_precision | Nahoru | odbc_field_type


odbc_field_type

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_field_type -- Datatype of a field

Description

string odbc_field_type ( resource result_id, int field_number)

odbc_field_type() will return the SQL type of the field referenced by number in the given ODBC result identifier. Field numbering starts at 1.

Předcházející | Domů | Další
odbc_field_scale | Nahoru | odbc_foreignkeys


odbc_foreignkeys

(PHP 4 , PHP 5)

odbc_foreignkeys -- Returns a list of foreign keys in the specified table or a list of foreign keys in other tables that refer to the primary key in the specified table

Description

resource odbc_foreignkeys ( resource connection_id, string pk_qualifier, string pk_owner, string pk_table, string fk_qualifier, string fk_owner, string fk_table)

odbc_foreignkeys() retrieves information about foreign keys. Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • PKTABLE_QUALIFIER

  • PKTABLE_OWNER

  • PKTABLE_NAME

  • PKCOLUMN_NAME

  • FKTABLE_QUALIFIER

  • FKTABLE_OWNER

  • FKTABLE_NAME

  • FKCOLUMN_NAME

  • KEY_SEQ

  • UPDATE_RULE

  • DELETE_RULE

  • FK_NAME

  • PK_NAME

If pk_table contains a table name, odbc_foreignkeys() returns a result set containing the primary key of the specified table and all of the foreign keys that refer to it.

If fk_table contains a table name, odbc_foreignkeys() returns a result set containing all of the foreign keys in the specified table and the primary keys (in other tables) to which they refer.

If both pk_table and fk_table contain table names, odbc_foreignkeys() returns the foreign keys in the table specified in fk_table that refer to the primary key of the table specified in pk_table. This should be one key at most.

Předcházející | Domů | Další
odbc_field_type | Nahoru | odbc_free_result


odbc_free_result

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_free_result -- Free resources associated with a result

Description

bool odbc_free_result ( resource result_id)

Always returns TRUE.

odbc_free_result() only needs to be called if you are worried about using too much memory while your script is running. All result memory will automatically be freed when the script is finished. But, if you are sure you are not going to need the result data anymore in a script, you may call odbc_free_result(), and the memory associated with result_id will be freed.

Poznámka: If auto-commit is disabled (see odbc_autocommit()) and you call odbc_free_result() before committing, all pending transactions are rolled back.

Předcházející | Domů | Další
odbc_foreignkeys | Nahoru | odbc_gettypeinfo


odbc_gettypeinfo

(PHP 4 , PHP 5)

odbc_gettypeinfo -- Returns a result identifier containing information about data types supported by the data source.

Description

int odbc_gettypeinfo ( resource connection_id [, int data_type])

Retrieves information about data types supported by the data source. Returns an ODBC result identifier or FALSE on failure. The optional argument data_type can be used to restrict the information to a single data type.

The result set has the following columns:

  • TYPE_NAME

  • DATA_TYPE

  • PRECISION

  • LITERAL_PREFIX

  • LITERAL_SUFFIX

  • CREATE_PARAMS

  • NULLABLE

  • CASE_SENSITIVE

  • SEARCHABLE

  • UNSIGNED_ATTRIBUTE

  • MONEY

  • AUTO_INCREMENT

  • LOCAL_TYPE_NAME

  • MINIMUM_SCALE

  • MAXIMUM_SCALE

The result set is ordered by DATA_TYPE and TYPE_NAME.

Předcházející | Domů | Další
odbc_free_result | Nahoru | odbc_longreadlen


odbc_longreadlen

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_longreadlen -- Handling of LONG columns

Description

int odbc_longreadlen ( resource result_id, int length)

(ODBC SQL types affected: LONG, LONGVARBINARY) The number of bytes returned to PHP is controlled by the parameter length. If it is set to 0, Long column data is passed through to the client.

Poznámka: Handling of LONGVARBINARY columns is also affected by odbc_binmode().

Předcházející | Domů | Další
odbc_gettypeinfo | Nahoru | odbc_next_result


odbc_next_result

(PHP 4 >= 4.0.5, PHP 5)

odbc_next_result -- Checks if multiple results are available

Description

bool odbc_next_result ( resource result_id)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
odbc_longreadlen | Nahoru | odbc_num_fields


odbc_num_fields

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_num_fields -- Number of columns in a result

Description

int odbc_num_fields ( resource result_id)

odbc_num_fields() will return the number of fields (columns) in an ODBC result. This function will return -1 on error. The argument is a valid result identifier returned by odbc_exec().

Předcházející | Domů | Další
odbc_next_result | Nahoru | odbc_num_rows


odbc_num_rows

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_num_rows -- Number of rows in a result

Description

int odbc_num_rows ( resource result_id)

odbc_num_rows() will return the number of rows in an ODBC result. This function will return -1 on error. For INSERT, UPDATE and DELETE statements odbc_num_rows() returns the number of rows affected. For a SELECT clause this can be the number of rows available.

Note: Using odbc_num_rows() to determine the number of rows available after a SELECT will return -1 with many drivers.

Předcházející | Domů | Další
odbc_num_fields | Nahoru | odbc_pconnect


odbc_pconnect

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_pconnect -- Open a persistent database connection

Description

resource odbc_pconnect ( string dsn, string user, string password [, int cursor_type])

Returns an ODBC connection id or 0 (FALSE) on error. 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.

Poznámka: Persistent connections have no effect if PHP is used as a CGI program.

For information about the optional cursor_type parameter see the odbc_connect() function. For more information on persistent connections, refer to the PHP FAQ.

Předcházející | Domů | Další
odbc_num_rows | Nahoru | odbc_prepare


odbc_prepare

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_prepare -- Prepares a statement for execution

Description

resource odbc_prepare ( resource connection_id, string query_string)

Returns FALSE on error.

Returns an ODBC result identifier if the SQL command was prepared successfully. The result identifier can be used later to execute the statement with odbc_execute().

Předcházející | Domů | Další
odbc_pconnect | Nahoru | odbc_primarykeys


odbc_primarykeys

(PHP 4 , PHP 5)

odbc_primarykeys -- Returns a result identifier that can be used to fetch the column names that comprise the primary key for a table

Description

resource odbc_primarykeys ( resource connection_id, string qualifier, string owner, string table)

Returns the column names that comprise the primary key for a table. Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • TABLE_QUALIFIER

  • TABLE_OWNER

  • TABLE_NAME

  • COLUMN_NAME

  • KEY_SEQ

  • PK_NAME

Předcházející | Domů | Další
odbc_prepare | Nahoru | odbc_procedurecolumns


odbc_procedurecolumns

(PHP 4 , PHP 5)

odbc_procedurecolumns -- Retrieve information about parameters to procedures

Description

resource odbc_procedurecolumns ( resource connection_id [, string qualifier [, string owner [, string proc [, string column]]]])

Returns the list of input and output parameters, as well as the columns that make up the result set for the specified procedures. Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • PROCEDURE_QUALIFIER

  • PROCEDURE_OWNER

  • PROCEDURE_NAME

  • COLUMN_NAME

  • COLUMN_TYPE

  • DATA_TYPE

  • TYPE_NAME

  • PRECISION

  • LENGTH

  • SCALE

  • RADIX

  • NULLABLE

  • REMARKS

The result set is ordered by PROCEDURE_QUALIFIER, PROCEDURE_OWNER, PROCEDURE_NAME and COLUMN_TYPE.

The owner, proc and column arguments accept search patterns ('%' to match zero or more characters and '_' to match a single character).

Předcházející | Domů | Další
odbc_primarykeys | Nahoru | odbc_procedures


odbc_procedures

(PHP 4 , PHP 5)

odbc_procedures -- Get the list of procedures stored in a specific data source. Returns a result identifier containing the information.

Description

resource odbc_procedures ( resource connection_id [, string qualifier [, string owner [, string name]]])

Lists all procedures in the requested range. Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • PROCEDURE_QUALIFIER

  • PROCEDURE_OWNER

  • PROCEDURE_NAME

  • NUM_INPUT_PARAMS

  • NUM_OUTPUT_PARAMS

  • NUM_RESULT_SETS

  • REMARKS

  • PROCEDURE_TYPE

The owner and name arguments accept search patterns ('%' to match zero or more characters and '_' to match a single character).

Předcházející | Domů | Další
odbc_procedurecolumns | Nahoru | odbc_result_all


odbc_result_all

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_result_all -- Print result as HTML table

Description

int odbc_result_all ( resource result_id [, string format])

Returns the number of rows in the result or FALSE on error.

odbc_result_all() will print all rows from a result identifier produced by odbc_exec(). The result is printed in HTML table format. With the optional string argument format, additional overall table formatting can be done.

Předcházející | Domů | Další
odbc_procedures | Nahoru | odbc_result


odbc_result

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_result -- Get result data

Description

string odbc_result ( resource result_id, mixed field)

Returns the contents of the field.

field 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. For example:

$item_3 = odbc_result($Query_ID, 3);
$item_val = odbc_result($Query_ID, "val");

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.

Field indices start from 1. Regarding the way binary or long column data is returned refer to odbc_binmode() and odbc_longreadlen().

Předcházející | Domů | Další
odbc_result_all | Nahoru | odbc_rollback


odbc_rollback

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_rollback -- Rollback a transaction

Description

int odbc_rollback ( resource connection_id)

Rolls back all pending statements on connection_id. Returns TRUE on success, FALSE on failure.

Předcházející | Domů | Další
odbc_result | Nahoru | odbc_setoption


odbc_setoption

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

odbc_setoption -- Adjust ODBC settings. Returns FALSE if an error occurs, otherwise TRUE.

Description

int odbc_setoption ( resource id, int function, int option, int param)

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.

id 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.

Function is the ODBC function to use. The value should be 1 for SQLSetConnectOption() and 2 for SQLSetStmtOption().

Parameter option is the option to set.

Parameter param is the value for the given option.

Příklad 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);
?>

Předcházející | Domů | Další
odbc_rollback | Nahoru | odbc_specialcolumns


odbc_specialcolumns

(PHP 4 , PHP 5)

odbc_specialcolumns -- Returns either the optimal set of columns that uniquely identifies a row in the table or columns that are automatically updated when any value in the row is updated by a transaction

Description

resource odbc_specialcolumns ( resource connection_id, int type, string qualifier, string owner, string table, int scope, int nullable)

When the type argument is SQL_BEST_ROWID, odbc_specialcolumns() returns the column or columns that uniquely identify each row in the table.

When the type argument is SQL_ROWVER, odbc_specialcolumns() returns the optimal column or set of columns that, by retrieving values from the column or columns, allows any row in the specified table to be uniquely identified.

Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • SCOPE

  • COLUMN_NAME

  • DATA_TYPE

  • TYPE_NAME

  • PRECISION

  • LENGTH

  • SCALE

  • PSEUDO_COLUMN

The result set is ordered by SCOPE.

Předcházející | Domů | Další
odbc_setoption | Nahoru | odbc_statistics


odbc_statistics

(PHP 4 , PHP 5)

odbc_statistics -- Retrieve statistics about a table

Description

resource odbc_statistics ( resource connection_id, string qualifier, string owner, string table_name, int unique, int accuracy)

Get statistics about a table and its indexes. Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • TABLE_QUALIFIER

  • TABLE_OWNER

  • TABLE_NAME

  • NON_UNIQUE

  • INDEX_QUALIFIER

  • INDEX_NAME

  • TYPE

  • SEQ_IN_INDEX

  • COLUMN_NAME

  • COLLATION

  • CARDINALITY

  • PAGES

  • FILTER_CONDITION

The result set is ordered by NON_UNIQUE, TYPE, INDEX_QUALIFIER, INDEX_NAME and SEQ_IN_INDEX.

Předcházející | Domů | Další
odbc_specialcolumns | Nahoru | odbc_tableprivileges


odbc_tableprivileges

(PHP 4 , PHP 5)

odbc_tableprivileges -- Lists tables and the privileges associated with each table

Description

int odbc_tableprivileges ( resource connection_id [, string qualifier [, string owner [, string name]]])

Lists tables in the requested range and the privileges associated with each table. Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • TABLE_QUALIFIER

  • TABLE_OWNER

  • TABLE_NAME

  • GRANTOR

  • GRANTEE

  • PRIVILEGE

  • IS_GRANTABLE

The result set is ordered by TABLE_QUALIFIER, TABLE_OWNER and TABLE_NAME.

The owner and name arguments accept search patterns ('%' to match zero or more characters and '_' to match a single character).

Předcházející | Domů | Další
odbc_statistics | Nahoru | odbc_tables


odbc_tables

(PHP 3>= 3.0.17, PHP 4 , PHP 5)

odbc_tables -- Get the list of table names stored in a specific data source. Returns a result identifier containing the information.

Description

int odbc_tables ( resource connection_id [, string qualifier [, string owner [, string name [, string types]]]])

Lists all tables in the requested range. Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • TABLE_QUALIFIER

  • TABLE_OWNER

  • TABLE_NAME

  • TABLE_TYPE

  • REMARKS

The result set is ordered by TABLE_TYPE, TABLE_QUALIFIER, TABLE_OWNER and TABLE_NAME.

The owner and name arguments accept search patterns ('%' to match zero or more characters and '_' to match a single character).

To support enumeration of qualifiers, owners, and table types, the following special semantics for the qualifier, owner, name, and table_type are available:

  • If qualifier is a single percent character (%) and owner and name are empty strings, then the result set contains a list of valid qualifiers for the data source. (All columns except the TABLE_QUALIFIER column contain NULLs.)

  • If owner is a single percent character (%) and qualifier and name are empty strings, then the result set contains a list of valid owners for the data source. (All columns except the TABLE_OWNER column contain NULLs.)

  • If table_type is a single percent character (%) and qualifier, owner and name are empty strings, then the result set contains a list of valid table types for the data source. (All columns except the TABLE_TYPE column contain NULLs.)

If table_type is not an empty string, it must contain a list of comma-separated values for the types of interest; each value may be enclosed in single quotes (') or unquoted. For example, "'TABLE','VIEW'" or "TABLE, VIEW". If the data source does not support a specified table type, odbc_tables() does not return any results for that type.

See also odbc_tableprivileges() to retrieve associated privileges.

Předcházející | Domů | Další
odbc_tableprivileges | Nahoru | Object Aggregation/Composition Functions


Object Aggregation/Composition Functions

Manuál PHP
Předcházející Další

LXXIII. Object Aggregation/Composition Functions

Varování

Toto rozšíření je EXPERIMENTÁLNÍ. Chování tohoto rozšíření, názvy funkcí a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může bez ohlášení změnit. Berte to v úvahu a používejte tento modul na vlastní nebezpečí.

Úvod

In Object Oriented Programming, it is common to see the composition of simple classes (and/or instances) into a more complex one. This is a flexible strategy for building complicated objects and object hierarchies and can function as a dynamic alternative to multiple inheritance. There are two ways to perform class (and/or object) composition depending on the relationship between the composed elements: Association and Aggregation.

An Association is a composition of independently constructed and externally visible parts. When we associate classes or objects, each one keeps a reference to the ones it is associated with. When we associate classes statically, one class will contain a reference to an instance of the other class. For example:

Příklad 1. Class association

<?php
class DateTime {

   function DateTime()
   {
       // empty constructor
   }

   function now()
   {
       return date("Y-m-d H:i:s");
   }
}

class Report {
   var $_dt;
   // more properties ...

   function Report()
   {
       $this->_dt = new DateTime();
       // initialization code ...
   }

   function generateReport()
   {
       $dateTime = $_dt->now();
       // more code ...
   }

   // more methods ...
}

$rep = new Report();
?>
We can also associate instances at runtime by passing a reference in a constructor (or any other method), which allow us to dynamically change the association relationship between objects. We will modify the example above to illustrate this point:

Příklad 2. Object association

<?php
class DateTime {
   // same as previous example
}

class DateTimePlus {
   var $_format;

   function DateTimePlus($format="Y-m-d H:i:s")
   {
       $this->_format = $format;
   }

   function now()
   {
       return date($this->_format);
   }
}

class Report {
   var $_dt;    // we'll keep the reference to DateTime here
   // more properties ...

   function Report()
   {
       // do some initialization
   }

   function setDateTime(&$dt)
   {
       $this->_dt =& $dt;
   }

   function generateReport()
   {
       $dateTime = $this->_dt->now();
       // more code ...
   }

   // more methods ...
}

$rep = new Report();
$dt = new DateTime();
$dtp = new DateTimePlus("l, F j, Y (h:i:s a, T)");

// generate report with simple date for web display
$rep->setDateTime(&$dt);
echo $rep->generateReport();

// later on in the code ...

// generate report with fancy date
$rep->setDateTime(&$dtp);
$output = $rep->generateReport();
// save $output in database
// ... etc ...
?>

Aggregation, on the other hand, implies encapsulation (hidding) of the parts of the composition. We can aggregate classes by using a (static) inner class (PHP does not yet support inner classes), in this case the aggregated class definition is not accessible, except through the class that contains it. The aggregation of instances (object aggregation) involves the dynamic creation of subobjects inside an object, in the process, expanding the properties and methods of that object.

Object aggregation is a natural way of representing a whole-part relationship, (for example, molecules are aggregates of atoms), or can be used to obtain an effect equivalent to multiple inheritance, without having to permanently bind a subclass to two or more parent classes and their interfaces. In fact object aggregation can be more flexible, in which we can select what methods or properties to "inherit" in the aggregated object.

Příklady

We define 3 classes, each implementing a different storage method:

Příklad 3. storage_classes.inc

<?php
class FileStorage {
    var $data;

    function FileStorage($data)
    {
        $this->data = $data;
    }

    function write($name)
    {
        $fp = fopen(name, "w");
        fwrite($fp, $this->data);
        fclose($data);
    }
}

class WDDXStorage {
    var $data;
    var $version = "1.0";
    var $_id; // "private" variable

    function WDDXStorage($data)
    {
        $this->data = $data;
        $this->_id = $this->_genID();
    }

    function store()
    {
        if ($this->_id) {
            $pid = wddx_packet_start($this->_id);
            wddx_add_vars($pid, "this->data");
            $packet = wddx_packet_end($pid);
        } else {
            $packet = wddx_serialize_value($this->data);
        }
        $dbh = dba_open("varstore", "w", "gdbm");
        dba_insert(md5(uniqid("", true)), $packet, $dbh);
        dba_close($dbh);
    }

    // a private method
    function _genID()
    {
        return md5(uniqid(rand(), true));
    }
}

class DBStorage {
    var $data;
    var $dbtype = "mysql";

    function DBStorage($data)
    {
        $this->data = $data;
    }

    function save()
    {
        $dbh = mysql_connect();
        mysql_select_db("storage", $dbh);
        $serdata = serialize($this->data);
        mysql_query("insert into vars ('$serdata',now())", $dbh);
        mysql_close($dbh);
    }
}

?>

We then instantiate a couple of objects from the defined classes, and perform some aggregations and deaggregations, printing some object information along the way:

Příklad 4. test_aggregation.php

<?php
include "storageclasses.inc";

// some utilty functions

function p_arr($arr)
{
    foreach ($arr as $k => $v)
        $out[] = "\t$k => $v";
    return implode("\n", $out);
}

function object_info($obj)
{
    $out[] = "Class: " . get_class($obj);
    foreach (get_object_vars($obj) as $var=>$val) {
        if (is_array($val)) {
            $out[] = "property: $var (array)\n" . p_arr($val);
        } else {
            $out[] = "property: $var = $val";
        }
    }
    foreach (get_class_methods($obj) as $method) {
        $out[] = "method: $method";
    }
    return implode("\n", $out);
}

$data = array(M_PI, "kludge != cruft");

// we create some basic objects
$fs = new FileStorage($data);
$ws = new WDDXStorage($data);

// print information on the objects
echo "\$fs object\n";
echo object_info($fs) . "\n";
echo "\n\$ws object\n";
echo object_info($ws) . "\n";

// do some aggregation

echo "\nLet's aggregate \$fs to the WDDXStorage class\n";
aggregate($fs, "WDDXStorage");
echo "\$fs object\n";
echo object_info($fs) . "\n";

echo "\nNow let us aggregate it to the DBStorage class\n";
aggregate($fs, "DBStorage");
echo "\$fs object\n";
echo object_info($fs) . "\n";

echo "\nAnd finally deaggregate WDDXStorage\n";
deaggregate($fs, "WDDXStorage");
echo "\$fs object\n";
echo object_info($fs) . "\n";

?>

We will now consider the output to understand some of the side-effects and limitation of object aggregation in PHP. First, the newly created $fs and $ws objects give the expected output (according to their respective class declaration). Note that for the purposes of object aggregation, private elements of a class/object begin with an underscore character ("_"), even though there is not real distinction between public and private class/object elements in PHP.

$fs object
Class: filestorage
property: data (array)
    0 => 3.1415926535898
    1 => kludge != cruft
method: filestorage
method: write

$ws object
Class: wddxstorage
property: data (array)
    0 => 3.1415926535898
    1 => kludge != cruft
property: version = 1.0
property: _id = ID::9bb2b640764d4370eb04808af8b076a5
method: wddxstorage
method: store
method: _genid

We then aggregate $fs with the WDDXStorage class, and print out the object information. We can see now that even though nominally the $fs object is still of FileStorage, it now has the property $version, and the method store(), both defined in WDDXStorage. One important thing to note is that it has not aggregated the private elements defined in the class, which are present in the $ws object. Also absent is the constructor from WDDXStorage, which will not be logical to aggegate.

Let's aggregate $fs to the WDDXStorage class
$fs object
Class: filestorage
property: data (array)
    0 => 3.1415926535898
    1 => kludge != cruft
property: version = 1.0
method: filestorage
method: write
method: store

The proccess of aggregation is cummulative, so when we aggregate $fs with the class DBStorage, generating an object that can use the storage methods of all the defined classes.

Now let us aggregate it to the DBStorage class
$fs object
Class: filestorage
property: data (array)
    0 => 3.1415926535898
    1 => kludge != cruft
property: version = 1.0
property: dbtype = mysql
method: filestorage
method: write
method: store
method: save

Finally, the same way we aggregated properties and methods dynamically, we can also deaggregate them from the object. So, if we deaggregate the class WDDXStorage from $fs, we will obtain:

And deaggregate the WDDXStorage methods and properties
$fs object
Class: filestorage
property: data (array)
    0 => 3.1415926535898
    1 => kludge != cruft
property: dbtype = mysql
method: filestorage
method: write
method: save

One point that we have not mentioned above, is that the process of aggregation will not override existing properties or methods in the objects. For example, the class FileStorage defines a $data property, and the class WDDXStorage also defines a similar property which will not override the one in the object acquired during instantiation from the class FileStorage.

Obsah
aggregate_info -- Returns an associative array of the methods and properties from each class that has been aggregated to the object.
aggregate_methods_by_list -- Selective dynamic class methods aggregation to an object
aggregate_methods_by_regexp -- Selective class methods aggregation to an object using a regular expression
aggregate_methods -- Dynamic class and object aggregation of methods
aggregate_properties_by_list -- Selective dynamic class properties aggregation to an object
aggregate_properties_by_regexp -- Selective class properties aggregation to an object using a regular expression
aggregate_properties -- Dynamic aggregation of class properties to an object
aggregate -- Dynamic class and object aggregation of methods and properties
aggregation_info -- Alias of aggregate_info()
deaggregate -- Removes the aggregated methods and properties from an object

Předcházející | Domů | Další
odbc_tables | Nahoru | aggregate_info


aggregate_info

(no version information, might be only in CVS)

aggregate_info -- Returns an associative array of the methods and properties from each class that has been aggregated to the object.

Description

array aggregate_info ( object object)

Will return the aggregation information for a particular object as an associative array of arrays of methods and properties. The key for the main array is the name of the aggregated class.

For example the code below

Příklad 1. Using aggregate_info()

<?php

class Slicer {
    var $vegetable;

    function Slicer($vegetable)
    {
        $this->vegetable = $vegetable;
    }

    function slice_it($num_cuts)
    {
        echo "Doing some simple slicing\n";
        for ($i=0; $i < $num_cuts; $i++) {
            // do some slicing
        }
    }
}

class Dicer {
    var $vegetable;
    var $rotation_angle = 90;   // degrees

    function Dicer($vegetable)
    {
        $this->vegetable = $vegetable;
    }

    function dice_it($num_cuts)
    {
        echo "Cutting in one direction\n";
        for ($i=0; $i < $num_cuts; $i++) {
            // do some cutting
        }
        $this->rotate($this->rotation_angle);
        echo "Cutting in a second direction\n";
        for ($i=0; $i < $num_cuts; $i++) {
            // do some more cutting
        }
    }

    function rotate($deg)
    {
        echo "Now rotating {$this->vegetable} {$deg} degrees\n";
    }

    function _secret_super_dicing($num_cuts)
    {
        // so secret we cannot show you ;-)
    }
}

$obj = new Slicer('onion');
aggregate($obj, 'Dicer');
print_r(aggregate_info($obj));
?>

Will produce the output

Array
(
    [dicer] => Array
        (
            [methods] => Array
                (
                    [0] => dice_it
                    [1] => rotate
                )

            [properties] => Array
                (
                    [0] => rotation_angle
                )

        )

)
As you can see, all properties and methods of the Dicer class have been aggregated into our new object, with the exception of the class constructor and the method _secret_super_dicing

See also
aggregate(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp(),
deaggregate()

Předcházející | Domů | Další
Object Aggregation/Composition Functions | Nahoru | aggregate_methods_by_list


aggregate_methods_by_list

(PHP 4 >= 4.2.0)

aggregate_methods_by_list -- Selective dynamic class methods aggregation to an object

Description

void aggregate_methods_by_list ( object object, string class_name, array methods_list [, bool exclude])

Aggregates methods from a class to an existing object using a list of method names. The optional paramater exclude is used to decide whether the list contains the names of methods to include in the aggregation (i.e. exclude is FALSE, which is the default value), or to exclude from the aggregation (exclude is TRUE).

The class constructor or methods whose names start with an underscore character (_), which are considered private to the aggregated class, are always excluded.

See also
aggregate(),
aggregate_info(),
aggregate_methods(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp(),
deaggregate()

Předcházející | Domů | Další
aggregate_info | Nahoru | aggregate_methods_by_regexp


aggregate_methods_by_regexp

(PHP 4 >= 4.2.0)

aggregate_methods_by_regexp -- Selective class methods aggregation to an object using a regular expression

Description

void aggregate_methods_by_regexp ( object object, string class_name, string regexp [, bool exclude])

Aggregates methods from a class to an existing object using a regular expresion to match method names. The optional paramater exclude is used to decide whether the regular expression will select the names of methods to include in the aggregation (i.e. exclude is FALSE, which is the default value), or to exclude from the aggregation (exclude is TRUE).

The class constructor or methods whose names start with an underscore character (_), which are considered private to the aggregated class, are always excluded.

See also
aggregate(),
aggregate_info(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp(),
deaggregate()

Předcházející | Domů | Další
aggregate_methods_by_list | Nahoru | aggregate_methods


aggregate_methods

(PHP 4 >= 4.2.0)

aggregate_methods -- Dynamic class and object aggregation of methods

Description

void aggregate_methods ( object object, string class_name)

Aggregates all methods defined in a class to an existing object, except for the class constructor, or methods whose names start with an underscore character (_) which are considered private to the aggregated class.

See also
aggregate(),
aggregate_info(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp(),
deaggregate()

Předcházející | Domů | Další
aggregate_methods_by_regexp | Nahoru | aggregate_properties_by_list


aggregate_properties_by_list

(PHP 4 >= 4.2.0)

aggregate_properties_by_list -- Selective dynamic class properties aggregation to an object

Description

void aggregate_properties_by_list ( object object, string class_name, array properties_list [, bool exclude])

Aggregates properties from a class to an existing object using a list of property names. The optional paramater exclude is used to decide whether the list contains the names of class properties to include in the aggregation (i.e. exclude is FALSE, which is the default value), or to exclude from the aggregation (exclude is TRUE).

The properties whose names start with an underscore character (_), which are considered private to the aggregated class, are always excluded.

See also
aggregate(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_regexp(),
aggregate_info(),
deaggregate()

Předcházející | Domů | Další
aggregate_methods | Nahoru | aggregate_properties_by_regexp


aggregate_properties_by_regexp

(PHP 4 >= 4.2.0)

aggregate_properties_by_regexp -- Selective class properties aggregation to an object using a regular expression

Description

void aggregate_properties_by_regexp ( object object, string class_name, string regexp [, bool exclude])

Aggregates properties from a class to an existing object using a regular expresion to match their names. The optional paramater exclude is used to decide whether the regular expression will select the names of class properties to include in the aggregation (i.e. exclude is FALSE, which is the default value), or to exclude from the aggregation (exclude is TRUE).

The properties whose names start with an underscore character (_), which are considered private to the aggregated class, are always excluded.

See also
aggregate(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_info(),
deaggregate()

Předcházející | Domů | Další
aggregate_properties_by_list | Nahoru | aggregate_properties


aggregate_properties

(PHP 4 >= 4.2.0)

aggregate_properties -- Dynamic aggregation of class properties to an object

Description

void aggregate_properties ( object object, string class_name)

Aggregates all properties defined in a class to an existing object, except for properties whose names start with an underscore character (_) which are considered private to the aggregated class.

See also
aggregate(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp(),
aggregate_info(),
deaggregate()

Předcházející | Domů | Další
aggregate_properties_by_regexp | Nahoru | aggregate


aggregate

(PHP 4 >= 4.2.0)

aggregate -- Dynamic class and object aggregation of methods and properties

Description

void aggregate ( object object, string class_name)

Aggregates methods and properties defined in a class to an existing object. Methods and properties with names starting with an underscore character (_) are considered private to the aggregated class and are not used, constructors are also excluded from the aggregation procedure.

See also
aggregate_info(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp(),
deaggregate()

Předcházející | Domů | Další
aggregate_properties | Nahoru | aggregation_info


aggregation_info

aggregation_info -- Alias of aggregate_info()

Description

This function is an alias of aggregate_info().

Předcházející | Domů | Další
aggregate | Nahoru | deaggregate


deaggregate

(PHP 4 >= 4.2.0)

deaggregate -- Removes the aggregated methods and properties from an object

Description

void deaggregate ( object object [, string class_name])

Removes the methods and properties from classes that were aggregated to an object. If the optional class_name parameters is passed, only those methods and properties defined in that class are removed, otherwise all aggregated methods and properties are eliminated.

See also
aggregate(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp(),
aggregate_info()

Předcházející | Domů | Další
aggregation_info | Nahoru | Oracle 8 functions


Oracle 8 functions

Manuál PHP
Předcházející Další

LXXIV. Oracle 8 functions

Úvod

These functions allow you to access Oracle9, Oracle8 and Oracle7 databases. It uses the Oracle Call Interface (OCI).

This extension is more flexible than the old Oracle extension. It supports binding of global and local PHP variables to Oracle placeholders, has full LOB, FILE and ROWID support and allows you to use user-supplied define variables. You are recommended to use this extension instead of old Oracle extension where possible.

Požadavky

You will need the Oracle client libraries to use this extension. Windows users will need at least Oracle version 8.1 to use the php_oci8.dll dll.

Before using this extension, make sure that you have set up your Oracle environment variables properly for the Oracle user, as well as your web daemon user. The variables you might need to set are as follows:

  • ORACLE_HOME

  • ORACLE_SID

  • LD_PRELOAD

  • LD_LIBRARY_PATH

  • NLS_LANG

  • ORA_NLS33

After setting up the environment variables for your webserver user, be sure to also add the webserver user (nobody, www) to the oracle group.

If your webserver doesn't start or crashes at startup: Check that Apache is linked with the pthread library:

# 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)

If the libpthread is not listed you have to reinstall Apache:

# cd /usr/src/apache_1.3.xx
# make clean
# LIBS=-lpthread ./config.status
# make
# make install

Please note that on some systems like UnixWare it is libthread instead of libpthread. PHP and Apache have to be configured with EXTRA_LIBS=-lthread.

Instalace

You have to compile PHP with the option --with-oci8[=DIR], where DIR defaults to your environment variable ORACLE_HOME.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

OCI_DEFAULT (integer)

Statement execution mode. Statement is not committed automatically when using this mode.

OCI_DESCRIBE_ONLY (integer)

Statement execution mode. Use this mode if you don't want to really execute query, but only get select-list description.

OCI_COMMIT_ON_SUCCESS (integer)

Statement execution mode. Statement is automatically commited after oci_execute() call.

OCI_EXACT_FETCH (integer)

Statement fetch mode. Used when the application knows in advance exactly how many rows it will be fetching. This mode turns prefetching off for Oracle release 8 or later mode. Cursor is cancelled after the desired rows are fetched and may result in reduced server-side resource usage.

OCI_SYSDATE (integer)

OCI_B_BFILE (integer)

Used with oci_bind_by_name() when binding BFILEs.

OCI_B_CFILEE (integer)

Used with oci_bind_by_name() when binding CFILEs.

OCI_B_CLOB (integer)

Used with oci_bind_by_name() when binding CLOBs.

OCI_B_BLOB (integer)

Used with oci_bind_by_name() when binding BLOBs.

OCI_B_ROWID (integer)

Used with oci_bind_by_name() when binding ROWIDs.

OCI_B_CURSOR (integer)

Used with oci_bind_by_name() when binding cursors, previously allocated with oci_new_descriptor().

OCI_B_NTY (integer)

Used with oci_bind_by_name() when binding named data types.

OCI_B_BIN (integer)

SQLT_BFILEE (integer)

The same as OCI_B_BFILE.

SQLT_CFILEE (integer)

The same as OCI_B_CFILEE.

SQLT_CLOB (integer)

The same as OCI_B_CLOB.

SQLT_BLOB (integer)

The same as OCI_B_BLOB.

SQLT_RDD (integer)

The same as OCI_B_ROWID.

SQLT_NTY (integer)

The same as OCI_B_NTY.

OCI_FETCHSTATEMENT_BY_COLUMN (integer)

Default mode of oci_fetch_all().

OCI_FETCHSTATEMENT_BY_ROW (integer)

Alternative mode of oci_fetch_all().

OCI_ASSOC (integer)

Used with oci_fetch_all() and oci_fetch_array() to get an associative array as a result.

OCI_NUM (integer)

Used with oci_fetch_all() and oci_fetch_array() to get an enumerated array as a result.

OCI_BOTH (integer)

Used with oci_fetch_all() and oci_fetch_array() to get an array with both associative and number indices.

OCI_RETURN_NULLS (integer)

Used with oci_fetch_array() to get empty array elements if field's value is NULL.

OCI_RETURN_LOBS (integer)

Used with oci_fetch_array() to get value of LOB instead of the descriptor.

OCI_DTYPE_FILE (integer)

This flag tells oci_new_descriptor() to initialize new FILE descriptor.

OCI_DTYPE_LOB (integer)

This flag tells oci_new_descriptor() to initialize new LOB descriptor.

OCI_DTYPE_ROWID (integer)

This flag tells oci_new_descriptor() to initialize new ROWID descriptor.

OCI_D_FILE (integer)

The same as OCI_DTYPE_FILE.

OCI_D_LOB (integer)

The same as OCI_DTYPE_LOB.

OCI_D_ROWID (integer)

The same as OCI_DTYPE_ROWID.

Příklady

Příklad 1. OCI Hints

<?php
// by sergo at bacup dot ru

// Use option: OCI_DEFAULT for execute command to delay execution
OCIExecute($stmt, OCI_DEFAULT);

// for retrieve data use (after fetch):

$result = OCIResult($stmt, $n);
if (is_object($result)) $result = $result->load();

// For INSERT or UPDATE statement use:

$sql = "insert into table (field1, field2) values (field1 = 'value',
 field2 = empty_clob()) returning field2 into :field2";
OCIParse($conn, $sql);
$clob = OCINewDescriptor($conn, OCI_D_LOB);
OCIBindByName($stmt, ":field2", &$clob, -1, OCI_B_CLOB);
OCIExecute($stmt, OCI_DEFAULT);
$clob->save("some text");
OCICommit($conn);

?>

You can easily access stored procedures in the same way as you would from the commands line.

Příklad 2. Using Stored Procedures

<?php
// by webmaster at remoterealty dot com
$sth = OCIParse($dbh, "begin sp_newaddress( :address_id, '$firstname',
 '$lastname', '$company', '$address1', '$address2', '$city', '$state',
 '$postalcode', '$country', :error_code );end;");

// This calls stored procedure sp_newaddress, with :address_id being an
// in/out variable and :error_code being an out variable.
// Then you do the binding:

   OCIBindByName($sth, ":address_id", $addr_id, 10);
   OCIBindByName($sth, ":error_code", $errorcode, 10);
   OCIExecute($sth);

?>

Obsah
oci_bind_by_name -- Binds the PHP variable to the Oracle placeholder
oci_cancel -- Cancels reading from cursor
oci_close -- Closes Oracle connection
collection->append -- Appends an object to the collection
collection->assign -- Assigns a value to the collection from another existing collection
collection->assignElem -- Assigns a value to the element of the collection
collection->getElem -- Returns value of the element
collection->max -- Gets the maximum number of elements in the collection
collection->size -- Returns size of the collection
collection->trim -- Trims elements from the end of the collection
oci_commit -- Commits outstanding statements
oci_connect -- Establishes a connection to Oracle server
oci_define_by_name -- Uses a PHP variable for the define-step during a SELECT
oci_error -- Returns the last error found
oci_execute -- Executes a statement
oci_fetch_all -- Fetches all rows of result data into an array
oci_fetch_array -- Returns the next row from the result data as an associative or numeric array, or both
oci_fetch_assoc -- Returns the next row from the result data as an associative array
oci_fetch_object -- Returns the next row from the result data as an object
oci_fetch_row -- Returns the next row from the result data as a numeric array
oci_fetch -- Fetches the next row into result-buffer
oci_field_is_null -- Checks if the field 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 field's data type
collection->free -- Frees resources associated with collection object
descriptor->free -- Frees resources associated with descriptor
oci_free_statement -- Frees all resources associated with statement or cursor
oci_internal_debug -- Enables or disables internal debug output
lob->append -- Appends data from the large object to another large object
lob->close -- Closes LOB descriptor
oci_lob_copy -- Copies large object
lob->eof -- Tests for end-of-file on a large object's descriptor
lob->erase -- Erases a specified portion of the internal LOB data
lob->export -- Exports LOB's contents to a file
lob->flush -- Flushes/writes buffer of the LOB to the server
lob->import -- Imports file data to the LOB
oci_lob_is_equal -- Compares two LOB/FILE locators for equality
lob->load -- Returns large object's contents
lob->read -- Reads part of large object
lob->rewind -- Moves the internal pointer to the beginning of the large object
lob->save -- Saves data to the large object
lob->seek -- Sets the internal pointer of the large object
lob->size -- Returns size of large object
lob->tell -- Returns current position of internal pointer of large object
lob->truncate -- Truncates large object
lob->writeTemporary -- Writes temporary large object
lob->write -- Writes data to the large object
oci_new_collection -- Allocates new collection object
oci_new_connect -- Establishes a new connection to the Oracle server
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 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_result -- Returns field's value from the fetched row
oci_rollback -- Rolls back outstanding transaction
oci_server_version -- Returns server version
oci_set_prefetch -- Sets number of rows to be prefetched
oci_statement_type -- Returns the type of an OCI statement
ocibindbyname -- Bind a PHP variable to an Oracle Placeholder
ocicancel -- Cancel reading from cursor
ocicloselob -- Closes lob descriptor
ocicollappend -- Append an object to the collection
ocicollassign -- Assign a collection from another existing collection
ocicollassignelem -- Assign element val to collection at index ndx
ocicollgetelem -- Retrieve the value at collection index ndx
ocicollmax -- Return the max value of a collection. For a varray this is the maximum length of the array
ocicollsize -- Return the size of a collection
ocicolltrim -- Trim num elements from the end of a collection
ocicolumnisnull -- Test whether a result column is NULL
ocicolumnname -- Returns the name of a column
ocicolumnprecision -- Tell the precision of a column
ocicolumnscale -- Tell the scale of a column
ocicolumnsize -- Return result column size
ocicolumntype -- Returns the data type of a column
ocicolumntyperaw -- Tell the raw oracle data type of a column
ocicommit -- Commits outstanding transactions
ocidefinebyname -- Use a PHP variable for the define-step during a SELECT
ocierror -- Return the last error of stmt|conn|global
ociexecute -- Execute a statement
ocifetch -- Fetches the next row into result-buffer
ocifetchinto -- Fetches the next row into an array
ocifetchstatement -- Fetch all rows of result data into an array
ocifreecollection -- Deletes collection object
ocifreecursor -- Free all resources associated with a cursor
ocifreedesc -- Deletes a large object descriptor
ocifreestatement -- Free all resources associated with a statement
lob->getBuffering -- Returns current state of buffering for large object
ociinternaldebug -- Enables or disables internal debug output
ociloadlob -- Loads a large object
ocilogoff -- Disconnects from Oracle server
ocilogon -- Establishes a connection to Oracle
ocinewcollection -- Initialize a new collection
ocinewcursor -- Return a new cursor (Statement-Handle)
ocinewdescriptor -- Initialize a new empty LOB or FILE descriptor
ocinlogon -- Establishes a new connection to Oracle
ocinumcols -- Return the number of result columns in a statement
ociparse -- Parse a query and return an Oracle statement
ociplogon -- Connect to an Oracle database using a persistent connection
ociresult -- Returns column value for fetched row
ocirollback -- Rolls back outstanding transactions
ocirowcount -- Gets the number of affected rows
ocisavelob -- Saves a large object
ocisavelobfile -- Saves a large object file
ociserverversion -- Return a string containing server version information
lob->setBuffering -- Changes current state of buffering for large object
ocisetprefetch -- Sets number of rows to be prefetched
ocistatementtype -- Return the type of an OCI statement
ociwritelobtofile -- Saves a large object file
ociwritetemporarylob -- Writes temporary blob

Předcházející | Domů | Další
deaggregate | Nahoru | oci_bind_by_name


oci_bind_by_name

(PHP 5)

oci_bind_by_name -- Binds the PHP variable to the Oracle placeholder

Description

bool oci_bind_by_name ( resource stmt, string ph_name, mixed &variable [, int maxlength [, int type]])

oci_bind_by_name() binds the PHP variable variable to the Oracle placeholder ph_name. Whether it will be used for input or output will be determined at run-time and the necessary storage space will be allocated. The length parameter sets the maximum length for the bind. If you set length to -1 oci_bind_by_name() will use the current length of variable to set the maximum length.

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. The type parameter tells Oracle which descriptor is used. Possible values are:

  • OCI_B_FILE - for BFILEs;

  • OCI_B_CFILE - for CFILEs;

  • OCI_B_CLOB - for CLOBs;

  • OCI_B_BLOB - for BLOBs;

  • OCI_B_ROWID - for ROWIDs;

  • OCI_B_NTY - for named datatypes;

  • OCI_B_CURSOR - for cursors, that were created before with oci_new_cursor().

Příklad 1. oci_bind_by_name()example

<?php
/* oci_bind_by_name example thies at thieso dot net (980221)
  inserts 3 records into emp, and uses the ROWID for updating the
  records just after the insert.
*/

$conn = oci_connect("scott", "tiger");

$stmt = oci_parse($conn, "
                          INSERT INTO
                                     emp (empno, ename)
                                              VALUES
                                     (:empno,:ename)
                            RETURNING
                                     ROWID
                                 INTO
                                     :rid
                                         ");

$data = array(
              1111 => "Larry",
              2222 => "Bill",
              3333 => "Jim"
             );

$rowid = oci_new_descriptor($conn, OCI_D_ROWID);

oci_bind_by_name($stmt, ":empno", $empno, 32);
oci_bind_by_name($stmt, ":ename", $ename, 32);
oci_bind_by_name($stmt, ":rid",   $rowid, -1, OCI_B_ROWID);

$update = oci_parse($conn, "
                            UPDATE
                                  emp
                               SET
                                  sal = :sal
                             WHERE
                                  ROWID = :rid
                             ");
oci_bind_by_name($update, ":rid", $rowid, -1, OCI_B_ROWID);
oci_bind_by_name($update, ":sal", $sal,   32);

$sal = 10000;

while (list($empno, $ename) = each($data)) {
    oci_execute($stmt);
 oci_execute($update);
}

$rowid->free();

oci_free_statement($update);
oci_free_statement($stmt);

$stmt = oci_parse($conn, "
                          SELECT
                                *
                            FROM
                                emp
                           WHERE
                                empno
                              IN
                                (1111,2222,3333)
                              ");
oci_execute($stmt);

while ($row = oci_fetch_assoc($stmt)) {
    var_dump($row);
}

oci_free_statement($stmt);

/* delete our "junk" from the emp table.... */
$stmt = oci_parse($conn, "
                          DELETE FROM
                                     emp
                                WHERE
                                     empno
                                   IN
                                     (1111,2222,3333)
                                   ");
oci_execute($stmt);
oci_free_statement($stmt);

oci_close($conn);
?>

Remember, that this function strips trailing whitespace. See the following example:

Příklad 2. oci_bind_by_name() example

<?php
    $connection = oci_connect('apelsin','kanistra');
    $query = "INSERT INTO test_table VALUES(:id, :text)";

    $statement = oci_parse($query);
    oci_bind_by_name($statement, ":id", 1);
    oci_bind_by_name($statement, ":text", "trailing spaces follow     ");
    oci_execute($statement);
    /*
     This code will insert into DB string 'trailing spaces follow', without
     trailing spaces
    */
?>

Příklad 3. oci_bind_by_name() example

<?php
    $connection = oci_connect('apelsin','kanistra');
    $query = "INSERT INTO test_table VALUES(:id, 'trailing spaces follow      ')";

    $statement = oci_parse($query);
    oci_bind_by_name($statement, ":id", 1);
    oci_execute($statement);
    /*
     And this code will add 'trailing spaces follow      ', preserving
     trailing whitespaces
    */
?>

Varování

Do not use magic_quotes_gpc or addslashes() and oci_bind_by_name() simultaneously as no quoting is needed and any magically applied quotes will be written into your database as oci_bind_by_name() is not able to distinguish magically added quotings from those added intentionally.

Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: In PHP versions before 5.0.0 you must use ocibindbyname() instead. This name still can be used, it was left as alias of oci_bind_by_name() for downwards compatability. This, however, is deprecated and not recommended.

Předcházející | Domů | Další
Oracle 8 functions | Nahoru | oci_cancel


oci_cancel

(PHP 5)

oci_cancel -- Cancels reading from cursor

Description

bool oci_cancel ( resource stmt)

oci_cancel() invalidates a cursor, freeing all associated resources and cancels the ability to read from it.

Vrací TRUE při úspěchu, FALSE při selhání.

In PHP versions before 5.0.0 you must use ocicancel() instead. This name still can be used, it was left as alias of oci_cancel() for downwards compatability. This, however, is deprecated and not recommended.

Předcházející | Domů | Další
oci_bind_by_name | Nahoru | oci_close


oci_close

(PHP 5)

oci_close -- Closes Oracle connection

Description

bool oci_close ( resource connection)

oci_close() closes the Oracle connection connection.

Poznámka: As non-persistent links are closed automatically at the end of script execution, calling this function is not required. Because of this and the method the extension uses to handle connection resources, oci_close() currently provides no actual functionality.

Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: In PHP versions before 5.0.0 you must use ociclose() instead. This name still can be used, it was left as alias of oci_close() for downwards compatability. This, however, is deprecated and not recommended.

Předcházející | Domů | Další
oci_cancel | Nahoru | collection->append


collection->append

(no version information, might be only in CVS)

collection->append -- Appends an object to the collection

Description

bool collection->append ( mixed value)

Appends an object to the end of the collection. Parameter value can be a string or a number.

Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
oci_close | Nahoru | collection->assign


collection->assign

(no version information, might be only in CVS)

collection->assign -- Assigns a value to the collection from another existing collection

Description

bool collection->assign ( object from)

Assigns a value to the collection from another, previously created collection. Both collections must be created with oci_new_collection() prior to using them.

Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
collection->append | Nahoru | collection->assignElem


collection->assignElem

(no version information, might be only in CVS)

collection->assignElem -- Assigns a value to the element of the collection

Description

bool collection->assignElem ( int index, mixed value)

Assigns a value to the element with index index. Parameter value can be a string or a number.

Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
collection->assign | Nahoru | collection->getElem


collection->getElem

(no version information, might be only in CVS)

collection->getElem -- Returns value of the element

Description

mixed collection->getElem ( int index)

Method collection->getElem() returns value of the element with index index (1-based).

collection->getElem() will return 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.

collection->getElem() will return FALSE in case of error.

Předcházející | Domů | Další
collection->assignElem | Nahoru | collection->max


collection->max

(no version information, might be only in CVS)

collection->max -- Gets the maximum number of elements in the collection

Description

int collection->max ( void )

Returns the maximum number of elements in the collection. If the returned value is 0, then the number of elements is not limited. collection->max() returns FALSE in case of error.

See also oci_collection_size().

Předcházející | Domů | Další
collection->getElem | Nahoru | collection->size


collection->size

(no version information, might be only in CVS)

collection->size -- Returns size of the collection

Description

int collection->size ( void )

Returns the number of elements in the collection.

See also oci_collection_max().

Předcházející | Domů | Další
collection->max | Nahoru | collection->trim


collection->trim

(no version information, might be only in CVS)

collection->trim -- Trims elements from the end of the collection

Description

bool collection->trim ( int num)

Trims num of elements from the end of the collection.

Vrací TRUE při úspěchu, FALSE při selhání.

See also oci_collection_size().

Předcházející | Domů | Další
collection->size | Nahoru | oci_commit


oci_commit

(PHP 5)

oci_commit -- Commits outstanding statements

Description

bool oci_commit ( resource connection)

oci_commit() commits all outstanding statements for the active transaction on the Oracle connection connection.

Příklad 1. oci_commit() example

<?php
    // Login to Oracle server
    $conn = oci_connect('scott', 'tiger');

    // Parse SQL
    $stmt = oci_parse($conn, "
                              INSERT INTO
                                         employees (name, surname)
                                   VALUES
                                         ('Maxim', 'Maletsky')
                             ");

    /* Execute statement
       OCI_DEFAULT tells oci_execute()
       not to commit statement immediately */
    oci_execute($stmt, OCI_DEFAULT);

    /*
    ....
    Parsing and executing other statements here ...
    ....
    */

    // Commit transaction
    $committed = oci_commit($conn);

    // Test whether commit was successful. If error occurred, return error message
    if (!$committed) {
        $error = oci_error($conn);
        echo 'Commit failed. Oracle reports: ' . $error['message'];
    }

?>

Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: In PHP versions before 5.0.0 you must use ocicommit() instead. This name still can be used, it was left as alias of oci_commit() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_rollback() and oci_execute().

Předcházející | Domů | Další
collection->trim | Nahoru | oci_connect


oci_connect

(PHP 5)

oci_connect -- Establishes a connection to Oracle server

Description

resource oci_connect ( string username, string password [, string db])

oci_connect() returns a connection identifier needed for most other OCI calls. The optional third parameter can either contain the name of the local Oracle instance or the name of the entry in tnsnames.ora to which you want to connect. If the optional third parameter is not specified, PHP uses the environment variables ORACLE_SID (Oracle instance) or TWO_TASK (tnsnames.ora) to determine which database to connect to.

Poznámka: oci_connect() does not reestablish the connection, if a connection with such parameters was established before. In this case, oci_connect() will return identifier of previously opened connection. This means, that you cannot use this function to separate transactions. To establish a distinctly new connection, use oci_new_connect().

Příklad 1. oci_connect() example

<?php
echo "<pre>";
$db = "";

$c1 = oci_connect("scott", "tiger", $db);
$c2 = oci_connect("scott", "tiger", $db);

function create_table($conn)
{
  $stmt = oci_parse($conn, "create table scott.hallo (test varchar2(64))");
  oci_execute($stmt);
  echo $conn . " created table\n\n";
}

function drop_table($conn)
{
  $stmt = oci_parse($conn, "drop table scott.hallo");
  oci_execute($stmt);
  echo $conn . " dropped table\n\n";
}

function insert_data($conn)
{
  $stmt = oci_parse($conn, "insert into scott.hallo
            values('$conn' || ' ' || to_char(sysdate,'DD-MON-YY HH24:MI:SS'))");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn . " inserted hallo\n\n";
}

function delete_data($conn)
{
  $stmt = oci_parse($conn, "delete from scott.hallo");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn . " deleted hallo\n\n";
}

function commit($conn)
{
  oci_commit($conn);
  echo $conn . " committed\n\n";
}

function rollback($conn)
{
  oci_rollback($conn);
  echo $conn . " rollback\n\n";
}

function select_data($conn)
{
  $stmt = oci_parse($conn, "select * from scott.hallo");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn."----selecting\n\n";
  while (oci_fetch($stmt)) {
    echo $conn . " [" . oci_result($stmt, "TEST") . "]\n\n";
  }
  echo $conn . "----done\n\n";
}

create_table($c1);
insert_data($c1);   // Insert a row using c1
insert_data($c2);   // Insert a row using c2

select_data($c1);   // Results of both inserts are returned
select_data($c2);

rollback($c1);      // Rollback using c1

select_data($c1);   // Both inserts have been rolled back
select_data($c2);

insert_data($c2);   // Insert a row using c2
commit($c2);        // Commit using c2

select_data($c1);   // Result of c2 insert is returned

delete_data($c1);   // Delete all rows in table using c1
select_data($c1);   // No rows returned
select_data($c2);   // No rows returned
commit($c1);        // Commit using c1

select_data($c1);   // No rows returned
select_data($c2);   // No rows returned

drop_table($c1);
echo "</pre>";
?>

oci_connect() returns FALSE if an error occured.

Poznámka: In PHP versions before 5.0.0 you must use ocilogon() instead. This name still can be used, it was left as alias of oci_connect() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_pconnect() and oci_new_connect().

Předcházející | Domů | Další
oci_commit | Nahoru | oci_define_by_name


oci_define_by_name

(PHP 5)

oci_define_by_name -- Uses a PHP variable for the define-step during a SELECT

Description

bool oci_define_by_name ( resource statement, string column_name, mixed &variable [, int type])

oci_define_by_name() defines PHP variables for fetches of SQL-Columns. Be careful that Oracle uses ALL-UPPERCASE column names, whereby in your select you can also write lowercase. oci_define_by_name() expects the column_name to be in uppercase. If you define a variable that doesn't exists in your select statement, no error will issued.

If you need to define an abstract datatype (LOB/ROWID/BFILE) you must allocate it first using oci_new_descriptor(). See also the oci_bind_by_name() function.

Příklad 1. oci_define_by_name() example

<?php
/* oci_define_by_name example - thies at thieso dot net (980219) */

$conn = oci_connect("scott", "tiger");

$stmt = oci_parse($conn, "SELECT empno, ename FROM emp");

/* the define MUST be done BEFORE oci_execute! */

oci_define_by_name($stmt, "EMPNO", $empno);
oci_define_by_name($stmt, "ENAME", $ename);

oci_execute($stmt);

while (oci_fetch($stmt)) {
    echo "empno:" . $empno . "\n";
    echo "ename:" . $ename . "\n";
}

oci_free_statement($stmt);
oci_close($conn);
?>

Poznámka: In PHP versions before 5.0.0 you must use ocidefinebyname() instead. This name still can be used, it was left as alias of oci_define_by_name() for downwards compatability. This, however, is deprecated and not recommended.

Předcházející | Domů | Další
oci_connect | Nahoru | oci_error


oci_error

(PHP 5)

oci_error -- Returns the last error found

Description

array ocierror ( [resource source])

oci_error() returns the last error found. If the optional source is not provided, the last error encountered is returned. You can use connection or statement resources as value of parameter source. If no error is found, oci_error() returns FALSE. oci_error() returns the error as an associative array. In this array, code consists the oracle error code and message the oracle error string.

As of PHP 4.3: offset and sqltext will also be included in the return array to indicate the location of the error and the original SQL text which caused it.

Poznámka: In PHP versions before 5.0.0 you must use ocierror() instead. This name still can be used, it was left as alias of oci_error() for downwards compatability. This, however, is deprecated and not recommended.

Předcházející | Domů | Další
oci_define_by_name | Nahoru | oci_execute


oci_execute

(PHP 5)

oci_execute -- Executes a statement

Description

bool oci_execute ( resource stmt [, int mode])

oci_execute() executes a previously parsed statement (see oci_parse()). The optional mode allows you to specify the execution mode (default is OCI_COMMIT_ON_SUCCESS). If you don't want statements to be committed automatically, you should specify OCI_DEFAULT as your mode.

Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: In PHP versions before 5.0.0 you must use ociexecute() instead. This name still can be used, it was left as alias of oci_execute() for downwards compatability. This, however, is deprecated and not recommended.

Předcházející | Domů | Další
oci_error | Nahoru | oci_fetch_all


oci_fetch_all

(PHP 5)

oci_fetch_all -- Fetches all rows of result data into an array

Description

int oci_fetch_all ( resource statement, array &output [, int skip [, int maxrows [, int flags]]])

oci_fetch_all() fetches all the rows from a result into a user-defined array. oci_fetch_all() returns the number of rows fetched or FALSE in case of error. skip is the number of initial rows to ignore when fetching the result (default value of 0, to start at the first line). maxrows is the number of rows to read, starting at the skipth row (default to -1, meaning all the rows).

Parameter flags can be any combination of the following:

OCI_FETCHSTATEMENT_BY_ROW
OCI_FETCHSTATEMENT_BY_COLUMN (default value)
OCI_NUM
OCI_ASSOC

Příklad 1. oci_fetch_all() example

<?php
/* oci_fetch_all example mbritton at verinet dot com (990624) */

$conn = oci_connect("scott", "tiger");

$stmt = oci_parse($conn, "select * from emp");

oci_execute($stmt);

$nrows = oci_fetch_all($stmt, $results);
if ($nrows > 0) {
   echo "<table border=\"1\">\n";
   echo "<tr>\n";
   while (list($key, $val) = each($results)) {
      echo "<th>$key</th>\n";
   }
   echo "</tr>\n";

   for ($i = 0; $i < $nrows; $i++) {
      reset($results);
      echo "<tr>\n";
      while ($column = each($results)) {
         $data = $column['value'];
         echo "<td>$data[$i]</td>\n";
      }
      echo "</tr>\n";
   }
   echo "</table>\n";
} else {
   echo "No data found<br />\n";
}
echo "$nrows Records Selected<br />\n";

oci_free_statement($stmt);
oci_close($conn);
?>

oci_fetch_all() returns FALSE in case of error.

Poznámka: In PHP versions before 5.0.0 you must use ocifetchstatement() instead. This name still can be used, it was left as alias of oci_fetch_all() for downwards compatability. This, however, is deprecated and not recommended.

Předcházející | Domů | Další
oci_execute | Nahoru | oci_fetch_array


oci_fetch_array

(PHP 5)

oci_fetch_array -- Returns the next row from the result data as an associative or numeric array, or both

Description

array oci_fetch_array ( resource statement [, int mode])

Returns an array, which corresponds to the next result row or FALSE in case of error or there is no more rows in the result.

oci_fetch_array() returns an array with both associative and numeric indices.

Optional second paramater can be any combination of the following constants:

OCI_BOTH - return an array with both associative and numeric indices (the same as OCI_ASSOC + OCI_NUM). This is the default behavior.
OCI_ASSOC - return an associative array (as oci_fetch_assoc() works).
OCI_NUM - return a numeric array, (as oci_fetch_row() works).
OCI_RETURN_NULLS - create empty elements for the NULL fields.
OCI_RETURN_LOBS - return the value of a LOB of the descriptor.

Default mode is OCI_BOTH.

It should be mentioned here, that oci_fetch_array() is insignificantly slower, than oci_fetch_row(), but much more handy.

Poznámka: Don't forget, that Oracle returns all field names in uppercase and associative indices in the result array will be uppercased too.

Příklad 1. oci_fetch_array() with OCI_BOTH example

<?php
$connection = oci_connect("apelsin", "kanistra");

$query = "SELECT id, name FROM fruits";

$statement = oci_parse ($connection, $query);
oci_execute ($statement);

while ($row = oci_fetch_array ($statement, OCI_BOTH)) {
    echo $row[0]." and ".$row['ID']." is the same<br>";
    echo $row[1]." and ".$row['NAME']." is the same<br>";
}
?>

Příklad 2. oci_fetch_array() with OCI_NUM example

<?php
$connection = oci_connect("user", "password");

$query = "SELECT id, name, lob_field FROM fruits";

$statement = oci_parse ($connection, $query);
oci_execute ($statement);

while ($row = oci_fetch_array ($statement, OCI_NUM)) {
    echo $row[0]."<br>";
    echo $row[1]."<br>";
    echo $row[2]->read(100)."<br>";  //this will output first 100 bytes from LOB
}
?>

Příklad 3. oci_fetch_array() with OCI_ASSOC example

<?php
$connection = oci_connect("user", "password");

$query = "SELECT id, name, lob_field FROM fruits";

$statement = oci_parse ($connection, $query);
oci_execute ($statement);

while ($row = oci_fetch_array ($statement, OCI_NUM)) {
    echo $row['ID']."<br>";
    echo $row['NAME']."<br>";
    echo $row['LOB_FIELD']."<br>";  //this will output "Object id #1"
}
?>

Příklad 4. oci_fetch_array() with OCI_RETURN_LOBS example

<?php
$connection = oci_connect("user", "password");

$query = "SELECT id, name, lob_field FROM fruits";

$statement = oci_parse ($connection, $query);
oci_execute ($statement);

while ($row = oci_fetch_array ($statement, OCI_NUM)) {
    echo $row[0]."<br>";
    echo $row[1]."<br>";
    echo $row['LOB_FIELD']."<br>";  //this will output LOB's content
}
?>

See also oci_fetch_assoc(),
oci_fetch_object(),
oci_fetch_row() and
oci_fetch_all().

Předcházející | Domů | Další
oci_fetch_all | Nahoru | oci_fetch_assoc


oci_fetch_assoc

(PHP 5)

oci_fetch_assoc -- Returns the next row from the result data as an associative array

Description

array oci_fetch_assoc ( resource statement)

oci_fetch_assoc() returns the next row from the result data as an associative array (identical to oci_fetch_array() call with OCI_ASSOC flag).

Subsequent call to oci_fetch_assoc() will return next row or FALSE if there is no more rows.

Poznámka: Don't forget, that Oracle returns all field names in uppercase and associative indices in the result array will be uppercased too.

See also oci_fetch_array(),
oci_fetch_object(),
oci_fetch_row() and
oci_fetch_all().

Předcházející | Domů | Další
oci_fetch_array | Nahoru | oci_fetch_object


oci_fetch_object

(PHP 5)

oci_fetch_object -- Returns the next row from the result data as an object

Description

object oci_fetch_object ( resource statement)

oci_fetch_object() returns the next row from the result data as an object, which attributes correspond to fields in statement.

Subsequent calls to oci_fetch_object() will return the next row from the result or FALSE if there is no more rows.

Poznámka: Don't forget, that Oracle returns all field names in uppercase and attributes' names in the result object will be in uppercase as well.

See also oci_fetch_array(),
oci_fetch_assoc(),
oci_fetch_row() and
oci_fetch_all().

Předcházející | Domů | Další
oci_fetch_assoc | Nahoru | oci_fetch_row


oci_fetch_row

(PHP 5)

oci_fetch_row -- Returns the next row from the result data as a numeric array

Description

array oci_fetch_row ( resource statement)

Calling oci_fetch_row() is identical to oci_fetch_array() with OCI_NUM flag and returns the next row from the result data as a numeric array.

Subsequent calls to oci_fetch_row() will return the next row from the result data or FALSE if there is no more rows.

See also oci_fetch_array(),
oci_fetch_object(),
oci_fetch_assoc() and
oci_fetch_all().

Předcházející | Domů | Další
oci_fetch_object | Nahoru | oci_fetch


oci_fetch

(PHP 5)

oci_fetch -- Fetches the next row into result-buffer

Description

bool oci_fetch ( resource statement)

oci_fetch() fetches the next row (for SELECT statements) into the internal result-buffer.

Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: In PHP versions before 5.0.0 you must use ocifetch() instead. This name still can be used, it was left as alias of oci_fetch() for downwards compatability. This, however, is deprecated and not recommended.

Předcházející | Domů | Další
oci_fetch_row | Nahoru | oci_field_is_null


oci_field_is_null

(PHP 5)

oci_field_is_null -- Checks if the field is NULL

Description

bool oci_field_is_null ( resource stmt, mixed field)

oci_field_is_null() returns TRUE if field field from the statement is NULL. Parameter field could be a field's index or a field's name (uppercased).

Poznámka: In PHP versions before 5.0.0 you must use ocicolumnisnull() instead. This name still can be used, it was left as alias of oci_field_is_null() for downwards compatability. This, however, is deprecated and not recommended.

Předcházející | Domů | Další
oci_fetch | Nahoru | oci_field_name


oci_field_name

(PHP 5)

oci_field_name -- Returns the name of a field from the statement

Description

string oci_field_name ( resource statement, int field)

oci_field_name() returns the name of the field corresponding to the field number (1-based).

Příklad 1. oci_field_name() example

<?php
    $conn = oci_connect("scott", "tiger");
    $stmt = oci_parse($conn, "SELECT * FROM emp");
    oci_execute($stmt);

    echo "<table border=\"1\">";
    echo "<tr>";
    echo "<th>Name</th>";
    echo "<th>Type</th>";
    echo "<th>Length</th>";
    echo "</tr>";

    $ncols = oci_num_fields($stmt);

    for ($i = 1; $i <= $ncols; $i++) {
        $column_name  = oci_field_name($stmt, $i);
        $column_type  = oci_field_type($stmt, $i);
        $column_size  = oci_field_size($stmt, $i);

        echo "<tr>";
        echo "<td>$column_name</td>";
        echo "<td>$column_type</td>";
        echo "<td>$column_size</td>";
        echo "</tr>";
    }

    echo "</table>\n";
    oci_free_statement($stmt);
    oci_close($conn);
?>

Poznámka: In PHP versions before 5.0.0 you must use ocicolumnname() instead. This name still can be used, it was left as alias of oci_field_name() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_num_fields(),
oci_field_type(),
and oci_field_size().

Předcházející | Domů | Další
oci_field_is_null | Nahoru | oci_field_precision


oci_field_precision

(PHP 5)

oci_field_precision -- Tell the precision of a field

Description

int oci_field_precision ( resource statement, int field)

Returns precision of the field with field index (1-based).

For FLOAT columns, precision is nonzero and scale is -127. If precision is 0, then column is NUMBER. Else it's NUMBER(precision, scale).

Poznámka: In PHP versions before 5.0.0 you must use ocicolumnprecision() instead. This name still can be used, it was left as alias of oci_field_precision() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_field_scale() and oci_field_type().

Předcházející | Domů | Další
oci_field_name | Nahoru | oci_field_scale


oci_field_scale

(PHP 5)

oci_field_scale -- Tell the scale of the field

Description

int oci_field_scale ( resource statement, int field)

Returns scale of the column with field index (1-based) or FALSE if there is no such field.

For FLOAT columns, precision is nonzero and scale is -127. If precision is 0, then column is NUMBER. Else it's NUMBER(precision, scale).

Poznámka: In PHP versions before 5.0.0 you must use ocicolumnscale() instead. This name still can be used, it was left as alias of oci_field_scale() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_field_precision() and oci_field_type().

Předcházející | Domů | Další
oci_field_precision | Nahoru | oci_field_size


oci_field_size

(PHP 5)

oci_field_size -- Returns field's size

Description

int oci_field_size ( resource stmt, mixed field)

oci_field_size() returns the size of a field in bytes. Value of field parameter can be the field's index (1-based) or it's name.

Příklad 1. oci_field_size()example

<?php
    $conn = oci_connect("scott", "tiger");
    $stmt = oci_parse($conn, "SELECT * FROM emp");
    oci_execute($stmt);

    echo "<table border=\"1\">";
    echo "<tr>";
    echo "<th>Name</th>";
    echo "<th>Type</th>";
    echo "<th>Length</th>";
    echo "</tr>";

    $ncols = oci_num_fields($stmt);

    for ($i = 1; $i <= $ncols; $i++) {
        $column_name  = oci_field_name($stmt, $i);
        $column_type  = oci_field_type($stmt, $i);
        $column_size  = oci_field_size($stmt, $i);
        echo "<tr>";
        echo "<td>$column_name</td>";
        echo "<td>$column_type</td>";
        echo "<td>$column_size</td>";
        echo "</tr>";
    }

    echo "</table>";

    oci_free_statement($stmt);
    oci_close($conn);
?>

Poznámka: In PHP versions before 5.0.0 you must use ocicolumnsize() instead. This name still can be used, it was left as alias of oci_field_size() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_num_fields() and oci_field_name().

Předcházející | Domů | Další
oci_field_scale | Nahoru | oci_field_type_raw


oci_field_type_raw

(PHP 5)

oci_field_type_raw -- Tell the raw Oracle data type of the field

Description

int oci_field_type_raw ( resource statement, int field)

oci_field_type_raw() returns Oracle's raw data type of the field.

Poznámka: In PHP versions before 5.0.0 you must use ocicolumntyperaw() instead. This name still can be used, it was left as alias of oci_field_type_raw() for downwards compatability. This, however, is deprecated and not recommended.

However, if you want to get field's type, then oci_field_type() will suit you better. See oci_field_type() for additional information.

Předcházející | Domů | Další
oci_field_size | Nahoru | oci_field_type


oci_field_type

(PHP 5)

oci_field_type -- Returns field's data type

Description

mixed ocicolumntype ( resource stmt, int field)

oci_field_type() returns a field's data type. Parameter field is an index of the field in the statement (1-based).

Příklad 1. oci_field_type() example

<?php
    $conn = oci_connect("scott", "tiger");
    $stmt = oci_parse($conn, "SELECT * FROM emp");
    oci_execute($stmt);

    echo "<table border=\"1\">";
    echo "<tr>";
    echo "<th>Name</th>";
    echo "<th>Type</th>";
    echo "<th>Length</th>";
    echo "</tr>";

    $ncols = oci_num_fields($stmt);

    for ($i = 1; $i <= $ncols; $i++) {
        $column_name  = oci_field_name($stmt, $i);
        $column_type  = oci_field_type($stmt, $i);
        $column_size  = oci_field_size($stmt, $i);

        echo "<tr>";
        echo "<td>$column_name</td>";
        echo "<td>$column_type</td>";
        echo "<td>$column_size</td>";
        echo "</tr>";
    }

    echo "</table>\n";

    oci_free_statement($stmt);
    oci_close($conn);
?>

Poznámka: In PHP versions before 5.0.0 you must use ocicolumntype() instead. This name still can be used, it was left as alias of oci_field_type() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_num_fields(),
oci_field_name(),
and oci_field_size().

Předcházející | Domů | Další
oci_field_type_raw | Nahoru | collection->free


collection->free

(no version information, might be only in CVS)

collection->free -- Frees resources associated with collection object

Description

bool collection->free ( void )

Frees resources associated with collection object.

Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
oci_field_type | Nahoru | descriptor->free


descriptor->free

(no version information, might be only in CVS)

descriptor->free -- Frees resources associated with descriptor

Description

bool descriptor->free ( void )

descriptor->free() frees resources associated with descriptor, previously allocated with oci_new_descriptor().

Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
collection->free | Nahoru | oci_free_statement


oci_free_statement

(PHP 5)

oci_free_statement -- Frees all resources associated with statement or cursor

Description

bool oci_free_statement ( resource statement)

oci_free_statement() frees resources associated with Oracle's cursor or statement, which was received from as a result of oci_parse() or obtained from Oracle.

Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
descriptor->free | Nahoru | oci_internal_debug


oci_internal_debug

(PHP 5)

oci_internal_debug -- Enables or disables internal debug output

Description

void oci_internal_debug ( int onoff)

oci_internal_debug() enables or disables internal debug output. Set onoff to 0 to turn debug output off or 1 to turn it on.

Poznámka: In PHP versions before 5.0.0 you must use ociinternaldebug() instead. This name still can be used, it was left as alias of oci_internal_debug() for downwards compatability. This, however, is deprecated and not recommended.

Předcházející | Domů | Další
oci_free_statement | Nahoru | lob->append


lob->append

(no version information, might be only in CVS)

lob->append -- Appends data from the large object to another large object

Description

bool lob->append ( object lob_from)

Appends data from the large object to the end of another large object.

Writing to the large object with lob->append() will fail if buffering was previously enabled. You must disable buffering before appending. You may need to flush buffers with oci_lob_flush() before disabling buffering.

Vrací TRUE při úspěchu, FALSE při selhání.

See also oci_lob_flush(),
ocisetbufferinglob() and
ocigetbufferinglob().

Předcházející | Domů | Další
oci_internal_debug | Nahoru | lob->close


lob->close

(no version information, might be only in CVS)

lob->close -- Closes LOB descriptor

Description

bool lob->close ( void )

lob->close() closes descriptor of LOB or FILE. This function should be used only with lob->writeTemporary().

Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: In PHP versions before 5.0.0 you must use ocicloselob() instead. This name still can be used, it was left as alias of oci_lob_close() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_lob_write_temporary().

Předcházející | Domů | Další
lob->append | Nahoru | oci_lob_copy


oci_lob_copy

(PHP 5)

oci_lob_copy -- Copies large object

Description

bool oci_lob_copy ( [int length])

Copies large object or a part of large object to another large object. Parameter length indicates the length of data to be copied. Old data of LOB-recipient will be overwritten.

If you need to copy a particular part of LOB to a particular position of LOB, you can use oci_lob_seek() to move internal pointers of LOBs.

Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
lob->close | Nahoru | lob->eof


lob->eof

(no version information, might be only in CVS)

lob->eof -- Tests for end-of-file on a large object's descriptor

Description

bool lob->eof ( void )

Returns TRUE if internal pointer of large object is at the end of LOB. Otherwise returns FALSE.

See also oci_lob_size().

Předcházející | Domů | Další
oci_lob_copy | Nahoru | lob->erase


lob->erase

(no version information, might be only in CVS)

lob->erase -- Erases a specified portion of the internal LOB data

Description

int lob->erase ( [int offset [, int length]])

Erases a specified portion of the internal LOB data starting at a specified offset. Parameters length and offset are optional. lob->erase() erases all LOB data by default.

For BLOBs, erasing means that the existing LOB value is overwritten with zero-bytes. For CLOBs, the existing LOB value is overwritten with spaces.

lob->erase() returns the actual number of characters/bytes erased or FALSE in case of error.

Předcházející | Domů | Další
lob->eof | Nahoru | lob->export


lob->export

(no version information, might be only in CVS)

lob->export -- Exports LOB's contents to a file

Description

bool ociwritelobtofile ( string filename [, int start [, int length]])

Exports LOB's contents to a file, which name is given in parameter filename. Optional parameter start indicates from what position to start export and parameter length - length of data to be exported.

Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
lob->erase | Nahoru | lob->flush


lob->flush

(no version information, might be only in CVS)

lob->flush -- Flushes/writes buffer of the LOB to the server

Description

bool lob->flush ( [int flag])

lob->flush() actually writes data to the server. 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. Tt is recommended to use OCI_LOB_BUFFER_FREE flag only when you are not going to work with the LOB anymore.

lob->flush() returns FALSE if buffering was not enabled or an error occurred.

Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
lob->export | Nahoru | lob->import


lob->import

(no version information, might be only in CVS)

lob->import -- Imports file data to the LOB

Description

bool lob->import ( string filename)

Writes data from filename in to the current position of large object.

Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: In PHP versions before 5.0.0 you must use ocisavelobfile() instead. This name still can be used, it was left as alias of oci_lob_import() for downwards compatability. This, however, is deprecated and not recommended.

Předcházející | Domů | Další
lob->flush | Nahoru | oci_lob_is_equal


oci_lob_is_equal

(PHP 5)

oci_lob_is_equal -- Compares two LOB/FILE locators for equality

Description

bool oci_lob_is_equal ( object lob1, object lob2)

Compares two LOB/FILE locators. Returns TRUE if these objects are equal and FALSE otherwise.

Předcházející | Domů | Další
lob->import | Nahoru | lob->load


lob->load

(no version information, might be only in CVS)

lob->load -- Returns large object's contents

Description

string lob->load ( void )

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 oci_lob_read() instead. In case of error lob->load() returns FALSE.

Poznámka: In PHP versions before 5.0.0 you must use ociloadlob() instead. This name still can be used, it was left as alias of oci_lob_load() for downwards compatability. This, however, is deprecated and not recommended.

Předcházející | Domů | Další
oci_lob_is_equal | Nahoru | lob->read


lob->read

(no version information, might be only in CVS)

lob->read -- Reads part of large object

Description

string lob->read ( int length)

Reads length bytes from the current position of LOB's internal pointer. Reading stops when length bytes have been read or end of large object is reached. Internal pointer of large object will be shifted on the amount of bytes read.

Returns FALSE in case of error.

See also oci_lob_eof(),
oci_lob_seek(),
oci_lob_tell() and
oci_lob_write().

Předcházející | Domů | Další
lob->load | Nahoru | lob->rewind


lob->rewind

(no version information, might be only in CVS)

lob->rewind -- Moves the internal pointer to the beginning of the large object

Description

bool lob->rewind ( void )

Sets the internal pointer to the beginning of the large object.

Vrací TRUE při úspěchu, FALSE při selhání.

See also oci_lob_seek() and oci_lob_tell().

Předcházející | Domů | Další
lob->read | Nahoru | lob->save


lob->save

(no version information, might be only in CVS)

lob->save -- Saves data to the large object

Description

bool lob->save ( string data [, int offset])

Saves data to the large object. Parameter offset can be used to indicate offset from the beginning of the large object.

Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: In PHP versions before 5.0.0 you must use ocisavelob() instead. This name still can be used, it was left as alias of oci_lob_save() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_lob_write() and oci_lob_import().

Předcházející | Domů | Další
lob->rewind | Nahoru | lob->seek


lob->seek

(no version information, might be only in CVS)

lob->seek -- Sets the internal pointer of the large object

Description

bool lob->seek ( int offset [, int whence])

Sets the internal pointer of the large object. Parameter offset indicates the amount of bytes, on which internal pointer should be moved from the position, pointed by whence:

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)

See also oci_lob_rewind() and oci_lob_tell().

Předcházející | Domů | Další
lob->save | Nahoru | lob->size


lob->size

(no version information, might be only in CVS)

lob->size -- Returns size of large object

Description

int lob->size ( void )

Returns length of large object value or FALSE in case of error. Empty objects have zero length.

Předcházející | Domů | Další
lob->seek | Nahoru | lob->tell


lob->tell

(no version information, might be only in CVS)

lob->tell -- Returns current position of internal pointer of large object

Description

int lob->tell ( void )

Returns current position of a LOB's internal pointer or FALSE if an error occured.

See also oci_lob_size() and oci_lob_eof().

Předcházející | Domů | Další
lob->size | Nahoru | lob->truncate


lob->truncate

(no version information, might be only in CVS)

lob->truncate -- Truncates large object

Description

bool lob->truncate ( [int length])

If parameter length is given, lob->truncate() truncates large object to length bytes. Otherwise, lob->truncate() will purge the LOB completely.

Vrací TRUE při úspěchu, FALSE při selhání.

See also oci_lob_erase().

Předcházející | Domů | Další
lob->tell | Nahoru | lob->writeTemporary


lob->writeTemporary

(no version information, might be only in CVS)

lob->writeTemporary -- Writes temporary large object

Description

bool lob->writeTemporary ( string data [, int lob_type])

Creates a temporary large object and writes data to it.

Parameter lob_type can be one of the following:

OCI_TEMP_BLOB is used to create temporary BLOBs
OCI_TEMP_CLOB is used to create temporary CLOBs

lob->writeTemporary() creates a CLOB by default.

You should use oci_lob_close() when the work with the object is over.

Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: In PHP versions before 5.0.0 you must use ociwritetemporarylob() instead. This name still can be used, it was left as alias of oci_lob_write_temporary() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_lob_close().

Předcházející | Domů | Další
lob->truncate | Nahoru | lob->write


lob->write

(no version information, might be only in CVS)

lob->write -- Writes data to the large object

Description

int lob->write ( string data [, int length])

Writes data from the parameter data into the current position of LOB's internal pointer. If the parameter length is given, writing will stop after length bytes have been written or the end of data is reached, whichever comes first.

lob->write() returns the number of bytes written or FALSE in case of error.

See also oci_lob_read().

Předcházející | Domů | Další
lob->writeTemporary | Nahoru | oci_new_collection


oci_new_collection

(PHP 5)

oci_new_collection -- Allocates new collection object

Description

object oci_new_collection ( resource connection, string tdo [, string schema])

Allocates new collection object. Parameter tdo should be a valid named type (uppercased). Third, optional parameter schema should point to the scheme, where the named type was created. oci_new_collection() uses name of the current user as default value of schema.

oci_new_collection() returns FALSE on error.

Poznámka: In PHP versions before 5.0.0 you must use ocinewcollection() instead. This name still can be used, it was left as alias of oci_new_collection() for downwards compatability. This, however, is deprecated and not recommended.

Předcházející | Domů | Další
lob->write | Nahoru | oci_new_connect


oci_new_connect

(PHP 5)

oci_new_connect -- Establishes a new connection to the Oracle server

Description

resource oci_new_connect ( string username, string password [, string db])

oci_new_connect() creates a new connection to an Oracle server and logs on. The optional third parameter can either contain the name of the local Oracle instance or the name of the entry in tnsnames.ora. If the third parameter is not specified, PHP uses environment variables ORACLE_SID and TWO_TASK to determine the name of local Oracle instance and location of tnsnames.ora accordingly.

oci_new_connect() forces the creation of a new connection. This should be used if you need to isolate a set of transactions. By default, connections are shared and subsequent calls to oci_connect() will return the same connection identifier.

The following demonstrates how you can separate connections.

Příklad 1. oci_new_connect() example

<?php
echo "<html><pre>";
$db = "";

$c1 = oci_connect("scott", "tiger", $db);
$c2 = oci_new_connect("scott", "tiger", $db);

function create_table($conn)
{
  $stmt = oci_parse($conn, "create table scott.hallo (test
varchar2(64))");
  oci_execute($stmt);
  echo $conn . " created table\n\n";
}

function drop_table($conn)
{
  $stmt = oci_parse($conn, "drop table scott.hallo");
  oci_execute($stmt);
  echo $conn . " dropped table\n\n";
}

function insert_data($conn)
{
  $stmt = oci_parse($conn, "insert into scott.hallo
            values('$conn' || ' ' || to_char(sysdate,'DD-MON-YY HH24:MI:SS'))");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn . " inserted hallo\n\n";
}

function delete_data($conn)
{
  $stmt = oci_parse($conn, "delete from scott.hallo");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn . " deleted hallo\n\n";
}

function commit($conn)
{
  oci_commit($conn);
  echo $conn . " committed\n\n";
}

function rollback($conn)
{
  oci_rollback($conn);
  echo $conn . " rollback\n\n";
}

function select_data($conn)
{
  $stmt = oci_parse($conn, "select * from scott.hallo");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn . "----selecting\n\n";
  while (oci_fetch($stmt)) {
    echo $conn . " <" . oci_result($stmt, "TEST") . ">\n\n";
  }
  echo $conn . "----done\n\n";
}

create_table($c1);
insert_data($c1);

select_data($c1);
select_data($c2);

rollback($c1);

select_data($c1);
select_data($c2);

insert_data($c2);
commit($c2);

select_data($c1);

delete_data($c1);
select_data($c1);
select_data($c2);
commit($c1);

select_data($c1);
select_data($c2);

drop_table($c1);
echo "</pre></html>";
?>

oci_new_connect() returns FALSE on error.

Poznámka: In PHP versions before 5.0.0 you must use ocinlogon() instead. This name still can be used, it was left as alias of oci_new_connect() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_connect() and oci_pconnect().

Předcházející | Domů | Další
oci_new_collection | Nahoru | oci_new_cursor


oci_new_cursor

(PHP 5)

oci_new_cursor -- Allocates and returns a new cursor (statement handle)

Description

resource oci_new_cursor ( resource connection)

oci_new_cursor() allocates a new statement handle on the specified connection.

Příklad 1. Using REF CURSOR in an Oracle's stored procedure

<?php
// suppose your stored procedure info.output returns a ref cursor in :data

$conn = oci_connect("scott", "tiger");
$curs = oci_new_cursor($conn);
$stmt = oci_parse($conn, "begin info.output(:data); end;");

oci_bind_by_name($stmt, "data", &$curs, -1, OCI_B_CURSOR);
oci_execute($stmt);
oci_execute($curs);

while ($data = oci_fetch_row($curs)) {
    var_dump($data);
}

oci_free_statement($stmt);
oci_free_statement($curs);
oci_close($conn);
?>

Příklad 2. Using REF CURSOR in an Oracle's select statement

<?php
echo "<html><body>";
$conn = oci_connect("scott", "tiger");
$count_cursor = "CURSOR(select count(empno) num_emps from emp " .
                "where emp.deptno = dept.deptno) as EMPCNT from dept";
$stmt = oci_parse($conn, "select deptno,dname,$count_cursor");

oci_execute($stmt);
echo "<table border=\"1\">";
echo "<tr>";
echo "<th>DEPT NAME</th>";
echo "<th>DEPT #</th>";
echo "<th># EMPLOYEES</th>";
echo "</tr>";

while ($data = oci_fetch_assoc($stmt)) {
    echo "<tr>";
    $dname  = $data["DNAME"];
    $deptno = $data["DEPTNO"];
    echo "<td>$dname</td>";
    echo "<td>$deptno</td>";
    oci_execute($data["EMPCNT"]);
    while ($subdata = oci_fetch_assoc($data["EMPCNT"])) {
        $num_emps = $subdata["NUM_EMPS"];
        echo  "<td>$num_emps</td>";
    }
    echo "</tr>";
}
echo "</table>";
echo "</body></html>";
oci_free_statement($stmt);
oci_close($conn);
?>

oci_new_cursor() returns FALSE on error.

Poznámka: In PHP versions before 5.0.0 you must use ocinewcursor() instead. This name still can be used, it was left as alias of oci_new_cursor() for downwards compatability. This, however, is deprecated and not recommended.

Předcházející | Domů | Další
oci_new_connect | Nahoru | oci_new_descriptor


oci_new_descriptor

(PHP 5)

oci_new_descriptor -- Initializes a new empty LOB or FILE descriptor

Description

object oci_new_descriptor ( resource connection [, int type])

oci_new_descriptor() allocates resources to hold descriptor or LOB locator. Valid values for type are: OCI_D_FILE, OCI_D_LOB and OCI_D_ROWID.

Příklad 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_execute($conn);
        echo "Blob successfully uploaded\n";
     }else{
        echo "Couldn't upload Blob\n";
     }
     oci_free_descriptor($lob);
     oci_free_statement($stmt);
     oci_close($conn);
  }
?>

Příklad 2. oci_new_descriptor() example

<?php
    /* Calling PL/SQL stored procedures which contain clobs as input
     * parameters (PHP 4 >= 4.0.6).
     * 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);
?>

oci_new_descriptor() returns FALSE on error.

Poznámka: In PHP versions before 5.0.0 you must use ocinewdescriptor() instead. This name still can be used, it was left as alias of oci_new_descriptor() for downwards compatability. This, however, is deprecated and not recommended.

Předcházející | Domů | Další
oci_new_cursor | Nahoru | oci_num_fields


oci_num_fields

(PHP 5)

oci_num_fields -- Returns the number of result columns in a statement

Description

int oci_num_fields ( resource statement)

oci_num_fields() returns the number of columns in the statement.

Příklad 1. oci_num_fields() example

<?php
    echo "<pre>\n";
    $conn = oci_connect("scott", "tiger");
    $stmt = oci_parse($conn, "select * from emp");

    oci_execute($stmt);

    while (oci_fetch($stmt)) {
        echo "\n";
        $ncols = oci_num_fields($stmt);
        for ($i = 1; $i <= $ncols; $i++) {
            $column_name  = oci_field_name($stmt, $i);
            $column_value = oci_result($stmt, $i);
            echo $column_name . ': ' . $column_value . "\n";
        }
        echo "\n";
    }

    oci_free_statement($stmt);
    oci_close($conn);

    echo "</pre>";
?>

oci_num_fields() returns FALSE on error.

Poznámka: In PHP versions before 5.0.0 you must use ocinumcols() instead. This name still can be used, it was left as alias of oci_num_fields() for downwards compatability. This, however, is deprecated and not recommended.

Předcházející | Domů | Další
oci_new_descriptor | Nahoru | oci_num_rows


oci_num_rows

(PHP 5)

oci_num_rows -- Returns number of rows affected during statement execution

Description

int oci_num_rows ( resource stmt)

oci_num_rows() returns number of rows affected during statement execution.

Poznámka: 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.

Příklad 1. oci_num_rows() example

<?php
    echo "<pre>";
    $conn = oci_connect("scott", "tiger");

    $stmt = oci_parse($conn, "create table emp2 as select * from emp");
    oci_execute($stmt);
    echo oci_num_rows($stmt) . " rows inserted.<br />";
    oci_free_statement($stmt);

    $stmt = oci_parse($conn, "delete from emp2");
    oci_execute($stmt, OCI_DEFAULT);
    echo oci_num_rows($stmt) . " rows deleted.<br />";
    oci_commit($conn);
    oci_free_statement($stmt);

    $stmt = oci_parse($conn, "drop table emp2");
    oci_execute($stmt);
    oci_free_statement($stmt);

    oci_close($conn);
    echo "</pre>";
?>

oci_num_rows() returns FALSE on error.

Poznámka: In PHP versions before 5.0.0 you must use ocirowcount() instead. This name still can be used, it was left as alias of oci_num_rows() for downwards compatability. This, however, is deprecated and not recommended.

Předcházející | Domů | Další
oci_num_fields | Nahoru | oci_parse


oci_parse

(PHP 5)

oci_parse -- Prepares Oracle statement for execution

Description

resource oci_parse ( resource connection, string query)

oci_parse() prepares the query using connection and returns the statement identifier, which can be used with oci_bind_by_name(), oci_execute() and other functions.

Poznámka: This function does not validate query. The only way to find out if query is valid SQL or PL/SQL statement - is to execute it.

oci_parse() returns FALSE on error.

Poznámka: In PHP versions before 5.0.0 you must use ociparse() instead. This name still can be used, it was left as alias of oci_parse() for downwards compatability. This, however, is deprecated and not recommended.

Předcházející | Domů | Další
oci_num_rows | Nahoru | oci_password_change


oci_password_change

(PHP 5)

oci_password_change -- Changes password of Oracle's user

Description

bool oci_password_change ( resource connection, string username, string old_password, string new_password)

Changes password for user with username. Parameters old_password and new_password should indicate old and new passwords respectively.

Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: In PHP versions before 5.0.0 you must use ocipasswordchange() instead. This name still can be used, it was left as alias of oci_password_change() for downwards compatability. This, however, is deprecated and not recommended.

Předcházející | Domů | Další
oci_parse | Nahoru | oci_pconnect


oci_pconnect

(PHP 5)

oci_pconnect -- Connect to an Oracle database using a persistent connection

Description

resource oci_pconnect ( string username, string password [, string db])

oci_pconnect() creates a new persistent connection to an Oracle server and logs on. The optional third parameter can either contain the name of the local Oracle instance or the name of the entry in tnsnames.ora. If the third parameter is not specified, PHP uses environment variables ORACLE_SID and TWO_TASK to determine the name of local Oracle instance and location of tnsnames.ora accordingly.

oci_pconnect() returns connection identifier or FALSE on error.

Poznámka: 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.

Poznámka: In PHP versions before 5.0.0 you must use ociplogon() instead. This name still can be used, it was left as alias of oci_pconnect() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_connect() and oci_new_connect().

Předcházející | Domů | Další
oci_password_change | Nahoru | oci_result


oci_result

(PHP 5)

oci_result -- Returns field's value from the fetched row

Description

mixed oci_result ( resource statement, mixed field)

oci_result() returns the data from the field field in the current row, fetched by oci_fetch(). oci_result() returns everything as strings except for abstract types (ROWIDs, LOBs and FILEs). oci_result() returns FALSE on error.

You can either use the column number (1-based) or the column name (in uppercase) for the field() parameter.

Poznámka: In PHP versions before 5.0.0 you must use ociresult() instead. This name still can be used, it was left as alias of oci_result() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_fetch_array(),
oci_fetch_assoc(),
oci_fetch_object(),
oci_fetch_row() and
oci_fetch_all().

Předcházející | Domů | Další
oci_pconnect | Nahoru | oci_rollback


oci_rollback

(PHP 5)

oci_rollback -- Rolls back outstanding transaction

Description

bool oci_rollback ( resource connection)

oci_rollback() rolls back all outstanding statements for Oracle connection connection.

Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: In PHP versions before 5.0.0 you must use ocirollback() instead. This name still can be used, it was left as alias of oci_rollback() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_commit().

Předcházející | Domů | Další
oci_result | Nahoru | oci_server_version


oci_server_version

(PHP 5)

oci_server_version -- Returns server version

Description

string oci_server_version ( resource connection)

Returns a string with version information of the Oracle server, which uses connection connection or returns FALSE on error.

Příklad 1. oci_server_version() example

<?php
    $conn = oci_connect("scott", "tiger");
    echo "Server Version: " . oci_server_version($conn);
    oci_close($conn);
?>

Poznámka: In PHP versions before 5.0.0 you must use ociserverversion() instead. This name still can be used, it was left as alias of oci_server_version() for downwards compatability. This, however, is deprecated and not recommended.

Předcházející | Domů | Další
oci_rollback | Nahoru | oci_set_prefetch


oci_set_prefetch

(PHP 5)

oci_set_prefetch -- Sets number of rows to be prefetched

Description

bool oci_set_prefetch ( resource statement [, int rows])

Sets the number of rows to be prefetched after successful call to oci_execute(). The default value for rows is 1.

Poznámka: In PHP versions before 5.0.0 you must use ocisetprefetch() instead. This name still can be used, it was left as alias of oci_set_prefetch() for downwards compatability. This, however, is deprecated and not recommended.

Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
oci_server_version | Nahoru | oci_statement_type


oci_statement_type

(PHP 5)

oci_statement_type -- Returns the type of an OCI statement

Description

string oci_statement_type ( resource statement)

oci_statement_type() returns the query type of statement statement as one of the following values:

  1. SELECT

  2. UPDATE

  3. DELETE

  4. INSERT

  5. CREATE

  6. DROP

  7. ALTER

  8. BEGIN

  9. DECLARE

  10. UNKNOWN

Parameter statement is a valid OCI statement identifier, returned from oci_parse().

Příklad 1. oci_statement_type() example

<?php
    $conn = oci_connect("scott", "tiger");
    $sql  = "delete from emp where deptno = 10";

    $stmt = oci_parse($conn, $sql);
    if (oci_statement_type($stmt) == "DELETE") {
        die("You are not allowed to delete from this table<br />");
    }

    oci_close($conn);
?>

oci_statement_type() returns FALSE on error.

Poznámka: In PHP versions before 5.0.0 you must use ocistatementtype() instead. This name still can be used, it was left as alias of oci_statement_type() for downwards compatability. This, however, is deprecated and not recommended.

Předcházející | Domů | Další
oci_set_prefetch | Nahoru | ocibindbyname


ocibindbyname

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ocibindbyname -- Bind a PHP variable to an Oracle Placeholder

Description

bool ocibindbyname ( resource stmt, string ph_name, mixed &variable [, int maxlength [, int type]])

ocibindbyname() binds the PHP variable variable to the Oracle placeholder ph_name. Whether it will be used for input or output will be determined run-time, and the necessary storage space will be allocated. The length parameter sets the maximum length for the bind. If you set length to -1 ocibindbyname() will use the current length of variable to set the maximum length.

If you need to bind an abstract Datatype (LOB/ROWID/BFILE) you need to allocate it first using ocinewdescriptor() function. The length is not used for abstract Datatypes and should be set to -1. The type variable tells oracle, what kind of descriptor we want to use. Possible values are: OCI_B_FILE (Binary-File), OCI_B_CFILE (Character-File), OCI_B_CLOB (Character-LOB), OCI_B_BLOB (Binary-LOB) and OCI_B_ROWID (ROWID).

Příklad 1. ocibindbyname() example

<?php
/* OCIBindByPos example thies at thieso dot net (980221)
  inserts 3 records into emp, and uses the ROWID for updating the
  records just after the insert.
*/

$conn = OCILogon("scott", "tiger");

$stmt = OCIParse($conn, "insert into emp (empno, ename) " .
                       "values (:empno,:ename) " .
                       "returning ROWID into :rid");

$data = array(1111 => "Larry", 2222 => "Bill", 3333 => "Jim");

$rowid = OCINewDescriptor($conn, OCI_D_ROWID);

OCIBindByName($stmt, ":empno", $empno, 32);
OCIBindByName($stmt, ":ename", $ename, 32);
OCIBindByName($stmt, ":rid", $rowid, -1, OCI_B_ROWID);

$update = OCIParse($conn, "update emp set sal = :sal where ROWID = :rid");
OCIBindByName($update, ":rid", $rowid, -1, OCI_B_ROWID);
OCIBindByName($update, ":sal", $sal, 32);

$sal = 10000;

while (list($empno, $ename) = each($data)) {
    OCIExecute($stmt);
    OCIExecute($update);
}

$rowid->free();

OCIFreeStatement($update);
OCIFreeStatement($stmt);

$stmt = OCIParse($conn, "select * from emp where empno in (1111,2222,3333)");
OCIExecute($stmt);
while (OCIFetchInto($stmt, &$arr, OCI_ASSOC)) {
    var_dump($arr);
}
OCIFreeStatement($stmt);

/* delete our "junk" from the emp table.... */
$stmt = OCIParse($conn, "delete from emp where empno in (1111,2222,3333)");
OCIExecute($stmt);
OCIFreeStatement($stmt);

OCILogoff($conn);
?>

Poznámka: This function was renamed to oci_bind_by_name() after PHP >= 5.0.0. For downward compatibility ocibindbyname() can also be used. This is deprecated, however.

Varování

It is a bad idea to use magic quotes and ocibindbyname() simultaneously as no quoting is needed on quoted variables and any quotes magically applied will be written into your database as ocibindbyname() is not able to distinguish magically added quotings from those added by intention.

Předcházející | Domů | Další
oci_statement_type | Nahoru | ocicancel


ocicancel

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

ocicancel -- Cancel reading from cursor

Description

bool ocicancel ( resource stmt)

If you do not want read more data from a cursor, then call ocicancel().

Poznámka: This function was renamed to oci_cancel() after PHP >= 5.0.0. For downward compatibility ocicancel() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ocibindbyname | Nahoru | ocicloselob


ocicloselob

(no version information, might be only in CVS)

ocicloselob -- Closes lob descriptor

Description

bool ocicloselob ( void )

Poznámka: This function was renamed to oci_lob_close() after PHP >= 5.0.0. For downward compatibility ocicloselob() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ocicancel | Nahoru | ocicollappend


ocicollappend

(PHP 4 >= 4.0.6, PHP 5)

ocicollappend -- Append an object to the collection

Description

bool ocicollappend ( string value)

Poznámka: This function was renamed to oci_collection_append() after PHP >= 5.0.0. For downward compatibility ocicollappend() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ocicloselob | Nahoru | ocicollassign


ocicollassign

(PHP 4 >= 4.0.6)

ocicollassign -- Assign a collection from another existing collection

Description

bool ocicollassign ( object from)

Poznámka: This function was renamed to oci_collection_assign() after PHP >= 5.0.0. For downward compatibility ocicollassign() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ocicollappend | Nahoru | ocicollassignelem


ocicollassignelem

(PHP 4 >= 4.0.6, PHP 5)

ocicollassignelem -- Assign element val to collection at index ndx

Description

bool ocicollassignelem ( int ndx, string val)

Poznámka: This function was renamed to oci_collection_element_assign() after PHP >= 5.0.0. For downward compatibility ocicollassignelem() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ocicollassign | Nahoru | ocicollgetelem


ocicollgetelem

(PHP 4 >= 4.0.6, PHP 5)

ocicollgetelem -- Retrieve the value at collection index ndx

Description

string ocicollgetelem ( int ndx)

Poznámka: This function was renamed to oci_collection_element_get() after PHP >= 5.0.0. For downward compatibility ocicollgetelem() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ocicollassignelem | Nahoru | ocicollmax


ocicollmax

(PHP 4 >= 4.0.6, PHP 5)

ocicollmax -- Return the max value of a collection. For a varray this is the maximum length of the array

Description

int ocicollmax ( void )

Poznámka: This function was renamed to oci_collection_max() after PHP >= 5.0.0. For downward compatibility ocicollmax() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ocicollgetelem | Nahoru | ocicollsize


ocicollsize

(PHP 4 >= 4.0.6, PHP 5)

ocicollsize -- Return the size of a collection

Description

int ocicollsize ( void )

Poznámka: This function was renamed to oci_collection_size() after PHP >= 5.0.0. For downward compatibility ocicollsize() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ocicollmax | Nahoru | ocicolltrim


ocicolltrim

(PHP 4 >= 4.0.6, PHP 5)

ocicolltrim -- Trim num elements from the end of a collection

Description

bool ocicolltrim ( int num)

Poznámka: This function was renamed to oci_collection_trim() after PHP >= 5.0.0. For downward compatibility ocicolltrim() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ocicollsize | Nahoru | ocicolumnisnull


ocicolumnisnull

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ocicolumnisnull -- Test whether a result column is NULL

Description

bool ocicolumnisnull ( resource stmt, mixed col)

ocicolumnisnull() returns TRUE if the returned column column in the result from the statement stmt is NULL. You can either use the column-number (1-Based) or the column-name, in uppercase, for the col parameter.

Poznámka: This function was renamed to oci_field_is_null() after PHP >= 5.0.0. For downward compatibility ocicolumnisnull() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ocicolltrim | Nahoru | ocicolumnname


ocicolumnname

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ocicolumnname -- Returns the name of a column

Description

string ocicolumnname ( resource stmt, int col)

ocicolumnname() returns the name of the column corresponding to the column number (1-based) that is passed in.

Příklad 1. ocicolumnname() example

<?php
    $conn = OCILogon("scott", "tiger");
    $stmt = OCIParse($conn, "select * from emp");
    OCIExecute($stmt);
    echo "<table border=\"1\">";
    echo "<tr>";
    echo "<th>Name</th>";
    echo "<th>Type</th>";
    echo "<th>Length</th>";
    echo "</tr>";
    $ncols = OCINumCols($stmt);
    for ($i = 1; $i <= $ncols; $i++) {
        $column_name  = OCIColumnName($stmt, $i);
        $column_type  = OCIColumnType($stmt, $i);
        $column_size  = OCIColumnSize($stmt, $i);
        echo "<tr>";
        echo "<td>$column_name</td>";
        echo "<td>$column_type</td>";
        echo "<td>$column_size</td>";
        echo "</tr>";
    }
    echo "</table>\n";
    OCIFreeStatement($stmt);
    OCILogoff($conn);
?>

Poznámka: This function was renamed to oci_field_name() after PHP >= 5.0.0. For downward compatibility ocicolumnname() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ocicolumnisnull | Nahoru | ocicolumnprecision


ocicolumnprecision

(PHP 4 , PHP 5)

ocicolumnprecision -- Tell the precision of a column

Description

int ocicolumnprecision ( resource stmt, int col)

Returns precision of the field with col index (1-based).

For FLOAT columns precision is nonzero and scale is -127. If precision is 0, then columnt is NUMBER. Else it's NUMBER(precision, scale).

Poznámka: This function was renamed to oci_field_precision() after PHP >= 5.0.0. For downward compatibility ocicolumnprecision() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ocicolumnname | Nahoru | ocicolumnscale


ocicolumnscale

(PHP 4 , PHP 5)

ocicolumnscale -- Tell the scale of a column

Description

int ocicolumnscale ( resource stmt, int col)

Poznámka: This function was renamed to oci_field_scale() after PHP >= 5.0.0. For downward compatibility ocicolumnscale() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ocicolumnprecision | Nahoru | ocicolumnsize


ocicolumnsize

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ocicolumnsize -- Return result column size

Description

int ocicolumnsize ( resource stmt, mixed column)

ocicolumnsize() returns the size of the column as given by Oracle. You can either use the column-number (1-Based) or the column-name for the column parameter.

Příklad 1. ocicolumnsize() example

<?php
    $conn = OCILogon("scott", "tiger");
    $stmt = OCIParse($conn, "select * from emp");
    OCIExecute($stmt);
    echo "<table border=\"1\">";
    echo "<tr>";
    echo "<th>Name</th>";
    echo "<th>Type</th>";
    echo "<th>Length</th>";
    echo "</tr>";
    $ncols = OCINumCols($stmt);
    for ($i = 1; $i <= $ncols; $i++) {
        $column_name  = OCIColumnName($stmt, $i);
        $column_type  = OCIColumnType($stmt, $i);
        $column_size  = OCIColumnSize($stmt, $i);
        echo "<tr>";
        echo "<td>$column_name</td>";
        echo "<td>$column_type</td>";
        echo "<td>$column_size</td>";
        echo "</tr>";
    }
    echo "</table>";
    OCIFreeStatement($stmt);
    OCILogoff($conn);
?>

Poznámka: This function was renamed to oci_field_size() after PHP >= 5.0.0. For downward compatibility ocicolumnsize() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ocicolumnscale | Nahoru | ocicolumntype


ocicolumntype

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ocicolumntype -- Returns the data type of a column

Description

mixed ocicolumntype ( resource stmt, int col)

ocicolumntype() returns the data type of the column corresponding to the column number (1-based) that is passed in.

Příklad 1. ocicolumntype() example

<?php
    $conn = OCILogon("scott", "tiger");
    $stmt = OCIParse($conn, "select * from emp");
    OCIExecute($stmt);
    echo "<table border=\"1\">";
    echo "<tr>";
    echo "<th>Name</th>";
    echo "<th>Type</th>";
    echo "<th>Length</th>";
    echo "</tr>";
    $ncols = OCINumCols($stmt);
    for ($i = 1; $i <= $ncols; $i++) {
        $column_name  = OCIColumnName($stmt, $i);
        $column_type  = OCIColumnType($stmt, $i);
        $column_size  = OCIColumnSize($stmt, $i);
        echo "<tr>";
        echo "<td>$column_name</td>";
        echo "<td>$column_type</td>";
        echo "<td>$column_size</td>";
        echo "</tr>";
    }
    echo "</table>\n";
    OCIFreeStatement($stmt);
    OCILogoff($conn);
?>

Poznámka: This function was renamed to oci_field_type() after PHP >= 5.0.0. For downward compatibility ocicolumntype() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ocicolumnsize | Nahoru | ocicolumntyperaw


ocicolumntyperaw

(PHP 4 , PHP 5)

ocicolumntyperaw -- Tell the raw oracle data type of a column

Description

mixed ocicolumntyperaw ( resource stmt, int col)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Poznámka: This function was renamed to oci_field_type_raw() after PHP >= 5.0.0. For downward compatibility ocicolumntyperaw() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ocicolumntype | Nahoru | ocicommit


ocicommit

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ocicommit -- Commits outstanding transactions

Description

bool ocicommit ( resource connection)

ocicommit() commits all outstanding statements for the active transaction on Oracle connection connection.

This example demonstrates how ocicommit() is used.

Příklad 1. ocicommit() example

<?php
    // Login to Oracle server
    $conn = OCILogon('scott', 'tiger');

    // Parse SQL
    $stmt = OCIParse($conn, "INSERT INTO employees (name, surname) VALUES ('Maxim', 'Maletsky')");

    // Execute statement
    OCIExecute($stmt);

    // Commit transaction
    $committed = OCICommit($conn);

    // Test whether commit was successful. If error occurred, return error message
    if (!$committed) {
        $error = OCIError($conn);
        echo 'Commit failed. Oracle reports: ' . $error['message'];
    }

    // Close connection
    OCILogoff($conn);
?>

Poznámka: This function was renamed to oci_commit() after PHP >= 5.0.0. For downward compatibility ocicommit() can also be used. This is deprecated, however.

See also ocirollback().

Předcházející | Domů | Další
ocicolumntyperaw | Nahoru | ocidefinebyname


ocidefinebyname

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ocidefinebyname -- Use a PHP variable for the define-step during a SELECT

Description

bool ocidefinebyname ( resource stmt, string column_name, mixed &variable [, int type])

ocidefinebyname() binds PHP variables for fetches of SQL-Columns. Be careful that Oracle uses ALL-UPPERCASE column-names, whereby in your select you can also write lowercase. ocidefinebyname() expects the column_name to be in uppercase. If you define a variable that doesn't exists in your select statement, no error will be given!

If you need to define an abstract datatype (LOB/ROWID/BFILE) you need to allocate it first using ocinewdescriptor(). See also the ocibindbyname() function.

Příklad 1. ocidefinebyname() example

<?php
/* OCIDefineByName example - thies at thieso dot net (980219) */

$conn = OCILogon("scott", "tiger");

$stmt = OCIParse($conn, "select empno, ename from emp");

/* the define MUST be done BEFORE ociexecute! */

OCIDefineByName($stmt, "EMPNO", $empno);
OCIDefineByName($stmt, "ENAME", $ename);

OCIExecute($stmt);

while (OCIFetch($stmt)) {
    echo "empno:" . $empno . "\n";
    echo "ename:" . $ename . "\n";
}

OCIFreeStatement($stmt);
OCILogoff($conn);
?>

Poznámka: This function was renamed to oci_define_by_name() after PHP >= 5.0.0. For downward compatibility ocidefinebyname() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ocicommit | Nahoru | ocierror


ocierror

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ocierror -- Return the last error of stmt|conn|global

Description

array ocierror ( [resource stmt|conn|global])

ocierror() returns the last error found. If the optional stmt|conn|global is not provided, the last error encountered is returned. If no error is found, ocierror() returns FALSE. ocierror() returns the error as an associative array. In this array, code consists the oracle error code and message the oracle errorstring.

As of PHP 4.3: offset and sqltext will also be included in the return array to indicate the location of the error and the original SQL text which caused it.

Poznámka: This function was renamed to oci_error() after PHP >= 5.0.0. For downward compatibility ocierror() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ocidefinebyname | Nahoru | ociexecute


ociexecute

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ociexecute -- Execute a statement

Description

bool ociexecute ( resource stmt [, int mode])

ociexecute() executes a previously parsed statement. (see ociparse()). The optional mode allows you to specify the execution-mode (default is OCI_COMMIT_ON_SUCCESS). If you don't want statements to be committed automatically specify OCI_DEFAULT as your mode.

Poznámka: This function was renamed to oci_execute() after PHP >= 5.0.0. For downward compatibility ociexecute() can also be used. This is deprecated, however.

Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
ocierror | Nahoru | ocifetch


ocifetch

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ocifetch -- Fetches the next row into result-buffer

Description

bool ocifetch ( resource stmt)

ocifetch() fetches the next row (for SELECT statements) into the internal result-buffer. Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: This function was renamed to oci_fetch() after PHP >= 5.0.0. For downward compatibility ocifetch() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ociexecute | Nahoru | ocifetchinto


ocifetchinto

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ocifetchinto -- Fetches the next row into an array

Description

int ocifetchinto ( resource statement, array &result [, int mode])

Poznámka:
      This function is deprecated. Recommended alternatives:
      oci_fetch_array(), oci_fetch_object(),
      oci_fetch_assoc() and
      oci_fetch_row().

ocifetchinto() fetches the next row of SELECT statement into the result array. ocifetchinto() overwrites previous content of result. By default result will contain a zero-based array of all columns that are not NULL.

The mode parameter allows you to change the default behaviour. You can specify more the one flag by simply adding them up (e.g. OCI_ASSOC+OCI_RETURN_NULLS). Valid values are:

OCI_ASSOC - return an associative array.
OCI_NUM - return a numeric array starting with zero (default behaviour).
OCI_RETURN_NULLS - return the empty values for column, which values is NULL.
OCI_RETURN_LOBS - return the value of a LOB instead of the descriptor.

Příklad 1. ocifetchinto() example

<?php
$conn = ocilogon("username", "password");

$query = "SELECT apples FROM oranges";

$statement = OCIParse ($conn, $query);
OCIExecute ($statement);

while (OCIFetchInto ($statement, $row, OCI_ASSOC)) {
    echo $row['apples'];
}
?>

See also
oci_fetch_array(),
oci_fetch_object(),
oci_fetch_assoc(),
oci_fetch_row(),
oci_fetch() and
oci_execute().

Předcházející | Domů | Další
ocifetch | Nahoru | ocifetchstatement


ocifetchstatement

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

ocifetchstatement -- Fetch all rows of result data into an array

Description

int ocifetchstatement ( resource stmt, array &output [, int skip [, int maxrows [, int flags]]])

Poznámka: In PHP 5.0.0 this function became an alias for oci_fetch_all(). This name still can be used, it was left as alias of oci_fetch_all() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_fetch_array(),
oci_fetch_assoc(),
oci_fetch_object(),
oci_fetch_row().

Předcházející | Domů | Další
ocifetchinto | Nahoru | ocifreecollection


ocifreecollection

(PHP 4 >= 4.1.0, PHP 5)

ocifreecollection -- Deletes collection object

Description

bool ocifreecollection ( void )

Poznámka: This function was renamed to oci_free_collection() after PHP >= 5.0.0. For downward compatibility ocifreecollection() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ocifetchstatement | Nahoru | ocifreecursor


ocifreecursor

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

ocifreecursor -- Free all resources associated with a cursor

Description

bool ocifreecursor ( resource stmt)

ocifreecursor() frees all resources associated with the cursor stmt. Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: This function was renamed to oci_free_cursor() after PHP >= 5.0.0. For downward compatibility ocifreecursor() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ocifreecollection | Nahoru | ocifreedesc


ocifreedesc

(PHP 4 , PHP 5)

ocifreedesc -- Deletes a large object descriptor

Description

bool ocifreedesc ( void )

ocifreedesc() deletes a large object descriptor. Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: This function was renamed to oci_free_descriptor() after PHP >= 5.0.0. For downward compatibility ocifreedesc() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ocifreecursor | Nahoru | ocifreestatement


ocifreestatement

(PHP 3>= 3.0.5, PHP 4 , PHP 5)

ocifreestatement -- Free all resources associated with a statement

Description

bool ocifreestatement ( resource stmt)

ocifreestatement() free all resources associated with the statement stmt. Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: This function was renamed to oci_free_statement() after PHP >= 5.0.0. For downward compatibility ocifreestatement() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ocifreedesc | Nahoru | lob->getBuffering


lob->getBuffering

(no version information, might be only in CVS)

lob->getBuffering -- Returns current state of buffering for large object

Description

bool lob->getBuffering ( void )

Returns FALSE if buffering for the large object is off and TRUE if buffering is used.

See also ocisetbufferinglob().

Předcházející | Domů | Další
ocifreestatement | Nahoru | ociinternaldebug


ociinternaldebug

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ociinternaldebug -- Enables or disables internal debug output

Description

void ociinternaldebug ( int onoff)

ociinternaldebug() enables internal debug output. Set onoff to 0 to turn debug output off, 1 to turn it on.

Poznámka: This function was renamed to oci_internal_debug() after PHP >= 5.0.0. For downward compatibility ociinternaldebug() can also be used. This is deprecated, however.

Předcházející | Domů | Další
lob->getBuffering | Nahoru | ociloadlob


ociloadlob

(PHP 4 , PHP 5)

ociloadlob -- Loads a large object

Description

string ociloadlob ( void )

Poznámka: This function was renamed to oci_lob_load() after PHP >= 5.0.0. For downward compatibility ociloadlob() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ociinternaldebug | Nahoru | ocilogoff


ocilogoff

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ocilogoff -- Disconnects from Oracle server

Description

bool ocilogoff ( resource connection)

ocilogoff() closes the Oracle connection connection.

Using ocilogoff() isn't usually necessary, as non-persistent open links are automatically closed at the end of the script's execution. See also freeing resources.

Poznámka: This function was renamed to oci_close() after PHP >= 5.0.0. For downward compatibility ocilogoff() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ociloadlob | Nahoru | ocilogon


ocilogon

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ocilogon -- Establishes a connection to Oracle

Description

resource ocilogon ( string username, string password [, string db])

ocilogon() returns an connection identifier needed for most other OCI calls. The optional third parameter can either contain the name of the local Oracle instance or the name of the entry in tnsnames.ora to which you want to connect. If the optional third parameter is not specified, PHP uses the environment variables ORACLE_SID (Oracle instance) or TWO_TASK (tnsnames.ora) to determine which database to connect to.

Connections are shared at the page level when using ocilogon(). This means that commits and rollbacks apply to all open transactions in the page, even if you have created multiple connections.

This example demonstrates how the connections are shared.

Příklad 1. ocilogon() example

<?php
echo "<pre>";
$db = "";

$c1 = ocilogon("scott", "tiger", $db);
$c2 = ocilogon("scott", "tiger", $db);

function create_table($conn)
{
  $stmt = ociparse($conn, "create table scott.hallo (test varchar2(64))");
  ociexecute($stmt);
  echo $conn . " created table\n\n";
}

function drop_table($conn)
{
  $stmt = ociparse($conn, "drop table scott.hallo");
  ociexecute($stmt);
  echo $conn . " dropped table\n\n";
}

function insert_data($conn)
{
  $stmt = ociparse($conn, "insert into scott.hallo
            values('$conn' || ' ' || to_char(sysdate,'DD-MON-YY HH24:MI:SS'))");
  ociexecute($stmt, OCI_DEFAULT);
  echo $conn . " inserted hallo\n\n";
}

function delete_data($conn)
{
  $stmt = ociparse($conn, "delete from scott.hallo");
  ociexecute($stmt, OCI_DEFAULT);
  echo $conn . " deleted hallo\n\n";
}

function commit($conn)
{
  ocicommit($conn);
  echo $conn . " committed\n\n";
}

function rollback($conn)
{
  ocirollback($conn);
  echo $conn . " rollback\n\n";
}

function select_data($conn)
{
  $stmt = ociparse($conn, "select * from scott.hallo");
  ociexecute($stmt, OCI_DEFAULT);
  echo $conn."----selecting\n\n";
  while (ocifetch($stmt)) {
    echo $conn . " [" . ociresult($stmt, "TEST") . "]\n\n";
  }
  echo $conn . "----done\n\n";
}

create_table($c1);
insert_data($c1);   // Insert a row using c1
insert_data($c2);   // Insert a row using c2

select_data($c1);   // Results of both inserts are returned
select_data($c2);

rollback($c1);      // Rollback using c1

select_data($c1);   // Both inserts have been rolled back
select_data($c2);

insert_data($c2);   // Insert a row using c2
commit($c2);        // Commit using c2

select_data($c1);   // Result of c2 insert is returned

delete_data($c1);   // Delete all rows in table using c1
select_data($c1);   // No rows returned
select_data($c2);   // No rows returned
commit($c1);        // Commit using c1

select_data($c1);   // No rows returned
select_data($c2);   // No rows returned

drop_table($c1);
echo "</pre>";
?>

Poznámka: This function was renamed to oci_connect() after PHP >= 5.0.0. For downward compatibility ocilogon() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ocilogoff | Nahoru | ocinewcollection


ocinewcollection

(PHP 4 >= 4.0.6, PHP 5)

ocinewcollection -- Initialize a new collection

Description

object ocinewcollection ( resource connection, string tdo [, string schema])

Poznámka: This function was renamed to oci_new_collection() after PHP >= 5.0.0. For downward compatibility ocinewcollection() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ocilogon | Nahoru | ocinewcursor


ocinewcursor

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

ocinewcursor -- Return a new cursor (Statement-Handle)

Description

resource ocinewcursor ( resource conn)

ocinewcursor() allocates a new statement handle on the specified connection.

Příklad 1. Using a REF CURSOR from a stored procedure in Oracle

<?php
// suppose your stored procedure info.output returns a ref cursor in :data

$conn = OCILogon("scott", "tiger");
$curs = OCINewCursor($conn);
$stmt = OCIParse($conn, "begin info.output(:data); end;");

ocibindbyname($stmt, "data", &$curs, -1, OCI_B_CURSOR);
ociexecute($stmt);
ociexecute($curs);

while (OCIFetchInto($curs, &$data)) {
    var_dump($data);
}

OCIFreeStatement($stmt);
OCIFreeCursor($curs);
OCILogoff($conn);
?>

Příklad 2. Using a REF CURSOR in a select statement in Oracle

<?php
echo "<html><body>";
$conn = OCILogon("scott", "tiger");
$count_cursor = "CURSOR(select count(empno) num_emps from emp " .
                "where emp.deptno = dept.deptno) as EMPCNT from dept";
$stmt = OCIParse($conn, "select deptno,dname,$count_cursor");

ociexecute($stmt);
echo "<table border=\"1\">";
echo "<tr>";
echo "<th>DEPT NAME</th>";
echo "<th>DEPT #</th>";
echo "<th># EMPLOYEES</th>";
echo "</tr>";

while (OCIFetchInto($stmt, &$data, OCI_ASSOC)) {
    echo "<tr>";
    $dname  = $data["DNAME"];
    $deptno = $data["DEPTNO"];
    echo "<td>$dname</td>";
    echo "<td>$deptno</td>";
    ociexecute($data["EMPCNT"]);
    while (OCIFetchInto($data["EMPCNT"], &$subdata, OCI_ASSOC)) {
        $num_emps = $subdata["NUM_EMPS"];
        echo  "<td>$num_emps</td>";
    }
    echo "</tr>";
}
echo "</table>";
echo "</body></html>";
OCIFreeStatement($stmt);
OCILogoff($conn);
?>

Poznámka: This function was renamed to oci_new_cursor() after PHP >= 5.0.0. For downward compatibility ocinewcursor() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ocinewcollection | Nahoru | ocinewdescriptor


ocinewdescriptor

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ocinewdescriptor -- Initialize a new empty LOB or FILE descriptor

Description

object ocinewdescriptor ( resource connection [, int type])

ocinewdescriptor() allocates storage to hold descriptors or LOB locators. Valid values for type are OCI_D_FILE, OCI_D_LOB and OCI_D_ROWID. For LOB descriptors, the methods load, save, and savefile are associated with the descriptor, for BFILE only the load method exists. See the second example usage hints.

Příklad 1. ocinewdescriptor() 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 = OCILogon($user, $password);
    $stmt = OCIParse($conn, "select rowid from $table $where");
    $rowid = OCINewDescriptor($conn, OCI_D_ROWID);
    OCIDefineByName($stmt, "ROWID", &$rowid);
    OCIExecute($stmt);
    while (OCIFetch($stmt)) {
       $nrows = OCIRowCount($stmt);
       $delete = OCIParse($conn, "delete from $table where ROWID = :rid");
       OCIBindByName($delete, ":rid", &$rowid, -1, OCI_B_ROWID);
       OCIExecute($delete);
       echo "$nrows\n";
       if (($nrows % $commitsize) == 0) {
           OCICommit($conn);
       }
    }
    $nrows = OCIRowCount($stmt);
    echo "$nrows deleted...\n";
    OCIFreeStatement($stmt);
    OCILogoff($conn);
?>
<?php
    /* This script demonstrates file upload to LOB columns
     * The formfield used for this example looks like this
     * <form action="upload.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 = OCILogon($user, $password);
     $lob = OCINewDescriptor($conn, OCI_D_LOB);
     $stmt = OCIParse($conn, "insert into $table (id, the_blob)
               values(my_seq.NEXTVAL, EMPTY_BLOB()) returning the_blob into :the_blob");
     OCIBindByName($stmt, ':the_blob', &$lob, -1, OCI_B_BLOB);
     OCIExecute($stmt, OCI_DEFAULT);
     if ($lob->savefile($lob_upload)){
        OCICommit($conn);
        echo "Blob successfully uploaded\n";
     }else{
        echo "Couldn't upload Blob\n";
     }
     OCIFreeDesc($lob);
     OCIFreeStatement($stmt);
     OCILogoff($conn);
  }
?>

Příklad 2. ocinewdescriptor() second example

<?php
    /* Calling PL/SQL stored procedures which contain clobs as input
     * parameters (PHP 4 >= 4.0.6).
     * Example PL/SQL stored procedure signature is:
     *
     * PROCEDURE save_data
     *   Argument Name                  Type                    In/Out Default?
     *   ------------------------------ ----------------------- ------ --------
     *   KEY                            NUMBER(38)              IN
     *   DATA                           CLOB                    IN
     *
     */

    $conn = OCILogon($user, $password);
    $stmt = OCIParse($conn, "begin save_data(:key, :data); end;");
    $clob = OCINewDescriptor($conn, OCI_D_LOB);
       OCIBindByName($stmt, ':key', $key);
    OCIBindByName($stmt, ':data', $clob, -1, OCI_B_CLOB);
       $clob->WriteTemporary($data);
       OCIExecute($stmt, OCI_DEFAULT);
       OCICommit($conn);
       $clob->close();
       $clob->free();
    OCIFreeStatement($stmt);
?>

Poznámka: This function was renamed to oci_new_descriptor() after PHP >= 5.0.0. For downward compatibility ocinewdescriptor() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ocinewcursor | Nahoru | ocinlogon


ocinlogon

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

ocinlogon -- Establishes a new connection to Oracle

Description

resource ocinlogon ( string username, string password [, string db])

ocinlogon() creates a new connection to an Oracle 8 database and logs on. The optional third parameter can either contain the name of the local Oracle instance or the name of the entry in tnsnames.ora to which you want to connect. If the optional third parameter is not specified, PHP uses the environment variables ORACLE_SID (Oracle instance) or TWO_TASK (tnsnames.ora) to determine which database to connect to.

ocinlogon() forces a new connection. This should be used if you need to isolate a set of transactions. By default, connections are shared at the page level if using ocilogon() or at the web server process level if using ociplogon(). If you have multiple connections open using ocinlogon(), all commits and rollbacks apply to the specified connection only.

This example demonstrates how the connections are separated.

Příklad 1. ocinlogon() example

<?php
echo "<html><pre>";
$db = "";

$c1 = ocilogon("scott", "tiger", $db);
$c2 = ocinlogon("scott", "tiger", $db);

function create_table($conn)
{
  $stmt = ociparse($conn, "create table scott.hallo (test
varchar2(64))");
  ociexecute($stmt);
  echo $conn . " created table\n\n";
}

function drop_table($conn)
{
  $stmt = ociparse($conn, "drop table scott.hallo");
  ociexecute($stmt);
  echo $conn . " dropped table\n\n";
}

function insert_data($conn)
{
  $stmt = ociparse($conn, "insert into scott.hallo
            values('$conn' || ' ' || to_char(sysdate,'DD-MON-YY HH24:MI:SS'))");
  ociexecute($stmt, OCI_DEFAULT);
  echo $conn . " inserted hallo\n\n";
}

function delete_data($conn)
{
  $stmt = ociparse($conn, "delete from scott.hallo");
  ociexecute($stmt, OCI_DEFAULT);
  echo $conn . " deleted hallo\n\n";
}

function commit($conn)
{
  ocicommit($conn);
  echo $conn . " committed\n\n";
}

function rollback($conn)
{
  ocirollback($conn);
  echo $conn . " rollback\n\n";
}

function select_data($conn)
{
  $stmt = ociparse($conn, "select * from scott.hallo");
  ociexecute($stmt, OCI_DEFAULT);
  echo $conn . "----selecting\n\n";
  while (ocifetch($stmt)) {
    echo $conn . " <" . ociresult($stmt, "TEST") . ">\n\n";
  }
  echo $conn . "----done\n\n";
}

create_table($c1);
insert_data($c1);

select_data($c1);
select_data($c2);

rollback($c1);

select_data($c1);
select_data($c2);

insert_data($c2);
commit($c2);

select_data($c1);

delete_data($c1);
select_data($c1);
select_data($c2);
commit($c1);

select_data($c1);
select_data($c2);

drop_table($c1);
echo "</pre></html>";
?>

Poznámka: This function was renamed to oci_new_connect() after PHP >= 5.0.0. For downward compatibility ocinlogon() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ocinewdescriptor | Nahoru | ocinumcols


ocinumcols

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ocinumcols -- Return the number of result columns in a statement

Description

int ocinumcols ( resource stmt)

ocinumcols() returns the number of columns in the statement stmt.

Příklad 1. ocinumcols() example

<?php
    echo "<pre>\n";
    $conn = OCILogon("scott", "tiger");
    $stmt = OCIParse($conn, "select * from emp");
    OCIExecute($stmt);
    while (OCIFetch($stmt)) {
        echo "\n";
        $ncols = OCINumCols($stmt);
        for ($i = 1; $i <= $ncols; $i++) {
            $column_name  = OCIColumnName($stmt, $i);
            $column_value = OCIResult($stmt, $i);
            echo $column_name . ': ' . $column_value . "\n";
        }
        echo "\n";
    }
    OCIFreeStatement($stmt);
    OCILogoff($conn);
    echo "</pre>";
?>

Poznámka: This function was renamed to oci_num_fields() after PHP >= 5.0.0. For downward compatibility ocinumcols() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ocinlogon | Nahoru | ociparse


ociparse

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ociparse -- Parse a query and return an Oracle statement

Description

resource ociparse ( resource conn, string query)

ociparse() parses the query using conn. It returns the statement identity if the query is valid, FALSE if not. The query can be any valid SQL statement or PL/SQL block.

Poznámka: This function was renamed to oci_parse() after PHP >= 5.0.0. For downward compatibility ociparse() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ocinumcols | Nahoru | ociplogon


ociplogon

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

ociplogon -- Connect to an Oracle database using a persistent connection

Description

resource ociplogon ( string username, string password [, string db])

ociplogon() creates a persistent connection to an Oracle 8 database and logs on. The optional third parameter can either contain the name of the local Oracle instance or the name of the entry in tnsnames.ora to which you want to connect. If the optional third parameter is not specified, PHP uses the environment variables ORACLE_SID (Oracle instance) or TWO_TASK (tnsnames.ora) to determine which database to connect to.

Poznámka: This function was renamed to oci_pconnect() after PHP >= 5.0.0. For downward compatibility ociplogon() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ociparse | Nahoru | ociresult


ociresult

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ociresult -- Returns column value for fetched row

Description

mixed ociresult ( resource statement, mixed col)

ociresult() returns the data for column column in the current row (see ocifetch()). ociresult() will return everything as strings except for abstract types (ROWIDs, LOBs and FILEs).

You can either use the column-number (1-Based) or the column-name, in uppercase, for the col parameter.

Poznámka: This function was renamed to oci_result() after PHP >= 5.0.0. For downward compatibility ociresult() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ociplogon | Nahoru | ocirollback


ocirollback

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ocirollback -- Rolls back outstanding transactions

Description

bool ocirollback ( resource connection)

ocirollback() rolls back all outstanding statements for Oracle connection connection. Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: This function was renamed to oci_rollback() after PHP >= 5.0.0. For downward compatibility ocirollback() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ociresult | Nahoru | ocirowcount


ocirowcount

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ocirowcount -- Gets the number of affected rows

Description

int ocirowcount ( resource stmt)

ocirowcount() returns the number of rows affected for e.g. update-statements. This function will not tell you the number of rows that a select will return!

Příklad 1. ocirowcount() example

<?php
    echo "<pre>";
    $conn = OCILogon("scott", "tiger");
    $stmt = OCIParse($conn, "create table emp2 as select * from emp");
    OCIExecute($stmt);
    echo OCIRowCount($stmt) . " rows inserted.<br />";
    OCIFreeStatement($stmt);
    $stmt = OCIParse($conn, "delete from emp2");
    OCIExecute($stmt);
    echo OCIRowCount($stmt) . " rows deleted.<br />";
    OCICommit($conn);
    OCIFreeStatement($stmt);
    $stmt = OCIParse($conn, "drop table emp2");
    OCIExecute($stmt);
    OCIFreeStatement($stmt);
    OCILogOff($conn);
    echo "</pre>";
?>

Poznámka: This function was renamed to oci_num_rows() after PHP >= 5.0.0. For downward compatibility ocirowcount() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ocirollback | Nahoru | ocisavelob


ocisavelob

(PHP 4 , PHP 5)

ocisavelob -- Saves a large object

Description

bool ocisavelob ( void )

Poznámka: This function was renamed to oci_lob_save() after PHP >= 5.0.0. For downward compatibility ocisavelob() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ocirowcount | Nahoru | ocisavelobfile


ocisavelobfile

(PHP 4 , PHP 5)

ocisavelobfile -- Saves a large object file

Description

bool ocisavelobfile ( void )

Poznámka: This function was renamed to oci_lob_import() after PHP >= 5.0.0. For downward compatibility ocisavelobfile() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ocisavelob | Nahoru | ociserverversion


ociserverversion

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ociserverversion -- Return a string containing server version information

Description

string ociserverversion ( resource conn)

Příklad 1. ociserverversion() example

<?php
   $conn = OCILogon("scott", "tiger");
   echo "Server Version: " . OCIServerVersion($conn);
   OCILogOff($conn);
?>

Poznámka: This function was renamed to oci_server_version() after PHP >= 5.0.0. For downward compatibility ociserverversion() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ocisavelobfile | Nahoru | lob->setBuffering


lob->setBuffering

(no version information, might be only in CVS)

lob->setBuffering -- Changes current state of buffering for large object

Description

bool lob->setBuffering ( bool on_off)

lob->setBuffering() sets the buffering for the large object, depending on the value of the on_off parameter. Repeated calls to lob->setBuffering() with the same flag will return TRUE. The values for on_off are: TRUE for on and FALSE for off.

Use of this function may provide perfomance improvements by buffering small reads and writes of LOBs by reducing the number of network round-trips and LOB versions. oci_lob_flush() should be used to flush buffers, when you have finished working with the large object.

Vrací TRUE při úspěchu, FALSE při selhání.

See also ocigetbufferinglob().

Předcházející | Domů | Další
ociserverversion | Nahoru | ocisetprefetch


ocisetprefetch

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

ocisetprefetch -- Sets number of rows to be prefetched

Description

bool ocisetprefetch ( resource stmt, int rows)

Sets the number of top level rows to be prefetched to rows. The default value for rows is 1 row.

Poznámka: This function was renamed to oci_set_prefetch() after PHP >= 5.0.0. For downward compatibility ocisetprefetch() can also be used. This is deprecated, however.

Předcházející | Domů | Další
lob->setBuffering | Nahoru | ocistatementtype


ocistatementtype

(PHP 3>= 3.0.5, PHP 4 , PHP 5)

ocistatementtype -- Return the type of an OCI statement

Description

string ocistatementtype ( resource stmt)

ocistatementtype() returns one of the following values:

  1. SELECT

  2. UPDATE

  3. DELETE

  4. INSERT

  5. CREATE

  6. DROP

  7. ALTER

  8. BEGIN

  9. DECLARE

  10. UNKNOWN

Příklad 1. ocistatementtype() examples

<?php
    $conn = OCILogon("scott", "tiger");
    $sql  = "delete from emp where deptno = 10";

    $stmt = OCIParse($conn, $sql);
    if (OCIStatementType($stmt) == "DELETE") {
        die("You are not allowed to delete from this table<br />");
    }

    OCILogoff($conn);
?>

Poznámka: This function was renamed to oci_statement_type() after PHP >= 5.0.0. For downward compatibility ocistatementtype() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ocisetprefetch | Nahoru | ociwritelobtofile


ociwritelobtofile

(PHP 4 , PHP 5)

ociwritelobtofile -- Saves a large object file

Description

bool ociwritelobtofile ( [string filename [, int start [, int length]]])

Poznámka: This function was renamed to oci_lob_export() after PHP >= 5.0.0. For downward compatibility ociwritelobtofile() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ocistatementtype | Nahoru | ociwritetemporarylob


ociwritetemporarylob

(no version information, might be only in CVS)

ociwritetemporarylob -- Writes temporary blob

Description

bool ociwritetemporarylob ( string var [, int lob_type])

Poznámka: This function was renamed to oci_lob_write_temporary() after PHP >= 5.0.0. For downward compatibility ociwritetemporarylob() can also be used. This is deprecated, however.

Předcházející | Domů | Další
ociwritelobtofile | Nahoru | OpenSSL funkce


OpenSSL funkce

Manuál PHP
Předcházející Další

LXXV. OpenSSL funkce

Úvod

Toto rozšíření využívá funkce OpenSSL pro tvorbu a ověřování podpisů a pečetění (kódování) a otvírání (dekódování) dat. OpenSSL nabízí mnoho vlastností, které tato extenze v současnosti nepodporuje. Některé z nich mohou být v budoucnu přidány.

Požadavky

Abyste mohli používat tyto funkce, musíte nainstalovat OpenSSL. PHP-4.0.4pl1 potřebuje OpenSSL >= 0.9.6, ale PHP-4.0.5 a vyšší budou pracovat i s OpenSSL >= 0.9.5.

Instalace

Abyste v PHP mohli používat funkce OpenSSL, musíte PHP zkompilovat s volbou --with-openssl[=DIR].

Poznámka pro uživatele Win32: Aby toto rozšíření fungovalo ve Windows, musíte zkopírovat soubor libeay32.dll z adresáře DLL Win32 distribuce do adresáře SYSTEM32. (Např.: C:\WINNT\SYSTEM32 nebo C:\WINDOWS\SYSTEM32)

Navíc, pokud máte v úmyslu používat funkce generování klíčů a podepisování certifikátů, musíte na váš systém nainstalovat platný openssl.cnf. Do PHP 4.3.0 jsme připojili ukázkový konfigurační soubor do adresáře openssl Win32 distribuce. Pokud používáte 4.2.0 nebo novější a tento soubor vám chybí, můžete ho stáhnout z domácí stránky OpenSSL nebo stáhněte PHP 4.3.0 a použijte konfigurační souboru z něj.

Poznámka pro uživatele Win32: PHP bude hledat openssl.cnf tímto postupem:

  • Proměnná prostředí OPENSSL_CONF, pokud je nastavena, bude použita jako cesta (včetně názvu souboru) konfiguračního souboru.

  • Proměnná prostředí SSLEAY_CONF, pokud je nastavena, bude použita jako cesta (včetně názvu souboru) konfiguračního souboru.

  • Bude se předpokládat, že soubor openssl.cnf bude nalezen ve výchozí oblasti certifikátů, která byla zkonfigurována při kompilaci DLL knihovny openssl. To obvykle znamená, že výchozí název souboru je c:\usr\local\ssl\openssl.cnf.

Ve své instalaci se musíte rozhodnout, zda nainstalujete konfigurační soubor do c:\usr\local\ssl\openssl.cnf nebo zda ho nainstalujete někam jinam a pro nalezení konfiguračního souboru použijete proměnnou prostředí (pravděpodpobně jako per-virtual-host). Vemte na vědomí, že výchozí cestu lze změnit v parametru configargs funkcí, které potřebují konfigurační soubor.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

Parametry s klíči/certifikáty

Několik openssl funkcí potřebuje parametr s klíčem nebo certifikátem. PHP 4.0.5 a starší musí pro klíč a certifikát používat resource vrácený některou z funkcí openssl_get_xxx. Pozdější verzi mohou používat libovolnou z těchto metod:

  • Certifikáty

    1. X.509 zdroj vrácený funkcí openssl_x509_read()

    2. Řetězec ve formátu file://path/to/cert.pem; uvedený soubor musí obsahovat PEM-zakódovaný certifikát

    3. Řetězec obsahující PEM-zakódovaný certifikát

  • Veřejné a soukromé klíče

    1. Zdroj klíče vrácený funkcí openssl_get_publickey() nebo openssl_get_privatekey()

    2. Pouze veřejné klíče: zdroj X.509

    3. Řetězec ve formátu file://path/to/file.pem - uvedený soubor musí obsahovat PEM-zakódovaný certifikát / veřejný klíč (může obsahovat oba)

    4. Řetězec obsahující obsah certifikátu / klíče, PEM-zakódovaný

    5. Pro soukromé klíče lze také použít syntaxi array($key, $heslo) kde $key reprezentuje klíč zadaný pomocí file:// nebo textového uvedení zmíněného výše a $heslo reprezentuje řetězec obsahující heslo pro tento soukromý klíč

Ověření certifikátu

Když voláte funkci, která ověřuje podpis / certifikát, parametr cainfo je pole obsahující názvy souborů a adresářů, které určují umístění souborů důvěryhodných CA. Pokud je zadán adresář, musí to být správně uspořádaný adresář s hashi tak, jak ho používá příkaz openssl.

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

Přepínače ověření účelu

X509_PURPOSE_SSL_CLIENT (integer)

X509_PURPOSE_SSL_SERVER (integer)

X509_PURPOSE_NS_SSL_SERVER (integer)

X509_PURPOSE_SMIME_SIGN (integer)

X509_PURPOSE_SMIME_ENCRYPT (integer)

X509_PURPOSE_CRL_SIGN (integer)

X509_PURPOSE_ANY (integer)

Přepínače vycpávky

OPENSSL_PKCS1_PADDING (integer)

OPENSSL_SSLV23_PADDING (integer)

OPENSSL_NO_PADDING (integer)

OPENSSL_PKCS1_OAEP_PADDING (integer)

Typy klíčů

OPENSSL_KEYTYPE_RSA (integer)

OPENSSL_KEYTYPE_DSA (integer)

OPENSSL_KEYTYPE_DH (integer)

Přepínače / konstanty PKCS7

S/MIME funkce používají přepínače, kterou jsou specifikovány jako bitové pole, které může obsahovat jednu nebo více následujících hodnot:

Tabulka 1. PKCS7 konstanty

Konstanta | Popis
PKCS7_TEXT | přidá "text/plain content type" hlavičky k zakódovaným/podepsaným zprávám. Při dekódování nebo ověřování odstraní tyto hlavičky z výstupu - když není rozkódovaná nebo ověřená zpráva MIME typu text/plain, dojde k chybě.
PKCS7_BINARY | za normálních okolností je zdrojová zpráva převedená do "kanonického" formátu, který používá pro konce řádků používá CR a LF: tak, jak to požaduje S/MIME specifikace. Když je zapnuta tato volba, nedojde k žádnému převodu. To se hodí v případě manipulace s binárními daty, která nemusí být v MIME formátu.
PKCS7_NOINTERN | při ověřování zprávy jsou za normálních okolností certifikáty obsažené ve zprávě (pokud nějaké existují) prohledávané na výskyt podpisového certifikátu. S touto volbou se použijí pouze certifikáty zadané v parametru extracerts funkce openssl_pkcs7_verify(). Zadané certifikáty ale stále mohou být použity jako nedůvěryhodné CA.
PKCS7_NOVERIFY | neověřovat certifikát podepisovatele podepsané zprávy.
PKCS7_NOCHAIN | nespojovat ověření podepisovatelových certifikátů: to znamená nepoužívat certifikáty v podepsané zprávě jako nedůvěryhodné CA.
PKCS7_NOCERTS | při podepisování zprávy je za normálních okolností připojen certifikát podepisovatele - s touto volbou tomu tak není. To způsobí snížení velikosti podepsané zprávy, ale ověřovatel musí mít kopii podepisovatelova certifikátu k dispozici lokálně (například předanou v parametru extracerts funkce openssl_pkcs7_verify()).
PKCS7_NOATTR | Pokud je zpráva podepsána za normálních okolností, je připojena sada atributů obsahující čas podpisu a podporované symetrické algoritmy. S touto volbou není připojena.
PKCS7_DETACHED | Při podpisu zprávy použije podpis čitelného text spolu s MIME typem multipart/signed. To je výchozí nastavení, pokud ve funkci openssl_pkcs7_sign() nezadáte parametr flags. Pokud tuto volbu vypnete, bude zpráva podepsána za použití neprůhledného podepsání, které je více odolné vůči překladům e-mailových bran, ale nelze přečíst klienty, kteří nepodporují S/MIME.
PKCS7_NOSIGS | Nezkoušet a neověřovat podpisy zprávy

Poznámka: Tyto konstanty byly přidány ve verzi 4.0.6.

Obsah
openssl_csr_export_to_file -- Exports a CSR to a file
openssl_csr_export -- Exports a CSR as a string
openssl_csr_new -- Generates a CSR
openssl_csr_sign -- Sign a CSR with another certificate (or itself) and generate a certificate
openssl_error_string -- Return openSSL error message
openssl_free_key -- Uvolnit prostředky klíče
openssl_get_privatekey -- Připravit soukromý PEM klíč k použití
openssl_get_publickey -- Získat z certifikátu veřejný klíč a připravit ho k použití
openssl_open -- Otevřít zapečetěná data
openssl_pkcs7_decrypt -- Decrypts an S/MIME encrypted message
openssl_pkcs7_encrypt -- Encrypt an S/MIME message
openssl_pkcs7_sign -- sign an S/MIME message
openssl_pkcs7_verify -- Verifies the signature of an S/MIME signed message
openssl_pkey_export_to_file -- Gets an exportable representation of a key into a file
openssl_pkey_export -- Gets an exportable representation of a key into a string
openssl_pkey_get_private -- Get a private key
openssl_pkey_get_public -- Extract public key from certificate and prepare it for use
openssl_pkey_new -- Generates a new private key
openssl_private_decrypt -- Decrypts data with private key
openssl_private_encrypt -- Encrypts data with private key
openssl_public_decrypt -- Decrypts data with public key
openssl_public_encrypt -- Encrypts data with public key
openssl_seal -- Zapečetit (zakódovat) data
openssl_sign -- Generate signature
openssl_verify -- Ověřit podpis
openssl_x509_check_private_key -- Checks if a private key corresponds to a certificate
openssl_x509_checkpurpose -- Verifies if a certificate can be used for a particular purpose
openssl_x509_export_to_file -- Exports a certificate to file
openssl_x509_export -- Exports a certificate as a string
openssl_x509_free -- Free certificate resource
openssl_x509_parse -- Parse an X509 certificate and return the information as an array
openssl_x509_read -- Parse an X.509 certificate and return a resource identifier for it

Předcházející | Domů | Další
ociwritetemporarylob | Nahoru | openssl_csr_export_to_file


openssl_csr_export_to_file

(PHP 4 >= 4.2.0, PHP 5)

openssl_csr_export_to_file -- Exports a CSR to a file

Description

bool openssl_csr_export_to_file ( resource csr, string outfilename [, bool notext])

openssl_csr_export_to_file() takes the Certificate Signing Request represented by csr and saves it as ascii-armoured text into the file named by outfilename.

The optional parameter notext affects the verbosity of the output; if it is FALSE then additional human-readable information is included in the output. The default value of notext is TRUE.

Vrací TRUE při úspěchu, FALSE při selhání.

See also openssl_csr_export(),
openssl_csr_new() and
openssl_csr_sign().

Předcházející | Domů | Další
OpenSSL funkce | Nahoru | openssl_csr_export


openssl_csr_export

(PHP 4 >= 4.2.0, PHP 5)

openssl_csr_export -- Exports a CSR as a string

Description

bool openssl_csr_export ( resource csr, string &out [, bool notext])

openssl_csr_export() takes the Certificate Signing Request represented by csr and stores it as ascii-armoured text into out, which is passed by reference.

The optional parameter notext affects the verbosity of the output; if it is FALSE then additional human-readable information is included in the output. The default value of notext is TRUE.

Vrací TRUE při úspěchu, FALSE při selhání.

See also openssl_csr_export_to_file(),
openssl_csr_new() and
openssl_csr_sign().

Předcházející | Domů | Další
openssl_csr_export_to_file | Nahoru | openssl_csr_new


openssl_csr_new

(PHP 4 >= 4.2.0, PHP 5)

openssl_csr_new -- Generates a CSR

Description

bool openssl_csr_new ( array dn, resource privkey [, array configargs [, array extraattribs]])

openssl_csr_new() generates a new CSR (Certificate Signing Request) based on the information provided by dn, which represents the Distinguished Name to be used in the certificate.

privkey should be set to a private key that was previously generated by openssl_pkey_new() (or otherwise obtained from the other openssl_pkey family of functions). The corresponding public portion of the key will be used to sign the CSR.

extraattribs is used to specify additional configuration options for the CSR. Both dn and extraattribs are associative arrays whose keys are converted to OIDs and applied to the relevant part of the request.

Poznámka: You need to have a valid openssl.cnf installed for this function to operate correctly. See the notes under the installation section for more information.

By default, the information in your system openssl.conf is used to initialize the request; you can specify a configuration file section by setting the config_section_section key of configargs. You can also specify an alternative openssl configuration file by setting the value of the config key to the path of the file you want to use. The following keys, if present in configargs behave as their equivalents in the openssl.conf, as listed in the table below.

Tabulka 1. Configuration overrides

configargs key | type | openssl.conf equivalent | description
digest_alg | string | default_md | Selects which digest method to use
x509_extensions | string | x509_extensions | Selects which extensions should be used when creating an x509 certificate
req_extensions | string | req_extensions | Selects which extensions should be used when creating a CSR
private_key_bits | string | default_bits | Specifies how many bits should be used to generate a private key
private_key_type | integer | none | Specifies the type of private key to create. This can be one of OPENSSL_KEYTYPE_DSA, OPENSSL_KEYTYPE_DH or OPENSSL_KEYTYPE_RSA. The default value is OPENSSL_KEYTYPE_RSA which is currently the only supported key type.
encrypt_key | boolean | encrypt_key | Should an exported key (with passphrase) be encrypted?

Vrací TRUE při úspěchu, FALSE při selhání.

Příklad 1. openssl_csr_new() example - creating a self-signed-certificate

<?php
// Fill in data for the distinguished name to be used in the cert
// You must change the values of these keys to match your name and
// company, or more precisely, the name and company of the person/site
// that you are generating the certificate for.
// For SSL certificates, the commonName is usually the domain name of
// that will be using the certificate, but for S/MIME certificates,
// the commonName will be the name of the individual who will use the
// certificate.
$dn = array(
    "countryName" => "UK",
    "stateOrProvinceName" => "Somerset",
    "localityName" => "Glastonbury",
    "organizationName" => "The Brain Room Limited",
    "organizationalUnitName" => "PHP Documentation Team",
    "commonName" => "Wez Furlong",
    "emailAddress" => "wez@example.com"
);

// Generate a new private (and public) key pair
$privkey = openssl_pkey_new();

// Generate a certificate signing request
$csr = openssl_csr_new($dn, $privkey);

// You will usually want to create a self-signed certificate at this
// point until your CA fulfills your request.
// This creates a self-signed cert that is valid for 365 days
$sscert = openssl_csr_sign($csr, null, $privkey, 365);

// Now you will want to preserve your private key, CSR and self-signed
// cert so that they can be installed into your web server, mail server
// or mail client (depending on the intended use of the certificate).
// This example shows how to get those things into variables, but you
// can also store them directly into files.
// Typically, you will send the CSR on to your CA who will then issue
// you with the "real" certificate.
openssl_csr_export($csr, $csrout) and var_dump($csrout);
openssl_x509_export($sscert, $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";
}
?>

Předcházející | Domů | Další
openssl_csr_export | Nahoru | openssl_csr_sign


openssl_csr_sign

(PHP 4 >= 4.2.0, PHP 5)

openssl_csr_sign -- Sign a CSR with another certificate (or itself) and generate a certificate

Description

resource openssl_csr_sign ( mixed csr, mixed cacert, mixed priv_key, int days [, array configargs [, int serial]])

openssl_csr_sign() generates an x509 certificate resource from the csr previously generated by openssl_csr_new(), but it can also be the path to a PEM encoded CSR when specified as file://path/to/csr or an exported string generated by openssl_csr_export(). The generated certificate will be signed by cacert. If cacert is NULL, the generated certificate will be a self-signed certificate. priv_key is the private key that corresponds to cacert. days specifies the length of time for which the generated certificate will be valid, in days. You can finetune the CSR signing by configargs. See openssl_csr_new() for more information about configargs. Since PHP 4.3.3 you can specify the serial number of issued certificate by serial. In earlier versions, it was always 0.

Returns an x509 certificate resource on success, FALSE on failure.

Poznámka: You need to have a valid openssl.cnf installed for this function to operate correctly. See the notes under the installation section for more information.

Příklad 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");

$userscert = openssl_csr_sign($csrdata, $cacert, $privkey, 365);

// Now display the generated certificate so that the user can
// copy and paste it into their local configuration (such as a file
// to hold the certificate for their SSL server)
openssl_x509_export($usercert, $certout);
echo $certout;

// Show any errors that occurred here
while (($e = openssl_error_string()) !== false) {
    echo $e . "\n";
}
?>

Předcházející | Domů | Další
openssl_csr_new | Nahoru | openssl_error_string


openssl_error_string

(PHP 4 >= 4.0.6, PHP 5)

openssl_error_string -- Return openSSL error message

Description

mixed openssl_error_string ( void )

Returns an error message string, or FALSE if there are no more error messages to return.

openssl_error_string() returns the last error from the openSSL library. Error messages are stacked, so this function should be called multiple times to collect all of the information.

Příklad 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";
?>

Předcházející | Domů | Další
openssl_csr_sign | Nahoru | openssl_free_key


openssl_free_key

(PHP 4 >= 4.0.4, PHP 5)

openssl_free_key -- Uvolnit prostředky klíče

Popis

void openssl_free_key ( int key_identifier)

openssl_free_key() uvolní klíč asociovaný s předaným key_identifier z paměti.

Předcházející | Domů | Další
openssl_error_string | Nahoru | openssl_get_privatekey


openssl_get_privatekey

(PHP 4 >= 4.0.4, PHP 5)

openssl_get_privatekey -- Připravit soukromý PEM klíč k použití

Popis

int openssl_get_privatekey ( string key [, string passphrase])

Pri úspěchu vrací klíč, při chybě FALSE.

openssl_get_privatekey() rozparsuje sourkomý PEM klíč key a připraví ho k použití v dalších funkcích. Volitelný argument passphrase musí být předán, pokud je tento klíč zakódován (chráněn heslem).

Předcházející | Domů | Další
openssl_free_key | Nahoru | openssl_get_publickey


openssl_get_publickey

(PHP 4 >= 4.0.4, PHP 5)

openssl_get_publickey -- Získat z certifikátu veřejný klíč a připravit ho k použití

Popis

int openssl_get_publickey ( string certificate)

Při úspěchu vrací identifikátor klíče, při chybě FALSE.

openssl_get_publickey() z X.509 certifikátu certificate vyextrahuje veřejný klíč a připraví ho k použití v dalších funkcích.

Předcházející | Domů | Další
openssl_get_privatekey | Nahoru | openssl_open


openssl_open

(PHP 4 >= 4.0.4, PHP 5)

openssl_open -- Otevřít zapečetěná data

Popis

bool openssl_open ( string sealed_data, string open_data, string env_key, int priv_key_id)

Při úspěchu vrací TRUE, při chybě FALSE. Úspěšně otevřená data se umístí do argumentu open_data.

openssl_open() otevře (dekóduje) sealed_data pomocí soukromého klíče asociovaného s identifikátorem priv_key_id a obálkou env_key. Tato obálka se generuje při pečetění dat a je použitelná pouze s jedním utčitým soukromým klíčem. Více informací viz openssl_seal().

Příklad 1. Ukázka openssl_open()

// $sealed a $env_key obsahují zapečetěná data a obálku
// obojí nám bylo dáno tím, kdo data zapečetil

// získat ze souboru soukromý klíč a připravit ho
$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);

// dekódovat data a uložit je v $open
if (openssl_open($sealed, $open, $env_key, $pkeyid))
    echo "tady jsou otevřená data: ", $open;
else
    echo "nepodařilo se otevřít data";

// uvolnit klíč z paměti
openssl_free_key($pkeyid);

Viz také openssl_seal().

Předcházející | Domů | Další
openssl_get_publickey | Nahoru | openssl_pkcs7_decrypt


openssl_pkcs7_decrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_pkcs7_decrypt -- Decrypts an S/MIME encrypted message

Description

bool openssl_pkcs7_decrypt ( string infilename, string outfilename, mixed recipcert [, mixed recipkey])

Decrypts the S/MIME encrypted message contained in the file specified by infilename using the certificate and its associated private key specified by recipcert and recipkey.

The decrypted message is output to the file specified by outfilename

Příklad 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!";
}
?>

Předcházející | Domů | Další
openssl_open | Nahoru | openssl_pkcs7_encrypt


openssl_pkcs7_encrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_pkcs7_encrypt -- Encrypt an S/MIME message

Description

bool openssl_pkcs7_encrypt ( string infile, string outfile, mixed recipcerts, array headers [, int flags])

openssl_pkcs7_encrypt() takes the contents of the file named infile and encrypts them using an RC2 40-bit cipher so that they can only be read by the intended recipients specified by recipcerts, which is either a lone X.509 certificate, or an array of X.509 certificates. headers is an array of headers that will be prepended to the data after it has been encrypted. flags can be used to specify options that affect the encoding process - see PKCS7 constants. headers can be either an associative array keyed by header name, or an indexed array, where each element contains a single header line.

Příklad 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");
}
?>

Předcházející | Domů | Další
openssl_pkcs7_decrypt | Nahoru | openssl_pkcs7_sign


openssl_pkcs7_sign

(PHP 4 >= 4.0.6, PHP 5)

openssl_pkcs7_sign -- sign an S/MIME message

Description

bool openssl_pkcs7_sign ( string infilename, string outfilename, mixed signcert, mixed privkey, array headers [, int flags [, string extracerts]])

openssl_pkcs7_sign() takes the contents of the file named infilename and signs them using the certificate and its matching private key specified by signcert and privkey parameters.

headers is an array of headers that will be prepended to the data after it has been signed (see openssl_pkcs7_encrypt() for more information about the format of this parameter.

flags can be used to alter the output - see PKCS7 constants - if not specified, it defaults to PKCS7_DETACHED.

extracerts specifies the name of a file containing a bunch of extra certificates to include in the signature which can for example be used to help the recipient to verify the certificate that you used.

Příklad 1. openssl_pkcs7_sign() example

<?php
// the message you want to sign so that recipient can be sure it was you that
// sent it
$data = <<<EOD

You have my authorization to spend $10,000 on dinner expenses.

The CEO
EOD;
// save message to file
$fp = fopen("msg.txt", "w");
fwrite($fp, $data);
fclose($fp);
// encrypt it
if (openssl_pkcs7_sign("msg.txt", "signed.txt", "mycert.pem",
    array("mycert.pem", "mypassphrase"),
    array("To" => "joes@example.com", // keyed syntax
          "From" => "HQ <ceo@example.com>", // indexed syntax
          "Subject" => "Eyes only")
    )) {
    // message signed - send it!
    exec(ini_get("sendmail_path") . " < signed.txt");
}
?>

Předcházející | Domů | Další
openssl_pkcs7_encrypt | Nahoru | openssl_pkcs7_verify


openssl_pkcs7_verify

(PHP 4 >= 4.0.6, PHP 5)

openssl_pkcs7_verify -- Verifies the signature of an S/MIME signed message

Description

bool openssl_pkcs7_verify ( string filename, int flags [, string outfilename [, array cainfo [, string extracerts]]])

openssl_pkcs7_verify() reads the S/MIME message contained in the filename specified by filename and examines the digital signature. It returns TRUE if the signature is verified, FALSE if it is not correct (the message has been tampered with, or the signing certificate is invalid), or -1 on error.

flags can be used to affect how the signature is verified - see PKCS7 constants for more information.

If the outfilename is specified, it should be a string holding the name of a file into which the certificates of the persons that signed the messages will be stored in PEM format.

If the cainfo is specified, it should hold information about the trusted CA certificates to use in the verification process - see certificate verification for more information about this parameter.

If the extracerts is specified, it is the filename of a file containing a bunch of certificates to use as untrusted CAs.

Předcházející | Domů | Další
openssl_pkcs7_sign | Nahoru | openssl_pkey_export_to_file


openssl_pkey_export_to_file

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_export_to_file -- Gets an exportable representation of a key into a file

Description

bool openssl_pkey_export_to_file ( mixed key, string outfilename [, string passphrase [, array configargs]])

openssl_pkey_export_to_file() saves an ascii-armoured (PEM encoded) rendition of key into the file named by outfilename. The key can be optionally protected by a passphrase. configargs can be used to fine-tune the export process by specifying and/or overriding options for the openssl configuration file. See openssl_csr_new() for more information about configargs. Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: You need to have a valid openssl.cnf installed for this function to operate correctly. See the notes under the installation section for more information.

Předcházející | Domů | Další
openssl_pkcs7_verify | Nahoru | openssl_pkey_export


openssl_pkey_export

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_export -- Gets an exportable representation of a key into a string

Description

bool openssl_pkey_export ( mixed key, string &out [, string passphrase [, array configargs]])

openssl_pkey_export() exports key as a PEM encoded string and stores it into out (which is passed by reference). The key is optionally protected by passphrase. configargs can be used to fine-tune the export process by specifying and/or overriding options for the openssl configuration file. See openssl_csr_new() for more information about configargs. Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: You need to have a valid openssl.cnf installed for this function to operate correctly. See the notes under the installation section for more information.

Předcházející | Domů | Další
openssl_pkey_export_to_file | Nahoru | openssl_pkey_get_private


openssl_pkey_get_private

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_get_private -- Get a private key

Description

resource openssl_get_privatekey ( mixed key [, string passphrase])

Returns a positive key resource identifier on success, or FALSE on error.

openssl_get_privatekey() parses key and prepares it for use by other functions. key can be one of the following:

  1. a string having the format file://path/to/file.pem. The named file must contain a PEM encoded certificate/private key (it may contain both).

  2. A PEM formatted private key.

The optional parameter passphrase must be used if the specified key is encrypted (protected by a passphrase).

Předcházející | Domů | Další
openssl_pkey_export | Nahoru | openssl_pkey_get_public


openssl_pkey_get_public

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_get_public -- Extract public key from certificate and prepare it for use

Description

resource openssl_pkey_get_public ( mixed certificate)

Returns a positive key resource identifier on success, or FALSE on error.

openssl_get_publickey() extracts the public key from certificate and prepares it for use by other functions. certificate can be one of the following:

  1. an X.509 certificate resource

  2. a string having the format file://path/to/file.pem. The named file must contain a PEM encoded certificate/private key (it may contain both).

  3. A PEM formatted private key.

Předcházející | Domů | Další
openssl_pkey_get_private | Nahoru | openssl_pkey_new


openssl_pkey_new

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_new -- Generates a new private key

Description

resource openssl_pkey_new ( [array configargs])

openssl_pkey_new() generates a new private and public key pair. The public component of the key can be obtained using openssl_pkey_get_public(). You can finetune the key generation (such as specifying the number of bits) using configargs. See openssl_csr_new() for more information about configargs.

Poznámka: You need to have a valid openssl.cnf installed for this function to operate correctly. See the notes under the installation section for more information.

Předcházející | Domů | Další
openssl_pkey_get_public | Nahoru | openssl_private_decrypt


openssl_private_decrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_private_decrypt -- Decrypts data with private key

Description

bool openssl_private_decrypt ( string data, string &decrypted, mixed key [, int padding])

openssl_private_decrypt() decrypts data that was previous encrypted via openssl_private_encrypt() and stores the result into decrypted. key must be the private key corresponding that was used to encrypt the data. padding defaults to OPENSSL_PKCS1_PADDING, but can also be one of OPENSSL_SSLV23_PADDING, OPENSSL_PKCS1_OAEP_PADDING OPENSSL_NO_PADDING.

Předcházející | Domů | Další
openssl_pkey_new | Nahoru | openssl_private_encrypt


openssl_private_encrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_private_encrypt -- Encrypts data with private key

Description

bool openssl_private_encrypt ( string data, string &crypted, mixed key [, int padding])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
openssl_private_decrypt | Nahoru | openssl_public_decrypt


openssl_public_decrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_public_decrypt -- Decrypts data with public key

Description

bool openssl_public_decrypt ( string data, string &crypted, resource key [, int padding])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
openssl_private_encrypt | Nahoru | openssl_public_encrypt


openssl_public_encrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_public_encrypt -- Encrypts data with public key

Description

bool openssl_public_encrypt ( string data, string &crypted, mixed key [, int padding])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
openssl_public_decrypt | Nahoru | openssl_seal


openssl_seal

(PHP 4 >= 4.0.4, PHP 5)

openssl_seal -- Zapečetit (zakódovat) data

Popis

int openssl_seal ( string data, string sealed_data, array env_keys, array pub_key_ids)

Při úspěchu vrací délku zapečetěných dat, při chybě FALSE. Úspěšně zapečetěná data se umístí do argumentu sealed_data, a obálka do env_keys.

openssl_seal() zapečetí (zakóduje) data pomocí RC4 s náhodně generovaným tajným klíčem. Tento klíč se zakóduje všemi veřejnými klíči asociovanými s identifikátory v pub_key_ids a zakódované klíče se vrátí v env_keys. To znamená, že lze poslat zapečetěná data více příjemcům (za předpokladu, že máme jejích veřejné klíče). Každý z příjemců musí obdržet zapečetěná data a obálku, která byla zakódována jeho veřejným klíčem.

Příklad 1. Ukázka openssl_seal()

// $data obsahuje data určená k zapečetění

// získat veřejné klíče našich příjemců a připravit je
$fp = fopen("/src/openssl-0.9.6/demos/maurice/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pk1 = openssl_get_publickey($cert);
// opakovat prodruhého příjemce
$fp = fopen("/src/openssl-0.9.6/demos/sign/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pk2 = openssl_get_publickey($cert);

// zapečetit zprávu, pouze majitelé $pk1 a $pk2 mohou dekódovat $sealed pomocí
// $ekeys[0] a $ekeys[1].
openssl_seal($data, $sealed, $ekeys, array($pk1,$pk2));

// uvolnit klíče z paměti
openssl_free_key($pk1);
openssl_free_key($pk2);

Viz také openssl_open().

Předcházející | Domů | Další
openssl_public_encrypt | Nahoru | openssl_sign


openssl_sign

(PHP 4 >= 4.0.4, PHP 5)

openssl_sign -- Generate signature

Popis

bool openssl_sign ( string data, string signature, int priv_key_id)

Při úspěchu vrací TRUE, při chybě FALSE. Úspěšně vytvořený podpis se umístí v signature.

openssl_sign() vypočítá podpis pro daná specified data pomocí SHA1 hashe a následně jej zakóduje soukromým klíčem asociovaným s priv_key_id. Pozn.: samotná data nejsou kódována.

Příklad 1. openssl_sign() example

// $data obsahuje data určená k podpisu

// získat ze souboru soukromý klíč a připravit ho
$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);

// vytvořit podpis
openssl_sign($data, $signature, $pkeyid);

// uvolnit klíč z paměti
openssl_free_key($pkeyid);

Viz také openssl_verify().

Předcházející | Domů | Další
openssl_seal | Nahoru | openssl_verify


openssl_verify

(PHP 4 >= 4.0.4, PHP 5)

openssl_verify -- Ověřit podpis

Popis

int openssl_verify ( string data, string signature, int pub_key_id)

Vrací 1, pokud je podpis správný, 0, pokud je nesprávný, a -1 při chybě.

openssl_verify() ověřuje, zda je signature správný pro data pomocí veřejného klíče asociovaného s pub_key_id. Musí to být veřejný klíč odpovídající soukromému klíči použitému k podpisu.

Příklad 1. Ukázka openssl_verify()

// $data a $signature obsahují data a podpis

// získat z certifikátu veřejný klíč a připravit ho
$fp = fopen("/src/openssl-0.9.6/demos/sign/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pubkeyid = openssl_get_publickey($cert);

// zjistit, jestli je podpis v pořádku
$ok = openssl_verify($data, $signature, $pubkeyid);
if ($ok == 1)
    echo "dobře";
elseif ($ok == 0)
    echo "špatně";
else
    echo "nejhůř, při kontrole podpisu došlo k chybě";

// uvolnit klíč z paměti
openssl_free_key($pubkeyid);

Viz také openssl_sign().

Předcházející | Domů | Další
openssl_sign | Nahoru | openssl_x509_check_private_key


openssl_x509_check_private_key

(PHP 4 >= 4.2.0, PHP 5)

openssl_x509_check_private_key -- Checks if a private key corresponds to a certificate

Description

bool openssl_x509_check_private_key ( mixed cert, mixed key)

openssl_x509_check_private_key() returns TRUE if key is the private key that corresponds to cert, or FALSE otherwise.

Předcházející | Domů | Další
openssl_verify | Nahoru | openssl_x509_checkpurpose


openssl_x509_checkpurpose

(PHP 4 >= 4.0.6, PHP 5)

openssl_x509_checkpurpose -- Verifies if a certificate can be used for a particular purpose

Description

bool openssl_x509_checkpurpose ( mixed x509cert, int purpose, array cainfo [, string untrustedfile])

Returns TRUE if the certificate can be used for the intended purpose, FALSE if it cannot, or -1 on error.

openssl_x509_checkpurpose() examines the certificate specified by x509cert to see if it can be used for the purpose specified by purpose.

cainfo should be an array of trusted CA files/dirs as described in Certificate Verification.

untrustedfile, if specified, is the name of a PEM encoded file holding certificates that can be used to help verify the certificate, although no trust in placed in the certificates that come from that file.

Tabulka 1. openssl_x509_checkpurpose() purposes

Constant | Description
X509_PURPOSE_SSL_CLIENT | Can the certificate be used for the client side of an SSL connection?
X509_PURPOSE_SSL_SERVER | Can the certificate be used for the server side of an SSL connection?
X509_PURPOSE_NS_SSL_SERVER | Can the cert be used for Netscape SSL server?
X509_PURPOSE_SMIME_SIGN | Can the cert be used to sign S/MIME email?
X509_PURPOSE_SMIME_ENCRYPT | Can the cert be used to encrypt S/MIME email?
X509_PURPOSE_CRL_SIGN | Can the cert be used to sign a certificate revocation list (CRL)?
X509_PURPOSE_ANY | Can the cert be used for Any/All purposes?
These options are not bitfields - you may specify one only!

Předcházející | Domů | Další
openssl_x509_check_private_key | Nahoru | openssl_x509_export_to_file


openssl_x509_export_to_file

(PHP 4 >= 4.2.0, PHP 5)

openssl_x509_export_to_file -- Exports a certificate to file

Description

bool openssl_x509_export_to_file ( mixed x509, string outfilename [, bool notext])

openssl_x509_export_to_file() stores x509 into a file named by outfilename in a PEM encoded format.

The optional parameter notext affects the verbosity of the output; if it is FALSE then additional human-readable information is included in the output. The default value of notext is TRUE.

Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
openssl_x509_checkpurpose | Nahoru | openssl_x509_export


openssl_x509_export

(PHP 4 >= 4.2.0, PHP 5)

openssl_x509_export -- Exports a certificate as a string

Description

bool openssl_x509_export ( mixed x509, string &output [, bool notext])

openssl_x509_export() stores x509 into a string named by output in a PEM encoded format.

The optional parameter notext affects the verbosity of the output; if it is FALSE then additional human-readable information is included in the output. The default value of notext is TRUE.

Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
openssl_x509_export_to_file | Nahoru | openssl_x509_free


openssl_x509_free

(PHP 4 >= 4.0.6, PHP 5)

openssl_x509_free -- Free certificate resource

Description

void openssl_x509_free ( resource x509cert)

openssl_x509_free() frees the certificate associated with the specified x509cert resource from memory.

Předcházející | Domů | Další
openssl_x509_export | Nahoru | openssl_x509_parse


openssl_x509_parse

(PHP 4 >= 4.0.6, PHP 5)

openssl_x509_parse -- Parse an X509 certificate and return the information as an array

Description

array openssl_x509_parse ( mixed x509cert [, bool shortnames])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

openssl_x509_parse() returns information about the supplied x509cert, including fields such as subject name, issuer name, purposes, valid from and valid to dates etc. shortnames controls how the data is indexed in the array - if shortnames is TRUE (the default) then fields will be indexed with the short name form, otherwise, the long name form will be used - e.g.: CN is the shortname form of commonName.

The structure of the returned data is (deliberately) not yet documented, as it is still subject to change.

Předcházející | Domů | Další
openssl_x509_free | Nahoru | openssl_x509_read


openssl_x509_read

(PHP 4 >= 4.0.6, PHP 5)

openssl_x509_read -- Parse an X.509 certificate and return a resource identifier for it

Description

resource openssl_x509_read ( mixed x509certdata)

openssl_x509_read() parses the certificate supplied by x509certdata and returns a resource identifier for it.

Předcházející | Domů | Další
openssl_x509_parse | Nahoru | Oracle Functions


Oracle Functions

Manuál PHP
Předcházející Další

LXXVI. Oracle Functions

Úvod

This extension adds support for Oracle database server access. See also the OCI8 extension.

Instalace

You have to compile PHP with the option --with-oracle[=DIR], where DIR defaults to your environment variable ORACLE_HOME.

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

ORA_BIND_INOUT (integer)

ORA_BIND_IN (integer)

ORA_BIND_OUT (integer)

ORA_FETCHINTO_ASSOC (integer)

ORA_FETCHINTO_NULLS (integer)

Obsah
ora_bind -- Binds a PHP variable to an Oracle parameter
ora_close -- Closes an Oracle cursor
ora_columnname -- Gets the name of an Oracle result column
ora_columnsize -- Returns the size of an Oracle result column
ora_columntype -- Gets the type of an Oracle result column
ora_commit -- Commit an Oracle transaction
ora_commitoff -- Disable automatic commit
ora_commiton -- Enable automatic commit
ora_do -- Parse, Exec, Fetch
ora_error -- Gets an Oracle error message
ora_errorcode -- Gets an Oracle error code
ora_exec -- Execute a parsed statement on an Oracle cursor
ora_fetch_into -- Fetch a row into the specified result array
ora_fetch -- Fetch a row of data from a cursor
ora_getcolumn -- Get data from a fetched column
ora_logoff -- Close an Oracle connection
ora_logon -- Open an Oracle connection
ora_numcols -- Returns the number of columns
ora_numrows -- Returns the number of rows
ora_open -- Opens an Oracle cursor
ora_parse -- Parse an SQL statement with Oracle
ora_plogon -- Open a persistent Oracle connection
ora_rollback -- Rolls back a transaction

Předcházející | Domů | Další
openssl_x509_read | Nahoru | ora_bind


ora_bind

(PHP 3, PHP 4 , PHP 5)

ora_bind -- Binds a PHP variable to an Oracle parameter

Description

bool ora_bind ( resource cursor, string PHP_variable_name, string SQL_parameter_name, int length [, int type])

This function binds the named PHP variable with a SQL parameter. The SQL parameter must be in the form ":name". With the optional type parameter, you can define whether the SQL parameter is an in/out (0, default), in (1) or out (2) parameter. As of PHP 3.0.1, you can use the constants ORA_BIND_INOUT, ORA_BIND_IN and ORA_BIND_OUT instead of the numbers.

Vrací TRUE při úspěchu, FALSE při selhání. Details about the error can be retrieved using the ora_error() and ora_errorcode() functions.

ora_bind() must be called after ora_parse() and before ora_exec(). Input values can be given by assignment to the bound PHP variables, after calling ora_exec() the bound PHP variables contain the output values if available.

Příklad 1. ora_bind() example

<?php
  ora_parse($curs, "declare tmp INTEGER; begin tmp := :in; :out := tmp; :x := 7.77; end;");
  ora_bind($curs, "result", ":x", $len, 2);
  ora_bind($curs, "input", ":in", 5, 1);
  ora_bind($curs, "output", ":out", 5, 2);
  $input = 765;
  ora_exec($curs);
  echo "Result: $result<br />Out: $output<br />In: $input";
?>

Předcházející | Domů | Další
Oracle Functions | Nahoru | ora_close


ora_close

(PHP 3, PHP 4 , PHP 5)

ora_close -- Closes an Oracle cursor

Description

bool ora_close ( resource cursor)

This function closes a data cursor opened with ora_open().

Vrací TRUE při úspěchu, FALSE při selhání. Details about the error can be retrieved using the ora_error() and ora_errorcode() functions.

Předcházející | Domů | Další
ora_bind | Nahoru | ora_columnname


ora_columnname

(PHP 3, PHP 4 , PHP 5)

ora_columnname -- Gets the name of an Oracle result column

Description

string ora_columnname ( resource cursor, int column)

Returns the name of the field/column column on the cursor cursor. The returned name is in all uppercase letters. Column 0 is the first column.

Předcházející | Domů | Další
ora_close | Nahoru | ora_columnsize


ora_columnsize

(PHP 3, PHP 4 , PHP 5)

ora_columnsize -- Returns the size of an Oracle result column

Description

int ora_columnsize ( resource cursor, int column)

Returns the size of the Oracle column column on the cursor cursor. Column 0 is the first column.

Předcházející | Domů | Další
ora_columnname | Nahoru | ora_columntype


ora_columntype

(PHP 3, PHP 4 , PHP 5)

ora_columntype -- Gets the type of an Oracle result column

Description

string ora_columntype ( resource cursor, int column)

Returns the Oracle data type name of the field/column column on the cursor cursor. Column 0 is the first column. The returned type will be one of the following:

"VARCHAR2"
"VARCHAR"
"CHAR"
"NUMBER"
"LONG"
"LONG RAW"
"ROWID"
"DATE"
"CURSOR"

Předcházející | Domů | Další
ora_columnsize | Nahoru | ora_commit


ora_commit

(PHP 3, PHP 4 , PHP 5)

ora_commit -- Commit an Oracle transaction

Description

bool ora_commit ( resource conn)

This function commits an Oracle transaction. A transaction is defined as all the changes on a given connection since the last commit/rollback, autocommit was turned off or when the connection was established.

Vrací TRUE při úspěchu, FALSE při selhání. Details about the error can be retrieved using the ora_error() and ora_errorcode() functions.

See also ora_commiton() and ora_commitoff().

Předcházející | Domů | Další
ora_columntype | Nahoru | ora_commitoff


ora_commitoff

(PHP 3, PHP 4 , PHP 5)

ora_commitoff -- Disable automatic commit

Description

bool ora_commitoff ( resource conn)

This function turns off automatic commit after each ora_exec() on the given connection.

Vrací TRUE při úspěchu, FALSE při selhání. Details about the error can be retrieved using the ora_error() and ora_errorcode() functions.

See also ora_commiton() and ora_commit().

Předcházející | Domů | Další
ora_commit | Nahoru | ora_commiton


ora_commiton

(PHP 3, PHP 4 , PHP 5)

ora_commiton -- Enable automatic commit

Description

bool ora_commiton ( resource conn)

This function turns on automatic commit after each ora_exec() on the given connection.

Vrací TRUE při úspěchu, FALSE při selhání. Details about the error can be retrieved using the ora_error() and ora_errorcode() functions.

See also ora_commitoff() and ora_commit().

Předcházející | Domů | Další
ora_commitoff | Nahoru | ora_do


ora_do

(PHP 3, PHP 4 , PHP 5)

ora_do -- Parse, Exec, Fetch

Description

resource ora_do ( resource conn, string query)

ora_do() is quick combination of ora_parse(), ora_exec() and ora_fetch(). It will parse and execute a statement, then fetch the first result row.

This function returns a cursor index or FALSE on failure. Details about the error can be retrieved using the ora_error() and ora_errorcode() functions.

See also ora_parse(),ora_exec(), and ora_fetch().

Předcházející | Domů | Další
ora_commiton | Nahoru | ora_error


ora_error

(PHP 3, PHP 4 , PHP 5)

ora_error -- Gets an Oracle error message

Description

string ora_error ( resource cursor_or_connection)

Returns an error message of the form XXX-NNNNN where XXX is where the error comes from and NNNNN identifies the error message.

Poznámka: Support for connection ids was added in 3.0.4.

On Unix versions of Oracle, you can find details about an error message like this: $ oerr ora 00001 00001, 00000, "unique constraint (%s.%s) violated" // *Cause: An update or insert statement attempted to insert a duplicate key // For Trusted ORACLE configured in DBMS MAC mode, you may see // this message if a duplicate entry exists at a different level. // *Action: Either remove the unique restriction or do not insert the key

Předcházející | Domů | Další
ora_do | Nahoru | ora_errorcode


ora_errorcode

(PHP 3, PHP 4 , PHP 5)

ora_errorcode -- Gets an Oracle error code

Description

int ora_errorcode ( resource cursor_or_connection)

Returns the numeric error code of the last executed statement on the specified cursor or connection.

Poznámka: Support for connection ids was added in 3.0.4.

Předcházející | Domů | Další
ora_error | Nahoru | ora_exec


ora_exec

(PHP 3, PHP 4 , PHP 5)

ora_exec -- Execute a parsed statement on an Oracle cursor

Description

bool ora_exec ( resource cursor)

ora_exec() execute the parsed statement cursor, already parsed by ora_parse().

Vrací TRUE při úspěchu, FALSE při selhání. Details about the error can be retrieved using the ora_error() and ora_errorcode() functions.

See also ora_parse(), ora_fetch(), and ora_do().

Předcházející | Domů | Další
ora_errorcode | Nahoru | ora_fetch_into


ora_fetch_into

(PHP 3, PHP 4 , PHP 5)

ora_fetch_into -- Fetch a row into the specified result array

Description

int ora_fetch_into ( resource cursor, array result [, int flags])

Fetches a row of data into an array. The flags has two flag values: if the ORA_FETCHINTO_NULLS flag is set, columns with NULL values are set in the array; and if the ORA_FETCHINTO_ASSOC flag is set, an associative array is created.

Returns the number of columns fetched.

Příklad 1. ora_fetch_into()

<?php
$results = array();
ora_fetch_into($cursor, $results);
echo $results[0];
echo $results[1];
$results = array();
ora_fetch_into($cursor, $results, ORA_FETCHINTO_NULLS|ORA_FETCHINTO_ASSOC);
echo $results['MyColumn'];
?>

See also ora_parse(),ora_exec(), ora_fetch(), and ora_do().

Předcházející | Domů | Další
ora_exec | Nahoru | ora_fetch


ora_fetch

(PHP 3, PHP 4 , PHP 5)

ora_fetch -- Fetch a row of data from a cursor

Description

bool ora_fetch ( resource cursor)

Retrieves a row of data from the specified cursor.

Returns TRUE (a row was fetched) or FALSE (no more rows, or an
error occurred). If an error occurred, details can be retrieved
using the ora_error() and
ora_errorcode() functions. If there was no
error, ora_errorcode() will return 0.

See also ora_parse(),ora_exec(), and ora_do().

Předcházející | Domů | Další
ora_fetch_into | Nahoru | ora_getcolumn


ora_getcolumn

(PHP 3, PHP 4 , PHP 5)

ora_getcolumn -- Get data from a fetched column

Description

mixed ora_getcolumn ( resource cursor, int column)

Fetches the data for a column or function result.

Returns the column data. If an error occurs, FALSE is returned and ora_errorcode() will return a non-zero value. Note, however, that a test for FALSE on the results from this function may be TRUE in cases where there is not error as well (NULL result, empty string, the number 0, the string "0").

Předcházející | Domů | Další
ora_fetch | Nahoru | ora_logoff


ora_logoff

(PHP 3, PHP 4 , PHP 5)

ora_logoff -- Close an Oracle connection

Description

bool ora_logoff ( resource connection)

Logs out the user and disconnects from the server.

Vrací TRUE při úspěchu, FALSE při selhání. Details about the error can be retrieved using the ora_error() and ora_errorcode() functions.

See also ora_logon().

Předcházející | Domů | Další
ora_getcolumn | Nahoru | ora_logon


ora_logon

(PHP 3, PHP 4 , PHP 5)

ora_logon -- Open an Oracle connection

Description

resource ora_logon ( string user, string password)

Establishes a connection between PHP and an Oracle database with the given username user and password password.

Connections can be made using SQL*Net by supplying the TNS name to user like this:

<?php
$conn = Ora_Logon("user@TNSNAME", "pass");
?>

If you have character data with non-ASCII characters, you should make sure that NLS_LANG is set in your environment. For server modules, you should set it in the server's environment before starting the server.

Returns a connection index on success, or FALSE on failure. Details about the error can be retrieved using the ora_error() and ora_errorcode() functions.

Předcházející | Domů | Další
ora_logoff | Nahoru | ora_numcols


ora_numcols

(PHP 3, PHP 4 , PHP 5)

ora_numcols -- Returns the number of columns

Description

int ora_numcols ( resource cursor)

ora_numcols() returns the number of columns in a result. Only returns meaningful values after an parse/exec/fetch sequence.

See also ora_parse(),ora_exec(), ora_fetch(), and ora_do().

Předcházející | Domů | Další
ora_logon | Nahoru | ora_numrows


ora_numrows

(PHP 3, PHP 4 , PHP 5)

ora_numrows -- Returns the number of rows

Description

int ora_numrows ( resource cursor)

ora_numrows() returns the number of rows in a result.

Předcházející | Domů | Další
ora_numcols | Nahoru | ora_open


ora_open

(PHP 3, PHP 4 , PHP 5)

ora_open -- Opens an Oracle cursor

Description

resource ora_open ( resource connection)

Opens an Oracle cursor associated with connection.

Returns a cursor index or FALSE on failure. Details about the error can be retrieved using the ora_error() and ora_errorcode() functions.

Předcházející | Domů | Další
ora_numrows | Nahoru | ora_parse


ora_parse

(PHP 3, PHP 4 , PHP 5)

ora_parse -- Parse an SQL statement with Oracle

Description

bool ora_parse ( resource cursor, string sql_statement, int defer)

This function parses an SQL statement or a PL/SQL block and associates it with the given cursor.

Vrací TRUE při úspěchu, FALSE při selhání.

See also ora_exec(), ora_fetch(), and ora_do().

Předcházející | Domů | Další
ora_open | Nahoru | ora_plogon


ora_plogon

(PHP 3, PHP 4 , PHP 5)

ora_plogon -- Open a persistent Oracle connection

Description

resource ora_plogon ( string user, string password)

Establishes a persistent connection between PHP and an Oracle database with the username user and password password.

See also ora_logon().

Předcházející | Domů | Další
ora_parse | Nahoru | ora_rollback


ora_rollback

(PHP 3, PHP 4 , PHP 5)

ora_rollback -- Rolls back a transaction

Description

bool ora_rollback ( resource connection)

This function undoes an Oracle transaction. (See ora_commit() for the definition of a transaction.)

Vrací TRUE při úspěchu, FALSE při selhání. Details about the error can be retrieved using the ora_error() and ora_errorcode() functions.

Předcházející | Domů | Další
ora_plogon | Nahoru | Ovrimos SQL Functions


Ovrimos SQL Functions

Manuál PHP
Předcházející Další

LXXVII. Ovrimos SQL Functions

Úvod

Ovrimos SQL Server, is a client/server, transactional RDBMS combined with Web capabilities and fast transactions.

Poznámka: Toto rozšíření není k dispozici na platformách Windows.

Požadavky

You'll need to install the sqlcli library available in the Ovrimos SQL Server distribution.

Instalace

To enable Ovrimos support in PHP just compile PHP with the --with-ovrimos[=DIR] parameter to your configure line. DIR is the Ovrimos' libsqlcli install directory.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

Příklady

Příklad 1. Connect to Ovrimos SQL Server and select from a system table

<?php
$conn = ovrimos_connect("server.domain.com", "8001", "admin", "password");
if ($conn != 0) {
    echo "Connection ok!";
    $res = ovrimos_exec($conn, "select table_id, table_name from sys.tables");
    if ($res != 0) {
        echo "Statement ok!";
        ovrimos_result_all($res);
        ovrimos_free_result($res);
    }
    ovrimos_close($conn);
}
?>
This will just connect to an Ovrimos SQL server.

Obsah
ovrimos_close -- Closes the connection to ovrimos
ovrimos_commit -- Commits the transaction
ovrimos_connect -- Connect to the specified database
ovrimos_cursor -- Returns the name of the cursor
ovrimos_exec -- Executes an SQL statement
ovrimos_execute -- Executes a prepared SQL statement
ovrimos_fetch_into -- Fetches a row from the result set
ovrimos_fetch_row -- Fetches a row from the result set
ovrimos_field_len -- Returns the length of the output column
ovrimos_field_name -- Returns the output column name
ovrimos_field_num -- Returns the (1-based) index of the output column
ovrimos_field_type -- Returns the (numeric) type of the output column
ovrimos_free_result -- Frees the specified result_id
ovrimos_longreadlen -- Specifies how many bytes are to be retrieved from long datatypes
ovrimos_num_fields -- Returns the number of columns
ovrimos_num_rows -- Returns the number of rows affected by update operations
ovrimos_prepare -- Prepares an SQL statement
ovrimos_result_all -- Prints the whole result set as an HTML table
ovrimos_result -- Retrieves the output column
ovrimos_rollback -- Rolls back the transaction

Předcházející | Domů | Další
ora_rollback | Nahoru | ovrimos_close


ovrimos_close

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_close -- Closes the connection to ovrimos

Description

void ovrimos_close ( int connection)

ovrimos_close() is used to close the specified connection to Ovrimos. This has the effect of rolling back uncommitted transactions.

Předcházející | Domů | Další
Ovrimos SQL Functions | Nahoru | ovrimos_commit


ovrimos_commit

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_commit -- Commits the transaction

Description

bool ovrimos_commit ( int connection_id)

ovrimos_commit() is used to commit the transaction. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
ovrimos_close | Nahoru | ovrimos_connect


ovrimos_connect

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_connect -- Connect to the specified database

Description

int ovrimos_connect ( string host, string db, string user, string password)

ovrimos_connect() is used to connect to the specified database.

ovrimos_connect() returns a connection id (greater than 0) or 0 for failure. The meaning of host and db are those used everywhere in Ovrimos APIs. host is a host name or IP address and db is either a database name, or a string containing the port number.

Příklad 1. ovrimos_connect() Example

<?php
$conn = ovrimos_connect("server.domain.com", "8001", "admin", "password");
if ($conn != 0) {
    echo "Connection ok!";
    $res=ovrimos_exec($conn, "select table_id, table_name from sys.tables");
    if ($res != 0) {
        echo "Statement ok!";
        ovrimos_result_all($res);
        ovrimos_free_result($res);
    }
    ovrimos_close($conn);
}
?>
The above example will connect to the database and print out the specified table.

Předcházející | Domů | Další
ovrimos_commit | Nahoru | ovrimos_cursor


ovrimos_cursor

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_cursor -- Returns the name of the cursor

Description

string ovrimos_cursor ( int result_id)

ovrimos_cursor() returns the name of the cursor. Useful when wishing to perform positioned updates or deletes.

Předcházející | Domů | Další
ovrimos_connect | Nahoru | ovrimos_exec


ovrimos_exec

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_exec -- Executes an SQL statement

Description

int ovrimos_exec ( int connection_id, string query)

ovrimos_exec() executes an SQL statement (query or update) and returns a result_id or FALSE. Evidently, the SQL statement should not contain parameters.

Předcházející | Domů | Další
ovrimos_cursor | Nahoru | ovrimos_execute


ovrimos_execute

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_execute -- Executes a prepared SQL statement

Description

bool ovrimos_execute ( int result_id [, array parameters_array])

ovrimos_execute() executes a prepared statement. Vrací TRUE při úspěchu, FALSE při selhání. If the prepared statement contained parameters (question marks in the statement), the correct number of parameters should be passed in an array. Notice that I don't follow the PHP convention of placing just the name of the optional parameter inside square brackets. I couldn't bring myself on liking it.

Předcházející | Domů | Další
ovrimos_exec | Nahoru | ovrimos_fetch_into


ovrimos_fetch_into

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_fetch_into -- Fetches a row from the result set

Description

bool ovrimos_fetch_into ( int result_id, array result_array [, string how [, int rownumber]])

ovrimos_fetch_into() fetches a row from the result set into result_array, which should be passed by reference. Which row is fetched is determined by the two last parameters. how is one of Next (default), Prev, First, Last, Absolute, corresponding to forward direction from current position, backward direction from current position, forward direction from the start, backward direction from the end and absolute position from the start (essentially equivalent to 'first' but needs 'rownumber'). Case is not significant. rownumber is optional except for absolute positioning. Vrací TRUE při úspěchu, FALSE při selhání.

Příklad 1. A fetch into example

<?php
$conn=ovrimos_connect("neptune", "8001", "admin", "password");
if ($conn!=0) {
    echo "Connection ok!";
    $res=ovrimos_exec($conn, "select table_id, table_name from sys.tables");
    if ($res != 0) {
        echo "Statement ok!";
        if (ovrimos_fetch_into($res, &$row)) {
            list($table_id, $table_name) = $row;
            echo "table_id=" . $table_id . ", table_name=" . $table_name . "\n";
            if (ovrimos_fetch_into($res, &$row)) {
                list($table_id, $table_name) = $row;
                echo "table_id=" . $table_id . ", table_name=" . $table_name . "\n";
            } else {
                echo "Next: error\n";
            }
        } else {
            echo "First: error\n";
        }
        ovrimos_free_result($res);
    }
    ovrimos_close($conn);
}
?>
This example will fetch a row.

Předcházející | Domů | Další
ovrimos_execute | Nahoru | ovrimos_fetch_row


ovrimos_fetch_row

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_fetch_row -- Fetches a row from the result set

Description

bool ovrimos_fetch_row ( int result_id [, int how [, int row_number]])

ovrimos_fetch_row() fetches a row from the result set. Column values should be retrieved with other calls. Vrací TRUE při úspěchu, FALSE při selhání.

Příklad 1. A fetch row example

<?php
$conn = ovrimos_connect("remote.host", "8001", "admin", "password");
if ($conn != 0) {
    echo "Connection ok!";
    $res=ovrimos_exec($conn, "select table_id, table_name from sys.tables");
    if ($res != 0) {
        echo "Statement ok!";
        if (ovrimos_fetch_row($res, "First")) {
            $table_id = ovrimos_result($res, 1);
            $table_name = ovrimos_result($res, 2);
            echo "table_id=" . $table_id . ", table_name=" . $table_name . "\n";
            if (ovrimos_fetch_row($res, "Next")) {
                $table_id = ovrimos_result($res, "table_id");
                $table_name = ovrimos_result($res, "table_name");
                echo "table_id=" . $table_id . ", table_name=" . $table_name . "\n";
            } else {
                echo "Next: error\n";
            }
        } else {
            echo "First: error\n";
        }
        ovrimos_free_result($res);
    }
    ovrimos_close($conn);
}
?>
This will fetch a row and print the result.

Předcházející | Domů | Další
ovrimos_fetch_into | Nahoru | ovrimos_field_len


ovrimos_field_len

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_field_len -- Returns the length of the output column

Description

int ovrimos_field_len ( int result_id, int field_number)

ovrimos_field_len() is used to get the length of the output column with number field_number (1-based), in result result_id.

Předcházející | Domů | Další
ovrimos_fetch_row | Nahoru | ovrimos_field_name


ovrimos_field_name

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_field_name -- Returns the output column name

Description

string ovrimos_field_name ( int result_id, int field_number)

ovrimos_field_name() returns the output column name at the (1-based) index specified.

Předcházející | Domů | Další
ovrimos_field_len | Nahoru | ovrimos_field_num


ovrimos_field_num

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_field_num -- Returns the (1-based) index of the output column

Description

int ovrimos_field_num ( int result_id, string field_name)

ovrimos_field_num() returns the (1-based) index of the output column specified by field_name, or FALSE.

Předcházející | Domů | Další
ovrimos_field_name | Nahoru | ovrimos_field_type


ovrimos_field_type

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_field_type -- Returns the (numeric) type of the output column

Description

int ovrimos_field_type ( int result_id, int field_number)

ovrimos_field_type() returns the (numeric) type of the output column at the (1-based) index specified by field_number.

Předcházející | Domů | Další
ovrimos_field_num | Nahoru | ovrimos_free_result


ovrimos_free_result

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_free_result -- Frees the specified result_id

Description

bool ovrimos_free_result ( int result_id)

ovrimos_free_result() frees the specified result_id. Returns TRUE.

Předcházející | Domů | Další
ovrimos_field_type | Nahoru | ovrimos_longreadlen


ovrimos_longreadlen

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_longreadlen -- Specifies how many bytes are to be retrieved from long datatypes

Description

bool ovrimos_longreadlen ( int result_id, int length)

ovrimos_longreadlen() specifies how many bytes are to be retrieved from long datatypes (long varchar and long varbinary). Default is zero. It currently sets this parameter the specified result set. Returns TRUE.

Předcházející | Domů | Další
ovrimos_free_result | Nahoru | ovrimos_num_fields


ovrimos_num_fields

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_num_fields -- Returns the number of columns

Description

int ovrimos_num_fields ( int result_id)

ovrimos_num_fields() returns the number of columns in a result_id resulting from a query.

Předcházející | Domů | Další
ovrimos_longreadlen | Nahoru | ovrimos_num_rows


ovrimos_num_rows

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_num_rows -- Returns the number of rows affected by update operations

Description

int ovrimos_num_rows ( int result_id)

ovrimos_num_rows() returns the number of rows affected by update operations.

Předcházející | Domů | Další
ovrimos_num_fields | Nahoru | ovrimos_prepare


ovrimos_prepare

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_prepare -- Prepares an SQL statement

Description

int ovrimos_prepare ( int connection_id, string query)

ovrimos_prepare() prepares an SQL statement and returns a result_id (or FALSE on failure).

Příklad 1. Connect to Ovrimos SQL Server and prepare a statement

<?php
$conn=ovrimos_connect("db_host", "8001", "admin", "password");
if ($conn!=0) {
    echo "Connection ok!";
    $res=ovrimos_prepare($conn, "select table_id, table_name
                                  from sys.tables where table_id=1");
    if ($res != 0) {
        echo "Prepare ok!";
        if (ovrimos_execute($res)) {
            echo "Execute ok!\n";
            ovrimos_result_all($res);
        } else {
            echo "Execute not ok!";
        }
        ovrimos_free_result($res);
    } else {
        echo "Prepare not ok!\n";
    }
    ovrimos_close($conn);
}
?>
This will connect to Ovrimos SQL Server, prepare a statement and the execute it.

Předcházející | Domů | Další
ovrimos_num_rows | Nahoru | ovrimos_result_all


ovrimos_result_all

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_result_all -- Prints the whole result set as an HTML table

Description

int ovrimos_result_all ( int result_id [, string format])

ovrimos_result_all() prints the whole result set as an HTML table. Returns the number of rows in the generated table.

Příklad 1. Prepare a statement, execute, and view the result

<?php
$conn = ovrimos_connect("db_host", "8001", "admin", "password");
if ($conn != 0) {
    echo "Connection ok!";
    $res = ovrimos_prepare($conn, "select table_id, table_name
                                    from sys.tables where table_id = 7");
    if ($res != 0) {
        echo "Prepare ok!";
        if (ovrimos_execute($res, array(3))) {
            echo "Execute ok!\n";
            ovrimos_result_all($res);
        } else {
            echo "Execute not ok!";
        }
        ovrimos_free_result($res);
    } else {
        echo "Prepare not ok!\n";
    }
    ovrimos_close($conn);
}
?>
This will execute an SQL statement and print the result in an HTML table.

Příklad 2. ovrimos_result_all() with meta-information

<?php
$conn = ovrimos_connect("db_host", "8001", "admin", "password");
if ($conn != 0) {
    echo "Connection ok!";
    $res = ovrimos_exec($conn, "select table_id, table_name
                                 from sys.tables where table_id = 1");
    if ($res != 0) {
        echo "Statement ok! cursor=" . ovrimos_cursor($res) . "\n";
        $colnb = ovrimos_num_fields($res);
        echo "Output columns=" . $colnb . "\n";
        for ($i=1; $i <= $colnb; $i++) {
            $name = ovrimos_field_name($res, $i);
            $type = ovrimos_field_type($res, $i);
            $len = ovrimos_field_len($res, $i);
            echo "Column " . $i . " name=" . $name . " type=" . $type . " len=" . $len . "\n";
        }
        ovrimos_result_all($res);
        ovrimos_free_result($res);
    }
    ovrimos_close($conn);
}
?>

Příklad 3. ovrimos_result_all() example

<?php
$conn = ovrimos_connect("db_host", "8001", "admin", "password");
if ($conn != 0) {
    echo "Connection ok!";
    $res = ovrimos_exec($conn, "update test set i=5");
    if ($res != 0) {
        echo "Statement ok!";
        echo ovrimos_num_rows($res)." rows affected\n";
        ovrimos_free_result($res);
    }
    ovrimos_close($conn);
}
?>

Předcházející | Domů | Další
ovrimos_prepare | Nahoru | ovrimos_result


ovrimos_result

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_result -- Retrieves the output column

Description

string ovrimos_result ( int result_id, mixed field)

ovrimos_result() retrieves the output column specified by field, either as a string or as an 1-based index. Returns FALSE on failure.

Předcházející | Domů | Další
ovrimos_result_all | Nahoru | ovrimos_rollback


ovrimos_rollback

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_rollback -- Rolls back the transaction

Description

bool ovrimos_rollback ( int connection_id)

ovrimos_rollback() is used to roll back the transaction. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
ovrimos_result | Nahoru | Funkce pro řízení výstupu


Funkce pro řízení výstupu

Manuál PHP
Předcházející Další

LXXVIII. Funkce pro řízení výstupu

Úvod

Funkce pro řízení výstupu vám umožňují ovládat, kdy se odešle výstup skriptu. To může být užitečné v několika různých situacích, zvláště pokud potřebujete poslat browseru hlavičky poté, co váš skript začal odesílat data. Output Control funkce neovlivňují hlavičky odeslané pomocí funkcí header() nebo setcookie(), pouze funkce jako echo() a data mezi bloky PHP kódu.

Požadavky

Tyto funkce jsou k dispozici jako součást standardního modulu, který je vždy dostupný.

Instalace

K používání těchto funkcí není třeba žádná instalace, jsou součástí jádra PHP.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 1. Konfigurační volby řízení výstupu

Název | Výchozí hodnota | Lze změnit
output_buffering | "0" | PHP_INI_PERDIR|PHP_INI_SYSTEM
output_handler | NULL | PHP_INI_PERDIR|PHP_INI_SYSTEM
implicit_flush | "0" | PHP_INI_PERDIR|PHP_INI_SYSTEM
Pro bližší podrobnosti a definici PHP_INI_* konstant viz ini_set().

Zde je stručné vysvětlení konfiguračních direktiv.

output_buffering boolean/integer

Řízení výstupu můžete povolit pro všechny soubory nastavením této direktivy na 'On'. Pokud chcete omezit velikost bufferu na určitou hodnotu, můžete jako hodnotu této direktivy místo 'On' použít maximální počet bytů (např. output_buffering=4096).

output_handler string

Celý výstup vašich skriptů můžete přesměrovat do funkce. Například pokud nastavíte output_handler na mb_output_handler(), kódování znaků bude transparentně překódováno do zadaného kódování. Nastavení jakékoliv funkce automaticky zapne řízení výstupu.

Poznámka:
      Nemůžete používat najednou mb_output_handler() s
      ob_inconv_handler() a nemůžete používat najednou
      ob_gzhandler() a
      zlib.output_compression.

implicit_flush boolean

Ve výchozí nastavení je FALSE. Změna na TRUE oznámí PHP, aby oznámilo výstupní vrstvě, aby se automaticky vyprázdnila po každém vypsaném bloku. Je to ekvivalentní volání PHP funkce flush() po každém zavolání funkce print() nebo echo() a po každém HTML bloku.

Když se PHP používá v prostředí webu, zapnutí této volby má závažné výkonnostní důsledky a obecně se doporučuje ho používat pouze pro ladění. Tato hodnota má výchozí nastavení TRUE pokud pracujete pod CLI SAPI.

Viz také ob_implicit_flush().

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Příklady

Příklad 1. Ukázka řízení výstupu

<?php

ob_start();
echo "Ahoj\n";

setcookie ("cookiename", "cookiedata");

ob_end_flush();

?>

Ve výše uvedené ukázce se výstup z echo() uloží ve výstupním bufferu až do volání ob_end_flush(). Mezitím volání setcookie() úspěšně uložilo cookie bez vyvolání chyby. (Normálně nemůžete odeslat do browseru hlavičky poté, co už byla odeslána data.)

Poznámka: Při přechodu z PHP 4.1 (a 4.2) na 4.3 musíte kvůli chybě ve starších verzích zaručit, aby v php.ini byla direktiva implict_flush nastavena na OFF, jinak výstup po zavolání funkce ob_start() nebude skryt z výstupu.

Viz také

Viz také header() a setcookie().

Obsah
flush -- Odeslat výstupní buffer
ob_clean -- Clean (erase) the output buffer
ob_end_clean -- Vyčistit (vymazat) výstupní buffer a vypnout bufferování výstupu
ob_end_flush -- Vyprázdnit (odeslat) výstupní buffer a vypnout bufferování výstupu
ob_flush -- Flush (send) the output buffer
ob_get_clean -- Get current buffer contents and delete current output buffer
ob_get_contents -- Vrátit obsah výstupního bufferu
ob_get_flush -- Flush the output buffer, return it as a string and turn off output buffering
ob_get_length -- Vrátit délku výstupního buffer
ob_get_level -- Return the nesting level of the output buffering mechanism
ob_get_status -- Get status of output buffers
ob_gzhandler -- ob_start callback function to gzip output buffer
ob_implicit_flush -- Vypnout/zapnout implicitní flush
ob_list_handlers -- List all output handlers in use
ob_start -- Zapnout bufferování výstupu
output_add_rewrite_var -- Add URL rewriter values
output_reset_rewrite_vars -- Reset URL rewriter values

Předcházející | Domů | Další
ovrimos_rollback | Nahoru | flush


flush

(PHP 3, PHP 4 , PHP 5)

flush -- Odeslat výstupní buffer

Popis

void flush ( void )

Vyprázdní výstupní buffery PHP a jakéhokoli backendu, který PHP používá (CGI, web server, atd.) Odešle veškerý dosavadní výstup do uživatelova browseru.

Poznámka: flush() nemá žádný účinek na bufferovací schéma vašeho webserveru nebo browseru na klientské straně.

Některé servery, zvláště na Win32, bufferují výstup až do ukončení běhu skriptu bez ohledu na flush(), a až potom odešlou výstup browseru.

Browser může také bufferovat svůj vstup před zobrazením. Například Netscape bufferuje text do té doby než přijme konec řádku nebo začátek tagu, a nezobrazí tabulku, dokud nedostane </table> nejzevnější tabulky.

Předcházející | Domů | Další
Funkce pro řízení výstupu | Nahoru | ob_clean


ob_clean

(PHP 4 >= 4.2.0, PHP 5)

ob_clean -- Clean (erase) the output buffer

Description

void ob_clean ( void )

This function discards the contents of the output buffer.

This function does not destroy the output buffer like ob_end_clean() does.

See also ob_flush(),
ob_end_flush() and
ob_end_clean().

Předcházející | Domů | Další
flush | Nahoru | ob_end_clean


ob_end_clean

(PHP 4 , PHP 5)

ob_end_clean -- Vyčistit (vymazat) výstupní buffer a vypnout bufferování výstupu

Popis

void ob_end_clean ( void )

Tato funkce odhodí obsah výstupního bufferu a vypne bufferování výstupu.

Viz také ob_start() a ob_end_flush().

Předcházející | Domů | Další
ob_clean | Nahoru | ob_end_flush


ob_end_flush

(PHP 4 , PHP 5)

ob_end_flush -- Vyprázdnit (odeslat) výstupní buffer a vypnout bufferování výstupu

Popis

void ob_end_flush ( void )

Tato funkce odešle obsah výstupního bufferu (pokud nějaký je) a vypne
bufferování výstupu. Pokud chcete obsah výstupního bufferu dále zpracovávat,
musíte před ob_end_flush() zavolat
ob_get_contents(), protože obsah bufferu se po
ob_end_flush() odhodí.

Viz také ob_start(),
ob_get_contents() a
ob_end_clean().

Předcházející | Domů | Další
ob_end_clean | Nahoru | ob_flush


ob_flush

(PHP 4 >= 4.2.0, PHP 5)

ob_flush -- Flush (send) the output buffer

Description

void ob_flush ( void )

This function will send the contents of the output buffer (if any). If you want to further process the buffer's contents you have to call ob_get_contents() before ob_flush() as the buffer contents are discarded after ob_flush() is called.

This function does not destroy the output buffer like ob_end_flush() does.

See also ob_get_contents(),
ob_clean(),
ob_end_flush() and
ob_end_clean().

Předcházející | Domů | Další
ob_end_flush | Nahoru | ob_get_clean


ob_get_clean

(PHP 4 >= 4.3.0, PHP 5)

ob_get_clean -- Get current buffer contents and delete current output buffer

Description

string ob_get_clean ( void )

This will return the contents of the output buffer and end output
buffering.  If output buffering isn't active then FALSE is returned.
ob_get_clean() essentially executes both
ob_get_contents() and
ob_end_clean().

Příklad 1. A simple ob_get_clean() example

<?php

ob_start();

echo "Hello World";

$out = ob_get_clean();
$out = strtolower($out);

var_dump($out);
?>

Our example will output:

string(11) "hello world"

See also ob_start() and ob_get_contents().

Předcházející | Domů | Další
ob_flush | Nahoru | ob_get_contents


ob_get_contents

(PHP 4 , PHP 5)

ob_get_contents -- Vrátit obsah výstupního bufferu

Popis

string ob_get_contents ( void )

Tato funkce vrátí obsah výstupního bufferu nebo FALSE, pokud bufferování výstupu není aktivováno.

Viz také ob_start() a ob_get_length().

Předcházející | Domů | Další
ob_get_clean | Nahoru | ob_get_flush


ob_get_flush

(PHP 4 >= 4.3.0, PHP 5)

ob_get_flush -- Flush the output buffer, return it as a string and turn off output buffering

Description

string ob_get_flush ( void )

ob_get_flush() flushs the output buffer, return it as a string and turns off output buffering. ob_get_flush() returns FALSE if no buffering is active.

Poznámka: This function is similar to ob_end_flush(), except that this function returns the buffer as a string.

Příklad 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());
?>

The above example will output:

Array
(
    [0] => default output handler
)
Array
(
)

See also ob_end_clean(),
ob_end_flush() and
ob_list_handlers().

Předcházející | Domů | Další
ob_get_contents | Nahoru | ob_get_length


ob_get_length

(PHP 4 >= 4.0.2, PHP 5)

ob_get_length -- Vrátit délku výstupního buffer

Popis

string ob_get_length ( void )

Tato funkce vrátí délku obsahu výstupního bufferu nebo This will return the length of the contents in the output buffer, nebo FALSE, pokud bufferování výstupu není aktivováno.

Viz také ob_start() a ob_get_contents().

Předcházející | Domů | Další
ob_get_flush | Nahoru | ob_get_level


ob_get_level

(PHP 4 >= 4.2.0, PHP 5)

ob_get_level -- Return the nesting level of the output buffering mechanism

Description

int ob_get_level ( void )

This will return the level of nested output buffering handlers or zero if output buffering is not activated.

See also ob_start() and ob_get_contents().

Předcházející | Domů | Další
ob_get_length | Nahoru | ob_get_status


ob_get_status

(PHP 4 >= 4.2.0, PHP 5)

ob_get_status -- Get status of output buffers

Description

array ob_get_status ( [bool full_status])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

This will return the current status of output buffers. It returns array contains buffer status or FALSE for error.

See also ob_get_level().

Předcházející | Domů | Další
ob_get_level | Nahoru | ob_gzhandler


ob_gzhandler

(PHP 4 >= 4.0.4, PHP 5)

ob_gzhandler -- ob_start callback function to gzip output buffer

Description

string ob_gzhandler ( string buffer [, int mode])

Poznámka: mode was added in PHP 4.0.5.

ob_gzhandler() is intended to be used as a callback function for ob_start() to help facilitate sending gz-encoded data to web browsers that support compressed web pages. Before ob_gzhandler() actually sends compressed data, it determines what type of content encoding the browser will accept ("gzip", "deflate" or none at all) and will return its output accordingly. All browsers are supported since it's up to the browser to send the correct header saying that it accepts compressed web pages.

Příklad 1. ob_gzhandler() Example

<?php

ob_start("ob_gzhandler");

?>
<html>
<body>
<p>This should be a compressed page.
</html>
<body>

See also ob_start() and ob_end_flush().

Poznámka: You cannot use both ob_gzhandler() and ini.zlib.output_compression. Also note that using ini.zlib.output_compression is preferred over ob_gzhandler().

Předcházející | Domů | Další
ob_get_status | Nahoru | ob_implicit_flush


ob_implicit_flush

(PHP 4 , PHP 5)

ob_implicit_flush -- Vypnout/zapnout implicitní flush

Popis

void ob_implicit_flush ( [int flag])

ob_implicit_flush() vypne nebo zapne implicitní flushování (pokud nedostane žádný flag, default je zapnout). Implicitní flushování způsobí flush po každém vygenerování výstupu, takže už nebudou potřeba explicitní volání flush().

Zapnutí implicitního flushování zruší bufferování výstupu, a aktuální obsah výstupních bufferů se odešle jako při volání ob_end_flush().

Viz také flush(),
ob_start() a
ob_end_flush().

Předcházející | Domů | Další
ob_gzhandler | Nahoru | ob_list_handlers


ob_list_handlers

(PHP 4 >= 4.3.0, PHP 5)

ob_list_handlers -- List all output handlers in use

Description

array ob_list_handlers ( void )

This will return an array with the output handlers in use (if any). If output_buffering is enabled, ob_list_handlers() will return "default output handler".

Příklad 1. ob_list_handlers() example

<?php
//using output_buffering=On
print_r(ob_list_handlers());
ob_end_flush();

ob_start("ob_gzhandler");
print_r(ob_list_handlers());
ob_end_flush();
?>

The above example will output:

Array
(
    [0] => default output handler
)
Array
(
    [0] => ob_gzhandler
)

See also ob_end_clean(),
ob_end_flush(),
ob_get_flush(), and ob_start().

Předcházející | Domů | Další
ob_implicit_flush | Nahoru | ob_start


ob_start

(PHP 4 , PHP 5)

ob_start -- Zapnout bufferování výstupu

Popis

void ob_start ( [string output_callback])

Tato funkce zapíná bufferování výstupu. Pokud je bufferování výstupu aktivováno, žádný výstup ze skriptu se neodešle, místo toho se ukládá v interním bufferu.

Obsah tohoto interního bufferu je možno zkopírovat do proměnné typu string
pomocí ob_get_contents(). K odeslání obsahu interního
bufferu použijte ob_end_flush(). Naprotitomu
ob_end_clean() tiše odstraní obsah výstupního bufferu.

Můžete zadat volitelný název callback funkce, která se automaticky zavolá s obsahem bufferu jako argumentem. Tato funkce musí přijímat řetězec a vracet řetězec. Tato funkce bude volána při ob_end_flush() a dostane obsah výstupního bufferu jako svůj argument. Musí vrátit nový výstupní buffer, který se pak vytiskne.

Výstupní buffery se dají stackovat, tzn. můžete zavolat ob_start() zatímco je aktivní další ob_start(). Je potřeba pouze správný počet volání ob_end_flush()(). Pokud je akivních více output callback funkcí, výstup je filtrován postupně přes každou z nich tak jak jsou do sebe vnořené.

Příklad 1. Ukázka callback funkce

<?php
function c($str) {
  // Druu Chunusun mut dum Kuntrubuß...
  return nl2br(ereg_replace("[aeiou]", "u", $str));
}

function d($str) {
  return strip_tags($str);
}
?>

<?php ob_start("c"); ?>
Drei Chinesen mit dem Kontrabaß...
<?php ob_start("d"); ?>
<h1>..saßen auf der Straße und erzählten sich was...</h1>
<?php ob_end_flush(); ?>
... da kam die Polizei, ja was ist denn das?
<?php ob_end_flush(); ?>

?>

Viz také ob_get_contents(),
ob_end_flush(),
ob_end_clean(), and
ob_implicit_flush()

Předcházející | Domů | Další
ob_list_handlers | Nahoru | output_add_rewrite_var


output_add_rewrite_var

(PHP 4 >= 4.3.0, PHP 5)

output_add_rewrite_var -- Add URL rewriter values

Description

bool output_add_rewrite_var ( string name, string value)

This function rewrite the URLs and forms with the given variable.

Poznámka: This function buffers the output.

Příklad 1. output_add_rewrite_var() example

<?php
output_add_rewrite_var('var', 'value');

// a link
echo '<a href="file.php">link</a>';

// a form
echo '<form action="script.php" method="post">
<input type="text" name="var2" />
</form>';

print_r(ob_list_handlers());
?>

The above example will output:

<a href="file.php?var=value">link</a>

<form action="script.php" method="post">
<input type="hidden" name="var" value="value" />
<input type="text" name="var2" />
</form>

Array
(
    [0] => URL-Rewriter
)

See also output_reset_rewrite_vars(), ob_flush() and ob_list_handlers().

Předcházející | Domů | Další
ob_start | Nahoru | output_reset_rewrite_vars


output_reset_rewrite_vars

(PHP 4 >= 4.3.0, PHP 5)

output_reset_rewrite_vars -- Reset URL rewriter values

Description

bool output_reset_rewrite_vars ( void )

This function resets the URL rewriter and undo the changes made by output_add_rewrite_var() and/or by session_start() that are still in the buffer.

Příklad 1. output_reset_rewrite_vars() example

<?php
session_start();
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>';
?>

The above example will output:

<a href="file.php?PHPSESSID=xxx&var=value">link</a>
<a href="file.php">link</a>

See also output_add_rewrite_var(),
ob_flush(), ob_list_handlers() and
session_start().

Předcházející | Domů | Další
output_add_rewrite_var | Nahoru | Object property and method call overloading


Object property and method call overloading

Manuál PHP
Předcházející Další

LXXIX. Object property and method call overloading

Úvod

The purpose of this extension is to allow overloading of object property access and method calls. Only one function is defined in this extension, overload() which takes the name of the class that should have this functionality enabled. The class named has to define appropriate methods if it wants to have this functionality: __get(), __set() and __call() respectively for getting/setting a property, or calling a method. This way overloading can be selective. Inside these handler functions the overloading is disabled so you can access object properties normally.

Varování

Toto rozšíření je EXPERIMENTÁLNÍ. Chování tohoto rozšíření, názvy funkcí a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může bez ohlášení změnit. Berte to v úvahu a používejte tento modul na vlastní nebezpečí.

Požadavky

Tyto funkce jsou k dispozici jako součást standardního modulu, který je vždy dostupný.

Instalace

In order to use these functions, you must compile PHP with the --enable-overload option. Starting with PHP 4.3.0 this extension is enabled by default. You can disable overload support with --disable--overload.

Verze PHP pro Windows má vestavěnou podporu pro toto rozšíření. K použití těchto funkcí není třeba načítat žádná další rozšíření.

Poznámka: Builtin support for overload is available with PHP 4.3.0.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Příklady

Some simple examples on using the overload() function:

Příklad 1. Overloading a PHP class

<?php

class OO {
    var $a = 111;
    var $elem = array('b' => 9, 'c' => 42);

    // Callback method for getting a property
    function __get($prop_name, &$prop_value)
    {
        if (isset($this->elem[$prop_name])) {
            $prop_value = $this->elem[$prop_name];
            return true;
        } else {
            return false;
        }
    }

    // Callback method for setting a property
    function __set($prop_name, $prop_value)
    {
        $this->elem[$prop_name] = $prop_value;
        return true;
    }
}

// Here we overload the OO object
overload('OO');

$o = new OO;
echo "\$o->a: $o->a\n"; // print: $o->a:
echo "\$o->b: $o->b\n"; // print: $o->b: 9
echo "\$o->c: $o->c\n"; // print: $o->c: 42
echo "\$o->d: $o->d\n"; // print: $o->d:

// add a new item to the $elem array in OO
$o->x = 56;

// instantiate stdclass (it is built-in in PHP 4)
// $val is not overloaded!
$val = new stdclass;
$val->prop = 555;

// Set "a" to be an array with the $val object in it
// But __set() will put this in the $elem array
$o->a = array($val);
var_dump($o->a[0]->prop);

?>

Varování

As this is an experimental extension, not all things work. There is no __call() support currently, you can only overload the get and set operations for properties. You cannot invoke the original overloading handlers of the class, and __set() only works to one level of property access.

Obsah
overload -- Enable property and method call overloading for a class

Předcházející | Domů | Další
output_reset_rewrite_vars | Nahoru | overload


overload

(PHP 4 >= 4.2.0)

overload -- Enable property and method call overloading for a class

Description

void overload ( [string class_name])

The overload() function will enable property and method call overloading for a class identified by class_name. See an example in the introductory section of this part.

Předcházející | Domů | Další
Object property and method call overloading | Nahoru | PDF funkce


PDF funkce

Manuál PHP
Předcházející Další

LXXX. PDF funkce

Úvod

PDF funkce v PHP mohou vytvořit PDF soubory s využitím knihovny PDFlib vytvořené Thomasem Merzem.

Dokumentace této sekce je myšlena pouze jako přehled dostupných funkcí v knihovně PDFlib a neměla by být považována za vyčerpávající přehled. Prosím konzultujte dokumentaci obsaženou v distribuci PDFlib pro úplné a detailní vysvětlené každé zde uvedené funkce. Poskytuje velmi dobrý přehled toho, co PDFlib dokáže a obsahuje nejčerstvější dokumentaci ke všem funkcím.

Většina funkcí pdflib a příslušného PHP modulu má stejné jméno. Argumenty jsou také identické. Pokud chcete tento modul využívat opravdu efektivně, měli byste chápat také některé z konceptů PDF nebo Postscriptu. Všechny rozměry a koordináty se udávají v Postscriptových bodech. Obecně je 72 PostScriptových bodů na palec, ale závisí to na výstupním rozlišení. Věnujte prosím pozornost dokumentaci pdflib, která je součástí distribuce zdrojového kódu, pro bližší vysvětlení použitého souřadnicového systému.

Vemte prosím na vědomí, že většina PDF funkcí vyžaduje pdfdoc jako první parametr. Viz příklady níže pro bližší vysvětlení.

Poznámka: Pokud se zajímáté o alternativní volně dostupné PDF generátory, které nepotřebují externí PDF knihovny, podívejte se na tuto související FAQ.

Požadavky

PDFlib lze stáhnout na http://www.pdflib.com/products/pdflib/index.html, ale vyžaduje, abyste zakoupili licenci pro komerční použití. Pro zkompilování tohoto rozšíření jsou potřeba knihovny JPEG a TIFF.

Problémy se starými verzemi PDFlib

Žádná verze PHP 4 od data 9. března 2000 nepodporuje podflib starší než 3.0.

PDFlib 3.0 a vyšší je podporováno PHP 3.0.19 a vyšší.

Instalace

Abyste mohli tyto funkce používat, musíte PHP zkompilovat s volbou --with-pdflib[=DIR]. DIR je základní instalační adresář PDFlib, výchozí hodnota je /usr/local. Navíc můžete určit knihovny jpeg, tiff a png, které má PDFlib používat, což je volitelné v PDFlib 4.x. Pokud tak chcete učinit, přidejte volby configure --with-jpeg-dir[=DIR] --with-png-dir[=DIR] --with-tiff-dir[=DIR].

Od pdflib 3.0 by se pdflib měla konfigurovat s volbou --enable-shared-pdflib.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Zmatek se starými verzemi PDFlib

Od PHP 4.0.5 je PHP rozšíření oficiálně podporováno společností PDFlib GmbH. To znamená, že všechny funkce popsané v PDFlib manuálu (V3.00 nebo vyšší) jsou podporovány v PHP 4 s přesně stejným významem a stejnými parametry. Oproti manuálu PDFlib se mohou lišit pouze návratové hodnoty, protože byla převzata konvence PHP pro vracení FALSE was adopted. Z důvodu kompatibility toto rozšíření PDFlib stále podporuje staré funkce, ale tyto by měly být nahrazeny jejich novějšími verzemi. PDFlib GmbH nepomáhá s řešením žádných problémů plynoucích z používání těchto zastaralých funkcí.

Tabulka 1. Zastaralé funkce a jejich náhrady

Stará funkce | Náhrada
pdf_put_image() | Není potřeba.
pdf_execute_image() | Není potřeba.
pdf_get_annotation() | pdf_get_bookmark() se stejnými parametry.
pdf_get_font() | pdf_get_value() s "font" jako druhý argument.
pdf_get_fontsize() | pdf_get_value() s "fontsize" jako druhý argument.
pdf_get_fontname() | pdf_get_parameter() s "fontname" jako druhý argument.
pdf_set_info_creator() | pdf_set_info() s "Creator" jako druhý argument.
pdf_set_info_title() | pdf_set_info() s "Title" jako druhý argument.
pdf_set_info_subject() | pdf_set_info() s "Subject" jako druhý argument.
pdf_set_info_author() | pdf_set_info() s "Author" jako druhý argument.
pdf_set_info_keywords() | pdf_set_info() s "Keywords" jako druhý argument.
pdf_set_leading() | pdf_set_value() s "leading" jako druhý argument.
pdf_set_text_rendering() | pdf_set_value() s "textrendering" jako druhý argument.
pdf_set_text_rise() | pdf_set_value() s "textrise" jako druhý argument.
pdf_set_horiz_scaling() | pdf_set_value() s "horizscaling" jako druhý argument.
pdf_set_text_matrix() | neexistuje
pdf_set_char_spacing() | pdf_set_value() s "charspacing" jako druhý argument.
pdf_set_word_spacing() | pdf_set_value() s "wordspacing" jako druhý argument.
pdf_set_transition() | pdf_set_parameter() s "transition" jako druhý argument.
pdf_open() | pdf_new() plus následné zavolání pdf_open_file()
pdf_set_font() | pdf_findfont() plus následné zavolání pdf_setfont()
pdf_set_duration() | pdf_set_value() s "duration" jako druhý argument.
pdf_open_gif() | pdf_open_image_file() s "gif" jako druhý argument.
pdf_open_jpeg() | pdf_open_image_file() s "jpeg" jako druhý argument.
pdf_open_tiff() | pdf_open_image_file() s "tiff" jako druhý argument.
pdf_open_png() | pdf_open_image_file() s "png" jako druhý argument.
pdf_get_image_width() | pdf_get_value() s "imagewidth" jako druhý argument a obrázkem jako třetí argument.
pdf_get_image_height() | pdf_get_value() s "imageheight" jako druhý argument a obrázkem jako třetí argument.

Příklady

Většina funkcí se používá docela snadno. Nejtěžší je zřejmě vůbec nějaký jednoduchý PDF dokument vůbec vytvořit. Následující ukázka by měla pomoci začít. Vytvoří soubor test.pdf s jednou stránkou. Tato stránka obsahuje text "Times Roman outlined" napsaný 30ti bodovým obrysem. Text je také podtržený.

Příklad 1. Tvorba PDF dokumentu s pdflib

<?php
$pdf = pdf_new();
pdf_open_file($pdf, "test.pdf");
pdf_set_info($pdf, "Author", "Uwe Steinmann");
pdf_set_info($pdf, "Title", "Test for PHP wrapper of PDFlib 2.0");
pdf_set_info($pdf, "Creator", "See Author");
pdf_set_info($pdf, "Subject", "Testing");
pdf_begin_page($pdf, 595, 842);
pdf_add_outline($pdf, "Page 1");
$font = pdf_findfont($pdf, "Times New Roman", "winansi", 1);
pdf_setfont($pdf, $font, 10);
pdf_set_value($pdf, "textrendering", 1);
pdf_show_xy($pdf, "Times Roman outlined", 50, 750);
pdf_moveto($pdf, 50, 740);
pdf_lineto($pdf, 330, 740);
pdf_stroke($pdf);
pdf_end_page($pdf);
pdf_close($pdf);
pdf_delete($pdf);
echo "<A HREF=getpdf.php>finished</A>";
?>
Skript getpdf.php pouze vrátí vytvořený pdf dokument.

Příklad 2. Vrátit připravené PDF

<?php
$len = filesize($filename);
header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=foo.pdf");
readfile($filename);
?>

Distribuce pdflib obsahuje rozsáhlejší ukázku, která obsahuje sérii stránek s analogovými hodinami. Tato ukázka převedená do PHP vypadá takto (stejnou ukázku najdete v dokumentaci k clibpdf modulu):

Příklad 3. pdfclock ukázka z pdflib distribuce

<?php
$radius = 200;
$margin = 20;
$pagecount = 10;

$pdf = pdf_new();

if (!pdf_open_file($pdf, "")) {
    print error;
    exit;
};

pdf_set_parameter($pdf, "warning", "true");

pdf_set_info($pdf, "Creator", "pdf_clock.php");
pdf_set_info($pdf, "Author", "Uwe Steinmann");
pdf_set_info($pdf, "Title", "Analog Clock");

while($pagecount-- > 0) {
    pdf_begin_page($pdf, 2 * ($radius + $margin), 2 * ($radius + $margin));

    pdf_set_parameter($pdf, "transition", "wipe");
    pdf_set_value($pdf, "duration", 0.5);

    pdf_translate($pdf, $radius + $margin, $radius + $margin);
    pdf_save($pdf);
    pdf_setrgbcolor($pdf, 0.0, 0.0, 1.0);

    /* minute strokes */
    pdf_setlinewidth($pdf, 2.0);
    for ($alpha = 0; $alpha < 360; $alpha += 6) {
        pdf_rotate($pdf, 6.0);
        pdf_moveto($pdf, $radius, 0.0);
        pdf_lineto($pdf, $radius-$margin/3, 0.0);
        pdf_stroke($pdf);
    }

    pdf_restore($pdf);
    pdf_save($pdf);

    /* 5 minute strokes */
    pdf_setlinewidth($pdf, 3.0);
    for ($alpha = 0; $alpha < 360; $alpha += 30) {
        pdf_rotate($pdf, 30.0);
        pdf_moveto($pdf, $radius, 0.0);
        pdf_lineto($pdf, $radius-$margin, 0.0);
        pdf_stroke($pdf);
    }

    $ltime = getdate();

    /* draw hour hand */
    pdf_save($pdf);
    pdf_rotate($pdf,-(($ltime['minutes']/60.0)+$ltime['hours']-3.0)*30.0);
    pdf_moveto($pdf, -$radius/10, -$radius/20);
    pdf_lineto($pdf, $radius/2, 0.0);
    pdf_lineto($pdf, -$radius/10, $radius/20);
    pdf_closepath($pdf);
    pdf_fill($pdf);
    pdf_restore($pdf);

    /* draw minute hand */
    pdf_save($pdf);
    pdf_rotate($pdf,-(($ltime['seconds']/60.0)+$ltime['minutes']-15.0)*6.0);
    pdf_moveto($pdf, -$radius/10, -$radius/20);
    pdf_lineto($pdf, $radius * 0.8, 0.0);
    pdf_lineto($pdf, -$radius/10, $radius/20);
    pdf_closepath($pdf);
    pdf_fill($pdf);
    pdf_restore($pdf);

    /* draw second hand */
    pdf_setrgbcolor($pdf, 1.0, 0.0, 0.0);
    pdf_setlinewidth($pdf, 2);
    pdf_save($pdf);
    pdf_rotate($pdf, -(($ltime['seconds'] - 15.0) * 6.0));
    pdf_moveto($pdf, -$radius/5, 0.0);
    pdf_lineto($pdf, $radius, 0.0);
    pdf_stroke($pdf);
    pdf_restore($pdf);

    /* draw little circle at center */
    pdf_circle($pdf, 0, 0, $radius/30);
    pdf_fill($pdf);

    pdf_restore($pdf);

    pdf_end_page($pdf);

    # to see some difference
    sleep(1);
}

pdf_close($pdf);

$buf = pdf_get_buffer($pdf);
$len = strlen($buf);

header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=foo.pdf");
print $buf;

pdf_delete($pdf);
?>

Viz také

Poznámka: Existuje další PHP modul na tvorbu PDF dokumentů, založený na ClibPDF od firmy FastIO. Detaily viz ClibPDF funkce. Má mírně jinou API.

Obsah
pdf_add_annotation -- Deprecated: Adds annotation
pdf_add_bookmark -- Adds bookmark for current page
pdf_add_launchlink -- Add a launch annotation for current page
pdf_add_locallink -- Add a link annotation for current page
pdf_add_note -- Sets annotation for current page
pdf_add_outline -- Deprecated: Adds bookmark for current page
pdf_add_pdflink -- Adds file link annotation for current page
pdf_add_thumbnail -- Adds thumbnail for current page
pdf_add_weblink -- Adds weblink for current page
pdf_arc -- Draws an arc (counterclockwise)
pdf_arcn -- Draws an arc (clockwise)
pdf_attach_file -- Adds a file attachment for current page
pdf_begin_page -- Začít novou stranu
pdf_begin_pattern -- Starts new pattern
pdf_begin_template -- Starts new template
pdf_circle -- Draws a circle
pdf_clip -- Clips to current path
pdf_close_image -- Closes an image
pdf_close_pdi_page -- Close the page handle
pdf_close_pdi -- Close the input PDF document
pdf_close -- Zavřít PDF dokument
pdf_closepath_fill_stroke -- Closes, fills and strokes current path
pdf_closepath_stroke -- Closes path and draws line along path
pdf_closepath -- Closes path
pdf_concat -- Concatenate a matrix to the CTM
pdf_continue_text -- Outputs text in next line
pdf_curveto -- Draws a curve
pdf_delete -- Deletes a PDF object
pdf_end_page -- Ukončit stranu
pdf_end_pattern -- Finish pattern
pdf_end_template -- Finish template
pdf_endpath -- Deprecated: Ends current path
pdf_fill_stroke -- Fills and strokes current path
pdf_fill -- Fills current path
pdf_findfont -- Prepare font for later use with pdf_setfont().
pdf_get_buffer -- Fetch the buffer containing the generated PDF data.
pdf_get_font -- Deprecated: font handling
pdf_get_fontname -- Deprecated: font handling
pdf_get_fontsize -- Deprecated: font handling
pdf_get_image_height -- Deprecated: returns height of an image
pdf_get_image_width -- Deprecated: Returns width of an image
pdf_get_majorversion -- Returns the major version number of the PDFlib
pdf_get_minorversion -- Returns the minor version number of the PDFlib
pdf_get_parameter -- Gets certain parameters
pdf_get_pdi_parameter -- Get some PDI string parameters
pdf_get_pdi_value -- Gets some PDI numerical parameters
pdf_get_value -- Gets certain numerical value
pdf_initgraphics -- Resets graphic state
pdf_lineto -- Draws a line
pdf_makespotcolor -- Makes a spotcolor
pdf_moveto -- Sets current point
pdf_new -- Creates a new pdf resource
pdf_open_CCITT -- Opens a new image file with raw CCITT data
pdf_open_file -- Opens a new pdf object
pdf_open_gif -- Deprecated: Opens a GIF image
pdf_open_image_file -- Reads an image from a file
pdf_open_image -- Versatile function for images
pdf_open_jpeg -- Deprecated: Opens a JPEG image
pdf_open_memory_image -- Opens an image created with PHP's image functions
pdf_open_pdi_page -- Prepare a page
pdf_open_pdi -- Opens a PDF file
pdf_open_png -- Deprecated: Opens a PNG image
pdf_open_tiff -- Deprecated: Opens a TIFF image
pdf_open -- Otevřít nový PDF dokument
pdf_place_image -- Places an image on the page
pdf_place_pdi_page -- Places an image on the page
pdf_rect -- Draws a rectangle
pdf_restore -- Restores formerly saved environment
pdf_rotate -- Sets rotation
pdf_save -- Saves the current environment
pdf_scale -- Sets scaling
pdf_set_border_color -- Sets color of border around links and annotations
pdf_set_border_dash -- Sets dash style of border around links and annotations
pdf_set_border_style -- Sets style of border around links and annotations
pdf_set_char_spacing -- Deprecated: Sets character spacing
pdf_set_duration -- Deprecated: Sets duration between pages
pdf_set_font -- Určit font a velikost
pdf_set_horiz_scaling -- Sets horizontal scaling of text [deprecated]
pdf_set_info_author -- Deprecated: Fills the author field of the document
pdf_set_info_creator -- Deprecated: Fills the creator field of the document
pdf_set_info_keywords -- Deprecated: Fills the keywords field of the document
pdf_set_info_subject -- Deprecated: Fills the subject field of the document
pdf_set_info_title -- Deprecated: Fills the title field of the document
pdf_set_info -- Vyplnit položku informací o dokumentu
pdf_set_leading -- Nastavit vzdálenost mezi řádky
pdf_set_parameter -- Nastavit určité parametry
pdf_set_text_matrix -- Deprecated: Sets the text matrix
pdf_set_text_pos -- Sets text position
pdf_set_text_rendering -- Deprecated: Determines how text is rendered
pdf_set_text_rise -- Deprecated: Sets the text rise
pdf_set_value -- Sets certain numerical value
pdf_set_word_spacing -- Deprecated: Sets spacing between words
pdf_setcolor -- Sets fill and stroke color
pdf_setdash -- Sets dash pattern
pdf_setflat -- Sets flatness
pdf_setfont -- Set the current font
pdf_setgray_fill -- Sets filling color to gray value
pdf_setgray_stroke -- Sets drawing color to gray value
pdf_setgray -- Sets drawing and filling color to gray value
pdf_setlinecap -- Sets linecap parameter
pdf_setlinejoin -- Sets linejoin parameter
pdf_setlinewidth -- Sets line width
pdf_setmatrix -- Sets current transformation matrix
pdf_setmiterlimit -- Sets miter limit
pdf_setpolydash -- Deprecated: Sets complicated dash pattern
pdf_setrgbcolor_fill -- Sets filling color to rgb color value
pdf_setrgbcolor_stroke -- Sets drawing color to rgb color value
pdf_setrgbcolor -- Sets drawing and filling color to rgb color value
pdf_show_boxed -- Vytisknout text v rámečku
pdf_show_xy -- Vytisknout text na určené pozici
pdf_show -- Umístit text na aktuální pozici
pdf_skew -- Skews the coordinate system
pdf_stringwidth -- Returns width of text using current font
pdf_stroke -- Draws line along path
pdf_translate -- Sets origin of coordinate system

Předcházející | Domů | Další
overload | Nahoru | pdf_add_annotation


pdf_add_annotation

pdf_add_annotation -- Deprecated: Adds annotation

Description

This function is deprecated, use pdf_add_note() instead.

Předcházející | Domů | Další
PDF funkce | Nahoru | pdf_add_bookmark


pdf_add_bookmark

(PHP 4 >= 4.0.1, PHP 5)

pdf_add_bookmark -- Adds bookmark for current page

Description

int pdf_add_bookmark ( resource pdfdoc, string text [, int parent [, int open]])

Add a nested bookmark under parent, or a new top-level bookmark if parent = 0. Returns a bookmark descriptor which may be used as parent for subsequent nested bookmarks. If open = 1, child bookmarks will be folded out, and invisible if open = 0.

Příklad 1. pdf_add_bookmark() example

<?php
// create a new PDF

$pdf = pdf_new();
pdf_open_file($pdf);
pdf_set_info($pdf, "Author", "Bob Nijman");

// begin a new page
pdf_begin_page($pdf, 300, 300);

// add a top-level bookmark
$bookmark = pdf_add_bookmark($pdf, "People");

// add a nested bookmark
pdf_add_bookmark($pdf, "Rasmus", $bookmark);

// and some text
pdf_set_font($pdf, "Helvetica", 20, "host");
$text = "This is R's page";
$width = pdf_stringwidth($pdf, $text);
pdf_set_text_pos($pdf, (300-$width)/2, 100);
pdf_show($pdf, $text);

// close the page and the PDF
pdf_end_page($pdf);
pdf_close($pdf);

?>

Předcházející | Domů | Další
pdf_add_annotation | Nahoru | pdf_add_launchlink


pdf_add_launchlink

(PHP 4 >= 4.0.5, PHP 5)

pdf_add_launchlink -- Add a launch annotation for current page

Description

bool pdf_add_launchlink ( resource pdfdoc, float llx, float lly, float urx, float ury, string filename)

Adds a link to a web resource specified by filename. Vrací TRUE při úspěchu, FALSE při selhání.

See also pdf_add_locallink().

Předcházející | Domů | Další
pdf_add_bookmark | Nahoru | pdf_add_locallink


pdf_add_locallink

(PHP 4 >= 4.0.5, PHP 5)

pdf_add_locallink -- Add a link annotation for current page

Description

bool pdf_add_locallink ( resource pdfdoc, float lowerleftx, float lowerlefty, float upperrightx, float upperrighty, int page, string dest)

Add a link annotation to a target within the current PDF file. Vrací TRUE při úspěchu, FALSE při selhání.

dest is the zoom setting on the destination page, it can be one of retain, fitpage, fitwidth, fitheight or fitbbox.

See also pdf_add_launchlink().

Předcházející | Domů | Další
pdf_add_launchlink | Nahoru | pdf_add_note


pdf_add_note

(PHP 4 >= 4.0.5, PHP 5)

pdf_add_note -- Sets annotation for current page

Description

bool pdf_add_note ( resource pdfdoc, float llx, float lly, float urx, float ury, string contents, string title, string icon, int open)

Sets an annotation for the current page. icon is one of comment, insert, note, paragraph, newparagraph, key, or help. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
pdf_add_locallink | Nahoru | pdf_add_outline


pdf_add_outline

pdf_add_outline -- Deprecated: Adds bookmark for current page

Description

This function is deprecated, use pdf_add_bookmark() instead.

Předcházející | Domů | Další
pdf_add_note | Nahoru | pdf_add_pdflink


pdf_add_pdflink

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

pdf_add_pdflink -- Adds file link annotation for current page

Description

bool pdf_add_pdflink ( resource pdfdoc, float bottom_left_x, float bottom_left_y, float up_right_x, float up_right_y, string filename, int page, string dest)

Add a file link annotation (to a PDF target). Vrací TRUE při úspěchu, FALSE při selhání.

See also pdf_add_locallink() and pdf_add_weblink().

Předcházející | Domů | Další
pdf_add_outline | Nahoru | pdf_add_thumbnail


pdf_add_thumbnail

(PHP 4 >= 4.0.5, PHP 5)

pdf_add_thumbnail -- Adds thumbnail for current page

Description

bool pdf_add_thumbnail ( resource pdfdoc, int image)

Adds an existing image as thumbnail for the current page. Thumbnail images must not be wider or higher than 106 pixels. Vrací TRUE při úspěchu, FALSE při selhání.

See also pdf_open_image(),
pdf_open_image_file(),
pdf_open_memory_image().

Předcházející | Domů | Další
pdf_add_pdflink | Nahoru | pdf_add_weblink


pdf_add_weblink

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

pdf_add_weblink -- Adds weblink for current page

Description

bool pdf_add_weblink ( resource pdfdoc, float lowerleftx, float lowerlefty, float upperrightx, float upperrighty, string url)

Add a weblink annotation to a target url on the Web. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
pdf_add_thumbnail | Nahoru | pdf_arc


pdf_arc

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_arc -- Draws an arc (counterclockwise)

Description

bool pdf_arc ( resource pdfdoc, float x, float y, float r, float alpha, float beta)

Add a counterclockwise circular arc from alpha to beta degrees with center (x; y) and radius r. Actual drawing of the circle is performed by the next stroke or fill operation.

Příklad 1. pdf_arcn() example

<?php
// prepare document
$pdf = pdf_new();
pdf_open_file($pdf, "");
pdf_begin_page($pdf, 595, 842);

// an outlined arc
pdf_arc($pdf, 200, 700, 100, 0, 90);
pdf_stroke($pdf);

// a filled arc
pdf_arc($pdf, 200, 700, 50, 0, 90);
pdf_fill($pdf);

// an outlined and filled arc
pdf_setcolor($pdf, "fill", "gray", 0.8);
pdf_arc($pdf, 400, 700, 50, 0, 90);
pdf_fill_stroke($pdf);

// finish document
pdf_end_page($pdf);
pdf_close($pdf);

header("Content-type: application/pdf");
echo pdf_get_buffer($pdf);

pdf_delete($pdf);
?>

See also: pdf_arcn(),
pdf_circle(), pdf_stroke(),
pdf_fill() and pdf_fill_stroke().

Předcházející | Domů | Další
pdf_add_weblink | Nahoru | pdf_arcn


pdf_arcn

(PHP 4 >= 4.0.5, PHP 5)

pdf_arcn -- Draws an arc (clockwise)

Description

bool pdf_arcn ( resource pdfdoc, float x, float y, float r, float alpha, float beta)

Add a clockwise circular arc from alpha to beta degrees with center (x; y) and radius r. Actual drawing of the circle is performed by the next stroke or fill operation.

Příklad 1. pdf_arcn() example

<?php

// prepare document
$pdf = pdf_new();
pdf_open_file($pdf, "");
pdf_begin_page($pdf, 595, 842);

// an outlined arcn
pdf_arcn($pdf, 200, 700, 100, 0, 90);
pdf_stroke($pdf);

// a filled arcn
pdf_arcn($pdf, 200, 700, 50, 0, 90);
pdf_fill($pdf);

// an outlined and filled arcn
pdf_setcolor($pdf, "fill", "gray", 0.8);
pdf_arcn($pdf, 400, 700, 50, 0, 90);
pdf_fill_stroke($pdf);

// finish document
pdf_end_page($pdf);
pdf_close($pdf);

header("Content-type: application/pdf");
echo pdf_get_buffer($pdf);

pdf_delete($pdf);
?>

See also: pdf_arc(), pdf_circle(),
pdf_stroke(), pdf_fill() and
pdf_fillstroke().

Předcházející | Domů | Další
pdf_arc | Nahoru | pdf_attach_file


pdf_attach_file

(PHP 4 >= 4.0.5, PHP 5)

pdf_attach_file -- Adds a file attachment for current page

Description

bool pdf_attach_file ( resource pdfdoc, float llx, float lly, float urx, float ury, string filename, string description, string author, string mimetype, string icon)

Add a file attachment annotation. icon is one of graph, paperclip, pushpin, or tag. Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: Only the 'Full' Acrobat software will be able to display these file attachments. All other PDF viewers will either show nothing or display a question mark.

Předcházející | Domů | Další
pdf_arcn | Nahoru | pdf_begin_page


pdf_begin_page

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_begin_page -- Začít novou stranu

Popis

void pdf_begin_page ( int pdf document, double width, double height)

Funkce pdf_begin_page() začne novou stránku s výškou height a šířkou width. Pokud chcete vytvořit validní dokument, musíte zavolat tuto funkci a pdf_end_page() přinejmenším jednou.

Viz také pdf_end_page().

Předcházející | Domů | Další
pdf_attach_file | Nahoru | pdf_begin_pattern


pdf_begin_pattern

(PHP 4 >= 4.0.5, PHP 5)

pdf_begin_pattern -- Starts new pattern

Description

int pdf_begin_pattern ( resource pdfdoc, float width, float height, float xstep, float ystep, int painttype)

Starts a new pattern definition and returns a pattern handle. width, and height define the bounding box for the pattern. xstep and ystep give the repeated pattern offsets. painttype=1 means that the pattern has its own colour settings whereas a value of 2 indicates that the current colour is used when the pattern is applied.

See also pdf_end_pattern().

Předcházející | Domů | Další
pdf_begin_page | Nahoru | pdf_begin_template


pdf_begin_template

(PHP 4 >= 4.0.5, PHP 5)

pdf_begin_template -- Starts new template

Description

int pdf_begin_template ( resource pdfdoc, float width, float height)

Start a new template definition.

Předcházející | Domů | Další
pdf_begin_pattern | Nahoru | pdf_circle


pdf_circle

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_circle -- Draws a circle

Description

bool pdf_circle ( resource pdfdoc, float x, float y, float r)

Add a circle with center (x, y) and radius r to the current page. Actual drawing of the circle is performed by the next stroke or fill operation.

Vrací TRUE při úspěchu, FALSE při selhání.

Příklad 1. pdf_circle() example

<?php
// prepare document
$pdf = pdf_new();
pdf_open_file($pdf, "");
pdf_begin_page($pdf, 595, 842);

// an outlined circle
pdf_circle($pdf, 200, 700, 100);
pdf_stroke($pdf);

    // a filled circle
pdf_circle($pdf, 200, 700, 50);
pdf_fill($pdf);

// an outlined and filled circle
pdf_setcolor($pdf, "fill", "gray", 0.3);
pdf_circle($pdf, 400, 700, 50);
pdf_fill_stroke($pdf);

// finish document
pdf_end_page($pdf);
pdf_close($pdf);

header("Content-type: application/pdf");
echo pdf_get_buffer($pdf);

pdf_delete($pdf);
?>

See also: pdf_arc(),
pdf_arcn(), pdf_curveto(),
pdf_stroke(), pdf_fill() and
pdf_fill_stroke().

Předcházející | Domů | Další
pdf_begin_template | Nahoru | pdf_clip


pdf_clip

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_clip -- Clips to current path

Description

bool pdf_clip ( resource pdfdoc)

Use the current path as clipping path. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
pdf_circle | Nahoru | pdf_close_image


pdf_close_image

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

pdf_close_image -- Closes an image

Description

void pdf_close_image ( resource pdfdoc, int image)

Close an image retrieved with the pdf_open_image() function.

Předcházející | Domů | Další
pdf_clip | Nahoru | pdf_close_pdi_page


pdf_close_pdi_page

(PHP 4 >= 4.0.5, PHP 5)

pdf_close_pdi_page -- Close the page handle

Description

bool pdf_close_pdi_page ( resource pdfdoc, int pagehandle)

Close the page handle, and free all page-related resources. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
pdf_close_image | Nahoru | pdf_close_pdi


pdf_close_pdi

(PHP 4 >= 4.0.5, PHP 5)

pdf_close_pdi -- Close the input PDF document

Description

bool pdf_close_pdi ( resource pdfdoc, int dochandle)

Close all open page handles, and close the input PDF document. Vrací TRUE při úspěchu, FALSE při selhání.

See also pdf_open_pdi().

Předcházející | Domů | Další
pdf_close_pdi_page | Nahoru | pdf_close


pdf_close

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_close -- Zavřít PDF dokument

Popis

void pdf_close ( int pdf document)

Funkce pdf_close() zavře PDF dokument.

Viz také pdf_open(), fclose().

Předcházející | Domů | Další
pdf_close_pdi | Nahoru | pdf_closepath_fill_stroke


pdf_closepath_fill_stroke

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_closepath_fill_stroke -- Closes, fills and strokes current path

Description

bool pdf_closepath_fill_stroke ( resource pdfdoc)

Close the path, fill, and stroke it. Vrací TRUE při úspěchu, FALSE při selhání.

See also pdf_closepath() and pdf_closepath_stroke().

Předcházející | Domů | Další
pdf_close | Nahoru | pdf_closepath_stroke


pdf_closepath_stroke

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_closepath_stroke -- Closes path and draws line along path

Description

bool pdf_closepath_stroke ( resource pdfdoc)

Close the path, and stroke it. Vrací TRUE při úspěchu, FALSE při selhání.

See also pdf_closepath() and pdf_closepath_fil_stroke().

Předcházející | Domů | Další
pdf_closepath_fill_stroke | Nahoru | pdf_closepath


pdf_closepath

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_closepath -- Closes path

Description

bool pdf_closepath ( resource pdfdoc)

Close the current path. Vrací TRUE při úspěchu, FALSE při selhání.

See also pdf_closepath_stroke() and pdf_closepath_fil_stroke().

Předcházející | Domů | Další
pdf_closepath_stroke | Nahoru | pdf_concat


pdf_concat

(PHP 4 >= 4.0.5, PHP 5)

pdf_concat -- Concatenate a matrix to the CTM

Description

bool pdf_concat ( resource pdfdoc, float a, float b, float c, float d, float e, float f)

Concatenate a matrix to the CTM. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
pdf_closepath | Nahoru | pdf_continue_text


pdf_continue_text

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_continue_text -- Outputs text in next line

Description

bool pdf_continue_text ( resource pdfdoc, string text)

Print text at the next line. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
pdf_concat | Nahoru | pdf_curveto


pdf_curveto

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_curveto -- Draws a curve

Description

bool pdf_curveto ( resource pdfdoc, float x1, float y1, float x2, float y2, float x3, float y3)

Draw a Bezier curve from the current point, using 3 more control points. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
pdf_continue_text | Nahoru | pdf_delete


pdf_delete

(PHP 4 >= 4.0.5, PHP 5)

pdf_delete -- Deletes a PDF object

Description

bool pdf_delete ( resource pdfdoc)

Delete the PDF resource, and free all internal resources. Vrací TRUE při úspěchu, FALSE při selhání.

See also pdf_new().

Předcházející | Domů | Další
pdf_curveto | Nahoru | pdf_end_page


pdf_end_page

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_end_page -- Ukončit stranu

Popis

void pdf_end_page ( int pdf document)

Funkce pdf_end_page() ukončí stranu. Jakmile je strana ukončena, nedá se už upravovat.

Viz také pdf_begin_page().

Předcházející | Domů | Další
pdf_delete | Nahoru | pdf_end_pattern


pdf_end_pattern

(PHP 4 >= 4.0.5, PHP 5)

pdf_end_pattern -- Finish pattern

Description

bool pdf_end_pattern ( resource pdfdoc)

Finish the pattern definition. Vrací TRUE při úspěchu, FALSE při selhání.

See also pdf_begin_pattern().

Předcházející | Domů | Další
pdf_end_page | Nahoru | pdf_end_template


pdf_end_template

(PHP 4 >= 4.0.5, PHP 5)

pdf_end_template -- Finish template

Description

bool pdf_end_template ( resource pdfdoc)

Finish the template definition. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
pdf_end_pattern | Nahoru | pdf_endpath


pdf_endpath

pdf_endpath -- Deprecated: Ends current path

Description

This function is deprecated, use one of the pdf_stroke(), pdf_clip() or pdf_closepath_fill_stroke() functions instead.

Předcházející | Domů | Další
pdf_end_template | Nahoru | pdf_fill_stroke


pdf_fill_stroke

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_fill_stroke -- Fills and strokes current path

Description

bool pdf_fill_stroke ( resource pdfdoc)

Fill and stroke the path with the current fill and stroke color. Vrací TRUE při úspěchu, FALSE při selhání.

See also pdf_setcolor().

Předcházející | Domů | Další
pdf_endpath | Nahoru | pdf_fill


pdf_fill

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_fill -- Fills current path

Description

bool pdf_fill ( resource pdfdoc)

Fill the interior of the path with the current fill color. Vrací TRUE při úspěchu, FALSE při selhání.

See also pdf_setcolor().

Předcházející | Domů | Další
pdf_fill_stroke | Nahoru | pdf_findfont


pdf_findfont

(PHP 4 >= 4.0.5, PHP 5)

pdf_findfont -- Prepare font for later use with pdf_setfont().

Description

int pdf_findfont ( resource pdfdoc, string fontname, string encoding [, int embed])

Prepare a font for later use with pdf_setfont(). The metrics will be loaded, and if embed is nonzero, the font file will be checked, but not yet used. encoding is one of builtin, macroman, winansi, host, a user-defined encoding name or the name of a CMap.

pdf_findfont() returns a font handle or FALSE on error.

Příklad 1. pdf_findfont() example

<?php

$font = pdf_findfont($pdf, "Times New Roman", "winansi", 1);
if ($font) {
    pdf_setfont($pdf, $font, 10);
}

?>

Předcházející | Domů | Další
pdf_fill | Nahoru | pdf_get_buffer


pdf_get_buffer

(PHP 4 >= 4.0.5, PHP 5)

pdf_get_buffer -- Fetch the buffer containing the generated PDF data.

Description

string pdf_get_buffer ( resource pdfdoc)

Get the contents of the PDF output buffer. The result must be used by the client before calling any other PDFlib function.

Předcházející | Domů | Další
pdf_findfont | Nahoru | pdf_get_font


pdf_get_font

pdf_get_font -- Deprecated: font handling

Description

This function is deprecated, use pdf_get_value() instead.

Předcházející | Domů | Další
pdf_get_buffer | Nahoru | pdf_get_fontname


pdf_get_fontname

pdf_get_fontname -- Deprecated: font handling

Description

This function is deprecated, use pdf_get_parameter() instead.

Předcházející | Domů | Další
pdf_get_font | Nahoru | pdf_get_fontsize


pdf_get_fontsize

pdf_get_fontsize -- Deprecated: font handling

Description

This function is deprecated, use pdf_get_value() instead.

Předcházející | Domů | Další
pdf_get_fontname | Nahoru | pdf_get_image_height


pdf_get_image_height

pdf_get_image_height -- Deprecated: returns height of an image

Description

This function is deprecated, use pdf_get_value() instead.

Předcházející | Domů | Další
pdf_get_fontsize | Nahoru | pdf_get_image_width


pdf_get_image_width

pdf_get_image_width -- Deprecated: Returns width of an image

Description

This function is deprecated, use pdf_get_value() instead.

Předcházející | Domů | Další
pdf_get_image_height | Nahoru | pdf_get_majorversion


pdf_get_majorversion

(PHP 4 >= 4.2.0, PHP 5)

pdf_get_majorversion -- Returns the major version number of the PDFlib

Description

int pdf_get_majorversion ( void )

Returns the major version number of the PDFlib.

See also pdf_get_minorversion().

Předcházející | Domů | Další
pdf_get_image_width | Nahoru | pdf_get_minorversion


pdf_get_minorversion

(PHP 4 >= 4.2.0, PHP 5)

pdf_get_minorversion -- Returns the minor version number of the PDFlib

Description

int pdf_get_minorversion ( void )

Returns the minor version number of the PDFlib.

See also pdf_get_majorversion().

Předcházející | Domů | Další
pdf_get_majorversion | Nahoru | pdf_get_parameter


pdf_get_parameter

(PHP 4 >= 4.0.1, PHP 5)

pdf_get_parameter -- Gets certain parameters

Description

string pdf_get_parameter ( resource pdfdoc, string key [, float modifier])

Get the contents of some PDFlib parameter with string type.

Předcházející | Domů | Další
pdf_get_minorversion | Nahoru | pdf_get_pdi_parameter


pdf_get_pdi_parameter

(PHP 4 >= 4.0.5, PHP 5)

pdf_get_pdi_parameter -- Get some PDI string parameters

Description

string pdf_get_pdi_parameter ( resource pdfdoc, string key, int document, int page, int index)

Get the contents of some PDI document parameter with string type.

Předcházející | Domů | Další
pdf_get_parameter | Nahoru | pdf_get_pdi_value


pdf_get_pdi_value

(PHP 4 >= 4.0.5, PHP 5)

pdf_get_pdi_value -- Gets some PDI numerical parameters

Description

string pdf_get_pdi_value ( resource pdfdoc, string key, int doc, int page, int index)

Get the contents of some PDI document parameter with numerical type.

Předcházející | Domů | Další
pdf_get_pdi_parameter | Nahoru | pdf_get_value


pdf_get_value

(PHP 4 >= 4.0.1, PHP 5)

pdf_get_value -- Gets certain numerical value

Description

float pdf_get_value ( resource pdfdoc, string key [, float modifier])

Get the contents of some PDFlib parameter with float type.

Předcházející | Domů | Další
pdf_get_pdi_value | Nahoru | pdf_initgraphics


pdf_initgraphics

(PHP 4 >= 4.0.5, PHP 5)

pdf_initgraphics -- Resets graphic state

Description

bool pdf_initgraphics ( resource pdfdoc)

Reset all implicit color and graphics state parameters to their defaults. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
pdf_get_value | Nahoru | pdf_lineto


pdf_lineto

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_lineto -- Draws a line

Description

bool pdf_lineto ( resource pdfdoc, float x, float y)

Draw a line from the current point to (x, y). Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
pdf_initgraphics | Nahoru | pdf_makespotcolor


pdf_makespotcolor

(PHP 4 >= 4.0.5, PHP 5)

pdf_makespotcolor -- Makes a spotcolor

Description

bool pdf_makespotcolor ( resource pdfdoc, string spotname)

Make a named spot color from the current color. Vrací TRUE při úspěchu, FALSE při selhání.

See also pdf_setcolor().

Předcházející | Domů | Další
pdf_lineto | Nahoru | pdf_moveto


pdf_moveto

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_moveto -- Sets current point

Description

bool pdf_moveto ( resource pdfdoc, float x, float y)

Set the current point to (x, y. Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: The current point for graphics and the current text output position are maintained separately. See pdf_set_text_pos() to set the text output position.

Předcházející | Domů | Další
pdf_makespotcolor | Nahoru | pdf_new


pdf_new

(PHP 4 >= 4.0.5, PHP 5)

pdf_new -- Creates a new pdf resource

Description

resource pdf_new ( )

Create a new PDF resource, using default error handling and memory management.

See also pdf_close().

Předcházející | Domů | Další
pdf_moveto | Nahoru | pdf_open_CCITT


pdf_open_CCITT

(PHP 4 >= 4.0.5, PHP 5)

pdf_open_CCITT -- Opens a new image file with raw CCITT data

Description

int pdf_open_CCITT ( resource pdfdoc, string filename, int width, int height, int BitReverse, int k, int Blackls1)

Open a raw CCITT image.

Předcházející | Domů | Další
pdf_new | Nahoru | pdf_open_file


pdf_open_file

(PHP 4 >= 4.0.5, PHP 5)

pdf_open_file -- Opens a new pdf object

Description

bool pdf_open_file ( resource pdfdoc [, string filename])

Create a new PDF file using the supplied file name. If filename is empty the PDF document will be generated in memory instead of on file. The result must be fetched by the client with the pdf_get_buffer() function. Vrací TRUE při úspěchu, FALSE při selhání.

The following example shows how to create a pdf document in memory and how to output it correctly.

Příklad 1. Creating a PDF document in memory

<?php

$pdf = pdf_new();

pdf_open_file($pdf);
pdf_begin_page($pdf, 595, 842);
pdf_set_font($pdf, "Times-Roman", 30, "host");
pdf_set_value($pdf, "textrendering", 1);
pdf_show_xy($pdf, "A PDF document created in memory!", 50, 750);
pdf_end_page($pdf);
pdf_close($pdf);

$data = pdf_get_buffer($pdf);

header("Content-type: application/pdf");
header("Content-disposition: inline; filename=test.pdf");
header("Content-length: " . strlen($data));

echo $data;

?>

Předcházející | Domů | Další
pdf_open_CCITT | Nahoru | pdf_open_gif


pdf_open_gif

pdf_open_gif -- Deprecated: Opens a GIF image

Description

This function is deprecated, use pdf_open_image() instead.

Předcházející | Domů | Další
pdf_open_file | Nahoru | pdf_open_image_file


pdf_open_image_file

(PHP 3 CVS only, PHP 4 , PHP 5)

pdf_open_image_file -- Reads an image from a file

Description

int pdf_open_image_file ( resource pdfdoc, string imagetype, string filename [, string stringparam [, string intparam]])

Open an image file. Supported types are jpeg, tiff, gif, and png. stringparam is either , mask, masked, or page. intparamis either 0, the image id of the applied mask, or the page.

Předcházející | Domů | Další
pdf_open_gif | Nahoru | pdf_open_image


pdf_open_image

(PHP 4 >= 4.0.5, PHP 5)

pdf_open_image -- Versatile function for images

Description

int pdf_open_image ( resource PDF-document, string imagetype, string source, string data, long length, int width, int height, int components, int bpc, string params)

Use image data from a variety of data sources. Supported types are jpeg, ccitt, raw. Supported sources are memory, fileref, url. len is only used when type is raw, params is only used when type is ccitt.

Předcházející | Domů | Další
pdf_open_image_file | Nahoru | pdf_open_jpeg


pdf_open_jpeg

pdf_open_jpeg -- Deprecated: Opens a JPEG image

Description

This function is deprecated, use pdf_open_image() instead.

Předcházející | Domů | Další
pdf_open_image | Nahoru | pdf_open_memory_image


pdf_open_memory_image

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

pdf_open_memory_image -- Opens an image created with PHP's image functions

Description

int pdf_open_memory_image ( resource pdfdoc, resource image)

The pdf_open_memory_image() function takes an image created with the PHP's image functions and makes it available for the pdf resource. The function returns a pdf image identifier.

Příklad 1. Including a memory image

<?php
$im = imagecreate(100, 100);
$col = imagecolorallocate($im, 80, 45, 190);
imagefill($im, 10, 10, $col);
$pim = pdf_open_memory_image($pdf, $im);
imagedestroy($im);
pdf_place_image($pdf, $pim, 100, 100, 1);
pdf_close_image($pdf, $pim);
?>

See also pdf_close_image() and pdf_place_image().

Předcházející | Domů | Další
pdf_open_jpeg | Nahoru | pdf_open_pdi_page


pdf_open_pdi_page

(PHP 4 >= 4.0.5, PHP 5)

pdf_open_pdi_page -- Prepare a page

Description

int pdf_open_pdi_page ( resource pdfdoc, int dochandle, int pagenumber, string pagelabel)

Prepare a page for later use with pdf_place_image()

Předcházející | Domů | Další
pdf_open_memory_image | Nahoru | pdf_open_pdi


pdf_open_pdi

(PHP 4 >= 4.0.5, PHP 5)

pdf_open_pdi -- Opens a PDF file

Description

int pdf_open_pdi ( resource pdfdoc, string filename, string stringparam, int intparam)

Opens an existing PDF document and prepares it for later use.

See also pdf_close_pdi().

Předcházející | Domů | Další
pdf_open_pdi_page | Nahoru | pdf_open_png


pdf_open_png

pdf_open_png -- Deprecated: Opens a PNG image

Description

This function is deprecated, use pdf_open_image() instead.

Předcházející | Domů | Další
pdf_open_pdi | Nahoru | pdf_open_tiff


pdf_open_tiff

pdf_open_tiff -- Deprecated: Opens a TIFF image

Description

This function is deprecated, use pdf_open_image() instead.

Předcházející | Domů | Další
pdf_open_png | Nahoru | pdf_open


pdf_open

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_open -- Otevřít nový PDF dokument

Popis

int pdf_open ( int file)

Funkce pdf_open() otvírá nový PDF dokument. Odpovídající soubor musí být otevřen funkcí fopen() a jeho deskriptor předán jako argument file. Pokud této funkci nepředáte žádné argumenty, dokument bude vytvořen v paměti a vrácen stránku po stránce buď na stdout (standardní výstup) nebo do browseru.

Poznámka: Návratová hodnota je potřeba jako první argument pro všechny ostatní funkce zapisující do PDF dokumentu.

Viz také fopen(), pdf_close().

Předcházející | Domů | Další
pdf_open_tiff | Nahoru | pdf_place_image


pdf_place_image

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

pdf_place_image -- Places an image on the page

Description

bool pdf_place_image ( resource pdfdoc, int image, float x, float y, float scale)

Place an image with the lower left corner at (x, y), and scale it. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
pdf_open | Nahoru | pdf_place_pdi_page


pdf_place_pdi_page

(PHP 4 >= 4.0.6, PHP 5)

pdf_place_pdi_page -- Places an image on the page

Description

bool pdf_place_pdi_page ( resource pdfdoc, int page, float x, float y, float sx, float sy)

Place a PDI page with the lower left corner at (x, y), and scale it. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
pdf_place_image | Nahoru | pdf_rect


pdf_rect

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_rect -- Draws a rectangle

Description

bool pdf_rect ( resource pdfdoc, float x, float y, float width, float height)

Draw a (width * height) rectangle at lower left (x, y). Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
pdf_place_pdi_page | Nahoru | pdf_restore


pdf_restore

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_restore -- Restores formerly saved environment

Description

bool pdf_restore ( resource pdfdoc)

Restore the most recently saved graphics state. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
pdf_rect | Nahoru | pdf_rotate


pdf_rotate

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_rotate -- Sets rotation

Description

bool pdf_rotate ( resource pdfdoc, float phi)

Rotate the coordinate system by phi degrees. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
pdf_restore | Nahoru | pdf_save


pdf_save

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_save -- Saves the current environment

Description

bool pdf_save ( resource pdfdoc)

Save the current graphics state. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
pdf_rotate | Nahoru | pdf_scale


pdf_scale

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_scale -- Sets scaling

Description

bool pdf_scale ( resource pdfdoc, float x-scale, float y-scale)

Scale the coordinate system. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
pdf_save | Nahoru | pdf_set_border_color


pdf_set_border_color

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

pdf_set_border_color -- Sets color of border around links and annotations

Description

bool pdf_set_border_color ( resource pdfdoc, float red, float green, float blue)

Set the border color for all kinds of annotations. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
pdf_scale | Nahoru | pdf_set_border_dash


pdf_set_border_dash

(PHP 4 >= 4.0.1, PHP 5)

pdf_set_border_dash -- Sets dash style of border around links and annotations

Description

bool pdf_set_border_dash ( resource pdfdoc, float black, float white)

Sets the border dash style for all kinds of annotations. Vrací TRUE při úspěchu, FALSE při selhání.

See also pdf_setdash().

Předcházející | Domů | Další
pdf_set_border_color | Nahoru | pdf_set_border_style


pdf_set_border_style

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

pdf_set_border_style -- Sets style of border around links and annotations

Description

bool pdf_set_border_style ( resource pdfdoc, string style, float width)

Sets the border style for all kinds of annotations. style is solid or dashed. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
pdf_set_border_dash | Nahoru | pdf_set_char_spacing


pdf_set_char_spacing

pdf_set_char_spacing -- Deprecated: Sets character spacing

Description

This function is deprecated, use pdf_set_value() instead.

Předcházející | Domů | Další
pdf_set_border_style | Nahoru | pdf_set_duration


pdf_set_duration

pdf_set_duration -- Deprecated: Sets duration between pages

Description

This function is deprecated, use pdf_set_value() instead.

Předcházející | Domů | Další
pdf_set_char_spacing | Nahoru | pdf_set_font


pdf_set_font

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_set_font -- Určit font a velikost

Popis

void pdf_set_font ( int pdf document, string font name, double size, string encoding [, int embed])

Funkce pdf_set_font() nastaví platný font, velikost, a kódování. Pokud používáte pdflib 0.6, budete muset poskytnout Adobe Font Metrics (afm soubory) pro daný font ve font cestě (default je ./fonts). Pokud používáte PHP 3 nebo pdflib ve verzi starší než 2.20, čtvrtý argument encoding může mít následující hodnoty: 0 = builtin, 1 = pdfdoc, 2 = macroman, 3 = macexpert, 4 = winansi. Při encoding větší než 4 a menší než 0 se použije winansi. Většinou je to správná volba. Pokud používáte PHP 4 a pdflib ve verzi >= 2.20, argument encoding se změnil na řetězec. Používejte 'winansi', 'builtin', 'host', 'macroman' atd. Pokud má poslední argument hodnotu 1, font se vloží do PDF dokumentu. Vložit font je obvykle dobrý napad, pokud tento font není příliš rozšířený a nemůžete zaručit, že osoba, která váš dokument čte, má přístup k fontům v dokumentu použitým. Font se vloží pouze jednou, i když voláte pdf_set_font() několikrát.

Poznámka: Pokud se má vytvořit validní PDF dokument, tato funkce se musí volat až po pdf_begin_page().

Poznámka: Pokud v .upr souboru odkazujete na nějaký font, ujistěte se, že jméno v afm souboru a jméno fontu jsou stejné. Jinak se font vloží vícekrát. (Díky Paulu Haddonovi za toto zjištění.)

Předcházející | Domů | Další
pdf_set_duration | Nahoru | pdf_set_horiz_scaling


pdf_set_horiz_scaling

pdf_set_horiz_scaling -- Sets horizontal scaling of text [deprecated]

Description

This function is deprecated, use pdf_set_value() instead.

Předcházející | Domů | Další
pdf_set_font | Nahoru | pdf_set_info_author


pdf_set_info_author

pdf_set_info_author -- Deprecated: Fills the author field of the document

Description

This function is deprecated, use pdf_set_info() instead.

Předcházející | Domů | Další
pdf_set_horiz_scaling | Nahoru | pdf_set_info_creator


pdf_set_info_creator

pdf_set_info_creator -- Deprecated: Fills the creator field of the document

Description

This function is deprecated, use pdf_set_info() instead.

Předcházející | Domů | Další
pdf_set_info_author | Nahoru | pdf_set_info_keywords


pdf_set_info_keywords

pdf_set_info_keywords -- Deprecated: Fills the keywords field of the document

Description

This function is deprecated, use pdf_set_info() instead.

Předcházející | Domů | Další
pdf_set_info_creator | Nahoru | pdf_set_info_subject


pdf_set_info_subject

pdf_set_info_subject -- Deprecated: Fills the subject field of the document

Description

This function is deprecated, use pdf_set_info() instead.

Předcházející | Domů | Další
pdf_set_info_keywords | Nahoru | pdf_set_info_title


pdf_set_info_title

pdf_set_info_title -- Deprecated: Fills the title field of the document

Description

This function is deprecated, use pdf_set_info() instead.

Předcházející | Domů | Další
pdf_set_info_subject | Nahoru | pdf_set_info


pdf_set_info

(PHP 4 >= 4.0.1, PHP 5)

pdf_set_info -- Vyplnit položku informací o dokumentu

Popis

void pdf_set_info ( int pdf document, string fieldname, string value)

Funkce pdf_set_info() vyplní informační pole PDF dokumentu. Možné hodnoty argumentu fieldname jsou 'Subject', 'Title', 'Creator', 'Author', 'Keywords' a jeden uživatelsky definovaný název. Může být volána před začátkem stránky.

Příklad 1. Zadání informací o dokumentu

<?php
$fd = fopen("test.pdf", "w");
$pdfdoc = pdf_open($fd);
pdf_set_info($pdfdoc, "Author", "Uwe Steinmann");
pdf_set_info($pdfdoc, "Creator", "Uwe Steinmann");
pdf_set_info($pdfdoc, "Title", "Testing Info Fields");
pdf_set_info($pdfdoc, "Subject", "Test");
pdf_set_info($pdfdoc, "Keywords", "Test, Fields");
pdf_set_info($pdfdoc, "CustomField", "What ever makes sense");
pdf_begin_page($pdfdoc, 595, 842);
pdf_end_page($pdfdoc);
pdf_close($pdfdoc);
?>

Poznámka:
      Tato funkce nahrazuje pdf_set_info_keywords(),
              pdf_set_info_title(),
              pdf_set_info_subject(),
              pdf_set_info_creator() a
              pdf_set_info_sybject().

Předcházející | Domů | Další
pdf_set_info_title | Nahoru | pdf_set_leading


pdf_set_leading

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_set_leading -- Nastavit vzdálenost mezi řádky

Popis

void pdf_set_leading ( int pdf document, double distance)

Funkce pdf_set_leading() nastavuje vzdálenost mezi řádky textu. Toto nastavení se použije, pokud se text tvoří pomocí pdf_continue_text().

Viz také pdf_continue_text().

Předcházející | Domů | Další
pdf_set_info | Nahoru | pdf_set_parameter


pdf_set_parameter

(PHP 4 , PHP 5)

pdf_set_parameter -- Nastavit určité parametry

Popis

void pdf_set_parameter ( int pdf document, string name, string value)

Funkce pdf_set_parameter() nastaví určité parametry pdflib, které jsou typu string.

Viz také pdf_get_value(),
         pdf_set_value(),
         pdf_get_parameter().

Předcházející | Domů | Další
pdf_set_leading | Nahoru | pdf_set_text_matrix


pdf_set_text_matrix

pdf_set_text_matrix -- Deprecated: Sets the text matrix

Description

This function is deprecated, use pdf_set_paramter() instead.

Předcházející | Domů | Další
pdf_set_parameter | Nahoru | pdf_set_text_pos


pdf_set_text_pos

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_set_text_pos -- Sets text position

Description

bool pdf_set_text_pos ( resource pdfdoc, float x, float y)

Set the text output position specified by x and y. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
pdf_set_text_matrix | Nahoru | pdf_set_text_rendering


pdf_set_text_rendering

pdf_set_text_rendering -- Deprecated: Determines how text is rendered

Description

This function is deprecated, use pdf_set_value() instead.

Předcházející | Domů | Další
pdf_set_text_pos | Nahoru | pdf_set_text_rise


pdf_set_text_rise

pdf_set_text_rise -- Deprecated: Sets the text rise

Description

This function is deprecated, use pdf_set_value() instead.

Předcházející | Domů | Další
pdf_set_text_rendering | Nahoru | pdf_set_value


pdf_set_value

(PHP 4 >= 4.0.1, PHP 5)

pdf_set_value -- Sets certain numerical value

Description

bool pdf_set_value ( resource pdfdoc, string key, float value)

Set the value of some PDFlib parameter with float type. Vrací TRUE při úspěchu, FALSE při selhání.

See also pdf_set_parameter().

Předcházející | Domů | Další
pdf_set_text_rise | Nahoru | pdf_set_word_spacing


pdf_set_word_spacing

pdf_set_word_spacing -- Deprecated: Sets spacing between words

Description

This function is deprecated, use pdf_set_value() instead.

Předcházející | Domů | Další
pdf_set_value | Nahoru | pdf_setcolor


pdf_setcolor

(PHP 4 >= 4.0.5, PHP 5)

pdf_setcolor -- Sets fill and stroke color

Description

bool pdf_setcolor ( resource pdfdoc, string type, string colorspace, float c1 [, float c2 [, float c3 [, float c4]]])

Set the current color space and color. Vrací TRUE při úspěchu, FALSE při selhání. The parameter type can be fill, stroke or both to specify that the color is set for filling, stroking or both filling and stroking. The parameter colorspace can be gray, rgb, cmyk, spot or pattern. The parameters c1, c2, c3 and c4 represent the color components for the color space specified by colorspace. Except as otherwise noted, the color components are floating-point values that range from 0 to 1.

For gray only c1 is used.

For rgb parameters c1, c2, and c3 specify the red, green and blue values respectively.

<?php
// Set fill and stroke colors to white.
pdf_setcolor($pdf, "both", "rgb", 1, 1, 1);
?>

For cmyk, parameters c1, c2, c3, and c4 are the cyan, magenta, yellow and black values, respectively.

<?php
// Set fill and stroke colors to black.
pdf_setcolor($pdf, "both", "cmyk", 0, 0, 0, 1);
?>

For spot, c1 should be a spot color handles returned by pdf_makespotcolor() and c2 is a tint value between 0 and 1.

For pattern, c1 should be a pattern handle returned by pdf_begin_pattern().

Předcházející | Domů | Další
pdf_set_word_spacing | Nahoru | pdf_setdash


pdf_setdash

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_setdash -- Sets dash pattern

Description

bool pdf_setdash ( resource pdfdoc, float b, float w)

Set the current dash pattern to b black and w white units. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
pdf_setcolor | Nahoru | pdf_setflat


pdf_setflat

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_setflat -- Sets flatness

Description

bool pdf_setflat ( resource pdfdoc, float flatness)

Sets the flatness to a value between 0 and 100 inclusive. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
pdf_setdash | Nahoru | pdf_setfont


pdf_setfont

(PHP 4 >= 4.0.5, PHP 5)

pdf_setfont -- Set the current font

Description

bool pdf_setfont ( resource pdfdoc, int font, float size)

Set the current font in the given size, using a font handle returned by pdf_findfont(). Vrací TRUE při úspěchu, FALSE při selhání.

See also pdf_findfont().

Předcházející | Domů | Další
pdf_setflat | Nahoru | pdf_setgray_fill


pdf_setgray_fill

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_setgray_fill -- Sets filling color to gray value

Description

bool pdf_setgray_fill ( resource pdfdoc, float gray)

Set the current fill color to a gray value between 0 and 1 inclusive. Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: PDFlib V4.0: Deprecated, use pdf_setcolor() instead.

Předcházející | Domů | Další
pdf_setfont | Nahoru | pdf_setgray_stroke


pdf_setgray_stroke

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_setgray_stroke -- Sets drawing color to gray value

Description

bool pdf_setgray_stroke ( resource pdfdoc, float gray)

Set the current stroke color to a gray value between 0 and 1 inclusive. Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: PDFlib V4.0: Deprecated, use pdf_setcolor() instead.

Předcházející | Domů | Další
pdf_setgray_fill | Nahoru | pdf_setgray


pdf_setgray

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_setgray -- Sets drawing and filling color to gray value

Description

bool pdf_setgray ( resource pdfdoc, float gray)

Set the current fill and stroke color. Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: PDFlib V4.0: Deprecated, use pdf_setcolor() instead.

Předcházející | Domů | Další
pdf_setgray_stroke | Nahoru | pdf_setlinecap


pdf_setlinecap

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_setlinecap -- Sets linecap parameter

Description

void pdf_setlinecap ( resource pdfdoc, int linecap)

Set the linecap parameter to a value between 0 and 2 inclusive.

Předcházející | Domů | Další
pdf_setgray | Nahoru | pdf_setlinejoin


pdf_setlinejoin

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_setlinejoin -- Sets linejoin parameter

Description

bool pdf_setlinejoin ( resource pdfdoc, int value)

Sets the line join parameter to a value between 0 and 2 inclusive. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
pdf_setlinecap | Nahoru | pdf_setlinewidth


pdf_setlinewidth

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_setlinewidth -- Sets line width

Description

void pdf_setlinewidth ( resource pdfdoc, float width)

Sets the current linewidth to width. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
pdf_setlinejoin | Nahoru | pdf_setmatrix


pdf_setmatrix

(PHP 4 >= 4.0.5, PHP 5)

pdf_setmatrix -- Sets current transformation matrix

Description

bool pdf_setmatrix ( resource pdfdoc, float a, float b, float c, float d, float e, float f)

Explicitly set the current transformation matrix. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
pdf_setlinewidth | Nahoru | pdf_setmiterlimit


pdf_setmiterlimit

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_setmiterlimit -- Sets miter limit

Description

bool pdf_setmiterlimit ( resource pdfdoc, float miter)

Set the miter limit to a value greater than or equal to 1. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
pdf_setmatrix | Nahoru | pdf_setpolydash


pdf_setpolydash

pdf_setpolydash -- Deprecated: Sets complicated dash pattern

Description

This function is deprecated, use pdf_setdash() instead.

Předcházející | Domů | Další
pdf_setmiterlimit | Nahoru | pdf_setrgbcolor_fill


pdf_setrgbcolor_fill

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_setrgbcolor_fill -- Sets filling color to rgb color value

Description

bool pdf_setrgbcolor_fill ( resource pdfdoc, float red_value, float green_value, float blue_value)

Set the current fill color to the supplied RGB values. Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: PDFlib V4.0: Deprecated, use pdf_setcolor() instead.

Předcházející | Domů | Další
pdf_setpolydash | Nahoru | pdf_setrgbcolor_stroke


pdf_setrgbcolor_stroke

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_setrgbcolor_stroke -- Sets drawing color to rgb color value

Description

bool pdf_setrgbcolor_stroke ( resource pdfdoc, float red_value, float green_value, float blue_value)

Set the current stroke color to the supplied RGB values. Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: PDFlib V4.0: Deprecated, use pdf_setcolor() instead.

Předcházející | Domů | Další
pdf_setrgbcolor_fill | Nahoru | pdf_setrgbcolor


pdf_setrgbcolor

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_setrgbcolor -- Sets drawing and filling color to rgb color value

Description

bool pdf_setrgbcolor ( resource pdfdoc, float red_value, float green_value, float blue_value)

Set the current fill and stroke color to the supplied RGB values. Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: PDFlib V4.0: Deprecated, use pdf_setcolor() instead.

Předcházející | Domů | Další
pdf_setrgbcolor_stroke | Nahoru | pdf_show_boxed


pdf_show_boxed

(PHP 4 , PHP 5)

pdf_show_boxed -- Vytisknout text v rámečku

Popis

int pdf_show_boxed ( int pdf document, string text, double x-coor, double y-coor, double width, double height, string mode [, string feature])

Funkce pdf_show_boxed() vytiskne řetězec text v rámečku s levým dolním rohem na (x-coor, y-coor). Rozměry rámečku jsou height x width. Argument mode determines how the text is type set. Pokud jsou width a height nula, mode může být "left", "right" nebo "center". Pokud jsou width nebo height různé od nuly, může být také "justify" nebo "fulljustify".

Pokud má argument feature hodnotu "blind", text se nezobrazí.

Vrací počet znaků které nebyly zpracovány, protože se nevešly do rámečku.

Viz také pdf_show(), pdf_show_xy().

Předcházející | Domů | Další
pdf_setrgbcolor | Nahoru | pdf_show_xy


pdf_show_xy

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_show_xy -- Vytisknout text na určené pozici

Popis

void pdf_show_xy ( int pdf document, string text, double x-coor, double y-coor)

Funkce pdf_show_xy() vytiskne řetězec text na pozici (x-coor, y-coor).

Viz také pdf_show(), pdf_show_boxed().

Předcházející | Domů | Další
pdf_show_boxed | Nahoru | pdf_show


pdf_show

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_show -- Umístit text na aktuální pozici

Popis

void pdf_show ( int pdf document, string text)

Funkce pdf_show() umístí řetězec text na současnou pozici s využitím aktuálního fontu.

Viz také pdf_show_xy(),
         pdf_show_boxed(),
         pdf_set_text_pos(),
         pdf_set_font().

Předcházející | Domů | Další
pdf_show_xy | Nahoru | pdf_skew


pdf_skew

(PHP 4 , PHP 5)

pdf_skew -- Skews the coordinate system

Description

bool pdf_skew ( resource pdfdoc, float alpha, float beta)

Skew the coordinate system in x and y direction by alpha and beta degrees. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
pdf_show | Nahoru | pdf_stringwidth


pdf_stringwidth

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_stringwidth -- Returns width of text using current font

Description

float pdf_stringwidth ( resource pdfdoc, string text [, int font [, float size]])

Returns the width of text using the last font set by pdf_setfont(). If the optional parameters font and size are specified, the width will be calculated using that font and size instead. Please note that font is a font handle returned by pdf_findfont().

Poznámka: Both the font and size parameters must be used together.

See also pdf_setfont() and pdf_findfont().

Předcházející | Domů | Další
pdf_skew | Nahoru | pdf_stroke


pdf_stroke

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_stroke -- Draws line along path

Description

bool pdf_stroke ( resource pdfdoc)

Stroke the path with the current color and line width, and clear it. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
pdf_stringwidth | Nahoru | pdf_translate


pdf_translate

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

pdf_translate -- Sets origin of coordinate system

Description

bool pdf_translate ( resource pdfdoc, float tx, float ty)

Translate the origin of the coordinate system.

Předcházející | Domů | Další
pdf_stroke | Nahoru | Funkce pro práci s Verisign Payflow Pro


Funkce pro práci s Verisign Payflow Pro

Manuál PHP
Předcházející Další

LXXXI. Funkce pro práci s Verisign Payflow Pro

Úvod

Toto rozšíření umožňuje zpracovávat kreditní karty a provádět jiné finanční transakce pomocí Verisign Payment Services (dříve Signio, http://www.verisign.com/products/payflow/pro/index.html).

Při využívání těchto funkcí můžete vynechat volání pfpro_init() a pfpro_cleanup(), tato extenze to udělá podle potřeby automaticky. Tyto funkce jsou ale přesto dostupné pro případ, že byste potřebovali zpracovávat velké množství transakcí a vyžadovali naprostou kontrolu nad touto knihovnou. Mezi pfpro_init() a pfpro_cleanup() můžete provést libovolné množství transakcí.

Tyto funkce byly přidány v PHP 4.0.2.

Poznámka: Tyto funkce poskytují pouze spojení s Verisign Payment Services. Kompletní detaily vyžadovaných parametrů viz Payflow Pro Developer's Guide.

Poznámka: Toto rozšíření není k dispozici na platformách Windows.

Požadavky

Budete potřebovat SDK pro vaši platformu, který se dá po registraci stáhnout z manažerského rozhraní. Pokud se chystáte používat toto rozšíření s webovým serverem s povoleným SSL nebo s jinými SSL komponentami (jako je rozšíření CURL+SSL), musíte stáhnout beta verzi SDK.

Pokud jste si stáhli SDK, zkopírujte následující soubory z lib adresáře této distribuce: pfpro.h do /usr/local/include a libpfpro.so do /usr/local/lib.

Instalace

Tyto funkce jsou dostupné pouze pokud bylo PHP zkompilováno s volbou --with-pfpro[=DIR].

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 1. Konfigurační volby pro Verisign Payflow Pro

Název | Výchozí hodnota | Lze změnit
pfpro.defaulthost/PFPRO_VERSION < 3 | "test.signio.com" | PHP_INI_ALL
pfpro.defaulthost | "test-payflow.verisign.com" | PHP_INI_ALL
pfpro.defaultport | "443" | PHP_INI_ALL
pfpro.defaulttimeout | "30" | PHP_INI_ALL
pfpro.proxyaddress | "" | PHP_INI_ALL
pfpro.proxyport | "" | PHP_INI_ALL
pfpro.proxylogon | "" | PHP_INI_ALL
pfpro.proxypassword | "" | PHP_INI_ALL
Pro bližší podrobnosti a definici PHP_INI_* konstant viz ini_set().

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Obsah
pfpro_cleanup -- Zavřít Payflow Pro knihovnu
pfpro_init -- Inicializovat Payflow Pro knihovnu
pfpro_process_raw -- Zpracovat raw transakci s Payflow Pro
pfpro_process -- Zpracovat transakci s Payflow Pro
pfpro_version -- Vrátit verzi Payflow Pro knihovny

Předcházející | Domů | Další
pdf_translate | Nahoru | pfpro_cleanup


pfpro_cleanup

(PHP 4 >= 4.0.2, PHP 5)

pfpro_cleanup -- Zavřít Payflow Pro knihovnu

Popis

void pfpro_cleanup ( void )

pfpro_cleanup() se používá k čistému vypnutí Payflow Pro knihovny. Měla by se volat po provedení všech transakcí a před ukončením skriptu. Tuto funkci nicméně volat nemusíte, tato extenze automaticky zavolá pfpro_cleanup() při ukončení skriptu.

Viz také pfpro_init().

Předcházející | Domů | Další
Funkce pro práci s Verisign Payflow Pro | Nahoru | pfpro_init


pfpro_init

(PHP 4 >= 4.0.2, PHP 5)

pfpro_init -- Inicializovat Payflow Pro knihovnu

Popis

void pfpro_init ( void )

pfpro_init() se používá k inicializaci Payflow Pro knihovny. Tuto funkci volat nemusíte, tato extenze automaticky zavolá pfpro_init() před první transakcí.

Viz také pfpro_cleanup().

Předcházející | Domů | Další
pfpro_cleanup | Nahoru | pfpro_process_raw


pfpro_process_raw

(PHP 4 >= 4.0.2, PHP 5)

pfpro_process_raw -- Zpracovat raw transakci s Payflow Pro

Popis

string pfpro_process_raw ( string parameters [, string address [, int port [, int timeout [, string proxy address [, int proxy port [, string proxy logon [, string proxy password]]]]]]])

Vrací řetězec obsahující odpověď.

pfpro_process_raw() zpracuje raw řetězec transakce s Payflow Pro. Opravdu byste ale měli používat pfpro_process(), protože pravidla kódování těchto transakcí jsou nestandardní.

První argument je v tomto případě řetězec obsahující raw požadavek na transakci. Všechny ostatní argumenty jsou stejné jako u pfpro_process(). Návratová hodnota je řetězec obsahující raw odpověď.

Poznámka: Kompletní detaily vyžadovaných parametrů a pravidel kódování viz Payflow Pro Developer's Guide. Dobře vám radíme, používejte radši pfpro_process().

Příklad 1. Ukázka Payflow Pro raw

<?php

pfpro_init();

$response = pfpro_process("USER=mylogin&PWD[5]=m&ndy&TRXTYPE=S&TENDER=C&AMT=1.50&ACCT=4111111111111111&EXPDATE=0904");

if (!$response) {
  die("Nepodařilo se spojit s Verisign.\n");
}

echo "Raw odpověď Verisignu byla ".$response;

pfpro_cleanup();

?>

Předcházející | Domů | Další
pfpro_init | Nahoru | pfpro_process


pfpro_process

(PHP 4 >= 4.0.2, PHP 5)

pfpro_process -- Zpracovat transakci s Payflow Pro

Popis

array pfpro_process ( array parameters [, string address [, int port [, int timeout [, string proxy address [, int proxy port [, string proxy logon [, string proxy password]]]]]]])

Vrací asociativní pole obsahující odpověď.

pfpro_process() zpracuje transakci s Payflow Pro. První argument je asociativní pole obsahující klíče a hodnoty, které se zakódují a odešlou zpracovateli.

Druhý argument je volitelný a určuje serveer, ke kterému se připojit. Default je "test.signio.com", takže pokud chcete zpracovávat skutečné transakce, budete chtít tento argument nastavit na "connect.signio.com".

Třetí argument určuje port, ke kterému se připojit. Default je 443, standardní SSL port.

Čtvrtý argument určuje v sekundách, jaký časový limit se má použít. Default je 30 sekund. Tento časový limit vstupuje v platnost v okamžiku spojení se zpracovatelem, a tak by váš skript mohl potenciálně běžet velmi dlouhou dobu, pokud by nastaly problémy s DNS nebo sítí.

Pátý argument určuje hostname vaší případné SSL proxy. Šestý argument specifikuje port.

Sedmý a osmý argument určují přihlašovací jméno a heslo na tuto proxy.

Tato funkce vrací asociativní pole klíčů a hodnot odpovědi.

Poznámka: Kompletní detaily vyžadovaných parametrů viz Payflow Pro Developer's Guide.

Příklad 1. Ukázka Payflow Pro

<?php

pfpro_init();

$transaction = array(USER	=> 'login',
             PWD	=> 'heslo',
             TRXTYPE	=> 'S',
             TENDER	=> 'C',
             AMT	=> 1.50,
             ACCT	=> '4111111111111111',
             EXPDATE	=> '0904'
             );

$response = pfpro_process($transaction);

if (!$response) {
  die("Nepodařilo se spojit s Verisign.\n");
}

echo "Response kód Verisignu byl ".$response[RESULT];
echo ", což znamená: ".$response[RESPMSG]."\n";

echo "\nPožadavek na transakci: ";
print_r($transaction);

echo "\nOdpověď: ";
print_r($response);

pfpro_cleanup();

?>

Předcházející | Domů | Další
pfpro_process_raw | Nahoru | pfpro_version


pfpro_version

(PHP 4 >= 4.0.2, PHP 5)

pfpro_version -- Vrátit verzi Payflow Pro knihovny

Popis

string pfpro_version ( void )

pfpro_version() vrací řetězec obsahující verzi Payflow Pro knihovny. V čase psaní tohoto manuálu to bylo L211.

Předcházející | Domů | Další
pfpro_process | Nahoru | PHP volby a informace


PHP volby a informace

Manuál PHP
Předcházející Další

LXXXII. PHP volby a informace

Úvod

Tyto funkce vám umožňují zjistit řadu informací o vlastním PHP, jako je konfigurace, nahraná rozšíření, verze a mnohé další. Naleznete zde také funkce, které vám umožňí nastavit volby běžícího PHP. Pravděporobně nejznámější funkce PHP - phpinfo() - se nachází právě v této sekci.

Požadavky

Tyto funkce jsou k dispozici jako součást standardního modulu, který je vždy dostupný.

Instalace

K používání těchto funkcí není třeba žádná instalace, jsou součástí jádra PHP.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 1. PHP Options/Inf Configuration Options

Name | Default | Changeable
assert.active | "1" | PHP_INI_ALL
assert.bail | "0" | PHP_INI_ALL
assert.warning | "1" | PHP_INI_ALL
assert.callback | NULL | PHP_INI_ALL
assert.quiet_eval | "0" | PHP_INI_ALL
enable_dl | "1" | PHP_INI_SYSTEM
max_execution_time | "30" | PHP_INI_ALL
max_input_time | "60" | PHP_INI_ALL
magic_quotes_gpc | "1" | PHP_INI_PERDIR|PHP_INI_SYSTEM
magic_quotes_runtime | "0" | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Zde je stručné vysvětlení konfiguračních direktiv.

assert.active boolean

Enable assert() evaluation.

assert.bail boolean

Terminate script execution on failed assertions.

assert.warning boolean

Issue a PHP warning for each failed assertion.

assert.callback string

user function to call on failed assertions

assert.quiet_eval boolean

Use the current setting of error_reporting() during assertion expression evaluation. If enabled, no errors are shown (implicit error_reporting(0)) while evaluation. If disabled, errors are shown according to the settings of error_reporting()

enable_dl boolean

This directive is really only useful in the Apache module version of PHP. You can turn dynamic loading of PHP extensions with dl() on and off per virtual server or per directory.

The main reason for turning dynamic loading off is security. With dynamic loading, it's possible to ignore all open_basedir restrictions. The default is to allow dynamic loading, except when using bezpečný režim. In bezpečný režim, it's always impossible to use dl().

max_execution_time integer

This sets the maximum time in seconds a script is allowed to run before it is terminated by the parser. This helps prevent poorly written scripts from tying up the server. The default setting is 30.

The maximum execution time is not affected by system calls, stream operations etc. Please see the set_time_limit() function for more details.

You can not change this setting with ini_set() when running in bezpečný režim. The only workaround is to turn off safe mode or by changing the time limit in the php.ini.

max_input_time integer

This sets the maximum time in seconds a script is allowed to receive input data, like POST, GET and file uploads. The default setting is 60.

magic_quotes_gpc boolean

Sets the magic_quotes state for GPC (Get/Post/Cookie) operations. When magic_quotes are on, all ' (single-quote), " (double quote), \ (backslash) and NUL's are escaped with a backslash automatically.

Poznámka: If the magic_quotes_sybase directive is also ON it will completely override magic_quotes_gpc. Having both directives enabled means only single quotes are escaped as ''. Double quotes, backslashes and NUL's will remain untouched and unescaped.

See also get_magic_quotes_gpc()

magic_quotes_runtime boolean

If magic_quotes_runtime is enabled, most functions that return data from any sort of external source including databases and text files will have quotes escaped with a backslash. If magic_quotes_sybase is also on, a single-quote is escaped with a single-quote instead of a backslash.

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Konstanty z tohoto seznamu jsou vždy dostupné jako součást jádra PHP.

Tabulka 2. Pre-defined phpcredits() constants

Constant | Value | Description
CREDITS_GROUP | 1 | A list of the core developers
CREDITS_GENERAL | 2 | General credits: Language design and concept, PHP 4.0 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 the 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.

Tabulka 3. phpinfo() constants

Constant | Value | Description
INFO_GENERAL | 1 | The configuration line, php.ini location, build date, Web Server, System and more.
INFO_CREDITS | 2 | PHP 4 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.

ASSERT_ACTIVE (integer)

ASSERT_CALLBACK (integer)

ASSERT_BAIL (integer)

ASSERT_WARNING (integer)

ASSERT_QUIET_EVAL (integer)

Obsah
assert_options -- Nastavit/získat různé příznaky výroků
assert -- Ověřit, jestli je výrok neplatný
dl -- Načíst extenzi PHP za běhu
extension_loaded -- zjistit, jestli je extenze načtená
get_cfg_var -- Získat hodnotu volby z konfigurace PHP
get_current_user -- Získat jméno vlastníka současného PHP skriptu
get_defined_constants -- Returns an associative array with the names of all the constants and their values
get_extension_funcs -- Vrátit pole jmen funkcí určitého modulu
get_include_path -- Gets the current include_path configuration option
get_included_files -- Vrátit pole jmen všech souborů, které byly ve skriptu načteny pomocí include_once()
get_loaded_extensions -- Vrátit pole se jmény všech zkompilovaných a načtených modulů (extenzí)
get_magic_quotes_gpc -- Získat současné aktivní nastavení magic_quotes_gpc
get_magic_quotes_runtime -- Vrátit současné aktivní nastavení magic_quotes_runtime
get_required_files -- Vrátit pole jmen všech souborů, které byly v určitém skriptu načteny pomocí require_once()
getenv -- Získat hodnotu systémové proměnné
getlastmod -- Získat čas poslení modifikace skriptu
getmygid -- Get PHP script owner's GID
getmyinode -- Získat inode současného skriptu
getmypid -- Získat process ID PHP
getmyuid -- Získat UID majitele PHP skriptu
getopt -- Gets options from the command line argument list
getrusage -- Získat informace o současném využití zdrojů
ini_alter -- Změnit hodnotu konfigurační volby
ini_get_all -- Gets all configuration options
ini_get -- Získat hodnotu konfigurační volby
ini_restore -- Obnovit původní hodnotu konfigurační volby
ini_set -- Změnit hodnotu konfigurační volby
main -- Dummy for main()
memory_get_usage -- Returns the amount of memory allocated to PHP
php_ini_scanned_files -- Return a list of .ini files parsed from the additional ini dir
php_logo_guid -- Get the logo guid
php_sapi_name -- Vrátit typ rozhraní mezi web serverem a PHP Returns the type of interface between web server and PHP
php_uname -- Vrátit informaci o operačním systému, na kterém bylo PHP zkompilováno
phpcredits -- Vytisknout credits pro PHP
phpinfo -- Vytisknout spoustu informací o PHP
phpversion -- Získat současnou verzi PHP
putenv -- Nastavit hodnotu systémové proměnné
restore_include_path -- Restores the value of the include_path configuration option
set_include_path -- Sets the include_path configuration option
set_magic_quotes_runtime -- Nastavit současnou aktivní hodnotu magic_quotes_runtime
set_time_limit -- Omezit maximální dobu průběhu skriptu
version_compare -- Compares two "PHP-standardized" version number strings
zend_logo_guid -- Získat zend guid
zend_version -- Gets the version of the current Zend engine

Předcházející | Domů | Další
pfpro_version | Nahoru | assert_options


assert_options

(PHP 4 , PHP 5)

assert_options -- Nastavit/získat různé příznaky výroků

Popis

mixed assert_options ( int what [, mixed value])

S použitím funkce assert_options() můžete nastavit různé řídící volby funkce assert(), nebo jen získat jejich současné nastavení.

Tabulka 1. Volby výroků

volba | ini parametr | výchozí hodnota | popis
ASSERT_ACTIVE | assert.active | 1 | zapne assert() vyhodnocování
ASSERT_WARNING | assert.warning | 1 | vytvoří PHP varování pro každý selhavší výrok
ASSERT_BAIL | assert.bail | 0 | ukončí provádění skiptu, pokud výrok selže
ASSERT_QUIET_EVAL | assert.quiet_eval | 0 | vypne error_reporting během vyhodnocování výrazů výroků
ASSERT_CALLBACK | assert_callback | (NULL) | uživatelská funkce, která se zavolá pro každý selhavší výrok

assert_options() vrací původní nastavení volby, nebo FALSE při chybě.

Předcházející | Domů | Další
PHP volby a informace | Nahoru | assert


assert

(PHP 4 , PHP 5)

assert -- Ověřit, jestli je výrok neplatný

Popis

int assert ( string|bool assertion)

assert() ověří předanou assertion a provede příslušnou akci, pokud je výsledek FALSE.

Pokud je předaná assertion řetězec, vyhodnotí se funkcí assert() jako PHP kód. Výhody řetězcové assertion jsou menší režie, když je kontrola výroků vypnutá, a zprávy obsahující assertion výraz, když výrok selže.

Kontrola výroků by se měla používat jen pro odlaďování skriptů. Můžete je použít na kontrolu podmínek, které by měly být vždycky TRUE, a které jinak indikují nějaké chyby v programování, nebo na kontrolu existence určitých vlastností, jako jsou funkce obsažené v extenzích, nebo určité systémové limity a vlastnosti.

Výroky by se neměly používat pro běžné operace jako kontrola vstupních parametrů. Jako základní pravidlo platí, že váž kód by měl fungovat správně, pokud není kontrola výroků aktivována.

Chování funkce assert() lze konfigurovat skrze assert_options() nebo .ini direktivy popsané na manuálové stránce této funkce.

Předcházející | Domů | Další
assert_options | Nahoru | dl


dl

(PHP 3, PHP 4 , PHP 5)

dl -- Načíst extenzi PHP za běhu

Popis

int dl ( string library)

Načte extenzi PHP definovanou v library. Viz také konfigurační direktivu extension_dir.

Předcházející | Domů | Další
assert | Nahoru | extension_loaded


extension_loaded

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

extension_loaded -- zjistit, jestli je extenze načtená

Popis

bool extension_loaded ( string name)

Vrací TRUE, pokud je extenze identifikovaná argumentem name načtena. Názvy různých extenzí můžete vidět, pokud použijete phpinfo().

Viz také phpinfo().

Poznámka: Tato funkce byla přidána v PHP 3.0.10.

Předcházející | Domů | Další
dl | Nahoru | get_cfg_var


get_cfg_var

(PHP 3, PHP 4 , PHP 5)

get_cfg_var -- Získat hodnotu volby z konfigurace PHP

Popis

string get_cfg_var ( string varname)

Vrátí současnou hodnotu konfigurační proměnné PHP určené argumentem varname, nebo FALSE pokud dojde k chybě.

Nevrací konfigurační hodnoty nastavené při kompilaci PHP a nečte konfigurační soubor Apache (použití php3_configuration_option direktiv).

Pokud chcete zjistit, jestli daný systém používá konfigurační soubor, zkuste získat hodnotu konfigurační volby cfg_file_path. Pokud je tato dostupná, používá se konfigurační soubor.

Předcházející | Domů | Další
extension_loaded | Nahoru | get_current_user


get_current_user

(PHP 3, PHP 4 , PHP 5)

get_current_user -- Získat jméno vlastníka současného PHP skriptu

Popis

string get_current_user ( void )

Vrátí jméno vlastníka současného PHP skriptu.

Viz také getmyuid(),
getmypid(), getmyinode(),
a getlastmod().

Předcházející | Domů | Další
get_cfg_var | Nahoru | get_defined_constants


get_defined_constants

(PHP 4 >= 4.1.0, PHP 5)

get_defined_constants -- Returns an associative array with the names of all the constants and their values

Description

array get_defined_constants ( void )

This function 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.

For example the line below:

<?php
print_r(get_defined_constants());
?>

will print a list like:

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
)

See also
get_loaded_extensions(),
get_defined_functions(), and
get_defined_vars().

Předcházející | Domů | Další
get_current_user | Nahoru | get_extension_funcs


get_extension_funcs

(PHP 4 , PHP 5)

get_extension_funcs -- Vrátit pole jmen funkcí určitého modulu

Popis

array get_extension_funcs ( string module_name)

Tato funkce vrací jména všech funkcí definovaných v modulu určeném argumentem module_name.

Například následující řádky

print_r (get_extension_funcs ("xml"));
print_r (get_extension_funcs ("gd"));

vytisknou seznam všech funkcí v modulech xml a gd.

Viz také: get_loaded_extensions()

Předcházející | Domů | Další
get_defined_constants | Nahoru | get_include_path


get_include_path

(PHP 4 >= 4.3.0, PHP 5)

get_include_path -- Gets the current include_path configuration option

Description

string get_include_path ( void )

Gets the current include_path configuration option value.

Příklad 1. get_include_path() example

<?php
// Works as of PHP 4.3.0
echo get_include_path();

// Works in all PHP versions
echo ini_get('include_path');
?>

See also ini_get(),
restore_include_path(),
set_include_path(), and
include().

Předcházející | Domů | Další
get_extension_funcs | Nahoru | get_included_files


get_included_files

(PHP 4 , PHP 5)

get_included_files -- Vrátit pole jmen všech souborů, které byly ve skriptu načteny pomocí include_once()

Popis

array get_included_files ( void )

Tato funkce vrátí asociativní pole jmen všech souborů, které byly načteny do skriptu pomocí include_once(). Indexy tohoto pole jsou názvy souborů použitých v include_once() bez přípony ".php".

Poznámka: Od verze PHP 4.0.1pl2 tato funkce předpokládá, že soubory v include_once končí příponou ".php", jiné přípony nefungují.

Viz také: require_once(),
include_once(),
get_required_files()

Předcházející | Domů | Další
get_include_path | Nahoru | get_loaded_extensions


get_loaded_extensions

(PHP 4 , PHP 5)

get_loaded_extensions -- Vrátit pole se jmény všech zkompilovaných a načtených modulů (extenzí)

Popis

array get_loaded_extensions ( void )

Tato funkce vrací jména všech modulů (extenzí) zkompilovaných a načtených do PHP interpretru.

Například následující řádek

print_r (get_loaded_extensions());

vypíše seznam podobný tomuto:

Array
(
    [0] => xml
    [1] => wddx
    [2] => standard
      [3] => session
      [4] => posix
      [5] => pgsql
      [6] => pcre
      [7] => gd
      [8] => ftp
      [9] => db
      [10] => Calendar
      [11] => bcmath
)

Viz také: get_extension_funcs().

Předcházející | Domů | Další
get_included_files | Nahoru | get_magic_quotes_gpc


get_magic_quotes_gpc

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

get_magic_quotes_gpc -- Získat současné aktivní nastavení magic_quotes_gpc

Popis

long get_magic_quotes_gpc ( void )

Vrátí současné aktivní nastavení magic_quotes_gpc. (0 pro vypnuto, 1 pro zapnuto).

Viz také get_magic_quotes_runtime(), set_magic_quotes_runtime().

Předcházející | Domů | Další
get_loaded_extensions | Nahoru | get_magic_quotes_runtime


get_magic_quotes_runtime

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

get_magic_quotes_runtime -- Vrátit současné aktivní nastavení magic_quotes_runtime

Popis

long get_magic_quotes_runtime ( void )

Vrátí současné aktivní nastavení magic_quotes_runtime. (0 pro vypnuto, 1 pro zapnuto).

Viz také get_magic_quotes_gpc(), set_magic_quotes_runtime().

Předcházející | Domů | Další
get_magic_quotes_gpc | Nahoru | get_required_files


get_required_files

(PHP 4 , PHP 5)

get_required_files -- Vrátit pole jmen všech souborů, které byly v určitém skriptu načteny pomocí require_once()

Popis

array get_required_files ( void )

Tato funkce vrátí asociativní pole jmen všech souborů, které byly načteny do probíhajícího skriptu pomocí require_once(). Indexy tohoto pole jsou názvy souborů použitých v require_once() bez přípony ".php".

Následující příklad

Příklad 1. Tisk require()ovaných a include()ovaných souborů

<?php

require_once ("local.php");
require_once ("../inc/global.php");

for ($i=1; $i<5; $i++)
  include "util".$i."php";

  echo "Required_once files\n";
  print_r (get_required_files());

  echo "Included_once files\n";
  print_r (get_included_files());
?>
vygeneruje následující výstup:

Required_once files
Array
(
  [local] => local.php
  [../inc/global] => /full/path/to/inc/global.php
)

Included_once files
Array
(
    [util1] => util1.php
    [util2] => util2.php
    [util3] => util3.php
    [util4] => util4.php
)

Poznámka: Od verze PHP 4.0.1pl2 tato funkce předpokládá, že soubory v required_once končí příponou ".php", jiné přípony nefungují.

Viz také: require_once(),
include_once(),
get_included_files()

Předcházející | Domů | Další
get_magic_quotes_runtime | Nahoru | getenv


getenv

(PHP 3, PHP 4 , PHP 5)

getenv -- Získat hodnotu systémové proměnné

Popis

string getenv ( string varname)

Vrátí hodnotu systémové proměnné varname, nebo FALSE při chybě.

$ip = getenv ("REMOTE_ADDR"); // získá IP adresu uživatele

Seznam všech systémových proměnných si můžete prohlédnout použitím phpinfo(). Význam mnoha z nich najdete v CGI specifikaci, zvláště na stránce o systémových proměnných.

Poznámka: Tato funkce nefunguje v ISAPI módu.

Předcházející | Domů | Další
get_required_files | Nahoru | getlastmod


getlastmod

(PHP 3, PHP 4 , PHP 5)

getlastmod -- Získat čas poslení modifikace skriptu

Popis

int getlastmod ( void )

Vrátí čas poslení modifikace současné stránky. Návratová hodnota je Unixový timestamp, vhodný jako vstup pro date(). Při chybě vrací FALSE.

Příklad 1. getlastmod() příklad

// outputs e.g. 'Last modified: March 04 1998 20:43:59.'
echo "Last modified: ".date ("F d Y H:i:s.", getlastmod());

See alse date(),
getmyuid(),
get_current_user(),
getmyinode(), and
getmypid().

Předcházející | Domů | Další
getenv | Nahoru | getmygid


getmygid

(PHP 4 >= 4.1.0, PHP 5)

getmygid -- Get PHP script owner's GID

Description

int getmygid ( void )

Returns the group ID of the current script, or FALSE on error.

See also getmyuid(),
getmypid(),
get_current_user(),
getmyinode(), and
getlastmod().

Předcházející | Domů | Další
getlastmod | Nahoru | getmyinode


getmyinode

(PHP 3, PHP 4 , PHP 5)

getmyinode -- Získat inode současného skriptu

Popis

int getmyinode ( void )

Vrátí inode současného skriptu, nebo FALSE při chybě.

Viz také getmyuid(),
get_current_user(),
getmypid(), and
getlastmod().

Poznámka: Tato funkce není podporována na Windows systémech.

Předcházející | Domů | Další
getmygid | Nahoru | getmypid


getmypid

(PHP 3, PHP 4 , PHP 5)

getmypid -- Získat process ID PHP

Popis

int getmypid ( void )

Vrátí process ID současného PHP procesu, nebo FALSE při chybě.

Varování

Process ID nejsou unikátní, a jsou tudíž slabým zdrojem entropie. Nedoporučujeme používat PIDy v prostředích závislých na bezpečnosti.

Viz také getmyuid(),
get_current_user(),
getmyinode(), a
getlastmod().

Předcházející | Domů | Další
getmyinode | Nahoru | getmyuid


getmyuid

(PHP 3, PHP 4 , PHP 5)

getmyuid -- Získat UID majitele PHP skriptu

Popis

int getmyuid ( void )

Vrátí user ID současného skriptu, nebo FALSE při chybě.

Viz také getmypid(),
get_current_user(),
getmyinode(), a
getlastmod().

Předcházející | Domů | Další
getmypid | Nahoru | getopt


getopt

(PHP 4 >= 4.3.0, PHP 5)

getopt -- Gets options from the command line argument list

Description

array getopt ( string options)

Returns an associative array of option / argument pairs based on the options format specified in options, or FALSE on an error.

<?php
// parse the command line ($GLOBALS['argv'])
$options = getopt("f:hp:");
?>

The options parameter may contain the following elements: individual characters, and characters followed by a colon to indicate an option argument is to follow. For example, an option string x recognizes an option -x, and an option string x: recognizes an option and argument -x argument. It does not matter if an argument has leading white space.

This function will return an array of option / argument pairs. If an option does not have an argument, the value will be set to FALSE.

Poznámka: Tato funkce není implementována na platformách Windows.

Předcházející | Domů | Další
getmyuid | Nahoru | getrusage


getrusage

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

getrusage -- Získat informace o současném využití zdrojů

Popis

array getrusage ( [int who])

Toto je rozhraní ke to getrusage(2). Vrátí asociativní pole obsahující všechna data vrácená systémovým voláním. Pokud je who 1, getrusage se zavolá s RUSAGE_CHILDREN.

Všechny položky jsou přístupné skrze svá dokumentovaná jména.

Příklad 1. Getrusage příklad

$dat = getrusage();
echo $dat["ru_nswap"];         # počet swapů
echo $dat["ru_majflt"];        # počet page faultů
echo $dat["ru_utime.tv_sec"];  # využitý uživatelský čas (sekundy)
echo $dat["ru_utime.tv_usec"]; # využitý uživatelský čas (mikrosekundy)
Další detaily viz man stránka getrusage(2) na vašem systému.

Předcházející | Domů | Další
getopt | Nahoru | ini_alter


ini_alter

(PHP 4 , PHP 5)

ini_alter -- Změnit hodnotu konfigurační volby

Popis

string ini_alter ( string varname, string newvalue)

Změní hodnotu konfigurační volby, vrátí FALSE při selhání, a předchozí hodnotu konfigurační volby při úspěchu.

Poznámka: Toto je alias k ini_set()

Viz také ini_get(),
ini_restore(),
ini_set()

Předcházející | Domů | Další
getrusage | Nahoru | ini_get_all


ini_get_all

(PHP 4 >= 4.2.0, PHP 5)

ini_get_all -- Gets all configuration options

Description

array ini_get_all ( [string extension])

Returns all the registered configuration options as an associative array. If the optional extension parameter is set, returns only options specific for that extension.

The returned array uses the directive name as the array key, with elements of that array being global_value (set in php.ini), local_value (perhaps set with ini_set() or .htaccess), and access (the access level). See the manual section on configuration changes for information on what access levels mean.

Poznámka: It's possible for a directive to have multiple access levels, which is why access shows the appropriate bitmask values.

Příklad 1. A ini_get_all() example

<?php
$inis = ini_get_all();

print_r($inis);

?>

Partial output may look like:

Array
(
    [allow_call_time_pass_reference] => Array
    (
        [global_value] => 1
        [local_value] => 1
        [access] => 6
    )
    [allow_url_fopen] => Array
    (
        [global_value] => 1
        [local_value] => 1
        [access] => 7
    )

    ...

)

See also: ini_get(),
ini_restore(),
ini_set(),
get_loaded_extensions(), and
phpinfo().

Předcházející | Domů | Další
ini_alter | Nahoru | ini_get


ini_get

(PHP 4 , PHP 5)

ini_get -- Získat hodnotu konfigurační volby

Popis

string ini_get ( string varname)

Vrátí hodnotu konfigurační volby při úspěchu, FALSE při selhání.

Viz také ini_alter(),
ini_restore(),
ini_set()

Předcházející | Domů | Další
ini_get_all | Nahoru | ini_restore


ini_restore

(PHP 4 , PHP 5)

ini_restore -- Obnovit původní hodnotu konfigurační volby

Popis

string ini_restore ( string varname)

Obnoví původní hodnotu konfigurační volby.

Viz také ini_alter(),
ini_get(),
ini_set()

Předcházející | Domů | Další
ini_get | Nahoru | ini_set


ini_set

(PHP 4 , PHP 5)

ini_set -- Změnit hodnotu konfigurační volby

Popis

string ini_set ( string varname, string newvalue)

Změní hodnotu konfigurační volby, vrátí FALSE při selhání, a předchozí hodnotu konfigurační volby při úspěchu.

Viz také ini_alter(),
ini_get(),
ini_restore()

Předcházející | Domů | Další
ini_restore | Nahoru | main


main

main -- Dummy for main()

Description

There is no function named main() except in the PHP source. In PHP 4.3.0, a new type of error handling in the PHP source (php_error_docref) was introduced. One feature is to provide links to a manual page in PHP error messages when the PHP directives html_errors (on by default) and docref_root (on by default until PHP 4.3.2) are set.

Sometimes error messages refer to a manual page for the function main() which is why this page exists. Please add a user comment below that mentions what PHP function caused the error that linked to main() and it will be fixed and properly documented.

Tabulka 1. Known errors that point to main()

Function name | No longer points here as of
include() | 4.3.2
include_once() | 4.3.2
require() | 4.3.2
require_once() | 4.3.2

See also html_errors and display_errors.

Předcházející | Domů | Další
ini_set | Nahoru | memory_get_usage


memory_get_usage

(PHP 4 >= 4.3.2, PHP 5)

memory_get_usage -- Returns the amount of memory allocated to PHP

Description

int memory_get_usage ( void )

Returns the amount of memory, in bytes, that's currently being allocated to your PHP script.

memory_get_usage() will only be defined if your PHP is compiled with the --enable-memory-limit configuration option.

Příklad 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

?>

See also memory_limit.

Předcházející | Domů | Další
main | Nahoru | php_ini_scanned_files


php_ini_scanned_files

(PHP 4 >= 4.3.0, PHP 5)

php_ini_scanned_files -- Return a list of .ini files parsed from the additional ini dir

Description

string php_ini_scanned_files ( void )

php_ini_scanned_files() returns a comma-separated list of configuration files parsed after php.ini. These files are found in a directory defined by the --with-config-file-scan-dir. option which is set during compilation.

Returns a comma-separated string of .ini files on success. If the directive --with-config-files-scan-dir wasn'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().

The returned configuration files also include the path as declared in the --with-config-file-scan-dir directive. Also, each comma is followed by a newline.

Příklad 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";
        }
    }
}
?>

See also ini_set() and phpinfo().

Předcházející | Domů | Další
memory_get_usage | Nahoru | php_logo_guid


php_logo_guid

(PHP 4 , PHP 5)

php_logo_guid -- Get the logo guid

Popis

string php_logo_guid ( void )

Poznámka: Tato funkcionalita byla přidána v PHP 4 Beta 4.

Viz také phpinfo().
phpversion(),
phpcredits()

Předcházející | Domů | Další
php_ini_scanned_files | Nahoru | php_sapi_name


php_sapi_name

(PHP 4 >= 4.0.1, PHP 5)

php_sapi_name -- Vrátit typ rozhraní mezi web serverem a PHP Returns the type of interface between web server and PHP

Popis

string php_sapi_name ( void )

php_sapi_name() vrátí řetězec popisující malými písmeny typ rozhraní mezi web serverem a PHP (Server API, SAPI). U CGI PHP je tento řetězec "cgi", u mod_php pro Apache je tento řetězec "apache" a tak dále.

Příklad 1. php_sapi_name() Example

$sapi_type = php_sapi_name();
if ($sapi_type == "cgi")
  print "Používáte CGI PHP\n";
else
  print "Nepoužíváte CGI PHP\n";

Předcházející | Domů | Další
php_logo_guid | Nahoru | php_uname


php_uname

(PHP 4 >= 4.0.2, PHP 5)

php_uname -- Vrátit informaci o operačním systému, na kterém bylo PHP zkompilováno

Popis

string php_uname ( void )

php_uname() vrátí řetězec s popisem operačního systému, na kterém bylo PHP zkompilováno.

Příklad 1. php_uname() Example

if (substr(php_uname(), 0, 7) == "Windows") {
  die("Pardon, tento skript na Windows nefunguje.\n");
}

Předcházející | Domů | Další
php_sapi_name | Nahoru | phpcredits


phpcredits

(PHP 4 , PHP 5)

phpcredits -- Vytisknout credits pro PHP

Popis

void phpcredits ( int flag)

Tato funkce vytiskne credits vč. seznamu vývojářů PHP, modulů, atd. Generuje příslušný HTML kód, kterým se tyto informace vkládají do stránky. Je třeba předat argument indikující co se vytiskne (předdefinovaná konstanta flag, viz níže). Například k vytištění všeobecných credits můžete někde ve svém kódu použít:

...
phpcredits(CREDITS_GENERAL);
...

A pokud chcete vytisknout užší kruh vývojářů a dokumentační skupinu na samostatné stránce, použijte:

<?php
phpcredits(CREDITS_GROUP + CREDITS_DOCS + CREDITS_FULLPAGE);
?>

A pokud chcete vložit všechny credits do vlastní stránky, pomůže vám následující kód:

<html>
 <head>
  <title>Má stránka s credits</title>
 </head>
 <body>
  <?php
    // váš vlastní kód
    phpcredits(CREDITS_ALL + CREDITS_FULLPAGE);
    // další kód
    ?>
 </body>
</html>

Tabulka 1. Předdefinované phpcredits() příznaky

název | popis
CREDITS_ALL | Všechny credits, ekvivalentní k: CREDITS_DOCS + CREDITS_GENERAL + CREDITS_GROUP + CREDITS_MODULES + CREDITS_FULLPAGE. Vygeneruje kompletní samostatnou HTML stránku s příslušnými tagy.
CREDITS_DOCS | Credits dokumentačního týmu
CREDITS_FULLPAGE | Obvykle se používá v kombinaci s jinými příznaky. Indikuje, že se má vytisknout kompletní samostatná HTML stránka, včetně informací indikovaných jinými příznaky.
CREDITS_GENERAL | Všeobecné credits: Design a koncept jazyka, autoři PHP 4.0 a SAPI modul.
CREDITS_GROUP | Seznam užšího kruhu vývojářů
CREDITS_MODULES | Seznam rozšiřujících modulů (extenzí) PHP a jejich autorů
CREDITS_SAPI | Seznam server API modulů PHP a jejich autorů

Viz také phpinfo(),
phpversion(),
php_logo_guid().

Předcházející | Domů | Další
php_uname | Nahoru | phpinfo


phpinfo

(PHP 3, PHP 4 , PHP 5)

phpinfo -- Vytisknout spoustu informací o PHP

Popis

int phpinfo ( [int what])

Vytiskne velké množství informací o současném stavu PHP. To zahrnuje informace o kompilačních volbách a extenzích, verzi PHP, informaci o serveru a systémů (pokud je PHP zkompilováno jako modul), PHP prostředí, verzi OS, cesty, hlavní a lokální hodnoty konfiguračních voleb, HTTP hlavičky, a PHP licenci.

Výstup se dá upravit předáním jednou nebo více z následujících hodnot uložených ve volitelném argumentu what.

  • INFO_GENERAL

  • INFO_CREDITS

  • INFO_CONFIGURATION

  • INFO_MODULES

  • INFO_ENVIRONMENT

  • INFO_VARIABLES

  • INFO_LICENSE

  • INFO_ALL

Viz také phpversion(),
phpcredits(),
php_logo_guid()

Předcházející | Domů | Další
phpcredits | Nahoru | phpversion


phpversion

(PHP 3, PHP 4 , PHP 5)

phpversion -- Získat současnou verzi PHP

Popis

string phpversion ( void )

Vrátí řetězec obsahující verzi právě běžícího PHP parseru.

Příklad 1. phpversion() example

// prints e.g. 'Současná verze PHP: 3.0rel-dev'
echo "Současná verze PHP: ".phpversion();

Viz také phpinfo(),
phpcredits(),
php_logo_guid()

Předcházející | Domů | Další
phpinfo | Nahoru | putenv


putenv

(PHP 3, PHP 4 , PHP 5)

putenv -- Nastavit hodnotu systémové proměnné

Popis

void putenv ( string setting)

Přidá setting do prostředí serveru.

Příklad 1. Nastavení systémové proměnné

putenv ("UNIQID=$uniqid");

Předcházející | Domů | Další
phpversion | Nahoru | restore_include_path


restore_include_path

(PHP 4 >= 4.3.0, PHP 5)

restore_include_path -- Restores the value of the include_path configuration option

Description

void restore_include_path ( void )

Restores the include_path configuration option back to its original master value as set in php.ini

Příklad 1. restore_include_path() example

<?php

echo get_include_path();  // .:/usr/local/lib/php

set_include_path('/inc');

echo get_include_path();  // /inc

// Works as of PHP 4.3.0
restore_include_path();

// Works in all PHP versions
ini_restore('include_path');

echo get_include_path();  // .:/usr/local/lib/php

?>

See also ini_restore(),
set_include_path(),
get_include_path(), and
include().

Předcházející | Domů | Další
putenv | Nahoru | set_include_path


set_include_path

(PHP 4 >= 4.3.0, PHP 5)

set_include_path -- Sets the include_path configuration option

Description

string set_include_path ( string new_include_path)

Sets the include_path configuration option for the duration of the script. Returns the old include_path on success or FALSE on failure.

Příklad 1. set_include_path() example

<?php
// Works as of PHP 4.3.0
set_include_path('/inc');

// Works in all PHP versions
ini_set('include_path', '/inc');
?>

See also ini_set(),
get_include_path(),
restore_include_path(), and
include().

Předcházející | Domů | Další
restore_include_path | Nahoru | set_magic_quotes_runtime


set_magic_quotes_runtime

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

set_magic_quotes_runtime -- Nastavit současnou aktivní hodnotu magic_quotes_runtime

Popis

long set_magic_quotes_runtime ( int new_setting)

Nastaví současnou aktivní konfigurační volby magic_quotes_runtime. (0 vypnuto, 1 zapnuto)

Viz také get_magic_quotes_gpc(), get_magic_quotes_runtime().

Předcházející | Domů | Další
set_include_path | Nahoru | set_time_limit


set_time_limit

(PHP 3, PHP 4 , PHP 5)

set_time_limit -- Omezit maximální dobu průběhu skriptu

Popis

void set_time_limit ( int seconds)

Určí počet sekund po které může skript běžet. Pokud je dosaženo tohoto času, skript vrátí fatální chybu. Standardní limit je 30 sekund, nebo, pokud existuje, hodnota direktivy max_execution_time definovaná v konfiguračním souboru. Pokud je seconds nula, neexistuje žádný časový limit.

set_time_limit() při svém zavolání restartuje čítač času od nuly. Jinými slovy, pokud je limit standardních šé sekund a po 25 sekundách provádění skriptu dojde k volání set_time_limit(20), tento skript poběží celkem 45 sekund předtím, než skončí na časovém limitu.

Všimněte si, že set_time_limit() nemá žádný účinek, když PHP běží v bezpečném módu. Obejít to lz jedine vypnutím bezpečného módu nebo změnou časového limitu v konfiguračním souboru.

Předcházející | Domů | Další
set_magic_quotes_runtime | Nahoru | version_compare


version_compare

(PHP 4 >= 4.1.0, PHP 5)

version_compare -- Compares two "PHP-standardized" version number strings

Description

int version_compare ( string version1, string version2 [, string operator])

version_compare() compares two "PHP-standardized" version number strings. This is useful if you would like to write programs working only on some versions of PHP.

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.

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 splits the results like if you were using explode('.', $ver). Then it compares the parts starting from left to right. If a part contains special version strings these are handled in the following order: dev < alpha = a < beta = b < RC < pl. 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.

If you specify the third optional operator argument, you can test for a particular relationship. The possible operators are: <, lt, <=, le, >, gt, >=, ge, ==, =, eq, !=, <>, ne respectively. Using this argument, the function will return 1 if the relationship is the one specified by the operator, 0 otherwise.

Příklad 1. version_compare() example

<?php
// prints -1
echo version_compare("4.0.4", "4.0.6");

// these all print 1
echo version_compare("4.0.4", "4.0.6", "<");
echo version_compare("4.0.6", "4.0.6", "eq");
?>

Předcházející | Domů | Další
set_time_limit | Nahoru | zend_logo_guid


zend_logo_guid

(PHP 4 , PHP 5)

zend_logo_guid -- Získat zend guid

Popis

string zend_logo_guid ( void )

Poznámka: Tato funkcionalita byla přidána v PHP 4 Beta 4.

Předcházející | Domů | Další
version_compare | Nahoru | zend_version


zend_version

(PHP 4 , PHP 5)

zend_version -- Gets the version of the current Zend engine

Description

string zend_version ( void )

Returns a string containing the version of the currently running Zend Engine.

Příklad 1. zend_version() example

<?php
// prints e.g. 'Zend engine version: 1.0.4'
echo "Zend engine version: " . zend_version();
?>

See also phpinfo(),
phpcredits(),
php_logo_guid(), and
phpversion().

Předcházející | Domů | Další
zend_logo_guid | Nahoru | POSIX Functions


POSIX Functions

Manuál PHP
Předcházející Další

LXXXIII. POSIX Functions

Úvod

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. POSIX.1 for example defined the open(), read(), write() and close() functions, too, which traditionally have been part of PHP 3 for a long time. Some more system specific functions have not been available before, though, and this module tries to remedy this by providing easy access to these functions.

Varování

Sensitive data can be retrieved with the POSIX functions, e.g. posix_getpwnam() and friends. None of the POSIX function perform any kind of access checking when safe mode is enabled. It's therefore strongly advised to disable the POSIX extension at all (use --disable-posix in your configure line) if you're operating in such an environment.

Poznámka: Toto rozšíření není k dispozici na platformách Windows.

Instalace

POSIX functions are enabled by default. You can disable POSIX-like functions with --disable-posix.

Viz také

The section about Process Control Functions maybe of interest for you.

Obsah
posix_ctermid -- Get path name of controlling terminal
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_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_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_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_times -- Get process times
posix_ttyname -- Determine terminal device name
posix_uname -- Get system name

Předcházející | Domů | Další
zend_version | Nahoru | posix_ctermid


posix_ctermid

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_ctermid -- Get path name of controlling terminal

Description

string posix_ctermid ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
POSIX Functions | Nahoru | posix_get_last_error


posix_get_last_error

(PHP 4 >= 4.2.0, PHP 5)

posix_get_last_error -- Retrieve the error number set by the last posix function that failed.

Description

int posix_get_last_error ( void )

Returns the errno (error number) set by the last posix function that failed. If no errors exist, 0 is returned. If you're wanting the system error message associated with the errno, use posix_strerror().

See also posix_strerror().

Předcházející | Domů | Další
posix_ctermid | Nahoru | posix_getcwd


posix_getcwd

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_getcwd -- Pathname of current directory

Description

string posix_getcwd ( void )

posix_getcwd() returns the absolute pathname of the script's current working directory. posix_getcwd() returns FALSE on error.

Předcházející | Domů | Další
posix_get_last_error | Nahoru | posix_getegid


posix_getegid

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

posix_getegid -- Return the effective group ID of the current process

Description

int posix_getegid ( void )

Return the numeric effective group ID of the current process. See also posix_getgrgid() for information on how to convert this into a useable group name.

Předcházející | Domů | Další
posix_getcwd | Nahoru | posix_geteuid


posix_geteuid

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

posix_geteuid -- Return the effective user ID of the current process

Description

int posix_geteuid ( void )

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.

Předcházející | Domů | Další
posix_getegid | Nahoru | posix_getgid


posix_getgid

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

posix_getgid -- Return the real group ID of the current process

Description

int posix_getgid ( void )

Return the numeric real group ID of the current process. See also posix_getgrgid() for information on how to convert this into a useable group name.

Předcházející | Domů | Další
posix_geteuid | Nahoru | posix_getgrgid


posix_getgrgid

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_getgrgid -- Return info about a group by group id

Description

array posix_getgrgid ( int gid)

Returns an array of information about a group and FALSE on failure. If gid isn't a number then NULL is returned and an E_WARNING level error is generated.

Příklad 1. Example use of posix_getgrgid()

<?php

$groupid   = posix_getegid();
$groupinfo = posix_getgrgid($groupid);

print_r($groupinfo);

?>

An example output:

Array
(
    [name]    => toons
    [passwd]  => x
    [members] => Array
        (
            [0] => tom
            [1] => jerry
        )
    [gid]     => 42
)

Poznámka: As of PHP 4.2.0, members is returned as an array of member usernames in the group. Before this time it was simply an integer (the number of members in the group) and the member names were returned with numerical indices.

See also posix_getegid(),
filegroup(),
stat(), and
safe_mode_gid.

Předcházející | Domů | Další
posix_getgid | Nahoru | posix_getgrnam


posix_getgrnam

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_getgrnam -- Return info about a group by name

Description

array posix_getgrnam ( string name)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
posix_getgrgid | Nahoru | posix_getgroups


posix_getgroups

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

posix_getgroups -- Return the group set of the current process

Description

array posix_getgroups ( void )

Returns an array of integers containing the numeric group ids of the group set of the current process. See also posix_getgrgid() for information on how to convert this into useable group names.

Předcházející | Domů | Další
posix_getgrnam | Nahoru | posix_getlogin


posix_getlogin

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_getlogin -- Return login name

Description

string posix_getlogin ( void )

Returns the login name of the user owning the current process. See posix_getpwnam() for information how to get more information about this user.

Předcházející | Domů | Další
posix_getgroups | Nahoru | posix_getpgid


posix_getpgid

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

posix_getpgid -- Get process group id for job control

Description

int posix_getpgid ( int pid)

Returns the process group identifier of the process pid.

This is not a POSIX function, but is common on BSD and System V systems. If your system does not support this function at system level, this PHP function will always return FALSE.

Předcházející | Domů | Další
posix_getlogin | Nahoru | posix_getpgrp


posix_getpgrp

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

posix_getpgrp -- Return the current process group identifier

Description

int posix_getpgrp ( void )

Return the process group identifier of the current process. See POSIX.1 and the getpgrp(2) manual page on your POSIX system for more information on process groups.

Předcházející | Domů | Další
posix_getpgid | Nahoru | posix_getpid


posix_getpid

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

posix_getpid -- Return the current process identifier

Description

int posix_getpid ( void )

Return the process identifier of the current process.

Předcházející | Domů | Další
posix_getpgrp | Nahoru | posix_getppid


posix_getppid

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

posix_getppid -- Return the parent process identifier

Description

int posix_getppid ( void )

Return the process identifier of the parent process of the current process.

Předcházející | Domů | Další
posix_getpid | Nahoru | posix_getpwnam


posix_getpwnam

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_getpwnam -- Return info about a user by username

Description

array posix_getpwnam ( string username)

Returns an associative array containing information about a user referenced by an alphanumeric username, passed in the username parameter.

The array elements returned are:

Tabulka 1. 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 her 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.

Předcházející | Domů | Další
posix_getppid | Nahoru | posix_getpwuid


posix_getpwuid

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_getpwuid -- Return info about a user by user id

Description

array posix_getpwuid ( int uid)

Returns an associative array containing information about a user referenced by a numeric user ID, passed in the uid parameter.

The array elements returned are:

Tabulka 1. 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 her 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 uid 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.

Předcházející | Domů | Další
posix_getpwnam | Nahoru | posix_getrlimit


posix_getrlimit

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

posix_getrlimit -- Return info about system resource limits

Description

array posix_getrlimit ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
posix_getpwuid | Nahoru | posix_getsid


posix_getsid

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

posix_getsid -- Get the current sid of the process

Description

int posix_getsid ( int pid)

Return the sid of the process pid. If pid is 0, the sid of the current process is returned.

This is not a POSIX function, but is common on System V systems. If your system does not support this function at system level, this PHP function will always return FALSE.

Předcházející | Domů | Další
posix_getrlimit | Nahoru | posix_getuid


posix_getuid

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

posix_getuid -- Return the real user ID of the current process

Description

int posix_getuid ( void )

Return the numeric real user ID of the current process. See also posix_getpwuid() for information on how to convert this into a useable username.

Předcházející | Domů | Další
posix_getsid | Nahoru | posix_isatty


posix_isatty

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_isatty -- Determine if a file descriptor is an interactive terminal

Description

bool posix_isatty ( int fd)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
posix_getuid | Nahoru | posix_kill


posix_kill

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_kill -- Send a signal to a process

Description

bool posix_kill ( int pid, int sig)

Send the signal sig to the process with the process identifier pid. Returns FALSE, if unable to send the signal, TRUE otherwise.

See also the kill(2) manual page of your POSIX system, which contains additional information about negative process identifiers, the special pid 0, the special pid -1, and the signal number 0.

Předcházející | Domů | Další
posix_isatty | Nahoru | posix_mkfifo


posix_mkfifo

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_mkfifo -- Create a fifo special file (a named pipe)

Description

bool posix_mkfifo ( string pathname, int mode)

posix_mkfifo() creates a special FIFO file which exists in the file system and acts as a bidirectional communication endpoint for processes.

The second parameter mode 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).

Poznámka: Pokud je zapnut bezpečný režim (safe-mode), PHP kontroluje, zda adresář, ve kterém pracujete, má stejné UID jako spuštěný skript.

Předcházející | Domů | Další
posix_kill | Nahoru | posix_setegid


posix_setegid

(PHP 4 >= 4.0.2, PHP 5)

posix_setegid -- Set the effective GID of the current process

Description

bool posix_setegid ( int gid)

Set the effective group ID of the current process. This is a privileged function and you need appropriate privileges (usually root) on your system to be able to perform this function.

Returns TRUE on success, FALSE otherwise.

Předcházející | Domů | Další
posix_mkfifo | Nahoru | posix_seteuid


posix_seteuid

(PHP 4 >= 4.0.2, PHP 5)

posix_seteuid -- Set the effective UID of the current process

Description

bool posix_seteuid ( int uid)

Set the real user ID of the current process. This is a privileged function and you need appropriate privileges (usually root) on your system to be able to perform this function.

Returns TRUE on success, FALSE otherwise. See also posix_setgid().

Předcházející | Domů | Další
posix_setegid | Nahoru | posix_setgid


posix_setgid

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_setgid -- Set the GID of the current process

Description

bool posix_setgid ( int gid)

Set the real group ID of the current process. This is a privileged function and you need appropriate privileges (usually root) on your system to be able to perform this function. The appropriate order of function calls is posix_setgid() first, posix_setuid() last.

Returns TRUE on success, FALSE otherwise.

Předcházející | Domů | Další
posix_seteuid | Nahoru | posix_setpgid


posix_setpgid

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_setpgid -- set process group id for job control

Description

int posix_setpgid ( int pid, int pgid)

Let the process pid join the process group pgid. See POSIX.1 and the setsid(2) manual page on your POSIX system for more informations on process groups and job control. Returns TRUE on success, FALSE otherwise.

Předcházející | Domů | Další
posix_setgid | Nahoru | posix_setsid


posix_setsid

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_setsid -- Make the current process a session leader

Description

int posix_setsid ( void )

Make the current process a session leader. See POSIX.1 and the setsid(2) manual page on your POSIX system for more informations on process groups and job control. Returns the session id.

Předcházející | Domů | Další
posix_setpgid | Nahoru | posix_setuid


posix_setuid

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_setuid -- Set the UID of the current process

Description

bool posix_setuid ( int uid)

Set the real user ID of the current process. This is a privileged function and you need appropriate privileges (usually root) on your system to be able to perform this function.

Returns TRUE on success, FALSE otherwise. See also posix_setgid().

Předcházející | Domů | Další
posix_setsid | Nahoru | posix_strerror


posix_strerror

(PHP 4 >= 4.2.0, PHP 5)

posix_strerror -- Retrieve the system error message associated with the given errno.

Description

string posix_strerror ( int errno)

Returns the POSIX system error message associated with the given errno. If errno is 0, then the string "Success" is returned. The function posix_get_last_error() is used for retrieving the last POSIX errno.

See also posix_get_last_error().

Předcházející | Domů | Další
posix_setuid | Nahoru | posix_times


posix_times

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_times -- Get process times

Description

array posix_times ( void )

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.

Předcházející | Domů | Další
posix_strerror | Nahoru | posix_ttyname


posix_ttyname

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

posix_ttyname -- Determine terminal device name

Description

string posix_ttyname ( int fd)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
posix_times | Nahoru | posix_uname


posix_uname

(PHP 3>= 3.0.10, PHP 4 , PHP 5)

posix_uname -- Get system name

Description

array posix_uname ( void )

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. php.net)

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.

Posix requires that you must not make any assumptions about the format of the values, e.g. you cannot rely on three digit version numbers or anything else returned by this function.

Předcházející | Domů | Další
posix_ttyname | Nahoru | PostgreSQL Functions


PostgreSQL Functions

Manuál PHP
Předcházející Další

LXXXIV. PostgreSQL Functions

Úvod

PostgreSQL database is Open Source product and available without cost. Postgres, developed originally in the UC Berkeley Computer Science Department, pioneered many of the object-relational concepts now becoming available in some commercial databases. It provides SQL92/SQL99 language support, transactions, referential integrity, stored procedures and type extensibility. PostgreSQL is an open source descendant of this original Berkeley code.

Požadavky

To use PostgreSQL support, you need PostgreSQL 6.5 or later, PostgreSQL 7.0 or later to enable all PostgreSQL module features. PostgreSQL supports many character encoding including multibyte character encoding. The current version and more information about PostgreSQL is available at http://www.postgresql.org/ and http://techdocs.postgresql.org/.

Instalace

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.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 1. PostgreSQL configuration options

Name | Default | Changeable
pgsql.allow_persistent | "1" | PHP_INI_SYSTEM
pgsql.max_persistent | "-1" | PHP_INI_SYSTEM
pgsql.max_links | "-1" | PHP_INI_SYSTEM
pgsql.auto_reset_persistent | "0" | PHP_INI_SYSTEM
pgsql.ignore_notice | "0" | PHP_INI_ALL
pgsql.log_notice | "0" | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Zde je stručné vysvětlení konfiguračních direktiv.

pgsql.allow_persistent boolean

Whether to allow persistent Postgres connections.

pgsql.max_persistent integer

The maximum number of persistent Postgres connections per process.

pgsql.max_links integer

The maximum number of Postgres connections per process, including persistent connections.

pgsql.auto_reset_persistent integer

Detect broken persistent links with pg_pconnect(). Needs a little overhead.

pgsql.ignore_notice integer

Whether or not to ignore PostgreSQL backend notices.

pgsql.log_notice integer

Whether or not to log PostgreSQL backends notice messages. The PHP directive pgsql.ignore_notice must be off in order to log notice messages.

How to use and hints

Varování

Using the PostgreSQL module with PHP 4.0.6 is not recommended due to a bug in the notice message handling code. Use 4.1.0 or later.

Varování

PostgreSQL function names will be changed in 4.2.0 release to confirm to current coding standards. Most of new names will have additional underscores, e.g. pg_lo_open(). Some functions are renamed to different name for consistency. e.g. pg_exec() to pg_query(). Older names can be used in 4.2.0 and a few releases from 4.2.0, but they may be deleted in the future.

Tabulka 2. Function names changed

Old name | New name
pg_cmdtuples() | pg_affected_rows()
pg_errormessage() | pg_last_error()
pg_exec() | pg_query()
pg_fieldname() | pg_field_name()
pg_fieldsize() | pg_field_size()
pg_fieldnum() | pg_field_num()
pg_fieldprtlen() | pg_field_prtlen()
pg_fieldisnull() | pg_field_is_null()
pg_freeresult() | pg_free_result()
pg_getlastoid() | pg_last_oid()
pg_loreadall() | pg_lo_read_all()
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_loimport() | pg_lo_import()
pg_loexport() | pg_lo_export()
pg_numrows() | pg_num_rows()
pg_numfields() | pg_num_fields()
pg_result() | pg_fetch_result()

The old pg_connect()/pg_pconnect() syntax will be deprecated to support asynchronous connections in the future. Please use a connection string for pg_connect() and pg_pconnect().

Not all functions are supported by all builds. It depends on your libpq (The PostgreSQL C Client interface) version and how libpq is compiled. If there is missing function, libpq does not support the feature required for the function.

It is also important that you do not use an older libpq than the PostgreSQL Server to which you will be connecting. If you use libpq older than PostgreSQL Server expects, you may have problems.

Since version 6.3 (03/02/1998) PostgreSQL uses unix domain sockets by default. TCP port will NOT be opened by default. A table is shown below describing these new connection possibilities. This socket will be found in /tmp/.s.PGSQL.5432. This option can be enabled with the '-i' flag to postmaster and its meaning is: "listen on TCP/IP sockets as well as Unix domain sockets".

Tabulka 3. Postmaster and PHP

Postmaster | PHP | Status
postmaster & | pg_connect("dbname=MyDbName"); | OK
postmaster -i & | pg_connect("dbname=MyDbName"); | OK
postmaster & | pg_connect("host=localhost dbname=MyDbName"); | Unable to connect to PostgreSQL server: connectDB() failed: Is the postmaster running and accepting TCP/IP (with -i) connection at 'localhost' on port '5432'? in /path/to/file.php on line 20.
postmaster -i & | pg_connect("host=localhost dbname=MyDbName"); | OK

A connection to PostgreSQL server can be established with the following value pairs set in the command string: $conn = pg_connect("host=myHost port=myPort tty=myTTY options=myOptions dbname=myDB user=myUser password=myPassword ");

The previous syntax of: $conn = pg_connect ("host", "port", "options", "tty", "dbname") has been deprecated.

Environmental variables affect PostgreSQL server/client behavior. For example, PostgreSQL module will lookup PGHOST environment variable when the hostname is omitted in the connection string. Supported environment variables are different from version to version. Refer to PostgreSQL Programmer's Manual (libpq - Environment Variables) for details.

Make sure you set environment variables for appropriate user. Use $_ENV or getenv() to check which environment variables are available to the current process.

Příklad 1. Setting default parameters

PGHOST=pgsql.example.com
PGPORT=7890
PGDATABASE=web-system
PGUSER=web-user
PGPASSWORD=secret
PGDATESTYLE=ISO
PGTZ=JST
PGCLIENTENCODING=EUC-JP

export PGHOST PGPORT PGDATABASE PGUSER PGPASSWORD PGDATESTYLE PGTZ PGCLIENTENCODING

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

PGSQL_ASSOC (integer)

PGSQL_NUM (integer)

PGSQL_BOTH (integer)

PGSQL_CONNECTION_BAD (integer)

PGSQL_CONNECTION_OK (integer)

PGSQL_SEEK_SET (integer)

PGSQL_SEEK_CUR (integer)

PGSQL_SEEK_END (integer)

PGSQL_ESCAPE_STRING (integer)

PGSQL_ESCAPE_BYTEA (integer)

PGSQL_EMPTY_QUERY (integer)

PGSQL_COMMAND_OK (integer)

PGSQL_TUPLES_OK (integer)

PGSQL_COPY_OUT (integer)

PGSQL_COPY_IN (integer)

PGSQL_BAD_RESPONSE (integer)

PGSQL_NONFATAL_ERROR (integer)

PGSQL_FATAL_ERROR (integer)

Příklady

Starting with PostgreSQL 7.1.0, you can store up to 1GB into a field of type text. In older versions, this was limited to the block size (default was 8KB, maximum was 32KB, defined at compile time)

To use the large object (lo) interface, it is required to enclose large object functions within a transaction block. A transaction block starts with a SQL statement BEGIN and if the transaction was valid ends with COMMIT or END. If the transaction fails the transaction should be closed with ROLLBACK or ABORT.

Příklad 2. Using Large Objects

<?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");
?>
You should not close the connection to the PostgreSQL server before closing the large object.

Obsah
pg_affected_rows -- Returns number of affected records (tuples)
pg_cancel_query -- Cancel 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_convert -- Convert associative array value into suitable for SQL statement.
pg_copy_from -- Insert records into a table from an array
pg_copy_to -- Copy a table to an array
pg_dbname -- Get the database name
pg_delete -- Deletes records.
pg_end_copy -- Sync with PostgreSQL backend
pg_escape_bytea -- Escape binary for bytea type
pg_escape_string -- Escape string for text/char type
pg_fetch_all -- Fetches all rows from a result as an array
pg_fetch_array -- 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 resource
pg_fetch_row -- Get a row as an enumerated array
pg_field_is_null -- Test if a field is NULL
pg_field_name -- Returns the name of a field
pg_field_num -- Returns the field number of the named field
pg_field_prtlen -- Returns the printed length
pg_field_size -- Returns the internal storage size of the named field
pg_field_type -- Returns the type name for the corresponding field number
pg_free_result -- Free result memory
pg_get_notify -- Ping database connection
pg_get_pid -- Ping database connection
pg_get_result -- Get asynchronous query result
pg_host -- 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 object's oid
pg_lo_close -- Close a large object
pg_lo_create -- Create a large object
pg_lo_export -- Export a large object to file
pg_lo_import -- Import a large object from file
pg_lo_open -- Open a large object
pg_lo_read_all -- Reads an entire large object and send straight to browser
pg_lo_read -- Read a large object
pg_lo_seek -- Seeks position of large object
pg_lo_tell -- Returns current position of large object
pg_lo_unlink -- Delete a large object
pg_lo_write -- Write a large object
pg_meta_data -- Get meta data for table.
pg_num_fields -- Returns the number of fields
pg_num_rows -- Returns the number of rows
pg_options -- Get the options associated with the connection
pg_pconnect -- Open a persistent PostgreSQL connection
pg_ping -- Ping database connection
pg_port -- Return the port number associated with the connection
pg_put_line -- Send a NULL-terminated string to PostgreSQL backend
pg_query -- Execute a query
pg_result_error -- Get error message associated with result
pg_result_seek -- Set internal row offset in result resource
pg_result_status -- Get status of query result
pg_select -- Select records.
pg_send_query -- Sends asynchronous query
pg_set_client_encoding -- Set the client encoding
pg_trace -- Enable tracing a PostgreSQL connection
pg_tty -- 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.

Předcházející | Domů | Další
posix_uname | Nahoru | pg_affected_rows


pg_affected_rows

(PHP 4 >= 4.2.0, PHP 5)

pg_affected_rows -- Returns number of affected records (tuples)

Description

int pg_affected_rows ( resource result)

pg_affected_rows() returns the number of tuples (instances/records/rows) affected by INSERT, UPDATE, and DELETE queries executed by pg_query(). If no tuple is affected by this function, it will return 0.

Příklad 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";
?>

Poznámka: This function used to be called pg_cmdtuples().

See also pg_query() and pg_num_rows().

Předcházející | Domů | Další
PostgreSQL Functions | Nahoru | pg_cancel_query


pg_cancel_query

(PHP 4 >= 4.2.0, PHP 5)

pg_cancel_query -- Cancel asynchronous query

Description

bool pg_cancel_query ( resource connection)

pg_cancel_query() cancel asynchronous query sent by pg_send_query(). You cannot cancel query executed by pg_query().

See also pg_send_query() and pg_connection_busy().

Předcházející | Domů | Další
pg_affected_rows | Nahoru | pg_client_encoding


pg_client_encoding

(PHP 3 CVS only, PHP 4 >= 4.0.3, PHP 5)

pg_client_encoding -- Gets the client encoding

Description

string pg_client_encoding ( [resource connection])

pg_client_encoding() returns the client encoding as the string. The returned string should be either : SQL_ASCII, EUC_JP, EUC_CN, EUC_KR, EUC_TW, UNICODE, MULE_INTERNAL, LATINX (X=1...9), KOI8, WIN, ALT, SJIS, BIG5, WIN1250.

Poznámka: This function requires PHP-4.0.3 or higher and PostgreSQL-7.0 or higher. If libpq is compiled without multibyte encoding support, pg_set_client_encoding() always return "SQL_ASCII". Supported encoding depends on PostgreSQL version. Refer to PostgreSQL manual for details to enable multibyte support and encoding supported.

The function used to be called pg_clientencoding().

See also pg_set_client_encoding().

Předcházející | Domů | Další
pg_cancel_query | Nahoru | pg_close


pg_close

(PHP 3, PHP 4 , PHP 5)

pg_close -- Closes a PostgreSQL connection

Description

bool pg_close ( resource connection)

pg_close() closes the non-persistent connection to a PostgreSQL database associated with the given connection resource. Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: Using pg_close() is not usually necessary, as non-persistent open connections are automatically closed at the end of the script.

Příklad 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);
?>

If there is open large object resource on the connection, do not close the connection before closing all large object resources.

Předcházející | Domů | Další
pg_client_encoding | Nahoru | pg_connect


pg_connect

(PHP 3, PHP 4 , PHP 5)

pg_connect -- Open a PostgreSQL connection

Description

resource pg_connect ( string connection_string)

pg_connect() returns a connection resource that is needed by other PostgreSQL functions.

pg_connect() opens a connection to a PostgreSQL database specified by the connection_string. It returns a connection resource on success. It returns FALSE if the connection could not be made. connection_string should be a quoted string.

Příklad 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
?>
The arguments available for connection_string includes host, port, tty, options, dbname, user, and password.

If a second call is made to pg_connect() with the same connection_string, no new connection will be established, but instead, the connection resource of the already opened connection will be returned. You can have multiple connections to the same database if you use different connection strings.

The old syntax with multiple parameters $conn = pg_connect("host", "port", "options", "tty", "dbname") has been deprecated.

See also pg_pconnect(),
pg_close(), pg_host(),
pg_port(), pg_tty(),
pg_options() and pg_dbname().

Předcházející | Domů | Další
pg_close | Nahoru | pg_connection_busy


pg_connection_busy

(PHP 4 >= 4.2.0, PHP 5)

pg_connection_busy -- Get connection is busy or not

Description

bool pg_connection_busy ( resource connection)

pg_connection_busy() returns TRUE if the connection is busy. If it is busy, a previous query is still executing. If pg_get_result() is called, it will be blocked.

Příklad 1. pg_connection_busy() example

<?php
    $dbconn = pg_connect("dbname=publisher") or die("Could not connect");
    $bs = pg_connection_busy($dbconn);
    if ($bs) {
        echo 'connection is busy';
    } else {
       echo 'connection is not busy';
    }
?>

See also pg_connection_status() and pg_get_result().

Předcházející | Domů | Další
pg_connect | Nahoru | pg_connection_reset


pg_connection_reset

(PHP 4 >= 4.2.0, PHP 5)

pg_connection_reset -- Reset connection (reconnect)

Description

bool pg_connection_reset ( resource connection)

pg_connection_reset() resets the connection. It is useful for error recovery. Vrací TRUE při úspěchu, FALSE při selhání.

Příklad 1. pg_connection_reset() example

<?php
    $dbconn = pg_connect("dbname=publisher") or die("Could not connect");
    $dbconn2 = pg_connection_reset($dbconn);
    if ($dbconn2) {
        echo "reset successful\n";
    } else {
        echo "reset failed\n";
    }
?>

See also pg_connect(),
pg_pconnect() and
pg_connection_status().

Předcházející | Domů | Další
pg_connection_busy | Nahoru | pg_connection_status


pg_connection_status

(PHP 4 >= 4.2.0, PHP 5)

pg_connection_status -- Get connection status

Description

int pg_connection_status ( resource connection)

pg_connection_status() returns a connection status. Possible statuses are PGSQL_CONNECTION_OK and PGSQL_CONNECTION_BAD. The return value 0 as integer indicates a valid connection.

Příklad 1. pg_connection_status() example

<?php
    $dbconn = pg_connect("dbname=publisher") or die("Could not connect");
    $stat = pg_connection_status($dbconn);
    if ($stat === 0) {
        echo 'Connection status ok';
    } else {
        echo 'Connection status bad';
    }
?>

See also pg_connection_busy().

Předcházející | Domů | Další
pg_connection_reset | Nahoru | pg_convert


pg_convert

(PHP 4 >= 4.3.0, PHP 5)

pg_convert -- Convert associative array value into suitable for SQL statement.

Description

array pg_convert ( resource connection, string table_name, array assoc_array [, int options])

pg_convert() checks and converts the values in assoc_array into suitable values for use in a SQL statement. Precondition for pg_convert() is the existence of a table table_name which has at least as many columns as assoc_array has elements. The fieldnames as well as the fieldvalues in table_name must match the indices and values of assoc_array. Returns an array with the converted values on success, FALSE otherwise.

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

See also pg_meta_data().

Předcházející | Domů | Další
pg_connection_status | Nahoru | pg_copy_from


pg_copy_from

(PHP 4 >= 4.2.0, PHP 5)

pg_copy_from -- Insert records into a table from an array

Description

bool pg_copy_from ( resource connection, string table_name, array rows [, string delimiter [, string null_as]])

pg_copy_from() insert records into a table from rows. It issues COPY FROM SQL command internally to insert records. Vrací TRUE při úspěchu, FALSE při selhání.

See also pg_copy_to().

Předcházející | Domů | Další
pg_convert | Nahoru | pg_copy_to


pg_copy_to

(PHP 4 >= 4.2.0, PHP 5)

pg_copy_to -- Copy a table to an array

Description

array pg_copy_to ( resource connection, string table_name [, string delimiter [, string null_as]])

pg_copy_to() copies a table to an array. It issues COPY TO SQL command internally to retrieve records. The resulting array is returned. It returns FALSE on failure.

See also pg_copy_from().

Předcházející | Domů | Další
pg_copy_from | Nahoru | pg_dbname


pg_dbname

(PHP 3, PHP 4 , PHP 5)

pg_dbname -- Get the database name

Description

string pg_dbname ( resource connection)

pg_dbname() returns the name of the database that the given PostgreSQL connection resource. It returns FALSE, if connection is not a valid PostgreSQL connection resource.

Příklad 1. pg_dbname() example

<?php
    error_reporting(E_ALL);

    pg_connect("host=localhost port=5432 dbname=mary");
    echo pg_dbname(); // mary
?>

Předcházející | Domů | Další
pg_copy_to | Nahoru | pg_delete


pg_delete

(PHP 4 >= 4.3.0, PHP 5)

pg_delete -- Deletes records.

Description

mixed pg_delete ( resource connection, string table_name, array assoc_array [, int options])

pg_delete() deletes record condition specified by assoc_array which has field=>value. If option is specified, pg_convert() is applied to assoc_array with specified option.

Příklad 1. pg_delete() example

<?php
    $db = pg_connect('dbname=foo');
    // This is safe, since $_POST is converted automatically
    $res = pg_delete($db, 'post_log', $_POST);
    if ($res) {
        echo "POST data is deleted: $res\n";
    } else {
        echo "User must have sent wrong inputs\n";
    }
?>

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

See also pg_convert().

Předcházející | Domů | Další
pg_dbname | Nahoru | pg_end_copy


pg_end_copy

(PHP 4 >= 4.0.3, PHP 5)

pg_end_copy -- Sync with PostgreSQL backend

Description

bool pg_end_copy ( [resource connection])

pg_end_copy() syncs the PostgreSQL frontend (usually a web server process) with the PostgreSQL server after doing a copy operation performed by pg_put_line(). pg_end_copy() must be issued, otherwise the PostgreSQL server may get out of sync with the frontend and will report an error. Vrací TRUE při úspěchu, FALSE při selhání.

For further details and an example, see also pg_put_line().

Předcházející | Domů | Další
pg_delete | Nahoru | pg_escape_bytea


pg_escape_bytea

(PHP 4 >= 4.2.0, PHP 5)

pg_escape_bytea -- Escape binary for bytea type

Description

string pg_escape_bytea ( string data)

pg_escape_bytea() escapes string for bytea datatype. It returns escaped string.

Poznámka: When you SELECT bytea type, PostgreSQL returns octal byte value prefixed by \ (e.g. \032). Users are supposed to convert back to binary format by yourself.

This function requires PostgreSQL 7.2 or later. With PostgreSQL 7.2.0 and 7.2.1, bytea type must be casted when you enable multi-byte support. i.e. INSERT INTO test_table (image) VALUES ('$image_escaped'::bytea); PostgreSQL 7.2.2 or later does not need cast. Exception is when client and backend character encoding does not match, there may be multi-byte stream error. User must cast to bytea to avoid this error.

See also pg_unescape_bytea() and pg_escape_string().

Předcházející | Domů | Další
pg_end_copy | Nahoru | pg_escape_string


pg_escape_string

(PHP 4 >= 4.2.0, PHP 5)

pg_escape_string -- Escape string for text/char type

Description

string pg_escape_string ( string data)

pg_escape_string() escapes string for text/char datatype. It returns escaped string for PostgreSQL. Use of this function is recommended instead of addslashes().

Poznámka: This function requires PostgreSQL 7.2 or later.

See also pg_escape_bytea()

Předcházející | Domů | Další
pg_escape_bytea | Nahoru | pg_fetch_all


pg_fetch_all

(PHP 4 >= 4.3.0, PHP 5)

pg_fetch_all -- Fetches all rows from a result as an array

Description

array pg_fetch_all ( resource result)

pg_fetch_all() returns an array that contains all rows (tuples/records) in result resource. It returns FALSE, if there are no rows.

Příklad 1. PostgreSQL fetch all

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
    echo "An error occured.\n";
    exit;
}

$result = pg_query($conn, "SELECT * FROM authors");
if (!$result) {
    echo "An error occured.\n";
    exit;
}

$arr = pg_fetch_all($result);

var_dump($arr);

?>

See also pg_fetch_row(),
pg_fetch_array(),
pg_fetch_object() and
pg_fetch_result().

Předcházející | Domů | Další
pg_escape_string | Nahoru | pg_fetch_array


pg_fetch_array

(PHP 3>= 3.0.1, PHP 4 , PHP 5)

pg_fetch_array -- Fetch a row as an array

Description

array pg_fetch_array ( resource result [, int row [, int result_type]])

pg_fetch_array() returns an array that corresponds to the fetched row (tuples/records). It returns FALSE, if there are no more rows.

pg_fetch_array() is an extended version of pg_fetch_row(). In addition to storing the data in the numeric indices (field index) to the result array, it also stores the data in associative indices (field name) by default.

row is row (record) number to be retrieved. First row is 0.

result_type is an optional parameter that controls how the return value is initialized. result_type is a constant and can take the following values: PGSQL_ASSOC, PGSQL_NUM, and PGSQL_BOTH. pg_fetch_array() returns associative array that has field name as key for PGSQL_ASSOC, field index as key with PGSQL_NUM and both field name/index as key with PGSQL_BOTH. Default is PGSQL_BOTH.

Poznámka: result_type was added in PHP 4.0.

pg_fetch_array() is NOT significantly slower than using pg_fetch_row(), while it provides a significant ease of use.

Příklad 1. pg_fetch_array() example

<?php

$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
    echo "An error occured.\n";
    exit;
}

$result = pg_query($conn, "SELECT * FROM authors");
if (!$result) {
    echo "An error occured.\n";
    exit;
}

$arr = pg_fetch_array($result, 0, PGSQL_NUM);
echo $arr[0] . " <- array\n";

$arr = pg_fetch_array($result, 1, PGSQL_ASSOC);
echo $arr["author"] . " <- array\n";

?>

Poznámka: From 4.1.0, row became optional. Calling pg_fetch_array() will increment internal row counter by 1.

See also
pg_fetch_row(),
pg_fetch_object() and
pg_fetch_result().

Předcházející | Domů | Další
pg_fetch_all | Nahoru | pg_fetch_assoc


pg_fetch_assoc

(PHP 4 >= 4.3.0, PHP 5)

pg_fetch_assoc -- Fetch a row as an associative array

Description

array pg_fetch_assoc ( resource result [, int row])

pg_fetch_assoc() returns an associative array that corresponds to the fetched row (tuples/records). It returns FALSE, if there are no more rows.

pg_fetch_assoc() is equivalent to calling pg_fetch_array() with PGSQL_ASSOC for the optional third parameter. It only returns an associative array. If you need the numeric indices, use pg_fetch_row().

row is row (record) number to be retrieved. First row is 0.

pg_fetch_assoc() is NOT significantly slower than using pg_fetch_row(), while it provides a significant ease of use.

Příklad 1. pg_fetch_assoc() example

<?php
$conn = pg_connect("dbname=publisher");
if (!$conn) {
    echo "An error occured.\n";
    exit;
}

$result = pg_query($conn, "SELECT id, author, email FROM authors");
if (!$result) {
    echo "An error occured.\n";
    exit;
}

while ($row = pg_fetch_assoc($result)) {
    echo $row['id'];
    echo $row['author'];
    echo $row['email'];
}
?>

See also
pg_fetch_row(),
pg_fetch_array(),
pg_fetch_object() and
pg_fetch_result().

Předcházející | Domů | Další
pg_fetch_array | Nahoru | pg_fetch_object


pg_fetch_object

(PHP 3>= 3.0.1, PHP 4 , PHP 5)

pg_fetch_object -- Fetch a row as an object

Description

object pg_fetch_object ( resource result [, int row [, int result_type]])

pg_fetch_object() returns an object with properties that correspond to the fetched row. It returns FALSE if there are no more rows or error.

pg_fetch_object() is similar to pg_fetch_array(), with one difference - an object is returned, instead of an array. Indirectly, that means that you can only access the data by the field names, and not by their offsets (numbers are illegal property names).

row is row (record) number to be retrieved. First row is 0.

Speed-wise, the function is identical to pg_fetch_array(), and almost as quick as pg_fetch_row() (the difference is insignificant).

Poznámka: From 4.1.0, row is optional.

From 4.3.0, result_type is default to PGSQL_ASSOC while older versions' default was PGSQL_BOTH. There is no use for numeric property, since numeric property name is invalid in PHP.

result_type may be deleted in future versions.

Příklad 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");

$row = 0; // postgres needs a row counter

while ($data = pg_fetch_object($qu, $row)) {
    echo $data->author . " (";
    echo $data->year . "): ";
    echo $data->title . "<br />";
    $row++;
}

pg_free_result($qu);
pg_close($db_conn);

?>

Poznámka: From 4.1.0, row became optional. Calling pg_fetch_object() will increment internal row counter counter by 1.

See also
pg_query(),
pg_fetch_array(),
pg_fetch_assoc(),
pg_fetch_row() and
pg_fetch_result().

Předcházející | Domů | Další
pg_fetch_assoc | Nahoru | pg_fetch_result


pg_fetch_result

(PHP 4 >= 4.2.0, PHP 5)

pg_fetch_result -- Returns values from a result resource

Description

mixed pg_fetch_result ( resource result, int row, mixed field)

pg_fetch_result() returns values from a result resource returned by pg_query(). row is integer. field is field name (string) or field index (integer). The row and field specify what cell in the table of results to return. Row numbering starts from 0. Instead of naming the field, you may use the field index as an unquoted number. Field indices start from 0.

PostgreSQL has many built in types and only the basic ones are directly supported here. All forms of integer types are returned as integer values. All forms of float, and real types are returned as float values. Boolean is returned as "t" or "f". All other types, including arrays are returned as strings formatted in the same default PostgreSQL manner that you would see in the psql program.

Předcházející | Domů | Další
pg_fetch_object | Nahoru | pg_fetch_row


pg_fetch_row

(PHP 3>= 3.0.1, PHP 4 , PHP 5)

pg_fetch_row -- Get a row as an enumerated array

Description

array pg_fetch_row ( resource result, int row)

pg_fetch_row() fetches one row of data from the result associated with the specified result resource. The row (record) is returned as an array. Each result column is stored in an array offset, starting at offset 0.

It returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

Příklad 1. pg_fetch_row() example

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
    echo "An error occured.\n";
    exit;
}

$result = pg_query($conn, "SELECT * FROM authors");
if (!$result) {
    echo "An error occured.\n";
    exit;
}

while ($row = pg_fetch_row($result, $i)) {
  for ($j=0; $j < count($row); $j++) {
    echo $row[$j] . "&nbsp;";
  }

  echo "<br />\n";

}

?>

Poznámka: From 4.1.0, row became optional. Calling pg_fetch_row() will increment internal row counter by 1.

See also
pg_query(),
pg_fetch_array(),
pg_fetch_object() and
pg_fetch_result().

Předcházející | Domů | Další
pg_fetch_result | Nahoru | pg_field_is_null


pg_field_is_null

(PHP 4 >= 4.2.0, PHP 5)

pg_field_is_null -- Test if a field is NULL

Description

int pg_field_is_null ( resource result, int row, mixed field)

pg_field_is_null() tests if a field is NULL or not. It returns 1 if the field in the given row is NULL. It returns 0 if the field in the given row is NOT NULL. Field can be specified as column index (number) or fieldname (string). Row numbering starts at 0.

Příklad 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";
      }
   }
?>

Poznámka: This function used to be called pg_fieldisnull().

Předcházející | Domů | Další
pg_fetch_row | Nahoru | pg_field_name


pg_field_name

(PHP 4 >= 4.2.0, PHP 5)

pg_field_name -- Returns the name of a field

Description

string pg_field_name ( resource result, int field_number)

pg_field_name() returns the name of the field occupying the given field_number in the given PostgreSQL result resource. Field numbering starts from 0.

Příklad 1. Getting informations about fields

<?php
    $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

    $res = pg_query($dbconn, "select * from authors where author = 'Orwell'");
    $i = pg_num_fields($res);
    for ($j = 0; $j < $i; $j++) {
        echo "column $j\n";
        $fieldname = pg_field_name($res, $j);
        echo "fieldname: $fieldname\n";
        echo "printed length: " . pg_field_prtlen($res, $fieldname) . " characters\n";
        echo "storage length: " . pg_field_size($res, $j) . " bytes\n";
        echo "field type: " . pg_field_type($res, $j) . " \n\n";
    }
?>

The above example would produce the following output:

column 0
fieldname: author
printed length: 6 characters
storage length: -1 bytes
field type: varchar

column 1
fieldname: year
printed length: 4 characters
storage length: 2 bytes
field type: int2

column 2
fieldname: title
printed length: 24 characters
storage length: -1 bytes
field type: varchar

Poznámka: This function used to be called pg_fieldname().

See also pg_field_num().

Předcházející | Domů | Další
pg_field_is_null | Nahoru | pg_field_num


pg_field_num

(PHP 4 >= 4.2.0, PHP 5)

pg_field_num -- Returns the field number of the named field

Description

int pg_field_num ( resource result, string field_name)

pg_field_num() will return the number of the column (field) slot that corresponds to the field_name in the given PostgreSQL result resource. Field numbering starts at 0. This function will return -1 on error.

See the example given at the pg_field_name() page.

Poznámka: This function used to be called pg_fieldnum().

See also pg_field_name().

Předcházející | Domů | Další
pg_field_name | Nahoru | pg_field_prtlen


pg_field_prtlen

(PHP 4 >= 4.2.0, PHP 5)

pg_field_prtlen -- Returns the printed length

Description

int pg_field_prtlen ( resource result, int row_number, string field_name)

pg_field_prtlen() returns the actual printed length (number of characters) of a specific value in a PostgreSQL result. Row numbering starts at 0. This function will return -1 on an error.

See the example given at the pg_field_name() page.

Poznámka: This function used to be called pg_fieldprtlen().

See also pg_field_size().

Předcházející | Domů | Další
pg_field_num | Nahoru | pg_field_size


pg_field_size

(PHP 4 >= 4.2.0, PHP 5)

pg_field_size -- Returns the internal storage size of the named field

Description

int pg_field_size ( resource result, int field_number)

pg_field_size() returns the internal storage size (in bytes) of the field number in the given PostgreSQL result. Field numbering starts at 0. A field size of -1 indicates a variable length field. This function will return FALSE on error.

See the example given at the pg_field_name() page.

Poznámka: This function used to be called pg_fieldsize().

See also pg_field_prtlen() and pg_field_type().

Předcházející | Domů | Další
pg_field_prtlen | Nahoru | pg_field_type


pg_field_type

(PHP 4 >= 4.2.0, PHP 5)

pg_field_type -- Returns the type name for the corresponding field number

Description

string pg_field_type ( resource result, int field_number)

pg_field_type() returns a string containing the type name of the given field_number in the given PostgreSQL result resource. Field numbering starts at 0.

See the example given at the pg_field_name() page.

Poznámka: This function used to be called pg_fieldtype().

See also pg_field_prtlen() and pg_field_name().

Předcházející | Domů | Další
pg_field_size | Nahoru | pg_free_result


pg_free_result

(PHP 4 >= 4.2.0, PHP 5)

pg_free_result -- Free result memory

Description

bool pg_free_result ( resource result)

pg_free_result() only needs to be called if you are worried about using too much memory while your script is running. All result memory will automatically be freed when the script is finished. But, if you are sure you are not going to need the result data anymore in a script, you may call pg_free_result() with the result resource as an argument and the associated result memory will be freed. Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: This function used to be called pg_freeresult().

See also pg_query().

Předcházející | Domů | Další
pg_field_type | Nahoru | pg_get_notify


pg_get_notify

(PHP 4 >= 4.3.0, PHP 5)

pg_get_notify -- Ping database connection

Description

array pg_get_notify ( resource connection [, int result_type])

pg_get_notify() gets notify message sent by NOTIFY SQL command. To receive notify messages, LISTEN SQL command must be issued. If there is notify message on the connection, array contains message name and backend PID is returned. If there is no message, FALSE is returned.

See also pg_get_pid()

Příklad 1. PostgreSQL NOTIFY message

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
    echo "An error occured.\n";
    exit;
}

// Listen 'author_updated' message from other processes
pg_query($conn, 'LISTEN author_updated;');
$notify = pg_get_notify($conn);
if (!$notify) {
    echo "No messages\n";
} else {
    print_r($notify);
}
?>

Předcházející | Domů | Další
pg_free_result | Nahoru | pg_get_pid


pg_get_pid

(PHP 4 >= 4.3.0, PHP 5)

pg_get_pid -- Ping database connection

Description

int pg_get_pid ( resource connection)

pg_get_pid() gets backend (database server process) PID. PID is useful to check if NOTIFY message is sent from other process or not.

Příklad 1. PostgreSQL backend PID

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
    echo "An error occured.\n";
    exit;
}

// Backend process PID. Use PID with pg_get_notify()
$pid = pg_get_pid($conn);
?>

See also pg_get_notify().

Předcházející | Domů | Další
pg_get_notify | Nahoru | pg_get_result


pg_get_result

(PHP 4 >= 4.2.0, PHP 5)

pg_get_result -- Get asynchronous query result

Description

resource pg_get_result ( [resource connection])

pg_get_result() get result resource from async query executed by pg_send_query(). pg_send_query() can send multiple queries to PostgreSQL server and pg_get_result() is used to get query result one by one. It returns result resource. If there is no more results, it returns FALSE.

Předcházející | Domů | Další
pg_get_pid | Nahoru | pg_host


pg_host

(PHP 3, PHP 4 , PHP 5)

pg_host -- Returns the host name associated with the connection

Description

string pg_host ( resource connection)

pg_host() returns the host name of the given PostgreSQL connection resource is connected to.

See also pg_connect() and pg_pconnect().

Předcházející | Domů | Další
pg_get_result | Nahoru | pg_insert


pg_insert

(PHP 4 >= 4.3.0, PHP 5)

pg_insert -- Insert array into table.

Description

bool pg_insert ( resource connection, string table_name, array assoc_array [, int options])

pg_insert() inserts the values of assoc_array into the table specified by table_name. table_name must at least have as many columns as assoc_array has elements. The fieldnames as well as the fieldvalues in table_name must match the indices and values of assoc_array. Vrací TRUE při úspěchu, FALSE při selhání. If options is specified, pg_insert() is applied to assoc_array with specified option.

Příklad 1. pg_insert() example

<?php
    $dbconn = pg_connect('dbname=foo');
    // This is safe, since $_POST is converted automatically
    $res = pg_insert($dbconn, 'post_log', $_POST);
    if ($res) {
        echo "POST data is successfully logged\n";
    } else {
        echo "User must have sent wrong inputs\n";
    }
?>

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

See also pg_convert().

Předcházející | Domů | Další
pg_host | Nahoru | pg_last_error


pg_last_error

(PHP 4 >= 4.2.0, PHP 5)

pg_last_error -- Get the last error message string of a connection

Description

string pg_last_error ( [resource connection])

pg_last_error() returns the last error message for given connection.

Error messages may be overwritten by internal PostgreSQL(libpq) function calls. It may not return appropriate error message, if multiple errors are occurred inside a PostgreSQL module function.

Use pg_result_error(),
pg_result_status() and
pg_connection_status() for better error handling.

Poznámka: This function used to be called pg_errormessage().

See also pg_result_error().

Předcházející | Domů | Další
pg_insert | Nahoru | pg_last_notice


pg_last_notice

(PHP 4 >= 4.0.6, PHP 5)

pg_last_notice -- Returns the last notice message from PostgreSQL server

Description

string pg_last_notice ( resource connection)

pg_last_notice() returns the last notice message from the PostgreSQL server specified by connection. The PostgreSQL server sends notice messages in several cases, e.g. if the transactions can't be continued. With pg_last_notice(), you can avoid issuing useless queries, by checking whether the notice is related to the transaction or not.

Varování

This function is EXPERIMENTAL and it is not fully implemented yet. pg_last_notice() was added in PHP 4.0.6. However, PHP 4.0.6 has problem with notice message handling. Use of the PostgreSQL module with PHP 4.0.6 is not recommended even if you are not using pg_last_notice().

This function is fully implemented in PHP 4.3.0. PHP earlier than PHP 4.3.0 ignores database connection parameter.

Notice message tracking can be set to optional by setting 1 for pgsql.ignore_notice in php.ini from PHP 4.3.0.

Notice message logging can be set to optional by setting 0 for pgsql.log_notice in php.ini from PHP 4.3.0. Unless pgsql.ignore_notice is set to 0, notice message cannot be logged.

See also pg_query() and pg_last_error().

Předcházející | Domů | Další
pg_last_error | Nahoru | pg_last_oid


pg_last_oid

(PHP 4 >= 4.2.0, PHP 5)

pg_last_oid -- Returns the last object's oid

Description

int pg_last_oid ( resource result)

pg_last_oid() is used to retrieve the oid assigned to an inserted tuple (record) if the result resource is used from the last command sent via pg_query() and was an SQL INSERT. Returns a positive integer if there was a valid oid. It returns FALSE if an error occurs or the last command sent via pg_query() was not an INSERT or INSERT is failed.

OID field became an optional field from PostgreSQL 7.2. When OID field is not defined in a table, programmer must use pg_result_status() to check if record is is inserted successfully or not.

Poznámka: This function used to be called pg_getlastoid().

See also pg_query() and pg_result_status()

Předcházející | Domů | Další
pg_last_notice | Nahoru | pg_lo_close


pg_lo_close

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_close -- Close a large object

Description

bool pg_lo_close ( resource large_object)

pg_lo_close() closes a Large Object. large_object is a resource for the large object from pg_lo_open().

To use the large object (lo) interface, it is necessary to enclose it within a transaction block.

Poznámka: This function used to be called pg_loclose().

See also pg_lo_open(),
pg_lo_create() and
pg_lo_import().

Předcházející | Domů | Další
pg_last_oid | Nahoru | pg_lo_create


pg_lo_create

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_create -- Create a large object

Description

int pg_lo_create ( resource connection)

pg_lo_create() creates a Large Object and returns the oid of the large object. connection specifies a valid database connection opened by pg_connect() or pg_pconnect(). PostgreSQL access modes INV_READ, INV_WRITE, and INV_ARCHIVE are not supported, the object is created always with both read and write access. INV_ARCHIVE has been removed from PostgreSQL itself (version 6.3 and above). It returns large object oid, otherwise it returns FALSE if an error occurred.

To use the large object (lo) interface, it is necessary to enclose it within a transaction block.

Poznámka: This function used to be called pg_locreate().

Předcházející | Domů | Další
pg_lo_close | Nahoru | pg_lo_export


pg_lo_export

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_export -- Export a large object to file

Description

bool pg_lo_export ( [resource connection, int oid, string pathname])

The oid argument specifies oid of the large object to export and the pathname argument specifies the pathname of the file. It returns FALSE if an error occurred, TRUE otherwise.

To use the large object (lo) interface, it is necessary to enclose it within a transaction block.

Poznámka: This function used to be called pg_loexport().

See also pg_lo_import().

Předcházející | Domů | Další
pg_lo_create | Nahoru | pg_lo_import


pg_lo_import

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_import -- Import a large object from file

Description

int pg_lo_import ( [resource connection, string pathname])

In versions before PHP 4.2.0 the syntax of this function was different, see the following definition:

int pg_lo_import ( string pathname [, resource connection])

The pathname argument specifies the pathname of the file to be imported as a large object. It returns FALSE if an error occurred, oid of the just created large object otherwise.

To use the large object (lo) interface, it is necessary to enclose it within a transaction block.

Poznámka: Pokud je zapnut bezpečný režim (safe-mode), PHP kontroluje, zda soubory/adresáře, se kterými pracujete, mají stejné UID jako spuštěný skript.

Poznámka: This function used to be called pg_loimport().

See also pg_lo_export() and pg_lo_open().

Předcházející | Domů | Další
pg_lo_export | Nahoru | pg_lo_open


pg_lo_open

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_open -- Open a large object

Description

resource pg_lo_open ( resource connection, int oid, string mode)

pg_lo_open() opens a Large Object and returns large object resource. The resource encapsulates information about the connection. oid specifies a valid large object oid and mode can be either "r", "w", or "rw". It returns FALSE if there is an error.

Varování

Do not close the database connection before closing the large object resource.

To use the large object (lo) interface, it is necessary to enclose it within a transaction block.

Poznámka: This function used to be called pg_loopen().

See also pg_lo_close() and pg_lo_create().

Předcházející | Domů | Další
pg_lo_import | Nahoru | pg_lo_read_all


pg_lo_read_all

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_read_all -- Reads an entire large object and send straight to browser

Description

int pg_lo_read_all ( resource large_object)

pg_lo_read_all() reads a large object and passes it straight through to the browser after sending all pending headers. Mainly intended for sending binary data like images or sound. It returns number of bytes read. It returns FALSE, if an error occurred.

To use the large object (lo) interface, it is necessary to enclose it within a transaction block.

Poznámka: This function used to be called pg_loreadall().

See also pg_lo_read().

Předcházející | Domů | Další
pg_lo_open | Nahoru | pg_lo_read


pg_lo_read

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_read -- Read a large object

Description

string pg_lo_read ( resource large_object, int len)

pg_lo_read() reads at most len bytes from a large object and returns it as a string. large_object specifies a valid large object resource andlen specifies the maximum allowable size of the large object segment. It returns FALSE if there is an error.

To use the large object (lo) interface, it is necessary to enclose it within a transaction block.

Poznámka: This function used to be called pg_loread().

See also pg_lo_read_all().

Předcházející | Domů | Další
pg_lo_read_all | Nahoru | pg_lo_seek


pg_lo_seek

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_seek -- Seeks position of large object

Description

bool pg_lo_seek ( resource large_object, int offset [, int whence])

pg_lo_seek() seeks position of large object resource. whence is PGSQL_SEEK_SET, PGSQL_SEEK_CUR or PGSQL_SEEK_END.

See also pg_lo_tell().

Předcházející | Domů | Další
pg_lo_read | Nahoru | pg_lo_tell


pg_lo_tell

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_tell -- Returns current position of large object

Description

int pg_lo_tell ( resource large_object)

pg_lo_tell() returns current position (offset from the beginning of large object).

See also pg_lo_seek().

Předcházející | Domů | Další
pg_lo_seek | Nahoru | pg_lo_unlink


pg_lo_unlink

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_unlink -- Delete a large object

Description

bool pg_lo_unlink ( resource connection, int oid)

pg_lo_unlink() deletes a large object with the oid. Vrací TRUE při úspěchu, FALSE při selhání.

To use the large object (lo) interface, it is necessary to enclose it within a transaction block.

Poznámka: This function used to be called pg_lo_unlink().

See also pg_lo_create() and pg_lo_import().

Předcházející | Domů | Další
pg_lo_tell | Nahoru | pg_lo_write


pg_lo_write

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_write -- Write a large object

Description

int pg_lo_write ( resource large_object, string data)

pg_lo_write() writes at most to a large object from a variable data and returns the number of bytes actually written, or FALSE in the case of an error. large_object is a large object resource from pg_lo_open().

To use the large object (lo) interface, it is necessary to enclose it within a transaction block.

Poznámka: This function used to be called pg_lowrite().

See also pg_lo_create() and pg_lo_open().

Předcházející | Domů | Další
pg_lo_unlink | Nahoru | pg_meta_data


pg_meta_data

(PHP 4 >= 4.3.0, PHP 5)

pg_meta_data -- Get meta data for table.

Description

array pg_meta_data ( resource connection, string table_name)

pg_meta_data() returns table definition for table_name as an array. If there is error, it returns FALSE

Příklad 1. Getting table metadata

<?php
    $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

    $meta = pg_meta_data($dbconn, 'authors');
    if (is_array($meta)) {
        echo '<pre>';
        var_dump($meta);
        echo '</pre>';
    }
?>

The above example would produce the following output:

array(3) {
  ["author"]=>
  array(5) {
    ["num"]=>
    int(1)
    ["type"]=>
    string(7) "varchar"
    ["len"]=>
    int(-1)
    ["not null"]=>
    bool(false)
    ["has default"]=>
    bool(false)
  }
  ["year"]=>
  array(5) {
    ["num"]=>
    int(2)
    ["type"]=>
    string(4) "int2"
    ["len"]=>
    int(2)
    ["not null"]=>
    bool(false)
    ["has default"]=>
    bool(false)
  }
  ["title"]=>
  array(5) {
    ["num"]=>
    int(3)
    ["type"]=>
    string(7) "varchar"
    ["len"]=>
    int(-1)
    ["not null"]=>
    bool(false)
    ["has default"]=>
    bool(false)
  }
}

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

See also pg_convert().

Předcházející | Domů | Další
pg_lo_write | Nahoru | pg_num_fields


pg_num_fields

(PHP 4 >= 4.2.0, PHP 5)

pg_num_fields -- Returns the number of fields

Description

int pg_num_fields ( resource result)

pg_num_fields() returns the number of fields (columns) in a PostgreSQL result. The argument is a result resource returned by pg_query(). This function will return -1 on error.

Poznámka: This function used to be called pg_numfields().

See also pg_num_rows() and pg_affected_rows().

Předcházející | Domů | Další
pg_meta_data | Nahoru | pg_num_rows


pg_num_rows

(PHP 4 >= 4.2.0, PHP 5)

pg_num_rows -- Returns the number of rows

Description

int pg_num_rows ( resource result)

pg_num_rows() will return the number of rows in a PostgreSQL result resource. result is a query result resource returned by pg_query(). This function will return -1 on error.

Poznámka: Use pg_affected_rows() to get number of rows affected by INSERT, UPDATE and DELETE query.

Poznámka: This function used to be called pg_numrows().

See also pg_num_fields() and pg_affected_rows().

Předcházející | Domů | Další
pg_num_fields | Nahoru | pg_options


pg_options

(PHP 3, PHP 4 , PHP 5)

pg_options -- Get the options associated with the connection

Description

string pg_options ( resource connection)

pg_options() will return a string containing the options specified on the given PostgreSQL connection resource.

Předcházející | Domů | Další
pg_num_rows | Nahoru | pg_pconnect


pg_pconnect

(PHP 3, PHP 4 , PHP 5)

pg_pconnect -- Open a persistent PostgreSQL connection

Description

resource pg_pconnect ( string connection_string)

pg_pconnect() opens a connection to a PostgreSQL database. It returns a connection resource that is needed by other PostgreSQL functions.

For a description of the connection_string parameter, see pg_connect().

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().

See also pg_connect(), and the section Persistent Database Connections for more information.

Předcházející | Domů | Další
pg_options | Nahoru | pg_ping


pg_ping

(PHP 4 >= 4.3.0, PHP 5)

pg_ping -- Ping database connection

Description

bool pg_ping ( resource connection)

pg_ping() ping database connection, try to reconnect if it is broken. It returns TRUE if connection is alive, otherwise FALSE.

Příklad 1. pg_ping() example

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
    echo "An error occured.\n";
    exit;
}

if (!pg_ping($conn))
    die("Connection is broken\n");
?>

See also pg_connection_status() and pg_connection_reset().

Předcházející | Domů | Další
pg_pconnect | Nahoru | pg_port


pg_port

(PHP 3, PHP 4 , PHP 5)

pg_port -- Return the port number associated with the connection

Description

int pg_port ( resource connection)

pg_port() returns the port number that the given PostgreSQL connection resource is connected to.

Předcházející | Domů | Další
pg_ping | Nahoru | pg_put_line


pg_put_line

(PHP 4 >= 4.0.3, PHP 5)

pg_put_line -- Send a NULL-terminated string to PostgreSQL backend

Description

bool pg_put_line ( [resource connection, string data])

pg_put_line() sends a NULL-terminated string to the PostgreSQL backend server. This is useful for example for very high-speed inserting of data into a table, initiated by starting a PostgreSQL copy-operation. That final NULL-character is added automatically. Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: The application must explicitly send the two characters "\." on the last line to indicate to the backend that it has finished sending its data.

Příklad 1. High-speed insertion of data into a table

<?php
    $conn = pg_pconnect("dbname=foo");
    pg_query($conn, "create table bar (a int4, b char(16), d float8)");
    pg_query($conn, "copy bar from stdin");
    pg_put_line($conn, "3\thello world\t4.5\n");
    pg_put_line($conn, "4\tgoodbye world\t7.11\n");
    pg_put_line($conn, "\\.\n");
    pg_end_copy($conn);
?>

See also pg_end_copy().

Předcházející | Domů | Další
pg_port | Nahoru | pg_query


pg_query

(PHP 4 >= 4.2.0, PHP 5)

pg_query -- Execute a query

Description

resource pg_query ( resource connection, string query)

pg_query() returns a query result resource if query could be executed. It returns FALSE on failure or if connection is not a valid connection. Details about the error can be retrieved using the pg_last_error() function if connection is valid. pg_query() sends an SQL statement to the PostgreSQL database specified by the connection resource. The connection must be a valid connection that was returned by pg_connect() or pg_pconnect(). The return value of this function is an query result resource to be used to access the results from other PostgreSQL functions such as pg_fetch_array().

Poznámka: connection is an optional parameter for pg_query(). If connection is not set, default connection is used. Default connection is the last connection made by pg_connect() or pg_pconnect().

Although connection can be omitted, it is not recommended, since it could be a cause of hard to find bug in script.

Poznámka: This function used to be called pg_exec(). pg_exec() is still available for compatibility reasons but users are encouraged to use the newer name.

See also pg_connect(),
pg_pconnect(),
pg_fetch_array(),
pg_fetch_object(),
pg_num_rows() and
pg_affected_rows().

Předcházející | Domů | Další
pg_put_line | Nahoru | pg_result_error


pg_result_error

(PHP 4 >= 4.2.0, PHP 5)

pg_result_error -- Get error message associated with result

Description

string pg_result_error ( resource result)

pg_result_error() returns error message associated with result resource. Therefore, user has better chance to get better error message than pg_last_error().

See also pg_query(),
pg_send_query(),
pg_get_result(),
pg_last_error() and
pg_last_notice()

Předcházející | Domů | Další
pg_query | Nahoru | pg_result_seek


pg_result_seek

(PHP 4 >= 4.3.0, PHP 5)

pg_result_seek -- Set internal row offset in result resource

Description

array pg_result_seek ( resource result, int offset)

pg_result_seek() set internal row offset in result resource. It returns FALSE, if there is error.

 See also pg_fetch_row(),
pg_fetch_assoc(),
pg_fetch_array(),
pg_fetch_object() and
pg_fetch_result().

Předcházející | Domů | Další
pg_result_error | Nahoru | pg_result_status


pg_result_status

(PHP 4 >= 4.2.0, PHP 5)

pg_result_status -- Get status of query result

Description

int pg_result_status ( resource result)

pg_result_status() returns status of result resource. Possible return values are PGSQL_EMPTY_QUERY, PGSQL_COMMAND_OK, PGSQL_TUPLES_OK, PGSQL_COPY_TO, PGSQL_COPY_FROM, PGSQL_BAD_RESPONSE, PGSQL_NONFATAL_ERROR and PGSQL_FATAL_ERROR.

See also pg_connection_status().

Předcházející | Domů | Další
pg_result_seek | Nahoru | pg_select


pg_select

(PHP 4 >= 4.3.0, PHP 5)

pg_select -- Select records.

Description

array pg_select ( resource connection, string table_name, array assoc_array [, int options])

pg_select() selects records specified by assoc_array which has field=>value. For successful query, it returns array contains all records and fields that match the condition specified by assoc_array. If options is specified, pg_convert() is applied to assoc_array with specified option.

Příklad 1. pg_select() example

<?php
    $db = pg_connect('dbname=foo');
    // This is safe, since $_POST is converted automatically
    $rec = pg_select($db, 'post_log', $_POST);
    if ($rec) {
        echo "Records selected\n";
        var_dump($rec);
    } else {
        echo "User must have sent wrong inputs\n";
    }
?>

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

See also pg_convert()

Předcházející | Domů | Další
pg_result_status | Nahoru | pg_send_query


pg_send_query

(PHP 4 >= 4.2.0, PHP 5)

pg_send_query -- Sends asynchronous query

Description

bool pg_send_query ( resource connection, string query)

bool pg_send_query ( string query)

pg_send_query() send asynchronous query to the connection. Unlike pg_query(), it can send multiple query to PostgreSQL and get the result one by one using pg_get_result(). Script execution is not blocked while query is executing. Use pg_connection_busy() to check connection is busy (i.e. query is executing). Query may be cancelled by calling pg_cancel_query().

Although user can send multiple query at once, user cannot send multiple query over busy connection. If query is sent while connection is busy, it waits until last query is finished and discards all result.

Příklad 1. Asynchronous Queries

<?php
    $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

    if (!pg_connection_busy($dbconn)) {
        pg_send_query($dbconn, "select * from authors; select count(*) from authors;");
    }

    $res1 = pg_get_result($dbconn);
    echo "First call to pg_get_result(): $res1\n";
    $rows1 = pg_num_rows($res1);
    echo "$res1 has $rows1 records\n\n";

    $res2 = pg_get_result($dbconn);
    echo "second call to pg_get_result(): $res2\n";
    $rows2 = pg_num_rows($res2);
    echo "$res2 has $rows2 records\n";
?>

The above example would produce the following output:

first call to pg_get_result(): Resource id #3
Resource id #3 has 3 records

second call to pg_get_result(): Resource id #4
Resource id #4 has 1 records

See also pg_query(),
pg_cancel_query(),
pg_get_result() and
pg_connection_busy().

Předcházející | Domů | Další
pg_select | Nahoru | pg_set_client_encoding


pg_set_client_encoding

(PHP 3 CVS only, PHP 4 >= 4.0.3, PHP 5)

pg_set_client_encoding -- Set the client encoding

Description

int pg_set_client_encoding ( [resource connection, string encoding])

pg_set_client_encoding() sets the client encoding and returns 0 if success or -1 if error.

encoding is the client encoding and can be either : SQL_ASCII, EUC_JP, EUC_CN, EUC_KR, EUC_TW, UNICODE, MULE_INTERNAL, LATINX (X=1...9), KOI8, WIN, ALT, SJIS, BIG5, WIN1250. Available encoding depends on your PostgreSQL and libpq version. Refer to PostgreSQL manual for supported encodings for your PostgreSQL.

Poznámka: This function requires PHP-4.0.3 or higher and PostgreSQL-7.0 or higher. Supported encoding depends on PostgreSQL version. Refer to PostgreSQL manual for details.

The function used to be called pg_setclientencoding().

See also pg_client_encoding().

Předcházející | Domů | Další
pg_send_query | Nahoru | pg_trace


pg_trace

(PHP 4 >= 4.0.1, PHP 5)

pg_trace -- Enable tracing a PostgreSQL connection

Description

bool pg_trace ( string pathname [, string mode [, resource connection]])

pg_trace() enables tracing of the PostgreSQL frontend/backend communication to a debugging file specified as pathname. To fully understand the results, one needs to be familiar with the internals of PostgreSQL communication protocol. For those who are not, it can still be useful for tracing errors in queries sent to the server, you could do for example grep '^To backend' trace.log and see what query actually were sent to the PostgreSQL server. For more information, refer to PostgreSQL manual.

pathname and mode are the same as in fopen() (mode defaults to 'w'), connection specifies the connection to trace and defaults to the last one opened.

pg_trace() returns TRUE if pathname could be opened for logging, FALSE otherwise.

See also fopen() and pg_untrace().

Předcházející | Domů | Další
pg_set_client_encoding | Nahoru | pg_tty


pg_tty

(PHP 3, PHP 4 , PHP 5)

pg_tty -- Return the tty name associated with the connection

Description

string pg_tty ( resource connection)

pg_tty() returns the tty name that server side debugging output is sent to on the given PostgreSQL connection resource.

Předcházející | Domů | Další
pg_trace | Nahoru | pg_unescape_bytea


pg_unescape_bytea

(PHP 4 >= 4.3.0, PHP 5)

pg_unescape_bytea -- Unescape binary for bytea type

Description

string pg_unescape_bytea ( string data)

pg_unescape_bytea() unescapes string from bytea datatype. It returns unescaped string (binary).

Poznámka: When you SELECT bytea type, PostgreSQL returns octal byte value prefixed by \ (e.g. \032). Users are supposed to convert back to binary format by yourself.

This function requires PostgreSQL 7.2 or later. With PostgreSQL 7.2.0 and 7.2.1, bytea type must be casted when you enable multi-byte support. i.e. INSERT INTO test_table (image) VALUES ('$image_escaped'::bytea); PostgreSQL 7.2.2 or later does not need cast. Exception is when client and backend character encoding does not match, there may be multi-byte stream error. User must cast to bytea to avoid this error.

See also pg_escape_bytea() and pg_escape_string()

Předcházející | Domů | Další
pg_tty | Nahoru | pg_untrace


pg_untrace

(PHP 4 >= 4.0.1, PHP 5)

pg_untrace -- Disable tracing of a PostgreSQL connection

Description

bool pg_untrace ( [resource connection])

Stop tracing started by pg_trace(). connection specifies the connection that was traced and defaults to the last one opened.

Returns always TRUE.

See also pg_trace().

Předcházející | Domů | Další
pg_unescape_bytea | Nahoru | pg_update


pg_update

(PHP 4 >= 4.3.0, PHP 5)

pg_update -- Update table.

Description

mixed pg_update ( resource connection, string table_name, array data, array condition [, int options])

pg_update() updates records that matches condition with data. If options is specified, pg_convert() is applied to data with specified options.

Příklad 1. pg_update() example

<?php
    $db = pg_connect('dbname=foo');
    $data = array('field1'=>'AA', 'field2'=>'BB');

    // This is safe, since $_POST is converted automatically
    $res = pg_update($db, 'post_log', $_POST, $data);
    if ($res) {
        echo "Data is updated: $res\n";
    } else {
        echo "User must have sent wrong inputs\n";
    }
?>

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

See also pg_convert().

Předcházející | Domů | Další
pg_untrace | Nahoru | Process Control Functions


Process Control Functions

Manuál PHP
Předcházející Další

LXXXV. Process Control Functions

Úvod

Process Control support in PHP implements the Unix style of process creation, program execution, signal handling and process termination. Process Control should not be enabled within a webserver environment and unexpected results may happen if any Process Control functions are used within a webserver environment.

This documentation is intended to explain the general usage of each of the Process Control functions. For detailed information about Unix process control you are encouraged to consult your systems documentation including fork(2), waitpid(2) and signal(2) or a comprehensive reference such as Advanced Programming in the UNIX Environment by W. Richard Stevens (Addison-Wesley).

PCNTL now uses ticks as the signal handle callback mechanism, which is much faster than the previous mechanism. This change follows the same semantics as using "user ticks". You use the declare() statement to specify the locations in your program where callbacks are allowed to occur. This allows you to minimize the overhead of handling asynchronous events. In the past, compiling PHP with pcntl enabled would always incur this overhead, whether or not your script actually used pcntl.

There is one adjustment that all pcntl scripts prior to PHP 4.3.0 must make for them to work which is to either to use declare() on a section where you wish to allow callbacks or to just enable it across the entire script using the new global syntax of declare().

Poznámka: Toto rozšíření není k dispozici na platformách Windows.

Požadavky

Tyto funkce jsou k dispozici jako součást standardního modulu, který je vždy dostupný.

Instalace

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.

Poznámka: Currently, this module will not function on non-Unix platforms (Windows).

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

The following list of signals are supported by the Process Control functions. Please see your systems signal(7) man page for details of the default behavior of these signals.

WNOHANG (integer)

WUNTRACED (integer)

SIG_IGN (integer)

SIG_DFL (integer)

SIG_ERR (integer)

SIGHUP (integer)

SIGINT (integer)

SIGQUIT (integer)

SIGILL (integer)

SIGTRAP (integer)

SIGABRT (integer)

SIGIOT (integer)

SIGBUS (integer)

SIGFPE (integer)

SIGKILL (integer)

SIGUSR1 (integer)

SIGSEGV (integer)

SIGUSR2 (integer)

SIGPIPE (integer)

SIGALRM (integer)

SIGTERM (integer)

SIGSTKFLT (integer)

SIGCLD (integer)

SIGCHLD (integer)

SIGCONT (integer)

SIGSTOP (integer)

SIGTSTP (integer)

SIGTTIN (integer)

SIGTTOU (integer)

SIGURG (integer)

SIGXCPU (integer)

SIGXFSZ (integer)

SIGVTALRM (integer)

SIGPROF (integer)

SIGWINCH (integer)

SIGPOLL (integer)

SIGIO (integer)

SIGPWR (integer)

SIGSYS (integer)

SIGBABY (integer)

Příklady

This example forks off a daemon process with a signal handler.

Příklad 1. Process Control Example

<?php
declare(ticks=1);

$pid = pcntl_fork();
if ($pid == -1) {
     die("could not fork");
} else if ($pid) {
     exit(); // we are the parent
} else {
     // we are the child
}

// detatch from the controlling terminal
if (!posix_setsid()) {
    die("could not detach from terminal");
}

// setup signal handlers
pcntl_signal(SIGTERM, "sig_handler");
pcntl_signal(SIGHUP, "sig_handler");

// loop forever performing tasks
while (1) {

    // do something interesting here

}

function sig_handler($signo)
{

     switch ($signo) {
         case SIGTERM:
             // handle shutdown tasks
             exit;
             break;
         case SIGHUP:
             // handle restart tasks
             break;
         default:
             // handle all other signals
     }

}

?>

Viz také

A look at the section about POSIX functions may be useful.

Obsah
pcntl_alarm -- Set an alarm clock for delivery of a signal
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_setpriority -- Change the priority of any process
pcntl_signal -- Installs a signal handler
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 -- Returns TRUE if status code represents a successful exit
pcntl_wifsignaled -- Returns TRUE if status code represents a termination due to a signal
pcntl_wifstopped -- Returns TRUE if child process is currently stopped
pcntl_wstopsig -- Returns the signal which caused the child to stop
pcntl_wtermsig -- Returns the signal which caused the child to terminate

Předcházející | Domů | Další
pg_update | Nahoru | pcntl_alarm


pcntl_alarm

(PHP 4 >= 4.3.0, PHP 5)

pcntl_alarm -- Set an alarm clock for delivery of a signal

Description

int pcntl_alarm ( int seconds)

The pcntl_alarm() function creates a timer that will send a SIGALRM signal to the process after seconds seconds. If seconds is zero, no new alarm is created. Any call to pcntl_alarm() will cancel any previously set alarm.

pcntl_alarm() will return 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.

Předcházející | Domů | Další
Process Control Functions | Nahoru | pcntl_exec


pcntl_exec

(PHP 4 >= 4.2.0, PHP 5)

pcntl_exec -- Executes specified program in current process space

Description

bool pcntl_exec ( string path [, array args [, array envs]])

pcntl_exec() executes the program path with arguments args. 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 is an array of argument strings passed to the program.

envs 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.

pcntl_exec() returns FALSE on error and does not return on success.

Předcházející | Domů | Další
pcntl_alarm | Nahoru | pcntl_fork


pcntl_fork

(PHP 4 >= 4.1.0, PHP 5)

pcntl_fork -- Forks the currently running process

Description

int pcntl_fork ( void )

The pcntl_fork() function creates a child process that differs from the parent process only in its PID and PPID. Please see your system's fork(2) man page for specific details as to how fork works on your system.

On success, the PID of the child process is returned in the parent's thread of execution, and a 0 is returned in the child's thread of execution. On failure, a -1 will be returned in the parent's context, no child process will be created, and a PHP error is raised.

Příklad 1. pcntl_fork() example

<?php

$pid = pcntl_fork();
if ($pid == -1) {
     die("could not fork");
} else if ($pid) {
     // we are the parent
} else {
     // we are the child
}

?>

See also pcntl_waitpid() and pcntl_signal().

Předcházející | Domů | Další
pcntl_exec | Nahoru | pcntl_getpriority


pcntl_getpriority

(PHP 5)

pcntl_getpriority -- Get the priority of any process

Description

int pcntl_getpriority ( [int pid])

pcntl_getpriority() gets the priority of pid. If pid is not specified, the pid of the current process is used. Because priority levels can differ between system types and kernel versions, please see your system's getpriority(2) man page for specific details.

pcntl_getpriority() returns the priority of the process or FALSE on error. A lower numerical value causes more favorable scheduling.

Varování

Tato funkce může vracet booleovskou hodnotu FALSE, ale také nebooleovskou hodnotu odpovídající ohodnocení FALSE, například 0 nebo "". Čtěte prosím sekci o typu Boolean, kde najdete více informací. Pro testování návratové hodnoty této funkce použijte operátor ===.

Předcházející | Domů | Další
pcntl_fork | Nahoru | pcntl_setpriority


pcntl_setpriority

(PHP 5)

pcntl_setpriority -- Change the priority of any process

Description

bool pcntl_setpriority ( int priority [, int pid])

pcntl_setpriority() sets the priority of pid to priority. If pid is not specified, the pid of the current process is used.

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.

Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
pcntl_getpriority | Nahoru | pcntl_signal


pcntl_signal

(PHP 4 >= 4.1.0, PHP 5)

pcntl_signal -- Installs a signal handler

Description

bool pcntl_signal ( int signo, callback handle [, bool restart_syscalls])

The pcntl_signal() function installs a new signal handler for the signal indicated by signo. The signal handler is set to handler which may be the name of a user created function, or either of the two global constants SIG_IGN or SIG_DFL. The optional restart_syscalls specifies whether system call restarting should be used when this signal arrives and defaults to TRUE.

Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: The optional restart_syscalls parameter became available in PHP 4.3.0.

Poznámka: The ability to use an object method as a callback became available in PHP 4.3.0. Note that when you set a handler to an object method, that object's reference count is increased which makes it persist until you either change the handler to something else, or your script ends.

Příklad 1. pcntl_signal() example

<?php
// tick use required as of PHP 4.3.0
declare(ticks = 1);

// signal handler function
function sig_handler($signo)
{

     switch ($signo) {
         case SIGTERM:
             // handle shutdown tasks
             exit;
             break;
         case SIGHUP:
             // handle restart tasks
             break;
         case SIGUSR1:
             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, available as of PHP 4.3.0
// pcntl_signal(SIGUSR1, array($obj, "do_something");

echo"Generating signal SIGTERM to self...\n";

// send SIGUSR1 to current process id
posix_kill(posix_getpid(), SIGUSR1);

echo "Done\n"

?>

Poznámka: As of PHP 4.3.0 PCNTL 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 must use the declare() statement to specify the locations in your program where callbacks are allowed to occur for the signal handler to function properly (as used in the above example).

See also pcntl_fork() and pcntl_waitpid().

Předcházející | Domů | Další
pcntl_setpriority | Nahoru | pcntl_wait


pcntl_wait

(PHP 5)

pcntl_wait -- Waits on or returns the status of a forked child

Description

int pcntl_wait ( int &status [, int options])

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.

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.

If wait3 is available on your system (mostly BSD-style systems), you can provide the optional options parameter. If this parameter is not provided, wait will be used for the system call. If wait3 is not available, providing a value for options will have no effect. The value of options is the value of zero or more of the following two constants OR'ed together:

Tabulka 1. Possible values for options if wait3 is available

WNOHANG | Return immediately if no child has exited.
WUNTRACED | Return for children which are stopped, and whose status has not been reported.

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().

Poznámka: This function is equivalent to calling pcntl_waitpid() with a -1 pid and no options.

See also pcntl_fork(),
pcntl_signal(),
pcntl_wifexited(),
pcntl_wifstopped(),
pcntl_wifsignaled(),
pcntl_wexitstatus(),
pcntl_wtermsig(),
pcntl_wstopsig() and
pcntl_waitpid().

Předcházející | Domů | Další
pcntl_signal | Nahoru | pcntl_waitpid


pcntl_waitpid

(PHP 4 >= 4.1.0, PHP 5)

pcntl_waitpid -- Waits on or returns the status of a forked child

Description

int pcntl_waitpid ( int pid, int &status, int options)

The pcntl_waitpid() function suspends execution of the current process until a child as specified by the pid argument has exited, or until a signal is delivered whose action is to terminate the current process or to call a signal handling function. If a child as requested by pid has already exited by the time of the call (a so-called "zombie" process), the function returns immediately. Any system resources used by the child are freed. Please see your system's waitpid(2) man page for specific details as to how waitpid works on your system.

pcntl_waitpid() returns the process ID of the child which exited, -1 on error or zero if WNOHANG was used and no child was available

The value of pid can be one of the following:

Tabulka 1. possible values for pid

< -1 | wait for any child process whose process group ID is equal to the absolute value of pid.
-1 | wait for any child process; this is the same behaviour that the wait function exhibits.
0 | wait for any child process whose process group ID is equal to that of the calling process.
> 0 | wait for the child whose process ID is equal to the value of pid.

Poznámka: Specifying -1 as the pid is equivalent to the functionality pcntl_wait() provides (minus options).

pcntl_waitpid() will store status information
in the status parameter which can be
evaluated using the following functions:
pcntl_wifexited(),
pcntl_wifstopped(),
pcntl_wifsignaled(),
pcntl_wexitstatus(),
pcntl_wtermsig() and
pcntl_wstopsig().

The value of options is the value of zero or more of the following two global constants OR'ed together:

Tabulka 2. possible values for options

WNOHANG | return immediately if no child has exited.
WUNTRACED | return for children which are stopped, and whose status has not been reported.

See also pcntl_fork(),
pcntl_signal(),
pcntl_wifexited(),
pcntl_wifstopped(),
pcntl_wifsignaled(),
pcntl_wexitstatus(),
pcntl_wtermsig() and
pcntl_wstopsig().

Předcházející | Domů | Další
pcntl_wait | Nahoru | pcntl_wexitstatus


pcntl_wexitstatus

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wexitstatus -- Returns the return code of a terminated child

Description

int pcntl_wexitstatus ( int status)

Returns the return code of a terminated child. This function is only useful if pcntl_wifexited() returned TRUE.

The parameter status is the status parameter supplied to a successfull call to pcntl_waitpid().

See also pcntl_waitpid() and pcntl_wifexited().

Předcházející | Domů | Další
pcntl_waitpid | Nahoru | pcntl_wifexited


pcntl_wifexited

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wifexited -- Returns TRUE if status code represents a successful exit

Description

int pcntl_wifexited ( int status)

Returns TRUE if the child status code represents a successful exit.

The parameter status is the status parameter supplied to a successfull call to pcntl_waitpid().

See also pcntl_waitpid() and pcntl_wexitstatus().

Předcházející | Domů | Další
pcntl_wexitstatus | Nahoru | pcntl_wifsignaled


pcntl_wifsignaled

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wifsignaled -- Returns TRUE if status code represents a termination due to a signal

Description

int pcntl_wifsignaled ( int status)

Returns TRUE if the child process exited because of a signal which was not caught.

The parameter status is the status parameter supplied to a successfull call to pcntl_waitpid().

See also pcntl_waitpid() and pcntl_signal().

Předcházející | Domů | Další
pcntl_wifexited | Nahoru | pcntl_wifstopped


pcntl_wifstopped

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wifstopped -- Returns TRUE if child process is currently stopped

Description

int pcntl_wifstopped ( int status)

Returns TRUE if the child process which caused the return is currently stopped; this is only possible if the call to pcntl_waitpid() was done using the option WUNTRACED.

The parameter status is the status parameter supplied to a successfull call to pcntl_waitpid().

See also pcntl_waitpid().

Předcházející | Domů | Další
pcntl_wifsignaled | Nahoru | pcntl_wstopsig


pcntl_wstopsig

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wstopsig -- Returns the signal which caused the child to stop

Description

int pcntl_wstopsig ( int status)

Returns the number of the signal which caused the child to stop. This function is only useful if pcntl_wifstopped() returned TRUE.

The parameter status is the status parameter supplied to a successfull call to pcntl_waitpid().

See also pcntl_waitpid() and pcntl_wifstopped().

Předcházející | Domů | Další
pcntl_wifstopped | Nahoru | pcntl_wtermsig


pcntl_wtermsig

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wtermsig -- Returns the signal which caused the child to terminate

Description

int pcntl_wtermsig ( int status)

Returns the number of the signal that caused the child process to terminate. This function is only useful if pcntl_wifsignaled() returned TRUE.

The parameter status is the status parameter supplied to a successfull call to pcntl_waitpid().

See also pcntl_waitpid(),
pcntl_signal() and
pcntl_wifsignaled().

Předcházející | Domů | Další
pcntl_wstopsig | Nahoru | Funkce spouštění programů


Funkce spouštění programů

Manuál PHP
Předcházející Další

LXXXVI. Funkce spouštění programů

Úvod

Tyto funkce poskytují způsoby spouštění příkazů na vlastním systému a způsoby zabezpečení těchto příkazů.

Požadavky

Tyto funkce jsou k dispozici jako součást standardního modulu, který je vždy dostupný.

Instalace

K používání těchto funkcí není třeba žádná instalace, jsou součástí jádra PHP.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Viz také

Tyto funkce jsou rovněž blízké operátoru zpětný apostrof. Pokud používáte bezpečný režim, musíte také pamatovat na nastavení direktivy safe_mode_exec_dir.

Obsah
escapeshellarg -- ouvozovkování řetězce pro použití jako argument shellu
escapeshellcmd -- escape shellovské metaznaky
exec -- Provést externí program
passthru -- Vykonat externí program a zobrazit nezpracovaný výstup
proc_close -- Close a process opened by proc_open() and return the exit code of that process.
proc_get_status -- Get information about a process opened by proc_open()
proc_nice -- Change the priority of the current process
proc_open -- Execute a command and open file pointers for input/output
proc_terminate -- kills a process opened by proc_open
shell_exec -- Execute command via shell and return the complete output as a string
system -- Provést externí program a zobrazit výstup

Předcházející | Domů | Další
pcntl_wtermsig | Nahoru | escapeshellarg


escapeshellarg

(PHP 4 >= 4.0.3, PHP 5)

escapeshellarg -- ouvozovkování řetězce pro použití jako argument shellu

Popis

string escapeshellarg ( string arg)

EscapeShellArg() přidá jednoduché uvozovky na začátek a konec řetězce a ouvozovkuje/escapes všechny výskyty jednoduchých uvozovek, takže tento řetězec můžete přímo předat shell funkci, přičemž tento bude brán jako bezpečný argument. Tato funkce by se měla používat k oescapování jednotlivých argumentů určených pro shell funkce pocházejících z uživatelského vstupu. Shell funkce zahrnujíc exec(), system() a backtick operator. Standardní použití:

system("ls ".EscapeShellArg($dir))

Viz také exec(), popen(), system(), a backtick operátor.

Předcházející | Domů | Další
Funkce spouštění programů | Nahoru | escapeshellcmd


escapeshellcmd

(PHP 3, PHP 4 , PHP 5)

escapeshellcmd -- escape shellovské metaznaky

Popis

string escapeshellcmd ( string command)

EscapeShellCmd() oescapuje všechny znaky v řetězci, které by se daly použít ke zneužití shellového příkazu k vykonání libovolných příkazů. Tato funkce by se měla používat k zabezpečení toho, aby všechna data pocházející z uživatelského vstupu byla oescapována přetím, než budou předána funkci exec() nebo system(), nebo backtick operátoru. Standardní použití:

$e = EscapeShellCmd($userinput);
system("echo $e"); // tady nás nezajímá, jestli jsou v $e mezery
$f = EscapeShellCmd($filename);
system("touch \"/tmp/$f\"; ls -l \"/tmp/$f\""); // a tady ano, proto použijeme uvozovky

Viz takéescapeshellarg(), exec(), popen(), system(), a backtick operátor.

Předcházející | Domů | Další
escapeshellarg | Nahoru | exec


exec

(PHP 3, PHP 4 , PHP 5)

exec -- Provést externí program

Popis

string exec ( string command [, string array [, int return_var]])

exec() provádí předaný command, nicméně nic netiskne. Pouze vrací poslední řádek výstupu daného příkazu. Pokud potřebujete provést příkaz a nechat všechna data z tohoto příkazu předat rovnou bez jakéhokoli zásahu, použijte funkci PassThru().

Pokud je přítomen argument array, předané pole se naplní všemi řádky výstupu daného příkazu. Pozn.: Pokud toto pole už obsahuje nějaké prvky, exec() připojí tento výstup na konec tohoto pole. Pokud nechcete, aby tato funkce připojovala prvky na konec daného pole, zavolejte na toto pole unset() předtím, než ho předáte funkci exec().

Pokud je vedle argumentu array přítomen argument return_var, návratová hodnota provedeného příkazu se zapíše do této proměnné.

Pozn.: Pokud chcete používat v této funkci data z uživatelského vstupu, měli byste používat EscapeShellCmd(), abyste měli jistotu, že uživatelé nevmanipulují systém do provádění libovolných příkazů.

Pozn.: Pokud touto funkcí nastartujete nějaký program a chcete ho nechat běžet v pozadí, musíte se zajistit přesměrování výstupu z tohoto programu do souboru nebo jineho výstupního streamu, jinak se PHP zasekne až do ukončení běhu tohoto programu.

Viz takésystem(),
PassThru(), popen(),
EscapeShellCmd(), a backtick operátor.

Předcházející | Domů | Další
escapeshellcmd | Nahoru | passthru


passthru

(PHP 3, PHP 4 , PHP 5)

passthru -- Vykonat externí program a zobrazit nezpracovaný výstup

Popis

void passthru ( string command [, int return_var])

Funkce passthru() se podobá funkci exec() v tom ohledu, že provede command. Pokud je přítomen argument return_var, návratová hodnota tohoto příkazu se umístí sem. Tato funkce by se měla používat místo exec() a system(), pokud jsou výstupem daného příkazu binární data, která je potřeba odeslat přímo do browseru. Běžným použitím této funkce vykonat např. pbmplus utility, které mohou poslat stream obrázku na stdout. Nastavením content-type na image/gif a zavoláním pbmplus programu k odeslání gifu na stdout gifu můžete vytvořit PHP skripty, které přímo tvoří obrázky.

Pozn.: Pokud touto funkcí nastartujete nějaký program a chcete ho nechat běžet v pozadí, musíte se zajistit přesměrování výstupu z tohoto programu do souboru nebo jineho výstupního streamu, jinak se PHP zasekne až do ukončení běhu tohoto programu.

Viz takéexec(), system(), popen(), EscapeShellCmd(), a backtick operátor.

Předcházející | Domů | Další
exec | Nahoru | proc_close


proc_close

(PHP 4 >= 4.3.0, PHP 5)

proc_close -- Close a process opened by proc_open() and return the exit code of that process.

Description

int proc_close ( resource process)

proc_close() is similar to pclose() except that it only works on processes opened by proc_open(). proc_close() waits for the process to terminate, and returns its exit code. If you have open pipes to that process, you should fclose() them prior to calling this function in order to avoid a deadlock - the child process may not be able to exit while the pipes are open.

Předcházející | Domů | Další
passthru | Nahoru | proc_get_status


proc_get_status

(PHP 5)

proc_get_status -- Get information about a process opened by proc_open()

Description

array proc_get_status ( resource process)

proc_get_status() fetches data about a process opened using proc_open(). The collected information is returned in an array containing the following elements:

element | type | description
command | string | The command string that was passed to proc_open()
pid | int | process id
running | bool | TRUE if the process is still running, FALSE if it has terminated
signaled | bool | TRUE if the child process has been terminated by an uncaught signal. Always set to FALSE on Windows.
stopped | bool | TRUE if the child process has been stopped by a signal. Always set to FALSE on Windows.
exitcode | int | the exit code returned by the process (which is only meaningful if running is FALSE)
termsig | int | the number of the signal that caused the child process to terminate its execution (only meaningful if signaled is TRUE)
stopsig | int | the number of the signal that caused the child process to stop its execution (only meaningful if stopped is TRUE)

See also proc_open().

Předcházející | Domů | Další
proc_close | Nahoru | proc_nice


proc_nice

(PHP 5)

proc_nice -- Change the priority of the current process

Description

bool proc_nice ( int priority)

proc_nice() changes the priority of the current process. If an error occurs, like the user lacks permission to change the priority, an error of level E_WARNING is generated and FALSE is returned. Otherwise, TRUE is returned.

Poznámka: proc_nice() will only exist if your system has 'nice' capabilities. 'nice' conforms to: SVr4, SVID EXT, AT&T, X/OPEN, BSD 4.3. This means that proc_nice() is not available on Windows.

proc_nice() is not related to proc_open() and its associated functions in any way.

Předcházející | Domů | Další
proc_get_status | Nahoru | proc_open


proc_open

(PHP 4 >= 4.3.0, PHP 5)

proc_open -- Execute a command and open file pointers for input/output

Description

resource proc_open ( string cmd, array descriptorspec, array pipes)

proc_open() is similar to popen() but provides a much greater degree of control over the program execution. cmd is the command to be executed by the shell. descriptorspec is an indexed array where the key represents the descriptor number and the value represents how PHP will pass that descriptor to the child process. pipes will be set to an indexed array of file pointers that correspond to PHP's end of any pipes that are created. The return value is a resource representing the process; you should free it using proc_close() when you are finished with it.

<?php
$descriptorspec = array(
   0 => array("pipe", "r"),  // stdin is a pipe that the child will read from
   1 => array("pipe", "w"),  // stdout is a pipe that the child will write to
   2 => array("file", "/tmp/error-output.txt", "a") // stderr is a file to write to
);
$process = proc_open("php", $descriptorspec, $pipes);
if (is_resource($process)) {
    // $pipes now looks like this:
    // 0 => writeable handle connected to child stdin
    // 1 => readable handle connected to child stdout
    // Any error output will be appended to /tmp/error-output.txt

    fwrite($pipes[0], "<?php echo \"Hello World!\"; ?>");
    fclose($pipes[0]);

    while (!feof($pipes[1])) {
        echo fgets($pipes[1], 1024);
    }
    fclose($pipes[1]);
    // It is important that you close any pipes before calling
    // proc_close in order to avoid a deadlock
    $return_value = proc_close($process);

    echo "command returned $return_value\n";
}
?>

PHP 5RC2 introduces pty support for systems with Unix98 ptys. This allows your script to interact with applications that expect to be talking to a terminal. A pty works like a pipe, but is bi-directional, so there is no need to specify a read/write mode. The example below shows how to use a pty; note that you don't have to have all descriptors talking to a pty. Also note that only one pty is created, even though pty is specified 3 times. In a future version of PHP, it might be possible to do more than just read and write to the pty.

<?php
// Create a psuedo terminal for the child process
$descriptorspec = array(
   0 => array("pty"),
   1 => array("pty"),
   2 => array("pty")
);
$process = proc_open("cvs -d:pserver:cvsread@cvs.php.net:/repository login", $descriptorspec, $pipes);
if (is_resource($process)) {
   // work with it here
}
?>

The file descriptor numbers in descriptorspec are not limited to 0, 1 and 2 - you may specify any valid file descriptor number and it will be passed to the child process. This allows your script to interoperate with other scripts that run as "co-processes". In particular, this is useful for passing passphrases to programs like PGP, GPG and openssl in a more secure manner. It is also useful for reading status information provided by those programs on auxiliary file descriptors.

Poznámka: Windows compatibility: Descriptors beyond 2 (stderr) are made available to the child process as inheritable handles, but since the Windows architecture does not associate file descriptor numbers with low-level handles, the child process does not (yet) have a means of accessing those handles. Stdin, stdout and stderr work as expected.

Poznámka: If you only need a uni-directional (one-way) process pipe, use popen() instead, as it is much easier to use.

See also stream_select(), exec(),
system(),
passthru(), popen(),
escapeshellcmd(), and the backtick operator.

Předcházející | Domů | Další
proc_nice | Nahoru | proc_terminate


proc_terminate

(PHP 5)

proc_terminate -- kills a process opened by proc_open

Description

int proc_terminate ( resource process [, int signal])

Signals a process (created using proc_open()) that it should terminate. proc_terminate() returns immediately and does not wait for the process to terminate.

The optional signal is only useful on POSIX operating systems; you may specify a signal to send to the process using the kill(2) system call. The default is SIGTERM.

proc_terminate() allows you terminate the process and continue with other tasks. You may poll the process (to see if it has stopped yet) by using the proc_get_status() function.

See also proc_open(), proc_close(), and proc_get_status().

Předcházející | Domů | Další
proc_open | Nahoru | shell_exec


shell_exec

(PHP 4 , PHP 5)

shell_exec -- Execute command via shell and return the complete output as a string

Description

string shell_exec ( string cmd)

This function is identical to the backtick operator.

Poznámka: Tyto funkce jsou v bezpečném režimu (safe-mode) deaktivovány.

Předcházející | Domů | Další
proc_terminate | Nahoru | system


system

(PHP 3, PHP 4 , PHP 5)

system -- Provést externí program a zobrazit výstup

Popis

string system ( string command [, int return_var])

system() je verzí stejnojmenné C funkce; vykoná předaný command a zobrazí výstup. Pokud jí předáte proměnnou jako druhý argument, návratová hodnota provedeného příkazu se zapíše do této proměnné.

Pozn.: Pokud chcete používat v této funkci data z uživatelského vstupu, měli byste používat EscapeShellCmd(), abyste měli jistotu, že uživatelé nevmanipulují systém do provádění libovolných příkazů.

Pozn.: Pokud touto funkcí nastartujete nějaký program a chcete ho nechat běžet v pozadí, musíte se zajistit přesměrování výstupu z tohoto programu do souboru nebo jineho výstupního streamu, jinak se PHP zasekne až do ukončení běhu tohoto programu.

Pokud PHP běží jako modul serveru, system() také automaticky flushne výstupní buffer web serveru po každém řádku výstupu.

Při úspěchu vrací poslední řádek výstupu příkazu, při selhání FALSE.

Pokud potřebujete provést příkaz a nechat všechna data z tohoto příkazu předat rovnou bez jakéhokoli zásahu, použijte funkci PassThru().

Viz takéexec(),
PassThru(), popen(),
EscapeShellCmd(), a backtick operátor.

Předcházející | Domů | Další
shell_exec | Nahoru | Printer Functions


Printer Functions

Manuál PHP
Předcházející Další

LXXXVII. Printer Functions

Úvod

These functions are only available under Windows 9.x, ME, NT4 and 2000. They have been added in PHP 4.0.4.

Instalace

Add the line extension=php_printer.dll to your php.ini file.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 1. Printer configuration options

Name | Default | Changeable
printer.default_printer | "" | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Obsah
printer_abort -- Deletes the printer's spool file
printer_close -- Close an open printer connection
printer_create_brush -- Create a new brush
printer_create_dc -- Create a new device context
printer_create_font -- Create a new font
printer_create_pen -- Create a new pen
printer_delete_brush -- Delete a brush
printer_delete_dc -- Delete a device context
printer_delete_font -- Delete a font
printer_delete_pen -- Delete a pen
printer_draw_bmp -- Draw a bmp
printer_draw_chord -- Draw a chord
printer_draw_elipse -- Draw an ellipse
printer_draw_line -- Draw a line
printer_draw_pie -- Draw a pie
printer_draw_rectangle -- Draw a rectangle
printer_draw_roundrect -- Draw a rectangle with rounded corners
printer_draw_text -- Draw text
printer_end_doc -- Close document
printer_end_page -- Close active page
printer_get_option -- Retrieve printer configuration data
printer_list -- Return an array of printers attached to the server
printer_logical_fontheight -- Get logical font height
printer_open -- Open connection to a printer
printer_select_brush -- Select a brush
printer_select_font -- Select a font
printer_select_pen -- Select a pen
printer_set_option -- Configure the printer connection
printer_start_doc -- Start a new document
printer_start_page -- Start a new page
printer_write -- Write data to the printer

Předcházející | Domů | Další
system | Nahoru | printer_abort


printer_abort

(no version information, might be only in CVS)

printer_abort -- Deletes the printer's spool file

Description

void printer_abort ( resource handle)

This function deletes the printers spool file.

handle must be a valid handle to a printer.

Příklad 1. printer_abort() example

<?php
$handle = printer_open();
printer_abort($handle);
printer_close($handle);
?>

Předcházející | Domů | Další
Printer Functions | Nahoru | printer_close


printer_close

(no version information, might be only in CVS)

printer_close -- Close an open printer connection

Description

void printer_close ( resource handle)

This function closes the printer connection. printer_close() also closes the active device context.

handle must be a valid handle to a printer.

Příklad 1. printer_close() example

<?php
$handle = printer_open();
printer_close($handle);
?>

Předcházející | Domů | Další
printer_abort | Nahoru | printer_create_brush


printer_create_brush

(no version information, might be only in CVS)

printer_create_brush -- Create a new brush

Description

mixed printer_create_brush ( int style, string color)

The function creates a new brush and returns a handle to it. A brush is used to fill shapes. For an example see printer_select_brush(). color must be a color in RGB hex format, i.e. "000000" for black, style must be one of the following constants:

  • PRINTER_BRUSH_SOLID: creates a brush with a solid color.

  • PRINTER_BRUSH_DIAGONAL: creates a brush with a 45-degree upward left-to-right hatch ( / ).

  • PRINTER_BRUSH_CROSS: creates a brush with a cross hatch ( + ).

  • PRINTER_BRUSH_DIAGCROSS: creates a brush with a 45 cross hatch ( x ).

  • PRINTER_BRUSH_FDIAGONAL: creates a brush with a 45-degree downward left-to-right hatch ( \ ).

  • PRINTER_BRUSH_HORIZONTAL: creates a brush with a horizontal hatch ( - ).

  • PRINTER_BRUSH_VERTICAL: creates a brush with a vertical hatch ( | ).

  • PRINTER_BRUSH_CUSTOM: creates a custom brush from an BMP file. The second parameter is used to specify the BMP instead of the RGB color code.

Předcházející | Domů | Další
printer_close | Nahoru | printer_create_dc


printer_create_dc

(no version information, might be only in CVS)

printer_create_dc -- Create a new device context

Description

void printer_create_dc ( resource handle)

The function creates a new device context. A device context is used to customize the graphic objects of the document. handle must be a valid handle to a printer.

Příklad 1. printer_create_dc() example

<?php
$handle = printer_open();
printer_start_doc($handle);
printer_start_page($handle);

printer_create_dc($handle);
/* do some stuff with the dc */
printer_set_option($handle, PRINTER_TEXT_COLOR, "333333");
printer_draw_text($handle, 1, 1, "text");
printer_delete_dc($handle);

/* create another dc */
printer_create_dc($handle);
printer_set_option($handle, PRINTER_TEXT_COLOR, "000000");
printer_draw_text($handle, 1, 1, "text");
/* do some stuff with the dc */

printer_delete_dc($handle);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Předcházející | Domů | Další
printer_create_brush | Nahoru | printer_create_font


printer_create_font

(no version information, might be only in CVS)

printer_create_font -- Create a new font

Description

mixed printer_create_font ( string face, int height, int width, int font_weight, bool italic, bool underline, bool strikeout, int orientaton)

The function creates a new font and returns a handle to it. A font is used to draw text. For an example see printer_select_font(). face must be a string specifying the font face. height specifies the font height, and width the font width. The font_weight specifies the font weight (400 is normal), and can be one of the following predefined constants.

  • PRINTER_FW_THIN: sets the font weight to thin (100).

  • PRINTER_FW_ULTRALIGHT: sets the font weight to ultra light (200).

  • PRINTER_FW_LIGHT: sets the font weight to light (300).

  • PRINTER_FW_NORMAL: sets the font weight to normal (400).

  • PRINTER_FW_MEDIUM: sets the font weight to medium (500).

  • PRINTER_FW_BOLD: sets the font weight to bold (700).

  • PRINTER_FW_ULTRABOLD: sets the font weight to ultra bold (800).

  • PRINTER_FW_HEAVY: sets the font weight to heavy (900).

italic can be TRUE or FALSE, and sets whether the font should be italic.

underline can be TRUE or FALSE, and sets whether the font should be underlined.

strikeout can be TRUE or FALSE, and sets whether the font should be stroked out.

orientation specifies a rotation. For an example see printer_select_font().

Předcházející | Domů | Další
printer_create_dc | Nahoru | printer_create_pen


printer_create_pen

(no version information, might be only in CVS)

printer_create_pen -- Create a new pen

Description

mixed printer_create_pen ( int style, int width, string color)

The function creates a new pen and returns a handle to it. A pen is used to draw lines and curves. For an example see printer_select_pen(). color must be a color in RGB hex format, i.e. "000000" for black, width specifies the width of the pen whereas style must be one of the following constants:

  • PRINTER_PEN_SOLID: creates a solid pen.

  • PRINTER_PEN_DASH: creates a dashed pen.

  • PRINTER_PEN_DOT: creates a dotted pen.

  • PRINTER_PEN_DASHDOT: creates a pen with dashes and dots.

  • PRINTER_PEN_DASHDOTDOT: creates a pen with dashes and double dots.

  • PRINTER_PEN_INVISIBLE: creates an invisible pen.

Předcházející | Domů | Další
printer_create_font | Nahoru | printer_delete_brush


printer_delete_brush

(no version information, might be only in CVS)

printer_delete_brush -- Delete a brush

Description

bool printer_delete_brush ( resource handle)

The function deletes the selected brush. For an example see printer_select_brush(). Vrací TRUE při úspěchu, FALSE při selhání. handle must be a valid handle to a brush.

Předcházející | Domů | Další
printer_create_pen | Nahoru | printer_delete_dc


printer_delete_dc

(no version information, might be only in CVS)

printer_delete_dc -- Delete a device context

Description

bool printer_delete_dc ( resource handle)

The function deletes the device context. Vrací TRUE při úspěchu, FALSE při selhání. For an example see printer_create_dc(). handle must be a valid handle to a printer.

Předcházející | Domů | Další
printer_delete_brush | Nahoru | printer_delete_font


printer_delete_font

(no version information, might be only in CVS)

printer_delete_font -- Delete a font

Description

bool printer_delete_font ( resource handle)

The function deletes the selected font. For an example see printer_select_font(). Vrací TRUE při úspěchu, FALSE při selhání. handle must be a valid handle to a font.

Předcházející | Domů | Další
printer_delete_dc | Nahoru | printer_delete_pen


printer_delete_pen

(no version information, might be only in CVS)

printer_delete_pen -- Delete a pen

Description

bool printer_delete_pen ( resource handle)

The function deletes the selected pen. For an example see printer_select_pen(). Vrací TRUE při úspěchu, FALSE při selhání. handle must be a valid handle to a pen.

Předcházející | Domů | Další
printer_delete_font | Nahoru | printer_draw_bmp


printer_draw_bmp

(no version information, might be only in CVS)

printer_draw_bmp -- Draw a bmp

Description

void printer_draw_bmp ( resource handle, string filename, int x, int y)

The function simply draws an bmp the bitmap filename at position x, y. handle must be a valid handle to a printer.

Vrací TRUE při úspěchu, FALSE při selhání.

Příklad 1. printer_draw_bmp() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

printer_draw_bmp($handle, "c:\\image.bmp", 1, 1);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Předcházející | Domů | Další
printer_delete_pen | Nahoru | printer_draw_chord


printer_draw_chord

(no version information, might be only in CVS)

printer_draw_chord -- Draw a chord

Description

void printer_draw_chord ( resource handle, int rec_x, int rec_y, int rec_x1, int rec_y1, int rad_x, int rad_y, int rad_x1, int rad_y1)

The function simply draws an chord. handle must be a valid handle to a printer.

rec_x is the upper left x coordinate of the bounding rectangle.

rec_y is the upper left y coordinate of the bounding rectangle.

rec_x1 is the lower right x coordinate of the bounding rectangle.

rec_y1 is the lower right y coordinate of the bounding rectangle.

rad_x is x coordinate of the radial defining the beginning of the chord.

rad_y is y coordinate of the radial defining the beginning of the chord.

rad_x1 is x coordinate of the radial defining the end of the chord.

rad_y1 is y coordinate of the radial defining the end of the chord.

Příklad 1. printer_draw_chord() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "2222FF");
printer_select_brush($handle, $brush);

printer_draw_chord($handle, 1, 1, 500, 500, 1, 1, 500, 1);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Předcházející | Domů | Další
printer_draw_bmp | Nahoru | printer_draw_elipse


printer_draw_elipse

(no version information, might be only in CVS)

printer_draw_elipse -- Draw an ellipse

Description

void printer_draw_elipse ( resource handle, int ul_x, int ul_y, int lr_x, int lr_y)

The function simply draws an ellipse. handle must be a valid handle to a printer.

ul_x is the upper left x coordinate of the ellipse.

ul_y is the upper left y coordinate of the ellipse.

lr_x is the lower right x coordinate of the ellipse.

lr_y is the lower right y coordinate of the ellipse.

Příklad 1. printer_draw_elipse() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "2222FF");
printer_select_brush($handle, $brush);

printer_draw_elipse($handle, 1, 1, 500, 500);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Předcházející | Domů | Další
printer_draw_chord | Nahoru | printer_draw_line


printer_draw_line

(no version information, might be only in CVS)

printer_draw_line -- Draw a line

Description

void printer_draw_line ( resource printer_handle, int from_x, int from_y, int to_x, int to_y)

The function simply draws a line from position from_x, from_y to position to_x, to_y using the selected pen. printer_handle must be a valid handle to a printer.

Příklad 1. printer_draw_line() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 30, "000000");
printer_select_pen($handle, $pen);

printer_draw_line($handle, 1, 10, 1000, 10);
printer_draw_line($handle, 1, 60, 500, 60);

printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Předcházející | Domů | Další
printer_draw_elipse | Nahoru | printer_draw_pie


printer_draw_pie

(no version information, might be only in CVS)

printer_draw_pie -- Draw a pie

Description

void printer_draw_pie ( resource handle, int rec_x, int rec_y, int rec_x1, int rec_y1, int rad1_x, int rad1_y, int rad2_x, int rad2_y)

The function simply draws an pie. handle must be a valid handle to a printer.

rec_x is the upper left x coordinate of the bounding rectangle.

rec_y is the upper left y coordinate of the bounding rectangle.

rec_x1 is the lower right x coordinate of the bounding rectangle.

rec_y1 is the lower right y coordinate of the bounding rectangle.

rad1_x is x coordinate of the first radial's ending.

rad1_y is y coordinate of the first radial's ending.

rad2_x is x coordinate of the second radial's ending.

rad2_y is y coordinate of the second radial's ending.

Příklad 1. printer_draw_pie() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "2222FF");
printer_select_brush($handle, $brush);

printer_draw_pie($handle, 1, 1, 500, 500, 1, 1, 500, 1);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Předcházející | Domů | Další
printer_draw_line | Nahoru | printer_draw_rectangle


printer_draw_rectangle

(no version information, might be only in CVS)

printer_draw_rectangle -- Draw a rectangle

Description

void printer_draw_rectangle ( resource handle, int ul_x, int ul_y, int lr_x, int lr_y)

The function simply draws a rectangle.

handle must be a valid handle to a printer.

ul_x is the upper left x coordinate of the rectangle.

ul_y is the upper left y coordinate of the rectangle.

lr_x is the lower right x coordinate of the rectangle.

lr_y is the lower right y coordinate of the rectangle.

Příklad 1. printer_draw_rectangle() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "2222FF");
printer_select_brush($handle, $brush);

printer_draw_rectangle($handle, 1, 1, 500, 500);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Předcházející | Domů | Další
printer_draw_pie | Nahoru | printer_draw_roundrect


printer_draw_roundrect

(no version information, might be only in CVS)

printer_draw_roundrect -- Draw a rectangle with rounded corners

Description

void printer_draw_roundrect ( resource handle, int ul_x, int ul_y, int lr_x, int lr_y, int width, int height)

The function simply draws a rectangle with rounded corners.

handle must be a valid handle to a printer.

ul_x is the upper left x coordinate of the rectangle.

ul_y is the upper left y coordinate of the rectangle.

lr_x is the lower right x coordinate of the rectangle.

lr_y is the lower right y coordinate of the rectangle.

width is the width of the ellipse.

height is the height of the ellipse.

Příklad 1. printer_draw_roundrect() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "2222FF");
printer_select_brush($handle, $brush);

printer_draw_roundrect($handle, 1, 1, 500, 500, 200, 200);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Předcházející | Domů | Další
printer_draw_rectangle | Nahoru | printer_draw_text


printer_draw_text

(no version information, might be only in CVS)

printer_draw_text -- Draw text

Description

void printer_draw_text ( resource printer_handle, string text, int x, int y)

The function simply draws text at position x, y using the selected font. printer_handle must be a valid handle to a printer.

Příklad 1. printer_draw_text() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$font = printer_create_font("Arial", 72, 48, 400, false, false, false, 0);
printer_select_font($handle, $font);
printer_draw_text($handle, "test", 10, 10);
printer_delete_font($font);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Předcházející | Domů | Další
printer_draw_roundrect | Nahoru | printer_end_doc


printer_end_doc

(no version information, might be only in CVS)

printer_end_doc -- Close document

Description

bool printer_end_doc ( resource handle)

Closes a new document in the printer spooler. The document is now ready for printing. For an example see printer_start_doc(). handle must be a valid handle to a printer.

Předcházející | Domů | Další
printer_draw_text | Nahoru | printer_end_page


printer_end_page

(no version information, might be only in CVS)

printer_end_page -- Close active page

Description

bool printer_end_page ( resource handle)

The function closes the active page in the active document. For an example see printer_start_doc(). handle must be a valid handle to a printer.

Předcházející | Domů | Další
printer_end_doc | Nahoru | printer_get_option


printer_get_option

(no version information, might be only in CVS)

printer_get_option -- Retrieve printer configuration data

Description

mixed printer_get_option ( resource handle, string option)

The function retrieves the configuration setting of option. handle must be a valid handle to a printer. Take a look at printer_set_option() for the settings that can be retrieved, additionally the following settings can be retrieved:

  • PRINTER_DEVICENAME returns the devicename of the printer.

  • PRINTER_DRIVERVERSION returns the printer driver version.

Příklad 1. printer_get_option() example

<?php
$handle = printer_open();
echo printer_get_option($handle, PRINTER_DRIVERVERSION);
printer_close($handle);
?>

Předcházející | Domů | Další
printer_end_page | Nahoru | printer_list


printer_list

(no version information, might be only in CVS)

printer_list -- Return an array of printers attached to the server

Description

array printer_list ( int enumtype [, string name [, int level]])

The function enumerates available printers and their capabilities. level sets the level of information request. Can be 1,2,4 or 5. enumtype must be one of the following predefined constants:

  • PRINTER_ENUM_LOCAL: enumerates the locally installed printers.

  • PRINTER_ENUM_NAME: enumerates the printer of name, can be a server, domain or print provider.

  • PRINTER_ENUM_SHARED: this parameter can't be used alone, it has to be OR'ed with other parameters, i.e. PRINTER_ENUM_LOCAL to detect the locally shared printers.

  • PRINTER_ENUM_DEFAULT: (Win9.x only) enumerates the default printer.

  • PRINTER_ENUM_CONNECTIONS: (WinNT/2000 only) enumerates the printers to which the user has made connections.

  • PRINTER_ENUM_NETWORK: (WinNT/2000 only) enumerates network printers in the computer's domain. Only valid if level is 1.

  • PRINTER_ENUM_REMOTE: (WinNT/2000 only) enumerates network printers and print servers in the computer's domain. Only valid if level is 1.

Příklad 1. printer_list() example

<?php
/* detect locally shared printer */
var_dump(printer_list(PRINTER_ENUM_LOCAL | PRINTER_ENUM_SHARED));
?>

Předcházející | Domů | Další
printer_get_option | Nahoru | printer_logical_fontheight


printer_logical_fontheight

(no version information, might be only in CVS)

printer_logical_fontheight -- Get logical font height

Description

int printer_logical_fontheight ( resource handle, int height)

The function calculates the logical font height of height. handle must be a valid handle to a printer.

Příklad 1. printer_logical_fontheight() example

<?php
$handle = printer_open();
echo printer_logical_fontheight($handle, 72);
printer_close($handle);
?>

Předcházející | Domů | Další
printer_list | Nahoru | printer_open


printer_open

(no version information, might be only in CVS)

printer_open -- Open connection to a printer

Description

mixed printer_open ( [string devicename])

This function tries to open a connection to the printer devicename, and returns a handle on success or FALSE on failure.

If no parameter was given it tries to open a connection to the default printer (if not specified in php.ini as printer.default_printer, PHP tries to detect it).

printer_open() also starts a device context.

Příklad 1. printer_open() example

<?php
$handle = printer_open("HP Deskjet 930c");
$handle = printer_open();
?>

Předcházející | Domů | Další
printer_logical_fontheight | Nahoru | printer_select_brush


printer_select_brush

(no version information, might be only in CVS)

printer_select_brush -- Select a brush

Description

void printer_select_brush ( resource printer_handle, resource brush_handle)

The function selects a brush as the active drawing object of the actual device context. A brush is used to fill shapes. If you draw an rectangle the brush is used to draw the shapes, while the pen is used to draw the border. If you haven't selected a brush before drawing shapes, the shape won't be filled. printer_handle must be a valid handle to a printer. brush_handle must be a valid handle to a brush.

Příklad 1. printer_select_brush() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);
$brush = printer_create_brush(PRINTER_BRUSH_CUSTOM, "c:\\brush.bmp");
printer_select_brush($handle, $brush);

printer_draw_rectangle($handle, 1, 1, 500, 500);

printer_delete_brush($brush);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "000000");
printer_select_brush($handle, $brush);
printer_draw_rectangle($handle, 1, 501, 500, 1001);
printer_delete_brush($brush);

printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Předcházející | Domů | Další
printer_open | Nahoru | printer_select_font


printer_select_font

(no version information, might be only in CVS)

printer_select_font -- Select a font

Description

void printer_select_font ( resource printer_handle, resource font_handle)

The function selects a font to draw text. printer_handle must be a valid handle to a printer. font_handle must be a valid handle to a font.

Příklad 1. printer_select_font() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$font = printer_create_font("Arial", 148, 76, PRINTER_FW_MEDIUM, false, false, false, -50);
printer_select_font($handle, $font);
printer_draw_text($handle, "PHP is simply cool", 40, 40);
printer_delete_font($font);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Předcházející | Domů | Další
printer_select_brush | Nahoru | printer_select_pen


printer_select_pen

(no version information, might be only in CVS)

printer_select_pen -- Select a pen

Description

void printer_select_pen ( resource printer_handle, resource pen_handle)

The function selects a pen as the active drawing object of the actual device context. A pen is used to draw lines and curves. I.e. if you draw a single line the pen is used. If you draw an rectangle the pen is used to draw the borders, while the brush is used to fill the shape. If you haven't selected a pen before drawing shapes, the shape won't be outlined. printer_handle must be a valid handle to a printer. pen_handle must be a valid handle to a pen.

Příklad 1. printer_select_pen() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 30, "2222FF");
printer_select_pen($handle, $pen);

printer_draw_line($handle, 1, 60, 500, 60);

printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Předcházející | Domů | Další
printer_select_font | Nahoru | printer_set_option


printer_set_option

(no version information, might be only in CVS)

printer_set_option -- Configure the printer connection

Description

bool printer_set_option ( resource handle, int option, mixed value)

The function sets the following options for the current connection. handle must be a valid handle to a printer. For option can be one of the following constants:

  • PRINTER_COPIES: sets how many copies should be printed, value must be an integer.

  • PRINTER_MODE: specifies the type of data (text, raw or emf), value must be a string.

  • PRINTER_TITLE: specifies the name of the document, value must be a string.

  • PRINTER_ORIENTATION: specifies the orientation of the paper, value can be either PRINTER_ORIENTATION_PORTRAIT or PRINTER_ORIENTATION_LANDSCAPE

  • PRINTER_RESOLUTION_Y: specifies the y-resolution in DPI, value must be an integer.

  • PRINTER_RESOLUTION_X: specifies the x-resolution in DPI, value must be an integer.

  • PRINTER_PAPER_FORMAT: specifies the a predefined paper format, set value to PRINTER_FORMAT_CUSTOM if you want to specify a custom format with PRINTER_PAPER_WIDTH and PRINTER_PAPER_LENGTH. value can be one of the following constants.

    • PRINTER_FORMAT_CUSTOM: let's you specify a custom paper format.

    • PRINTER_FORMAT_LETTER: specifies standard letter format (8 1/2- by 11-inches).

    • PRINTER_FORMAT_LETTER: specifies standard legal format (8 1/2- by 14-inches).

    • PRINTER_FORMAT_A3: specifies standard A3 format (297- by 420-millimeters).

    • PRINTER_FORMAT_A4: specifies standard A4 format (210- by 297-millimeters).

    • PRINTER_FORMAT_A5: specifies standard A5 format (148- by 210-millimeters).

    • PRINTER_FORMAT_B4: specifies standard B4 format (250- by 354-millimeters).

    • PRINTER_FORMAT_B5: specifies standard B5 format (182- by 257-millimeter).

    • PRINTER_FORMAT_FOLIO: specifies standard FOLIO format (8 1/2- by 13-inch).

  • PRINTER_PAPER_LENGTH: if PRINTER_PAPER_FORMAT is set to PRINTER_FORMAT_CUSTOM, PRINTER_PAPER_LENGTH specifies a custom paper length in mm, value must be an integer.

  • PRINTER_PAPER_WIDTH: if PRINTER_PAPER_FORMAT is set to PRINTER_FORMAT_CUSTOM, PRINTER_PAPER_WIDTH specifies a custom paper width in mm, value must be an integer.

  • PRINTER_SCALE: specifies the factor by which the printed output is to be scaled. the page size is scaled from the physical page size by a factor of scale/100. for example if you set the scale to 50, the output would be half of its original size. value must be an integer.

  • PRINTER_BACKGROUND_COLOR: specifies the background color for the actual device context, value must be a string containing the rgb information in hex format i.e. "005533".

  • PRINTER_TEXT_COLOR: specifies the text color for the actual device context, value must be a string containing the rgb information in hex format i.e. "005533".

  • PRINTER_TEXT_ALIGN: specifies the text alignment for the actual device context, value can be combined through OR'ing the following constants:

    • PRINTER_TA_BASELINE: text will be aligned at the base line.

    • PRINTER_TA_BOTTOM: text will be aligned at the bottom.

    • PRINTER_TA_TOP: text will be aligned at the top.

    • PRINTER_TA_CENTER: text will be aligned at the center.

    • PRINTER_TA_LEFT: text will be aligned at the left.

    • PRINTER_TA_RIGHT: text will be aligned at the right.

Příklad 1. printer_set_option() example

<?php
$handle = printer_open();
printer_set_option($handle, PRINTER_SCALE, 75);
printer_set_option($handle, PRINTER_TEXT_ALIGN, PRINTER_TA_LEFT);
printer_close($handle);
?>

Předcházející | Domů | Další
printer_select_pen | Nahoru | printer_start_doc


printer_start_doc

(no version information, might be only in CVS)

printer_start_doc -- Start a new document

Description

bool printer_start_doc ( resource handle [, string document])

The function creates a new document in the printer spooler. A document can contain multiple pages, it's used to schedule the print job in the spooler. handle must be a valid handle to a printer. The optional parameter document can be used to set an alternative document name.

Příklad 1. printer_start_doc() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Předcházející | Domů | Další
printer_set_option | Nahoru | printer_start_page


printer_start_page

(no version information, might be only in CVS)

printer_start_page -- Start a new page

Description

bool printer_start_page ( resource handle)

The function creates a new page in the active document. For an example see printer_start_doc(). handle must be a valid handle to a printer.

Předcházející | Domů | Další
printer_start_doc | Nahoru | printer_write


printer_write

(no version information, might be only in CVS)

printer_write -- Write data to the printer

Description

bool printer_write ( resource handle, string content)

Writes content directly to the printer. Vrací TRUE při úspěchu, FALSE při selhání.

handle must be a valid handle to a printer.

Příklad 1. printer_write() example

<?php
$handle = printer_open();
printer_write($handle, "Text to print");
printer_close($handle);
?>

Předcházející | Domů | Další
printer_start_page | Nahoru | Pspell Functions


Pspell Functions

Manuál PHP
Předcházející Další

LXXXVIII. Pspell Functions

Úvod

These functions allow you to check the spelling of a word and offer suggestions.

Požadavky

To compile PHP with pspell support, you need the aspell library, available from http://aspell.sourceforge.net/.

Instalace

If you have the libraries needed add the --with-pspell[=dir] option when compiling PHP.

Note to Win32 Users: win32 support is available only in PHP 4.3.3 and later versions. Also, you must have aspell 0.50 or newer installed. In order to enable this module under Windows, you must copy aspell-15.dll from the bin folder of your aspell installation to a folder where PHP will be able to find it. C:\PHP or the SYSTEM32 folder of your windows machine (Ex: C:\WINNT\SYSTEM32 or C:\WINDOWS\SYSTEM32) are good choices.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

PSPELL_FAST (integer)

PSPELL_NORMAL (integer)

PSPELL_BAD_SPELLERS (integer)

PSPELL_RUN_TOGETHER (integer)

Obsah
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_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

Předcházející | Domů | Další
printer_write | Nahoru | pspell_add_to_personal


pspell_add_to_personal

(PHP 4 >= 4.0.2, PHP 5)

pspell_add_to_personal -- Add the word to a personal wordlist

Description

int pspell_add_to_personal ( int dictionary_link, string word)

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(). Please, note that this function will not work unless you have pspell .11.2 and aspell .32.5 or later.

Příklad 1. pspell_add_to_personal()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
$pspell_link = pspell_new_config($pspell_config);

pspell_add_to_personal($pspell_link, "Vlad");
pspell_save_wordlist($pspell_link);
?>

Předcházející | Domů | Další
Pspell Functions | Nahoru | pspell_add_to_session


pspell_add_to_session

(PHP 4 >= 4.0.2, PHP 5)

pspell_add_to_session -- Add the word to the wordlist in the current session

Description

int pspell_add_to_session ( int dictionary_link, string word)

pspell_add_to_session() adds a word to the wordlist associated with the current session. It is very similar to pspell_add_to_personal()

Předcházející | Domů | Další
pspell_add_to_personal | Nahoru | pspell_check


pspell_check

(PHP 4 >= 4.0.2, PHP 5)

pspell_check -- Check a word

Description

bool pspell_check ( int dictionary_link, string word)

pspell_check() checks the spelling of a word and returns TRUE if the spelling is correct, FALSE if not.

Příklad 1. pspell_check()

<?php
$pspell_link = pspell_new("en");

if (pspell_check($pspell_link, "testt")) {
    echo "This is a valid spelling";
} else {
    echo "Sorry, wrong spelling";
}
?>

Předcházející | Domů | Další
pspell_add_to_session | Nahoru | pspell_clear_session


pspell_clear_session

(PHP 4 >= 4.0.2, PHP 5)

pspell_clear_session -- Clear the current session

Description

int pspell_clear_session ( int dictionary_link)

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.

Příklad 1. pspell_add_to_personal()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
$pspell_link = pspell_new_config($pspell_config);

pspell_add_to_personal($pspell_link, "Vlad");
pspell_clear_session($pspell_link);
pspell_save_wordlist($pspell_link);    //"Vlad" will not be saved
?>

Předcházející | Domů | Další
pspell_check | Nahoru | pspell_config_create


pspell_config_create

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_create -- Create a config used to open a dictionary

Description

int pspell_config_create ( string language [, string spelling [, string jargon [, string encoding]]])

pspell_config_create() has a very similar syntax to pspell_new(). In fact, using pspell_config_create() 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.

The language parameter is the language code which consists of the two letter ISO 639 language code and an optional two letter ISO 3166 country code after a dash or underscore.

The spelling parameter is the requested spelling for languages with more than one spelling such as English. Known values are 'american', 'british', and 'canadian'.

The jargon parameter contains extra information to distinguish two different words lists that have the same language and spelling parameters.

The encoding parameter is the encoding that words are expected to be in. Valid values are 'utf-8', 'iso8859-*', 'koi8-r', 'viscii', 'cp1252', 'machine unsigned 16', 'machine unsigned 32'. This parameter is largely untested, so be careful when using.

The mode parameter is the mode in which spellchecker will work. There are several modes available:

  • PSPELL_FAST - Fast mode (least number of suggestions)

  • PSPELL_NORMAL - Normal mode (more suggestions)

  • PSPELL_BAD_SPELLERS - Slow mode (a lot of suggestions)

For more information and examples, check out inline manual pspell website:http://aspell.net/.

Příklad 1. pspell_config_create()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_personal($pspell_config, "en");
?>

Předcházející | Domů | Další
pspell_clear_session | Nahoru | pspell_config_ignore


pspell_config_ignore

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_ignore -- Ignore words less than N characters long

Description

int pspell_config_ignore ( int dictionary_link, int n)

pspell_config_ignore() should be used on a config before calling pspell_new_config(). This function allows short words to be skipped by the spellchecker. Words less then n characters will be skipped.

Příklad 1. pspell_config_ignore()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_ignore($pspell_config, 5);
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "abcd");    //will not result in an error
?>

Předcházející | Domů | Další
pspell_config_create | Nahoru | pspell_config_mode


pspell_config_mode

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_mode -- Change the mode number of suggestions returned

Description

int pspell_config_mode ( int dictionary_link, int mode)

pspell_config_mode() should be used on a config before calling pspell_new_config(). This function determines how many suggestions will be returned by pspell_suggest().

The mode parameter is the mode in which spellchecker will work. There are several modes available:

  • PSPELL_FAST - Fast mode (least number of suggestions)

  • PSPELL_NORMAL - Normal mode (more suggestions)

  • PSPELL_BAD_SPELLERS - Slow mode (a lot of suggestions)

Příklad 1. pspell_config_mode()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_mode($pspell_config, PSPELL_FAST);
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "thecat");
?>

Předcházející | Domů | Další
pspell_config_ignore | Nahoru | pspell_config_personal


pspell_config_personal

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_personal -- Set a file that contains personal wordlist

Description

int pspell_config_personal ( int dictionary_link, string file)

pspell_config_personal() should be used on a config before calling pspell_new_config(). The personal wordlist will be loaded and used in addition to the standard one after you call pspell_new_config(). If the file does not exist, it will be created. The file is also the file where pspell_save_wordlist() will save personal wordlist to. The file should be writable by whoever PHP runs as (e.g. nobody). Please, note that this function will not work unless you have pspell .11.2 and aspell .32.5 or later.

Příklad 1. pspell_config_personal()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "thecat");
?>

Předcházející | Domů | Další
pspell_config_mode | Nahoru | pspell_config_repl


pspell_config_repl

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_repl -- Set a file that contains replacement pairs

Description

int pspell_config_repl ( int dictionary_link, string file)

pspell_config_repl() should be used on a config before calling pspell_new_config(). The replacement pairs improve the quality of the spellchecker. When a word is misspelled, and a proper suggestion was not found in the list, pspell_store_replacement() can be used to store a replacement pair and then pspell_save_wordlist() to save the wordlist along with the replacement pairs. The file should be writable by whoever PHP runs as (e.g. nobody). Please, note that this function will not work unless you have pspell .11.2 and aspell .32.5 or later.

Příklad 1. pspell_config_repl()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "thecat");
?>

Předcházející | Domů | Další
pspell_config_personal | Nahoru | pspell_config_runtogether


pspell_config_runtogether

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_runtogether -- Consider run-together words as valid compounds

Description

int pspell_config_runtogether ( int dictionary_link, bool flag)

pspell_config_runtogether() should be used on a config before calling pspell_new_config(). This function determines whether run-together words will be treated as legal compounds. That is, "thecat" will be a legal compound, 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.

Příklad 1. pspell_config_runtogether()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_runtogether($pspell_config, true);
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "thecat");
?>

Předcházející | Domů | Další
pspell_config_repl | Nahoru | pspell_config_save_repl


pspell_config_save_repl

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_save_repl -- Determine whether to save a replacement pairs list along with the wordlist

Description

int pspell_config_save_repl ( int dictionary_link, bool flag)

pspell_config_save_repl() should be used on a config before calling pspell_new_config(). It determines whether pspell_save_wordlist() will save the replacement pairs along with the wordlist. Usually there is no need to use this function because if pspell_config_repl() is used, the replacement pairs will be saved by pspell_save_wordlist() anyway, and if it is not, the replacement pairs will not be saved. Please, note that this function will not work unless you have pspell .11.2 and aspell .32.5 or later.

Předcházející | Domů | Další
pspell_config_runtogether | Nahoru | pspell_new_config


pspell_new_config

(PHP 4 >= 4.0.2, PHP 5)

pspell_new_config -- Load a new dictionary with settings based on a given config

Description

int pspell_new_config ( int config)

pspell_new_config() opens up a new dictionary with settings specified in a config, created with with pspell_config_create() and modified with pspell_config_*() functions. This method provides you with the most flexibility and has all the functionality provided by pspell_new() and pspell_new_personal().

The config parameter is the one returned by pspell_config_create() when the config was created.

Příklad 1. pspell_new_config()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_config($pspell_config);
?>

Předcházející | Domů | Další
pspell_config_save_repl | Nahoru | pspell_new_personal


pspell_new_personal

(PHP 4 >= 4.0.2, PHP 5)

pspell_new_personal -- Load a new dictionary with personal wordlist

Description

int pspell_new_personal ( string personal, string language [, string spelling [, string jargon [, string encoding [, int mode]]]])

pspell_new_personal() opens up a new dictionary with a personal wordlist and returns the dictionary link identifier for use in other pspell functions. The wordlist can be modified and saved with pspell_save_wordlist(), if desired. However, the replacement pairs are not saved. In order to save replacement pairs, you should create a config using pspell_config_create(), set the personal wordlist file with pspell_config_personal(), set the file for replacement pairs with pspell_config_repl(), and open a new dictionary with pspell_new_config().

The personal parameter specifies the file where words added to the personal list will be stored. It should be an absolute filename beginning with '/' because otherwise it will be relative to $HOME, which is "/root" for most systems, and is probably not what you want.

The language parameter is the language code which consists of the two letter ISO 639 language code and an optional two letter ISO 3166 country code after a dash or underscore.

The spelling parameter is the requested spelling for languages with more than one spelling such as English. Known values are 'american', 'british', and 'canadian'.

The jargon parameter contains extra information to distinguish two different words lists that have the same language and spelling parameters.

The encoding parameter is the encoding that words are expected to be in. Valid values are 'utf-8', 'iso8859-*', 'koi8-r', 'viscii', 'cp1252', 'machine unsigned 16', 'machine unsigned 32'. This parameter is largely untested, so be careful when using.

The mode parameter is the mode in which spellchecker will work. There are several modes available:

  • PSPELL_FAST - Fast mode (least number of suggestions)

  • PSPELL_NORMAL - Normal mode (more suggestions)

  • PSPELL_BAD_SPELLERS - Slow mode (a lot of suggestions)

  • PSPELL_RUN_TOGETHER - Consider run-together words as legal compounds. That is, "thecat" will be a legal compound, 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.

For more information and examples, check out inline manual pspell website:http://aspell.net/.

Příklad 1. pspell_new_personal()

<?php
$pspell_link = pspell_new_personal ("/var/dictionaries/custom.pws",
        "en", "", "", "", PSPELL_FAST|PSPELL_RUN_TOGETHER);
?>

Předcházející | Domů | Další
pspell_new_config | Nahoru | pspell_new


pspell_new

(PHP 4 >= 4.0.2, PHP 5)

pspell_new -- Load a new dictionary

Description

int pspell_new ( string language [, string spelling [, string jargon [, string encoding [, int mode]]]])

pspell_new() opens up a new dictionary and returns the dictionary link identifier for use in other pspell functions.

The language parameter is the language code which consists of the two letter ISO 639 language code and an optional two letter ISO 3166 country code after a dash or underscore.

The spelling parameter is the requested spelling for languages with more than one spelling such as English. Known values are 'american', 'british', and 'canadian'.

The jargon parameter contains extra information to distinguish two different words lists that have the same language and spelling parameters.

The encoding parameter is the encoding that words are expected to be in. Valid values are 'utf-8', 'iso8859-*', 'koi8-r', 'viscii', 'cp1252', 'machine unsigned 16', 'machine unsigned 32'. This parameter is largely untested, so be careful when using.

The mode parameter is the mode in which spellchecker will work. There are several modes available:

  • PSPELL_FAST - Fast mode (least number of suggestions)

  • PSPELL_NORMAL - Normal mode (more suggestions)

  • PSPELL_BAD_SPELLERS - Slow mode (a lot of suggestions)

  • PSPELL_RUN_TOGETHER - Consider run-together words as legal compounds. That is, "thecat" will be a legal compound, 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.

For more information and examples, check out inline manual pspell website:http://aspell.net/.

Příklad 1. pspell_new()

<?php
$pspell_link = pspell_new("en", "", "", "",
                           (PSPELL_FAST|PSPELL_RUN_TOGETHER));
?>

Předcházející | Domů | Další
pspell_new_personal | Nahoru | pspell_save_wordlist


pspell_save_wordlist

(PHP 4 >= 4.0.2, PHP 5)

pspell_save_wordlist -- Save the personal wordlist to a file

Description

int pspell_save_wordlist ( int dictionary_link)

pspell_save_wordlist() saves the personal wordlist from the current session. The dictionary has to be open with pspell_new_personal(), and the location of files to be saved specified with pspell_config_personal() and (optionally) pspell_config_repl(). Please, note that this function will not work unless you have pspell .11.2 and aspell .32.5 or later.

Příklad 1. pspell_add_to_personal()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/tmp/dicts/newdict");
$pspell_link = pspell_new_config($pspell_config);

pspell_add_to_personal($pspell_link, "Vlad");
pspell_save_wordlist($pspell_link);
?>

Předcházející | Domů | Další
pspell_new | Nahoru | pspell_store_replacement


pspell_store_replacement

(PHP 4 >= 4.0.2, PHP 5)

pspell_store_replacement -- Store a replacement pair for a word

Description

int pspell_store_replacement ( int dictionary_link, string misspelled, string correct)

pspell_store_replacement() stores a replacement pair for a word, so that replacement can be returned by pspell_suggest() later. In order to be able to take advantage of this function, you have to use pspell_new_personal() to open the dictionary. In order to permanently save the replacement pair, you have to use pspell_config_personal() and pspell_config_repl() to set the path where to save your custom wordlists, and then use pspell_save_wordlist() for the changes to be written to disk. Please, note that this function will not work unless you have pspell .11.2 and aspell .32.5 or later.

Příklad 1. pspell_store_replacement()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_config($pspell_config);

pspell_store_replacement($pspell_link, $misspelled, $correct);
pspell_save_wordlist($pspell_link);
?>

Předcházející | Domů | Další
pspell_save_wordlist | Nahoru | pspell_suggest


pspell_suggest

(PHP 4 >= 4.0.2, PHP 5)

pspell_suggest -- Suggest spellings of a word

Description

array pspell_suggest ( int dictionary_link, string word)

pspell_suggest() returns an array of possible spellings for the given word.

Příklad 1. pspell_suggest() example

<?php
$pspell_link = pspell_new("en");

if (!pspell_check($pspell_link, "testt")) {
    $suggestions = pspell_suggest($pspell_link, "testt");

    foreach ($suggestions as $suggestion) {
        echo "Possible spelling: $suggestion<br />";
    }
}
?>

Předcházející | Domů | Další
pspell_store_replacement | Nahoru | GNU Readline


GNU Readline

Manuál PHP
Předcházející Další

LXXXIX. GNU Readline

Úvod

readline() funkce implementují rozhraní ke GNU Readline knihovně. Tyto funkce poskytují editovatelné příkazové řádky. Příkladem může být způsob, jakým vám Bash umožňuje vkládat znaky nebo listovat historií příkazů pomocí kláves pro pohyb kurzoru. Z interaktivní povahy této knihovny vyplývá, že není příliš užitečná pro psaní webových aplikací, ale může být užitečná při psaní skriptů, které se mají spouštět z příkazové řádky.

Poznámka: Toto rozšíření není k dispozici na platformách Windows.

Požadavky

Abyste mohli používat readline funkce, musíte nainstalovat libreadline. Domovskou stránkou GNU Readline projektu je http://cnswww.cns.cwru.edu/~chet/readline/rltop.html. Udržuje jej Chet Ramey, který je také autorem Bashe.

Tyto funkce můžete používat také s knihovnou libedit, ne-GPL náhradou za knihovnu readline. Knihovna libedit je pod licencí BSD a stáhnout lze z http://sourceforge.net/projects/libedit/.

Instalace

Abyste mohli používat tyto funkce, musíte zkompilovat CGI nebo CLI verzi PHP s podporou pro readline. PHP musíte zkonfigurovat s volbou --with-readline[=DIR]. Pokud chcete používat libedit jako náhradu za readline, zkonfigurujte PHP s volbou --with-libedit[=DIR].

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Obsah
readline_add_history -- Přidat řádek do historie
readline_clear_history -- Smazat historii
readline_completion_function -- Zaregistrovat dokončující funkci
readline_info -- Zjistit/nastavit různé interní proměnné readline
readline_list_history -- Vypsat historii
readline_read_history -- Vrátit historii
readline_write_history -- Zapsat historii
readline -- Přečíst řádek

Předcházející | Domů | Další
pspell_suggest | Nahoru | readline_add_history


readline_add_history

(PHP 4 , PHP 5)

readline_add_history -- Přidat řádek do historie

Popis

void readline_add_history ( string line)

Tato funkce přidá řádek do historie příkazové řádky.

Předcházející | Domů | Další
GNU Readline | Nahoru | readline_clear_history


readline_clear_history

(PHP 4 , PHP 5)

readline_clear_history -- Smazat historii

Popis

boolean readline_clear_history ( void )

Tato funkce smaže celou historii příkazové řádky.

Předcházející | Domů | Další
readline_add_history | Nahoru | readline_completion_function


readline_completion_function

(PHP 4 , PHP 5)

readline_completion_function -- Zaregistrovat dokončující funkci

Popis

boolean readline_completion_function ( string line)

Tato funkce zaregistruje dokončující funkci. Musíte zadat název existující funkce, která přijímá částečný příkaz a vrací pole možných protějšků. Toto je stejná funkcionalita jakou dostanete, pokud v Bashi zmáčknete klávesu tab.

Předcházející | Domů | Další
readline_clear_history | Nahoru | readline_info


readline_info

(PHP 4 , PHP 5)

readline_info -- Zjistit/nastavit různé interní proměnné readline

Popis

mixed readline_info ( [string varname [, string newvalue]])

Při volání bez argumentů tato funkce vrátí pole hodnot pro všechna nastavení, která readline používá. Prvky jsou indexovány podle následujících hodnot: done, end, erase_empty_line, library_version, line_buffer, mark, pending_input, point, prompt, readline_name a terminal_name.

Při volání s jedním argumentem vrátí hodnotu tohoto nastavení. Při volání se dvěma argumenty se nastavení zmení na danou hodnotu.

Předcházející | Domů | Další
readline_completion_function | Nahoru | readline_list_history


readline_list_history

(PHP 4 , PHP 5)

readline_list_history -- Vypsat historii

Popis

array readline_list_history ( void )

Tato funkce vrátí pole celé historie příkazové řádky. Prvky jsou indexovány integery, počínaje nulou.

Předcházející | Domů | Další
readline_info | Nahoru | readline_read_history


readline_read_history

(PHP 4 , PHP 5)

readline_read_history -- Vrátit historii

Popis

boolean readline_read_history ( string filename)

Tato funkce přečte historii příkazové řádky ze souboru.

Předcházející | Domů | Další
readline_list_history | Nahoru | readline_write_history


readline_write_history

(PHP 4 , PHP 5)

readline_write_history -- Zapsat historii

Popis

boolean readline_write_history ( string filename)

Tato funkce zapíše historii příkazové řádky do souboru.

Předcházející | Domů | Další
readline_read_history | Nahoru | readline


readline

(PHP 4 , PHP 5)

readline -- Přečíst řádek

Popis

string readline ( [string prompt])

Tato funkce vrátí jeden řádek od uživatele. Můžete specifikovat řetězec, který se má uživateli zobrazit jako výzva. Z vráceného řádku je odstraněna sekvence konce řádku. Do historie tento řádek musíte přidat sami pomocí readline_add_history().

Příklad 1. readline()

//ziska 3 prikazy uzivatele
for ($i=0; $i < 3; $i++) {
        $line = readline ("Command: ");
        readline_add_history ($line);
}

//vypise historii
print_r (readline_list_history());

//vypise promenne
print_r (readline_info());

Předcházející | Domů | Další
readline_write_history | Nahoru | GNU Recode funkce


GNU Recode funkce

Manuál PHP
Předcházející Další

XC. GNU Recode funkce

Úvod

Tento modul obsahuje rozhraní ke GNU Recode knihovně, verze 3.5. GNU Recode knihovna konvertuje soubory mezi různými znakovými sadami a kódováními. Když nelze dosáhnout přesné konverze, může se uchýlit k aproximacím. Tato knihovna rozeznává nebo produkuje téměř 150 různých znakových sad, a je schopná konvertovat soubory mezi téměř libovolným párem. Podporuje většinu znakových sad z RFC 1345.

Poznámka: Toto rozšíření není k dispozici na platformách Windows.

Požadavky

Na svém systému musíte mít nainstalovanou GNU Recode 3.nebo vyšší. Balíček lze stáhnout z http://www.gnu.org/directory/All_GNU_Packages/recode.html.

Instalace

Pokud cchete používat funkce definované v tomto modulu, musíte zkompilovat váš PHP interpretr s volbou --with-recode[=DIR].

Varování

Padání a problémy při startu PHP mohou být zaznamenány když nahráváte rozšíření Recode po nahrání rozšíření mysql nebo imap. Nahrání Recode před těmito rozšířeními problém vyřeší. Je to kvůli technickému problému spočívajícímu v tom, že obě C-knihovny používané knihovnou imap a recode mají svou vlastní funkci hash_lookup() a obě knihovny používané mysql a recode mají svou vlastní funkci hash_insert.

Varování

Rozšíření IMAP nemůže být používáno zároveň s rozšířením recode nebo YAZ. Je to kvůli faktu, že tato rozšíření sdílejí stejný interní symbol.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Obsah
recode_file -- Překóduje soubor na soubor podle požadavku
recode_string -- Překóduje řetězec podle požadavku
recode -- Překóduje řetězec podle požadavku

Předcházející | Domů | Další
readline | Nahoru | recode_file


recode_file

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

recode_file -- Překóduje soubor na soubor podle požadavku

Popis

boolean recode_file ( string request, resource input, resource output)

Překóduje soubor odkazovaný deskriptorem input do souboru odkazovaném deskriptorem output podle požadavku request. Pokud se nepodařilo požadavek provést, vrací FALSE, jinak TRUE.

Tato funkce v současnosti nezpracovává deskriptory odkazující na vzdálené soubory (URL). Oba deskriptory musí ukazovat na místní soubory.

Příklad 1. Základní příklad recode_file()

$input = fopen ('input.txt', 'r');
$output = fopen ('output.txt', 'w');
recode_file ("us..flat", $input, $output);

Předcházející | Domů | Další
GNU Recode funkce | Nahoru | recode_string


recode_string

(PHP 3>= 3.0.13, PHP 4 , PHP 5)

recode_string -- Překóduje řetězec podle požadavku

Popis

string recode_string ( string request, string string)

Překóduje řetězec string podle požadavku request. Vrací překódovaný řetězec nebo FALSE, pokud nebylo možné provést požadavek na překódování.

Jednoduchý požadavek na překódování může být "lat1..iso646-de". Detailní instrukce k požadavkům viz GNU Recode dokumentaci u vaší instalace.

Příklad 1. Základní recode_string() příklad:

print recode_string ("us..flat", "Následující znak má diakritické znaménko: &aacute;");

Předcházející | Domů | Další
recode_file | Nahoru | recode


recode

(PHP 4 , PHP 5)

recode -- Překóduje řetězec podle požadavku

Popis

string recode_string ( string request, string string)

Poznámka: Toto je alias k recode_string(). Byl přidán v PHP 4.

Předcházející | Domů | Další
recode_string | Nahoru | Regular Expression Functions (Perl-Compatible)


Regular Expression Functions (Perl-Compatible)

Manuál PHP
Předcházející Další

XCI. Regular Expression Functions (Perl-Compatible)

Úvod

The syntax for patterns used in these functions closely resembles Perl. The expression should be enclosed in the delimiters, a forward slash (/), for example. Any character can be used for delimiter as long as it's not alphanumeric or backslash (\). If the delimiter character has to be used in the expression itself, it needs to be escaped by backslash. Since PHP 4.0.4, you can also use Perl-style (), {}, [], and <> matching delimiters. See Pattern Syntax for detailed explanation.

The ending delimiter may be followed by various modifiers that affect the matching. See Pattern Modifiers.

PHP also supports regular expressions using a POSIX-extended syntax using the POSIX-extended regex functions.

Varování

You should be aware of some limitations of PCRE. Read http://www.pcre.org/pcre.txt for more info.

Požadavky

Regular expression support is provided by the PCRE library package, which is open source software, written by Philip Hazel, and copyright by the University of Cambridge, England. It is available at ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/.

Instalace

Beginning with PHP 4.2.0 these functions are enabled by default. You can disable the pcre functions with --without-pcre-regex. Use --with-pcre-regex=DIR to specify DIR where PCRE's include and library files are located, if not using bundled library. For older versions you have to configure and compile PHP with --with-pcre-regex[=DIR] in order to use these functions.

Verze PHP pro Windows má vestavěnou podporu pro toto rozšíření. K použití těchto funkcí není třeba načítat žádná další rozšíření.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

Tabulka 1. PREG constants

constant | description
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. This flag is only used with preg_match_all().
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. This flag is only used with preg_match_all().
PREG_OFFSET_CAPTURE | See the description of PREG_SPLIT_OFFSET_CAPTURE. This flag is available since PHP 4.3.0.
PREG_SPLIT_NO_EMPTY | This flag tells preg_split() to return only non-empty pieces.
PREG_SPLIT_DELIM_CAPTURE | This flag tells preg_split() to capture parenthesized expression in the delimiter pattern as well. This flag is available since PHP 4.0.5.
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 values in an array where every element is an array consisting of the matched string at offset 0 and its string offset within subject at offset 1. This flag is available since PHP 4.3.0 and is only used for preg_split().

Příklady

Příklad 1. Examples of valid patterns

  • /<\/\w+>/

  • |(\d{3})-\d+|Sm

  • /^(?i)php[34]/

  • {^\s+(\s+)?$}

Příklad 2. Examples of invalid patterns

  • /href='(.*)' - missing ending delimiter

  • /\w+\s*\w+/J - unknown modifier 'J'

  • 1-\d3-\d3-\d4| - missing starting delimiter

Obsah
Pattern Modifiers -- Describes possible modifiers in regex patterns
Pattern Syntax -- Describes PCRE regex syntax
preg_grep -- Return array entries that match the pattern
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 -- Perform a regular expression search and replace using a callback
preg_replace -- Perform a regular expression search and replace
preg_split -- Split string by a regular expression

Předcházející | Domů | Další
recode | Nahoru | Pattern Modifiers


Pattern Modifiers

Pattern Modifiers -- Describes possible modifiers in regex patterns

Description

The current possible PCRE modifiers are listed below. The names in parentheses refer to internal PCRE names for these modifiers.

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 comments 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.

e

If this modifier is set, preg_replace() does normal substitution of backreferences in the replacement string, evaluates it as PHP code, and uses the result for replacing the search string.

Only preg_replace() uses this modifier; it is ignored by other PCRE functions.

Poznámka: This modifier was not available in PHP 3.

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.

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.

u (PCRE_UTF8)

This modifier turns on additional functionality of PCRE that is incompatible with Perl. Pattern strings are treated as UTF-8. This modifier is available from PHP 4.1.0 or greater on Unix and from PHP 4.2.3 on win32.

Předcházející | Domů | Další
Regular Expression Functions (Perl-Compatible) | Nahoru | Pattern Syntax


Pattern Syntax

Pattern Syntax -- Describes PCRE regex syntax

Description

The PCRE library is a set of functions that implement regular expression pattern matching using the same syntax and semantics as Perl 5, with just a few differences (see below). The current implementation corresponds to Perl 5.005.

Differences From Perl

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, \E, \Q. 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}) construction.

  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.

Regular Expression Details

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.

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:

\

general escape character with several uses

^

assert start of subject (or line, in multiline mode)

$

assert end of subject (or 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 quantifier minimizer

*

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:

\

general escape character

^

negate the class, but only if the first character

-

indicates character range

]

terminates the character class

The following sections describe the use of each of the meta-characters.

backslash

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 "\\".

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)

\r

carriage return (hex 0D)

\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).

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

\s

any whitespace character

\S

any character that is not a 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.

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 (see "Locale support" above). 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)

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 below) 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.

Circumflex and dollar

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.

FULL STOP

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.

Square brackets

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 caseless matching is set, any letters in a class represent both their upper case and lower case versions, so for example, a caseless [aeiou] matches "A" as well as "a", and a caseless [^aeiou] does not match "A", whereas a 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 caseless matching is set, it matches the letters in either case. For example, [W-c] is equivalent to [][\^_`wxyzabc], matched caselessly, 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.

Vertical bar

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, and PCRE_EXTENDED can be changed from within the pattern by a sequence of Perl option letters enclosed between "(?" and ")". The option letters are

Tabulka 1. Internal option letters

i | for PCRE_CASELESS
m | for PCRE_MULTILINE
s | for PCRE_DOTALL
x | for PCRE_EXTENDED

For example, (?im) sets 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.

The scope of these option changes depends on where in the pattern the setting occurs. For settings that are outside any subpattern (defined below), the effect is the same as if the options were set or unset at the start of matching. The following patterns all behave in exactly the same way:

(?i)abc
a(?i)bc
ab(?i)c
abc(?i)

which in turn is the same as compiling the pattern abc with PCRE_CASELESS set. In other words, such "top level" settings apply to the whole pattern (unless there are other changes inside subpatterns). If there is more than one setting of the same option at top level, the rightmost setting is used.

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 fulfil 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 99, and the maximum number of all subpatterns, both capturing and non-capturing, is 200.

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".

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:

Tabulka 2. 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 command */ 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 ceases to be greedy, 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.

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. See the section entitled "Backslash" above 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 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 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", "ababaa" 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.

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 above. 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 look-behind 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 not a sequence of digits, 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.

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.

Performances

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.

Předcházející | Domů | Další
Pattern Modifiers | Nahoru | preg_grep


preg_grep

(PHP 4 , PHP 5)

preg_grep -- Return array entries that match the pattern

Description

array preg_grep ( string pattern, array input [, int flags])

preg_grep() returns the array consisting of the elements of the input array that match the given pattern.

flags can be the following flag:

PREG_GREP_INVERT

If this flag is passed, preg_grep() returns the elements of the input array that do not match the given pattern. This flag is available since PHP 4.2.0.

Since PHP 4.0.4, the results returned by preg_grep() are indexed using the keys from the input array. If this behavior is undesirable, use array_values() on the array returned by preg_grep() to reindex the values.

Příklad 1. preg_grep() example

<?php
// return all array elements
// containing floating point numbers
$fl_array = preg_grep("/^(\d+)?\.\d+$/", $array);
?>

Předcházející | Domů | Další
Pattern Syntax | Nahoru | preg_match_all


preg_match_all

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

preg_match_all -- Perform a global regular expression match

Description

int preg_match_all ( string pattern, string subject, array matches [, int flags [, int offset]])

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.

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";
?>

This example will produce:

<b>example: </b>, <div align=left>this is a test</div>
example: , this is a test

So, $out[0] contains array of strings that matched full pattern, and $out[1] contains array of strings enclosed by tags.

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";
?>

This example will produce:

<b>example: </b>, example:
<div align="left">this is a test</div>, this is a test

In this case, $matches[0] is the first set of matches, and $matches[0][0] has text matched by full pattern, $matches[0][1] has text matched by first subpattern and so on. Similarly, $matches[1] is the second set of matches, etc.

PREG_OFFSET_CAPTURE

If this flag is passed, 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. This flag is available since PHP 4.3.0 .

If no order flag is given, PREG_PATTERN_ORDER is assumed.

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. It is equivalent to passing substr()($subject, $offset) to preg_match() in place of the subject string. The offset parameter is available since PHP 4.3.3.

Returns the number of full pattern matches (which might be zero), or FALSE if an error occurred.

Příklad 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);
?>

Příklad 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);

for ($i=0; $i< count($matches[0]); $i++) {
  echo "matched: " . $matches[0][$i] . "\n";
  echo "part 1: " . $matches[1][$i] . "\n";
  echo "part 2: " . $matches[3][$i] . "\n";
  echo "part 3: " . $matches[4][$i] . "\n\n";
}
?>

This example will produce:

matched: <b>bold text</b>
part 1: <b>
part 2: bold text
part 3: </b>

matched: <a href=howdy.html>click me</a>
part 1: <a href=howdy.html>
part 2: click me
part 3: </a>

See also preg_match(),
preg_replace(),
and preg_split().

Předcházející | Domů | Další
preg_grep | Nahoru | preg_match


preg_match

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

preg_match -- Perform a regular expression match

Description

int preg_match ( string pattern, string subject [, array matches [, int flags [, int offset]]])

Searches subject for a match to the regular expression given in pattern.

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 can be the following flag:

PREG_OFFSET_CAPTURE

If this flag is passed, 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. This flag is available since PHP 4.3.0 .

The flags parameter is available since PHP 4.3.0.

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. It is equivalent to passing substr()($subject, $offset) to preg_match() in place of the subject string. The offset parameter is available since PHP 4.3.3.

preg_match() returns the number of times pattern matches. That will be either 0 times (no match) or 1 time because preg_match() will stop searching after the first match. preg_match_all() on the contrary will continue until it reaches the end of subject. preg_match() returns FALSE if an error occurred.

Tip: Do not use preg_match() if you only want to check if one string is contained in another string. Use strpos() or strstr() instead as they will be faster.

Příklad 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.";
}
?>

Příklad 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.";
}
?>

Příklad 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[2];

// get last two segments of host name
preg_match("/[^\.\/]+\.[^\.\/]+$/", $host, $matches);
echo "domain name is: {$matches[0]}\n";
?>

This example will produce:

domain name is: php.net

See also preg_match_all(),
preg_replace(), and
preg_split().

Předcházející | Domů | Další
preg_match_all | Nahoru | preg_quote


preg_quote

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

preg_quote -- Quote regular expression characters

Description

string preg_quote ( string str [, string delimiter])

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.

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.

The special regular expression characters are: . \\ + * ? [ ^ ] $ ( ) { } = ! < > | :

Příklad 1. preg_quote() example

<?php
$keywords = "$40 for a g3/400";
$keywords = preg_quote($keywords, "/");
echo $keywords; // returns \$40 for a g3\/400
?>

Příklad 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);
?>

Předcházející | Domů | Další
preg_match | Nahoru | preg_replace_callback


preg_replace_callback

(PHP 4 >= 4.0.5, PHP 5)

preg_replace_callback -- Perform a regular expression search and replace using a callback

Description

mixed preg_replace_callback ( mixed pattern, callback callback, mixed subject [, int limit])

The behavior of this function is almost identical to preg_replace(), except for the fact that instead of replacement parameter, one should specify a callback that will be called and passed an array of matched elements in the subject string. The callback should return the replacement string.

Příklad 1. preg_replace_callback() example

<?php
  // this text was used in 2002
  // we want to get this up to date for 2003
  $text = "April fools day is 04/01/2002\n";
  $text.= "Last christmas was 12/24/2001\n";

  // the callback function
  function next_year($matches)
  {
    // as usual: $matches[0] is the complete match
    // $matches[1] the match for the first subpattern
    // enclosed in '(...)' and so on
    return $matches[1].($matches[2]+1);
  }

  echo preg_replace_callback(
              "|(\d{2}/\d{2}/)(\d{4})|",
              "next_year",
              $text);

  // result is:
  // April fools day is 04/01/2003
  // Last christmas was 12/24/2002
?>

You'll often need the callback function for a preg_replace_callback() in just one place. In this case you can use create_function() to declare an anonymous function as callback within the call to preg_replace_callback(). By doing it this way you have all information for the call in one place and do not clutter the function namespace with a callback functions name not used anywhere else.

Příklad 2. preg_replace_callback() and create_function()

<?php
  /* a unix-style command line filter to convert uppercase
   * letters at the beginning of paragraphs to lowercase */

  $fp = fopen("php://stdin", "r") or die("can't read stdin");
  while (!feof($fp)) {
      $line = fgets($fp);
      $line = preg_replace_callback(
          '|<p>\s*\w|',
          create_function(
              // single quotes are essential here,
              // or alternative escape all $ as \$
              '$matches',
              'return strtolower($matches[0]);'
          ),
          $line
      );
      echo $line;
  }
  fclose($fp);
?>

See also preg_replace() and create_function().

Předcházející | Domů | Další
preg_quote | Nahoru | preg_replace


preg_replace

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

preg_replace -- Perform a regular expression search and replace

Description

mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit])

Searches subject for matches to pattern and replaces them with replacement. If limit is specified, then only limit matches will be replaced; if limit is omitted or is -1, then all matches are replaced.

Replacement may contain references of the form \\n or (since PHP 4.0.4) $n, with the latter form being the preferred one. Every such reference will be replaced by the text captured by the n'th parenthesized pattern. n can be from 0 to 99, and \\0 or $0 refers to the text matched by the whole pattern. Opening parentheses are counted from left to right (starting from 1) to obtain the number of the capturing subpattern.

When working with a replacement pattern where a backreference is immediately followed by another number (i.e.: placing a literal number immediately after a matched pattern), you cannot use the familiar \\1 notation for your backreference. \\11, for example, would confuse preg_replace() since it does not know whether you want the \\1 backreference followed by a literal 1, or the \\11 backreference followed by nothing. In this case the solution is to use \${1}1. This creates an isolated $1 backreference, leaving the 1 as a literal.

Příklad 1. Using backreferences followed by numeric literals

<?php
$string = "April 15, 2003";
$pattern = "/(\w+) (\d+), (\d+)/i";
$replacement = "\${1}1,\$3";
echo preg_replace($pattern, $replacement, $string);
?>

This example will output :

April1,2003

If matches are found, the new subject will be returned, otherwise subject will be returned unchanged.

Every parameter to preg_replace() (except limit) can be an unidimensional array. When using arrays with pattern and replacement, the keys are processed in the order they appear in the array. This is not necessarily the same as the numerical index order. If you use indexes to identify which pattern should be replaced by which replacement, you should perform a ksort() on each array prior to calling preg_replace().

Příklad 2. Using indexed arrays with preg_replace()

<?php
$string = "The quick brown fox jumped over the lazy dog.";

$patterns[0] = "/quick/";
$patterns[1] = "/brown/";
$patterns[2] = "/fox/";

$replacements[2] = "bear";
$replacements[1] = "black";
$replacements[0] = "slow";

echo preg_replace($patterns, $replacements, $string);
?>

Output:

The bear black slow jumped over the lazy dog.

By ksorting patterns and replacements, we should get what we wanted.

<?php

ksort($patterns);
ksort($replacements);

echo preg_replace($patterns, $replacements, $string);

?>

Output :

The slow black bear jumped over the lazy dog.

If subject is an array, then the search and replace is performed on every entry of subject, and the return value is an array as well.

If pattern and replacement are arrays, then preg_replace() takes a value from each array and uses them to do search and replace on subject. If replacement has fewer values than pattern, then empty string is used for the rest of replacement values. If pattern is an array and replacement is a string, then this replacement string is used for every value of pattern. The converse would not make sense, though.

/e modifier makes preg_replace() treat the replacement parameter as PHP code after the appropriate references substitution is done. Tip: make sure that replacement constitutes a valid PHP code string, otherwise PHP will complain about a parse error at the line containing preg_replace().

Příklad 3. Replacing several values

<?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");
?>

This example will produce:

$startDate = 5/27/1999

Příklad 4. Using /e modifier

<?php
preg_replace("/(<\/?)(\w+)([^>]*>)/e",
              "'\\1'.strtoupper('\\2').'\\3'",
              $html_body);
?>

This would capitalize all HTML tags in the input text.

Příklad 5. Convert HTML to text

<?php
// $document should contain an HTML document.
// This will remove HTML tags, javascript sections
// and white space. It will also convert some
// common HTML entities to their text equivalent.

$search = array ("'<script[^>]*?>.*?</script>'si",  // Strip out javascript
                 "'<[\/\!]*?[^<>]*?>'si",           // Strip out HTML tags
                 "'([\r\n])[\s]+'",                 // Strip out white space
                 "'&(quot|#34);'i",                 // Replace HTML entities
                 "'&(amp|#38);'i",
                 "'&(lt|#60);'i",
                 "'&(gt|#62);'i",
                 "'&(nbsp|#160);'i",
                 "'&(iexcl|#161);'i",
                 "'&(cent|#162);'i",
                 "'&(pound|#163);'i",
                 "'&(copy|#169);'i",
                 "'&#(\d+);'e");                    // evaluate as php

$replace = array ("",
                  "",
                  "\\1",
                  "\"",
                  "&",
                  "<",
                  ">",
                  " ",
                  chr(161),
                  chr(162),
                  chr(163),
                  chr(169),
                  "chr(\\1)");

$text = preg_replace($search, $replace, $document);
?>

Poznámka: Parameter limit was added after PHP 4.0.1pl2.

See also preg_match(),
preg_match_all(), and
preg_split().

Předcházející | Domů | Další
preg_replace_callback | Nahoru | preg_split


preg_split

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

preg_split -- Split string by a regular expression

Description

array preg_split ( string pattern, string subject [, int limit [, int flags]])

Returns an array containing substrings of subject split along boundaries matched by pattern.

If limit is specified, then only substrings up to limit are returned, and if limit is -1, it actually means "no limit", which is useful for specifying the flags.

flags can be any combination of the following flags (combined with 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. This flag was added for 4.0.5.

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. This flag is available since PHP 4.3.0 .

Příklad 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");
?>

Příklad 2. Splitting a string into component characters

<?php
$str = 'string';
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);
?>

Příklad 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);
?>

will yield:

Array
(
    [0] => Array
        (
            [0] => hypertext
            [1] => 0
        )

    [1] => Array
        (
            [0] => language
            [1] => 10
        )

    [2] => Array
        (
            [0] => programming
            [1] => 19
        )

)

Poznámka: Parameter flags was added in PHP 4 Beta 3.

See also spliti(), split(),
implode(), preg_match(),
preg_match_all(), and
preg_replace().

Předcházející | Domů | Další
preg_replace | Nahoru | qtdom Functions


qtdom Functions

Manuál PHP
Předcházející Další

XCII. qtdom Functions

Varování

Toto rozšíření je EXPERIMENTÁLNÍ. Chování tohoto rozšíření, názvy funkcí a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může bez ohlášení změnit. Berte to v úvahu a používejte tento modul na vlastní nebezpečí.

Poznámka: Toto rozšíření není k dispozici na platformách Windows.

Poznámka: Toto rozšíření bylo odstraněno podle PHP 5 a přesunuto do repozitáře PECL.

Požadavky

You need the Qt-library >=2.2.0

Instalace

Configure PHP --with-qtdom to use these functions.

Obsah
qdom_error -- Returns the error string from the last QDOM operation or FALSE if no errors occurred
qdom_tree -- Creates a tree of an XML string

Předcházející | Domů | Další
preg_split | Nahoru | qdom_error


qdom_error

(PHP 4 >= 4.0.5)

qdom_error -- Returns the error string from the last QDOM operation or FALSE if no errors occurred

Description

string qdom_error ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
qtdom Functions | Nahoru | qdom_tree


qdom_tree

(PHP 4 >= 4.0.4)

qdom_tree -- Creates a tree of an XML string

Description

object qdom_tree ( string )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
qdom_error | Nahoru | Regular Expression Functions (POSIX Extended)


Regular Expression Functions (POSIX Extended)

Manuál PHP
Předcházející Další

XCIII. Regular Expression Functions (POSIX Extended)

Úvod

Tip: PHP also supports regular expressions using a Perl-compatible syntax using the PCRE functions. Those functions support non-greedy matching, assertions, conditional subpatterns, and a number of other features not supported by the POSIX-extended regular expression syntax.

Varování

These regular expression functions are not binary-safe. The PCRE functions are.

Regular expressions are used for complex string manipulation in PHP. The functions that support regular expressions are:

  • ereg()

  • ereg_replace()

  • eregi()

  • eregi_replace()

  • split()

  • spliti()

These functions all take a regular expression string as their first argument. PHP uses the POSIX extended regular expressions as defined by POSIX 1003.2. For a full description of POSIX regular expressions see the regex man pages included in the regex directory in the PHP distribution. It's in manpage format, so you'll want to do something along the lines of man /usr/local/src/regex/regex.7 in order to read it.

Požadavky

Tyto funkce jsou k dispozici jako součást standardního modulu, který je vždy dostupný.

Instalace

Varování

Do not change the TYPE unless you know what you are doing.

To enable regexp support configure PHP --with-regex[=TYPE]. TYPE can be one of system, apache, php. The default is to use php.

Verze PHP pro Windows má vestavěnou podporu pro toto rozšíření. K použití těchto funkcí není třeba načítat žádná další rozšíření.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Příklady

Příklad 1. Regular Expression Examples

<?php
// Returns true if "abc" is found anywhere in $string.
ereg("abc", $string);

// Returns true if "abc" is found at the beginning of $string.
ereg("^abc", $string);

// Returns true if "abc" is found at the end of $string.
ereg("abc$", $string);

// Returns true if client browser is Netscape 2, 3 or MSIE 3.
eregi("(ozilla.[23]|MSIE.3)", $HTTP_USER_AGENT);

// Places three space separated words into $regs[1], $regs[2] and $regs[3].
ereg("([[:alnum:]]+) ([[:alnum:]]+) ([[:alnum:]]+)", $string, $regs);

// Put a <br /> tag at the beginning of $string.
$string = ereg_replace("^", "<br />", $string);

// Put a <br /> tag at the end of $string.
$string = ereg_replace("$", "<br />", $string);

// Get rid of any newline characters in $string.
$string = ereg_replace("\n", "", $string);
?>

Viz také

For regular expressions in Perl-compatible syntax have a look at the PCRE functions. The simpler shell style wildcard pattern matching is provided by fnmatch().

Obsah
ereg_replace -- Replace regular expression
ereg -- Regular expression match
eregi_replace -- replace regular expression case insensitive
eregi -- case insensitive regular expression match
split -- split string into array by regular expression
spliti -- Split string into array by regular expression case insensitive
sql_regcase -- Make regular expression for case insensitive match

Předcházející | Domů | Další
qdom_tree | Nahoru | ereg_replace


ereg_replace

(PHP 3, PHP 4 , PHP 5)

ereg_replace -- Replace regular expression

Description

string ereg_replace ( string pattern, string replacement, string string)

This function scans string for matches to pattern, then replaces the matched text with replacement.

The modified string is returned. (Which may mean that the original string is returned if there are no matches to be replaced.)

If pattern contains parenthesized substrings, replacement may contain substrings of the form \\digit, which will be replaced by the text matching the digit'th parenthesized substring; \\0 will produce the entire contents of string. Up to nine substrings may be used. Parentheses may be nested, in which case they are counted by the opening parenthesis.

If no matches are found in string, then string will be returned unchanged.

For example, the following code snippet prints "This was a test" three times:

Příklad 1. ereg_replace() example

<?php

$string = "This is a test";
echo str_replace(" is", " was", $string);
echo ereg_replace("( )is", "\\1was", $string);
echo ereg_replace("(( )is)", "\\2was", $string);

?>

One thing to take note of is that if you use an integer value as the replacement parameter, you may not get the results you expect. This is because ereg_replace() will interpret the number as the ordinal value of a character, and apply that. For instance:

Příklad 2. ereg_replace() example

<?php
/* This will not work as expected. */
$num = 4;
$string = "This string has four words.";
$string = ereg_replace('four', $num, $string);
echo $string;   /* Output: 'This string has   words.' */

/* This will work. */
$num = '4';
$string = "This string has four words.";
$string = ereg_replace('four', $num, $string);
echo $string;   /* Output: 'This string has 4 words.' */
?>

Příklad 3. Replace URLs with links

<?php
$text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",
                     "<a href=\"\\0\">\\0</a>", $text);
?>

Tip: preg_replace(), which uses a Perl-compatible regular expression syntax, is often a faster alternative to ereg_replace().

See also ereg(), eregi(),
eregi_replace(), str_replace(), and
preg_match().

Předcházející | Domů | Další
Regular Expression Functions (POSIX Extended) | Nahoru | ereg


ereg

(PHP 3, PHP 4 , PHP 5)

ereg -- Regular expression match

Description

bool ereg ( string pattern, string string [, array regs])

Poznámka: preg_match(), which uses a Perl-compatible regular expression syntax, is often a faster alternative to ereg().

Searches a string for matches to the regular expression given in pattern in a case-sensitive way.

If matches are found for parenthesized substrings of pattern and the function is called with the third argument regs, the matches will be stored in the elements of the array regs. $regs[1] will contain the substring which starts at the first left parenthesis; $regs[2] will contain the substring starting at the second, and so on. $regs[0] will contain a copy of the complete string matched.

Poznámka: Up to (and including) PHP 4.1.0 $regs will be filled with exactly ten elements, even though more or fewer than ten parenthesized substrings may actually have matched. This has no effect on ereg()'s ability to match more substrings. If no matches are found, $regs will not be altered by ereg().

Returns TRUE if a match for pattern was found in string, or FALSE if no matches were found or an error occurred.

The following code snippet takes a date in ISO format (YYYY-MM-DD) and prints it in DD.MM.YYYY format:

Příklad 1. ereg() example

<?php
if (ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $regs)) {
    echo "$regs[3].$regs[2].$regs[1]";
} else {
    echo "Invalid date format: $date";
}
?>

See also eregi(), ereg_replace(),
eregi_replace(), preg_match(),
strpos(), and strstr().

Předcházející | Domů | Další
ereg_replace | Nahoru | eregi_replace


eregi_replace

(PHP 3, PHP 4 , PHP 5)

eregi_replace -- replace regular expression case insensitive

Description

string eregi_replace ( string pattern, string replacement, string string)

This function is identical to ereg_replace() except that this ignores case distinction when matching alphabetic characters.

See also ereg(), eregi(), and ereg_replace().

Předcházející | Domů | Další
ereg | Nahoru | eregi


eregi

(PHP 3, PHP 4 , PHP 5)

eregi -- case insensitive regular expression match

Description

bool eregi ( string pattern, string string [, array regs])

This function is identical to ereg() except that this ignores case distinction when matching alphabetic characters.

Příklad 1. eregi() example

<?php
if (eregi("z", $string)) {
    echo "'$string' contains a 'z' or 'Z'!";
}
?>

See also ereg(), ereg_replace(),
eregi_replace(), stripos(), and
stristr().

Předcházející | Domů | Další
eregi_replace | Nahoru | split


split

(PHP 3, PHP 4 , PHP 5)

split -- split string into array by regular expression

Description

array split ( string pattern, string string [, int limit])

Tip: preg_split(), which uses a Perl-compatible regular expression syntax, is often a faster alternative to split(). If you don't require the power of regular expressions, it is faster to use explode(), which doesn't incur the overhead of the regular expression engine.

Returns an array of strings, each of which is a substring of string formed by splitting it on boundaries formed by the case-sensitive regular expression pattern. If limit is set, the returned array will contain a maximum of limit elements with the last element containing the whole rest of string. If an error occurs, split() returns FALSE.

To split off the first four fields from a line from /etc/passwd:

Příklad 1. split() example

<?php
list($user, $pass, $uid, $gid, $extra) =
    split(":", $passwd_line, 5);
?>

If there are n occurrences of pattern, the returned array will contain n+1 items. For example, if there is no occurrence of pattern, an array with only one element will be returned. Of course, this is also true if string is empty.

To parse a date which may be delimited with slashes, dots, or hyphens:

Příklad 2. split() example

<?php
// Delimiters may be slash, dot, or hyphen
$date = "04/30/1973";
list($month, $day, $year) = split('[/.-]', $date);
echo "Month: $month; Day: $day; Year: $year<br />\n";
?>

For users looking for a way to emulate Perl's @chars = split('', $str) behaviour, please see the examples for preg_split().

Please note that pattern is a regular expression. If you want to split on any of the characters which are considered special by regular expressions, you'll need to escape them first. If you think split() (or any other regex function, for that matter) is doing something weird, please read the file regex.7, included in the regex/ subdirectory of the PHP distribution. It's in manpage format, so you'll want to do something along the lines of man /usr/local/src/regex/regex.7 in order to read it.

See also: preg_split(), spliti(),
explode(), implode(),
chunk_split(), and wordwrap().

Předcházející | Domů | Další
eregi | Nahoru | spliti


spliti

(PHP 4 >= 4.0.1, PHP 5)

spliti -- Split string into array by regular expression case insensitive

Description

array spliti ( string pattern, string string [, int limit])

This function is identical to split() except that this ignores case distinction when matching alphabetic characters.

See also preg_spliti(), split(), explode(), and implode().

Předcházející | Domů | Další
split | Nahoru | sql_regcase


sql_regcase

(PHP 3, PHP 4 , PHP 5)

sql_regcase -- Make regular expression for case insensitive match

Description

string sql_regcase ( string string)

Returns a valid regular expression which will match string, ignoring case. This expression is string with each alphabetic character converted to a bracket expression; this bracket expression contains that character's uppercase and lowercase form. Other characters remain unchanged.

Příklad 1. sql_regcase() example

<?php
echo sql_regcase("Foo - bar.");
?>

prints:

[Ff][Oo][Oo] - [Bb][Aa][Rr].

This can be used to achieve case insensitive pattern matching in products which support only case sensitive regular expressions.

Předcházející | Domů | Další
spliti | Nahoru | Semaphore, Shared Memory and IPC Functions


Semaphore, Shared Memory and IPC Functions

Manuál PHP
Předcházející Další

XCIV. Semaphore, Shared Memory and IPC Functions

Úvod

Toto rozšíření poskytuje rozhraní k rodině IPC funkcí Systemu V. To zahrnuje semafory, sdílenou paměť a meziprocesové zprávy (IPC).

Semafory se dají používat k poskytování exkluzivního přístupu k prostředkům na daném systému, nebo k omezení počtu procesů, které mohou současně používat určitý prostředek.

Toto rozšíření také poskytuje funkce pro práci se sdílenou pamětí využívající System V sdílenou paměť. Sdílená pmět se dá používat k poskytování přístupu ke globálním proměnným. Různí httpd-daemoni a dokonce i jiné programy (např. Perl, C, ...) mohou k těmto datům přistupovat, a vytvořit tak globální výměnu dat. Pamatujte, že sdílená paměť není chráněna proti simultáním přístupům. K synchronizaci použijte semafory.

Tabulka 1. Omezení sdílené paměti systémem Unix

SHMMAX | max. velikost sdílené paměti, normálně 131072 bytů
SHMMIN | min. velikost sdílené paměti, normálne 1 byte
SHMMNI | max. počet segmentů sdílené paměti, normálně 100
SHMSEG | max. počet segmentů sdílené paměti na proces, normálně 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.

Poznámka: Toto rozšíření není k dispozici na platformách Windows.

Požadavky

Tyto funkce jsou k dispozici jako součást standardního modulu, který je vždy dostupný.

Instalace

Podpora těchto funkcí není ve výchozím nastavení zapnuta. Pro zapnutí podpory semaforů Systemu V zkompilujte PHP s volbou --enable-sysvsem. Pro zapnutí podpory sdílené paměti Systemu V zkompilujte PHP s volbou --enable-sysvshm. Pro zapnutí podpory zpráv Systemu V zkompilujte PHP s volbou --enable-sysvmsg.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 2. Konfigurační volby pro Semaphore

Název | Výchozí hodnota | Lze změnit
sysvmsg.value | "42" | PHP_INI_ALL
sysvmsg.string | "foobar" | PHP_INI_ALL
Pro bližší podrobnosti a definici PHP_INI_* konstant viz ini_set().

Typy prostředků

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Obsah
ftok -- Convert a pathname and a project identifier to a System V IPC key
msg_get_queue -- Create or attach to a message queue
msg_receive -- Receive a message from a message queue
msg_remove_queue -- Destroy a message queue
msg_send -- Send a message to a message queue
msg_set_queue -- Set information in the message queue data structure
msg_stat_queue -- Returns information from the message queue data structure
sem_acquire -- Získat semafor
sem_get -- Získat id semaforu
sem_release -- Uvolnit semafor
sem_remove -- Remove a semaphore
shm_attach -- Vytvořit nebo otevřít segment sdílené paměti
shm_detach -- Odpojit se od segmentu sdílené paměti
shm_get_var -- Vrátit proměnnou ze sdílené paměti
shm_put_var -- Vložit nebo modifikovat proměnnou do sdílené paměti
shm_remove_var -- Odstranit proměnnou ze sdílené paměti
shm_remove -- Odstranit sdílenou paměť ze systému

Předcházející | Domů | Další
sql_regcase | Nahoru | ftok


ftok

(PHP 4 >= 4.2.0, PHP 5)

ftok -- Convert a pathname and a project identifier to a System V IPC key

Description

int ftok ( string pathname, string proj)

The function converts the pathname of an existing accessible file and a project identifier (proj) into a integer for use with for example shmop_open() and other System V IPC keys. The proj parameter should be a one character string.

On success the return value will be the created key value, otherwise -1 is returned.

See also shmop_open() and sem_get().

Předcházející | Domů | Další
Semaphore, Shared Memory and IPC Functions | Nahoru | msg_get_queue


msg_get_queue

(PHP 4 >= 4.3.0, PHP 5)

msg_get_queue -- Create or attach to a message queue

Description

int msg_get_queue ( int key [, int perms])

msg_get_queue() returns an id that can be used to access the System V message queue with the given key. The first call creates the message queue with the optional perms (default: 0666). A second call to msg_get_queue() for the same key will return a different message queue identifier, but both identifiers access the same underlying message queue. If the message queue already exists, the perms will be ignored.

See also: msg_remove_queue(),
msg_receive(), msg_send(),
msg_stat_queue() and
msg_set_queue().

Předcházející | Domů | Další
ftok | Nahoru | msg_receive


msg_receive

(PHP 4 >= 4.3.0, PHP 5)

msg_receive -- Receive a message from a message queue

Description

bool msg_receive ( int queue, int desiredmsgtype, int msgtype, int maxsize, mixed message [, bool unserialize [, int flags [, int errorcode]]])

msg_receive() will receive the first message from the specified queue of the type specified by desiredmsgtype. The type of the message that was received will be stored in msgtype. The maximum size of message to be accepted is specified by the maxsize; if the message in the queue is larger than this size the function will fail (unless you set flags as described below). The received message will be stored in message, unless there were errors receiving the message, in which case the optional errorcode will be set to the value of the system errno variable to help you identify the cause.

If desiredmsgtype is 0, the message from the front of the queue is returned. If desiredmsgtype is greater than 0, then the first message of that type is returned. If desiredmsgtype is less than 0, the first message on the queue with the lowest type less than or equal to the absolute value of desiredmsgtype will be read. If no messages match the criteria, your script will wait until a suitable message arrives on the queue. You can prevent the script from blocking by specifying MSG_IPC_NOWAIT in the flags parameter.

unserialize defaults to TRUE; if it is set to TRUE, the message is treated as though it was serialized using the same mechanism as the session module. The message will be unserialized and then returned to your script. This allows you to easily receive arrays or complex object structures from other PHP scripts, or if you are using the WDDX serializer, from any WDDX compatible source. If unserialize is FALSE, the message will be returned as a binary-safe string.

The optional flags allows you to pass flags to the low-level msgrcv system call. It defaults to 0, but you may specify one or more of the following values (by adding or ORing them together).

Tabulka 1. Flag values for msg_receive

MSG_IPC_NOWAIT | If there are no messages of the desiredmsgtype, return immediately and do not wait. The function will fail and return an integer value corresponding to ENOMSG.
MSG_EXCEPT | Using this flag in combination with a desiredmsgtype greater than 0 will cause the function to receive the first message that is not equal to desiredmsgtype.
MSG_NOERROR | If the message is longer than maxsize, setting this flag will truncate the message to maxsize and will not signal an error.

Upon successful completion the message queue data structure is updated as follows: msg_lrpid is set to the process-ID of the calling process, msg_qnum is decremented by 1 and msg_rtime is set to the current time.

msg_receive() returns TRUE on success or FALSE on failure. If the function fails, the optional errorcode will be set to the value of the system errno variable.

See also: msg_remove_queue(),
msg_send(),
msg_stat_queue() and
msg_set_queue().

Předcházející | Domů | Další
msg_get_queue | Nahoru | msg_remove_queue


msg_remove_queue

(PHP 4 >= 4.3.0, PHP 5)

msg_remove_queue -- Destroy a message queue

Description

bool msg_remove_queue ( int queue)

msg_remove_queue() destroys the message queue specified by the queue. Only use this function when all processes have finished working with the message queue and you need to release the system resources held by it.

See also: msg_remove_queue(),
msg_receive(),
msg_stat_queue() and
msg_set_queue().

Předcházející | Domů | Další
msg_receive | Nahoru | msg_send


msg_send

(PHP 4 >= 4.3.0, PHP 5)

msg_send -- Send a message to a message queue

Description

bool msg_send ( int queue, int msgtype, mixed message [, bool serialize [, bool blocking [, int errorcode]]])

msg_send() sends a message of type msgtype (which MUST be greater than 0) to a the message queue specified by queue.

If the message is too large to fit in the queue, your script will wait until another process reads messages from the queue and frees enough space for your message to be sent. This is called blocking; you can prevent blocking by setting the optional blocking parameter to FALSE, in which case msg_send() will immediately return FALSE if the message is too big for the queue, and set the optional errorcode to EAGAIN, indicating that you should try to send your message again a little later on.

The optional serialize controls how the message is sent. serialize defaults to TRUE which means that the message is serialized using the same mechanism as the session module before being sent to the queue. This allows complex arrays and objects to be sent to other PHP scripts, or if you are using the WDDX serializer, to any WDDX compatible client.

Upon successful completion the message queue data structure is updated as follows: msg_lspid is set to the process-ID of the calling process, msg_qnum is incremented by 1 and msg_stime is set to the current time.

See also: msg_remove_queue(),
msg_receive(),
msg_stat_queue() and
msg_set_queue().

Předcházející | Domů | Další
msg_remove_queue | Nahoru | msg_set_queue


msg_set_queue

(PHP 4 >= 4.3.0, PHP 5)

msg_set_queue -- Set information in the message queue data structure

Description

bool msg_set_queue ( int queue, array data)

msg_set_queue() allows you to change the values of the msg_perm.uid, msg_perm.gid, msg_perm.mode and msg_qbytes fields of the underlying message queue data structure. You specify the values you require by setting the value of the keys that you require in the data array.

Changing the data structure will require that PHP be running as the same user that created the queue, owns the queue (as determined by the existing msg_perm.xxx fields), or be running with root privileges. root privileges are required to raise the msg_qbytes values above the system defined limit.

See also: msg_remove_queue(),
msg_receive(),
msg_stat_queue() and
msg_set_queue().

Předcházející | Domů | Další
msg_send | Nahoru | msg_stat_queue


msg_stat_queue

(PHP 4 >= 4.3.0, PHP 5)

msg_stat_queue -- Returns information from the message queue data structure

Description

array msg_stat_queue ( int queue)

msg_stat_queue() returns the message queue meta data for the message queue specified by the queue. This is useful, for example, to determine which process sent the message that was just received.

The return value is an array whose keys and values have the following meanings:

Tabulka 1. Array structure for msg_stat_queue

msg_perm.uid | The uid of the owner of the queue.
msg_perm.gid | The gid of the owner of the queue.
msg_perm.mode | The file access mode of the queue.
msg_stime | The time that the last message was sent to the queue.
msg_rtime | The time that the last message was received from the queue.
msg_ctime | The time that the queue was last changed.
msg_qnum | The number of messages waiting to be read from the queue.
msg_qbytes | The number of bytes of space currently available in the queue to hold sent messages until they are received.
msg_lspid | The pid of the process that sent the last message to the queue.
msg_lrpid | The pid of the process that received the last message from the queue.

See also: msg_remove_queue(),
msg_receive(),
msg_stat_queue() and
msg_set_queue().

Předcházející | Domů | Další
msg_set_queue | Nahoru | sem_acquire


sem_acquire

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

sem_acquire -- Získat semafor

Popis

int sem_acquire ( int sem_identifier)

Při úspěchu vrací TRUE, při chybě FALSE.

sem_acquire() blokuje (pokud je optřeba) až do získání semaforu. Proces pokoušející se získat semafor, který už získal bude blokovat navěky, pokud by získání tohoto semaforu způsobilo překročení jeho hodnoty max_acquire.

Po zpracování požadavku se všechny získané, ale explicitně neuvolněné semafoty uvolní automaticky, a vygeneruje se varování.

Viz také: sem_get() a sem_release().

Předcházející | Domů | Další
msg_stat_queue | Nahoru | sem_get


sem_get

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

sem_get -- Získat id semaforu

Popis

int sem_get ( int key [, int max_acquire [, int perm]])

Vrací idenfifikátor semaforu nebo FALSE.

sem_get() vrací id, které se dá použít k přístupu k System V semaforu s daným klíčem. Podle potřeby se vytvoří nový semafor s přístupovými právy definovanými v perm (default je 0666). Počet procesů, které mohou tento semafor získat současně je max_acquire (default je 1). Tato hodnota je ale nastavena pouze pokud tento proces zjistí, že k tomuto semaforu není současně připojen jiný proces.

Druhé volání sem_get() se stejným key vrátí jiný identifikátor semaforu, ale oba identifikátory ukazují na stejný semafor.

Viz také: sem_acquire() a sem_release().

Poznámka: Tato funkce nefunguje na Windows.

Předcházející | Domů | Další
sem_acquire | Nahoru | sem_release


sem_release

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

sem_release -- Uvolnit semafor

Popis

int sem_release ( int sem_identifier)

Při úspěchu vrací TRUE, jinak FALSE.

sem_release() uvolňí semafor, pokud ho volající proces drží, jinak se vygeneruje varování.

Po uvolnění může být semafor znovu získán pomocí sem_acquire().

Viz také: sem_get() a sem_acquire().

Poznámka: Tato funkce nefunguje na Windows.

Předcházející | Domů | Další
sem_get | Nahoru | sem_remove


sem_remove

(PHP 4 >= 4.1.0, PHP 5)

sem_remove -- Remove a semaphore

Description

bool sem_remove ( int sem_identifier)

sem_remove() removes the semaphore sem_identifier if it has been created by sem_get(), otherwise generates a warning.

Vrací TRUE při úspěchu, FALSE při selhání.

After removing the semaphore, it is no more accessible.

See also: sem_get(),
sem_release() and
sem_acquire().

Poznámka: This function does not work on Windows systems. It was added on PHP 4.1.0.

Předcházející | Domů | Další
sem_release | Nahoru | shm_attach


shm_attach

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

shm_attach -- Vytvořit nebo otevřít segment sdílené paměti

Popis

int shm_attach ( int key [, int memsize [, int perm]])

shm_attach() vrací id, které se dá použít k přístupu k System V sdílené paměti s daným klíčem; první volání vytvoří segment paměti o velikosti mem_size (default: sysvshm.init_mem v konfiguračním souboru, jinak 10000 bytů) a s volitelnými právy (default: 0666).

Druhé volání shm_attach() se stejným key vrátí jiný identifikáto, ale oba ukazují na stejnou sdílenou paměť. memsize a perm se v takovém případě ignorují.

Poznámka: Tato funkce nefunguje na Windows.

Předcházející | Domů | Další
sem_remove | Nahoru | shm_detach


shm_detach

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

shm_detach -- Odpojit se od segmentu sdílené paměti

Popis

int shm_detach ( int shm_identifier)

shm_detach() odpojuje od sdílené paměti identifikované shm_identifier vytvořeným shm_attach(). Pamatujte, že tato sdílená paměť dál existuje a drží si data.

Předcházející | Domů | Další
shm_attach | Nahoru | shm_get_var


shm_get_var

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

shm_get_var -- Vrátit proměnnou ze sdílené paměti

Popis

mixed shm_get_var ( int id, int variable_key)

shm_get_var() vrací proměnnou s daným variable_key. Proměnná zůstává ve sdílené paměti.

Poznámka: Tato funkce nefunguje na Windows.

Předcházející | Domů | Další
shm_detach | Nahoru | shm_put_var


shm_put_var

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

shm_put_var -- Vložit nebo modifikovat proměnnou do sdílené paměti

Popis

int shm_put_var ( int shm_identifier, int variable_key, mixed variable)

Vloží nebo modifikuje variable s daným variable_key. Všechny typy proměnných (double, int, string, array) jsou podporovány.

Poznámka: Tato funkce nefunguje na Windows.

Předcházející | Domů | Další
shm_get_var | Nahoru | shm_remove_var


shm_remove_var

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

shm_remove_var -- Odstranit proměnnou ze sdílené paměti

Popis

int shm_remove_var ( int id, int variable_key)

Odstraní proměnnou s danýmvariable_key a uvolní zabranou paměť.

Poznámka: Tato funkce nefunguje na Windows.

Předcházející | Domů | Další
shm_put_var | Nahoru | shm_remove


shm_remove

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

shm_remove -- Odstranit sdílenou paměť ze systému

Popis

int shm_remove ( int shm_identifier)

Odstraní sdílenou paměť z UNIXového systému. Všechna data v ní budou zničena.

Poznámka: Tato funkce nefunguje na Windows.

Předcházející | Domů | Další
shm_remove_var | Nahoru | SESAM Database Functions


SESAM Database Functions

Manuál PHP
Předcházející Další

XCV. SESAM Database Functions

Úvod

SESAM/SQL-Server is a mainframe database system, developed by Fujitsu Siemens Computers, Germany. It runs on high-end mainframe servers using the operating system BS2000/OSD.

In numerous productive BS2000 installations, SESAM/SQL-Server has proven

  • the ease of use of Java-, Web- and client/server connectivity,

  • the capability to work with an availability of more than 99.99%,

  • the ability to manage tens and even hundreds of thousands of users.

There is a PHP3 SESAM interface available which allows database operations via PHP-scripts.

Poznámka: Access to SESAM is only available with the latest CVS-Version of PHP3. PHP 4 does not support the SESAM database.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

sesam_oml string

Name of BS2000 PLAM library containing the loadable SESAM driver modules. Required for using SESAM functions. The BS2000 PLAM library must be set ACCESS=READ,SHARE=YES because it must be readable by the apache server's user id.

sesam_configfile string

Name of SESAM application configuration file. Required for using SESAM functions. The BS2000 file must be readable by the apache server's user id.

The application configuration file will usually contain a configuration like (see SESAM reference manual):

CNF=B
NAM=K
NOTYPE

sesam_messagecatalog string

Name of SESAM message catalog file. In most cases, this directive is not necessary. Only if the SESAM message file is not installed in the system's BS2000 message file table, it can be set with this directive.

The message catalog must be set ACCESS=READ,SHARE=YES because it must be readable by the apache server's user id.

Configuration notes

There is no standalone support for the PHP SESAM interface, it works only as an integrated Apache module. In the Apache PHP module, this SESAM interface is configured using Apache directives.

Tabulka 1. SESAM Configuration directives

Directive Meaning
php3_sesam_oml Name of BS2000 PLAM library containing the loadable SESAM driver modules. Required for using SESAM functions.

Example:

php3_sesam_oml $.SYSLNK.SESAM-SQL.030

php3_sesam_configfile Name of SESAM application configuration file. Required for using SESAM functions.

Example:

php3_sesam_configfile $SESAM.SESAM.CONF.AW

It will usually contain a configuration like (see SESAM reference manual):

CNF=B
NAM=K
NOTYPE

php3_sesam_messagecatalog Name of SESAM message catalog file. In most cases, this directive is not necessary. Only if the SESAM message file is not installed in the system's BS2000 message file table, it can be set with this directive.

Example:

php3_sesam_messagecatalog $.SYSMES.SESAM-SQL.030

In addition to the configuration of the PHP/SESAM interface, you have to configure the SESAM-Database server itself on your mainframe as usual. That means:

  • starting the SESAM database handler (DBH), and

  • connecting the databases with the SESAM database handler

To get a connection between a PHP script and the database handler, the CNF and NAM parameters of the selected SESAM configuration file must match the id of the started database handler.

In case of distributed databases you have to start a SESAM/SQL-DCN agent with the distribution table including the host and database names.

The communication between PHP (running in the POSIX subsystem) and the database handler (running outside the POSIX subsystem) is realized by a special driver module called SQLSCI and SESAM connection modules using common memory. Because of the common memory access, and because PHP is a static part of the web server, database accesses are very fast, as they do not require remote accesses via ODBC, JDBC or UTM.

Only a small stub loader (SESMOD) is linked with PHP, and the SESAM connection modules are pulled in from SESAM's OML PLAM library. In the configuration, you must tell PHP the name of this PLAM library, and the file link to use for the SESAM configuration file (As of SESAM V3.0, SQLSCI is available in the SESAM Tool Library, which is part of the standard distribution).

Because the SQL command quoting for single quotes uses duplicated single quotes (as opposed to a single quote preceded by a backslash, used in some other databases), it is advisable to set the PHP configuration directives php3_magic_quotes_gpc and php3_magic_quotes_sybase to On for all PHP scripts using the SESAM interface.

Runtime considerations

Because of limitations of the BS2000 process model, the driver can be loaded only after the Apache server has forked off its server child processes. This will slightly slow down the initial SESAM request of each child, but subsequent accesses will respond at full speed.

When explicitly defining a Message Catalog for SESAM, that catalog will be loaded each time the driver is loaded (i.e., at the initial SESAM request). The BS2000 operating system prints a message after successful load of the message catalog, which will be sent to Apache's error_log file. BS2000 currently does not allow suppression of this message, it will slowly fill up the log.

Make sure that the SESAM OML PLAM library and SESAM configuration file are readable by the user id running the web server. Otherwise, the server will be unable to load the driver, and will not allow to call any SESAM functions. Also, access to the database must be granted to the user id under which the Apache server is running. Otherwise, connections to the SESAM database handler will fail.

Cursor Types

The result cursors which are allocated for SQL "select type" queries can be either "sequential" or "scrollable". Because of the larger memory overhead needed by "scrollable" cursors, the default is "sequential".

When using "scrollable" cursors, the cursor can be freely positioned on the result set. For each "scrollable" query, there are global default values for the scrolling type (initialized to: SESAM_SEEK_NEXT) and the scrolling offset which can either be set once by sesam_seek_row() or each time when fetching a row using sesam_fetch_row(). When fetching a row using a "scrollable" cursor, the following post-processing is done for the global default values for the scrolling type and scrolling offset:

Tabulka 2. Scrolled Cursor Post-Processing

Scroll Type | Action
SESAM_SEEK_NEXT | none
SESAM_SEEK_PRIOR | none
SESAM_SEEK_FIRST | set scroll type to SESAM_SEEK_NEXT
SESAM_SEEK_LAST | set scroll type to SESAM_SEEK_PRIOR
SESAM_SEEK_ABSOLUTE | Auto-Increment internal offset value
SESAM_SEEK_RELATIVE | none. (maintain global default offset value, which allows for, e.g., fetching each 10th row backwards)

Porting note

Because in the PHP world it is natural to start indexes at zero (rather than 1), some adaptions have been made to the SESAM interface: whenever an indexed array is starting with index 1 in the native SESAM interface, the PHP interface uses index 0 as a starting point. E.g., when retrieving columns with sesam_fetch_row(), the first column has the index 0, and the subsequent columns have indexes up to (but not including) the column count ($array["count"]). When porting SESAM applications from other high level languages to PHP, be aware of this changed interface. Where appropriate, the description of the respective PHP sesam functions include a note that the index is zero based.

Security concerns

When allowing access to the SESAM databases, the web server user should only have as little privileges as possible. For most databases, only read access privilege should be granted. Depending on your usage scenario, add more access rights as you see fit. Never allow full control to any database for any user from the 'net! Restrict access to PHP scripts which must administer the database by using password control and/or SSL security.

Migration from other SQL databases

No two SQL dialects are ever 100% compatible. When porting SQL applications from other database interfaces to SESAM, some adaption may be required. The following typical differences should be noted:

  • Vendor specific data types

    Some vendor specific data types may have to be replaced by standard SQL data types (e.g., TEXT could be replaced by VARCHAR(max. size)).

  • Keywords as SQL identifiers

    In SESAM (as in standard SQL), such identifiers must be enclosed in double quotes (or renamed).

  • Display length in data types

    SESAM data types have a precision, not a display length. Instead of int(4) (intended use: integers up to '9999'), SESAM requires simply int for an implied size of 31 bits. Also, the only datetime data types available in SESAM are: DATE, TIME(3) and TIMESTAMP(3).

  • SQL types with vendor-specific unsigned, zerofill, or auto_increment attributes

    Unsigned and zerofill are not supported. Auto_increment is automatic (use "INSERT ... VALUES(*, ...)" instead of "... VALUES(0, ...)" to take advantage of SESAM-implied auto-increment.

  • int ... DEFAULT '0000'

    Numeric variables must not be initialized with string constants. Use DEFAULT 0 instead. To initialize variables of the datetime SQL data types, the initialization string must be prefixed with the respective type keyword, as in: CREATE TABLE exmpl ( xtime timestamp(3) DEFAULT TIMESTAMP '1970-01-01 00:00:00.000' NOT NULL );

  • $count = xxxx_num_rows();

    Some databases promise to guess/estimate the number of the rows in a query result, even though the returned value is grossly incorrect. SESAM does not know the number of rows in a query result before actually fetching them. If you REALLY need the count, try SELECT COUNT(...) WHERE ..., it will tell you the number of hits. A second query will (hopefully) return the results.

  • DROP TABLE thename;

    In SESAM, in the DROP TABLE command, the table name must be either followed by the keyword RESTRICT or CASCADE. When specifying RESTRICT, an error is returned if there are dependent objects (e.g., VIEWs), while with CASCADE, dependent objects will be deleted along with the specified table.

Notes on the use of various SQL types

SESAM does not currently support the BLOB type. A future version of SESAM will have support for BLOB.

At the PHP interface, the following type conversions are automatically applied when retrieving SQL fields:

Tabulka 3. SQL to PHP Type Conversions

SQL Type | PHP Type
SMALLINT, INTEGER | integer
NUMERIC, DECIMAL, FLOAT, REAL, DOUBLE | float
DATE, TIME, TIMESTAMP | string
VARCHAR, CHARACTER | string
When retrieving a complete row, the result is returned as an array. Empty fields are not filled in, so you will have to check for the existence of the individual fields yourself (use isset() or empty() to test for empty fields). That allows more user control over the appearance of empty fields (than in the case of an empty string as the representation of an empty field).

Support of SESAM's "multiple fields" feature

The special "multiple fields" feature of SESAM allows a column to consist of an array of fields. Such a "multiple field" column can be created like this:

Příklad 1. Creating a "multiple field" column

CREATE TABLE multi_field_test (
    pkey CHAR(20) PRIMARY KEY,
    multi(3) CHAR(12)
)
and can be filled in using:

Příklad 2. Filling a "multiple field" column

INSERT INTO multi_field_test (pkey, multi(2..3) )
    VALUES ('Second', <'first_val', 'second_val'>)
Note that (like in this case) leading empty sub-fields are ignored, and the filled-in values are collapsed, so that in the above example the result will appear as multi(1..2) instead of multi(2..3).

When retrieving a result row, "multiple columns" are accessed like "inlined" additional columns. In the example above, "pkey" will have the index 0, and the three "multi(1..3)" columns will be accessible as indices 1 through 3.

Viz také

For specific SESAM details, please refer to the SESAM/SQL-Server documentation (english) or the SESAM/SQL-Server documentation (german), both available online, or use the respective manuals.

Obsah
sesam_affected_rows -- Get number of rows affected by an immediate query
sesam_commit -- Commit pending updates to the SESAM database
sesam_connect -- Open SESAM database connection
sesam_diagnostic -- Return status information for last SESAM call
sesam_disconnect -- Detach from SESAM connection
sesam_errormsg -- Returns error message of last SESAM call
sesam_execimm -- Execute an "immediate" SQL-statement
sesam_fetch_array -- Fetch one row as an associative array
sesam_fetch_result -- Return all or part of a query result
sesam_fetch_row -- Fetch one row as an array
sesam_field_array -- Return meta information about individual columns in a result
sesam_field_name -- Return one column name of the result set
sesam_free_result -- Releases resources for the query
sesam_num_fields -- Return the number of fields/columns in a result set
sesam_query -- Perform a SESAM SQL query and prepare the result
sesam_rollback -- Discard any pending updates to the SESAM database
sesam_seek_row -- Set scrollable cursor mode for subsequent fetches
sesam_settransaction -- Set SESAM transaction parameters

Předcházející | Domů | Další
shm_remove | Nahoru | sesam_affected_rows


sesam_affected_rows

(PHP 3 CVS only)

sesam_affected_rows -- Get number of rows affected by an immediate query

Description

int sesam_affected_rows ( string result_id)

result_id is a valid result id returned by sesam_query().

Returns the number of rows affected by a query associated with result_id.

The sesam_affected_rows() function can only return useful values when used in combination with "immediate" SQL statements (updating operations like INSERT, UPDATE and DELETE) because SESAM does not deliver any "affected rows" information for "select type" queries. The number returned is the number of affected rows.

Příklad 1. sesam_affected_rows() example

<?php
$result = sesam_execimm("DELETE FROM PHONE WHERE LASTNAME = '" . strtoupper($name) . "'");
if (!$result) {
    /* ... error ... */
}
echo sesam_affected_rows($result).
    " entries with last name " . $name . " deleted.\n";
?>

See also sesam_query() and sesam_execimm().

Předcházející | Domů | Další
SESAM Database Functions | Nahoru | sesam_commit


sesam_commit

(PHP 3 CVS only)

sesam_commit -- Commit pending updates to the SESAM database

Description

bool sesam_commit ( void )

Returns: TRUE on success, FALSE on errors

sesam_commit() commits any pending updates to the database.

Note that there is no "auto-commit" feature as in other databases, as it could lead to accidental data loss. Uncommitted data at the end of the current script (or when calling sesam_disconnect()) will be discarded by an implied sesam_rollback() call.

See also: sesam_rollback().

Příklad 1. Committing an update to the SESAM database

<?php
if (sesam_connect ("mycatalog", "myschema", "otto")) {
    if (!sesam_execimm ("INSERT INTO mytable VALUES (*, 'Small Test', <0, 8, 15>)"))
        die("insert failed");
    if (!sesam_commit())
        die("commit failed");
}
?>

Předcházející | Domů | Další
sesam_affected_rows | Nahoru | sesam_connect


sesam_connect

(PHP 3 CVS only)

sesam_connect -- Open SESAM database connection

Description

bool sesam_connect ( string catalog, string schema, string user)

Returns TRUE if a connection to the SESAM database was made, or FALSE on error.

sesam_connect() establishes a connection to an SESAM database handler task. The connection is always "persistent" in the sense that only the very first invocation will actually load the driver from the configured SESAM OML PLAM library. Subsequent calls will reuse the driver and will immediately use the given catalog, schema, and user.

When creating a database, the "catalog" name is specified in the SESAM configuration directive //ADD-SQL-DATABASE-CATALOG-LIST ENTRY-1 = *CATALOG(CATALOG-NAME = catalogname,...)

The "schema" references the desired database schema (see SESAM handbook).

The "user" argument references one of the users which are allowed to access this "catalog" / "schema" combination. Note that "user" is completely independent from both the system's user id's and from HTTP user/password protection. It appears in the SESAM configuration only.

See also sesam_disconnect().

Příklad 1. Connect to a SESAM database

<?php
if (!sesam_connect ("mycatalog", "myschema", "otto")) {
    die("Unable to connect to SESAM");
}
?>

Předcházející | Domů | Další
sesam_commit | Nahoru | sesam_diagnostic


sesam_diagnostic

(PHP 3 CVS only)

sesam_diagnostic -- Return status information for last SESAM call

Description

array sesam_diagnostic ( void )

Returns an associative array of status and return codes for the last SQL query/statement/command. Elements of the array are:

Tabulka 1. Status information returned by sesam_diagnostic()

Element | Contents
$array["sqlstate"] | 5 digit SQL return code (see the SESAM manual for the description of the possible values of SQLSTATE)
$array["rowcount"] | number of affected rows in last update/insert/delete (set after "immediate" statements only)
$array["errmsg"] | "human readable" error message string (set after errors only)
$array["errcol"] | error column number of previous error (0-based; or -1 if undefined. Set after errors only)
$array["errlin"] | error line number of previous error (0-based; or -1 if undefined. Set after errors only)

In the following example, a syntax error (E SEW42AE ILLEGAL CHARACTER) is displayed by including the offending SQL statement and pointing to the error location:

Příklad 1. Displaying SESAM error messages with error position

<?php
// Function which prints a formatted error message,
// displaying a pointer to the syntax error in the
// SQL statement
function PrintReturncode($exec_str)
{
    $err = Sesam_Diagnostic();
    $colspan=4; // 4 cols for: sqlstate, errlin, errcol, rowcount
    if ($err["errlin"] == -1)
        --$colspan;
    if ($err["errcol"] == -1)
        --$colspan;
    if ($err["rowcount"] == 0)
        --$colspan;
    echo "<table border=\"1\">\n";
    echo "<tr><th colspan=\"" . $colspan . "\"><span class=\"spanred\">ERROR:</span> ".
              htmlspecialchars($err["errmsg"]) . "</th></tr>\n";
    if ($err["errcol"] >= 0) {
        echo "<tr><td colspan=\"" . $colspan . "\"><pre>\n";
        $errstmt = $exec_str . "\n";
        for ($lin=0; $errstmt != ""; ++$lin) {
            if ($lin != $err["errlin"]) { // $lin is less or greater than errlin
                if (!($i = strchr($errstmt, "\n")))
                    $i = "";
                $line = substr ($errstmt, 0, strlen($errstmt)-strlen($i)+1);
                $errstmt = substr($i, 1);
                if ($line != "\n")
                    echo htmlspecialchars($line);
            } else {
                if (! ($i = strchr ($errstmt, "\n")))
                    $i = "";
                $line = substr ($errstmt, 0, strlen ($errstmt)-strlen($i)+1);
                $errstmt = substr($i, 1);
                for ($col=0; $col < $err["errcol"]; ++$col) {
                    echo (substr($line, $col, 1) == "\t") ? "\t" : ".";
                }
                echo "<span class=\"spanred\">\\</span>\n";
                echo "<span class=\"normal\">" . htmlspecialchars($line) . "</span>";
                for ($col=0; $col < $err["errcol"]; ++$col) {
                    echo (substr ($line, $col, 1) == "\t") ? "\t" : ".";
                }
                echo "<span class=\"spanred\">/</span>\n";
            }
        }
        echo "</pre></td></tr>\n";
    }
    echo "<tr>\n";
    echo " <td>sqlstate=" . $err["sqlstate"] . "</td>\n";
    if ($err["errlin"] != -1)
        echo " <td>errlin=" . $err["errlin"] . "</td>\n";
    if ($err["errcol"] != -1)
        echo " <td>errcol=" . $err["errcol"] . "</td>\n";
    if ($err["rowcount"] != 0)
         echo " <td>rowcount=" . $err["rowcount"] . "</td>\n";
    echo "</tr>\n";
    echo "</table>\n";
}

if (!sesam_connect ("mycatalog", "phoneno", "otto"))
  die ("cannot connect");

$stmt = "SELECT * FROM phone\n" .
        " WHERE@ LASTNAME='KRAEMER'\n" .
        " ORDER BY FIRSTNAME";
if (!($result = sesam_query ($stmt)))
    PrintReturncode ($stmt);
?>

See also: sesam_errormsg() for simple access to the error string only

Předcházející | Domů | Další
sesam_connect | Nahoru | sesam_disconnect


sesam_disconnect

(PHP 3 CVS only)

sesam_disconnect -- Detach from SESAM connection

Description

bool sesam_disconnect ( void )

Returns: always TRUE.

sesam_disconnect() closes the logical link to a SESAM database (without actually disconnecting and unloading the driver).

Note that this isn't usually necessary, as the open connection is automatically closed at the end of the script's execution. Uncommitted data will be discarded, because an implicit sesam_rollback() is executed.

sesam_disconnect() will not close the persistent link, it will only invalidate the currently defined "catalog", "schema" and "user" triple, so that any sesam function called after sesam_disconnect() will fail.

Příklad 1. Closing a SESAM connection

<?php
if (sesam_connect ("mycatalog", "myschema", "otto")) {
    /* ... some queries and stuff ... */
    sesam_disconnect();
}
?>

See also sesam_connect().

Předcházející | Domů | Další
sesam_diagnostic | Nahoru | sesam_errormsg


sesam_errormsg

(PHP 3 CVS only)

sesam_errormsg -- Returns error message of last SESAM call

Description

string sesam_errormsg ( void )

Returns the SESAM error message associated with the most recent SESAM error.

Příklad 1. sesam_errormsg() example

<?php
if (!sesam_execimm($stmt)) {
  echo sesam_errormsg() . "<br />\n";
}
?>

See also sesam_diagnostic() for the full set of SESAM SQL status information.

Předcházející | Domů | Další
sesam_disconnect | Nahoru | sesam_execimm


sesam_execimm

(PHP 3 CVS only)

sesam_execimm -- Execute an "immediate" SQL-statement

Description

string sesam_execimm ( string query)

Returns: A SESAM "result identifier" on success, or FALSE on error.

sesam_execimm() executes an "immediate" statement (i.e., a statement like UPDATE, INSERT or DELETE which returns no result, and has no INPUT or OUTPUT variables). "select type" queries can not be used with sesam_execimm(). Sets the affected_rows value for retrieval by the sesam_affected_rows() function.

Note that sesam_query() can handle both "immediate" and "select-type" queries. Use sesam_execimm() only if you know beforehand what type of statement will be executed. An attempt to use SELECT type queries with sesam_execimm() will return $err["sqlstate"] == "42SBW".

The returned "result identifier" can not be used for retrieving anything but the sesam_affected_rows(); it is only returned for symmetry with the sesam_query() function.

<?php
$stmt = "INSERT INTO mytable VALUES ('one', 'two')";
$result = sesam_execimm($stmt);
$err = sesam_diagnostic();
echo "sqlstate = " . $err["sqlstate"] . "\n".
       "Affected rows = " . $err["rowcount"] . " == " .
       sesam_affected_rows($result) . "\n";
?>

See also sesam_query() and sesam_affected_rows().

Předcházející | Domů | Další
sesam_errormsg | Nahoru | sesam_fetch_array


sesam_fetch_array

(PHP 3 CVS only)

sesam_fetch_array -- Fetch one row as an associative array

Description

array sesam_fetch_array ( string result_id [, int whence [, int offset]])

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

sesam_fetch_array() is an alternative version of sesam_fetch_row(). Instead of storing the data in the numeric indices of the result array, it stores the data in associative indices, using the field names as keys.

result_id is a valid result id returned by sesam_query() (select type queries only!).

For the valid values of the optional whenceand offset parameters, see the sesam_fetch_row() function for details.

sesam_fetch_array() fetches one row of data from the result associated with the specified result identifier. The row is returned as an associative array. Each result column is stored with an associative index equal to its column (aka. field) name. The column names are converted to lower case.

Columns without a field name (e.g., results of arithmetic operations) and empty fields are not stored in the array. Also, if two or more columns of the result have the same column names, the later column will take precedence. In this situation, either call sesam_fetch_row() or make an alias for the column.

SELECT TBL1.COL AS FOO, TBL2.COL AS BAR FROM TBL1, TBL2

A special handling allows fetching "multiple field" columns (which would otherwise all have the same column names). For each column of a "multiple field", the index name is constructed by appending the string "(n)" where n is the sub-index of the multiple field column, ranging from 1 to its declared repetition factor. The indices are NOT zero based, in order to match the nomenclature used in the respective query syntax. For a column declared as:

CREATE TABLE ... ( ... MULTI(3) INT )

the associative indices used for the individual "multiple field" columns would be "multi(1)", "multi(2)", and "multi(3)" respectively.

Subsequent calls to sesam_fetch_array() would return the next (or prior, or n'th next/prior, depending on the scroll attributes) row in the result set, or FALSE if there are no more rows.

Příklad 1. SESAM fetch array

<?php
$result = sesam_query("SELECT * FROM phone\n" .
                       "  WHERE LASTNAME='" . strtoupper($name) . "'\n".
                       "  ORDER BY FIRSTNAME", 1);
if (!$result) {
    /* ... error ... */
}
// print the table:
echo "<table border=\"1\">\n";
while (($row = sesam_fetch_array($result)) && count($row) > 0) {
    echo "<tr>\n";
    echo "<td>" . htmlspecialchars($row["firstname"]) . "</td>\n";
    echo "<td>" . htmlspecialchars($row["lastname"]) . "</td>\n";
    echo "<td>" . htmlspecialchars($row["phoneno"]) . "</td>\n";
    echo "</tr>\n";
}
echo "</table>\n";
sesam_free_result($result);
?>

See also: sesam_fetch_row() which returns an indexed array.

Předcházející | Domů | Další
sesam_execimm | Nahoru | sesam_fetch_result


sesam_fetch_result

(PHP 3 CVS only)

sesam_fetch_result -- Return all or part of a query result

Description

mixed sesam_fetch_result ( string result_id [, int max_rows])

Returns a mixed array with the query result entries, optionally limited to a maximum of max_rows rows. Note that both row and column indexes are zero-based.

Tabulka 1. Mixed result set returned by sesam_fetch_result()

Array Element | Contents
int $arr["count"] | number of columns in result set (or zero if this was an "immediate" query)
int $arr["rows"] | number of rows in result set (between zero and max_rows)
bool $arr["truncated"] | TRUE if the number of rows was at least max_rows, FALSE otherwise. Note that even when this is TRUE, the next sesam_fetch_result() call may return zero rows because there are no more result entries.
mixed $arr[col][row] | result data for all the fields at row(row) and column(col), (where the integer index row is between 0 and $arr["rows"]-1, and col is between 0 and $arr["count"]-1). Fields may be empty, so you must check for the existence of a field by using the php isset() function. The type of the returned fields depend on the respective SQL type declared for its column (see SESAM overview for the conversions applied). SESAM "multiple fields" are "inlined" and treated like a sequence of columns.
Note that the amount of memory used up by a large query may be gigantic. Use the max_rows parameter to limit the maximum number of rows returned, unless you are absolutely sure that your result will not use up all available memory.

See also: sesam_fetch_row(), and sesam_field_array() to check for "multiple fields". See the description of the sesam_query() function for a complete example using sesam_fetch_result().

Předcházející | Domů | Další
sesam_fetch_array | Nahoru | sesam_fetch_row


sesam_fetch_row

(PHP 3 CVS only)

sesam_fetch_row -- Fetch one row as an array

Description

array sesam_fetch_row ( string result_id [, int whence [, int offset]])

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

The number of columns in the result set is returned in an associative array element $array["count"]. Because some of the result columns may be empty, the count() function can not be used on the result row returned by sesam_fetch_row().

result_id is a valid result id returned by sesam_query() (select type queries only!).

whence is an optional parameter for a fetch operation on "scrollable" cursors, which can be set to the following predefined constants:

Tabulka 1. Valid values for "whence" parameter

Value | Constant | Meaning
0 | SESAM_SEEK_NEXT | read sequentially (after fetch, the internal default is set to SESAM_SEEK_NEXT)
1 | SESAM_SEEK_PRIOR | read sequentially backwards (after fetch, the internal default is set to SESAM_SEEK_PRIOR)
2 | SESAM_SEEK_FIRST | rewind to first row (after fetch, the default is set to SESAM_SEEK_NEXT)
3 | SESAM_SEEK_LAST | seek to last row (after fetch, the default is set to SESAM_SEEK_PRIOR)
4 | SESAM_SEEK_ABSOLUTE | seek to absolute row number given as offset (Zero-based. After fetch, the internal default is set to SESAM_SEEK_ABSOLUTE, and the internal offset value is auto-incremented)
5 | SESAM_SEEK_RELATIVE | seek relative to current scroll position, where offset can be a positive or negative offset value.
This parameter is only valid for "scrollable" cursors.

When using "scrollable" cursors, the cursor can be freely positioned on the result set. If the whence parameter is omitted, the global default values for the scrolling type (initialized to: SESAM_SEEK_NEXT, and settable by sesam_seek_row()) are used. If whence is supplied, its value replaces the global default.

offset is an optional parameter which is only evaluated (and required) if whence is either SESAM_SEEK_RELATIVE or SESAM_SEEK_ABSOLUTE. This parameter is only valid for "scrollable" cursors.

sesam_fetch_row() fetches one row of data from the result associated with the specified result identifier. The row is returned as an array (indexed by values between 0 and $array["count"]-1). Fields may be empty, so you must check for the existence of a field by using the isset() function. The type of the returned fields depend on the respective SQL type declared for its column (see SESAM overview for the conversions applied). SESAM "multiple fields" are "inlined" and treated like a sequence of columns.

Subsequent calls to sesam_fetch_row() would return the next (or prior, or n'th next/prior, depending on the scroll attributes) row in the result set, or FALSE if there are no more rows.

Příklad 1. SESAM fetch rows

<?php
$result = sesam_query("SELECT * FROM phone\n" .
                       "  WHERE LASTNAME='" . strtoupper($name) . "'\n" .
                       "  ORDER BY FIRSTNAME", 1);
if (!$result) {
    /* ... error ... */
}
// print the table in backward order
echo "<table border=\"1\">\n";
$row = sesam_fetch_row($result, SESAM_SEEK_LAST);
while (is_array($row)) {
    echo "<tr>\n";
    for ($col = 0; $col < $row["count"]; ++$col) {
        echo "<td>" . htmlspecialchars($row[$col]) . "</td>\n";
    }
    echo "</tr>\n";
    // use implied SESAM_SEEK_PRIOR
    $row = sesam_fetch_row($result);
}
echo "</table>\n";
sesam_free_result($result);
?>

See also: sesam_fetch_array() which returns an associative array, and sesam_fetch_result() which returns many rows per invocation.

Předcházející | Domů | Další
sesam_fetch_result | Nahoru | sesam_field_array


sesam_field_array

(PHP 3 CVS only)

sesam_field_array -- Return meta information about individual columns in a result

Description

array sesam_field_array ( string result_id)

result_id is a valid result id returned by sesam_query().

Returns a mixed associative/indexed array with meta information (column name, type, precision, ...) about individual columns of the result after the query associated with result_id.

Tabulka 1. Mixed result set returned by sesam_field_array()

Array Element | Contents
int $arr["count"] | Total number of columns in result set (or zero if this was an "immediate" query). SESAM "multiple fields" are "inlined" and treated like the respective number of columns.
string $arr[col]["name"] | column name for column(col), where col is between 0 and $arr["count"]-1. The returned value can be the empty string (for dynamically computed columns). SESAM "multiple fields" are "inlined" and treated like the respective number of columns, each with the same column name.
string $arr[col]["count"] | The "count" attribute describes the repetition factor when the column has been declared as a "multiple field". Usually, the "count" attribute is 1. The first column of a "multiple field" column however contains the number of repetitions (the second and following column of the "multiple field" contain a "count" attribute of 1). This can be used to detect "multiple fields" in the result set. See the example shown in the sesam_query() description for a sample use of the "count" attribute.
string $arr[col]["type"] PHP variable type of the data for column(col), where col is between 0 and $arr["count"]-1. The returned value can be one of

  • integer

  • float

  • string

depending on the SQL type of the result. SESAM "multiple fields" are "inlined" and treated like the respective number of columns, each with the same PHP type.
string $arr[col]["sqltype"] SQL variable type of the column data for column(col), where col is between 0 and $arr["count"]-1. The returned value can be one of

  • "CHARACTER"

  • "VARCHAR"

  • "NUMERIC"

  • "DECIMAL"

  • "INTEGER"

  • "SMALLINT"

  • "FLOAT"

  • "REAL"

  • "DOUBLE"

  • "DATE"

  • "TIME"

  • "TIMESTAMP"

describing the SQL type of the result. SESAM "multiple fields" are "inlined" and treated like the respective number of columns, each with the same SQL type.
string $arr[col]["length"] | The SQL "length" attribute of the SQL variable in column(col), where col is between 0 and $arr["count"]-1. The "length" attribute is used with "CHARACTER" and "VARCHAR" SQL types to specify the (maximum) length of the string variable. SESAM "multiple fields" are "inlined" and treated like the respective number of columns, each with the same length attribute.
string $arr[col]["precision"] | The "precision" attribute of the SQL variable in column(col), where col is between 0 and $arr["count"]-1. The "precision" attribute is used with numeric and time data types. SESAM "multiple fields" are "inlined" and treated like the respective number of columns, each with the same precision attribute.
string $arr[col]["scale"] | The "scale" attribute of the SQL variable in column(col), where col is between 0 and $arr["count"]-1. The "scale" attribute is used with numeric data types. SESAM "multiple fields" are "inlined" and treated like the respective number of columns, each with the same scale attribute.

See also sesam_query() for an example of the sesam_field_array() use.

Předcházející | Domů | Další
sesam_fetch_row | Nahoru | sesam_field_name


sesam_field_name

(PHP 3 CVS only)

sesam_field_name -- Return one column name of the result set

Description

int sesam_field_name ( string result_id, int index)

Returns the name of a field (i.e., the column name) in the result set, or FALSE on error.

For "immediate" queries, or for dynamic columns, an empty string is returned.

Poznámka: The column index is zero-based, not one-based as in SESAM.

See also: sesam_field_array(). It provides an easier interface to access the column names and types, and allows for detection of "multiple fields".

Předcházející | Domů | Další
sesam_field_array | Nahoru | sesam_free_result


sesam_free_result

(PHP 3 CVS only)

sesam_free_result -- Releases resources for the query

Description

int sesam_free_result ( string result_id)

Releases resources for the query associated with result_id. Returns FALSE on error.

Předcházející | Domů | Další
sesam_field_name | Nahoru | sesam_num_fields


sesam_num_fields

(PHP 3 CVS only)

sesam_num_fields -- Return the number of fields/columns in a result set

Description

int sesam_num_fields ( string result_id)

After calling sesam_query() with a "select type" query, this function gives you the number of columns in the result. Returns an integer describing the total number of columns (aka. fields) in the current result_id result set or FALSE on error.

For "immediate" statements, the value zero is returned. The SESAM "multiple field" columns count as their respective dimension, i.e., a three-column "multiple field" counts as three columns.

See also: sesam_query() and sesam_field_array() for a way to distinguish between "multiple field" columns and regular columns.

Předcházející | Domů | Další
sesam_free_result | Nahoru | sesam_query


sesam_query

(PHP 3 CVS only)

sesam_query -- Perform a SESAM SQL query and prepare the result

Description

string sesam_query ( string query [, bool scrollable])

Returns: A SESAM "result identifier" on success, or FALSE on error.

A "result_id" resource is used by other functions to retrieve the query results.

sesam_query() sends a query to the currently active database on the server. It can execute both "immediate" SQL statements and "select type" queries. If an "immediate" statement is executed, then no cursor is allocated, and any subsequent sesam_fetch_row() or sesam_fetch_result() call will return an empty result (zero columns, indicating end-of-result). For "select type" statements, a result descriptor and a (scrollable or sequential, depending on the optional boolean scrollable parameter) cursor will be allocated. If scrollable is omitted, the cursor will be sequential.

When using "scrollable" cursors, the cursor can be freely positioned on the result set. For each "scrollable" query, there are global default values for the scrolling type (initialized to: SESAM_SEEK_NEXT) and the scrolling offset which can either be set once by sesam_seek_row() or each time when fetching a row using sesam_fetch_row().

For "immediate" statements, the number of affected rows is saved for retrieval by the sesam_affected_rows() function.

See also: sesam_fetch_row() and sesam_fetch_result().

Příklad 1. Show all rows of the "phone" table as a HTML table

<?php
if (!sesam_connect("phonedb", "demo", "otto"))
    die("cannot connect");
$result = sesam_query("select * from phone");
if (!$result) {
    $err = sesam_diagnostic();
    die $err["errmsg"]);
}
echo "<table border>\n";
// Add title header with column names above the result:
if ($cols = sesam_field_array($result)) {
    echo "<tr><th colspan=" . $cols["count"] . ">Result:</th></tr>\n";
    echo "<tr>\n";
    for ($col = 0; $col < $cols["count"]; ++$col) {
        $colattr = $cols[$col];
        /* Span the table head over SESAM's "Multiple Fields": */
        if ($colattr["count"] > 1) {
            echo "<th colspan=\"" . $colattr["count"] . "\">" . $colattr["name"] .
                "(1.." . $colattr["count"] . ")</th>\n";
            $col += $colattr["count"] - 1;
        } else
            echo "<th>" . $colattr["name"] . "</th>\n";
    }
    echo "</tr>\n";
}

do {
    // Fetch the result in chunks of 100 rows max.
    $ok = sesam_fetch_result($result, 100);
    for ($row=0; $row < $ok["rows"]; ++$row) {
        echo " <tr>\n";
        for ($col = 0; $col < $ok["cols"]; ++$col) {
            if (isset($ok[$col][$row])) {
                echo "<td>" . $ok[$col][$row] . "</td>\n";
            } else {
                echo "<td>-empty-</td>\n";
            }
        }
        echo "</tr>\n";
    }
} while ($ok["truncated"]); // while there may be more data

echo "</table>\n";
// free result id
sesam_free_result($result);
?>

Předcházející | Domů | Další
sesam_num_fields | Nahoru | sesam_rollback


sesam_rollback

(PHP 3 CVS only)

sesam_rollback -- Discard any pending updates to the SESAM database

Description

bool sesam_rollback ( void )

Returns: TRUE on success, FALSE on errors

sesam_rollback() discards any pending updates to the database. Also affected are result cursors and result descriptors.

At the end of each script, and as part of the sesam_disconnect() function, an implied sesam_rollback() is executed, discarding any pending changes to the database.

See also: sesam_commit().

Příklad 1. Discarding an update to the SESAM database

<?php
if (sesam_connect ("mycatalog", "myschema", "otto")) {
    if (sesam_execimm ("INSERT INTO mytable VALUES (*, 'Small Test', <0, 8, 15>)")
        && sesam_execimm ("INSERT INTO othertable VALUES (*, 'Another Test', 1)")) {
        sesam_commit();
    } else {
        sesam_rollback();
    }
}
?>

Předcházející | Domů | Další
sesam_query | Nahoru | sesam_seek_row


sesam_seek_row

(PHP 3 CVS only)

sesam_seek_row -- Set scrollable cursor mode for subsequent fetches

Description

bool sesam_seek_row ( string result_id, int whence [, int offset])

result_id is a valid result id (select type queries only, and only if a "scrollable" cursor was requested when calling sesam_query()).

whence sets the global default value for the scrolling type, it specifies the scroll type to use in subsequent fetch operations on "scrollable" cursors, which can be set to the following predefined constants:

Tabulka 1. Valid values for "whence" parameter

Value | Constant | Meaning
0 | SESAM_SEEK_NEXT | read sequentially
1 | SESAM_SEEK_PRIOR | read sequentially backwards
2 | SESAM_SEEK_FIRST | fetch first row (after fetch, the default is set to SESAM_SEEK_NEXT)
3 | SESAM_SEEK_LAST | fetch last row (after fetch, the default is set to SESAM_SEEK_PRIOR)
4 | SESAM_SEEK_ABSOLUTE | fetch absolute row number given as offset (Zero-based. After fetch, the default is set to SESAM_SEEK_ABSOLUTE, and the offset value is auto-incremented)
5 | SESAM_SEEK_RELATIVE | fetch relative to current scroll position, where offset can be a positive or negative offset value (this also sets the default "offset" value for subsequent fetches).

offset is an optional parameter which is only evaluated (and required) if whence is either SESAM_SEEK_RELATIVE or SESAM_SEEK_ABSOLUTE.

Předcházející | Domů | Další
sesam_rollback | Nahoru | sesam_settransaction


sesam_settransaction

(PHP 3 CVS only)

sesam_settransaction -- Set SESAM transaction parameters

Description

bool sesam_settransaction ( int isolation_level, int read_only)

Returns: TRUE if the values are valid, and the settransaction() operation was successful, FALSE otherwise.

sesam_settransaction() overrides the default values for the "isolation level" and "read-only" transaction parameters (which are set in the SESAM configuration file), in order to optimize subsequent queries and guarantee database consistency. The overridden values are used for the next transaction only.

sesam_settransaction() can only be called before starting a transaction, not after the transaction has been started already.

To simplify the use in PHP scripts, the following constants have been predefined in PHP (see SESAM handbook for detailed explanation of the semantics):

Tabulka 1. Valid values for "Isolation_Level" parameter

Value | Constant | Meaning
1 | SESAM_TXISOL_READ_UNCOMMITTED | Read Uncommitted
2 | SESAM_TXISOL_READ_COMMITTED | Read Committed
3 | SESAM_TXISOL_REPEATABLE_READ | Repeatable Read
4 | SESAM_TXISOL_SERIALIZABLE | Serializable

Tabulka 2. Valid values for "Read_Only" parameter

Value | Constant | Meaning
0 | SESAM_TXREAD_READWRITE | Read/Write
1 | SESAM_TXREAD_READONLY | Read-Only

The values set by sesam_settransaction() will override the default setting specified in the SESAM configuration file.

Příklad 1. Setting SESAM transaction parameters

<?php
sesam_settransaction (SESAM_TXISOL_REPEATABLE_READ,
                     SESAM_TXREAD_READONLY);
?>

Předcházející | Domů | Další
sesam_seek_row | Nahoru | Session Handling Functions


Session Handling Functions

Manuál PHP
Předcházející Další

XCVI. Session Handling Functions

Úvod

Session support in PHP consists of a way to preserve certain data across subsequent accesses. This enables you to build more customized applications and increase the appeal of your web site.

A visitor accessing your web site is assigned an unique id, the so-called session id. This is either stored in a cookie on the user side or is propagated in the URL.

The session support allows you to register arbitrary numbers of variables to be preserved across requests. When a visitor accesses your site, PHP will check automatically (if session.auto_start is set to 1) or on your request (explicitly through session_start() or implicitly through session_register()) whether a specific session id has been sent with the request. If this is the case, the prior saved environment is recreated.

Výstraha

If you do turn on session.auto_start then you cannot put objects into your sessions since the class definition has to be loaded before starting the session in order to recreate the objects in your session.

All registered variables are serialized after the request finishes. Registered variables which are undefined are marked as being not defined. On subsequent accesses, these are not defined by the session module unless the user defines them later.

Poznámka: Session handling was added in PHP 4.0.

Poznámka: Please note when working with sessions that a record of a session is not created until a variable has been registered using the session_register() function or by adding a new key to the $_SESSION superglobal array. This holds true regardless of if a session has been started using the session_start() function.

Sessions and security

External links: Session fixation

The session module cannot guarantee that the information you store in a session is only viewed by the user who created the session. You need to take additional measures to actively protect the integrity of the session, depending on the value associated with it.

Assess the importance of the data carried by your sessions and deploy additional protections -- this usually comes at a price, reduced convenience for the user. For example, if you want to protect users from simple social engineering tactics, you need to enable session.use_only_cookies. In that case, cookies must be enabled unconditionally on the user side, or sessions will not work.

There are several ways to leak an existing session id to third parties. A leaked session id enables the third party to access all resources which are associated with a specific id. First, URLs carrying session ids. If you link to an external site, the URL including the session id might be stored in the external site's referrer logs. Second, a more active attacker might listen to your network traffic. If it is not encrypted, session ids will flow in plain text over the network. The solution here is to implement SSL on your server and make it mandatory for users.

Požadavky

Tyto funkce jsou k dispozici jako součást standardního modulu, který je vždy dostupný.

Poznámka: Optionally you can use shared memory allocation (mm), developed by Ralf S. Engelschall, for session storage. You have to download mm and install it. This option is not available for Windows platforms. Note that the session storage module for mm does not guarantee that concurrent accesses to the same session are properly locked. It might be more appropriate to use a shared memory based filesystem (such as tmpfs on Solaris/Linux, or /dev/md on BSD) to store sessions in files, because they are properly locked.

Instalace

Session support is enabled in PHP by default. If you would not like to build your PHP with session support, you should specify the --disable-session option to configure. To use shared memory allocation (mm) for session storage configure PHP --with-mm[=DIR] .

Verze PHP pro Windows má vestavěnou podporu pro toto rozšíření. K použití těchto funkcí není třeba načítat žádná další rozšíření.

Poznámka: By default, all data related to a particular session will be stored in a file in the directory specified by the session.save_path INI option. A file for each session (regardless of if any data is associated with that session) will be created. This is due to the fact that a session is opened (a file is created) but no data is even written to that file. Note that this behavior is a side-effect of the limitations of working with the file system and it is possible that a custom session handler (such as one which uses a database) does not keep track of sessions which store no data.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 1. Session configuration options

Name | Default | Changeable
session.save_path | "/tmp" | PHP_INI_ALL
session.name | "PHPSESSID" | PHP_INI_ALL
session.save_handler | "files" | PHP_INI_ALL
session.auto_start | "0" | PHP_INI_ALL
session.gc_probability | "1" | PHP_INI_ALL
session.gc_divisor | "100" | PHP_INI_ALL
session.gc_maxlifetime | "1440" | PHP_INI_ALL
session.serialize_handler | "php" | PHP_INI_ALL
session.cookie_lifetime | "0" | PHP_INI_ALL
session.cookie_path | "/" | PHP_INI_ALL
session.cookie_domain | "" | PHP_INI_ALL
session.cookie_secure | "" | PHP_INI_ALL
session.use_cookies | "1" | PHP_INI_ALL
session.use_only_cookies | "0" | PHP_INI_ALL
session.referer_check | "" | PHP_INI_ALL
session.entropy_file | "" | PHP_INI_ALL
session.entropy_length | "0" | PHP_INI_ALL
session.cache_limiter | "nocache" | PHP_INI_ALL
session.cache_expire | "180" | PHP_INI_ALL
session.use_trans_sid | "0" | PHP_INI_SYSTEM | PHP_INI_PERDIR
session.bug_compat_42 | "1" | PHP_INI_ALL
session.bug_compat_warn | "1" | PHP_INI_ALL
session.hash_function | "0" | PHP_INI_ALL
session.hash_bits_per_character | "4" | PHP_INI_ALL
url_rewriter.tags | "a=href,area=href,frame=src,input=src,form=fakeentry" | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

The session management system supports a number of configuration options which you can place in your php.ini file. We will give a short overview.

session.save_handler string

session.save_handler defines the name of the handler which is used for storing and retrieving data associated with a session. Defaults to files. See also session_set_save_handler().

session.save_path string

session.save_path defines the argument which is passed to the save handler. If you choose the default files handler, this is the path where the files are created. Defaults to /tmp. See also session_save_path().

There is an optional N argument to this directive that determines the number of directory levels your session files will be spread around in. For example, setting to '5;/tmp' may end up creating a session file and location like /tmp/4/b/1/e/3/sess_4b1e384ad74619bd212e236e52a5a174If . In order to use N you must create all of these directories before use. A small shell script exists in ext/session to do this, it's called mod_files.sh. Also note that if N is used and greater than 0 then automatic garbage collection will not be performed, see a copy of php.ini for further information. Also, if you use N, be sure to surround session.save_path in "quotes" because the separator (;) is also used for comments in php.ini.

Varování

If you leave this set to a world-readable directory, such as /tmp (the default), other users on the server may be able to hijack sessions by getting the list of files in that directory.

Poznámka: Windows users have to change this variable in order to use PHP's session functions. Make sure to specify a valid path, e.g.: c:/temp.

session.name string

session.name specifies the name of the session which is used as cookie name. It should only contain alphanumeric characters. Defaults to PHPSESSID. See also session_name().

session.auto_start boolean

session.auto_start specifies whether the session module starts a session automatically on request startup. Defaults to 0 (disabled).

session.serialize_handler string

session.serialize_handler defines the name of the handler which is used to serialize/deserialize data. Currently, a PHP internal format (name php) and WDDX is supported (name wddx). WDDX is only available, if PHP is compiled with WDDX support. Defaults to php.

session.gc_probability integer

session.gc_probability in conjunction with session.gc_divisor is used to manage probability that the gc (garbage collection) routine is started. Defaults to 1. See session.gc_divisor for details.

session.gc_divisor integer

session.gc_divisor coupled with session.gc_probability defines the probability that the gc (garbage collection) process is started on every session initialization. The probability is calculated by using gc_probability/gc_divisor, e.g. 1/100 means there is a 1% chance that the GC process starts on each request. session.gc_divisor defaults to 100.

session.gc_maxlifetime integer

session.gc_maxlifetime specifies the number of seconds after which data will be seen as 'garbage' and cleaned up.

Poznámka: If you are using the default file-based session handler, your filesystem must keep track of access times (atime). Windows FAT does not so you will have to come up with another way to handle garbage collecting your session if you are stuck with a FAT filesystem or any other fs where atime tracking is not available. Since PHP 4.2.3 it has used mtime (modified date) instead of atime. So, you won't have problems with filesystems where atime tracking is not available.

session.referer_check string

session.referer_check contains the substring you want to check each HTTP Referer for. If the Referer was sent by the client and the substring was not found, the embedded session id will be marked as invalid. Defaults to the empty string.

session.entropy_file string

session.entropy_file gives a path to an external resource (file) which will be used as an additional entropy source in the session id creation process. Examples are /dev/random or /dev/urandom which are available on many Unix systems.

session.entropy_length integer

session.entropy_length specifies the number of bytes which will be read from the file specified above. Defaults to 0 (disabled).

session.use_cookies boolean

session.use_cookies specifies whether the module will use cookies to store the session id on the client side. Defaults to 1 (enabled).

session.use_only_cookies boolean

session.use_only_cookies specifies whether the module will only use cookies to store the session id on the client side. Defaults to 0 (disabled, for backward compatibility). Enabling this setting prevents attacks involved passing session ids in URLs. This setting was added in PHP 4.3.0.

session.cookie_lifetime integer

session.cookie_lifetime specifies the lifetime of the cookie in seconds which is sent to the browser. The value 0 means "until the browser is closed." Defaults to 0.See also session_get_cookie_params() and session_set_cookie_params().

session.cookie_path string

session.cookie_path specifies path to set in session_cookie. Defaults to /.See also session_get_cookie_params() and session_set_cookie_params().

session.cookie_domain string

session.cookie_domain specifies the domain to set in session_cookie. Default is none at all. See also session_get_cookie_params() and session_set_cookie_params().

session.cookie_secure boolean

session.cookie_secure specifies whether cookies should only be sent over secure connections. Defaults to off. This setting was added in PHP 4.0.4. See also session_get_cookie_params() and session_set_cookie_params().

session.cache_limiter string

session.cache_limiter specifies cache control method to use for session pages (none/nocache/private/private_no_expire/public). Defaults to nocache. See also session_cache_limiter().

session.cache_expire integer

session.cache_expire specifies time-to-live for cached session pages in minutes, this has no effect for nocache limiter. Defaults to 180. See also session_cache_expire().

session.use_trans_sid boolean

session.use_trans_sid whether transparent sid support is enabled or not. Defaults to 0 (disabled).

Poznámka: For PHP 4.1.2 or less, it is enabled by compiling with --enable-trans-sid. From PHP 4.2.0, trans-sid feature is always compiled.

URL based session management has additional security risks compared to cookie based session management. Users may send a URL that contains an active session ID to their friends by email or users may save a URL that contains a session ID to their bookmarks and access your site with the same session ID always, for example.

session.bug_compat_42 boolean

PHP versions 4.2.0 and lower have an undocumented feature/bug that allows you to to initialize a session variable in the global scope, albeit register_globals is disabled. PHP 4.3.0 and later will warn you, if this feature is used, and if session.bug_compat_warn is also enabled.

session.bug_compat_warn boolean

PHP versions 4.2.0 and lower have an undocumented feature/bug that allows you to to initialize a session variable in the global scope, albeit register_globals is disabled. PHP 4.3.0 and later will warn you, if this feature is used by enabling both session.bug_compat_42 and session.bug_compat_warn.

session.hash_function integer

session.hash_function allows you to specify the hash algorithm used to generate the session IDs. '0' means MD5 (128 bits) and '1' means SHA-1 (160 bits).

Poznámka: This was introduced in PHP 5.

session.hash_bits_per_character integer

session.hash_bits_per_character allows you to define how many bits are stored in each character when converting the binary hash data to something readable. The possible values are '4' (0-9, a-f), '5' (0-9, a-v), and '6' (0-9, a-z, A-Z, "-", ",").

Poznámka: This was introduced in PHP 5.

url_rewriter.tags string

url_rewriter.tags specifies which HTML tags are rewritten to include session id if transparent sid support is enabled. Defaults to a=href,area=href,frame=src,input=src,form=fakeentry,fieldset=

Poznámka: If you want XHTML conformity, remove the form entry and use the <fieldset> tags around your form fields.

The track_vars and register_globals configuration settings influence how the session variables get stored and restored.

Poznámka: As of PHP 4.0.3, track_vars is always turned on.

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

SID (string)

Constant containing either the session name and session ID in the form of "name=ID" or empty string if session ID was set in an appropriate session cookie.

Příklady

Poznámka: As of PHP 4.1.0, $_SESSION is available as a global variable just like $_POST, $_GET, $_REQUEST and so on. Unlike $HTTP_SESSION_VARS, $_SESSION is always global. Therefore, you do not need to use the global keyword for $_SESSION. Please note that this documentation has been changed to use $_SESSION everywhere. You can substitute $HTTP_SESSION_VARS for $_SESSION, if you prefer the former. Also note that you must start your session using session_start() before use of $_SESSION becomes available.

The keys in the $_SESSION associative array are subject to the same limitations as regular variable names in PHP, i.e. they cannot start with a number and must start with a letter or underscore. For more details see the section on variables in this manual.

If register_globals is disabled, only members of the global associative array $_SESSION can be registered as session variables. The restored session variables will only be available in the array $_SESSION.

Use of $_SESSION (or $HTTP_SESSION_VARS with PHP 4.0.6 or less) is recommended for improved security and code readability. With $_SESSION, there is no need to use the session_register(), session_unregister(), session_is_registered() functions. Session variables are accessible like any other variables.

Příklad 1. Registering a variable with $_SESSION.

<?php
session_start();
// Use $HTTP_SESSION_VARS with PHP 4.0.6 or less
if (!isset($_SESSION['count'])) {
    $_SESSION['count'] = 0;
} else {
    $_SESSION['count']++;
}
?>

Příklad 2. Unregistering a variable with $_SESSION and register_globals disabled.

<?php
session_start();
// Use $HTTP_SESSION_VARS with PHP 4.0.6 or less
unset($_SESSION['count']);
?>

Výstraha

Do NOT unset the whole $_SESSION with unset($_SESSION) as this will disable the registering of session variables through the $_SESSION superglobal.

Příklad 3. Unregistering a variable with register_globals enabled, after registering it using $_SESSION.

<?php
session_start();
// With PHP 4.3 and later, you can also simply use the prior example.
session_unregister('count');
?>

If register_globals is enabled, then each global variable can be registered as session variable. Upon a restart of a session, these variables will be restored to corresponding global variables. Since PHP must know which global variables are registered as session variables, users need to register variables with session_register() function. You can avoid this by simply setting entries in $_SESSION.

Výstraha

If you are using $_SESSION and disable register_globals, do not use session_register(), session_is_registered() and session_unregister(), if your scripts shall work in PHP 4.2 and earlier. You can use these functions in 4.3 and later.

If you enable register_globals, session_unregister() should be used since session variables are registered as global variables when session data is deserialized. Disabling register_globals is recommended for both security and performance reasons.

Příklad 4. Registering a variable with register_globals enabled

<?php
if (! isset($_SESSION['count'])) {
    $_SESSION['count'] = 1;
} else {
    $_SESSION['count']++;
}
?>

If register_globals is enabled, then the global variables and the $_SESSION entries will automatically reference the same values which were registered in the prior session instance.

There is a defect in PHP 4.2.3 and earlier. If you register a new session variable by using session_register(), the entry in the global scope and the $_SESSION entry will not reference the same value until the next session_start(). I.e. a modification to the newly registered global variable will not be reflected by the $_SESSION entry. This has been corrected in PHP 4.3.

Passing the Session ID

There are two methods to propagate a session id:

  • Cookies

  • URL parameter

The session module supports both methods. Cookies are optimal, but because they are not always available, we also provide an alternative way. The second method embeds the session id directly into URLs.

PHP is capable of transforming links transparently. Unless you are using PHP 4.2 or later, you need to enable it manually when building PHP. Under Unix, pass --enable-trans-sid to configure. If this build option and the run-time option session.use_trans_sid are enabled, relative URIs will be changed to contain the session id automatically.

Poznámka: The arg_separator.output php.ini directive allows to customize the argument seperator. For full XHTML conformance, specify &amp; there.

Alternatively, you can use the constant SID which is always defined. If the client did not send an appropriate session cookie, it has the form session_name=session_id. Otherwise, it expands to an empty string. Thus, you can embed it unconditionally into URLs.

The following example demonstrates how to register a variable, and how to link correctly to another page using SID.

Příklad 5. Counting the number of hits of a single user

<?php
if (!session_is_registered('count')) {
    session_register('count');
    $count = 1;
} else {
    $count++;
}
?>

<p>
Hello visitor, you have seen this page <?php echo $count; ?> times.
</p>

<p>
To continue, <a href="nextpage.php?<?php echo strip_tags(SID); ?>">click
here</a>.
</p>

The strip_tags() is used when printing the SID in order to prevent XSS related attacks.

Printing the SID, like shown above, is not necessary if --enable-trans-sid was used to compile PHP.

Poznámka: Non-relative URLs are assumed to point to external sites and hence don't append the SID, as it would be a security risk to leak the SID to a different server.

Custom Session Handlers

To implement database storage, or any other storage method, you will need to use session_set_save_handler() to create a set of user-level storage functions.

Obsah
session_cache_expire -- Return current cache expire
session_cache_limiter -- Get and/or set the current cache limiter
session_commit -- Alias of session_write_close()
session_decode -- Decodes session data from a string
session_destroy -- Destroys all data registered to a session
session_encode -- Encodes the current session data as a string
session_get_cookie_params -- Get the session cookie parameters
session_id -- Get and/or set the current session id
session_is_registered -- Find out whether a global variable is registered in a session
session_module_name -- Get and/or set the current session module
session_name -- Get and/or set the current session name
session_regenerate_id -- Update the current session id with a newly generated one
session_register -- Register one or more global variables with the current session
session_save_path -- Get and/or set the current session save path
session_set_cookie_params -- Set the session cookie parameters
session_set_save_handler -- Sets user-level session storage functions
session_start -- Initialize session data
session_unregister -- Unregister a global variable from the current session
session_unset -- Free all session variables
session_write_close -- Write session data and end session

Předcházející | Domů | Další
sesam_settransaction | Nahoru | session_cache_expire


session_cache_expire

(PHP 4 >= 4.2.0, PHP 5)

session_cache_expire -- Return current cache expire

Description

int session_cache_expire ( [int new_cache_expire])

session_cache_expire() returns the current setting of session.cache_expire. The value returned should be read in minutes, defaults to 180. If new_cache_expire is given, the current cache expire is replaced with new_cache_expire.

The cache expire is reset to the default value of 180 stored in session.cache_limiter at request startup time. Thus, you need to call session_cache_expire() for every request (and before session_start() is called).

Příklad 1. session_cache_expire() example

<?php

/* set the cache limiter to 'private' */

session_cache_limiter('private');
$cache_limiter = session_cache_limiter();

/* set the cache expire to 30 minutes */
session_cache_expire(30);
$cache_expire = session_cache_expire();

/* start the session */

session_start();

echo "The cache limiter is now set to $cache_limiter</ br>";
echo "The cached session pages expire after $cache_expire minutes";
?>

Poznámka: Setting new_cache_expire is of value only, if session.cache_limiter is set to a value different from nocache.

See also the configuration settings session.cache_expire, session.cache_limiter and session_cache_limiter().

Předcházející | Domů | Další
Session Handling Functions | Nahoru | session_cache_limiter


session_cache_limiter

(PHP 4 >= 4.0.3, PHP 5)

session_cache_limiter -- Get and/or set the current cache limiter

Description

string session_cache_limiter ( [string cache_limiter])

session_cache_limiter() returns the name of the current cache limiter. If cache_limiter is specified, the name of the current cache limiter is changed to the new value.

The cache limiter defines which cache control HTTP headers are sent to the client. These headers determine the rules by which the page content may be cached by the client and intermediate proxies. Setting the cache limiter to nocache disallows any client/proxy caching. A value of public permits caching by proxies and the client, whereas private disallows caching by proxies and permits the client to cache the contents.

In private mode, the Expire header sent to the client may cause confusion for some browsers, including Mozilla. You can avoid this problem by using private_no_expire mode. The expire header is never sent to the client in this mode.

Poznámka: private_no_expire was added in PHP 4.2.0.

The cache limiter is reset to the default value stored in session.cache_limiter at request startup time. Thus, you need to call session_cache_limiter() for every request (and before session_start() is called).

Příklad 1. session_cache_limiter() example

<?php

/* set the cache limiter to 'private' */

session_cache_limiter('private');
$cache_limiter = session_cache_limiter();

echo "The cache limiter is now set to $cache_limiter<p>";
?>

Also see the session.cache_limiter configuration directive.

Předcházející | Domů | Další
session_cache_expire | Nahoru | session_commit


session_commit

session_commit -- Alias of session_write_close()

Description

This function is an alias of session_write_close().

Předcházející | Domů | Další
session_cache_limiter | Nahoru | session_decode


session_decode

(PHP 4 , PHP 5)

session_decode -- Decodes session data from a string

Description

bool session_decode ( string data)

session_decode() decodes the session data in data, setting variables stored in the session.

See also session_encode().

Předcházející | Domů | Další
session_commit | Nahoru | session_destroy


session_destroy

(PHP 4 , PHP 5)

session_destroy -- Destroys all data registered to a session

Description

bool session_destroy ( void )

session_destroy() destroys all of the data associated with the current session. It does not unset any of the global variables associated with the session, or unset the session cookie.

This function returns TRUE on success and FALSE on failure to destroy the session data.

Příklad 1. Destroying a session

<?php

// Initialize the session.
// If you are using session_name("something"), don't forget it now!
session_start();
// Unset all of the session variables.
session_unset();
// Finally, destroy the session.
session_destroy();

?>

Příklad 2. Destroying a session with $_SESSION

<?php

// Initialize the session.
// If you are using session_name("something"), don't forget it now!
session_start();
// Unset all of the session variables.
$_SESSION = array();
// Finally, destroy the session.
session_destroy();

?>

Předcházející | Domů | Další
session_decode | Nahoru | session_encode


session_encode

(PHP 4 , PHP 5)

session_encode -- Encodes the current session data as a string

Description

string session_encode ( void )

session_encode() returns a string with the contents of the current session encoded within.

See also session_decode()

Předcházející | Domů | Další
session_destroy | Nahoru | session_get_cookie_params


session_get_cookie_params

(PHP 4 , PHP 5)

session_get_cookie_params -- Get the session cookie parameters

Description

array session_get_cookie_params ( void )

The session_get_cookie_params() function returns an array with the current session cookie information, the array contains the following items:

  • "lifetime" - The lifetime of the cookie in seconds.

  • "path" - The path where information is stored.

  • "domain" - The domain of the cookie.

  • "secure" - The cookie should only be sent over secure connections. (This item was added in PHP 4.0.4.)

See also the configuration directives session.cookie_lifetime, session.cookie_path, session.cookie_domain, session.cookie_secure, and session_set_cookie_params().

Předcházející | Domů | Další
session_encode | Nahoru | session_id


session_id

(PHP 4 , PHP 5)

session_id -- Get and/or set the current session id

Description

string session_id ( [string id])

session_id() returns the session id for the current session.

If id is specified, it will replace the current session id. session_id() needs to be called before session_start() for that purpose. Depending on the session handler, not all characters are allowed within the session id. For example, the file session handler only allows characters in the range a-z, A-Z and 0-9!

Poznámka: When using session cookies, specifying an id for session_id() will always send a new cookie when session_start() is called, regardless if the current session id is identical to the one being set.

The constant SID can also be used to retrieve the current name and session id as a string suitable for adding to URLs. Note that SID is only defined if the client didn't send the right cookie. See also Session handling.

See also session_start(), session_set_save_handler(), and session.save_handler.

Předcházející | Domů | Další
session_get_cookie_params | Nahoru | session_is_registered


session_is_registered

(PHP 4 , PHP 5)

session_is_registered -- Find out whether a global variable is registered in a session

Description

bool session_is_registered ( string name)

session_is_registered() returns TRUE if there is a global variable with the name name registered in the current session.

Poznámka: If $_SESSION (or $HTTP_SESSION_VARS for PHP 4.0.6 or less) is used, use isset() to check a variable is registered in $_SESSION.

Výstraha

If you are using $_SESSION (or $HTTP_SESSION_VARS), do not use session_register(), session_is_registered() and session_unregister().

Předcházející | Domů | Další
session_id | Nahoru | session_module_name


session_module_name

(PHP 4 , PHP 5)

session_module_name -- Get and/or set the current session module

Description

string session_module_name ( [string module])

session_module_name() returns the name of the current session module. If module is specified, that module will be used instead.

Předcházející | Domů | Další
session_is_registered | Nahoru | session_name


session_name

(PHP 4 , PHP 5)

session_name -- Get and/or set the current session name

Description

string session_name ( [string name])

session_name() returns the name of the current session. If name is specified, the name of the current session is changed to its value.

The session name references the session id in cookies and URLs. It should contain only alphanumeric characters; it should be short and descriptive (i.e. for users with enabled cookie warnings). The session name is reset to the default value stored in session.name at request startup time. Thus, you need to call session_name() for every request (and before session_start() or session_register() are called).

Příklad 1. session_name() examples

<?php

/* set the session name to WebsiteID */

$previous_name = session_name("WebsiteID");

echo "The previous session name was $previous_name<p>";
?>

See also the session.name configuration directive.

Předcházející | Domů | Další
session_module_name | Nahoru | session_regenerate_id


session_regenerate_id

(PHP 4 >= 4.3.2, PHP 5)

session_regenerate_id -- Update the current session id with a newly generated one

Description

bool session_regenerate_id ( void )

session_regenerate_id() will replace the current session id with a new one, and keep the current session information.

Vrací TRUE při úspěchu, FALSE při selhání.

Příklad 1. A session_regenerate_id() example

<?php
session_start();

$old_sessionid = session_id();

session_regenerate_id();

$new_sessionid = session_id();

echo "Old Session: $old_sessionid<br />";
echo "New Session: $new_sessionid<br />";

print_r($_SESSION);
?>

Poznámka: As of PHP 4.3.3, if session cookies are enabled, use of session_regenerate_id() will also submit a new session cookie with the new session id.

See also session_id(),
session_start(), and
session_name().

Předcházející | Domů | Další
session_name | Nahoru | session_register


session_register

(PHP 4 , PHP 5)

session_register -- Register one or more global variables with the current session

Description

bool session_register ( mixed name [, mixed ...])

session_register() accepts a variable number of arguments, any of which can be either a string holding the name of a variable or an array consisting of variable names or other arrays. For each name, session_register() registers the global variable with that name in the current session.

Výstraha

If you want your script to work regardless of register_globals, you need to instead use the $_SESSION array as $_SESSION entries are automatically registered. If your script uses session_register(), it will not work in environments where the PHP directive register_globals is disabled.

důležitá poznámka k register_globals: Od PHP 4.2.0 je výchozí hodnota PHP direktivy register_globals off. Společenství vývojářů PHP všem doporučuje na této direktivě nelpět a místo toho raději použít jiné prostředky, jako například superglobals.

Výstraha

This registers a global variable. If you want to register a session variable from within a function, you need to make sure to make it global using the global keyword or the $GLOBALS[] array, or use the special session arrays as noted below.

Výstraha

If you are using $_SESSION (or $HTTP_SESSION_VARS), do not use session_register(), session_is_registered(), and session_unregister().

This function returns TRUE when all of the variables are successfully registered with the session.

If session_start() was not called before this function is called, an implicit call to session_start() with no parameters will be made. $_SESSION does not mimic this behavior and requires session_start() before use.

You can also create a session variable by simply setting the appropriate member of the $_SESSION or $HTTP_SESSION_VARS (PHP < 4.1.0) array.

<?php
// Use of session_register() is deprecated
$barney = "A big purple dinosaur.";
session_register("barney");

// Use of $_SESSION is preferred, as of PHP 4.1.0
$_SESSION["zim"] = "An invader from another planet.";

// The old way was to use $HTTP_SESSION_VARS
$HTTP_SESSION_VARS["spongebob"] = "He's got square pants.";
?>

Poznámka: It is currently impossible to register resource variables in a session. For example, you cannot create a connection to a database and store the connection id as a session variable and expect the connection to still be valid the next time the session is restored. PHP functions that return a resource are identified by having a return type of resource in their function definition. A list of functions that return resources are available in the resource types appendix.

If $_SESSION (or $HTTP_SESSION_VARS for PHP 4.0.6 or less) is used, assign values to $_SESSION. For example: $_SESSION['var'] = 'ABC';

See also session_is_registered(), session_unregister(), and $_SESSION.

Předcházející | Domů | Další
session_regenerate_id | Nahoru | session_save_path


session_save_path

(PHP 4 , PHP 5)

session_save_path -- Get and/or set the current session save path

Description

string session_save_path ( [string path])

session_save_path() returns the path of the current directory used to save session data. If path is specified, the path to which data is saved will be changed. session_save_path() needs to be called before session_start() for that purpose.

Poznámka: On some operating systems, you may want to specify a path on a filesystem that handles lots of small files efficiently. For example, on Linux, reiserfs may provide better performance than ext2fs.

See also the session.save_path configuration directive.

Předcházející | Domů | Další
session_register | Nahoru | session_set_cookie_params


session_set_cookie_params

(PHP 4 , PHP 5)

session_set_cookie_params -- Set the session cookie parameters

Description

void session_set_cookie_params ( int lifetime [, string path [, string domain [, bool secure]]])

Set cookie parameters defined in the php.ini file. The effect of this function only lasts for the duration of the script. Thus, you need to call session_set_cookie_params() for every request and before session_start() is called.

Poznámka: The secure parameter was added in PHP 4.0.4.

See also the configuration directives session.cookie_lifetime, session.cookie_path, session.cookie_domain, session.cookie_secure, and session_get_cookie_params().

Předcházející | Domů | Další
session_save_path | Nahoru | session_set_save_handler


session_set_save_handler

(PHP 4 , PHP 5)

session_set_save_handler -- Sets user-level session storage functions

Description

bool session_set_save_handler ( string open, string close, string read, string write, string destroy, string gc)

session_set_save_handler() sets the user-level session storage functions which are used for storing and retrieving data associated with a session. This is most useful when a storage method other than those supplied by PHP sessions is preferred. i.e. Storing the session data in a local database. Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: The "write" handler is not executed until after the output stream is closed. Thus, output from debugging statements in the "write" handler will never be seen in the browser. If debugging output is necessary, it is suggested that the debug output be written to a file instead.

Poznámka: The write handler is not executed if the session contains no data; this applies even if empty session variables are registered. This differs to the default file-based session save handler, which creates empty session files.

The following example provides file based session storage similar to the PHP sessions default save handler files. This example could easily be extended to cover database storage using your favorite PHP supported database engine.

Read function must return string value always to make save handler work as expected. Return empty string if there is no data to read. Return values from other handlers are converted to boolean expression. TRUE for success, FALSE for failure.

Příklad 1. session_set_save_handler() example

<?php
function open($save_path, $session_name)
{
  global $sess_save_path, $sess_session_name;

  $sess_save_path = $save_path;
  $sess_session_name = $session_name;
  return(true);
}

function close()
{
  return(true);
}

function read($id)
{
  global $sess_save_path, $sess_session_name;

  $sess_file = "$sess_save_path/sess_$id";
  if ($fp = @fopen($sess_file, "r")) {
    $sess_data = fread($fp, filesize($sess_file));
    return($sess_data);
  } else {
    return(""); // Must return "" here.
  }

}

function write($id, $sess_data)
{
  global $sess_save_path, $sess_session_name;

  $sess_file = "$sess_save_path/sess_$id";
  if ($fp = @fopen($sess_file, "w")) {
    return(fwrite($fp, $sess_data));
  } else {
    return(false);
  }

}

function destroy($id)
{
  global $sess_save_path, $sess_session_name;

  $sess_file = "$sess_save_path/sess_$id";
  return(@unlink($sess_file));
}

/*********************************************
 * WARNING - You will need to implement some *
 * sort of garbage collection routine here.  *
 *********************************************/
function gc($maxlifetime)
{
  return true;
}

session_set_save_handler("open", "close", "read", "write", "destroy", "gc");

session_start();

// proceed to use sessions normally

?>

See also the session.save_handler configuration directive.

Předcházející | Domů | Další
session_set_cookie_params | Nahoru | session_start


session_start

(PHP 4 , PHP 5)

session_start -- Initialize session data

Description

bool session_start ( void )

session_start() creates a session or resumes the current one based on the current session id that's being passed via a request, such as GET, POST, or a cookie.

This function always returns TRUE.

Poznámka: If you are using cookie-based sessions, you must call session_start() before anything is outputted to the browser.

Příklad 1. A session example: page1.php

<?php
// page1.php

session_start();

echo 'Welcome to page #1';

$_SESSION['favcolor'] = 'green';
$_SESSION['animal']   = 'cat';
$_SESSION['time']     = time();

// Works if session cookie was accepted
echo '<br /><a href="page2.php">page 2</a>';

// Or maybe pass along the session id, if needed
echo '<br /><a href="page2.php?' . SID . '">page 2</a>';
?>

After viewing page1.php, the second page page2.php will magically contain the session data. Read the session reference for information on propagating session ids as it, for example, explains what the constant SID is all about.

Příklad 2. A session example: page2.php

<?php
// page2.php

session_start();

echo 'Welcome to page #2<br />';

echo $_SESSION['favcolor']; // green
echo $_SESSION['animal'];   // cat
echo date('Y m d H:i:s', $_SESSION['time']);

// You may want to use SID here, like we did in page1.php
echo '<br /><a href="page1.php">page 1</a>';
?>

If you want to use a named session, you must call session_name() before calling session_start().

session_start() will register internal output handler for URL rewriting when trans-sid is enabled. If a user uses ob_gzhandler or like with ob_start(), the order of output handler is important for proper output. For example, user must register ob_gzhandler before session start.

Poznámka: Use of zlib.output_compression is recommended rather than ob_gzhandler()

Poznámka: As of PHP 4.3.3, calling session_start() while the session has already been started will result in an error of level E_NOTICE. Also, the second session start will simply be ignored.

See also $_SESSION, session.auto_start, and session_id().

Předcházející | Domů | Další
session_set_save_handler | Nahoru | session_unregister


session_unregister

(PHP 4 , PHP 5)

session_unregister -- Unregister a global variable from the current session

Description

bool session_unregister ( string name)

session_unregister() unregisters the global variable named name from the current session.

This function returns TRUE when the variable is successfully unregistered from the session.

Poznámka: If $_SESSION (or $HTTP_SESSION_VARS for PHP 4.0.6 or less) is used, use unset() to unregister a session variable. Do not unset() $_SESSION itself as this will disable the special function of the $_SESSION superglobal.

Výstraha

This function does not unset the corresponding global variable for name, it only prevents the variable from being saved as part of the session. You must call unset() to remove the corresponding global variable.

Výstraha

If you are using $_SESSION (or $HTTP_SESSION_VARS), do not use session_register(), session_is_registered() and session_unregister().

Předcházející | Domů | Další
session_start | Nahoru | session_unset


session_unset

(PHP 4 , PHP 5)

session_unset -- Free all session variables

Description

void session_unset ( void )

The session_unset() function frees all session variables currently registered.

Poznámka: If $_SESSION (or $HTTP_SESSION_VARS for PHP 4.0.6 or less) is used, use unset() to unregister a session variable, i.e. unset ($_SESSION['varname']);.

Výstraha

Do NOT unset the whole $_SESSION with unset($_SESSION) as this will disable the registering of session variables through the $_SESSION superglobal.

Předcházející | Domů | Další
session_unregister | Nahoru | session_write_close


session_write_close

(PHP 4 >= 4.0.4, PHP 5)

session_write_close -- Write session data and end session

Description

void session_write_close ( void )

End the current session and store session data.

Session data is usually stored after your script terminated without the need to call session_write_close(), but as session data is locked to prevent concurrent writes only one script may operate on a session at any time. When using framesets together with sessions you will experience the frames loading one by one due to this locking. You can reduce the time needed to load all the frames by ending the session as soon as all changes to session variables are done.

Předcházející | Domů | Další
session_unset | Nahoru | Funkce pro práci se sdílenou pamětí


Funkce pro práci se sdílenou pamětí

Manuál PHP
Předcházející Další

XCVII. Funkce pro práci se sdílenou pamětí

Úvod

Shmop je snadno použitelná sada funkcí, která PHP umožňuje číst, zapisovat, vytvářet a mazat segmenty UNIXové sdílené paměti. Tyto funkce na Windows předcházejících Windows 2000 nefungují.

Poznámka: Názvy funkcí popisovaných v této kapitole začínají v PHP 4.0.3 na shm_(), ale od PHP 4.0.4 se jejich názvy změnily na shmop_().

Požadavky

Tyto funkce jsou k dispozici jako součást standardního modulu, který je vždy dostupný.

Instalace

Pokud chcete shmop používat, musíte PHP zkompilovat s volbou --enable-shmop.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Příklady

Příklad 1. Shared Memory Operations Overview

<?php

// Vytvořit 100 bytový blok sdílené paměti se system id 0xff3
$shm_id = shmop_open(0xff3, "c", 0644, 100);
if (!$shm_id) {
    echo "Nepodařilo se vytvořit segment sdílené paměti\n";
}

// Zjistit velikost bloku sdílené paměti
$shm_size = shmop_size($shm_id);
echo "SHM blok o velikosti : ".$shm_size. " byl vytvořen.\n";

// Zapíšeme do sdílené paměti zkušební řetězec
$shm_bytes_written = shmop_write($shm_id, "my shared memory block", 0);
if ($shm_bytes_written != strlen("my shared memory block")) {
    echo "Nepodařilo se zapsat kompletní data\n";
}

// Načteme řetězec zpátky
$my_string = shmop_read($shm_id, 0, $shm_size);
if (!$my_string) {
    echo "Nepodařilo se číst z bloku sdílené paměti\n";
}
echo "Data ve sdílené paměti byla: ".$my_string."\n";

// Smažeme tento blok a zavřeme segment sdílené paměti
if (!shmop_delete($shm_id)) {
    echo "Nepodařilo se smazat blok sdílené paměti.";
}
shmop_close($shm_id);

?>

Obsah
shmop_close -- Zavřít blok sdílené paměti
shmop_delete -- Smazat blok sdílené paměti
shmop_open -- Vytvořit nebo otevřít blok sdílené paměti
shmop_read -- Přečíst data z bloku sdílené paměti
shmop_size -- Zjistit velikost bloku sdílené paměti
shmop_write -- Zapsat data do bloku sdílené paměti

Předcházející | Domů | Další
session_write_close | Nahoru | shmop_close


shmop_close

(PHP 4 >= 4.0.4, PHP 5)

shmop_close -- Zavřít blok sdílené paměti

Popis

int shmop_close ( int shmid)

shmop_close() se používá k zavření bloku sdílené paměti.

shmop_close() přijímá shmid, což je identifikátor bloku sdílené paměti vytvořený funkcí shmop_open().

Příklad 1. Zavření bloku sdílené paměti

<?php
shmop_close($shm_id);
?>

Tato ukázka zavře blok sdílené paměti pojmenovaný $shm_id.

Předcházející | Domů | Další
Funkce pro práci se sdílenou pamětí | Nahoru | shmop_delete


shmop_delete

(PHP 4 >= 4.0.4, PHP 5)

shmop_delete -- Smazat blok sdílené paměti

Popis

int shmop_delete ( int shmid)

shmop_delete() se používá ke smazání bloku sdílené paměti.

shmop_delete() přijímá shmid, což je identifikátor bloku sdílené paměti vytvořený funkcí shmop_open(). Při úspěchu vrací 1, jinak 0.

Příklad 1. Smazání bloku sdílené paměti

<?php
shmop_delete($shm_id);
?>

Tato ukázka smaže blok sdílené paměti pojmenovaný $shm_id.

Předcházející | Domů | Další
shmop_close | Nahoru | shmop_open


shmop_open

(PHP 4 >= 4.0.4, PHP 5)

shmop_open -- Vytvořit nebo otevřít blok sdílené paměti

Popis

int shmop_open ( int key, string flags, int mode, int size)

shmop_open() vytvoří nebo otevře blok sdílené paměti.

shmop_open() přijímá 4 argumenty: klíč, což je system id bloku sdílené paměti; tento argument může být předán jako desítkové nebo hexadecimální číslo. Druhý argument jsou parametry:

  • "a" pro přístup (nastavuje IPC_EXCL) tento parametr použijte, pokud chcete otevřít existující segment sdílené paměti

  • "c" pro vytvoření (nastavuje IPC_CREATE) tento parametr použijte, pokud chcete vytvořit nový segment sdílené paměti

Třetí argument je mód, což jsou přístupová práva, která chcete tomuto segmentu přiřadit; jsou stejná jako práva pro soubory. Přístupová práva musí být předána jako oktalové číslo, např. 0644. Poslední argument je velikost bloku sdílené paměti, který chcete vytvořit, v bytech.

Poznámka: Pozn.: Pokud otvíráte existující segment paměti, 3. 4. argument by měly být předány jako 0. Při úspěchu shmop_open() vrací id, které můžete použít k přístupu na tento segment sdílené paměti.

Příklad 1. Vytvoření bloku sdílené paměti

<?php
$shm_id = shmop_open(0x0fff, "c", 0644, 100);
?>

Tato ukázka otevřela blok sdílené paměti se system id 0x0fff.

Předcházející | Domů | Další
shmop_delete | Nahoru | shmop_read


shmop_read

(PHP 4 >= 4.0.4, PHP 5)

shmop_read -- Přečíst data z bloku sdílené paměti

Popis

string shmop_read ( int shmid, int start, int count)

shmop_read() čte řetězec z bloku sdílené paměti.

shmop_read() přijímá 3 argumenty: shmid, což je id bloku sdílené paměti vytvořeného funkcí shmop_open(), start, což je offset na kterém má čtení začít, a count, což je počet bytů, které se mají přečíst.

Příklad 1. Čtení bloku sdílené paměti

<?php
$shm_data = shmop_read($shm_id, 0, 50);
?>

Tato ukázka přečte z bloku sdílené paměti 50 bytů a umístí načtená data do $shm_data.

Předcházející | Domů | Další
shmop_open | Nahoru | shmop_size


shmop_size

(PHP 4 >= 4.0.4, PHP 5)

shmop_size -- Zjistit velikost bloku sdílené paměti

Popis

int shmop_size ( int shmid)

shmop_size() se používá ke zjištění velikosti bloku sdílené paměti v bytech.

shmop_size() přijímá shmid, což je
idenfifikátor vytvořený funkcí shmop_open().
shmop_size() vrací integer představující počet bytů,
které blok sdílené paměti zabírá.

Příklad 1. Zjištění velikosti bloku sdílené paměti

<?php
$shm_size = shmop_size($shm_id);
?>

Tato ukázka zapíše velikost bloku sdílené paměti určeného identifikátorem $shm_id do $shm_size.

Předcházející | Domů | Další
shmop_read | Nahoru | shmop_write


shmop_write

(PHP 4 >= 4.0.4, PHP 5)

shmop_write -- Zapsat data do bloku sdílené paměti

Popis

int shmop_write ( int shmid, string data, int offset)

shmop_write() zapíše řetězec do bloku sdílené paměti.

shmop_write() přijímá 3 argumenty: shmid, což je id bloku sdílené paměti vytvořeného funkcí shmop_open(), data, což je řetězec, který se zapíše do bloku sdílené paměti, a offset, což je offset na kterém má zápis začít.

Příklad 1. Zápis do bloku sdílené paměti

<?php
$shm_bytes_written = shmop_write($shm_id, $my_string, 0);
?>

Tato ukázka zapíše data obsažená v $my_string do bloku sdílené paměti, a $shm_bytes_written obsahuje počet zapsaných bytů.

Předcházející | Domů | Další
shmop_size | Nahoru | SimpleXML functions


SimpleXML functions

Manuál PHP
Předcházející Další

XCVIII. SimpleXML functions

Úvod

Varování

Toto rozšíření je EXPERIMENTÁLNÍ. Chování tohoto rozšíření, názvy funkcí a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může bez ohlášení změnit. Berte to v úvahu a používejte tento modul na vlastní nebezpečí.

The SimpleXML extension provides a very simple and easily usable toolset to convert XML to an object that can be processed with normal property selectors and array iterators.

Instalace

This extension is only available if PHP was configured with --enable-simplexml. The PHP configuration script does this by default.

Příklady

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().

Příklad 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>
  <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.

Příklad 2. Getting <plot>

<?php
include 'example.php';

$xml = simplexml_load_string($xmlstr);

echo $xml->movie[0]->plot; // "So this language. It's like..."
?>

Příklad 3. 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';

$xml = simplexml_load_string($xmlstr);

/* For each <movie> node, we echo a separate <plot>. */
foreach ($xml->movie as $movie) {
   echo $movie->plot, '<br />';
}

?>

Příklad 4. 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';

$xml = simplexml_load_string($xmlstr);

/* Access the <rating> nodes of the first movie.
 * Output the rating scale, too. */
foreach ($xml->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;
    }
}
?>

Příklad 5. 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';

$xml = simplexml_load_string($xmlstr);

if ((string) $xml->movie->title == 'PHP: Behind the Parser') {
    print 'My favorite movie.';
}

htmlentities((string) $xml->movie->title);
?>

Příklad 6. Using Xpath

SimpleXML includes builtin Xpath support. To find all <character> elements:

<?php
include 'example.php';
$xml = simplexml_load_string($xmlstr);

foreach ($xml->xpath('//character') as $character) {
    echo $character->name, 'played by ', $character->actor, '<br />';
}
?>

'//' serves as a wildcard. To specify absolute paths, omit one of the slashes.

Příklad 7. 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';
$xml = simplexml_load_string($xmlstr);

$xml->movie[0]->actor[0]->age = '21';

echo $xml->asXML();
?>

The above code will output a new XML document, just like the original, except that the new XML will define Ms. Coder's age as 21.

Příklad 8. 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;
}

$s = simplexml_import_dom($dom);

echo $s->book[0]->title;
?>

Obsah
simplexml_element->asXML -- Return a well-formed XML string based on SimpleXML element.
simplexml_element->attributes -- Identifies an element's attributes.
simplexml_element->children -- Finds children of given node.
simplexml_element->xpath -- Runs Xpath query on XML data.
simplexml_import_dom -- Get a simplexml_element object from a DOM node.
simplexml_load_file -- Interprets an XML file into an object.
simplexml_load_string -- Interprets a string of XML into an object.

Předcházející | Domů | Další
shmop_write | Nahoru | simplexml_element->asXML


simplexml_element->asXML

(no version information, might be only in CVS)

simplexml_element->asXML -- Return a well-formed XML string based on SimpleXML element.

Description

string simplexml_element->asXML ( void )

The asXML method formats the parent object's data in XML version 1.0.

Příklad 1. Get XML

<?php
$string = <<<XML
<a>
 <b>
  <c>text</c>
  <c>stuff</c>
 </b>
 <d>
  <c>code</c>
 </d>
</a>
XML;

$xml = simplexml_load_string($string);

echo $xml->asXML(); // <?xml ... <a><b><c>text</c><c>stuff</c> ...

?>

asXML also works on Xpath results:

Příklad 2. Using asXML() on Xpath results

<?php
// Continued from example XML above.

/* Search for <a><b><c> */
$result = $xml->xpath('/a/b/c');

while(list( , $node) = each($result)) {
    echo $node->asXML(); // <c>text</c> and <c>stuff</c>
}
?>

Předcházející | Domů | Další
SimpleXML functions | Nahoru | simplexml_element->attributes


simplexml_element->attributes

(no version information, might be only in CVS)

simplexml_element->attributes -- Identifies an element's attributes.

Description

object simplexml_element simplexml_element->attributes ( string data)

This function provides the attributes and values defined within an xml tag.

Poznámka: SimpleXML vytvořilo pravidlo pro vkládání iterativních vlastností do většiny metod. Nelze je prohlížet pomocí var_dump() nebo čímkoli jiným, co může prověřovat objekty.

Příklad 1. Interpret an XML string

<?php
$string = <<<XML
<a>
 <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";
}
?>

This script will display:

name="one"
game="lonely"

Předcházející | Domů | Další
simplexml_element->asXML | Nahoru | simplexml_element->children


simplexml_element->children

(no version information, might be only in CVS)

simplexml_element->children -- Finds children of given node.

Description

object simplexml_element simplexml_element->children ( void )

This method finds the children of the element of which it is a member. The result follows normal iteration rules.

Poznámka: SimpleXML vytvořilo pravidlo pro vkládání iterativních vlastností do většiny metod. Nelze je prohlížet pomocí var_dump() nebo čímkoli jiným, co může prověřovat objekty.

Příklad 1. Traversing a children() pseudo-array

<?php
$xml = simplexml_load_string(
'<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'];
        }
    }
}
?>

This script will output:

The person begot a son who begot a daughter; The person
begot a daughter who begot a son; and that son begot a son

Předcházející | Domů | Další
simplexml_element->attributes | Nahoru | simplexml_element->xpath


simplexml_element->xpath

(no version information, might be only in CVS)

simplexml_element->xpath -- Runs Xpath query on XML data.

Description

array simplexml_element->xpath ( string path)

The xpath method searches the SimpleXML node for children matching the Xpath path. It always returns an array of simplexml_element objects.

Příklad 1. Xpath

<?php
$string = <<<XML
<a>
 <b>
  <c>text</c>
  <c>stuff</c>
 </b>
 <d>
  <c>code</c>
 </d>
</a>
XML;

$xml = simplexml_load_string($string);

/* Search for <a><b><c> */
$result = $xml->xpath('/a/b/c');

while(list( , $node) = each($result)) {
    echo '/a/b/c: ',$node,"\n";
}

/* Relative paths also work... */
$result = $xml->xpath('b/c');

while(list( , $node) = each($result)) {
    echo 'b/c: ',$node,"\n";
}
?>

This script will display:

/a/b/c: text
/a/b/c: stuff
b/c: text
b/c: stuff

Notice that the two results are equal.

Předcházející | Domů | Další
simplexml_element->children | Nahoru | simplexml_import_dom


simplexml_import_dom

(PHP 5)

simplexml_import_dom -- Get a simplexml_element object from a DOM node.

Description

object simplexml_element simplexml_import_dom ( domNode node)

This function takes a node of a DOM document and makes it into a SimpleXML node. This new object can then be used as a native SimpleXML element. If any errors occur, it returns FALSE.

Příklad 1. Import 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; // blah
?>

Předcházející | Domů | Další
simplexml_element->xpath | Nahoru | simplexml_load_file


simplexml_load_file

(PHP 5)

simplexml_load_file -- Interprets an XML file into an object.

Description

object simplexml_element simplexml_load_file ( string filename)

This function will convert the well-formed XML document in the file specified by filename to an object of class simplexml_element. If any errors occur during file access or interpretation, the function returns FALSE.

Příklad 1. Interpret an XML document

<?php
// The file test.xml contains an XML document with a root element
// and at least an element /[root]/title.

if (file_exists('test.xml')) {
    $xml = simplexml_load_file('test.xml');

    var_dump($xml);
} else {
    exit('Failed to open test.xml.');
}
?>

This script will display, on success:

simplexml_element Object
(
  [title] => Example Title
  ...
)

At this point, you can go about using $xml->title and any other elements.

See also: simplexml_load_string()

Předcházející | Domů | Další
simplexml_import_dom | Nahoru | simplexml_load_string


simplexml_load_string

(PHP 5)

simplexml_load_string -- Interprets a string of XML into an object.

Description

object simplexml_element simplexml_load_string ( string data)

This function will take the well-formed xml string data and return an object with properties containing the data held within the xml document. If any errors occur, it returns FALSE.

Příklad 1. Interpret an XML string

<?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);

var_dump($xml);
?>

This script will display:

simplexml_element Object
(
  [title] => Forty What?
  [from] => Joe
  [to] => Jane
  [body] =>
   I know that's the answer -- but what's the question?
)

At this point, you can go about using $xml->body and such.

See also: simplexml_load_file().

Předcházející | Domů | Další
simplexml_load_file | Nahoru | SOAP Functions


SOAP Functions

Manuál PHP
Předcházející Další

XCIX. SOAP Functions

Úvod

Varování

Toto rozšíření je EXPERIMENTÁLNÍ. Chování tohoto rozšíření, názvy funkcí a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může bez ohlášení změnit. Berte to v úvahu a používejte tento modul na vlastní nebezpečí.

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.

Požadavky

This extension makes use of the GNOME xml library. Download and install this library. You will need at least libxml-2.5.4.

Instalace

This extension is only available if PHP was configured with --enable-soap.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 1. SOAP Configuration Options

Name | Default | Changeable
soap.wsdl_cache_enabled | "1" | PHP_INI_ALL
soap.wsdl_cache_dir | "/tmp" | PHP_INI_ALL
soap.wsdl_cache_ttl | 86400 | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Zde je stručné vysvětlení konfiguračních direktiv.

soap.wsdl_cache_enabled boolean

Enables or disables WSDL caching feature.

soap.wsdl_cache_dir string

Sets the directory name where SOAP extension will put cache files.

soap.wsdl_cache_ttl int

(time to live) Sets the number of second while cached file will be used instead of original one.

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

SOAP_1_1 (integer)

SOAP_1_2 (integer)

SOAP_PERSISTENCE_SESSION (integer)

SOAP_PERSISTENCE_REQUEST (integer)

SOAP_FUNCTIONS_ALL (integer)

SOAP_ENCODED (integer)

SOAP_LITERAL (integer)

SOAP_RPC (integer)

SOAP_DOCUMENT (integer)

SOAP_ACTOR_NEXT (integer)

SOAP_ACTOR_NONE (integer)

SOAP_ACTOR_UNLIMATERECEIVER (integer)

UNKNOWN_TYPE (integer)

XSD_STRING (integer)

XSD_BOOLEAN (integer)

XSD_DECIMAL (integer)

XSD_FLOAT (integer)

XSD_DOUBLE (integer)

XSD_DURATION (integer)

XSD_DATETIME (integer)

XSD_TIME (integer)

XSD_DATE (integer)

XSD_GYEARMONTH (integer)

XSD_GYEAR (integer)

XSD_GMONTHDAY (integer)

XSD_GDAY (integer)

XSD_GMONTH (integer)

XSD_HEXBINARY (integer)

XSD_BASE64BINARY (integer)

XSD_ANYURI (integer)

XSD_QNAME (integer)

XSD_NOTATION (integer)

XSD_NORMALIZEDSTRING (integer)

XSD_TOKEN (integer)

XSD_LANGUAGE (integer)

XSD_NMTOKEN (integer)

XSD_NAME (integer)

XSD_NCNAME (integer)

XSD_ID (integer)

XSD_IDREF (integer)

XSD_IDREFS (integer)

XSD_ENTITY (integer)

XSD_ENTITIES (integer)

XSD_INTEGER (integer)

XSD_NONPOSITIVEINTEGER (integer)

XSD_NEGATIVEINTEGER (integer)

XSD_LONG (integer)

XSD_INT (integer)

XSD_SHORT (integer)

XSD_BYTE (integer)

XSD_NONNEGATIVEINTEGER (integer)

XSD_UNSIGNEDLONG (integer)

XSD_UNSIGNEDINT (integer)

XSD_UNSIGNEDSHORT (integer)

XSD_UNSIGNEDBYTE (integer)

XSD_POSITIVEINTEGER (integer)

XSD_NMTOKENS (integer)

XSD_ANYTYPE (integer)

SOAP_ENC_OBJECT (integer)

SOAP_ENC_ARRAY (integer)

XSD_1999_TIMEINSTANT (integer)

XSD_NAMESPACE (string)

XSD_1999_NAMESPACE (string)

Obsah
SoapClient::SoapClient -- SoapClient constructor
SoapClient::__call -- Calls a SOAP function
SoapClient::__getFunctions -- Returns list of SOAP functions
SoapClient::__getLastRequest -- Returns last SOAP request
SoapClient::__getLastResponse -- Returns last SOAP response
SoapClient::__getTypes -- Returns list of SOAP types
SoapFault::SoapFault -- SoapFault constructor
SoapHeader::SoapHeader -- SoapHeader constructor
SoapParam::SoapParam -- SoapParam constructor
SoapServer::SoapServer -- SoapServer constructor
SoapServer::addFunction -- Adds one or several functions those will handle SOAP requests
SoapServer::getFunctions -- Returns list of defined functions
SoapServer::handle -- Handles a SOAP request
SoapServer::setClass -- Sets class which will handle SOAP requests
SoapServer::setPersistence -- Sets persistence mode of SoapServer
SoapVar::SoapVar -- SoapVar constructor
is_soap_fault -- Checks if SOAP call was failed

Předcházející | Domů | Další
simplexml_load_string | Nahoru | SoapClient::SoapClient


SoapClient::SoapClient

(no version information, might be only in CVS)

SoapClient::SoapClient -- SoapClient constructor

Description

object SoapClient::SoapClient ( mixed wsdl [, array options])

This constructor allows creating SoapClient objects in WSDL or non-WSDL mode. The first case requires the URI of WSDL file as the first parameter and an optional options array. The second case requires NULL as the first parameter and the options array with location and uri options set, where location is a URL to request and uri is a target namespace of the SOAP service.

The style and use options only work in non-WSDL mode. In WSDL mode, they comes from the WSDL file.

The soap_version option specifies whether to use SOAP 1.1, or SOAP 1.2 client.

For HTTP authentication, you may use the login and password options. For making a HTTP connection through a proxy server, use the options proxy_host, proxy_port, proxy_login and proxy_password.

Příklad 1. SoapClient examples

<?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(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));

?>

Předcházející | Domů | Další
SOAP Functions | Nahoru | SoapClient::__call


SoapClient::__call

(no version information, might be only in CVS)

SoapClient::__call -- Calls a SOAP function

Description

mixed SoapClient::__call ( string function_name [, array arguments [, array options [, array input_headers [, array output_headers]]]])

This is a low level API function to make a SOAP call. Usually in WSDL mode you can simply call SOAP functions as SoapClient methods. It is useful for non-WSDL mode when soapaction is unknown, uri differs from the default or when you like to send and/or receive SOAP Headers. On error, a call to a SOAP function can cause PHP exceptions or return a SoapFault object if exceptions was disabled. To check if the function call failed catch the SoapFault exceptions or check the result with the is_soap_fault() function.

SOAP functions may return one or several values. In the first case it will return just the value of output parameter, in the second it will return the associative array with named output parameters.

Příklad 1. SoapClient::__call() examples

<?php
$client = new SoapClient("some.wsdl");
$client->SomeFunction($a, $b, $c);
$client->__call("SomeFunction", array($a, $b, $c));
$client->__call("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->__call("SomeFunction", array($a, $b, $c));
$client->__call("SomeFunction", array($a, $b, $c),
                 array('soapaction' => 'some_action',
                       'uri'        => 'some_uri'));
?>

See also
SoapClient::SoapClient(),
SoapParam::SoapParam(),
SoapVar::SoapVar(),
SoapHeader::SoapHeader(),
SoapFault::SoapFault(), and
is_soap_fault().

Předcházející | Domů | Další
SoapClient::SoapClient | Nahoru | SoapClient::__getFunctions


SoapClient::__getFunctions

(no version information, might be only in CVS)

SoapClient::__getFunctions -- Returns list of SOAP functions

Description

array SoapClient::__getFunctions ( void )

This function works only in WSDL mode.

Příklad 1. SoapClient::__getFunctions() example

<?php
$client = SoapClient("some.wsdl");
var_dump($client->__getFunctions());
?>

See also SoapClient::SoapClient().

Předcházející | Domů | Další
SoapClient::__call | Nahoru | SoapClient::__getLastRequest


SoapClient::__getLastRequest

(no version information, might be only in CVS)

SoapClient::__getLastRequest -- Returns last SOAP request

Description

string SoapClient::__getLastRequest ( void )

This function works only with SoapClient which was created with the trace option.

Příklad 1. SoapClient::__getLastRequest() example

<?php
$client = SoapClient("some.wsdl", array('trace' => 1));
$result = $client->SomeFunction(...);
echo "REQUEST:\n" . $client->__getLastRequest() . "\n";
?>

See also SoapClient::SoapClient().

Předcházející | Domů | Další
SoapClient::__getFunctions | Nahoru | SoapClient::__getLastResponse


SoapClient::__getLastResponse

(no version information, might be only in CVS)

SoapClient::__getLastResponse -- Returns last SOAP response

Description

object SoapClient::__getLastResponse ( void )

This function works only with SoapClient which was created with the trace option.

Příklad 1. SoapClient::__getLastResponse() example

<?php
$client = SoapClient("some.wsdl", array('trace' => 1));
$result = $client->SomeFunction(...);
echo "RESPONSE:\n" . $client->__getLastResponse() . "\n";
?>

See also SoapClient::SoapClient().

Předcházející | Domů | Další
SoapClient::__getLastRequest | Nahoru | SoapClient::__getTypes


SoapClient::__getTypes

(no version information, might be only in CVS)

SoapClient::__getTypes -- Returns list of SOAP types

Description

array SoapClient::__getTypes ( void )

This function works only in WSDL mode.

Příklad 1. SoapClient::__getTypes() example

<?php
$client = SoapClient("some.wsdl");
var_dump($client->__getTypes());
?>

See also SoapClient::SoapClient().

Předcházející | Domů | Další
SoapClient::__getLastResponse | Nahoru | SoapFault::SoapFault


SoapFault::SoapFault

(no version information, might be only in CVS)

SoapFault::SoapFault -- SoapFault constructor

Description

object SoapFault::SoapFault ( string faultcode, string faultstring [, string faultactor [, mixed detail [, string faultname [, mixed headerfault]]]])

This class is useful when you would like to send SOAP fault responses from the PHP handler. faultcode, faultstring, faultactor and details are standard elements of SOAP Fault; faultname is an optional parameter that can be used to select proper fault encoding from WSDL; headerfault is an optional parameter that can be used during SOAP header handling to report an error in the response header.

Příklad 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.

Příklad 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();
?>

See also
SoapClient::SoapClient(),
SoapClient::__call(),
SoapParam::SoapParam(),
SoapVar::SoapVar(), and
is_soap_fault().

Předcházející | Domů | Další
SoapClient::__getTypes | Nahoru | SoapHeader::SoapHeader


SoapHeader::SoapHeader

(no version information, might be only in CVS)

SoapHeader::SoapHeader -- SoapHeader constructor

Description

object SoapHeader::SoapHeader ( string namespace, string name [, mixed data [, bool mustUnderstand [, mixed actor]]])

SoapHeader is a special low-level class for passing or returning SOAP headers. It is just a data holder and it does not have any special methods except a constructor. It can be used in the SoapClient::__call() method to pass a SOAP header or in a SOAP header handler to return the header in a SOAP response. namespace and name are namespace and name of the SOAP header element. data is a SOAP header's content. It can be a PHP value or SoapVar object. mustUnderstand and actor are values for mustUnderstand and actor attributes of this SOAP Header element.

Příklad 1. Some examples

<?php
$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));
$client->__call("echoVoid", null, null,
                new SoapHeader('http://soapinterop.org/echoheader/',
                               'echoMeStringRequest',
                               'hello world'));
?>

See also
SoapClient::__call(),
SoapParam::SoapParam(), and
SoapVar::SoapVar().

Předcházející | Domů | Další
SoapFault::SoapFault | Nahoru | SoapParam::SoapParam


SoapParam::SoapParam

(no version information, might be only in CVS)

SoapParam::SoapParam -- SoapParam constructor

Description

object SoapParam::SoapParam ( mixed data, string name)

SoapParam is a special low-level class for naming parameters and return ing values in non-WSDL mode. It is just a data holder and it does not have any special methods except the constructor. The constructor takes data to pass or return and name. It is possible to pass parameters directly as PHP values, but in this case it will be named as paramN and the SOAP Service may not understand them.

Příklad 1. Some examples

<?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"));
?>

See also SoapClient::__call(), and SoapVar::SoapVar().

Předcházející | Domů | Další
SoapHeader::SoapHeader | Nahoru | SoapServer::SoapServer


SoapServer::SoapServer

(no version information, might be only in CVS)

SoapServer::SoapServer -- SoapServer constructor

Description

object SoapServer::SoapServer ( mixed wsdl [, array options])

This constuctor allows the creatiion of SoapServer objects in WSDL or non-WSDL mode. In the first case, wsdl must be set to the URI of a WSDL file. In the second case, wsdl must be set to NULL and the uri option must be set. Additional options allow setting a default SOAP version (soap_version) and actor URI (actor).

Příklad 1. Some examples

<?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(null, array('uri' => "http://test-uri/"));

?>

Předcházející | Domů | Další
SoapParam::SoapParam | Nahoru | SoapServer::addFunction


SoapServer::addFunction

(no version information, might be only in CVS)

SoapServer::addFunction -- Adds one or several functions those will handle SOAP requests

Description

void SoapServer::addFunction ( mixed functions)

Exports one or more functions for remote clients.

To export one function, pass the function name into the functions parameter as a string. To export several functions pass an array of function names, and to export all functions pass a special constant SOAP_FUNCTIONS_ALL.

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.

Příklad 1. Some examples

<?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);

?>

See also SoapServer::SoapServer(), and SoapServer::SetClass().

Předcházející | Domů | Další
SoapServer::SoapServer | Nahoru | SoapServer::getFunctions


SoapServer::getFunctions

(no version information, might be only in CVS)

SoapServer::getFunctions -- Returns list of defined functions

Description

array SoapServer::getFunctions ( void )

This functions returns the list of all functions which was added by SoapServer::addFunction() or SoapServer::setCalss().

Příklad 1. Some examples

<?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";
  }
}
?>

See also
SoapServer::SoapServer(),
SoapServer::addFunction(), and
SoapServer::SetClass().

Předcházející | Domů | Další
SoapServer::addFunction | Nahoru | SoapServer::handle


SoapServer::handle

(no version information, might be only in CVS)

SoapServer::handle -- Handles a SOAP request

Description

void SoapServer::handle ( [string soap_request])

Processes a SOAP request, calls necessary functions, and sends a response back. It assumes a request in input parameter soap_request or in the global $HTTP_RAW_POST_DATA PHP variable if the argument is omitted.

Příklad 1. Some examples

<?php
function test($x)
{
    return $x;
}

$server = new SoapServer(null, array('uri' => "http://test-uri/"));
$server->addFunction("test");
$server->handle();
?>

See also SoapServer::SoapServer().

Předcházející | Domů | Další
SoapServer::getFunctions | Nahoru | SoapServer::setClass


SoapServer::setClass

(no version information, might be only in CVS)

SoapServer::setClass -- Sets class which will handle SOAP requests

Description

void SoapServer::setClass ( string class_name [, mixed args])

Exports all methods from specified class. Additional parameters args will be passed to the default class constructor during object creation. The object can be made persistent across request for a given PHP session with the SoapServer::setPersistence() method.

Příklad 1. Some examples

<?php

class foo {
    function foo()
    {
    }
}
$server->setClass("foo");

class bar {
    function bar($x, $y)
    {
    }
}
$server->setClass("bar", $arg1, $arg2);

?>

See also
SoapServer::SoapServer(),
SoapServer::addFunction(), and
SoapServer::setPersistence().

Předcházející | Domů | Další
SoapServer::handle | Nahoru | SoapServer::setPersistence


SoapServer::setPersistence

(no version information, might be only in CVS)

SoapServer::setPersistence -- Sets persistence mode of SoapServer

Description

void SoapServer::setPersistence ( int mode)

This function allows saving data between requests in a PHP session. It works only with a server that exports functions from a class with SoapServer::setClass().

Příklad 1. Some examples

<?php

$server->setPersistence(SOAP_PERSISTENCE_SESSION);

$server->setPersistence(SOAP_PERSISTENCE_REQUEST);

?>

See also SoapServer::SoapServer(), and SoapServer::SetClass().

Předcházející | Domů | Další
SoapServer::setClass | Nahoru | SoapVar::SoapVar


SoapVar::SoapVar

(no version information, might be only in CVS)

SoapVar::SoapVar -- SoapVar constructor

Description

object SoapVar::SoapVar ( mixed data, int encoding [, string type_name [, string type_namespace [, string node_name [, string node_namespace]]]])

SoapVar is a special low-level class for encoding parameters and returning values in non-WSDL mode. It is just a data holder and does not have any special methods except the constructor. It is useful when you would like to set the type property in SOAP request or response. The constructor takes data to pass or return, encoding ID to encode it (see XSD_... constants) and as option type name and namespace and XML node name and namespace.

Příklad 1. Some examples

<?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"));
?>

See also SoapClient::__call() and SoapParam::SoapParam().

Předcházející | Domů | Další
SoapServer::setPersistence | Nahoru | is_soap_fault


is_soap_fault

(PHP 5)

is_soap_fault -- Checks if SOAP call was failed

Description

bool is_soap_fault ( mixed obj)

This function is useful when you like to check if the SOAP call failed, but don't like to use exceptions. To use it you must create a SoapClient object with 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.

Příklad 1. is_soap_fault() example

<?php
$client = SoapClient("some.wsdl", array('exceptions' => 0));
$result = $client->SomeFunction(...);
if (is_soap_fault($result)) {
    trigger_error("SOAP Fault: (faultcode: {$result->faultcode}, faultstring: {$result->faulstring})", E_ERROR);
}
?>

Příklad 2. SOAP's standard method for error reporting is exceptions

<?php
try {
    $client = SoapClient("some.wsdl");
    $result = $client->SomeFunction(...);
} catch (SoapFault $fault) {
    trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faulstring})", E_ERROR);
}
?>

See also SoapClient::SoapClient(), and SoapFault::SoapFault().

Předcházející | Domů | Další
SoapVar::SoapVar | Nahoru | SQLite


SQLite

Manuál PHP
Předcházející Další

C. SQLite

Úvod

This is an extension for the SQLite Embeddable SQL Database Engine. SQLite is a C library that implements an embeddable SQL database engine. Programs that link with the SQLite library can have SQL database access without running a separate RDBMS process.

SQLite is not a client library used to connect to a big database server. SQLite is the server. The SQLite library reads and writes directly to and from the database files on disk.

Poznámka: For further information see the SQLite Website (http://sqlite.org/).

Installation

Read the INSTALL file, which comes with the package. Or just use the PEAR installer with "pear install sqlite". SQLite itself is already included, You do not need to install any additional software.

Windows users may download the DLL version of the SQLite extension here: (php_sqlite.dll).

In PHP 5, the SQLite extension and the engine itself are bundled and compilled by default.

Požadavky

In order to have these functions available, you must compile PHP with SQLite support, or load the SQLite extension dynamically from your php.ini.

Typy prostředků

There are two resources used in the SQLite Interface. The first one is the database connection, the second one the result set.

Predefined Constants

The functions sqlite_fetch_array() and sqlite_current() use a constant for the different types of result arrays. The following constants are defined:

Tabulka 1. SQLite fetch constants

constant | meaning
SQLITE_ASSOC | Columns are returned into the array having the fieldname as the array index.
SQLITE_BOTH | Columns are returned into the array having both a numerical index and the fieldname as the array index.
SQLITE_NUM | Columns are returned into the array having a numerical index to the fields. This index starts with 0, the first field in the result.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 2. SQLite Configuration Options

Name | Default | Changeable
sqlite.assoc_case | 0 | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Zde je stručné vysvětlení konfiguračních direktiv.

sqlite.assoc_case int

Whether to use mixed case (0), upper case (1) or lower case (2) hash indexes.

This option is primarily useful when you need compatibility with other database systems, where the names of the columns are always returned as uppercase or lowercase, regardless of the case of the actual field names in the database schema.

The SQLite library returns the column names in their natural case (that matches the case you used in your schema). When sqlite.assoc_case is set to 0 the natural case will be preserved. When it is set to 1 or 2, PHP will apply case folding on the hash keys to upper- or lower-case the keys, respectively.

Use of this option incurs a slight performance penalty, but is MUCH faster than performing the case folding yourself using PHP script.

Obsah
sqlite_array_query -- Execute a query against a given database and returns an array.
sqlite_busy_timeout -- Set busy timeout duration, or disable busy handlers.
sqlite_changes -- Returns the number of rows that were changed by the most recent SQL statement.
sqlite_close -- Closes an open SQLite database.
sqlite_column -- Fetches a column from the current row of a result set.
sqlite_create_aggregate -- Register an aggregating UDF for use in SQL statements.
sqlite_create_function -- Registers a "regular" User Defined Function for use in SQL statements.
sqlite_current -- Fetches the current row from a result set as an array.
sqlite_error_string -- Returns the textual description of an error code.
sqlite_escape_string -- Escapes a string for use as a query parameter
sqlite_fetch_array -- Fetches the next row from a result set as an array.
sqlite_fetch_single -- Fetches the first column of a result set as a string.
sqlite_fetch_string -- Alias of sqlite_fetch_single()
sqlite_field_name -- Returns the name of a particular field.
sqlite_has_more -- Returns whether or not more rows are available.
sqlite_last_error -- Returns the error code of the last error for a database.
sqlite_last_insert_rowid -- Returns the rowid of the most recently inserted row.
sqlite_libencoding -- Returns the encoding of the linked SQLite library.
sqlite_libversion -- Returns the version of the linked SQLite library.
sqlite_next -- Seek to the next row number.
sqlite_num_fields -- Returns the number of fields in a result set.
sqlite_num_rows -- Returns the number of rows in a buffered result set.
sqlite_open -- Opens a SQLite database. Will create the database if it does not exist
sqlite_popen -- Opens a persistent handle to an SQLite database. Will create the database if it does not exist.
sqlite_query -- Executes a query against a given database and returns a result handle.
sqlite_rewind -- Seek to the first row number.
sqlite_seek -- Seek to a particular row number of a buffered result set.
sqlite_udf_decode_binary -- Decode binary data passed as parameters to an UDF.
sqlite_udf_encode_binary -- Encode binary data before returning it from an UDF.
sqlite_unbuffered_query -- Execute a query that does not prefetch and buffer all data

Předcházející | Domů | Další
is_soap_fault | Nahoru | sqlite_array_query


sqlite_array_query

(PHP 5)

sqlite_array_query -- Execute a query against a given database and returns an array.

Description

array sqlite_array_query ( resource dbhandle, string query [, int result_type [, bool decode_binary]])

array sqlite_array_query ( string query, resource dbhandle [, int result_type [, bool decode_binary]])

sqlite_array_query() is similar to calling sqlite_query() and then sqlite_fetch_array() for each row of the result set and storing it into an array, as shown in the example below. Calling sqlite_array_query() is significantly faster than using such a script.

Příklad 1. sqlite_array_query() implemented yourself

<?php
$q = sqlite_query($dbhandle, "SELECT * from foo LIMIT 100");
$rows = array();
while ($r = sqlite_fetch_array($q)) {
    $rows[] = $r;
}
?>

Tip: sqlite_array_query() is best suited to queries returning 45 rows or less. If you have more data than that, it is recommended that you write your scripts to use sqlite_unbuffered_query() instead for more optimal performance.

See also sqlite_query(),
sqlite_fetch_array(), and
sqlite_fetch_string().

Předcházející | Domů | Další
SQLite | Nahoru | sqlite_busy_timeout


sqlite_busy_timeout

(PHP 5)

sqlite_busy_timeout -- Set busy timeout duration, or disable busy handlers.

Description

void sqlite_busy_timeout ( resource dbhandle, int milliseconds)

Set the maximum time that sqlite will wait for a dbhandle to become ready for use to milliseconds. If milliseconds is 0, busy handlers will be disabled and sqlite will return immediately with a SQLITE_BUSY status code if another process/thread has the database locked for an update.

PHP sets the default busy timeout to be 60 seconds when the database is opened.

Poznámka: There are one thousand (1000) milliseconds in one second.

See also sqlite_open().

Předcházející | Domů | Další
sqlite_array_query | Nahoru | sqlite_changes


sqlite_changes

(PHP 5)

sqlite_changes -- Returns the number of rows that were changed by the most recent SQL statement.

Description

int sqlite_changes ( resource dbhandle)

Returns the numbers of rows that were changed by the most recent SQL statement executed against the dbhandle database handle.

See also sqlite_num_rows().

Předcházející | Domů | Další
sqlite_busy_timeout | Nahoru | sqlite_close


sqlite_close

(PHP 5)

sqlite_close -- Closes an open SQLite database.

Description

void sqlite_close ( resource dbhandle)

Closes the given database handle. If the database was persistent, it will be closed and removed from the persistent list.

See also sqlite_open() and sqlite_popen().

Předcházející | Domů | Další
sqlite_changes | Nahoru | sqlite_column


sqlite_column

(PHP 5)

sqlite_column -- Fetches a column from the current row of a result set.

Description

mixed sqlite_column ( resource result, mixed index_or_name [, bool decode_binary])

Fetches the value of a column named index_or_name (if it is a string), or of the ordinal column numbered index_or_name (if it is an integer) from the current row of the query result handle result. The decode binary flag operates in the same way as described under sqlite_fetch_array().

Use this function when you are iterating a large result set with many columns, or with columns that contain large amounts of data.

See also sqlite_fetch_string().

Předcházející | Domů | Další
sqlite_close | Nahoru | sqlite_create_aggregate


sqlite_create_aggregate

(PHP 5)

sqlite_create_aggregate -- Register an aggregating UDF for use in SQL statements.

Description

bool sqlite_create_aggregate ( resource dbhandle, string function_name, mixed step_func, mixed finalize_func [, int num_args])

sqlite_create_aggregate() is similar to sqlite_create_function() except that it registers functions that can be used to calculate a result aggregated across all the rows of a query.

The key difference between this function and sqlite_create_function() is that two functions are required to manage the aggregate; step_func is called for each row of the result set. Your PHP function should accumulate the result and store it into the aggregation context. Once all the rows have been processed, finalize_func will be called and it should then take the data from the aggregation context and return the result.

Příklad 1. max_length aggregation function example

<?php
$data = array(
   'one',
   'two',
   'three',
   'four',
   'five',
   'six',
   'seven',
   'eight',
   'nine',
   'ten',
   );
$dbhandle = sqlite_open(':memory:');
sqlite_query($dbhandle, "CREATE TABLE strings(a)");
foreach ($data as $str) {
    $str = sqlite_escape_string($str);
    sqlite_query($dbhandle, "INSERT INTO strings VALUES ('$str')");
}

function max_len_step(&$context, $string)
{
    if (strlen($string) > $context) {
        $context = strlen($string);
    }
}

function max_len_finalize(&$context)
{
    return $context;
}

sqlite_create_aggregate($dbhandle, 'max_len', 'max_len_step', 'max_len_finalize');

var_dump(sqlite_array_query($dbhandle, 'SELECT max_len(a) from strings'));

?>

In this example, we are creating an aggregating function that will calculate the length of the longest string in one of the columns of the table. For each row, the max_len_step function is called and passed a context parameter. The context parameter is just like any other PHP variable and be set to hold an array or even an object value. In this example, we are simply using it to hold the maximum length we have seen so far; if the string has a length longer than the current maximum, we update the context to hold this new maximum length.

After all of the rows have been processed, SQLite calls the max_len_finalize function to determine the aggregate result. Here, we could perform some kind of calculation based on the data found in the context. In our simple example though, we have been calculating the result as the query progressed, so we simply need to return the context value.

Poznámka: The example above will not work correctly if the column contains binary data. Take a look at the manual page for sqlite_udf_decode_binary() for an explanation of why this is so, and an example of how to make it respect the binary encoding.

Tip: It is NOT recommended for you to store a copy of the values in the context and then process them at the end, as you would cause SQLite to use a lot of memory to process the query - just think of how much memory you would need if a million rows were stored in memory, each containing a string 32 bytes in length.

Tip: You can use sqlite_create_function() and sqlite_create_aggregate() to override SQLite native SQL functions.

See also sqlite_create_function(),
sqlite_udf_encode_binary() and
sqlite_udf_decode_binary().

Předcházející | Domů | Další
sqlite_column | Nahoru | sqlite_create_function


sqlite_create_function

(PHP 5)

sqlite_create_function -- Registers a "regular" User Defined Function for use in SQL statements.

Description

bool sqlite_create_function ( resource dbhandle, string function_name, mixed callback [, int num_args])

sqlite_create_function() allows you to register a PHP function with SQLite as an UDF (User Defined Function), so that it can be called from within your SQL statements.

dbhandle specifies the database handle that you wish to extend, function_name specifies the name of the function that you will use in your SQL statements, callback is any valid PHP callback to specify a PHP function that should be called to handle the SQL function. The optional parameter num_args is used as a hint by the SQLite expression parser/evaluator. It is recommended that you specify a value if your function will only ever accept a fixed number of parameters.

The UDF can be used in any SQL statement that can call functions, such as SELECT and UPDATE statements and also in triggers.

Příklad 1. sqlite_create_function() example

<?php
function md5_and_reverse($string)
{
    return strrev(md5($string));
}

if ($dbhandle = sqlite_open('mysqlitedb', 0666, $sqliteerror)) {

    sqlite_create_function($dbhandle, 'md5rev', 'md5_and_reverse', 1);

    $sql  = 'SELECT md5rev(filename) FROM files';
    $rows = sqlite_array_query($dbhandle, $sql);
} else {
    echo 'Error opening sqlite db: ' . $sqliteerror;
    exit;
}
?>

In this example, we have a function that calculates the md5 sum of a string, and then reverses it. When the SQL statement executes, it returns the value of the filename transformed by our function. The data returned in $rows contains the processed result.

The beauty of this technique is that you do not need to process the result using a foreach() loop after you have queried for the data.

PHP registers a special function named php when the database is first opened. The php function can be used to call any PHP function without having to register it first.

Příklad 2. Example of using the PHP function

<?php
$rows = sqlite_array_query($dbhandle, "SELECT php('md5', filename) from files");
?>

This example will call the md5() on each filename column in the database and return the result into $rows

Poznámka: For performance reasons, PHP will not automatically encode/decode binary data passed to and from your UDF's. You need to manually encode/decode the parameters and return values if you need to process binary data in this way. Take a look at sqlite_udf_encode_binary() and sqlite_udf_decode_binary() for more details.

Tip: It is not recommended to use UDF's to handle processing of binary data, unless high performance is not a key requirement of your application.

Tip: You can use sqlite_create_function() and sqlite_create_aggregate() to override SQLite native SQL functions.

See also sqlite_create_aggregate().

Předcházející | Domů | Další
sqlite_create_aggregate | Nahoru | sqlite_current


sqlite_current

(PHP 5)

sqlite_current -- Fetches the current row from a result set as an array.

Description

array sqlite_current ( resource result [, int result_type [, bool decode_binary]])

sqlite_current() is identical to sqlite_fetch_array() except that it does not advance to the next row prior to returning the data; it returns the data from the current position only.

If the current position is beyond the final row, this function returns FALSE

Poznámka: This function will not work on unbuffered result handles.

See also sqlite_seek(),
sqlite_next(), and
sqlite_fetch_array().

Předcházející | Domů | Další
sqlite_create_function | Nahoru | sqlite_error_string


sqlite_error_string

(PHP 5)

sqlite_error_string -- Returns the textual description of an error code.

Description

string sqlite_error_string ( int error_code)

Returns a human readable description of the error_code returned from sqlite_last_error().

See also sqlite_last_error().

Předcházející | Domů | Další
sqlite_current | Nahoru | sqlite_escape_string


sqlite_escape_string

(PHP 5)

sqlite_escape_string -- Escapes a string for use as a query parameter

Description

string sqlite_escape_string ( string item)

sqlite_escape_string() will correctly quote the string specified by item for use in an SQLite SQL statement. This includes doubling up single-quote characters (') and checking for binary-unsafe characters in the query string.

If the item contains a NUL character, or if it begins with a character whose ordinal value is 0x01, PHP will apply a binary encoding scheme so that you can safely store and retrieve binary data.

Although the encoding makes it safe to insert the data, it will render simple text comparisons and LIKE clauses in your queries unusable for the columns that contain the binary data. In practice, this shouldn't be a problem, as your schema should be such that you don't use such things on binary columns (in fact, it might be better to store binary data using other means, such as in files).

Varování

addslashes() should NOT be used to quote your strings for SQLite queries; it will lead to strange results when retrieving your data.

Poznámka:
    Do not use this function to encode the return values from UDF's created
    using sqlite_create_function() or
    sqlite_create_aggregate() - use
    sqlite_udf_encode_binary() instead.

See also sqlite_udf_encode_binary().

Předcházející | Domů | Další
sqlite_error_string | Nahoru | sqlite_fetch_array


sqlite_fetch_array

(PHP 5)

sqlite_fetch_array -- Fetches the next row from a result set as an array.

Description

array sqlite_fetch_array ( resource result [, int result_type [, bool decode_binary]])

Fetches the next row from the given result handle. If there are no more rows, returns FALSE, otherwise returns an associative array representing the row data.

result_type can be used to specify how you want the results to be returned. The default value is SQLITE_BOTH which returns columns indexed by their ordinal column number and by column name. SQLITE_ASSOC causes the array to be indexed only by column names, and SQLITE_NUM to be indexed only by ordinal column numbers.

The column names returned by SQLITE_ASSOC and SQLITE_BOTH will be case-folded according to the value of the sqlite.assoc_case configuration option.

When decode_binary is set to TRUE (the default), PHP will decode the binary encoding it applied to the data if it was encoded using the sqlite_escape_string(). You will usually always leave this value at its default, unless you are interoperating with databases created by other sqlite capable applications.

See also sqlite_array_query() and sqlite_fetch_string().

Předcházející | Domů | Další
sqlite_escape_string | Nahoru | sqlite_fetch_single


sqlite_fetch_single

(PHP 5)

sqlite_fetch_single -- Fetches the first column of a result set as a string.

Description

string sqlite_fetch_single ( resource result [, int result_type [, bool decode_binary]])

sqlite_fetch_single() is identical to sqlite_fetch_array() except that it returns the value of the first column of the rowset.

This is the most optimal way to retrieve data when you are only interested in the values from a single column of data.

Příklad 1. A sqlite_fetch_single() example

<?php
if ($dbhandle = sqlite_open('mysqlitedb', 0666, $sqliteerror)) {

    $sql = "SELECT id FROM sometable WHERE id = 42";
    $res = sqlite_query($dbhandle, $sql);

    if (sqlite_num_rows($res) > 0) {
        echo sqlite_fetch_single($res); // 42
    }

    sqlite_close($dbhandle);
}
?>

See also sqlite_fetch_array().

Předcházející | Domů | Další
sqlite_fetch_array | Nahoru | sqlite_fetch_string


sqlite_fetch_string

sqlite_fetch_string -- Alias of sqlite_fetch_single()

Description

This function is an alias of sqlite_fetch_single().

Předcházející | Domů | Další
sqlite_fetch_single | Nahoru | sqlite_field_name


sqlite_field_name

(PHP 5)

sqlite_field_name -- Returns the name of a particular field.

Description

string sqlite_field_name ( resource result, int field_index)

Given the ordinal column number, field_index, returns the name of that field in the result handle result.

Předcházející | Domů | Další
sqlite_fetch_string | Nahoru | sqlite_has_more


sqlite_has_more

(PHP 5)

sqlite_has_more -- Returns whether or not more rows are available.

Description

bool sqlite_has_more ( resource result)

sqlite_has_more() returns TRUE if there are more rows available from the result handle, or FALSE otherwise.

See also sqlite_num_rows() and sqlite_changes().

Předcházející | Domů | Další
sqlite_field_name | Nahoru | sqlite_last_error


sqlite_last_error

(PHP 5)

sqlite_last_error -- Returns the error code of the last error for a database.

Description

int sqlite_last_error ( resource dbhandle)

Returns the error code from the last operation performed on dbhandle, the database handle. A human readable description of the error code can be retrieved using sqlite_error_string().

See also sqlite_error_string().

Předcházející | Domů | Další
sqlite_has_more | Nahoru | sqlite_last_insert_rowid


sqlite_last_insert_rowid

(PHP 5)

sqlite_last_insert_rowid -- Returns the rowid of the most recently inserted row.

Description

int sqlite_last_insert_rowid ( resource dbhandle)

Returns the rowid of the row that was most recently inserted into the database dbhandle, if it was created as an auto-increment field.

Tip: You can create auto-increment fields in SQLite by declaring them as INTEGER PRIMARY KEY in your table schema.

Předcházející | Domů | Další
sqlite_last_error | Nahoru | sqlite_libencoding


sqlite_libencoding

(PHP 5)

sqlite_libencoding -- Returns the encoding of the linked SQLite library.

Description

string sqlite_libencoding ( void )

The SQLite library may be compiled in either ISO-8859-1 or UTF-8 compatible modes. This function allows you to determine which encoding scheme is used by your version of the library.

Varování

The default PHP distribution builds libsqlite in ISO-8859-1 encoding mode. However, this is a misnomer; rather than handling ISO-8859-1, it operates according to your current locale settings for string comparisons and sort ordering. So, rather than ISO-8859-1, you should think of it as being '8-bit' instead.

When compiled with UTF-8 support, sqlite handles encoding and decoding of UTF-8 multi-byte character sequences, but does not yet do a complete job when working with the data (no normalization is performed for example), and some comparison operations may still not be carried out correctly.

Varování

It is not recommended that you use PHP in a web-server configuration with a version of the SQLite library compiled with UTF-8 support, since libsqlite will abort the process if it detects a problem with the UTF-8 encoding.

See also sqlite_libversion().

Předcházející | Domů | Další
sqlite_last_insert_rowid | Nahoru | sqlite_libversion


sqlite_libversion

(PHP 5)

sqlite_libversion -- Returns the version of the linked SQLite library.

Description

string sqlite_libversion ( void )

Returns the version of the linked SQLite library as a string.

See also sqlite_libencoding().

Předcházející | Domů | Další
sqlite_libencoding | Nahoru | sqlite_next


sqlite_next

(PHP 5)

sqlite_next -- Seek to the next row number.

Description

bool sqlite_next ( resource result)

sqlite_next() advances the result handle result to the next row. Returns FALSE if there are no more rows, TRUE otherwise.

Poznámka: This function cannot be used with unbuffered result handles.

See also sqlite_seek(),
sqlite_current() and
sqlite_rewind().

Předcházející | Domů | Další
sqlite_libversion | Nahoru | sqlite_num_fields


sqlite_num_fields

(PHP 5)

sqlite_num_fields -- Returns the number of fields in a result set.

Description

int sqlite_num_fields ( resource result)

Returns the number of fields in the result set.

See also sqlite_column() and sqlite_num_rows().

Předcházející | Domů | Další
sqlite_next | Nahoru | sqlite_num_rows


sqlite_num_rows

(PHP 5)

sqlite_num_rows -- Returns the number of rows in a buffered result set.

Description

int sqlite_num_rows ( resource result)

Returns the number of rows in the buffered result set.

Poznámka: This function cannot be used with unbuffered result sets.

See also sqlite_changes() and sqlite_query().

Předcházející | Domů | Další
sqlite_num_fields | Nahoru | sqlite_open


sqlite_open

(PHP 5)

sqlite_open -- Opens a SQLite database. Will create the database if it does not exist

Description

resource sqlite_open ( string filename [, int mode [, string &error_message]])

Returns a resource (database handle) on success, FALSE on error.

The filename parameter is the name of the database. It can be a relative or absolute path to the file that sqlite will use to store your data. If the file does not exist, sqlite will attempt to create it. You MUST have write permissions to the file if you want to insert data or modify the database schema.

The mode parameter specifies the mode of the file and is intended to be used to open the database in read-only mode. Presently, this parameter is ignored by the sqlite library. The default value for mode is the octal value 0666 and this is the recommended value to use if you need access to the errmessage parameter.

errmessage is passed by reference and is set to hold a descriptive error message explaining why the database could not be opened if there was an error.

Příklad 1. sqlite_open() example

<?php
if ($db = sqlite_open('mysqlitedb', 0666, $sqliteerror)) {
    sqlite_query($db, 'CREATE TABLE foo (bar varchar(10))');
    sqlite_query($db, "INSERT INTO foo VALUES ('fnord')");
    $result = sqlite_query($db, 'select bar from foo');
    var_dump(sqlite_fetch_array($result));
} else {
    die($sqliteerror);
}
?>

Tip: On Unix platforms, SQLite is sensitive to scripts that use the fork() system call. If you do have such a script, it is recommended that you close the handle prior to forking and then re-open it in the child and/or parent. For more information on this issue, see The C language interface to the SQLite library in the section entitled Multi-Threading And SQLite.

Tip: It is not recommended to work with SQLite databases mounted on NFS partitions. Since NFS is notoriously bad when it comes to locking you may find that you cannot even open the database at all, and if it succeeds, the locking behaviour may be undefined.

Poznámka: Starting with SQLite library version 2.8.2, you can specify :memory: as the filename to create a database that lives only in the memory of the computer. This is useful mostly for temporary processing, as the in-memory database will be destroyed when the process ends. It can also be useful when coupled with the ATTACH DATABASE SQL statement to load other databases and move and query data between them.

Poznámka: SQLite is bezpečný režim and open_basedir aware.

See also sqlite_popen(),
sqlite_close() and
sqlite_query().

Předcházející | Domů | Další
sqlite_num_rows | Nahoru | sqlite_popen


sqlite_popen

(PHP 5)

sqlite_popen -- Opens a persistent handle to an SQLite database. Will create the database if it does not exist.

Description

resource sqlite_popen ( string filename [, int mode [, string &error_message]])

This function behaves identically to sqlite_open() except that is uses the persistent resource mechanism of PHP. For information about the meaning of the parameters, read the sqlite_open() manual page.

sqlite_popen() will first check to see if a persistent handle has already been opened for the given filename. If it finds one, it returns that handle to your script, otherwise it opens a fresh handle to the database.

The benefit of this approach is that you don't incur the performance cost of re-reading the database and index schema on each page hit served by persistent web server SAPI's (any SAPI except for regular CGI or CLI).

Poznámka: If you use persistent handles and have the database updated by a background process (perhaps via a crontab), and that process re-creates the database by overwriting it (either by unlinking and rebuilding, or moving the updated version to replace the current version), you may experience undefined behaviour when a persistent handle on the old version of the database is recycled.

To avoid this situation, have your background processes open the same database file and perform their updates in a transaction.

See also sqlite_open(),
sqlite_close() and
sqlite_query().

Předcházející | Domů | Další
sqlite_open | Nahoru | sqlite_query


sqlite_query

(PHP 5)

sqlite_query -- Executes a query against a given database and returns a result handle.

Description

resource sqlite_query ( resource dbhandle, string query)

resource sqlite_query ( string query, resource dbhandle)

Executes an SQL statement given by the query against a given database handle (specified by the dbhandle parameter).

For queries that return rows, this function will return a result handle which can then be used with functions such as sqlite_fetch_array() and sqlite_seek().

For other kinds of queries, this function will return a boolean result; TRUE for success or FALSE for failure.

Regardless of the query type, this function will return FALSE if the query failed.

sqlite_query() returns a buffered, seekable result handle. This is useful for reasonably small queries where you need to be able to randomly access the rows. Buffered result handles will allocate memory to hold the entire result and will not return until it has been fetched. If you only need sequential access to the data, it is recommended that you use the much higher performance sqlite_unbuffered_query() instead.

Poznámka: Two alternative syntaxes are supported for compatibility with other database extensions (such as MySQL). The preferred form is the first one, where the db parameter is the first parameter to the function.

Varování

SQLite will execute multiple queries separated by semicolons, so you can use it to execute a batch of SQL that you have loaded from a file or have embedded in a script.

When executing multiple queries, the return value of this function will be FALSE if the was an error, but undefined otherwise (it might be TRUE for success or it might return a result handle).

See also sqlite_unbuffered_query() and sqlite_array_query().

Předcházející | Domů | Další
sqlite_popen | Nahoru | sqlite_rewind


sqlite_rewind

(PHP 5)

sqlite_rewind -- Seek to the first row number.

Description

bool sqlite_rewind ( resource result)

sqlite_rewind() seeks back to the first row in the result set. Returns FALSE if there are no rows in the result set, TRUE otherwise.

Poznámka: This function cannot be used with unbuffered result sets.

See also sqlite_next(),
sqlite_current(), and
sqlite_seek().

Předcházející | Domů | Další
sqlite_query | Nahoru | sqlite_seek


sqlite_seek

(PHP 5)

sqlite_seek -- Seek to a particular row number of a buffered result set.

Description

bool sqlite_seek ( resource result, int rownum)

sqlite_seek() seeks to the row given by the parameter rownum. The row number is zero-based (0 is the first row). Returns FALSE if the row does not exist, TRUE otherwise.

Poznámka: This function cannot be used with unbuffered result handles.

See also sqlite_next(),
sqlite_current() and
sqlite_rewind().

Předcházející | Domů | Další
sqlite_rewind | Nahoru | sqlite_udf_decode_binary


sqlite_udf_decode_binary

(PHP 5)

sqlite_udf_decode_binary -- Decode binary data passed as parameters to an UDF.

Description

string sqlite_udf_decode_binary ( string data)

sqlite_udf_decode_binary() decodes the binary encoding that was applied to the parameter by either sqlite_udf_encode_binary() or sqlite_escape_string().

You must call this function on parameters passed to your UDF if you need them to handle binary data, as the binary encoding employed by PHP will obscure the content and of the parameter in its natural, non-coded form.

PHP does not perform this encode/decode operation automatically as it would severely impact performance if it did.

Příklad 1. binary-safe max_length aggregation function example

<?php
$data = array(
   'one',
   'two',
   'three',
   'four',
   'five',
   'six',
   'seven',
   'eight',
   'nine',
   'ten',
   );
$db = sqlite_open(':memory:');
sqlite_query($db, "CREATE TABLE strings(a)");
foreach ($data as $str) {
    $str = sqlite_escape_string($str);
    sqlite_query($db, "INSERT INTO strings VALUES ('$str')");
}

function max_len_step(&$context, $string)
{
    $string = sqlite_udf_decode_binary($string);
    if (strlen($string) > $context) {
        $context = strlen($string);
    }
}

function max_len_finalize(&$context)
{
    return $context;
}

sqlite_create_aggregate($db, 'max_len', 'max_len_step', 'max_len_finalize');

var_dump(sqlite_array_query($db, 'SELECT max_len(a) from strings'));

?>

See also sqlite_udf_encode_binary(),
sqlite_create_function() and
sqlite_create_aggregate().

Předcházející | Domů | Další
sqlite_seek | Nahoru | sqlite_udf_encode_binary


sqlite_udf_encode_binary

(PHP 5)

sqlite_udf_encode_binary -- Encode binary data before returning it from an UDF.

Description

string sqlite_udf_encode_binary ( string data)

sqlite_udf_encode_binary() applies a binary encoding to the data so that it can be safely returned from queries (since the underlying libsqlite API is not binary safe).

If there is a chance that your data might be binary unsafe (e.g.: it contains a NUL byte in the middle rather than at the end, or if it has and 0x01 byte as the first character) then you must call this function to encode the return value from your UDF.

PHP does not perform this encode/decode operation automatically as it would severely impact performance if it did.

Poznámka: Do not use sqlite_escape_string() to quote strings returned from UDF's as it will lead to double-quoting of the data. Use sqlite_udf_encode_binary() instead!

See also sqlite_udf_decode_binary(),
sqlite_escape_string(),
sqlite_create_function() and
sqlite_create_aggregate().

Předcházející | Domů | Další
sqlite_udf_decode_binary | Nahoru | sqlite_unbuffered_query


sqlite_unbuffered_query

(PHP 5)

sqlite_unbuffered_query -- Execute a query that does not prefetch and buffer all data

Description

resource sqlite_unbuffered_query ( resource dbhandle, string query)

resource sqlite_unbuffered_query ( string query, resource dbhandle)

sqlite_unbuffered_query() is identical to sqlite_query() except that the result that is returned is a sequential forward-only result set that can only be used to read each row, one after the other.

This function is ideal for generating things such as HTML tables where you only need to process one row at a time and don't need to randomly access the row data.

Poznámka:
    Functions such as sqlite_seek(),
    sqlite_rewind(), sqlite_next(),
    sqlite_current(), and
    sqlite_num_rows() do not work on result handles
    returned from sqlite_unbuffered_query().

See also sqlite_query().

Předcházející | Domů | Další
sqlite_udf_encode_binary | Nahoru | Shockwave Flash Functions


Shockwave Flash Functions

Manuál PHP
Předcházející Další

CI. Shockwave Flash Functions

Úvod

PHP offers the ability to create Shockwave Flash files via Paul Haeberli's libswf module.

Poznámka: SWF support was added in PHP 4 RC2.

The libswf does not have support for Windows. The development of that library has been stopped, and the source is not available to port it to another systems.

For up to date SWF support take a look at the MING functions.

Požadavky

You need the libswf library to compile PHP with support for this extension. You can download libswf at ftp://ftp.sgi.com/sgi/graphics/grafica/flash/.

Instalace

Once you have libswf all you need to do is to configure --with-swf[=DIR] where DIR is a location containing the directories include and lib. The include directory has to contain the swf.h file and the lib directory has to contain the libswf.a file. If you unpack the libswf distribution the two files will be in one directory. Consequently you will have to copy the files to the proper location manually.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

MOD_COLOR (integer)

MOD_MATRIX (integer)

TYPE_PUSHBUTTON (integer)

TYPE_MENUBUTTON (integer)

BSHitTest (float)

BSDown (float)

BSOver (float)

BSUp (float)

OverDowntoIdle (integer)

IdletoOverDown (integer)

OutDowntoIdle (integer)

OutDowntoOverDown (integer)

OverDowntoOutDown (integer)

OverUptoOverDown (integer)

OverUptoIdle (integer)

IdletoOverUp (integer)

ButtonEnter (integer)

ButtonExit (integer)

MenuEnter (integer)

MenuExit (integer)

Příklady

Once you've successfully installed PHP with Shockwave Flash support you can then go about creating Shockwave files from PHP. You would be surprised at what you can do, take the following code:

Příklad 1. SWF example

<?php
swf_openfile("test.swf", 256, 256, 30, 1, 1, 1);
swf_ortho2(-100, 100, -100, 100);
swf_defineline(1, -70, 0, 70, 0, .2);
swf_definerect(4, 60, -10, 70, 0, 0);
swf_definerect(5, -60, 0, -70, 10, 0);
swf_addcolor(0, 0, 0, 0);

swf_definefont(10, "Mod");
swf_fontsize(5);
swf_fontslant(10);
swf_definetext(11, "This be Flash wit PHP!", 1);

swf_pushmatrix();
swf_translate(-50, 80, 0);
swf_placeobject(11, 60);
swf_popmatrix();

for ($i = 0; $i < 30; $i++) {
    $p = $i/(30-1);
    swf_pushmatrix();
    swf_scale(1-($p*.9), 1, 1);
    swf_rotate(60*$p, 'z');
    swf_translate(20+20*$p, $p/1.5, 0);
    swf_rotate(270*$p,  'z');
    swf_addcolor($p, 0, $p/1.2, -$p);
    swf_placeobject(1, 50);
    swf_placeobject(4, 50);
    swf_placeobject(5, 50);
    swf_popmatrix();
    swf_showframe();
}

for ($i = 0; $i < 30; $i++) {
    swf_removeobject(50);
    if (($i%4) == 0) {
        swf_showframe();
    }
}

swf_startdoaction();
swf_actionstop();
swf_enddoaction();

swf_closefile();
?>

Obsah
swf_actiongeturl -- Get a URL from a Shockwave Flash movie
swf_actiongotoframe -- Play a frame and then stop
swf_actiongotolabel -- Display a frame with the specified label
swf_actionnextframe -- Go forward one frame
swf_actionplay -- Start playing the flash movie from the current frame
swf_actionprevframe -- Go backwards one frame
swf_actionsettarget -- Set the context for actions
swf_actionstop -- Stop playing the flash movie at the current frame
swf_actiontogglequality -- Toggle between low and high quality
swf_actionwaitforframe -- Skip actions if a frame has not been loaded
swf_addbuttonrecord -- Controls location, appearance and active area of the current button
swf_addcolor -- Set the global add color to the rgba value specified
swf_closefile -- Close the current Shockwave Flash file
swf_definebitmap -- Define a bitmap
swf_definefont -- Defines a font
swf_defineline -- Define a line
swf_definepoly -- Define a polygon
swf_definerect -- Define a rectangle
swf_definetext -- Define a text string
swf_endbutton -- End the definition of the current button
swf_enddoaction -- End the current action
swf_endshape -- Completes the definition of the current shape
swf_endsymbol -- End the definition of a symbol
swf_fontsize -- Change the font size
swf_fontslant -- Set the font slant
swf_fonttracking -- Set the current font tracking
swf_getbitmapinfo -- Get information about a bitmap
swf_getfontinfo -- The height in pixels of a capital A and a lowercase x
swf_getframe -- Get the frame number of the current frame
swf_labelframe -- Label the current frame
swf_lookat -- Define a viewing transformation
swf_modifyobject -- Modify an object
swf_mulcolor -- Sets the global multiply color to the rgba value specified
swf_nextid -- Returns the next free object id
swf_oncondition -- Describe a transition used to trigger an action list
swf_openfile -- Open a new Shockwave Flash file
swf_ortho2 -- Defines 2D orthographic mapping of user coordinates onto the current viewport
swf_ortho -- Defines an orthographic mapping of user coordinates onto the current viewport
swf_perspective -- Define a perspective projection transformation
swf_placeobject -- Place an object onto the screen
swf_polarview -- Define the viewer's position with polar coordinates
swf_popmatrix -- Restore a previous transformation matrix
swf_posround -- Enables or Disables the rounding of the translation when objects are placed or moved
swf_pushmatrix -- Push the current transformation matrix back unto the stack
swf_removeobject -- Remove an object
swf_rotate -- Rotate the current transformation
swf_scale -- Scale the current transformation
swf_setfont -- Change the current font
swf_setframe -- Switch to a specified frame
swf_shapearc -- Draw a circular arc
swf_shapecurveto3 -- Draw a cubic bezier curve
swf_shapecurveto -- Draw a quadratic bezier curve between two points
swf_shapefillbitmapclip -- Set current fill mode to clipped bitmap
swf_shapefillbitmaptile -- Set current fill mode to tiled bitmap
swf_shapefilloff -- Turns off filling
swf_shapefillsolid -- Set the current fill style to the specified color
swf_shapelinesolid -- Set the current line style
swf_shapelineto -- Draw a line
swf_shapemoveto -- Move the current position
swf_showframe -- Display the current frame
swf_startbutton -- Start the definition of a button
swf_startdoaction -- Start a description of an action list for the current frame
swf_startshape -- Start a complex shape
swf_startsymbol -- Define a symbol
swf_textwidth -- Get the width of a string
swf_translate -- Translate the current transformations
swf_viewport -- Select an area for future drawing

Předcházející | Domů | Další
sqlite_unbuffered_query | Nahoru | swf_actiongeturl


swf_actiongeturl

(PHP 4 )

swf_actiongeturl -- Get a URL from a Shockwave Flash movie

Description

void swf_actiongeturl ( string url, string target)

The swf_actiongeturl() function gets the URL specified by the parameter url with the target target.

Předcházející | Domů | Další
Shockwave Flash Functions | Nahoru | swf_actiongotoframe


swf_actiongotoframe

(PHP 4 )

swf_actiongotoframe -- Play a frame and then stop

Description

void swf_actiongotoframe ( int framenumber)

The swf_actiongotoframe() function will go to the frame specified by framenumber, play it, and then stop.

Předcházející | Domů | Další
swf_actiongeturl | Nahoru | swf_actiongotolabel


swf_actiongotolabel

(PHP 4 )

swf_actiongotolabel -- Display a frame with the specified label

Description

void swf_actiongotolabel ( string label)

The swf_actiongotolabel() function displays the frame with the label given by the label parameter and then stops.

Předcházející | Domů | Další
swf_actiongotoframe | Nahoru | swf_actionnextframe


swf_actionnextframe

(PHP 4 )

swf_actionnextframe -- Go forward one frame

Description

void swf_actionnextframe ( void )

Go forward one frame.

Předcházející | Domů | Další
swf_actiongotolabel | Nahoru | swf_actionplay


swf_actionplay

(PHP 4 )

swf_actionplay -- Start playing the flash movie from the current frame

Description

void swf_actionplay ( void )

Start playing the flash movie from the current frame.

Předcházející | Domů | Další
swf_actionnextframe | Nahoru | swf_actionprevframe


swf_actionprevframe

(PHP 4 )

swf_actionprevframe -- Go backwards one frame

Description

void swf_actionprevframe ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
swf_actionplay | Nahoru | swf_actionsettarget


swf_actionsettarget

(PHP 4 )

swf_actionsettarget -- Set the context for actions

Description

void swf_actionsettarget ( string target)

The swf_actionsettarget() function sets the context for all actions. You can use this to control other flash movies that are currently playing.

Předcházející | Domů | Další
swf_actionprevframe | Nahoru | swf_actionstop


swf_actionstop

(PHP 4 )

swf_actionstop -- Stop playing the flash movie at the current frame

Description

void swf_actionstop ( void )

Stop playing the flash movie at the current frame.

Předcházející | Domů | Další
swf_actionsettarget | Nahoru | swf_actiontogglequality


swf_actiontogglequality

(PHP 4 )

swf_actiontogglequality -- Toggle between low and high quality

Description

void swf_actiontogglequality ( void )

Toggle the flash movie between high and low quality.

Předcházející | Domů | Další
swf_actionstop | Nahoru | swf_actionwaitforframe


swf_actionwaitforframe

(PHP 4 )

swf_actionwaitforframe -- Skip actions if a frame has not been loaded

Description

void swf_actionwaitforframe ( int framenumber, int skipcount)

The swf_actionwaitforframe() function will check to see if the frame, specified by the framenumber parameter has been loaded, if not it will skip the number of actions specified by the skipcount parameter. This can be useful for "Loading..." type animations.

Předcházející | Domů | Další
swf_actiontogglequality | Nahoru | swf_addbuttonrecord


swf_addbuttonrecord

(PHP 4 )

swf_addbuttonrecord -- Controls location, appearance and active area of the current button

Description

void swf_addbuttonrecord ( int states, int shapeid, int depth)

The swf_addbuttonrecord() function allows you to define the specifics of using a button. The first parameter, states, defines what states the button can have, these can be any or all of the following constants: BSHitTest, BSDown, BSOver or BSUp. The second parameter, the shapeid is the look of the button, this is usually the object id of the shape of the button. The depth parameter is the placement of the button in the current frame.

Příklad 1. swf_addbuttonrecord() example

<?php
swf_startButton($objid, TYPE_MENUBUTTON);
swf_addButtonRecord(BSDown|BSOver, $buttonImageId, 340);
swf_onCondition(MenuEnter);
swf_actionGetUrl("http://www.example.com", "_level1");
swf_onCondition(MenuExit);
swf_actionGetUrl("", "_level1");
swf_endButton();
?>

Předcházející | Domů | Další
swf_actionwaitforframe | Nahoru | swf_addcolor


swf_addcolor

(PHP 4 )

swf_addcolor -- Set the global add color to the rgba value specified

Description

void swf_addcolor ( float r, float g, float b, float a)

The swf_addcolor() function sets the global add color to the rgba color specified. This color is then used (implicitly) by the swf_placeobject(), swf_modifyobject() and the swf_addbuttonrecord() functions. The color of the object will be add by the rgba values when the object is written to the screen.

Poznámka: The rgba values can be either positive or negative.

Předcházející | Domů | Další
swf_addbuttonrecord | Nahoru | swf_closefile


swf_closefile

(PHP 4 )

swf_closefile -- Close the current Shockwave Flash file

Description

void swf_closefile ( [int return_file])

Close a file that was opened by the swf_openfile() function. If the return_file parameter is set then the contents of the SWF file are returned from the function.

Příklad 1. Creating a simple flash file based on user input and outputting it and saving it in a database

<?php

// The $text variable is submitted by the
// user

// Global variables for database
// access (used in the swf_savedata() function)
$DBHOST = "localhost";
$DBUSER = "sterling";
$DBPASS = "secret";

swf_openfile("php://stdout", 256, 256, 30, 1, 1, 1);

    swf_definefont(10, "Ligon-Bold");
        swf_fontsize(12);
        swf_fontslant(10);

    swf_definetext(11, $text, 1);

    swf_pushmatrix();
        swf_translate(-50, 80, 0);
        swf_placeobject(11, 60);
    swf_popmatrix();

    swf_showframe();

    swf_startdoaction();
        swf_actionstop();
    swf_enddoaction();

$data = swf_closefile(1);

$data ?
  swf_savedata($data) :
  die("Error could not save SWF file");

// void swf_savedata(string data)
// Save the generated file a database
// for later retrieval
function swf_savedata($data)
{
    global $DBHOST,
           $DBUSER,
           $DBPASS;

    $dbh = @mysql_connect($DBHOST, $DBUSER, $DBPASS);

    if (!$dbh) {
        die (sprintf("Error [%d]: %s",
                      mysql_errno(), mysql_error()));
    }

    $stmt = "INSERT INTO swf_files (file) VALUES ('$data')";

    $sth = @mysql_query($stmt, $dbh);

    if (!$sth) {
        die (sprintf("Error [%d]: %s",
                      mysql_errno(), mysql_error()));
    }

    @mysql_free_result($sth);
    @mysql_close($dbh);
}
?>

Předcházející | Domů | Další
swf_addcolor | Nahoru | swf_definebitmap


swf_definebitmap

(PHP 4 )

swf_definebitmap -- Define a bitmap

Description

void swf_definebitmap ( int objid, string image_name)

The swf_definebitmap() function defines a bitmap given a GIF, JPEG, RGB or FI image. The image will be converted into a Flash JPEG or Flash color map format.

Předcházející | Domů | Další
swf_closefile | Nahoru | swf_definefont


swf_definefont

(PHP 4 )

swf_definefont -- Defines a font

Description

void swf_definefont ( int fontid, string fontname)

The swf_definefont() function defines a font given by the fontname parameter and gives it the id specified by the fontid parameter. It then sets the font given by fontname to the current font.

Předcházející | Domů | Další
swf_definebitmap | Nahoru | swf_defineline


swf_defineline

(PHP 4 )

swf_defineline -- Define a line

Description

void swf_defineline ( int objid, float x1, float y1, float x2, float y2, float width)

The swf_defineline() defines a line starting from the x coordinate given by x1 and the y coordinate given by y1 parameter. Up to the x coordinate given by the x2 parameter and the y coordinate given by the y2 parameter. It will have a width defined by the width parameter.

Předcházející | Domů | Další
swf_definefont | Nahoru | swf_definepoly


swf_definepoly

(PHP 4 )

swf_definepoly -- Define a polygon

Description

void swf_definepoly ( int objid, array coords, int npoints, float width)

The swf_definepoly() function defines a polygon given an array of x, y coordinates (the coordinates are defined in the parameter coords). The parameter npoints is the number of overall points that are contained in the array given by coords. The width is the width of the polygon's border, if set to 0.0 the polygon is filled.

Předcházející | Domů | Další
swf_defineline | Nahoru | swf_definerect


swf_definerect

(PHP 4 )

swf_definerect -- Define a rectangle

Description

void swf_definerect ( int objid, float x1, float y1, float x2, float y2, float width)

The swf_definerect() defines a rectangle with an upper left hand coordinate given by the x, x1, and the y, y1. And a lower right hand coordinate given by the x coordinate, x2, and the y coordinate, y2 . Width of the rectangles border is given by the width parameter, if the width is 0.0 then the rectangle is filled.

Předcházející | Domů | Další
swf_definepoly | Nahoru | swf_definetext


swf_definetext

(PHP 4 )

swf_definetext -- Define a text string

Description

void swf_definetext ( int objid, string str, int docenter)

Define a text string (the str parameter) using the current font and font size. The docenter is where the word is centered, if docenter is 1, then the word is centered in x.

Předcházející | Domů | Další
swf_definerect | Nahoru | swf_endbutton


swf_endbutton

(PHP 4 )

swf_endbutton -- End the definition of the current button

Description

void swf_endbutton ( void )

The swf_endbutton() function ends the definition of the current button.

Předcházející | Domů | Další
swf_definetext | Nahoru | swf_enddoaction


swf_enddoaction

(PHP 4 )

swf_enddoaction -- End the current action

Description

void swf_enddoaction ( void )

Ends the current action started by the swf_startdoaction() function.

Předcházející | Domů | Další
swf_endbutton | Nahoru | swf_endshape


swf_endshape

(PHP 4 )

swf_endshape -- Completes the definition of the current shape

Description

void swf_endshape ( void )

The swf_endshape() completes the definition of the current shape.

Předcházející | Domů | Další
swf_enddoaction | Nahoru | swf_endsymbol


swf_endsymbol

(PHP 4 )

swf_endsymbol -- End the definition of a symbol

Description

void swf_endsymbol ( void )

The swf_endsymbol() function ends the definition of a symbol that was started by the swf_startsymbol() function.

Předcházející | Domů | Další
swf_endshape | Nahoru | swf_fontsize


swf_fontsize

(PHP 4 )

swf_fontsize -- Change the font size

Description

void swf_fontsize ( float size)

The swf_fontsize() function changes the font size to the value given by the size parameter.

Předcházející | Domů | Další
swf_endsymbol | Nahoru | swf_fontslant


swf_fontslant

(PHP 4 )

swf_fontslant -- Set the font slant

Description

void swf_fontslant ( float slant)

Set the current font slant to the angle indicated by the slant parameter. Positive values create a forward slant, negative values create a negative slant.

Předcházející | Domů | Další
swf_fontsize | Nahoru | swf_fonttracking


swf_fonttracking

(PHP 4 )

swf_fonttracking -- Set the current font tracking

Description

void swf_fonttracking ( float tracking)

Set the font tracking to the value specified by the tracking parameter. This function is used to increase the spacing between letters and text, positive values increase the space and negative values decrease the space between letters.

Předcházející | Domů | Další
swf_fontslant | Nahoru | swf_getbitmapinfo


swf_getbitmapinfo

(PHP 4 )

swf_getbitmapinfo -- Get information about a bitmap

Description

array swf_getbitmapinfo ( int bitmapid)

The swf_getbitmapinfo() function returns an array of information about a bitmap given by the bitmapid parameter. The returned array has the following elements:

  • "size" - The size in bytes of the bitmap.

  • "width" - The width in pixels of the bitmap.

  • "height" - The height in pixels of the bitmap.

Předcházející | Domů | Další
swf_fonttracking | Nahoru | swf_getfontinfo


swf_getfontinfo

(PHP 4 )

swf_getfontinfo -- The height in pixels of a capital A and a lowercase x

Description

array swf_getfontinfo ( void )

The swf_getfontinfo() function returns an associative array with the following parameters:

  • Aheight - The height in pixels of a capital A.

  • xheight - The height in pixels of a lowercase x.

Předcházející | Domů | Další
swf_getbitmapinfo | Nahoru | swf_getframe


swf_getframe

(PHP 4 )

swf_getframe -- Get the frame number of the current frame

Description

int swf_getframe ( void )

The swf_getframe() function gets the number of the current frame.

Předcházející | Domů | Další
swf_getfontinfo | Nahoru | swf_labelframe


swf_labelframe

(PHP 4 )

swf_labelframe -- Label the current frame

Description

void swf_labelframe ( string name)

Label the current frame with the name given by the name parameter.

Předcházející | Domů | Další
swf_getframe | Nahoru | swf_lookat


swf_lookat

(PHP 4 )

swf_lookat -- Define a viewing transformation

Description

void swf_lookat ( float view_x, float view_y, float view_z, float reference_x, float reference_y, float reference_z, float twist)

The swf_lookat() function defines a viewing transformation by giving the viewing position (the parameters view_x, view_y, and view_z) and the coordinates of a reference point in the scene, the reference point is defined by the reference_x, reference_y , and reference_z parameters. The twist controls the rotation along with viewer's z axis.

Předcházející | Domů | Další
swf_labelframe | Nahoru | swf_modifyobject


swf_modifyobject

(PHP 4 )

swf_modifyobject -- Modify an object

Description

void swf_modifyobject ( int depth, int how)

Updates the position and/or color of the object at the specified depth, depth. The parameter how determines what is updated. how can either be the constant MOD_MATRIX or MOD_COLOR or it can be a combination of both (MOD_MATRIX|MOD_COLOR).

MOD_COLOR uses the current mulcolor (specified by the function swf_mulcolor()) and addcolor (specified by the function swf_addcolor()) to color the object. MOD_MATRIX uses the current matrix to position the object.

Předcházející | Domů | Další
swf_lookat | Nahoru | swf_mulcolor


swf_mulcolor

(PHP 4 )

swf_mulcolor -- Sets the global multiply color to the rgba value specified

Description

void swf_mulcolor ( float r, float g, float b, float a)

The swf_mulcolor() function sets the global multiply color to the rgba color specified. This color is then used (implicitly) by the swf_placeobject(), swf_modifyobject() and the swf_addbuttonrecord() functions. The color of the object will be multiplied by the rgba values when the object is written to the screen.

Poznámka: The rgba values can be either positive or negative.

Předcházející | Domů | Další
swf_modifyobject | Nahoru | swf_nextid


swf_nextid

(PHP 4 )

swf_nextid -- Returns the next free object id

Description

int swf_nextid ( void )

The swf_nextid() function returns the next available object id.

Předcházející | Domů | Další
swf_mulcolor | Nahoru | swf_oncondition


swf_oncondition

(PHP 4 )

swf_oncondition -- Describe a transition used to trigger an action list

Description

void swf_oncondition ( int transition)

The swf_oncondition() function describes a transition that will trigger an action list. There are several types of possible transitions, the following are for buttons defined as TYPE_MENUBUTTON:

  • IdletoOverUp

  • OverUptoIdle

  • OverUptoOverDown

  • OverDowntoOverUp

  • IdletoOverDown

  • OutDowntoIdle

  • MenuEnter (IdletoOverUp|IdletoOverDown)

  • MenuExit (OverUptoIdle|OverDowntoIdle)

For TYPE_PUSHBUTTON there are the following options:

  • IdletoOverUp

  • OverUptoIdle

  • OverUptoOverDown

  • OverDowntoOverUp

  • OverDowntoOutDown

  • OutDowntoOverDown

  • OutDowntoIdle

  • ButtonEnter (IdletoOverUp|OutDowntoOverDown)

  • ButtonExit (OverUptoIdle|OverDowntoOutDown)

Předcházející | Domů | Další
swf_nextid | Nahoru | swf_openfile


swf_openfile

(PHP 4 )

swf_openfile -- Open a new Shockwave Flash file

Description

void swf_openfile ( string filename, float width, float height, float framerate, float r, float g, float b)

The swf_openfile() function opens a new file named filename with a width of width and a height of height a frame rate of framerate and background with a red color of r a green color of g and a blue color of b.

The swf_openfile() must be the first function you call, otherwise your script will cause a segfault. If you want to send your output to the screen make the filename: "php://stdout" (support for this is in 4.0.1 and up).

Předcházející | Domů | Další
swf_oncondition | Nahoru | swf_ortho2


swf_ortho2

(PHP 4 )

swf_ortho2 -- Defines 2D orthographic mapping of user coordinates onto the current viewport

Description

void swf_ortho2 ( float xmin, float xmax, float ymin, float ymax)

The swf_ortho2() function defines a two dimensional orthographic mapping of user coordinates onto the current viewport, this defaults to one to one mapping of the area of the Flash movie. If a perspective transformation is desired, the swf_perspective () function can be used.

Předcházející | Domů | Další
swf_openfile | Nahoru | swf_ortho


swf_ortho

(PHP 4 >= 4.0.1)

swf_ortho -- Defines an orthographic mapping of user coordinates onto the current viewport

Description

void swf_ortho ( float xmin, float xmax, float ymin, float ymax, float zmin, float zmax)

The swf_ortho() function defines an orthographic mapping of user coordinates onto the current viewport.

Předcházející | Domů | Další
swf_ortho2 | Nahoru | swf_perspective


swf_perspective

(PHP 4 )

swf_perspective -- Define a perspective projection transformation

Description

void swf_perspective ( float fovy, float aspect, float near, float far)

The swf_perspective() function defines a perspective projection transformation. The fovy parameter is field-of-view angle in the y direction. The aspect parameter should be set to the aspect ratio of the viewport that is being drawn onto. The near parameter is the near clipping plane and the far parameter is the far clipping plane.

Poznámka: Various distortion artifacts may appear when performing a perspective projection, this is because Flash players only have a two dimensional matrix. Some are not to pretty.

Předcházející | Domů | Další
swf_ortho | Nahoru | swf_placeobject


swf_placeobject

(PHP 4 )

swf_placeobject -- Place an object onto the screen

Description

void swf_placeobject ( int objid, int depth)

Places the object specified by objid in the current frame at a depth of depth. The objid parameter and the depth must be between 1 and 65535.

This uses the current mulcolor (specified by swf_mulcolor()) and the current addcolor (specified by swf_addcolor()) to color the object and it uses the current matrix to position the object.

Poznámka: Full RGBA colors are supported.

Předcházející | Domů | Další
swf_perspective | Nahoru | swf_polarview


swf_polarview

(PHP 4 )

swf_polarview -- Define the viewer's position with polar coordinates

Description

void swf_polarview ( float dist, float azimuth, float incidence, float twist)

The swf_polarview() function defines the viewer's position in polar coordinates. The dist parameter gives the distance between the viewpoint to the world space origin. The azimuth parameter defines the azimuthal angle in the x,y coordinate plane, measured in distance from the y axis. The incidence parameter defines the angle of incidence in the y,z plane, measured in distance from the z axis. The incidence angle is defined as the angle of the viewport relative to the z axis. Finally the twist specifies the amount that the viewpoint is to be rotated about the line of sight using the right hand rule.

Předcházející | Domů | Další
swf_placeobject | Nahoru | swf_popmatrix


swf_popmatrix

(PHP 4 )

swf_popmatrix -- Restore a previous transformation matrix

Description

void swf_popmatrix ( void )

The swf_popmatrix() function pushes the current transformation matrix back onto the stack.

Předcházející | Domů | Další
swf_polarview | Nahoru | swf_posround


swf_posround

(PHP 4 )

swf_posround -- Enables or Disables the rounding of the translation when objects are placed or moved

Description

void swf_posround ( int round)

The swf_posround() function enables or disables the rounding of the translation when objects are placed or moved, there are times when text becomes more readable because rounding has been enabled. The round is whether to enable rounding or not, if set to the value of 1, then rounding is enabled, if set to 0 then rounding is disabled.

Předcházející | Domů | Další
swf_popmatrix | Nahoru | swf_pushmatrix


swf_pushmatrix

(PHP 4 )

swf_pushmatrix -- Push the current transformation matrix back unto the stack

Description

void swf_pushmatrix ( void )

The swf_pushmatrix() function pushes the current transformation matrix back onto the stack.

Předcházející | Domů | Další
swf_posround | Nahoru | swf_removeobject


swf_removeobject

(PHP 4 )

swf_removeobject -- Remove an object

Description

void swf_removeobject ( int depth)

Removes the object at the depth specified by depth.

Předcházející | Domů | Další
swf_pushmatrix | Nahoru | swf_rotate


swf_rotate

(PHP 4 )

swf_rotate -- Rotate the current transformation

Description

void swf_rotate ( float angle, string axis)

The swf_rotate() rotates the current transformation by the angle given by the angle parameter around the axis given by the axis parameter. Valid values for the axis are 'x' (the x axis), 'y' (the y axis) or 'z' (the z axis).

Předcházející | Domů | Další
swf_removeobject | Nahoru | swf_scale


swf_scale

(PHP 4 )

swf_scale -- Scale the current transformation

Description

void swf_scale ( float x, float y, float z)

The swf_scale() scales the x coordinate of the curve by the value of the x parameter, the y coordinate of the curve by the value of the y parameter, and the z coordinate of the curve by the value of the z parameter.

Předcházející | Domů | Další
swf_rotate | Nahoru | swf_setfont


swf_setfont

(PHP 4 )

swf_setfont -- Change the current font

Description

void swf_setfont ( int fontid)

The swf_setfont() sets the current font to the value given by the fontid parameter.

Předcházející | Domů | Další
swf_scale | Nahoru | swf_setframe


swf_setframe

(PHP 4 )

swf_setframe -- Switch to a specified frame

Description

void swf_setframe ( int framenumber)

The swf_setframe() changes the active frame to the frame specified by framenumber.

Předcházející | Domů | Další
swf_setfont | Nahoru | swf_shapearc


swf_shapearc

(PHP 4 )

swf_shapearc -- Draw a circular arc

Description

void swf_shapearc ( float x, float y, float r, float ang1, float ang2)

The swf_shapearc() function draws a circular arc from angle A given by the ang1 parameter to angle B given by the ang2 parameter. The center of the circle has an x coordinate given by the x parameter and a y coordinate given by the y, the radius of the circle is given by the r parameter.

Předcházející | Domů | Další
swf_setframe | Nahoru | swf_shapecurveto3


swf_shapecurveto3

(PHP 4 )

swf_shapecurveto3 -- Draw a cubic bezier curve

Description

void swf_shapecurveto3 ( float x1, float y1, float x2, float y2, float x3, float y3)

Draw a cubic bezier curve using the x,y coordinate pairs x1, y1 and x2,y2 as off curve control points and the x,y coordinate x3, y3 as an endpoint. The current position is then set to the x,y coordinate pair given by x3,y3.

Předcházející | Domů | Další
swf_shapearc | Nahoru | swf_shapecurveto


swf_shapecurveto

(PHP 4 )

swf_shapecurveto -- Draw a quadratic bezier curve between two points

Description

void swf_shapecurveto ( float x1, float y1, float x2, float y2)

The swf_shapecurveto() function draws a quadratic bezier curve from the current location, though the x coordinate given by x1 and the y coordinate given by y1 to the x coordinate given by x2 and the y coordinate given by y2. The current position is then set to the x,y coordinates given by the x2 and y2 parameters

Předcházející | Domů | Další
swf_shapecurveto3 | Nahoru | swf_shapefillbitmapclip


swf_shapefillbitmapclip

(PHP 4 )

swf_shapefillbitmapclip -- Set current fill mode to clipped bitmap

Description

void swf_shapefillbitmapclip ( int bitmapid)

Sets the fill to bitmap clipped, empty spaces will be filled by the bitmap given by the bitmapid parameter.

Předcházející | Domů | Další
swf_shapecurveto | Nahoru | swf_shapefillbitmaptile


swf_shapefillbitmaptile

(PHP 4 )

swf_shapefillbitmaptile -- Set current fill mode to tiled bitmap

Description

void swf_shapefillbitmaptile ( int bitmapid)

Sets the fill to bitmap tile, empty spaces will be filled by the bitmap given by the bitmapid parameter (tiled).

Předcházející | Domů | Další
swf_shapefillbitmapclip | Nahoru | swf_shapefilloff


swf_shapefilloff

(PHP 4 )

swf_shapefilloff -- Turns off filling

Description

void swf_shapefilloff ( void )

The swf_shapefilloff() function turns off filling for the current shape.

Předcházející | Domů | Další
swf_shapefillbitmaptile | Nahoru | swf_shapefillsolid


swf_shapefillsolid

(PHP 4 )

swf_shapefillsolid -- Set the current fill style to the specified color

Description

void swf_shapefillsolid ( float r, float g, float b, float a)

The swf_shapefillsolid() function sets the current fill style to solid, and then sets the fill color to the values of the rgba parameters.

Předcházející | Domů | Další
swf_shapefilloff | Nahoru | swf_shapelinesolid


swf_shapelinesolid

(PHP 4 )

swf_shapelinesolid -- Set the current line style

Description

void swf_shapelinesolid ( float r, float g, float b, float a, float width)

The swf_shapelinesolid() function sets the current line style to the color of the rgba parameters and width to the width parameter. If 0.0 is given as a width then no lines are drawn.

Předcházející | Domů | Další
swf_shapefillsolid | Nahoru | swf_shapelineto


swf_shapelineto

(PHP 4 )

swf_shapelineto -- Draw a line

Description

void swf_shapelineto ( float x, float y)

The swf_shapelineto() draws a line to the x,y coordinates given by the x parameter & the y parameter. The current position is then set to the x,y parameters.

Předcházející | Domů | Další
swf_shapelinesolid | Nahoru | swf_shapemoveto


swf_shapemoveto

(PHP 4 )

swf_shapemoveto -- Move the current position

Description

void swf_shapemoveto ( float x, float y)

The swf_shapemoveto() function moves the current position to the x coordinate given by the x parameter and the y position given by the y parameter.

Předcházející | Domů | Další
swf_shapelineto | Nahoru | swf_showframe


swf_showframe

(PHP 4 )

swf_showframe -- Display the current frame

Description

void swf_showframe ( void )

The swf_showframe function will output the current frame.

Předcházející | Domů | Další
swf_shapemoveto | Nahoru | swf_startbutton


swf_startbutton

(PHP 4 )

swf_startbutton -- Start the definition of a button

Description

void swf_startbutton ( int objid, int type)

The swf_startbutton() function starts off the definition of a button. The type parameter can either be TYPE_MENUBUTTON or TYPE_PUSHBUTTON. The TYPE_MENUBUTTON constant allows the focus to travel from the button when the mouse is down, TYPE_PUSHBUTTON does not allow the focus to travel when the mouse is down.

Předcházející | Domů | Další
swf_showframe | Nahoru | swf_startdoaction


swf_startdoaction

(PHP 4 )

swf_startdoaction -- Start a description of an action list for the current frame

Description

void swf_startdoaction ( void )

The swf_startdoaction() function starts the description of an action list for the current frame. This must be called before actions are defined for the current frame.

Předcházející | Domů | Další
swf_startbutton | Nahoru | swf_startshape


swf_startshape

(PHP 4 )

swf_startshape -- Start a complex shape

Description

void swf_startshape ( int objid)

The swf_startshape() function starts a complex shape, with an object id given by the objid parameter.

Předcházející | Domů | Další
swf_startdoaction | Nahoru | swf_startsymbol


swf_startsymbol

(PHP 4 )

swf_startsymbol -- Define a symbol

Description

void swf_startsymbol ( int objid)

Define an object id as a symbol. Symbols are tiny flash movies that can be played simultaneously. The objid parameter is the object id you want to define as a symbol.

Předcházející | Domů | Další
swf_startshape | Nahoru | swf_textwidth


swf_textwidth

(PHP 4 )

swf_textwidth -- Get the width of a string

Description

float swf_textwidth ( string str)

The swf_textwidth() function gives the width of the string, str, in pixels, using the current font and font size.

Předcházející | Domů | Další
swf_startsymbol | Nahoru | swf_translate


swf_translate

(PHP 4 )

swf_translate -- Translate the current transformations

Description

void swf_translate ( float x, float y, float z)

The swf_translate() function translates the current transformation by the x, y, and z values given.

Předcházející | Domů | Další
swf_textwidth | Nahoru | swf_viewport


swf_viewport

(PHP 4 )

swf_viewport -- Select an area for future drawing

Description

void swf_viewport ( float xmin, float xmax, float ymin, float ymax)

The swf_viewport() function selects an area for future drawing for xmin to xmax and ymin to ymax, if this function is not called the area defaults to the size of the screen.

Předcházející | Domů | Další
swf_translate | Nahoru | SNMP Functions


SNMP Functions

Manuál PHP
Předcházející Další

CII. SNMP Functions

Úvod

Požadavky

In order to use the SNMP functions on Unix you need to install the NET-SNMP package. On Windows these functions are only available on NT and not on Win95/98.

Instalace

Important: In order to use the UCD SNMP package, you need to define NO_ZEROLENGTH_COMMUNITY to 1 before compiling it. After configuring UCD SNMP, edit config.h and search for NO_ZEROLENGTH_COMMUNITY. Uncomment the #define line. It should look like this afterwards:
#define NO_ZEROLENGTH_COMMUNITY 1
Now compile PHP --with-snmp[=DIR].

If you see strange segmentation faults in combination with SNMP commands, you did not follow the above instructions. If you do not want to recompile UCD SNMP, you can compile PHP with the --enable-ucd-snmp-hack switch which will work around the misfeature.

The Windows distribution contains support files for SNMP in the mibs directory. This directory should be moved to DRIVE:\usr\mibs, where DRIVE must be replaced with the driveletter where PHP is installed on, e.g.: c:\usr\mibs.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Obsah
snmp_get_quick_print -- Fetches the current value of the UCD library's quick_print setting
snmp_set_quick_print -- Set the value of quick_print within the UCD SNMP library
snmpget -- Fetch an SNMP object
snmprealwalk -- Return all objects including their respective object ID within the specified one
snmpset -- Set an SNMP object
snmpwalk -- Fetch all the SNMP objects from an agent
snmpwalkoid -- Query for a tree of information about a network entity

Předcházející | Domů | Další
swf_viewport | Nahoru | snmp_get_quick_print


snmp_get_quick_print

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

snmp_get_quick_print -- Fetches the current value of the UCD library's quick_print setting

Description

bool snmp_get_quick_print ( void )

Returns the current value stored in the UCD Library for quick_print. quick_print is off by default.

Příklad 1. snmp_get_quick_print() example

<?php
  $quickprint = snmp_get_quick_print();
?>

Above function call would return FALSE if quick_print is off, and TRUE if quick_print is on.

snmp_get_quick_print() is only available when using the UCD SNMP library. This function is not available when using the Windows SNMP library.

See also snmp_set_quick_print() for a full description of what quick_print does.

Předcházející | Domů | Další
SNMP Functions | Nahoru | snmp_set_quick_print


snmp_set_quick_print

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

snmp_set_quick_print -- Set the value of quick_print within the UCD SNMP library

Description

void snmp_set_quick_print ( bool quick_print)

Sets the value of quick_print within the UCD 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 UCD 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.

Setting quick_print is often used when using the information returned rather then displaying it.

<?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< br />\n";
snmp_set_quick_print(1);
$a = snmpget("127.0.0.1", "public", ".1.3.6.1.2.1.2.2.1.9.1");
echo "$a<br />\n";
?>

The first value printed might be: 'Timeticks: (0) 0:00:00.00', whereas with quick_print enabled, just '0:00:00.00' would be printed.

By default the UCD 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.

snmp_set_quick_print() is only available when using the UCD SNMP library. This function is not available when using the Windows SNMP library.

Předcházející | Domů | Další
snmp_get_quick_print | Nahoru | snmpget


snmpget

(PHP 3, PHP 4 , PHP 5)

snmpget -- Fetch an SNMP object

Description

string snmpget ( string hostname, string community, string object_id [, int timeout [, int retries]])

Returns SNMP object value on success and FALSE on error.

The snmpget() function is used to read the value of an SNMP object specified by the object_id. SNMP agent is specified by the hostname and the read community is specified by the community parameter.

<?php
$syscontact = snmpget("127.0.0.1", "public", "system.SysContact.0");
?>

Předcházející | Domů | Další
snmp_set_quick_print | Nahoru | snmprealwalk


snmprealwalk

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

snmprealwalk -- Return all objects including their respective object ID within the specified one

Description

array snmprealwalk ( string host, string community, string object_id [, int timeout [, int retries]])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
snmpget | Nahoru | snmpset


snmpset

(PHP 3>= 3.0.12, PHP 4 , PHP 5)

snmpset -- Set an SNMP object

Description

bool snmpset ( string hostname, string community, string object_id, string type, mixed value [, int timeout [, int retries]])

Sets the specified SNMP object value, returning TRUE on success and FALSE on error.

The snmpset() function is used to set the value of an SNMP object specified by the object_id. SNMP agent is specified by the hostname and the read community is specified by the community parameter.

Předcházející | Domů | Další
snmprealwalk | Nahoru | snmpwalk


snmpwalk

(PHP 3, PHP 4 , PHP 5)

snmpwalk -- Fetch all the SNMP objects from an agent

Description

array snmpwalk ( string hostname, string community, string object_id [, int timeout [, int retries]])

Returns an array of SNMP object values starting from the object_id as root and FALSE on error.

snmpwalk() function is used to read all the values from an SNMP agent specified by the hostname. Community specifies the read community for that agent. A 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.

<?php
$a = snmpwalk("127.0.0.1", "public", "");
?>

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

<?php
for ($i=0; $i < count($a); $i++) {
    echo $a[$i];
}
?>

Předcházející | Domů | Další
snmpset | Nahoru | snmpwalkoid


snmpwalkoid

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

snmpwalkoid -- Query for a tree of information about a network entity

Description

array snmpwalkoid ( string hostname, string community, string object_id [, int timeout [, int retries]])

Returns an associative array with object ids and their respective object value starting from the object_id as root and FALSE on error.

snmpwalkoid() function is used to read all object ids and their respective values from an SNMP agent specified by the hostname. Community specifies the read community for that agent. A 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.

The existence of snmpwalkoid() and snmpwalk() has historical reasons. Both functions are provided for backward compatibility.

<?php
$a = snmpwalkoid("127.0.0.1", "public", "");
?>

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

<?php
for (reset($a); $i = key($a); next($a)) {
    echo "$i: $a[$i]<br />\n";
}
?>

Předcházející | Domů | Další
snmpwalk | Nahoru | Socket Functions


Socket Functions

Manuál PHP
Předcházející Další

CIII. Socket Functions

Úvod

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.

Varování

Toto rozšíření je EXPERIMENTÁLNÍ. Chování tohoto rozšíření, názvy funkcí a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může bez ohlášení změnit. Berte to v úvahu a používejte tento modul na vlastní nebezpečí.

Požadavky

Tyto funkce jsou k dispozici jako součást standardního modulu, který je vždy dostupný.

Instalace

The socket functions described here are part of an extension to PHP which must be enabled at compile time by giving the --enable-sockets option to configure.

Poznámka: Podpora IPv6 byla přidána v PHP 5.0.0 .

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

AF_UNIX (integer)

AF_INET (integer)

AF_INET6 (integer)

SOCK_STREAM (integer)

SOCK_DGRAM (integer)

SOCK_RAW (integer)

SOCK_SEQPACKET (integer)

SOCK_RDM (integer)

MSG_OOB (integer)

MSG_WAITALL (integer)

MSG_PEEK (integer)

MSG_DONTROUTE (integer)

SO_DEBUG (integer)

SO_REUSEADDR (integer)

SO_KEEPALIVE (integer)

SO_DONTROUTE (integer)

SO_LINGER (integer)

SO_BROADCAST (integer)

SO_OOBINLINE (integer)

SO_SNDBUF (integer)

SO_RCVBUF (integer)

SO_SNDLOWAT (integer)

SO_RCVLOWAT (integer)

SO_SNDTIMEO (integer)

SO_RCVTIMEO (integer)

SO_TYPE (integer)

SO_ERROR (integer)

SOL_SOCKET (integer)

PHP_NORMAL_READ (integer)

PHP_BINARY_READ (integer)

SOL_TCP (integer)

SOL_UDP (integer)

Socket Errors

The socket extension was written to provide a useable interface to the powerful BSD sockets. Care has been taken that the functions work equally well on Win32 and Unix implementations. Almost all of the sockets functions may fail under certain conditions and therefore emit an E_WARNING message describing the error. Sometimes this doesn't happen to the desire of the developer. For example the function socket_read() may suddenly emit an E_WARNING message because the connection broke unexpectedly. It's common to suppress the warning with the @-operator and catch the error code within the application with the socket_last_error() function. You may call the socket_strerror() function with this error code to retrieve a string describing the error. See their description for more information.

Poznámka: The E_WARNING messages generated by the socket extension are in English though the retrieved error message will appear depending on the current locale (LC_MESSAGES):
Warning - socket_bind() unable to bind address [98]: Die Adresse wird bereits verwendet

Příklady

Příklad 1. Socket example: Simple TCP/IP server

This example shows a simple talkback server. Change the address and port variables to suit your setup and execute. You may then connect to the server with a command similar to: telnet 192.168.1.53 10000 (where the address and port match your setup). Anything you type will then be output on the server side, and echoed back to you. To disconnect, enter 'quit'.

#!/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)) < 0) {
    echo "socket_create() failed: reason: " . socket_strerror($sock) . "\n";
}

if (($ret = socket_bind($sock, $address, $port)) < 0) {
    echo "socket_bind() failed: reason: " . socket_strerror($ret) . "\n";
}

if (($ret = socket_listen($sock, 5)) < 0) {
    echo "socket_listen() failed: reason: " . socket_strerror($ret) . "\n";
}

do {
    if (($msgsock = socket_accept($sock)) < 0) {
        echo "socket_accept() failed: reason: " . socket_strerror($msgsock) . "\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($ret) . "\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);
?>

Příklad 2. Socket example: Simple TCP/IP client

This example shows a simple, one-shot HTTP client. It simply connects to a page, submits a HEAD request, echoes the reply, and exits.

<?php
error_reporting(E_ALL);

echo "<h2>TCP/IP Connection</h2>\n";

/* Get the port for the WWW service. */
$service_port = getservbyname('www', 'tcp');

/* Get the IP address for the target host. */
$address = gethostbyname('www.example.com');

/* Create a TCP/IP socket. */
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket < 0) {
    echo "socket_create() failed: reason: " . socket_strerror($socket) . "\n";
} else {
    echo "OK.\n";
}

echo "Attempting to connect to '$address' on port '$service_port'...";
$result = socket_connect($socket, $address, $service_port);
if ($result < 0) {
    echo "socket_connect() failed.\nReason: ($result) " . socket_strerror($result) . "\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";
?>

Obsah
socket_accept -- Accepts a connection on a socket
socket_bind -- Binds a name to a socket
socket_clear_error -- Clears the error on the socket or the last error code
socket_close -- Closes a socket resource
socket_connect -- Initiates a connection on a socket
socket_create_listen -- Opens a socket on port to accept connections
socket_create_pair -- Creates a pair of indistinguishable sockets and stores them in an array.
socket_create -- Create a socket (endpoint for communication)
socket_get_option -- Gets socket options for the socket
socket_getpeername -- Queries the remote side of the given socket which may either result in host/port or in a Unix filesystem path, dependent on its type.
socket_getsockname -- Queries the local side of the given socket which may either result in host/port or in a Unix filesystem path, dependent on its type.
socket_iovec_add -- Adds a new vector to the scatter/gather array
socket_iovec_alloc -- Builds a 'struct iovec' for use with sendmsg, recvmsg, writev, and readv
socket_iovec_delete -- Deletes a vector from an array of vectors
socket_iovec_fetch -- Returns the data held in the iovec specified by iovec_id[iovec_position]
socket_iovec_free -- Frees the iovec specified by iovec_id
socket_iovec_set -- Sets the data held in iovec_id[iovec_position] to new_val
socket_last_error -- Returns the last error on the socket
socket_listen -- Listens for a connection on a socket
socket_read -- Reads a maximum of length bytes from a socket
socket_readv -- Reads from an fd, using the scatter-gather array defined by iovec_id
socket_recv -- Receives data from a connected socket
socket_recvfrom -- Receives data from a socket, connected or not
socket_recvmsg -- Used to receive messages on a socket, whether connection-oriented or not
socket_select -- Runs the select() system call on the given arrays of sockets with a specified timeout
socket_send -- Sends data to a connected socket
socket_sendmsg -- Sends a message to a socket, regardless of whether it is connection-oriented or not
socket_sendto -- Sends a message to a socket, whether it is connected or not
socket_set_block -- Sets blocking mode on a socket resource
socket_set_nonblock -- Sets nonblocking mode for file descriptor fd
socket_set_option -- Sets socket options for the socket
socket_shutdown -- Shuts down a socket for receiving, sending, or both.
socket_strerror -- Return a string describing a socket error
socket_write -- Write to a socket
socket_writev -- Writes to a file descriptor, fd, using the scatter-gather array defined by iovec_id

Předcházející | Domů | Další
snmpwalkoid | Nahoru | socket_accept


socket_accept

(PHP 4 >= 4.1.0, PHP 5)

socket_accept -- Accepts a connection on a socket

Description

resource socket_accept ( resource socket)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

After the socket socket has been created using socket_create(), bound to a name with socket_bind(), and told to listen for connections with socket_listen(), this function will accept incoming connections on that socket. Once a successful connection is made, a new socket resource is returned, which may be used for communication. If there are multiple connections queued on the socket, the first will be used. If there are no pending connections, socket_accept() will block until a connection becomes present. If socket has been made non-blocking using socket_set_blocking() or socket_set_nonblock(), FALSE will be returned.

The socket resource returned by socket_accept() may not be used to accept new connections. The original listening socket socket, however, remains open and may be reused.

Returns a new socket resource on success, or FALSE on error. The actual error code can be retrieved by calling socket_last_error(). This error code may be passed to socket_strerror() to get a textual explanation of the error.

See also
socket_bind(),
socket_connect(),
socket_listen(),
socket_create(), and
socket_strerror().

Předcházející | Domů | Další
Socket Functions | Nahoru | socket_bind


socket_bind

(PHP 4 >= 4.1.0, PHP 5)

socket_bind -- Binds a name to a socket

Description

bool socket_bind ( resource socket, string address [, int port])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

socket_bind() binds the name given in address to the socket described by socket, which must be a valid socket resource created with socket_create().

The address parameter is either an IP address in dotted-quad notation (e.g. 127.0.0.1), if the socket is of the AF_INET family; or the pathname of a Unix-domain socket, if the socket family is AF_UNIX.

The port parameter is only used when connecting to an AF_INET socket, and designates the port on the remote host to which a connection should be made.

Vrací TRUE při úspěchu, FALSE při selhání. The error code can be retrieved with socket_last_error(). This code may be passed to socket_strerror() to get a textual explanation of the error. Note that socket_last_error() is reported to return an invalid error code in case you are trying to bind the socket to a wrong address that does not belong to your Windows 9x/ME machine.

See also
socket_connect(),
socket_listen(),
socket_create(),
socket_last_error() and
socket_strerror().

Předcházející | Domů | Další
socket_accept | Nahoru | socket_clear_error


socket_clear_error

(PHP 4 >= 4.2.0, PHP 5)

socket_clear_error -- Clears the error on the socket or the last error code

Description

void socket_clear_error ( [resource socket])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

This function clears the error code on the given socket or the global last socket error.

This function allows explicitly resetting the error code value either of a socket or of the extension global last error code. This may be useful to detect within a part of the application if an error occurred or not.

See also socket_last_error() and socket_strerror().

Předcházející | Domů | Další
socket_bind | Nahoru | socket_close


socket_close

(PHP 4 >= 4.1.0, PHP 5)

socket_close -- Closes a socket resource

Description

void socket_close ( resource socket)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

socket_close() closes the socket resource given by socket.

Poznámka: socket_close() can't be used on PHP file resources created with fopen(), popen(), fsockopen(), or pfsockopen(); it is meant for sockets created with socket_create() or socket_accept().

See also socket_bind(), socket_listen(),
socket_create() and
socket_strerror().

Předcházející | Domů | Další
socket_clear_error | Nahoru | socket_connect


socket_connect

(PHP 4 >= 4.1.0, PHP 5)

socket_connect -- Initiates a connection on a socket

Description

bool socket_connect ( resource socket, string address [, int port])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Initiates a connection using the socket resource socket, which must be a valid socket resource created with socket_create().

The address parameter is either an IP address in dotted-quad notation (e.g. 127.0.0.1), if the socket is of the AF_INET family; or the pathname of a Unix domain socket, if the socket family is AF_UNIX.

The port parameter is only used when connecting to an AF_INET socket, and designates the port on the remote host to which a connection should be made.

Vrací TRUE při úspěchu, FALSE při selhání. The error code can be retrieved with socket_last_error(). This code may be passed to socket_strerror() to get a textual explanation of the error.

See also
socket_bind(),
socket_listen(),
socket_create(),
socket_last_error() and
socket_strerror().

Předcházející | Domů | Další
socket_close | Nahoru | socket_create_listen


socket_create_listen

(PHP 4 >= 4.1.0, PHP 5)

socket_create_listen -- Opens a socket on port to accept connections

Description

resource socket_create_listen ( int port [, int backlog])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

This function is meant to ease the task of creating a new socket which only listens to accept new connections.

socket_create_listen() creates a new socket resource of type AF_INET listening on all local interfaces on the given port waiting for new connections.

The backlog parameter defines the maximum length the queue of pending connections may grow to. SOMAXCONN may be passed as backlog parameter, see socket_listen() for more information.

socket_create_listen() returns a new socket resource on success or FALSE on error. The error code can be retrieved with socket_last_error(). This code may be passed to socket_strerror() to get a textual explanation of the error.

Poznámka: 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().

See also
socket_create(),
socket_bind(),
socket_listen(),
socket_last_error() and
socket_strerror().

Předcházející | Domů | Další
socket_connect | Nahoru | socket_create_pair


socket_create_pair

(PHP 4 >= 4.1.0, PHP 5)

socket_create_pair -- Creates a pair of indistinguishable sockets and stores them in an array.

Description

bool socket_create_pair ( int domain, int type, int protocol, array &fd)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

socket_create_pair() creates two connected and indistinguishable sockets, and stores them in &fd. This function is commonly used in IPC (InterProcess Communication).

The domain parameter specifies the protocol family to be used by the socket.

Tabulka 1. Available address/protocol families

Domain | Description
AF_INET | IPv4 Internet based protocols. TCP and UDP are common protocols of this protocol family. Supported only in windows.
AF_INET6 | IPv6 Internet based protocols. TCP and UDP are common protocols of this protocol family. Support added in PHP 5.0.0. Supported only in windows.
AF_UNIX | Local communication protocol family. High efficiency and low overhead make it a great form of IPC (Interprocess Communication).

The type parameter selects the type of communication to be used by the socket.

Tabulka 2. Available socket types

Type | Description
SOCK_STREAM | Provides sequenced, reliable, full-duplex, connection-based byte streams. An out-of-band data transmission mechanism may be supported. The TCP protocol is based on this socket type.
SOCK_DGRAM | Supports datagrams (connectionless, unreliable messages of a fixed maximum length). The UDP protocol is based on this socket type.
SOCK_SEQPACKET | Provides a sequenced, reliable, two-way connection-based data transmission path for datagrams of fixed maximum length; a consumer is required to read an entire packet with each read call.
SOCK_RAW | Provides raw network protocol access. This special type of socket can be used to manually construct any type of protocol. A common use for this socket type is to perform ICMP requests (like ping, traceroute, etc).
SOCK_RDM | Provides a reliable datagram layer that does not guarantee ordering. This is most likely not implemented on your operating system.

The protocol parameter sets the specific protocol within the specified domain to be used when communicating on the returned socket. The proper value can be retrieved by name by using getprotobyname(). If the desired protocol is TCP, or UDP the corresponding constants SOL_TCP, and SOL_UDP can also be used.

Tabulka 3. Common protocols

Name | Description
icmp | The Internet Control Message Protocol is used primarily by gateways and hosts to report errors in datagram communication. The "ping" command (present in most modern operating systems) is an example application of ICMP.
udp | The User Datagram Protocol is a connectionless, unreliable, protocol with fixed record lengths. Due to these aspects, UDP requires a minimum amount of protocol overhead.
tcp | The Transmission Control Protocol is a reliable, connection based, stream oriented, full duplex protocol. TCP guarantees that all data packets will be received in the order in which they were sent. If any packet is somehow lost during communication, TCP will automatically retransmit the packet until the destination host acknowledges that packet. For reliability and performance reasons, the TCP implementation itself decides the appropriate octet boundaries of the underlying datagram communication layer. Therefore, TCP applications must allow for the possibility of partial record transmission.

Příklad 1. socket_create_pair() example

<?php
$sockets = array();
$uniqid = uniqid('');
if (file_exists("/tmp/$uniqid.sock")) {
    die('Temporary socket already exists.');
}
/* Setup socket pair */
if (!socket_create_pair(AF_UNIX, SOCK_STREAM, 0, $sockets)) {
    echo socket_strerror(socket_last_error());
}
/* Send and Recieve Data */
if (!socket_write($sockets[0], "ABCdef123\n", strlen("ABCdef123\n"))) {
    echo socket_strerror(socket_last_error());
}
if (!$data = socket_read($sockets[1], strlen("ABCdef123\n"), PHP_BINARY_READ)) {
    echo socket_strerror(socket_last_error());
}
var_dump($data);

/* Close sockets */
socket_close($sockets[0]);
socket_close($sockets[1]);
?>

Příklad 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)) {
    echo 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))) {
        echo socket_strerror(socket_last_error());
    }
    if (socket_read($ary[1], strlen($strtwo), PHP_BINARY_READ) == $strtwo) {
        echo "Recieved $strtwo\n";
    }
    socket_close($ary[1]);
} else {
    /*child*/
    socket_close($ary[1]);
    if (!socket_write($ary[0], $strtwo, strlen($strtwo))) {
        echo socket_strerror(socket_last_error());
    }
    if (socket_read($ary[0], strlen($strone), PHP_BINARY_READ) == $strone) {
        echo "Recieved $strone\n";
    }
    socket_close($ary[0]);
}
?>

Předcházející | Domů | Další
socket_create_listen | Nahoru | socket_create


socket_create

(PHP 4 >= 4.1.0, PHP 5)

socket_create -- Create a socket (endpoint for communication)

Description

resource socket_create ( int domain, int type, int protocol)

Creates and returns a socket resource, also referred to as an endpoint of communication. A typical network connection is made up of 2 sockets, one performing the role of the client, and another performing the role of the server.

The domain parameter specifies the protocol family to be used by the socket.

Tabulka 1. Available address/protocol families

Domain | Description
AF_INET | IPv4 Internet based protocols. TCP and UDP are common protocols of this protocol family.
AF_INET6 | IPv6 Internet based protocols. TCP and UDP are common protocols of this protocol family. Support added in PHP 5.0.0.
AF_UNIX | Local communication protocol family. High efficiency and low overhead make it a great form of IPC (Interprocess Communication).

The type parameter selects the type of communication to be used by the socket.

Tabulka 2. Available socket types

Type | Description
SOCK_STREAM | Provides sequenced, reliable, full-duplex, connection-based byte streams. An out-of-band data transmission mechanism may be supported. The TCP protocol is based on this socket type.
SOCK_DGRAM | Supports datagrams (connectionless, unreliable messages of a fixed maximum length). The UDP protocol is based on this socket type.
SOCK_SEQPACKET | Provides a sequenced, reliable, two-way connection-based data transmission path for datagrams of fixed maximum length; a consumer is required to read an entire packet with each read call.
SOCK_RAW | Provides raw network protocol access. This special type of socket can be used to manually construct any type of protocol. A common use for this socket type is to perform ICMP requests (like ping, traceroute, etc).
SOCK_RDM | Provides a reliable datagram layer that does not guarantee ordering. This is most likely not implemented on your operating system.

The protocol parameter sets the specific protocol within the specified domain to be used when communicating on the returned socket. The proper value can be retrieved by name by using getprotobyname(). If the desired protocol is TCP, or UDP the corresponding constants SOL_TCP, and SOL_UDP can also be used.

Tabulka 3. Common protocols

Name | Description
icmp | The Internet Control Message Protocol is used primarily by gateways and hosts to report errors in datagram communication. The "ping" command (present in most modern operating systems) is an example application of ICMP.
udp | The User Datagram Protocol is a connectionless, unreliable, protocol with fixed record lengths. Due to these aspects, UDP requires a minimum amount of protocol overhead.
tcp | The Transmission Control Protocol is a reliable, connection based, stream oriented, full duplex protocol. TCP guarantees that all data packets will be received in the order in which they were sent. If any packet is somehow lost during communication, TCP will automatically retransmit the packet until the destination host acknowledges that packet. For reliability and performance reasons, the TCP implementation itself decides the appropriate octet boundaries of the underlying datagram communication layer. Therefore, TCP applications must allow for the possibility of partial record transmission.

socket_create() Returns a socket resource on success, or FALSE on error. The actual error code can be retrieved by calling socket_last_error(). This error code may be passed to socket_strerror() to get a textual explanation of the error.

Poznámka: If an invalid domain or type is given, socket_create() defaults to AF_INET and SOCK_STREAM respectively and additionally emits an E_WARNING message.

See also
socket_accept(),
socket_bind(),
socket_connect(),
socket_listen(),
socket_last_error(), and
socket_strerror().

Předcházející | Domů | Další
socket_create_pair | Nahoru | socket_get_option


socket_get_option

(PHP 4 >= 4.3.0, PHP 5)

socket_get_option -- Gets socket options for the socket

Description

mixed socket_get_option ( resource socket, int level, int optname)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

The socket_get_option() function retrieves the value for the option specified by the optname parameter for the socket specified by the socket parameter. socket_get_option() will return FALSE on failure.

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.

Tabulka 1. Available Socket Options

Option | Description
SO_DEBUG | Reports whether debugging information is being recorded.
SO_ACCEPTCONN | Reports whether socket listening is enabled.
SO_BROADCAST | Reports whether transmission of broadcast messages is supported.
SO_REUSEADDR | Reports whether local addresses can be reused.
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.
SO_LINGER | Reports whether the socket lingers on socket_close() if data is present.
SO_OOBINLINE | Reports whether the socket leaves out-of-band data inline.
SO_SNDBUF | Reports send buffer size information.
SO_RCVBUF | Reports recieve buffer size information.
SO_ERROR | Reports information about error status and clears it.
SO_TYPE | Reports the socket type.
SO_DONTROUTE | Reports whether outgoing messages bypass the standard routing facilities.
SO_RCVLOWAT | Reports the minimum number of bytes to process for socket input operations. ( Defaults to 1 )
SO_RCVTIMEO | Reports the timeout value for input operations.
SO_SNDLOWAT | Reports the minimum number of bytes to process for socket output operations.
SO_SNDTIMEO | Reports the timeout value specifying the amount of time that an output function blocks because flow control prevents data from being sent.

Poznámka: This function used to be called socket_getopt() prior to PHP 4.3.0

Předcházející | Domů | Další
socket_create | Nahoru | socket_getpeername


socket_getpeername

(PHP 4 >= 4.1.0, PHP 5)

socket_getpeername -- Queries the remote side of the given socket which may either result in host/port or in a Unix filesystem path, dependent on its type.

Description

bool socket_getpeername ( resource socket, string &addr [, int &port])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

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.

Poznámka: 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.

Vrací TRUE při úspěchu, FALSE při selhání. socket_getpeername() may also return FALSE if the socket type is not any of AF_INET, AF_INET6, or AF_UNIX, in which case the last socket error code is not updated.

See also
socket_getsockname(),
socket_last_error() and
socket_strerror().

Předcházející | Domů | Další
socket_get_option | Nahoru | socket_getsockname


socket_getsockname

(PHP 4 >= 4.1.0, PHP 5)

socket_getsockname -- Queries the local side of the given socket which may either result in host/port or in a Unix filesystem path, dependent on its type.

Description

bool socket_getsockname ( resource socket, string &addr [, int &port])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

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.

Poznámka: 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.

Vrací TRUE při úspěchu, FALSE při selhání. socket_getsockname() may also return FALSE if the socket type is not any of AF_INET, AF_INET6, or AF_UNIX, in which case the last socket error code is not updated.

See also
socket_getpeername(),
socket_last_error() and
socket_strerror().

Předcházející | Domů | Další
socket_getpeername | Nahoru | socket_iovec_add


socket_iovec_add

(PHP 4 >= 4.1.0)

socket_iovec_add -- Adds a new vector to the scatter/gather array

Description

bool socket_iovec_add ( resource iovec, int iov_len)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
socket_getsockname | Nahoru | socket_iovec_alloc


socket_iovec_alloc

(PHP 4 >= 4.1.0)

socket_iovec_alloc -- Builds a 'struct iovec' for use with sendmsg, recvmsg, writev, and readv

Description

resource socket_iovec_alloc ( int num_vectors [, int ])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
socket_iovec_add | Nahoru | socket_iovec_delete


socket_iovec_delete

(PHP 4 >= 4.1.0)

socket_iovec_delete -- Deletes a vector from an array of vectors

Description

bool socket_iovec_delete ( resource iovec, int iov_pos)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
socket_iovec_alloc | Nahoru | socket_iovec_fetch


socket_iovec_fetch

(PHP 4 >= 4.1.0)

socket_iovec_fetch -- Returns the data held in the iovec specified by iovec_id[iovec_position]

Description

string socket_iovec_fetch ( resource iovec, int iovec_position)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
socket_iovec_delete | Nahoru | socket_iovec_free


socket_iovec_free

(PHP 4 >= 4.1.0)

socket_iovec_free -- Frees the iovec specified by iovec_id

Description

bool socket_iovec_free ( resource iovec)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
socket_iovec_fetch | Nahoru | socket_iovec_set


socket_iovec_set

(PHP 4 >= 4.1.0)

socket_iovec_set -- Sets the data held in iovec_id[iovec_position] to new_val

Description

bool socket_iovec_set ( resource iovec, int iovec_position, string new_val)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
socket_iovec_free | Nahoru | socket_last_error


socket_last_error

(PHP 4 >= 4.1.0, PHP 5)

socket_last_error -- Returns the last error on the socket

Description

int socket_last_error ( [resource socket])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

This function returns a socket error code.

If a socket resource is passed to this function, the last error which occurred on this particular socket is returned. If the socket resource is omitted, the error code of the last failed socket function is returned. The latter is in particular helpful for functions like socket_create() which don't return a socket on failure and socket_select() which can fail for reasons not directly tied to a particular socket. The error code is suitable to be fed to socket_strerror() which returns a string describing the given error code.
<?php
if (false == ($socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP))) {
    die("Couldn't create socket, error code is: " . socket_last_error() .
        ",error message is: " . socket_strerror(socket_last_error()));
}
?>

Poznámka: socket_last_error() does not clear the error code, use socket_clear_error() for this purpose.

Předcházející | Domů | Další
socket_iovec_set | Nahoru | socket_listen


socket_listen

(PHP 4 >= 4.1.0, PHP 5)

socket_listen -- Listens for a connection on a socket

Description

bool socket_listen ( resource socket [, int backlog])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

After the socket socket has been created using socket_create() and bound to a name with socket_bind(), it may be told to listen for incoming connections on socket.

A maximum of backlog incoming connections will be queued for processing. If a connection request arrives with the queue full the client may receive an error with an indication of ECONNREFUSED, or, if the underlying protocol supports retransmission, the request may be ignored so that retries may succeed.

Poznámka: The maximum number passed to the backlog parameter highly depends on the underlying platform. On Linux, it is silently truncated to SOMAXCONN. On win32, if passed SOMAXCONN, the underlying service provider responsible for the socket will set the backlog to a maximum reasonable value. There is no standard provision to find out the actual backlog value on this platform.

socket_listen() is applicable only to sockets of type SOCK_STREAM or SOCK_SEQPACKET.

Vrací TRUE při úspěchu, FALSE při selhání. The error code can be retrieved with socket_last_error(). This code may be passed to socket_strerror() to get a textual explanation of the error.

See also
socket_accept(),
socket_bind(),
socket_connect(),
socket_create() and
socket_strerror().

Předcházející | Domů | Další
socket_last_error | Nahoru | socket_read


socket_read

(PHP 4 >= 4.1.0, PHP 5)

socket_read -- Reads a maximum of length bytes from a socket

Description

string socket_read ( resource socket, int length [, int type])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

The function socket_read() reads from the socket resource socket created by the socket_create() or socket_accept() functions. The maximum number of bytes read is specified by the length parameter. Otherwise you can use \r, \n, or \0 to end reading (depending on the type parameter, see below).

socket_read() returns the data as a string on success, or FALSE on error. The error code can be retrieved with socket_last_error(). This code may be passed to socket_strerror() to get a textual representation of the error.

Poznámka: socket_read() may return a zero length string ("") indicating the end of communication (i.e. the remote end point has closed the connection).

Optional type parameter is a named constant:

  • PHP_BINARY_READ - use the system read() function. Safe for reading binary data. (Default in PHP >= 4.1.0)

  • PHP_NORMAL_READ - reading stops at \n or \r. (Default in PHP <= 4.0.6)

See also
socket_accept(),
socket_bind(),
socket_connect(),
socket_listen(),
socket_last_error(),
socket_strerror() and
socket_write().

Předcházející | Domů | Další
socket_listen | Nahoru | socket_readv


socket_readv

(PHP 4 >= 4.1.0)

socket_readv -- Reads from an fd, using the scatter-gather array defined by iovec_id

Description

bool socket_readv ( resource socket, resource iovec_id)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
socket_read | Nahoru | socket_recv


socket_recv

(PHP 4 >= 4.1.0, PHP 5)

socket_recv -- Receives data from a connected socket

Description

int socket_recv ( resource socket, string &buf, int len, int flags)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
socket_readv | Nahoru | socket_recvfrom


socket_recvfrom

(PHP 4 >= 4.1.0, PHP 5)

socket_recvfrom -- Receives data from a socket, connected or not

Description

int socket_recvfrom ( resource socket, string &buf, int len, int flags, string &name [, int &port])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
socket_recv | Nahoru | socket_recvmsg


socket_recvmsg

(PHP 4 >= 4.1.0)

socket_recvmsg -- Used to receive messages on a socket, whether connection-oriented or not

Description

bool socket_recvmsg ( resource socket, resource iovec, array &control, int &controllen, int &flags, string &addr [, int &port])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
socket_recvfrom | Nahoru | socket_select


socket_select

(PHP 4 >= 4.1.0, PHP 5)

socket_select -- Runs the select() system call on the given arrays of sockets with a specified timeout

Description

int socket_select ( array &read, array &write, array &except, int tv_sec [, int tv_usec])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

socket_select() accepts arrays of sockets and waits for them to change status. Those coming with BSD sockets background will recognize that those socket resource arrays are in fact the so-called file descriptor sets. Three independent arrays of socket resources are watched.

The sockets listed in the read array will be watched to see if characters become available for reading (more precisely, to see if a read will not block - in particular, a socket resource is also ready on end-of-file, in which case a socket_read() will return a zero length string).

The sockets listed in the write array will be watched to see if a write will not block.

The sockets listed in the except array will be watched for exceptions.

Varování

On exit, the arrays are modified to indicate which socket resource actually changed status.

You do not need to pass every array to socket_select(). You can leave it out and use an empty array or NULL instead. Also do not forget that those arrays are passed by reference and will be modified after socket_select() returns.

Příklad 1. socket_select() example

<?php
/* Prepare the read array */
$read = array($socket1, $socket2);

$num_changed_sockets = socket_select($read, $write = NULL, $except = NULL, 0);

if ($num_changed_sockets === false) {
    /* Error handling */
} else if ($num_changed_sockets > 0) {
    /* At least at one of the sockets something interesting happened */
}
?>

Poznámka: 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:

Příklad 2. Using NULL with socket_select()

<?php
socket_select($r, $w, $e = NULL, 0);
?>

The tv_sec and tv_usec together form the timeout parameter. The timeout is an upper bound on the amount of time elapsed before socket_select() return. tv_sec may be zero , causing socket_select() to return immediately. This is useful for polling. If tv_sec is NULL (no timeout), socket_select() can block indefinitely.

On success socket_select() returns the number of socket resources 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().

Poznámka: 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:

Příklad 3. Understanding socket_select()'s result

<?php
if (false === socket_select($r, $w, $e = NULL, 0)) {
    echo "socket_select() failed, reason: " .
        socket_strerror(socket_last_error()) . "\n";
}
?>

Poznámka: Be aware that some socket implementations need to be handled very carefully. A few basic rules:

  • You should always try to use socket_select() without timeout. Your program should have nothing to do if there is no data available. Code that depends on timeouts is not usually portable and difficult to debug.

  • No socket resource must be added to any set if you do not intend to check its result after the socket_select() call, and respond appropriately. After socket_select() returns, all socket resources in all arrays must be checked. Any socket resource that is available for writing must be written to, and any socket resource available for reading must be read from.

  • If you read/write to a socket returns in the arrays be aware that they do not necessarily read/write the full amount of data you have requested. Be prepared to even only be able to read/write a single byte.

  • It's common to most socket implementations that the only exception caught with the except array is out-of-bound data received on a socket.

See also
socket_read(),
socket_write(),
socket_last_error() and
socket_strerror().

Předcházející | Domů | Další
socket_recvmsg | Nahoru | socket_send


socket_send

(PHP 4 >= 4.1.0, PHP 5)

socket_send -- Sends data to a connected socket

Description

int socket_send ( resource socket, string buf, int len, int flags)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

The function socket_send() sends len bytes to the socket socket from buf

The value of flags can be any ORed combination of the following:

Tabulka 1. possible values for flags

0x1 | Process OOB (out-of-band) data
0x2 | Peek at incoming message
0x4 | Bypass routing, use direct interface
0x8 | Data completes record
0x100 | Data completes transaction

See also socket_sendmsg() and socket_sendto().

Předcházející | Domů | Další
socket_select | Nahoru | socket_sendmsg


socket_sendmsg

(PHP 4 >= 4.1.0)

socket_sendmsg -- Sends a message to a socket, regardless of whether it is connection-oriented or not

Description

bool socket_sendmsg ( resource socket, resource iovec, int flags, string addr [, int port])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
socket_send | Nahoru | socket_sendto


socket_sendto

(PHP 4 >= 4.1.0, PHP 5)

socket_sendto -- Sends a message to a socket, whether it is connected or not

Description

int socket_sendto ( resource socket, string buf, int len, int flags, string addr [, int port])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

The function socket_sendto() sends len bytes from buf through the socket socket to the port at the address addr

The value of flags can be one of the following:

Tabulka 1. possible values for flags

0x1 | Process OOB (out-of-band) data.
0x2 | Peek at incoming message.
0x4 | Bypass routing, use direct interface.
0x8 | Data completes record.
0x100 | Data completes transaction.

Příklad 1. socket_sendto() Example

<?php
    $sh = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
    if (socket_bind($sh, '127.0.0.1', 4242)) {
        echo "Socket bound correctly";
    }
    $buf = 'Test Message';
    $len = strlen($buf);
    if (socket_sendto($sh, $buf, $len, 0x100, '192.168.0.2', 4242) !== false) {
        echo "Message sent correctly";
    }
    socket_close($sh);
?>

See also socket_send() and socket_sendmsg().

Předcházející | Domů | Další
socket_sendmsg | Nahoru | socket_set_block


socket_set_block

(PHP 4 >= 4.2.0, PHP 5)

socket_set_block -- Sets blocking mode on a socket resource

Description

bool socket_set_block ( resource socket)

The socket_set_block() function removes the O_NONBLOCK flag on the socket specified by the socket parameter.

Příklad 1. socket_set_block() example

<?php

$port = 9090;
if (!$socket = socket_create_listen($port)) {
    echo socket_strerror(socket_last_error());
}

if (!socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1)) {
    echo socket_strerror(socket_last_error());
}

if (!socket_set_nonblock($socket)) { // $socket is now nonblocking
    echo socket_strerror(socket_last_error());
}

if (!socket_set_block($socket)) {     // $socket is now blocking
    echo socket_strerror(socket_last_error());
}

?>

Vrací TRUE při úspěchu, FALSE při selhání.

See also socket_set_nonblock() and socket_set_option()

Předcházející | Domů | Další
socket_sendto | Nahoru | socket_set_nonblock


socket_set_nonblock

(PHP 4 >= 4.1.0, PHP 5)

socket_set_nonblock -- Sets nonblocking mode for file descriptor fd

Description

bool socket_set_nonblock ( resource socket)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

The socket_set_nonblock() function sets the O_NONBLOCK flag on the socket specified by the socket parameter.

Příklad 1. socket_set_nonblock() example

<?php
$port = 9090;
if (!$socket = socket_create_listen($port)) {
    echo socket_strerror(socket_last_error());
}

if (!socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1)) {
    echo socket_strerror(socket_last_error());
}

if (!socket_set_nonblock($socket)) {
    echo socket_strerror(socket_last_error());
}
?>

Vrací TRUE při úspěchu, FALSE při selhání.

See also socket_set_block() and socket_set_option()

Předcházející | Domů | Další
socket_set_block | Nahoru | socket_set_option


socket_set_option

(PHP 4 >= 4.3.0, PHP 5)

socket_set_option -- Sets socket options for the socket

Description

bool socket_set_option ( resource socket, int level, int optname, mixed optval)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

The socket_set_option() function sets the option specified by the optname parameter, at the protocol level specified by the level parameter, to the value pointed to by the optval parameter for the socket specified by the socket parameter. socket_set_option() will return FALSE on failure.

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.

The available socket options are the same as those for the socket_get_option() function.

Poznámka: This function used to be called socket_setopt() prior to PHP 4.3.0

Předcházející | Domů | Další
socket_set_nonblock | Nahoru | socket_shutdown


socket_shutdown

(PHP 4 >= 4.1.0, PHP 5)

socket_shutdown -- Shuts down a socket for receiving, sending, or both.

Description

bool socket_shutdown ( resource socket [, int how])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

The socket_shutdown() function allows you to stop incoming, outgoing or all data (the default) from being sent through the socket

The value of how can be one of the following:

Tabulka 1. possible values for how

0 | Shutdown socket reading
1 | Shutdown socket writing
2 | Shutdown socket reading and writing

Předcházející | Domů | Další
socket_set_option | Nahoru | socket_strerror


socket_strerror

(PHP 4 >= 4.1.0, PHP 5)

socket_strerror -- Return a string describing a socket error

Description

string socket_strerror ( int errno)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

socket_strerror() takes as its errno parameter a socket error code as returned by socket_last_error() and returns the corresponding explanatory text. This makes it a bit more pleasant to figure out why something didn't work; for instance, instead of having to track down a system include file to find out what '-111' means, you just pass it to socket_strerror(), and it tells you what happened.

Příklad 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

See also
socket_accept(),
socket_bind(),
socket_connect(),
socket_listen(), and
socket_create().

Předcházející | Domů | Další
socket_shutdown | Nahoru | socket_write


socket_write

(PHP 4 >= 4.1.0, PHP 5)

socket_write -- Write to a socket

Description

int socket_write ( resource socket, string buffer [, int length])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

The function socket_write() writes to the socket socket from buffer.

The optional parameter length can specify an alternate length of bytes written to the socket. If this length is greater then the buffer length, it is silently truncated to the length of the buffer.

Returns the number of bytes successfully written to the socket or FALSE one error. The error code can be retrieved with socket_last_error(). This code may be passed to socket_strerror() to get a textual explanation of the error.

Poznámka: 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.

Poznámka: It is perfectly valid for socket_write() to return zero which means no bytes have been written. Be sure to use the === operator to check for FALSE in case of an error.

See also
socket_accept(),
socket_bind(),
socket_connect(),
socket_listen(),
socket_read() and
socket_strerror().

Předcházející | Domů | Další
socket_strerror | Nahoru | socket_writev


socket_writev

(PHP 4 >= 4.1.0)

socket_writev -- Writes to a file descriptor, fd, using the scatter-gather array defined by iovec_id

Description

bool socket_writev ( resource socket, resource iovec_id)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
socket_write | Nahoru | Standard PHP Library (SPL) Functions


Standard PHP Library (SPL) Functions

Manuál PHP
Předcházející Další

CIV. Standard PHP Library (SPL) Functions

Úvod

SPL is a collection of interfaces and classes that are meant to solve standard problems.

Instalace

This extension is available and compiled by default in PHP 5.

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

RIT_LEAVES_ONLY (integer)

RIT_SELF_FIRST (integer)

RIT_CHILD_FIRST (integer)

CIT_CALL_TOSTRING (integer)

CIT_CATCH_GET_CHILD (integer)

Obsah
ArrayIterator::current -- Return current array entry
ArrayIterator::key -- Return current array key
ArrayIterator::next -- Move to next entry
ArrayIterator::rewind -- Rewind array back to the start
ArrayIterator::valid -- Check whether array contains more entries
ArrayObject::__construct -- Construct a new array object
ArrayObject::getIterator -- Create a new iterator from an ArrayObject instance
DirectoryIterator::__construct -- Constructs a new dir iterator from a path.
DirectoryIterator::current -- Return this (needed for Iterator interface)
DirectoryIterator::fileATime -- Get last access time of file
DirectoryIterator::fileCTime -- Get inode modification time of file
DirectoryIterator::fileGroup -- Get file group
DirectoryIterator::fileInode -- Get file inode
DirectoryIterator::fileMTime -- Get last modification time of file
DirectoryIterator::fileOwner -- Get file owner
DirectoryIterator::filePerms -- Get file permissions
DirectoryIterator::fileSize -- Get file size
DirectoryIterator::fileType -- Get file type
DirectoryIterator::getFilename -- Return filename of current dir entry
DirectoryIterator::getPath -- Return directory path
DirectoryIterator::getPathname -- Return path and filename of current dir entry
DirectoryIterator::hasMore -- Check whether dir contains more entries
DirectoryIterator::isDir -- Returns true if file is directory
DirectoryIterator::isDot -- Returns true if current entry is '.' or '..'
DirectoryIterator::isExecutable -- Returns true if file is executable
DirectoryIterator::isFile -- Returns true if file is a regular file
DirectoryIterator::isLink -- Returns true if file is symbolic link
DirectoryIterator::isReadable -- Returns true if file can be read
DirectoryIterator::isWritable -- Returns true if file can be written
DirectoryIterator::key -- Return current dir entry
DirectoryIterator::next -- Move to next entry
DirectoryIterator::rewind -- Rewind dir back to the start
RecursiveDirectoryIterator::getChildren -- Returns an iterator for the current entry if it is a directory
RecursiveDirectoryIterator::hasChildren -- Returns whether current entry is a directory and not '.' or '..'
RecursiveDirectoryIterator::key -- Return path and filename of current dir entry
RecursiveDirectoryIterator::next -- Move to next entry
RecursiveDirectoryIterator::rewind -- Rewind dir back to the start
SimpleXMLIterator::current -- Return current SimpleXML entry
SimpleXMLIterator::getChildren -- Returns an iterator for the current entry if it is a SimpleXML object
SimpleXMLIterator::hasChildren -- Returns whether current entry is a SimpleXML object
SimpleXMLIterator::key -- Return current SimpleXML key
SimpleXMLIterator::next -- Move to next entry
SimpleXMLIterator::rewind -- Rewind SimpleXML back to the start
SimpleXMLIterator::valid -- Check whether SimpleXML contains more entries

Předcházející | Domů | Další
socket_writev | Nahoru | ArrayIterator::current


ArrayIterator::current

(no version information, might be only in CVS)

ArrayIterator::current -- Return current array entry

Description

mixed ArrayIterator::current ( void )

This function returns the current array entry

Příklad 1. ArrayIterator::current() example

<?php
$array = array('1' => 'one',
               '2' => 'two',
               '3' => 'three');

$arrayobject = new ArrayObject($array);
$iterator = $arrayobject->getIterator();

for($iterator = $arrayobject->getIterator();
    $iterator->valid();
    $iterator->next()) {

    echo $iterator->key() . ' => ' . $iterator->current() . "\n";
}
?>

The above example will output:

1 => one
2 => two
3 => three

Předcházející | Domů | Další
Standard PHP Library (SPL) Functions | Nahoru | ArrayIterator::key


ArrayIterator::key

(no version information, might be only in CVS)

ArrayIterator::key -- Return current array key

Description

mixed ArrayIterator::key ( void )

This function returns the current array key

Příklad 1. ArrayIterator::key() example

<?php
$array = array('key' => 'value');

$arrayobject = new ArrayObject($array);
$iterator = $arrayobject->getIterator();

echo $iterator->key(); //key
?>

Předcházející | Domů | Další
ArrayIterator::current | Nahoru | ArrayIterator::next


ArrayIterator::next

(no version information, might be only in CVS)

ArrayIterator::next -- Move to next entry

Description

void ArrayIterator::next ( void )

This function moves the iterator to the next entry.

Příklad 1. ArrayIterator::next() example

<?php
$arrayobject = new ArrayObject();

$arrayobject[] = 'zero';
$arrayobject[] = 'one';

$iterator = $arrayobject->getIterator();

while($iterator->valid()) {
    echo $iterator->key() . ' => ' . $iterator->current() . "\n";

    $iterator->next();
}
?>

The above example will output:

0 => zero
1 => one

Předcházející | Domů | Další
ArrayIterator::key | Nahoru | ArrayIterator::rewind


ArrayIterator::rewind

(no version information, might be only in CVS)

ArrayIterator::rewind -- Rewind array back to the start

Description

void ArrayIterator::rewind ( void )

This function rewinds the iterator to the begining.

Příklad 1. ArrayObject::rewind() example

<?php
$arrayobject = new ArrayObject();

$arrayobject[] = 'zero';
$arrayobject[] = 'one';
$arrayobject[] = 'two';

$iterator = $arrayobject->getIterator();

$iterator->next();
echo $iterator->key(); //1

$iterator->rewind(); //rewinding to the begining
echo $iterator->key(); //0
?>

Předcházející | Domů | Další
ArrayIterator::next | Nahoru | ArrayIterator::valid


ArrayIterator::valid

(no version information, might be only in CVS)

ArrayIterator::valid -- Check whether array contains more entries

Description

bool ArrayIterator::valid ( void )

This function checks if the array contains any more entries.

Příklad 1. ArrayIterator::valid() example

<?php
$array = array('1' => 'one');

$arrayobject = new ArrayObject($array);
$iterator = $arrayobject->getIterator();

var_dump($iterator->valid()); //bool(true)

$iterator->next(); // advance to the next item

//bool(false) because there is only one array element
var_dump($iterator->valid());
?>

Předcházející | Domů | Další
ArrayIterator::rewind | Nahoru | ArrayObject::__construct


ArrayObject::__construct

(no version information, might be only in CVS)

ArrayObject::__construct -- Construct a new array object

Description

void ArrayObject::__construct ( mixed input)

This constructs a new array object. The input parameter accepts an array or another ArrayObject.

Příklad 1. ArrayObject::__construct() example

<?php
$array = array('1' => 'one',
               '2' => 'two',
               '3' => 'three');

$arrayobject = new ArrayObject($array);

var_dump($arrayobject);
?>

The above example will output:

object(ArrayObject)#1 (3) {
  [1]=>
  string(3) "one"
  [2]=>
  string(3) "two"
  [3]=>
  string(5) "three"
}

Předcházející | Domů | Další
ArrayIterator::valid | Nahoru | ArrayObject::getIterator


ArrayObject::getIterator

(no version information, might be only in CVS)

ArrayObject::getIterator -- Create a new iterator from an ArrayObject instance

Description

ArrayIterator ArrayObject::getIterator ( void )

This function will return an iterator from an ArrayObject.

Příklad 1. ArrayObject::getIterator() example

<?php
$array = array('1' => 'one',
               '2' => 'two',
               '3' => 'three');

$arrayobject = new ArrayObject($array);

$iterator = $arrayobject->getIterator();

while($iterator->valid()) {
    echo $iterator->key() . ' => ' . $iterator->current() . "\n";

    $iterator->next();
}
?>

The above example will output:

1 => one
2 => two
3 => three

Předcházející | Domů | Další
ArrayObject::__construct | Nahoru | DirectoryIterator::__construct


DirectoryIterator::__construct

(no version information, might be only in CVS)

DirectoryIterator::__construct -- Constructs a new dir iterator from a path.

Description

void DirectoryIterator::__construct ( string path)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ArrayObject::getIterator | Nahoru | DirectoryIterator::current


DirectoryIterator::current

(no version information, might be only in CVS)

DirectoryIterator::current -- Return this (needed for Iterator interface)

Description

DirectoryIterator DirectoryIterator::current ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
DirectoryIterator::__construct | Nahoru | DirectoryIterator::fileATime


DirectoryIterator::fileATime

(no version information, might be only in CVS)

DirectoryIterator::fileATime -- Get last access time of file

Description

int DirectoryIterator::fileATime ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
DirectoryIterator::current | Nahoru | DirectoryIterator::fileCTime


DirectoryIterator::fileCTime

(no version information, might be only in CVS)

DirectoryIterator::fileCTime -- Get inode modification time of file

Description

int DirectoryIterator::fileCTime ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
DirectoryIterator::fileATime | Nahoru | DirectoryIterator::fileGroup


DirectoryIterator::fileGroup

(no version information, might be only in CVS)

DirectoryIterator::fileGroup -- Get file group

Description

int DirectoryIterator::fileGroup ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
DirectoryIterator::fileCTime | Nahoru | DirectoryIterator::fileInode


DirectoryIterator::fileInode

(no version information, might be only in CVS)

DirectoryIterator::fileInode -- Get file inode

Description

int DirectoryIterator::fileInode ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
DirectoryIterator::fileGroup | Nahoru | DirectoryIterator::fileMTime


DirectoryIterator::fileMTime

(no version information, might be only in CVS)

DirectoryIterator::fileMTime -- Get last modification time of file

Description

int DirectoryIterator::fileMTime ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
DirectoryIterator::fileInode | Nahoru | DirectoryIterator::fileOwner


DirectoryIterator::fileOwner

(no version information, might be only in CVS)

DirectoryIterator::fileOwner -- Get file owner

Description

int DirectoryIterator::fileOwner ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
DirectoryIterator::fileMTime | Nahoru | DirectoryIterator::filePerms


DirectoryIterator::filePerms

(no version information, might be only in CVS)

DirectoryIterator::filePerms -- Get file permissions

Description

int DirectoryIterator::filePerms ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
DirectoryIterator::fileOwner | Nahoru | DirectoryIterator::fileSize


DirectoryIterator::fileSize

(no version information, might be only in CVS)

DirectoryIterator::fileSize -- Get file size

Description

int DirectoryIterator::fileSize ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
DirectoryIterator::filePerms | Nahoru | DirectoryIterator::fileType


DirectoryIterator::fileType

(no version information, might be only in CVS)

DirectoryIterator::fileType -- Get file type

Description

string DirectoryIterator::fileType ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
DirectoryIterator::fileSize | Nahoru | DirectoryIterator::getFilename


DirectoryIterator::getFilename

(no version information, might be only in CVS)

DirectoryIterator::getFilename -- Return filename of current dir entry

Description

string DirectoryIterator::getFilename ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
DirectoryIterator::fileType | Nahoru | DirectoryIterator::getPath


DirectoryIterator::getPath

(no version information, might be only in CVS)

DirectoryIterator::getPath -- Return directory path

Description

string DirectoryIterator::getPath ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
DirectoryIterator::getFilename | Nahoru | DirectoryIterator::getPathname


DirectoryIterator::getPathname

(no version information, might be only in CVS)

DirectoryIterator::getPathname -- Return path and filename of current dir entry

Description

string DirectoryIterator::getPathname ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
DirectoryIterator::getPath | Nahoru | DirectoryIterator::hasMore


DirectoryIterator::hasMore

(no version information, might be only in CVS)

DirectoryIterator::hasMore -- Check whether dir contains more entries

Description

string DirectoryIterator::hasMore ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
DirectoryIterator::getPathname | Nahoru | DirectoryIterator::isDir


DirectoryIterator::isDir

(no version information, might be only in CVS)

DirectoryIterator::isDir -- Returns true if file is directory

Description

bool DirectoryIterator::isDir ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
DirectoryIterator::hasMore | Nahoru | DirectoryIterator::isDot


DirectoryIterator::isDot

(no version information, might be only in CVS)

DirectoryIterator::isDot -- Returns true if current entry is '.' or '..'

Description

bool DirectoryIterator::isDot ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
DirectoryIterator::isDir | Nahoru | DirectoryIterator::isExecutable


DirectoryIterator::isExecutable

(no version information, might be only in CVS)

DirectoryIterator::isExecutable -- Returns true if file is executable

Description

bool DirectoryIterator::isExecutable ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
DirectoryIterator::isDot | Nahoru | DirectoryIterator::isFile


DirectoryIterator::isFile

(no version information, might be only in CVS)

DirectoryIterator::isFile -- Returns true if file is a regular file

Description

bool DirectoryIterator::isFile ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
DirectoryIterator::isExecutable | Nahoru | DirectoryIterator::isLink


DirectoryIterator::isLink

(no version information, might be only in CVS)

DirectoryIterator::isLink -- Returns true if file is symbolic link

Description

bool DirectoryIterator::isLink ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
DirectoryIterator::isFile | Nahoru | DirectoryIterator::isReadable


DirectoryIterator::isReadable

(no version information, might be only in CVS)

DirectoryIterator::isReadable -- Returns true if file can be read

Description

bool DirectoryIterator::isReadable ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
DirectoryIterator::isLink | Nahoru | DirectoryIterator::isWritable


DirectoryIterator::isWritable

(no version information, might be only in CVS)

DirectoryIterator::isWritable -- Returns true if file can be written

Description

bool DirectoryIterator::isWritable ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
DirectoryIterator::isReadable | Nahoru | DirectoryIterator::key


DirectoryIterator::key

(no version information, might be only in CVS)

DirectoryIterator::key -- Return current dir entry

Description

string DirectoryIterator::key ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
DirectoryIterator::isWritable | Nahoru | DirectoryIterator::next


DirectoryIterator::next

(no version information, might be only in CVS)

DirectoryIterator::next -- Move to next entry

Description

void DirectoryIterator::next ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
DirectoryIterator::key | Nahoru | DirectoryIterator::rewind


DirectoryIterator::rewind

(no version information, might be only in CVS)

DirectoryIterator::rewind -- Rewind dir back to the start

Description

void DirectoryIterator::rewind ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
DirectoryIterator::next | Nahoru | RecursiveDirectoryIterator::getChildren


RecursiveDirectoryIterator::getChildren

(no version information, might be only in CVS)

RecursiveDirectoryIterator::getChildren -- Returns an iterator for the current entry if it is a directory

Description

object RecursiveDirectoryIterator::getChildren ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
DirectoryIterator::rewind | Nahoru | RecursiveDirectoryIterator::hasChildren


RecursiveDirectoryIterator::hasChildren

(no version information, might be only in CVS)

RecursiveDirectoryIterator::hasChildren -- Returns whether current entry is a directory and not '.' or '..'

Description

bool RecursiveDirectoryIterator::hasChildren ( [bool $allow_links [, = false]])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
RecursiveDirectoryIterator::getChildren | Nahoru | RecursiveDirectoryIterator::key


RecursiveDirectoryIterator::key

(no version information, might be only in CVS)

RecursiveDirectoryIterator::key -- Return path and filename of current dir entry

Description

string RecursiveDirectoryIterator::key ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
RecursiveDirectoryIterator::hasChildren | Nahoru | RecursiveDirectoryIterator::next


RecursiveDirectoryIterator::next

(no version information, might be only in CVS)

RecursiveDirectoryIterator::next -- Move to next entry

Description

void RecursiveDirectoryIterator::next ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
RecursiveDirectoryIterator::key | Nahoru | RecursiveDirectoryIterator::rewind


RecursiveDirectoryIterator::rewind

(no version information, might be only in CVS)

RecursiveDirectoryIterator::rewind -- Rewind dir back to the start

Description

void RecursiveDirectoryIterator::rewind ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
RecursiveDirectoryIterator::next | Nahoru | SimpleXMLIterator::current


SimpleXMLIterator::current

(no version information, might be only in CVS)

SimpleXMLIterator::current -- Return current SimpleXML entry

Description

mixed SimpleXMLIterator::current ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
RecursiveDirectoryIterator::rewind | Nahoru | SimpleXMLIterator::getChildren


SimpleXMLIterator::getChildren

(no version information, might be only in CVS)

SimpleXMLIterator::getChildren -- Returns an iterator for the current entry if it is a SimpleXML object

Description

object SimpleXMLIterator::getChildren ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
SimpleXMLIterator::current | Nahoru | SimpleXMLIterator::hasChildren


SimpleXMLIterator::hasChildren

(no version information, might be only in CVS)

SimpleXMLIterator::hasChildren -- Returns whether current entry is a SimpleXML object

Description

bool SimpleXMLIterator::hasChildren ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
SimpleXMLIterator::getChildren | Nahoru | SimpleXMLIterator::key


SimpleXMLIterator::key

(no version information, might be only in CVS)

SimpleXMLIterator::key -- Return current SimpleXML key

Description

mixed SimpleXMLIterator::key ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
SimpleXMLIterator::hasChildren | Nahoru | SimpleXMLIterator::next


SimpleXMLIterator::next

(no version information, might be only in CVS)

SimpleXMLIterator::next -- Move to next entry

Description

void SimpleXMLIterator::next ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
SimpleXMLIterator::key | Nahoru | SimpleXMLIterator::rewind


SimpleXMLIterator::rewind

(no version information, might be only in CVS)

SimpleXMLIterator::rewind -- Rewind SimpleXML back to the start

Description

void SimpleXMLIterator::rewind ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
SimpleXMLIterator::next | Nahoru | SimpleXMLIterator::valid


SimpleXMLIterator::valid

(no version information, might be only in CVS)

SimpleXMLIterator::valid -- Check whether SimpleXML contains more entries

Description

bool SimpleXMLIterator::valid ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
SimpleXMLIterator::rewind | Nahoru | Stream Functions


Stream Functions

Manuál PHP
Předcházející Další

CV. Stream Functions

Úvod

Streams were introduced with PHP 4.3.0 as a way of generalizing file, network, data compression, and other operations which share a common set of functions and uses. In its simplest definition, a stream is a resource object which exhibits streamable behavior. That is, it can be read from or written to in a linear fashion, and may be able to fseek() to an arbitrary locations within the stream.

A wrapper is additional code which tells the stream how to handle specific protocols/encodings. For example, the http wrapper knows how to translate a URL into an HTTP/1.0 request for a file on a remote server. There are many wrappers built into PHP by default (See J), and additional, custom wrappers may be added either within a PHP script using stream_wrapper_register(), or directly from an extension using the API Reference in 43. Because any variety of wrapper may be added to PHP, there is no set limit on what can be done with them. To access the list of currently registered wrappers, use stream_get_wrappers().

A stream is referenced as: scheme://target

  • scheme(string) - The name of the wrapper to be used. Examples include: file, http, https, ftp, ftps, compress.zlib, compress.bz2, and php. See J for a list of PHP builtin wrappers. If no wrapper is specified, the function default is used (typically file://).

  • target - Depends on the wrapper used. For filesystem related streams this is typically a path and filename of the desired file. For network related streams this is typically a hostname, often with a path appended. Again, see J for a description of targets for builtin streams.

Stream Filters

A filter is a final piece of code which may perform operations on data as it is being read from or written to a stream. Any number of filters may be stacked onto a stream. Custom filters can be defined in a PHP script using stream_filter_register() or in an extension using the API Reference in 43. To access the list of currently registered filters, use stream_get_filters().

Stream Contexts

A context is a set of parameters and wrapper specific options which modify or enhance the behavior of a stream. Contexts are created using stream_context_create() and can be passed to most filesystem related stream creation functions (i.e. fopen(), file(), file_get_contents(), etc...).

Options can be specified when calling stream_context_create(), or later using stream_context_set_option(). A list of wrapper specific options can be found with the list of built-in wrappers (See J).

In addition, parameters may be set on a context using stream_context_set_params(). Currently the only context parameter supported by PHP is notification. The value of this parameter must be the name of a function to be called when an event occurs on a stream. The notification function called during an event should accept the following six parameters:

void my_notifier ( int notification_code, int severity, string message, int message_code, int bytes_transferred, int bytes_max)

notification_code and severity are numerical values which correspond to the STREAM_NOTIFY_* constants listed below. If a descriptive message is available from the stream, message and message_code will be populated with the appropriate values. The meaning of these values is dependent on the specific wrapper in use. bytes_transferred and bytes_max will be populated when applicable.

Instalace

Streams are an integral part of PHP as of version 4.3.0. No steps are required to enable them.

Stream Classes

User designed wrappers can be registered via stream_wrapper_register(), using the class definition shown on that manual page.

class php_user_filter is predefined and is an abstract baseclass for use with user defined filters. See the manual page for stream_filter_register() for details on implementing user defined filters.

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

Constant | Description
STREAM_FILTER_READ | Used with stream_filter_append() and stream_filter_prepend() to indicate that the specified filter should only be applied when reading
STREAM_FILTER_WRITE | Used with stream_filter_append() and stream_filter_prepend() to indicate that the specified filter should only be applied when writing
STREAM_FILTER_ALL | This constant is equivalent to STREAM_FILTER_READ | STREAM_FILTER_WRITE
PSFS_PASS_ON | Return Code indicating that the userspace filter returned buckets in $out.
PSFS_FEED_ME | Return Code indicating that the userspace filter did not return buckets in $out (i.e. No data available).
PSFS_ERR_FATAL | Return Code indicating that the userspace filter encountered an unrecoverable error (i.e. Invalid data received).
STREAM_USE_PATH | Flag indicating if the stream used the include path.
STREAM_REPORT_ERRORS | Flag indicating if the wrapper is responsible for raising errors using trigger_error() during opening of the stream. If this flag is not set, you should not raise any errors.
STREAM_CLIENT_ASYNC_CONNECT | Open client socket asynchronously. Used with stream_socket_client().
STREAM_CLIENT_PERSISTENT | Client socket opened with stream_socket_client() should remain persistent between page loads.
STREAM_SERVER_BIND | Tells a stream created with stream_socket_server() to bind to the specified target. Server sockets should always include this flag.
STREAM_SERVER_LISTEN | Tells a stream created with stream_socket_server() and bound using the STREAM_SERVER_BIND flag to start listening on the socket. Server sockets should always include this flag.
STREAM_NOTIFY_RESOLVE | A remote address required for this stream has been resolved, or the resolution failed. See severity for an indication of which happened.
STREAM_NOTIFY_CONNECT | A connection with an external resource has been established.
STREAM_NOTIFY_AUTH_REQUIRED | Additional authorization is required to access the specified resource. Typical issued with severity level of STREAM_NOTIFY_SEVERITY_ERR.
STREAM_NOTIFY_MIME_TYPE_IS | The mime-type of resource has been identified, refer to message for a description of the discovered type.
STREAM_NOTIFY_FILE_SIZE_IS | The size of the resource has been discovered.
STREAM_NOTIFY_REDIRECTED | The external resource has redirected the stream to an alternate location. Refer to message.
STREAM_NOTIFY_PROGRESS | Indicates current progress of the stream transfer in bytes_transferred and possibly bytes_max as well.
STREAM_NOTIFY_COMPLETED | There is no more data available on the stream.
STREAM_NOTIFY_FAILURE | A generic error occurred on the stream, consult message and message_code for details.
STREAM_NOTIFY_AUTH_RESULT | Authorization has been completed (with or without success).
STREAM_NOTIFY_SEVERITY_INFO | Normal, non-error related, notification.
STREAM_NOTIFY_SEVERITY_WARN | Non critical error condition. Processing may continue.
STREAM_NOTIFY_SEVERITY_ERR | A critical error occurred. Processing cannot continue.

Stream Errors

As with any file or socket related function, an operation on a stream may fail for a variety of normal reasons (i.e.: Unable to connect to remote host, file not found, etc...). A stream related call may also fail because the desired stream is not registered on the running system. See the array returned by stream_get_wrappers() for a list of streams supported by your installation of PHP. As with most PHP internal functions if a failure occurs an E_WARNING message will be generated describing the nature of the error.

Příklady

Příklad 1. Using file_get_contents() to retrieve data from multiple sources

<?php
/* Read local file from /home/bar */
$localfile = file_get_contents("/home/bar/foo.txt");

/* Identical to above, explicitly naming FILE scheme */
$localfile = file_get_contents("file:///home/bar/foo.txt");

/* Read remote file from www.example.com using HTTP */
$httpfile  = file_get_contents("http://www.example.com/foo.txt");

/* Read remote file from www.example.com using HTTPS */
$httpsfile = file_get_contents("https://www.example.com/foo.txt");

/* Read remote file from ftp.example.com using FTP */
$ftpfile   = file_get_contents("ftp://user:pass@ftp.example.com/foo.txt");

/* Read remote file from ftp.example.com using FTPS */
$ftpsfile  = file_get_contents("ftps://user:pass@ftp.example.com/foo.txt");
?>

Příklad 2. Making a POST request to an https server

<?php
/* Send POST request to https://secure.example.com/form_action.php
 * Include form elements named "foo" and "bar" with dummy values
 */

$sock = fsockopen("ssl://secure.example.com", 443, $errno, $errstr, 30);
if (!$sock) die("$errstr ($errno)\n");

$data = "foo=" . urlencode("Value for Foo") . "&bar=" . urlencode("Value for Bar");

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\r\n");
fwrite($sock, "\r\n");

$headers = "";
while ($str = trim(fgets($sock, 4096)))
  $headers .= "$str\n";

echo "\n";

$body = "";
while (!feof($sock))
  $body .= fgets($sock, 4096);

fclose($sock);
?>

Příklad 3. Writing data to a compressed file

<?php
/* Create a compressed file containing an arbitrarty string
 * File can be read back using compress.zlib stream or just
 * decompressed from the command line using 'gzip -d foo-bar.txt.gz'
 */
$fp = fopen("compress.zlib://foo-bar.txt.gz", "wb");
if (!$fp) die("Unable to create file.");

fwrite($fp, "This is a test.\n");

fclose($fp);
?>

Obsah
stream_context_create -- Create a streams context
stream_context_get_options -- Retrieve options for a stream/wrapper/context
stream_context_set_option -- Sets an option for a stream/wrapper/context
stream_context_set_params -- Set parameters for a stream/wrapper/context
stream_copy_to_stream -- Copies data from one stream to another
stream_filter_append -- Attach a filter to a stream.
stream_filter_prepend -- Attach a filter to a stream.
stream_filter_register -- Register a stream filter implemented as a PHP class derived from php_user_filter
stream_get_contents -- Reads remainder of a stream into a string
stream_get_filters -- Retrieve list of registered filters
stream_get_line -- Gets line from stream resource up to a given delimiter
stream_get_meta_data -- Retrieves header/meta data from streams/file pointers
stream_get_transports -- Retrieve list of registered socket transports
stream_get_wrappers -- Retrieve list of registered streams
stream_register_wrapper -- Alias of stream_wrapper_register()
stream_select -- Runs the equivalent of the select() system call on the given arrays of streams with a timeout specified by tv_sec and tv_usec
stream_set_blocking -- Set blocking/non-blocking mode on a stream
stream_set_timeout -- Set timeout period on a stream
stream_set_write_buffer -- Sets file buffering on the given stream
stream_socket_accept -- Accept a connection on a socket created by stream_socket_server()
stream_socket_client -- Open Internet or Unix domain socket connection
stream_socket_get_name -- Retrieve the name of the local or remote sockets
stream_socket_recvfrom -- Receives data from a socket, connected or not
stream_socket_sendto -- Sends a message to a socket, whether it is connected or not
stream_socket_server -- Create an Internet or Unix domain server socket
stream_wrapper_register -- Register a URL wrapper implemented as a PHP class

Předcházející | Domů | Další
SimpleXMLIterator::valid | Nahoru | stream_context_create


stream_context_create

(PHP 4 >= 4.3.0, PHP 5)

stream_context_create -- Create a streams context

Description

resource stream_context_create ( array options)

Creates and returns a stream context with any options supplied in options preset.

options must be an associative array of associative arrays in the format $arr['wrapper']['option'] = $value.

Příklad 1. Using stream_context_create()

<?php
$opts = array(
  'http'=>array(
    'method'=>"GET",
    'header'=>"Accept-language: en\r\n" .
              "Cookie: foo=bar\r\n"
  )
);

$context = stream_context_create($opts);

/* Sends an http request to www.example.com
   with additional headers shown above */
$fp = fopen('http://www.example.com', 'r', false, $context);
fpassthru($fp);
fclose($fp);
?>

See Also: stream_context_set_option(), and Listing of supported wrappers with context options (J)

Předcházející | Domů | Další
Stream Functions | Nahoru | stream_context_get_options


stream_context_get_options

(PHP 4 >= 4.3.0, PHP 5)

stream_context_get_options -- Retrieve options for a stream/wrapper/context

Description

array stream_context_get_options ( resource stream|context)

Returns an array of options on the specified stream or context.

Předcházející | Domů | Další
stream_context_create | Nahoru | stream_context_set_option


stream_context_set_option

(PHP 4 >= 4.3.0, PHP 5)

stream_context_set_option -- Sets an option for a stream/wrapper/context

Description

bool stream_context_set_option ( resource context|stream, string wrapper, string option, mixed value)

Sets an option on the specified context. value is set to option for wrapper

Předcházející | Domů | Další
stream_context_get_options | Nahoru | stream_context_set_params


stream_context_set_params

(PHP 4 >= 4.3.0, PHP 5)

stream_context_set_params -- Set parameters for a stream/wrapper/context

Description

bool stream_context_set_params ( resource stream|context, array params)

params should be an associative array of the structure: $params['paramname'] = "paramvalue";.

Tabulka 1. Parameters

Parameters | Purpose
notification | Name of user-defined callback function to be called whenever a stream triggers a notification.

Předcházející | Domů | Další
stream_context_set_option | Nahoru | stream_copy_to_stream


stream_copy_to_stream

(PHP 5)

stream_copy_to_stream -- Copies data from one stream to another

Description

int stream_copy_to_stream ( resource source, resource dest [, int maxlength])

Makes a copy of up to maxlength bytes of data from the current position in source to dest. If maxlength is not specified, all remaining content in source will be copied. Returns the total count of bytes copied.

Příklad 1. stream_copy_to_stream() example

<?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 copied to first1k.txt\n";
echo stream_copy_to_stream($src, $dest2) . " bytes copied to remainder.txt\n";

?>

See also copy().

Předcházející | Domů | Další
stream_context_set_params | Nahoru | stream_filter_append


stream_filter_append

(PHP 4 >= 4.3.0, PHP 5)

stream_filter_append -- Attach a filter to a stream.

Description

bool stream_filter_append ( resource stream, string filtername [, int read_write [, mixed params]])

Adds filtername to the list of filters attached to stream. This filter will be added with the specified params to the end of the list and will therefore be called last during stream operations. To add a filter to the beginning of the list, use stream_filter_prepend().

By default, stream_filter_append() will attach the filter to the read filter chain if the file was opened for reading (i.e. File Mode: r, and/or +). The filter will also be attached to the write filter chain if the file was opened for writing (i.e. File Mode: w, a, and/or +). STREAM_FILTER_READ, STREAM_FILTER_WRITE, and/or STREAM_FILTER_ALL can also be passed to the read_write parameter to override this behavior.

Příklad 1. Controlling where filters are applied

<?php
/* Open a test file for reading and writing */
$fp = fopen("test.txt", "rw");

/* Apply the ROT13 filter to the
 * write filter chain, but not the
 * read filter chain */
stream_filter_append($fp, "string.rot13", STREAM_FILTER_WRITE);

/* Write a simple string to the file
 * it will be ROT13 transformed on the
 * way out */
fwrite($fp, "This is a test\n");

/* Back up to the beginning of the file */
rewind($fp);

/* Read the contents of the file back out.
 * Had the filter been applied to the
 * read filter chain as well, we would see
 * the text ROT13ed back to its original state */
fpassthru($fp);

fclose($fp);

/* Expected Output
   ---------------

Guvf vf n grfg

 */
?>

When using custom (user) filters: stream_filter_register() must be called first in order to register the desired user filter to filtername.

Poznámka: Stream data is read from resources (both local and remote) in chunks, with any unconsumed data kept in internal buffers. When a new filter is appended to a stream, data in the internal buffers is processed through the new filter at that time. This differs from the behavior of stream_filter_prepend().

See also stream_filter_register(), and stream_filter_prepend()

Předcházející | Domů | Další
stream_copy_to_stream | Nahoru | stream_filter_prepend


stream_filter_prepend

(PHP 4 >= 4.3.0, PHP 5)

stream_filter_prepend -- Attach a filter to a stream.

Description

bool stream_filter_prepend ( resource stream, string filtername [, int read_write [, mixed params]])

Adds filtername to the list of filters attached to stream. This filter will be added with the specified params to the beginning of the list and will therefore be called first during stream operations. To add a filter to the end of the list, use stream_filter_append().

By default, stream_filter_prepend() will attach the filter to the read filter chain if the file was opened for reading (i.e. File Mode: r, and/or +). The filter will also be attached to the write filter chain if the file was opened for writing (i.e. File Mode: w, a, and/or +). STREAM_FILTER_READ, STREAM_FILTER_WRITE, and/or STREAM_FILTER_ALL can also be passed to the read_write parameter to override this behavior. See stream_filter_append() for an example of using this parameter.

When using custom (user) filters: stream_filter_register() must be called first in order to register the desired user filter to filtername.

Poznámka: Stream data is read from resources (both local and remote) in chunks, with any unconsumed data kept in internal buffers. When a new filter is prepended to a stream, data in the internal buffers, which has already been processed through other filters will not be reprocessed through the new filter at that time. This differs from the behavior of stream_filter_append().

See also stream_filter_register(), and stream_filter_append()

Předcházející | Domů | Další
stream_filter_append | Nahoru | stream_filter_register


stream_filter_register

(PHP 5)

stream_filter_register -- Register a stream filter implemented as a PHP class derived from php_user_filter

Description

bool stream_filter_register ( string filtername, string classname)

stream_filter_register() allows you to implement your own filter on any registered stream used with all the other filesystem functions (such as fopen(), fread() etc.).

To implement a filter, you need to define a class as an extension of php_user_filter with a number of member functions as defined below. When performing read/write operations on the stream to which your filter is attached, PHP will pass the data through your filter (and any other filters attached to that stream) so that the data may be modified as desired. You must implement the methods exactly as described below - doing otherwise will lead to undefined behaviour.

stream_filter_register() will return FALSE if the filtername is already defined.

int filter ( resource in, resource out, int &consumed, bool closing)

This method is called whenever data is read from or written to the attached stream (such as with fread() or fwrite()). in is a resource pointing to a bucket brigade which contains one or more bucket objects containing data to be filtered. out is a resource pointing to a second bucket brigade into which your modified buckets should be placed. consumed, which must always be declared by reference, should be incremented by the length of the data which your filter reads in and alters. In most cases this means you will increment consumed by $bucket->datalen for each $bucket. If the stream is in the process of closing (and therefore this is the last pass through the filterchain), the closing parameter will be set to TRUE The filter method must return one of three values upon completion.

Return Value | Meaning
PSFS_PASS_ON | Filter processed successfully with data available in the out bucket brigade.
PSFS_FEED_ME | Filter processed successfully, however no data was available to return. More data is required from the stream or prior filter.
PSFS_ERR_FATAL (default) | The filter experienced an unrecoverable error and cannot continue.

void onCreate ( void )

This method is called during instantiation of the filter class object. If your filter allocates or initializes any other resources (such as a buffer), this is the place to do it. Your implementation of this method should return FALSE on failure, or TRUE on success.

When your filter is first instantiated, and yourfilter->onCreate() is called, a number of properties will be available as shown in the table below.

Property | Contents
FilterClass->filtername | A string containing the name the filter was instantiated with. Filters may be registered under multiple names or under wildcards. Use this property to determine which name was used.
FilterClass->params | The contents of the params parameter passed to stream_filter_append() or stream_filter_prepend().

void onClose ( void )

This method is called upon filter shutdown (typically, this is also during stream shutdown), and is executed after the flush method is called. If any resources were allocated or initialzed during onCreate this would be the time to destroy or dispose of them.

The example below implements a filter named strtoupper on the foo-bar.txt stream which will capitalize all letter characters written to/read from that stream.

Příklad 1. Filter for capitalizing characters on foo-bar.txt stream

<?php

/* Define our filter class */
class strtoupper_filter extends php_user_filter {
  function filter($in, $out, &$consumed, $closing)
  {
    while ($bucket = stream_bucket_make_writeable($in)) {
      $bucket->data = strtoupper($bucket->data);
      $consumed += $bucket->datalen;
      stream_bucket_append($out, $bucket);
    }
    return PSFS_PASS_ON;
  }
}

/* Register our filter with PHP */
stream_filter_register("strtoupper", "strtoupper_filter")
    or die("Failed to register filter");

$fp = fopen("foo-bar.txt", "w");

/* Attach the registered filter to the stream just opened */
stream_filter_append($fp, "strtoupper");

fwrite($fp, "Line1\n");
fwrite($fp, "Word - 2\n");
fwrite($fp, "Easy As 123\n");

fclose($fp);

/* Read the contents back out
 */
readfile("foo-bar.txt");

?>

Output

LINE1
WORD - 2
EASY AS 123

Příklad 2. Registering a generic filter class to match multiple filter names.

<?php

/* Define our filter class */
class string_filter extends php_user_filter {
  var $mode;

  function filter($in, $out, &$consumed, $closing)
  {
    while ($bucket = stream_bucket_make_writeable($in)) {
      if ($this->mode == 1) {
        $bucket->data = strtoupper($bucket->data);
      } elseif ($this->mode == 0) {
        $bucket->data = strtolower($bucket->data);
      }

      $consumed += $bucket->datalen;
      stream_bucket_append($out, $bucket);
    }
    return PSFS_PASS_ON;
  }

  function onCreate()
  {
    if ($this->filtername == 'str.toupper') {
      $this->mode = 1;
    } elseif ($this->filtername == 'str.tolower') {
      $this->mode = 0;
    } else {
      /* Some other str.* filter was asked for,
         report failure so that PHP will keep looking */
      return false;
    }

    return true;
  }
}

/* Register our filter with PHP */
stream_filter_register("str.*", "string_filter")
    or die("Failed to register filter");

$fp = fopen("foo-bar.txt", "w");

/* Attach the registered filter to the stream just opened
   We could alternately bind to str.tolower here */
stream_filter_append($fp, "str.toupper");

fwrite($fp, "Line1\n");
fwrite($fp, "Word - 2\n");
fwrite($fp, "Easy As 123\n");

fclose($fp);

/* Read the contents back out
 */
readfile("foo-bar.txt");

/* Output
 * ------

LINE1
WORD - 2
EASY AS 123

 */

?>

See Also:
stream_wrapper_register(),
stream_filter_prepend(), and
stream_filter_append()

Předcházející | Domů | Další
stream_filter_prepend | Nahoru | stream_get_contents


stream_get_contents

(PHP 5)

stream_get_contents -- Reads remainder of a stream into a string

Description

string stream_get_contents ( resource handle [, int maxlength])

Identical to file_get_contents(), except that stream_get_contents() operates on an already open file resource and returns the remaining contents, up to maxlength bytes, in a string.

Poznámka: Tato funkce je binárně bezpečná.

See also:
fgets(),
fread(), and
fpassthru().

Předcházející | Domů | Další
stream_filter_register | Nahoru | stream_get_filters


stream_get_filters

(PHP 5)

stream_get_filters -- Retrieve list of registered filters

Description

array stream_get_filters ( void )

Returns an indexed array containing the name of all stream filters available on the running system.

Příklad 1. Using stream_get_filters()

<?php
$streamlist = stream_get_filters();
print_r($streamlist);
?>

Output will be similar to the following Note: there may be more or fewer filters in your version of PHP.

Array (
  [0] => string.rot13
  [1] => string.toupper
  [2] => string.tolower
  [3] => string.base64
  [4] => string.quoted-printable
)

See also stream_filter_register(), and stream_get_wrappers()

Předcházející | Domů | Další
stream_get_contents | Nahoru | stream_get_line


stream_get_line

(PHP 5)

stream_get_line -- Gets line from stream resource up to a given delimiter

Description

string stream_get_line ( resource handle, int length, string ending)

Returns a string of up to length bytes read from the file pointed to by handle. Reading ends when length bytes have been read, when the string specified by ending is found (which is not included in the return value), or on EOF (whichever comes first).

If an error occurs, returns FALSE.

This function is nearly identical to fgets() except in that it allows end of line delimiters other than the standard \n, \r, and \r\n, and does not return the delimiter itself.

See also fread(),
fgets(), and
fgetc(),

Předcházející | Domů | Další
stream_get_filters | Nahoru | stream_get_meta_data


stream_get_meta_data

(PHP 4 >= 4.3.0, PHP 5)

stream_get_meta_data -- Retrieves header/meta data from streams/file pointers

Description

array stream_get_meta_data ( resource stream)

Returns information about an existing stream. The stream can be any stream created by fopen(), fsockopen() and pfsockopen(). The result array contains the following items:

  • timed_out (bool) - TRUE if the stream timed out while waiting for data on the last call to fread() or fgets().

  • blocked (bool) - TRUE if the stream is in blocking IO mode. See stream_set_blocking().

  • eof (bool) - TRUE if the stream has reached end-of-file. Note that for socket streams this member can be TRUE even when unread_bytes is non-zero. To determine if there is more data to be read, use feof() instead of reading this item.

  • unread_bytes (int) - the number of bytes currently contained in the read buffer.

The following items were added in PHP 4.3:

  • stream_type (string) - a label describing the underlying implementation of the stream.

  • wrapper_type (string) - a label describing the protocol wrapper implementation layered over the stream. See J for more information about wrappers.

  • wrapper_data (mixed) - wrapper specific data attached to this stream. See J for more information about wrappers and their wrapper data.

  • filters (array) - and array containing the names of any filters that have been stacked onto this stream. Filters are currently undocumented.

Poznámka: This function was introduced in PHP 4.3, but prior to this version, socket_get_status() could be used to retrieve the first four items, for socket based streams only.

In PHP 4.3 and later, socket_get_status() is an alias for this function.

Poznámka: This function does NOT work on sockets created by the Socket extension.

The following items were added in PHP 5.0:

  • mode (string) - the mode (or permissions) of the URI associated with this stream.

  • seakable (bool) - whether the current stream can be seeked in.

  • uri (string) - the URI/filename associated with this stream.

Předcházející | Domů | Další
stream_get_line | Nahoru | stream_get_transports


stream_get_transports

(PHP 5)

stream_get_transports -- Retrieve list of registered socket transports

Description

array stream_get_transports ( void )

Returns an indexed array containing the name of all socket transports available on the running system.

Příklad 1. Using stream_get_transports()

<?php
$xportlist = stream_get_transports();
print_r($xportlist);
?>

Output will be similar to the following Note: there may be more or fewer transports in your version of PHP

Array (
  [0] => tcp
  [1] => udp
  [2] => unix
  [3] => udg
)

See also stream_get_filters(), and stream_get_wrappers()

Předcházející | Domů | Další
stream_get_meta_data | Nahoru | stream_get_wrappers


stream_get_wrappers

(PHP 5)

stream_get_wrappers -- Retrieve list of registered streams

Description

array stream_get_wrappers ( void )

Returns an indexed array containing the name of all stream wrappers available on the running system.

See also stream_wrapper_register()

Předcházející | Domů | Další
stream_get_transports | Nahoru | stream_register_wrapper


stream_register_wrapper

stream_register_wrapper -- Alias of stream_wrapper_register()

Description

This function is an alias of stream_wrapper_register(). This function is included for compatability with PHP 4.3.0 and PHP 4.3.1 only. stream_wrapper_register() should be used instead.

Předcházející | Domů | Další
stream_get_wrappers | Nahoru | stream_select


stream_select

(PHP 4 >= 4.3.0, PHP 5)

stream_select -- Runs the equivalent of the select() system call on the given arrays of streams with a timeout specified by tv_sec and tv_usec

Description

int stream_select ( array &read, array &write, array &except, int tv_sec [, int tv_usec])

The stream_select() function accepts arrays of streams and waits for them to change status. Its operation is equivalent to that of the socket_select() function except in that it acts on streams.

The streams listed in the read array will be watched to see if characters become available for reading (more precisely, to see if a read will not block - in particular, a stream resource is also ready on end-of-file, in which case an fread() will return a zero length string).

The streams listed in the write array will be watched to see if a write will not block.

The streams listed in the except array will be watched for high priority exceptional ("out-of-band") data arriving.

Poznámka: When stream_select() returns, the arrays read, write and except are modified to indicate which stream resource(s) actually changed status.

The tv_sec and tv_usec together form the timeout parameter, tv_sec specifies the number of seconds while tv_usec the number of microseconds. The timeout is an upper bound on the amount of time that stream_select() will wait before it returns. If tv_sec and tv_usec are both set to 0, stream_select() will not wait for data - instead it will return immediately, indicating the current status of the streams. If tv_sec is NULL stream_select() can block indefinitely, returning only when an event on one of the watched streams occurs (or if a signal interrupts the system call).

On success stream_select() returns the number of stream resources contained in the modified arrays, which may be zero if the timeout expires before anything interesting happens. On error FALSE is returned and a warning raised (this can happen if the system call is interrupted by an incoming signal).

Varování

Using a timeout value of 0 allows you to instantaneously poll the status of the streams, however, it is NOT a good idea to use a 0 timeout value in a loop as it will cause your script to consume too much CPU time.

It is much better to specify a timeout value of a few seconds, although if you need to be checking and running other code concurrently, using a timeout value of at least 200000 microseconds will help reduce the CPU usage of your script.

Remember that the timeout value is the maximum time that will elapse; stream_select() will return as soon as the requested streams are ready for use.

You do not need to pass every array to stream_select(). You can leave it out and use an empty array or NULL instead. Also do not forget that those arrays are passed by reference and will be modified after stream_select() returns.

This example checks to see if data has arrived for reading on either $stream1 or $stream2. Since the timeout value is 0 it will return immediately:
<?php
/* Prepare the read array */
$read = array($stream1, $stream2);

if (false === ($num_changed_streams = stream_select($read, $write = NULL, $except = NULL, 0))) {
    /* Error handling */
} elseif ($num_changed_streams > 0) {
    /* At least on one of the streams something interesting happened */
}
?>

Poznámka: Due to a limitation in the current Zend Engine it is not possible to pass a constant modifier like NULL directly as a parameter to a function which expects this parameter to be passed by reference. Instead use a temporary variable or an expression with the leftmost member being a temporary variable:
<?php
stream_select($r, $w, $e = NULL, 0);
?>

Poznámka: Be sure to use the === operator when checking for an error. Since the stream_select() may return 0 the comparison with == would evaluate to TRUE:
<?php
if (false === stream_select($r, $w, $e = NULL, 0)) {
    echo "stream_select() failed\n";
}
?>

Poznámka: If you read/write to a stream returned in the arrays be aware that they do not necessarily read/write the full amount of data you have requested. Be prepared to even only be able to read/write a single byte.

Windows 98 Note: stream_select() used on a pipe returned from proc_open() may cause data loss under Windows 98.

See also stream_set_blocking()

Předcházející | Domů | Další
stream_register_wrapper | Nahoru | stream_set_blocking


stream_set_blocking

(PHP 4 >= 4.3.0, PHP 5)

stream_set_blocking -- Set blocking/non-blocking mode on a stream

Description

bool stream_set_blocking ( resource stream, int mode)

If mode is FALSE, the given stream will be switched to non-blocking mode, and if TRUE, it will be switched to blocking mode. This affects calls like fgets() and fread() that read from the stream. In non-blocking mode an fgets() call will always return right away while in blocking mode it will wait for data to become available on the stream.

Vrací TRUE při úspěchu, FALSE při selhání.

This function was previously called as set_socket_blocking() and later socket_set_blocking() but this usage is deprecated.

Poznámka: Prior to PHP 4.3, this function only worked on socket based streams. Since PHP 4.3, this function works for any stream that supports non-blocking mode (currently, regular files and socket streams).

See also stream_select().

Předcházející | Domů | Další
stream_select | Nahoru | stream_set_timeout


stream_set_timeout

(PHP 4 >= 4.3.0, PHP 5)

stream_set_timeout -- Set timeout period on a stream

Description

bool stream_set_timeout ( resource stream, int seconds [, int microseconds])

Sets the timeout value on stream, expressed in the sum of seconds and microseconds. Vrací TRUE při úspěchu, FALSE při selhání.

Příklad 1. stream_set_timeout() example

<?php
$fp = fsockopen("www.example.com", 80);
if (!$fp) {
    echo "Unable to open\n";
} else {
    fwrite($fp, "GET / HTTP/1.0\n\n");
    stream_set_timeout($fp, 2);
    $res = fread($fp, 2000);
    var_dump(stream_get_meta_data($fp));
    fclose($fp);
    echo $res;
}
?>

Poznámka: As of PHP 4.3, this function can (potentially) work on any kind of stream. In PHP 4.3, socket based streams are still the only kind supported in the PHP core, although streams from other extensions may support this function.

This function was previously called as set_socket_timeout() and later socket_set_timeout() but this usage is deprecated.

See also: fsockopen() and fopen().

Předcházející | Domů | Další
stream_set_blocking | Nahoru | stream_set_write_buffer


stream_set_write_buffer

(PHP 4 >= 4.3.0, PHP 5)

stream_set_write_buffer -- Sets file buffering on the given stream

Description

int stream_set_write_buffer ( resource stream, int buffer)

Output using fwrite() is normally buffered at 8K. This means that if there are two processes wanting to write to the same output stream (a file), each is paused after 8K of data to allow the other to write. stream_set_write_buffer() sets the buffering for write operations on the given filepointer stream to buffer bytes. If buffer is 0 then write operations are unbuffered. This ensures that all writes with fwrite() are completed before other processes are allowed to write to that output stream.

The function returns 0 on success, or EOF if the request cannot be honored.

The following example demonstrates how to use stream_set_write_buffer() to create an unbuffered stream.

Příklad 1. stream_set_write_buffer() example

<?php
$fp = fopen($file, "w");
if ($fp) {
  stream_set_write_buffer($fp, 0);
  fwrite($fp, $output);
  fclose($fp);
}
?>

See also fopen() and fwrite().

Předcházející | Domů | Další
stream_set_timeout | Nahoru | stream_socket_accept


stream_socket_accept

(PHP 5)

stream_socket_accept -- Accept a connection on a socket created by stream_socket_server()

Description

resource stream_socket_accept ( resource server_socket [, int timeout [, string &peername]])

Accept a connection on a socket previously created by stream_socket_server(). If timeout is specified, the default socket accept timeout will be overridden with the time specified in seconds. The name (address) of the client which connected will be passed back in peername if included and available from the selected transport.

peername can also be determined later using stream_socket_get_name().

If the call fails, it will return FALSE.

See also stream_socket_server(),
stream_socket_get_name(),
stream_set_blocking(),
stream_set_timeout(),
fgets(),
fgetss(), fwrite(),
fclose(), feof(), and
the Curl extension.

Předcházející | Domů | Další
stream_set_write_buffer | Nahoru | stream_socket_client


stream_socket_client

(PHP 5)

stream_socket_client -- Open Internet or Unix domain socket connection

Description

resource stream_socket_client ( string remote_socket [, int &errno [, string &errstr [, float timeout [, int flags [, resource context]]]]])

Initiates a stream or datagram connection to the destination specified by remote_socket. The type of socket created is determined by the transport specified using standard URL formatting: transport://target. For Internet Domain sockets (AF_INET) such as TCP and UDP, the target portion of the remote_socket parameter should consist of a hostname or IP address followed by a colon and a port number. For Unix domain sockets, the target portion should point to the socket file on the filesystem. The optional timeout can be used to set a timeout in seconds for the connect system call. flags is a bitmask field which may be set to any combination of connection flags. Currently the selection of connection flags is limited to STREAM_CLIENT_ASYNC_CONNECT and STREAM_CLIENT_PERSISTENT.

Poznámka: If you need to set a timeout for reading/writing data over the socket, use stream_set_timeout(), as the timeout parameter to stream_socket_client() only applies while connecting the socket.

stream_socket_client() returns a
stream resource which may
be used together with the other file functions (such as
fgets(), fgetss(),
fwrite(), fclose(), and
feof()).

If the call fails, it will return FALSE and if the optional errno and errstr arguments are present they will be set to indicate the actual system level error that occurred in the system-level connect() call. If the value returned in errno is 0 and the function returned FALSE, it is an indication that the error occurred before the connect() call. This is most likely due to a problem initializing the socket. Note that the errno and errstr arguments will always be passed by reference.

Depending on the environment, the Unix domain or the optional connect timeout may not be available. A list of available transports can be retrieved using stream_get_transports(). See L for a list of built in transports.

The stream will by default be opened in blocking mode. You can switch it to non-blocking mode by using stream_set_blocking().

Příklad 1. stream_socket_client() Example

<?php
$fp = stream_socket_client("tcp://www.example.com:80", $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    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);
}
?>
The example below shows how to retrieve the day and time from the UDP service "daytime" (port 13) in your own machine.

Příklad 2. Using UDP connection

<?php
$fp = stream_socket_client("udp://127.0.0.1:13", $errno, $errstr);
if (!$fp) {
    echo "ERROR: $errno - $errstr<br />\n";
} else {
    fwrite($fp, "\n");
    echo fread($fp, 26);
    fclose($fp);
}
?>

Varování

UDP sockets will sometimes appear to have opened without an error, even if the remote host is unreachable. The error will only become apparent when you read or write data to/from the socket. The reason for this is because UDP is a "connectionless" protocol, which means that the operating system does not try to establish a link for the socket until it actually needs to send or receive data.

Poznámka: Když zadáváte číselnou IPv6 adresu (např. fe80::1), musíte ji uzavřít do hranatých závorek. Například tcp://[fe80::1]:80.

See also stream_socket_server(), stream_set_blocking(), stream_set_timeout(), stream_select(), fgets(), fgetss(), fwrite(), fclose(), feof(), and the Curl extension.

Předcházející | Domů | Další
stream_socket_accept | Nahoru | stream_socket_get_name


stream_socket_get_name

(PHP 5)

stream_socket_get_name -- Retrieve the name of the local or remote sockets

Description

string stream_socket_get_name ( resource handle, bool want_peer)

Returns the local or remote name of a given socket connection. If want_peer is set to TRUE the remote socket name will be returned, if it is set to FALSE the local socket name will be returned.

See also stream_socket_accept()

Předcházející | Domů | Další
stream_socket_client | Nahoru | stream_socket_recvfrom


stream_socket_recvfrom

(PHP 5)

stream_socket_recvfrom -- Receives data from a socket, connected or not

Description

string stream_socket_recvfrom ( resource socket, int length [, int flags [, string &address]])

The function stream_socket_recvfrom() accepts data from a remote socket up to length bytes. If address is provided it will be populated with the address of the remote socket.

The value of flags can be any combination of the following:

Tabulka 1. possible values for flags

STREAM_OOB | Process OOB (out-of-band) data.
STREAM_PEEK | Retrieve data from the socket, but do not consume the buffer. Subsequent calls to fread() or stream_socket_recvfrom() will see the same data.

Příklad 1. stream_socket_recvfrom() Example

<?php
/* Open a server socket to port 1234 on localhost */
$server = stream_socket_server('tcp://127.0.0.1:1234');

/* Accept a connection */
$socket = stream_socket_accept($server);

/* Grab a packet (1500 is a typical MTU size) of OOB data */
echo "Received Out-Of-Band: '" . stream_socket_recvfrom($socket, 1500, STREAM_OOB) . "'\n";

/* Take a peek at the normal in-band data, but don't comsume it. */
echo "Data: '" . stream_socket_recvfrom($socket, 1500, STREAM_PEEK) . "'\n";

/* Get the exact same packet again, but remove it from the buffer this time. */
echo "Data: '" . stream_socket_recvfrom($socket, 1500) . "'\n";

/* Close it up */
fclose($socket);
fclose($server);
?>

See also
stream_socket_sendto(),
stream_socket_client(), and
stream_socket_server().

Předcházející | Domů | Další
stream_socket_get_name | Nahoru | stream_socket_sendto


stream_socket_sendto

(PHP 5)

stream_socket_sendto -- Sends a message to a socket, whether it is connected or not

Description

int stream_socket_sendto ( resource socket, string data [, int flags [, string address]])

The function stream_socket_sendto() sends the data specified by data through the socket specified by socket. The address specified when the socket stream was created will be used unless an alternate address is specified in address.

The value of flags can be any combination of the following:

Tabulka 1. possible values for flags

STREAM_OOB Process OOB (out-of-band) data.

Příklad 1. stream_socket_sendto() Example

<?php
/* Open a socket to port 1234 on localhost */
$socket = stream_socket_client('tcp://127.0.0.1:1234');

/* Send ordinary data via ordinary channels. */
fwrite($socket, "Normal data transmit.");

/* Send more data out of band. */
stream_socket_sendto($socket, "Out of Band data.", STREAM_OOB);

/* Close it up */
fclose($socket);
?>

See also
stream_socket_recvfrom(),
stream_socket_client(), and
stream_socket_server().

Předcházející | Domů | Další
stream_socket_recvfrom | Nahoru | stream_socket_server


stream_socket_server

(PHP 5)

stream_socket_server -- Create an Internet or Unix domain server socket

Description

resource stream_socket_server ( string local_socket [, int &errno [, string &errstr [, int flags [, resource context]]]])

Creates a stream or datagram socket on the specified local_socket. The type of socket created is determined by the transport specified using standard URL formatting: transport://target. For Internet Domain sockets (AF_INET) such as TCP and UDP, the target portion of the remote_socket parameter should consist of a hostname or IP address followed by a colon and a port number. For Unix domain sockets, the target portion should point to the socket file on the filesystem. flags is a bitmask field which may be set to any combination of socket creation flags. The default value of flags is STREAM_SERVER_BIND | STREAM_SERVER_LISTEN.

This function only creates a socket, to begin accepting connections use stream_socket_accept().

If the call fails, it will return FALSE and if the optional errno and errstr arguments are present they will be set to indicate the actual system level error that occurred in the system-level socket(), bind(), and listen() calls. If the value returned in errno is 0 and the function returned FALSE, it is an indication that the error occurred before the bind() call. This is most likely due to a problem initializing the socket. Note that the errno and errstr arguments will always be passed by reference.

Depending on the environment, Unix domain sockets may not be available. A list of available transports can be retrieved using stream_get_transports(). See L for a list of bulitin transports.

Příklad 1. stream_socket_server() Example

<?php
$socket = stream_socket_server("tcp://0.0.0.0:8000", $errno, $errstr);
if (!$socket) {
  echo "$errstr ($errno)<br />\n";
} else {
  while ($conn = stream_socket_accept($socket)) {
    fwrite($conn, 'The local time is ' . date('n/j/Y g:i a') . "\n");
    fclose($conn);
  }
  fclose($socket);
}
?>

The example below shows how to act as a time server which can respond to time queries as shown in an example on stream_socket_client().

Poznámka: Most systems require root access to create a server socket on a port below 1024.

Příklad 2. Using UDP server sockets

<?php
$socket = stream_socket_server("udp://0.0.0.0:13", $errno, $errstr, STREAM_SERVER_BIND);
if (!$socket) {
    echo "ERROR: $errno - $errstr<br />\n";
} else {
  while ($conn = stream_socket_accept($socket)) {
    fwrite($conn, date("D M j H:i:s Y\r\n"));
    fclose($conn);
  }
  fclose($socket);
}
?>

Poznámka: Když zadáváte číselnou IPv6 adresu (např. fe80::1), musíte ji uzavřít do hranatých závorek. Například tcp://[fe80::1]:80.

See also stream_socket_client(),
stream_set_blocking(),
stream_set_timeout(),
fgets(),
fgetss(), fwrite(),
fclose(), feof(), and
the Curl extension.

Předcházející | Domů | Další
stream_socket_sendto | Nahoru | stream_wrapper_register


stream_wrapper_register

(PHP 4 >= 4.3.2, PHP 5)

stream_wrapper_register -- Register a URL wrapper implemented as a PHP class

Description

bool stream_wrapper_register ( string protocol, string classname)

stream_wrapper_register() allows you to implement your own protocol handlers and streams for use with all the other filesystem functions (such as fopen(), fread() etc.).

To implement a wrapper, you need to define a class with a number of member functions, as defined below. When someone fopens your stream, PHP will create an instance of classname and then call methods on that instance. You must implement the methods exactly as described below - doing otherwise will lead to undefined behaviour.

Poznámka: As of PHP 5.0.0 the instance of classname will be populated with a context property referencing a Context Resource which may be accessed with stream_context_get_options(). If no context was passed to the stream creation function, context will be set to NULL.

stream_wrapper_register() will return FALSE if the protocol already has a handler.

bool stream_open ( string path, string mode, int options, string opened_path)

This method is called immediately after your stream object is created. path specifies the URL that was passed to fopen() and that this object is expected to retrieve. You can use parse_url() to break it apart.

mode is the mode used to open the file, as detailed for fopen(). You are responsible for checking that mode is valid for the path requested.

options holds additional flags set by the streams API. It can hold one or more of the following values OR'd together.

Flag | Description
STREAM_USE_PATH | If path is relative, search for the resource using the include_path.
STREAM_REPORT_ERRORS | If this flag is set, you are responsible for raising errors using trigger_error() during opening of the stream. If this flag is not set, you should not raise any errors.

If the path is opened successfully, and STREAM_USE_PATH is set in options, you should set opened_path to the full path of the file/resource that was actually opened.

If the requested resource was opened successfully, you should return TRUE, otherwise you should return FALSE

void stream_close ( void )

This method is called when the stream is closed, using fclose(). You must release any resources that were locked or allocated by the stream.

string stream_read ( int count)

This method is called in response to fread() and fgets() calls on the stream. You must return up-to count bytes of data from the current read/write position as a string. If there are less than count bytes available, return as many as are available. If no more data is available, return either FALSE or an empty string. You must also update the read/write position of the stream by the number of bytes that were successfully read.

int stream_write ( string data)

This method is called in response to fwrite() calls on the stream. You should store data into the underlying storage used by your stream. If there is not enough room, try to store as many bytes as possible. You should return the number of bytes that were successfully stored in the stream, or 0 if none could be stored. You must also update the read/write position of the stream by the number of bytes that were successfully written.

bool stream_eof ( void )

This method is called in response to feof() calls on the stream. You should return TRUE if the read/write position is at the end of the stream and if no more data is available to be read, or FALSE otherwise.

int stream_tell ( void )

This method is called in response to ftell() calls on the stream. You should return the current read/write position of the stream.

bool stream_seek ( int offset, int whence)

This method is called in response to fseek() calls on the stream. You should update the read/write position of the stream according to offset and whence. See fseek() for more information about these parameters. Return TRUE if the position was updated, FALSE otherwise.

bool stream_flush ( void )

This method is called in response to fflush() calls on the stream. If you have cached data in your stream but not yet stored it into the underlying storage, you should do so now. Return TRUE if the cached data was successfully stored (or if there was no data to store), or FALSE if the data could not be stored.

array stream_stat ( void )

This method is called in response to fstat() calls on the stream and should return an array containing the same values as appropriate for the stream.

bool unlink ( string path)

This method is called in response to unlink() calls on URL paths associated with the wrapper and should attempt to delete the item specified by path. It should return TRUE on success or FALSE on failure. In order for the appropriate error message to be returned, do not define this method if your wrapper does not support unlinking.

Poznámka: Userspace wrapper unlink method is not supported prior to PHP 5.0.0.

bool rename ( string path_from, string path_to)

This method is called in response to rename() calls on URL paths associated with the wrapper and should attempt to rename the item specified by path_from to the specification given by path_to. It should return TRUE on success or FALSE on failure. In order for the appropriate error message to be returned, do not define this method if your wrapper does not support renaming.

Poznámka: Userspace wrapper rename method is not supported prior to PHP 5.0.0.

bool mkdir ( string path, int mode, int options)

This method is called in response to mkdir() calls on URL paths associated with the wrapper and should attempt to create the directory specified by path. It should return TRUE on success or FALSE on failure. In order for the appropriate error message to be returned, do not define this method if your wrapper does not support creating directories. Posible values for options include STREAM_REPORT_ERRORS and STREAM_MKDIR_RECURSIVE.

Poznámka: Userspace wrapper mkdir method is not supported prior to PHP 5.0.0.

bool rmdir ( string path, int options)

This method is called in response to rmdir() calls on URL paths associated with the wrapper and should attempt to remove the directory specified by path. It should return TRUE on success or FALSE on failure. In order for the appropriate error message to be returned, do not define this method if your wrapper does not support removing directories. Possible values for options include STREAM_REPORT_ERRORS.

Poznámka: Userspace wrapper rmdir method is not supported prior to PHP 5.0.0.

bool dir_opendir ( string path, int options)

This method is called immediately when your stream object is created for examining directory contents with opendir(). path specifies the URL that was passed to opendir() and that this object is expected to explore. You can use parse_url() to break it apart.

array url_stat ( string path, int flags)

This method is called in response to stat() calls on the URL paths associated with the wrapper and should return as many elements in common with the system function as possible. Unknown or unavailable values should be set to a rational value (usually 0).

flags holds additional flags set by the streams API. It can hold one or more of the following values OR'd together.

Flag | Description
STREAM_URL_STAT_LINK | For resources with the ability to link to other resource (such as an HTTP Location: forward, or a filesystem symlink). This flag specified that only information about the link itself should be returned, not the resource pointed to by the link. This flag is set in response to calls to lstat(), is_link(), or filetype().
STREAM_URL_STAT_QUIET | If this flag is set, your wrapper should not raise any errors. If this flag is not set, you are responsible for reporting errors using the trigger_error() function during stating of the path.

string dir_readdir ( void )

This method is called in response to readdir() and should return a string representing the next filename in the location opened by dir_opendir().

bool dir_rewinddir ( void )

This method is called in response to rewinddir() and should reset the output generated by dir_readdir(). i.e.: The next call to dir_readdir() should return the first entry in the location returned by dir_opendir().

bool dir_closedir ( void )

This method is called in response to closedir(). You should release any resources which were locked or allocated during the opening and use of the directory stream.

The example below implements a var:// protocol handler that allows read/write access to a named global variable using standard filesystem stream functions such as fread(). The var:// protocol implemented below, given the URL "var://foo" will read/write data to/from $GLOBALS["foo"].

Příklad 1. A Stream for reading/writing global variables

<?php

class VariableStream {
    var $position;
    var $varname;

    function stream_open($path, $mode, $options, &$opened_path)
    {
        $url = parse_url($path);
        $this->varname = $url["host"];
        $this->position = 0;

        return true;
    }

    function stream_read($count)
    {
        $ret = substr($GLOBALS[$this->varname], $this->position, $count);
        $this->position += strlen($ret);
        return $ret;
    }

    function stream_write($data)
    {
        $left = substr($GLOBALS[$this->varname], 0, $this->position);
        $right = substr($GLOBALS[$this->varname], $this->position + strlen($data));
        $GLOBALS[$this->varname] = $left . $data . $right;
        $this->position += strlen($data);
        return strlen($data);
    }

    function stream_tell()
    {
        return $this->position;
    }

    function stream_eof()
    {
        return $this->position >= strlen($GLOBALS[$this->varname]);
    }

    function stream_seek($offset, $whence)
    {
        switch ($whence) {
            case SEEK_SET:
                if ($offset < strlen($GLOBALS[$this->varname]) && $offset >= 0) {
                     $this->position = $offset;
                     return true;
                } else {
                     return false;
                }
                break;

            case SEEK_CUR:
                if ($offset >= 0) {
                     $this->position += $offset;
                     return true;
                } else {
                     return false;
                }
                break;

            case SEEK_END:
                if (strlen($GLOBALS[$this->varname]) + $offset >= 0) {
                     $this->position = strlen($GLOBALS[$this->varname]) + $offset;
                     return true;
                } else {
                     return false;
                }
                break;

            default:
                return false;
        }
    }
}

stream_wrapper_register("var", "VariableStream")
    or die("Failed to register protocol");

$myvar = "";

$fp = fopen("var://myvar", "r+");

fwrite($fp, "line1\n");
fwrite($fp, "line2\n");
fwrite($fp, "line3\n");

rewind($fp);
while (!feof($fp)) {
    echo fgets($fp);
}
fclose($fp);
var_dump($myvar);

?>

Předcházející | Domů | Další
stream_socket_server | Nahoru | Funkce pro práci s řetězci


Funkce pro práci s řetězci

Manuál PHP
Předcházející Další

CVI. Funkce pro práci s řetězci

Úvod

Všechny tyto funkce různými způsoby pracují s řetězci. Některé specializovanější funkce najdete v sekcích regulárních výrazů a obsluha URL.

Informace o chování řetězců, zvláště v souvislosti s použitím jednoduchých uvozovek, dvojitých uvozovek a znaků opatřených zpětnými lomítky, viz položky Řetězce v sekci Typy tohoto manuálu.

Požadavky

Tyto funkce jsou k dispozici jako součást standardního modulu, který je vždy dostupný.

Instalace

K používání těchto funkcí není třeba žádná instalace, jsou součástí jádra PHP.

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

CRYPT_SALT_LENGTH integer

CRYPT_STD_DES integer

CRYPT_EXT_DES integer

CRYPT_MD5 integer

CRYPT_BLOWFISH integer

HTML_SPECIALCHARS (integer)

HTML_ENTITIES (integer)

ENT_COMPAT (integer)

ENT_QUOTES (integer)

ENT_NOQUOTES (integer)

CHAR_MAX (integer)

LC_CTYPE (integer)

LC_NUMERIC (integer)

LC_TIME (integer)

LC_COLLATE (integer)

LC_MONETARY (integer)

LC_ALL (integer)

LC_MESSAGES (integer)

STR_PAD_LEFT (integer)

STR_PAD_RIGHT (integer)

STR_PAD_BOTH (integer)

Viz také

Další informace o mnohem mocnějším zacházení s řetězci a obslužnými funkcemi nalezenete v sekcích POSIX funkce pro regulární výrazy a Perl kompatibilní funkce pro regulární výrazy.

Obsah
addcslashes -- Opatřit řetězec lomítky ve stylu jazyka C
addslashes -- Opatřit řetězec lomítky
bin2hex -- Převést binární data na hexadecimální reprezentaci
chop -- Odstranit netisknutelné znaky z konce řetězce
chr -- Vrátit určitý znak
chunk_split -- Rozdělit řetězec na menší části
convert_cyr_string -- Převést z jedné znakové sady Azbuky do jiné
count_chars -- Vrátit informace o znacích použitých v řetězci
crc32 -- Spočítat kontrolní součet crc32 řetězce
crypt -- Jednosměrné zašifrování řetězce
echo -- Vytisknout jeden nebo více řetězců
explode -- Rozděluje řetězec jiným řetězcem
fprintf -- Write a formatted string to a stream
get_html_translation_table -- Vrací překladovou tabulku používanou v htmlspecialchars() a htmlentities()
hebrev -- Převést logický Hebrejský text na vizuální text
hebrevc -- Převést logický Hebrejský text na vizuální text s konverzí konců řádků
html_entity_decode -- Convert all HTML entities to their applicable characters
htmlentities -- Převést všechny použitelné znaky na HTML entity
htmlspecialchars -- Převést zvláštní znaky na HTML entity
implode -- Spojit prvky pole pomocí řetězce
join -- Spojit prvky pole pomocí řetězce
levenshtein -- Spočítat XXX Levenshteinovu vzdálenost mezi dvěma řetězci
localeconv -- Get numeric formatting information
ltrim -- Odstranit netisknutelné znaky ze začátku řetězce
md5_file -- Calculates the md5 hash of a given filename
md5 -- Spočítat MD5 hash řetězce
metaphone -- Spočítat metaphone klíč řetězce
money_format -- Formats a number as a currency string
nl_langinfo -- Query language and locale information
nl2br -- Před všechny konce řádků v řetězci vloží HTML konce řádků
number_format -- Format a number with grouped thousands
ord -- Vrátit ASCII hodnotu znaku
parse_str -- Rozparsovat řetězec do proměnných
print -- Vytisknout řetězec
printf -- Vytisknout formátovaný řetězec
quoted_printable_decode -- Převést quoted-printable řetězec na osmibitový řetězec
quotemeta -- Opatřit lomítky metaznaky
rtrim -- Odstranit netisknutelné znaky z konce řetězce
setlocale -- Set locale information
sha1_file -- Calculate the sha1 hash of a file
sha1 -- Calculate the sha1 hash of a string
similar_text -- Spočítat podobnost dvou řetězců
soundex -- Spočítat soundex klíč řetězce
sprintf -- Vrátit formátovaný řetězec
sscanf -- Rozparsovat vstupní řetězec podle formátu
str_ireplace -- Case-insensitive version of str_replace().
str_pad -- Doplnit řetězec jiným řetězcem na určitou délku
str_repeat -- Opakovat řetězec
str_replace -- Nahradit všechny výskyty jednoho řetězce dalším řetězcem
str_rot13 -- Perform the rot13 transform on a string
str_shuffle -- Randomly shuffles a string
str_split -- Convert a string to an array
str_word_count -- Return information about words used in a string
strcasecmp -- Binárně bezpečné case-insensitive porovnání řetězců
strchr -- Najít první výskyt znaku
strcmp -- Binárně bezpečně porovnat řetězce
strcoll -- Locale based string comparison
strcspn -- Najít délku úvodního segmentu neodpovídajícího masce
strip_tags -- Odstranit z řetězce HTML a PHP tagy
stripcslashes -- Un-quote string quoted with addcslashes()
stripos -- Find position of first occurrence of a case-insensitive string
stripslashes -- Zrušit escapování provedené funkcí addslashes()
stristr -- strstr() bez rozlišení velikosti písmen
strlen -- Zjistit délku řetězce
strnatcasecmp -- Case-insensitive textové porovnání s využitím "natural order" algoritmu
strnatcmp -- Porovnání řetězců algoritmem "přirozeného třídění"
strncasecmp -- Binárně bezpečné case-insensitive porovnání prvních n znaků řetězců
strncmp -- Binárně bezpečné porovnání prvních n znaků v řetězcích
strpos -- Najít pozici prvního výskytu řetězce
strrchr -- Najít poslední výskyt znaku v řetězci
strrev -- Obrátit řetězec
strripos -- Find position of last occurrence of a case-insensitive string in a string
strrpos -- Najít pozici posledního výskytu znaku v řetězci
strspn -- Zjistit délku úvodního segmentu odpovídajícího masce
strstr -- Najít první výskyt řetězce
strtok -- Tokenize string
strtolower -- Změnit řetězec na malá písmena
strtoupper -- Změnit řetězec na velká písmena
strtr -- Přeložit určité znaky
substr_compare -- Binary safe optionally case insensitive comparison of 2 strings from an offset, up to length characters
substr_count -- Spočítat počet výskytů řetězce
substr_replace -- Nahradit část řetězce jiným řetězcem
substr -- Vrátit část řetězce
trim -- Odstranit netisknutelné znaky ze začátku a konce řetězce
ucfirst -- Změní první písmeno řetězce na velké
ucwords -- Změnit první znak každého slova v řetězci na velké písmeno
vprintf -- Output a formatted string
vsprintf -- Return a formatted string
wordwrap -- Zalámat řetězec na daný počet znaků pomocí break znaku

Předcházející | Domů | Další
stream_wrapper_register | Nahoru | addcslashes


addcslashes

(PHP 4 , PHP 5)

addcslashes -- Opatřit řetězec lomítky ve stylu jazyka C

Popis

string addcslashes ( string str, string charlist)

Vrací řetězec se zpětnými lomítky před znaky, které jsou vypsány v parametru charlist. Dále doplní \n, \r atd. podobně jako v jazyce C, znaky s ASCII kódem nižším než 32 a vyšším než 126 se převedou na osmičkovou reprezentaci.

Pokud zvolíte oescapovat znaky 0, a, b, f, n, r, t a v, budou konvertovány na \0, \a, \b, \f, \n, \r, \t a \v. V PHP \0 (NULL), \r (carriage return), \n (nový řádek) a \t (tab) jsou předdefinované escape sekvence, while in C all of these are predefined escape sequences.

V charlist můžete udat rozsah, např. "\0..\37", což by escapovalo všechny znaky s ASCII kódem mezi 0 a 31.

Příklad 1. Ukázka addcslashes()

$escaped = addcslashes ($not_escaped, "\0..\37!@\177..\377");

Pakliže uvádíte sekvenci znaků v parametru charlist ujistěte se, že víte které další znaky jdou mezi znaky, jež jsou uvedeny na začátku a na konci rozsahu.

echo addcslashes('foo[ ]', 'A..z');
// Výstup:  \f\o\o\[ \]
// Všechny velké i malé znaky budou escapovány
// ... but so will the [\]^_` and any tabs, line
// feeds, carriage returns, etc.

Také pokud první znak v rozsahu má nižší ASCII hodnotu než druhý znak v rozsahu, nebude žádný rozsah vytvořen. Pouze znkay začáteční, koncové a v periodě budou escapovány. Použijte funkci ord() k zjištění ASCII hodnoty znaků.

echo addcslashes("zoo['.']", 'z..A');
// Výstup:  \zoo['\.']

Viz také: stripcslashes(),
stripslashes(),
htmlspecialchars(),
htmlspecialchars() a
quotemeta().

Předcházející | Domů | Další
Funkce pro práci s řetězci | Nahoru | addslashes


addslashes

(PHP 3, PHP 4 , PHP 5)

addslashes -- Opatřit řetězec lomítky

Popis

string addslashes ( string str)

Vrací řetězec se zpětnými lomítky před znaky, které by ohly být problémové v databázových dotazech apod. Tyto znaky jsou jednoduchá uvozovka ('), dvojitá uvozovka ("), zpětné lomítko (\) a NUL (NULL byte).

Příklad použití funkce addslashes() je když vkládáte data do databáze. Například při vložení jména O'reilly do databáze musíte tento řetězec escapovat. Většina databází pro to používá znak \, z čehož vyjde O\'reilly. To se použije pouze pro vložení do databáze, lomítka navíc nebudou uložena. Nastavení PHP direktivy magic_quotes_sybase na on způsobí, že znak ' je místo lomítka escapován dalším znakem '.

PHP direktiva magic_quotes_gpc je výchozím nastavení nastavena na on, což způsobí že funkce addslashes() bude použita na všechna data GET, POST a COOKIE. Nepoužívejte funkci addslashes() na řetězce, které již byly escapovány díky direktivě magic_quotes_gpc, jinak způsobíte dvojité escapování. Funkce get_magic_quotes_gpc() se může hodit, pro ověření nastavení této direktivy.

Příklad 1. Příklad funkce addslashes()

<?php
$str = "Jmenuješ se O'reilly?";

// Vypíše: Jmenuješ se O\'reilly?
echo addslashes($str);
?>

Viz také stripslashes(),
htmlspecialchars(),
quotemeta() a
get_magic_quotes_gpc().

Předcházející | Domů | Další
addcslashes | Nahoru | bin2hex


bin2hex

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

bin2hex -- Převést binární data na hexadecimální reprezentaci

Popis

string bin2hex ( string str)

Vrací ASCII řetězec obsahující hexadecimální reprezentaci str. Konverze probíhá po bytech, horní slabika první.

Dále také pack() a unpack().

Předcházející | Domů | Další
addslashes | Nahoru | chop


chop

(PHP 3, PHP 4 , PHP 5)

chop -- Odstranit netisknutelné znaky z konce řetězce

Popis

string chop ( string str)

Vrací předaný řetězec bez netisknutelných znaků (vč. konců řádku) na konci.

Příklad 1. Ukázka chop()

$trimmed = chop ($line);

Poznámka: chop() se liší do Perlovské funkce chop(), která z řetězce odstraňuje poslední znak.

Viz také: trim(),
ltrim(),
rtrim() a
chop().

Předcházející | Domů | Další
bin2hex | Nahoru | chr


chr

(PHP 3, PHP 4 , PHP 5)

chr -- Vrátit určitý znak

Popis

string chr ( int ascii)

Vrací řetězec jednoho znaku obsahující znak specifikovaný argumentem ascii.

Příklad 1. Ukázka chr()

$str .= chr (27); /* přidá escape znak na konec $str */

/* Toto je většinou užitečnější */

$str = sprintf ("Řetězec konči escape znakem: %c", 27);
Tato funkce se doplňuje s funkcí ord(). Viz také: sprintf() s formátovacím řetězcem %c.

Předcházející | Domů | Další
chop | Nahoru | chunk_split


chunk_split

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

chunk_split -- Rozdělit řetězec na menší části

Popis

string chunk_split ( string string [, int chunklen [, string end]])

Dá se použít k rozdělení řetězce na menší části, což může být užitečné např. při uvádění výstupu z base64_encode do souladu se sémantikou RFC 2045. Každých chunklen (defaultně 76) znaků vloží řetězec end (defaultně "\r\n"). Vrací nový řetězec, původní zůstává beze změny.

Příklad 1. Ukázka chunk_split()

# naformátuje $data s použitím RFC 2045 sémantiky

$new_string = chunk_split (base64_encode($data));
Tato funkce je výrazně rychlejší než ereg_replace().

Poznámka: Tato funkce byla přidána v 3.0.6.

Předcházející | Domů | Další
chr | Nahoru | convert_cyr_string


convert_cyr_string

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

convert_cyr_string -- Převést z jedné znakové sady Azbuky do jiné

Popis

string convert_cyr_string ( string str, string from, string to)

Tato funkce převede daný řetězec z jedné znakové sady azbuky do jiné. Argumenty from a to jsou jednotlivé znaky, které představují zdrojovou a cílovou znakovou sadu Azbuky. Podporované typy jsou:

  • k - koi8-r

  • w - windows-1251

  • i - iso8859-5

  • a - x-cp866

  • d - x-cp866

  • m - x-mac-cyrillic

Předcházející | Domů | Další
chunk_split | Nahoru | count_chars


count_chars

(PHP 4 , PHP 5)

count_chars -- Vrátit informace o znacích použitých v řetězci

Popis

mixed count_chars ( string string [, int mode])

Počítá počet výskytů všech byte hodnot (0..255) v string a vrací je různými způsoby. Volitelný argument Mode má defaultní hodnotu 0. V závislosti na mode vrací count_chars() jednu z následujících možností:

  • 0 - pole s klíči tvořenými byte hodnotami a hodnotami tvořenými četností každého bytu.

  • 1 - stejné jako 0, ale vrací pouze byte hodnoty s četností vyšší než nula.

  • 2 - stejné jako 0, ale vrací pouze byte hodnoty s četností rovnou nule.

  • 3 - vrací řetězec obsahující všechny použité byte hodnoty.

  • 4 - vrací řetězec obsahující všechny nepoužité byte hodnoty.

Předcházející | Domů | Další
convert_cyr_string | Nahoru | crc32


crc32

(PHP 4 >= 4.0.1, PHP 5)

crc32 -- Spočítat kontrolní součet crc32 řetězce

Popis

int crc32 ( string str)

Generuje 32bitový polynomický kontrolní součet pro str. Obvykle se používá ke kontrole integrity přenášených dat.

Viz také: md5().

Předcházející | Domů | Další
count_chars | Nahoru | crypt


crypt

(PHP 3, PHP 4 , PHP 5)

crypt -- Jednosměrné zašifrování řetězce

Popis

string crypt ( string str [, string salt])

crypt() zašifruje řetězec pomocí standardní Unixovské šifrovací metody DES nebo alternativního algoritmu dostupného v operačním systému. Argumenty jsou řetězec k zašifrování a volitelný dvouznakový řetězec salt, na kterém se šifrování založí. Více informací naleznete v Unixovské man stránce vaší crypt funkce.

Není-li uveden salt, PHP jej náhodně vygeneruje.

Některé operační systémy podporují více typů šifrování. Někdy se standardní DES šifrování nahrazuje šifrovacím algoritmem založeným na MD5. Typ šifrování se zvolí podle argumentu salt. PHP zjistí pči instalaci schopnosti funkce crypt a bude přijímat salt pro další typy šifrování. Při absenci salt PHP automaticky vygeneruje standardní dvouznakový DES salt a v případě, že je výchozím typem šifrování na daném systému MD5, vygeneruje náhodný salt kompatibilní s MD5. PHP vytváří konstantu CRYPT_SALT_LENGTH, která vám řekne, jestli se na váš systém hodí běžný dvouznakový salt nebo delší dvanáctiznakový MD5 salt.

Používáte-li poskytnutý salt, měli byste si být vědomi toho, že se generuje jen jednou. Pokud tuto funkci voláte rekurzivně, může to mít účinek na vzhled a bezpečnost.

U standardního DES šifrování crypt() vrací salt jako první dva znaky výstupu. K tomu také používá jen prvních osum znaků z str, takže delší řetězce, ktewré začínají osmi stejnými znaky budou generovat i stejný výsledek (když je použit stejný salt).

Na systémech, kde funkce crypt()() podporuje více typů šifrování se následující konstanty nastaví na 0 nebo 1 podle toho, zda je daný typ dostupný:

  • CRYPT_STD_DES - Standardní DES šifrování s dvouznakovým SALT

  • CRYPT_EXT_DES - Rozšířené DES šifrování s devítiznakovým SALT

  • CRYPT_MD5 - MD5 šifrování s dvanáctiznakovým SALT začínajícím $1$

  • CRYPT_BLOWFISH - Rozšířené DES šifrování s šestnáctiznakovým SALT začínajícím $2$

Poznámka: Neexistuje žádná decrypt funkce, protože crypt() používá jednosměrný algoritmus.

Příklad 1. crypt() příklad

<?php
$heslo = crypt("MePrvniHeslo"); # necháme vygenerovat salt
# Mohli byste narazit na problémy při úplném výsledku crypt() jako salt pro
# porovnání hesla, pokud jsou použity rozdílné šifrovací algoritmy. (jak bylo
# řečeno výše, standardní DES šifrování používá dvouznakový salt, ale MD5
# šifrování používá dvanáctiznakový.
if (crypt($uziv_vstup, $heslo) == $heslo) {
   echo "Heslo ověřeno!";
}
?>

Dále také md5() a Mcrypt příkazy.

Předcházející | Domů | Další
crc32 | Nahoru | echo


echo

(PHP 3, PHP 4, PHP 5 )

echo -- Vytisknout jeden nebo více řetězců

Popis

echo ( string arg1 [, string argn...])

Vytiskne všechny parametry.

echo() vlastně není funkce (je to jazykový konstrukt), takže u něj nemusíte používat závorky. Opravdu, pokud byste potřebovali vytisknout více než jeden parametr, nemohli byste dokonce závorky vůbec použít. Proto nelze použít echo() ani pro proměnnou funkci, ovšem místo toho můžete použít funkci print().

Příklad 1. Ukázka echo()

<?php
echo "Nazdar světe";

echo "Toto zabírá
několik řádků. Konce řádků se
vytisknou také";

echo "Toto zabírá\nněkolik řádků. Konce řádků se\nvytisknou také.";

echo "Speciální znaky předřazené zpětnými lomítky lze použít i v řetězci \"jako toto\".";

//Proměnné lze použít i uvnitř příkazu echo
$foo = "foobar";
$bar = "barbaz";

echo "foo je $foo"; // foo je foobar

// Použitím jednoduchých uvozovek vypíšte jméno proměnné, nikoli její hodnotu
echo 'foo je $foo'; // foo je $foo

// Jestliže nepotřebujete vypisovat další znaky, můžete rovnou uvést jen názvy proměnných
echo $foo;          // foobar
echo $foo, $bar;     // foobarbarbaz

echo <<<END
Toto používá "dokumentovou" syntaxi pro víceřádkový výstup
s vložnými $prommenymi. Uvědomte si, že ukončovací řetězec
se středníkem musí být na začátku nového řádku (bez mezer či
tabulátorů).
END;

// Protože echo není funkce, následující kód je neplatný
($some_var) ? echo('true'): echo('false');

// Nicméně tento příklad fungovat bude
($some_var) ? print('true'): print('false'); // print je funkce
echo $some_var ? 'true': 'false'; // příkaz musíte uvést předtím
?>

echo() také má zkrácenou syntaxi, kdy je možné následně za otvíracím php tagem použít jen znak rovná se.

Mám <?=$foo?> foo.

Poznámka: Tato zkrácená syntaxe bude fungovat pouze jsou-li povoleny zkrácené otvírací php tagy; short_open_tag je nastaveno na "on".

Viz také:
print(),
printf() a
flush().

Předcházející | Domů | Další
crypt | Nahoru | explode


explode

(PHP 3, PHP 4 , PHP 5)

explode -- Rozděluje řetězec jiným řetězcem

Popis

array explode ( string separator, string string [, int limit])

Vrací pole řetězců, z nichž každý je částí argumentu string vzniklý jeho rozdělením na hranicích tvořených řetězcem separator. Pokud je definován limit, vrácené pole bude obsahovat maximálně limit prvků, a poslední prvek bude obsahovat celý zbytek parametru string.

Poznámka: Je-li separator prázdný řetězec (""), explode() vrátí FALSE. Pokud separator obsahuje hodnotu, která není obsažena v string, pak explode() vrátí pole obsahující celý string.

I když implode() může z historických důvodů přijímat argumenty v obou možných pořadích, explode() nemůže. Musíte zajistit, aby byl argument separator před argumentem string.

Parametr limit byl přidán v PHP 4.0.1

Příklad 1. Ukázka explode()

<?php
// Příklad 1
$pizza  = "díl1 díl2 díl3 díl4 díl5 díl6";
$dily = explode(" ", $pizza);
echo $dily[0]; // díl1
echo $dily[1]; // díl2

// Příklad 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user; // foo
echo $pass; // *

?>

Viz také
preg_split(),
spliti(),
split() a
implode().

Předcházející | Domů | Další
echo | Nahoru | fprintf


fprintf

(PHP 5)

fprintf -- Write a formatted string to a stream

Description

int fprintf ( resource handle, string format [, mixed args])

Write a string produced according to the formatting string format to the stream resource specified by handle..

The format string is composed of zero or more directives: ordinary characters (excluding %) that are copied directly to the result, and conversion specifications, each of which results in fetching its own parameter. This applies to fprintf(), sprintf(), and printf().

Each conversion specification consists of a percent sign (%), followed by one or more of these elements, in order:

  1. An optional padding specifier that says what character will be used for padding the results to the right string size. This may be a space character or a 0 (zero character). The default is to pad with spaces. An alternate padding character can be specified by prefixing it with a single quote ('). See the examples below.

  2. An optional alignment specifier that says if the result should be left-justified or right-justified. The default is right-justified; a - character here will make it left-justified.

  3. An optional number, a width specifier that says how many characters (minimum) this conversion should result in.

  4. An optional precision specifier that says how many decimal digits should be displayed for floating-point numbers. This option has no effect for other types than float. (Another function useful for formatting numbers is number_format().)

  5. A type specifier that says what type the argument data should be treated as. Possible types:

    % - a literal percent character. No argument is required.
    b - the argument is treated as an integer, and presented as a binary number.
    c - the argument is treated as an integer, and presented as the character with that ASCII value.
    d - the argument is treated as an integer, and presented as a (signed) decimal number.
    u - the argument is treated as an integer, and presented as an unsigned decimal number.
    f - the argument is treated as a float, and presented as a floating-point number.
    o - the argument is treated as an integer, and presented as an octal number.
    s - the argument is treated as and presented as a string.
    x - the argument is treated as an integer and presented as a hexadecimal number (with lowercase letters).
    X - the argument is treated as an integer and presented as a hexadecimal number (with uppercase letters).

See also: printf(),
sprintf(),
sscanf(), fscanf(),
vsprintf(), and
number_format().

Examples

Příklad 1. sprintf(): zero-padded integers

<?php
$isodate = sprintf("%04d-%02d-%02d", $year, $month, $day);
?>

Příklad 2. sprintf(): formatting currency

<?php
$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
// echo $money will output "123.1";
$formatted = sprintf("%01.2f", $money);
// echo $formatted will output "123.10"
?>

Předcházející | Domů | Další
explode | Nahoru | get_html_translation_table


get_html_translation_table

(PHP 4 , PHP 5)

get_html_translation_table -- Vrací překladovou tabulku používanou v htmlspecialchars() a htmlentities()

Popis

string get_html_translation_table ( int table [, int quote_style])

get_html_translation_table() vrací překladovou tabulku, která se interně používá ve funkcích htmlspecialchars() a htmlentities(). Dvě nové konstanty (HTML_ENTITIES, HTML_SPECIALCHARS) vám umožňují určit, kterou tabulku chcete. A stejně jako u funkcí htmlspecialchars() a htmlentities() můžete případně určit quote_style se kterým pracujete. Defaultní hodnota je ENT_COMPAT mód. Viz popis těchto módů u htmlspecialchars().

Příklad 1. Ukázka na překladovou tabulku

$trans = get_html_translation_table (HTML_ENTITIES);
$str = "Hallo & <Frau> & Krämer";
$encoded = strtr ($str, $trans);
Proměnná $encoded teď obsahuje: "Hallo &<amp>; &<lt>;Frau&<gt>; &<amp>; Kr&<auml>;mer".

Skvělé je, že pomocí array_flip() můžete změnit směr překladu.

$trans = array_flip ($trans);
$original = strtr ($str, $trans);

Obsahem $original je: "Hallo & <Frau> & Krämer".

Poznámka: Tato funkce byla přidána v PHP 4.0.

Viz také: htmlspecialchars(),
htmlentities(),
strtr() a
array_flip().

Předcházející | Domů | Další
fprintf | Nahoru | hebrev


hebrev

(PHP 3, PHP 4 , PHP 5)

hebrev -- Převést logický Hebrejský text na vizuální text

Popis

string hebrev ( string hebrew_text [, int max_chars_per_line])

Volitelný argument max_chars_per_line indikuje maximální počet znaků na řádek výstupu. Funkce se snaží nerozdělovat slova.

Viz také: hebrevc().

Předcházející | Domů | Další
get_html_translation_table | Nahoru | hebrevc


hebrevc

(PHP 3, PHP 4 , PHP 5)

hebrevc -- Převést logický Hebrejský text na vizuální text s konverzí konců řádků

Popis

string hebrevc ( string hebrew_text [, int max_chars_per_line])

Tato funkce se podobá hebrev() s tím rozdílem, že převádí konce řádků (\n) na "<br>\n". Volitelný argument max_chars_per_line indikuje maximální počet znaků na řádek výstupu. Funkce se snaží nerozdělovat slova.

Viz také: hebrev().

Předcházející | Domů | Další
hebrev | Nahoru | html_entity_decode


html_entity_decode

(PHP 4 >= 4.3.0, PHP 5)

html_entity_decode -- Convert all HTML entities to their applicable characters

Description

string html_entity_decode ( string string [, int quote_style [, string charset]])

html_entity_decode() is the opposite of htmlentities() in that it converts all HTML entities to their applicable characters from string.

The optional second quote_style parameter lets you define what will be done with 'single' and "double" quotes. It takes on one of three constants with the default being ENT_COMPAT:

Tabulka 1. Available quote_style 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.

The ISO-8859-1 character set is used as default for the optional third charset. This defines the character set used in conversion.

Following character sets are supported in PHP 4.3.0 and later.

Tabulka 2. Supported charsets

Charset | Aliases | Description
ISO-8859-1 | ISO8859-1 | Western European, Latin-1
ISO-8859-15 | ISO8859-15 | Western European, Latin-9. Adds the Euro sign, French and Finnish letters missing in Latin-1(ISO-8859-1).
UTF-8 |  | ASCII compatible multi-byte 8-bit Unicode.
cp866 | ibm866, 866 | DOS-specific Cyrillic charset. This charset is supported in 4.3.2.
cp1251 | Windows-1251, win-1251, 1251 | Windows-specific Cyrillic charset. This charset is supported in 4.3.2.
cp1252 | Windows-1252, 1252 | Windows specific charset for Western European.
KOI8-R | koi8-ru, koi8r | Russian. This charset is supported in 4.3.2.
BIG5 | 950 | Traditional Chinese, mainly used in Taiwan.
GB2312 | 936 | Simplified Chinese, national standard character set.
BIG5-HKSCS |  | Big5 with Hong Kong extensions, Traditional Chinese.
Shift_JIS | SJIS, 932 | Japanese
EUC-JP | EUCJP | Japanese

Poznámka: Any other character sets are not recognized and ISO-8859-1 will be used instead.

Příklad 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

// For users prior to PHP 4.3.0 you may do this:
function unhtmlentities($string)
{
    $trans_tbl = get_html_translation_table(HTML_ENTITIES);
    $trans_tbl = array_flip($trans_tbl);
    return strtr($string, $trans_tbl);
}

$c = unhtmlentities($a);

echo $c; // I'll "walk" the <b>dog</b> now

?>

Poznámka: 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 characterset.

See also htmlentities(),
htmlspecialchars(),
get_html_translation_table(),
and urldecode().

Předcházející | Domů | Další
hebrevc | Nahoru | htmlentities


htmlentities

(PHP 3, PHP 4 , PHP 5)

htmlentities -- Převést všechny použitelné znaky na HTML entity

Popis

string htmlentities ( string string [, int quote_style [, string charset]])

Tato funkce je ve všem shodná s htmlspecialchars() kromě toho, že na HTML entity se převedou všechny znaky, které mají odpovídající entity. Stejně jako htmlspecialchars() přijímá volitelný druhý argument, který indikuje, co se má stát s jednoduchými a dvojitými uvozovkami. ENT_COMPAT (default) převede pouze dvojité uvozovky, ENT_QUOTES převede dvojité i jednoduché uvozovky, a ENT_NOQUOTES ponechá jednoduché i dvojité uvozovky bez konverze.

V současnosti se jako výchozí znaková sada používá ISO-8859-1. Volitelný druhý argument byl přidán v PHP 3.0.17 a PHP 4.0.3.

Stejně jako htmlspecialchars() lze pomocí třetího parametru nastavit znakovou sadu, která má být použita při konverzi řetězce. Tento třetí parametr byl přidán v PHP 4.1.0.

Neexistuje žádná zpětná funkce. Každopádně si můžete vytvořit vlastní. Následuje příklad jak na to.

Příklad 1. Zpětná htmlentities()

<?php
function unhtmlentities ($string)
{
    $trans_tbl = get_html_translation_table (HTML_ENTITIES);
    $trans_tbl = array_flip ($trans_tbl);
    return strtr ($string, $trans_tbl);
}
?>

Viz také: htmlspecialchars() a nl2br().

Předcházející | Domů | Další
html_entity_decode | Nahoru | htmlspecialchars


htmlspecialchars

(PHP 3, PHP 4 , PHP 5)

htmlspecialchars -- Převést zvláštní znaky na HTML entity

Popis

string htmlspecialchars ( string string [, int quote_style [, string charset]])

Některé znaky mají v HTML zvláštní význam, a pokud si mají zachovat běžný význam, měly by být reprezentovány HTML entitami. Tato funkce vrací řetězec, ve kterém došlo k některým z těchto konverzí; provádějí se ty překlady, které jsou v každodenním programování pro web nejužitečnější. Pokud požadujete překlad všech znakových entit HTML, použijte htmlentities().

Tato funkce je užitečná, pokud se chcete chránit před případným výskytem HTML v textu dodaném uživateli, například u aplikací typu kniha hostů nebo diskusní skupina. Volitelný druhý argument, quote_style, určuje, co se má stát s jednoduchými a dvojitými uvozovkami. Defaultní mód, ENT_COMPAT, je zpětně kompatibilní mód, konvertuje pouze dvojité uvozovky a jednoduché uvozovky ponechává nepřeložené. Pokud zadáte ENT_QUOTES, přeloží se jednoduché i dvojité uvozovky, a pokud zadáte ENT_NOQUOTES, oba druhy zůstanou bez překladu.

Dochází k těmto překladům:

  • '&' (ampersand) se stává '&amp;'

  • '"' (dvojitá uvozovka) se stává '&quot;' when ENT_NOQUOTES is not set.

  • ''' (jednoduchá uvozovka) se stává '&#039;' only when ENT_QUOTES is set.

  • '<' (menší než) se stává '&lt;'

  • '>' (větší než) se stává '&gt;'

Příklad 1. Ukázka htmlspecialchars()

<?php
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new; // &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;
?>

Poznámka: tato funkce provádí pouze výše uvedené překlady. Kompletní překlad entit viz htmlentities(). Volitelný druhý argument byl přidán v PHP 3.0.17 a PHP 4.0.3.

Třetí parametr charset definuje kódovou stránku použitou pro převod. Výchozí kódová stránka je ISO-8859-1. Třetí parametr je k dispozici od PHP 4.1.0.

Viz také get_html_translation_table(),
strip_tags(),
htmlentities() a nl2br().

Předcházející | Domů | Další
htmlentities | Nahoru | implode


implode

(PHP 3, PHP 4 , PHP 5)

implode -- Spojit prvky pole pomocí řetězce

Popis

string implode ( string glue, array pieces)

Vrací řetězec obsahující řetězcovou reprezentaci všech prvků pole v původním pořadí s řetězcem glue mezi každými dvěma prvky.

Příklad 1. Ukázka implode()

<?php

$array = array('příjmení', 'e-mail', 'telefon');
$oddelene_carkami = implode(",", $array);

echo $oddelene_carkami; // příjmení,e-mail,telefon

?>

Poznámka: implode() může z historických důvodů přijímat argumenty v obou možných pořadích. Kvůli konzistenci s explode() se ale doporučuje používat dokumentované pořadí argumentů.

Poznámka: Od PHP 4.3.0 je parametr glue volitelný a jeho výchozí hodnota je prázdný řetězec (''). Toto použití však nedoporučujeme, pro zajištění kompatibility se staršími verzemi je lepší vždy používat dva parametry.

Viz také explode() a split().

Předcházející | Domů | Další
htmlspecialchars | Nahoru | join


join

(PHP 3, PHP 4 , PHP 5)

join -- Spojit prvky pole pomocí řetězce

Popis

string join ( string glue, array pieces)

Funkce join() je alias k implode(), a je ve všech ohledech stejná.

Viz také: explode(),
implode() a
split().

Předcházející | Domů | Další
implode | Nahoru | levenshtein


levenshtein

(PHP 3>= 3.0.17, PHP 4 >= 4.0.1, PHP 5)

levenshtein -- Spočítat XXX Levenshteinovu vzdálenost mezi dvěma řetězci

Popis

int levenshtein ( string str1, string str2)

int levenshtein ( string str1, string str2, int cost_ins, int cost_rep, int cost_del)

int levenshtein ( string str1, string str2, function cost)

Tato funkce vrací XXX Levenshtein-Distance mezi předanými řetězci nebo -1, pokud délka jednoho z předaných řetězců přesáhne omezení 255 znaků (255 by mělo být pro běžná porovnání víc než dost, a nikdo se zdravým rozumem nebude v PHP dělat genetickou analýzu).

Levenshteinova vzdálenost se definuje jako minimální počet znaku, které musíte nahradit, vložit nebo smazat, abyste změnili str1 na str2. Složitost tohoto algoritmu je O(m*n), kde n a m jsou délky str1 a str2 (celkem slušné v porovnání se similar_text(), který je O(max(n,m)**3), ale i tak drahé).

Ve své nejjednodušší podobě tato funkce pouze vezme dva řetězce jako argumenty a spočítá počet vložení, nahrazení a smazání nutných k transformaci str1 na str2.

Druhá varianta přijme tři další argumenty, které definují náklady na operace vložení, nahrazeni a smazání. Tato varianta je všeobecnější a přizpůsobivější než varianta první, ale ne tak výkonná.

Třetí varianta (zatím neimplementovaná) bude nejvšeobecnější a nejpřizpůsobivější, ale také nejpomalejší alternativou. Bude volat uživatelskou funkci, která určí náklady na všechny možné operace.

Tato uživatelská funkce se bude volat s následujícími argumenty:

  • operatce, která se má provést: 'I', 'R' or 'D'

  • původní znak v řetězci 1

  • původní znak v řetězci 2

  • pozice v řetězci 1

  • pozice v řetězci 2

  • znaky zbývající v řetězci 1

  • znaky zbývající v řetězci 2

Tato uživatelská funkce musí vrátit kladné celé číslo vyčíslující náklady na tuto konkrétní operaci, ale může se rozhodnout použít pouze některé z přijatých argumentů.

Tento přístup nabízí možnost zohlednit důležitost určitých symbolů (znaků) a/nebo rozdíly mezi nimi, či dokonce kontext, ve kterém se vyskytují při určování nákladů na vložení, změnu nebo smazání, ale za cenu ztráty všech optimalizací využití CPU registru a XXX cache misses, které byly zapracovány do předchozích dvou variant.

Viz také: soundex(),
similar_text() a
metaphone().

Předcházející | Domů | Další
join | Nahoru | localeconv


localeconv

(PHP 4 >= 4.0.5, PHP 5)

localeconv -- Get numeric formatting information

Description

array localeconv ( void )

Returns an associative array containing localized numeric and monetary formatting information.

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 grouping fields contain arrays that define the way numbers should be grouped. For example, the grouping field for the en_US locale, 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.

Příklad 1. localeconv() example

<?php
setlocale(LC_ALL, "en_US");

$locale_info = localeconv();

echo "<pre>\n";
echo "--------------------------------------------\n";
echo "  Monetary information for current locale:  \n";
echo "--------------------------------------------\n\n";

echo "int_curr_symbol:   {$locale_info["int_curr_symbol"]}\n";
echo "currency_symbol:   {$locale_info["currency_symbol"]}\n";
echo "mon_decimal_point: {$locale_info["mon_decimal_point"]}\n";
echo "mon_thousands_sep: {$locale_info["mon_thousands_sep"]}\n";
echo "positive_sign:     {$locale_info["positive_sign"]}\n";
echo "negative_sign:     {$locale_info["negative_sign"]}\n";
echo "int_frac_digits:   {$locale_info["int_frac_digits"]}\n";
echo "frac_digits:       {$locale_info["frac_digits"]}\n";
echo "p_cs_precedes:     {$locale_info["p_cs_precedes"]}\n";
echo "p_sep_by_space:    {$locale_info["p_sep_by_space"]}\n";
echo "n_cs_precedes:     {$locale_info["n_cs_precedes"]}\n";
echo "n_sep_by_space:    {$locale_info["n_sep_by_space"]}\n";
echo "p_sign_posn:       {$locale_info["p_sign_posn"]}\n";
echo "n_sign_posn:       {$locale_info["n_sign_posn"]}\n";
echo "</pre>\n";
?>

The constant CHAR_MAX is also defined for the use mentioned above.

See also setlocale().

Předcházející | Domů | Další
levenshtein | Nahoru | ltrim


ltrim

(PHP 3, PHP 4 , PHP 5)

ltrim -- Odstranit netisknutelné znaky ze začátku řetězce

Popis

string ltrim ( string str)

Tato funkce ořízne netisknutelné znaky ze začátku řetězce a vrací oříznutý řetězec. Netisknutelné znaky, které se v současnosti odstraňují, jsou: "\n", "\r", "\t", "\v", "\0", a prostá mezera.

Viz také: chop(),
rtrim() a
trim().

Předcházející | Domů | Další
localeconv | Nahoru | md5_file


md5_file

(PHP 4 >= 4.2.0, PHP 5)

md5_file -- Calculates the md5 hash of a given filename

Description

string md5_file ( string filename [, bool raw_output])

Calculates the MD5 hash of the specified filename using the RSA Data Security, Inc. MD5 Message-Digest Algorithm, and returns that hash. The hash is a 32-character hexadecimal number. If the optional raw_output is set to TRUE, then the md5 digest is instead returned in raw binary format with a length of 16.

Poznámka: The optional raw_output parameter was added in PHP 5.0.0 and defaults to FALSE

This function has the same purpose of the command line utility md5sum.

See also md5(), crc32(), and sha1_file().

Předcházející | Domů | Další
ltrim | Nahoru | md5


md5

(PHP 3, PHP 4 , PHP 5)

md5 -- Spočítat MD5 hash řetězce

Popis

string md5 ( string str [, bool raw_output])

Spočítá MD5 hash argumentu str pomocí MD5 Message-Digest Algoritmu společnosti RSA Data Security, Inc. a vrátí tento hash. Pokud je volitelný parametr raw_output nastaven na TRUE, je vrácen md5 otisk v binárním formátu délky 16 bytů.

Poznámka: Volitelný parametr raw_output byl přidán ve verzi PHP 5.0.0 a jeho výchozí hodnota je FALSE

Příklad 1. Příklad md5()

<?php
$str = 'apple';

if (md5($str) === '1f3870be274f6c49b3e31a0c6728957f') {
    echo "Přejete si zelené nebo červené jablko?";
    exit;
}
?>

Viz také crc32(), md5_file() a sha1().

Předcházející | Domů | Další
md5_file | Nahoru | metaphone


metaphone

(PHP 4 , PHP 5)

metaphone -- Spočítat metaphone klíč řetězce

Popis

string metaphone ( string str)

Spočítá metaphone klíč argumentu str.

metaphone(), podobně jako soundex(), vytvoří stejný klíč pro podobně znějící slova. Je přesnější než soundex(), protože zná základní pravidla anglické výslovnosti. Metaphone klíče mají proměnlivou délku.

Metaphone vyvinul Lawrence Philips <lphilips@verity.com>. Je popsáno v ["Practical Algorithms for Programmers", Binstock & Rex, Addison Wesley, 1995].

Poznámka: Tato funkce byla přidána v PHP 4.0.

Předcházející | Domů | Další
md5 | Nahoru | money_format


money_format

(PHP 4 >= 4.3.0, PHP 5)

money_format -- Formats a number as a currency string

Description

string money_format ( string format, float number)

money_format() returns a formatted version of number. This function wraps the C library function strfmon(), with the difference that this implementation converts only one number at a time.

Poznámka: The function money_format() is only defined if the system has strfmon capabilities. For example, Windows does not, so money_format() is undefined in Windows.

The format specification consists of the following sequence:

  • a % character

  • optional flags

  • optional field width

  • optional left precision

  • optional right precision

  • a required conversion character

Flags. One or more of the optional flags below can be used:

=f

The character = followed by a a (single byte) character f to be used as the numeric fill character. The default fill character is space.

^

Disable the use of grouping characters (as defined by the current locale).

+ or (

Specify the formatting style for positive and negative numbers. If + is used, the locale's equivalent for + and - will be used. If ( is used, negative amounts are enclosed in parenthesis. If no specification is given, the default is +.

!

Suppress the currency symbol from the output string.

-

If present, it will make all fields left-justified (padded to the right), as opposed to the default which is for the fields to be right-justified (padded to the left).

Field width.

w

A decimal digit string specifying a minimum field width. Field will be right-justified unless the flag - is used. Default value is 0 (zero).

Left precision.

#n

The maximum number of digits (n) expected to the left of the decimal character (e.g. the decimal point). It is used usually to keep formatted output aligned in the same columns, using the fill character if the number of digits is less than n. If the number of actual digits is bigger than n, then this specification is ignored.

If grouping has not been suppressed using the ^ flag, grouping separators will be inserted before the fill characters (if any) are added. Grouping separators will not be applied to fill characters, even if the fill character is a digit.

To ensure alignment, any characters appearing before or after the number in the formatted output such as currency or sign symbols are padded as necessary with space characters to make their positive and negative formats an equal length.

Right precision .

.p

A period followed by the number of digits (p) after the decimal character. If the value of p is 0 (zero), the decimal character and the digits to its right will be omitted. If no right precision is included, the default will dictated by the current local in use. The amount being formatted is rounded to the specified number of digits prior to formatting.

Conversion characters .

i

The number is formatted according to the locale's international currency format (e.g. for the USA locale: USD 1,234.56).

n

The number is formatted according to the locale's national currency format (e.g. for the de_DE locale: DM1.234,56).

%

Returns the % character.

Poznámka: The LC_MONETARY category of the locale settings, affects the behavior of this function. Use setlocale() to set to the appropriate default locale before using this function.

Characters before and after the formatting string will be returned unchanged.

Příklad 1. money_format() Example

We will use different locales and format specifications to illustrate the use of this function.

<?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";
// L. 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, withouth 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";
// DEM 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)

?>

See also: setlocale(),
number_format(),sprintf(),
printf() and sscanf().

Předcházející | Domů | Další
metaphone | Nahoru | nl_langinfo


nl_langinfo

(PHP 4 >= 4.1.0, PHP 5)

nl_langinfo -- Query language and locale information

Description

string nl_langinfo ( int item)

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.

If item is not valid, FALSE will be returned.

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.

Tabulka 1. 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.

Poznámka: Tato funkce není implementována na platformách Windows.

See also setlocale() and localeconv().

Předcházející | Domů | Další
money_format | Nahoru | nl2br


nl2br

(PHP 3, PHP 4 , PHP 5)

nl2br -- Před všechny konce řádků v řetězci vloží HTML konce řádků

Popis

string nl2br ( string string)

Vrací string, ve kterém je před každý konec řádku vložena značka '<br />'.

Poznámka: Od PHP 4.0.5, je funkce nl2br() XHTML způsobilá. Všechny verze před 4.0.5 vrátí string se značkou '<br>' vloženou před konce řádků místo '<br />'.

Příklad 1. Použití nl2br()

<?php
echo nl2br("foo není\n bar");
?>

Vypíše:

foo není<br />
 bar

Viz také htmlspecialchars(),
htmlentities(),
wordwrap() a
str_replace().

Předcházející | Domů | Další
nl_langinfo | Nahoru | number_format


number_format

(PHP 3, PHP 4 , PHP 5)

number_format -- Format a number with grouped thousands

Description

string number_format ( float number [, int decimals])

string number_format ( float number, int decimals, string dec_point, string thousands_sep)

number_format() returns a formatted version of number. This function accepts either one, two or four parameters (not three):

If only one parameter is given, number will be formatted without decimals, but with a comma (",") between every group of thousands.

If two parameters are given, number will be formatted with decimals decimals with a dot (".") in front, and a comma (",") between every group of thousands.

If all four parameters are given, number will be formatted with decimals decimals, dec_point instead of a dot (".") before the decimals and thousands_sep instead of a comma (",") between every group of thousands.

Only the first character of thousands_sep is used. For example, if you use foo as thousands_sep on the number 1000, number_format() will return 1f000.

Příklad 1. number_format() Example

For instance, French notation usually use two decimals, comma (',') as decimal separator, and space (' ') as thousand separator. This is achieved with this line :

<?php

$number = 1234.56;

// english notation (default)
$english_format_number = number_format($number);
// 1,234

// French notation
$nombre_format_francais = number_format($number, 2, ',', ' ');
// 1 234,56

$number = 1234.5678;

// english notation without thousands seperator
$english_format_number = number_format($number, 2, '.', '');
// 1234.57

?>

See also: sprintf(), printf() and sscanf().

Předcházející | Domů | Další
nl2br | Nahoru | ord


ord

(PHP 3, PHP 4 , PHP 5)

ord -- Vrátit ASCII hodnotu znaku

Popis

int ord ( string string)

Vrací ASCII hodnotu prvního znaku v string. Tato funkce doplňuje chr().

Příklad 1. Ukázka ord()

if (ord ($str) == 10) {
    echo "Prvním znakem \$str je line feed.\n";
}

Viz také: chr().

Předcházející | Domů | Další
number_format | Nahoru | parse_str


parse_str

(PHP 3, PHP 4 , PHP 5)

parse_str -- Rozparsovat řetězec do proměnných

Popis

void parse_str ( string str [, array arr])

Rozparsuje řetězec jako kdyby to byl query-string předaný v URL a definuje příslušné proměnné v současném rozsahu platnosti. Pokud je předán druhý argument arr, proměnné se místo toho uloží do této proměnné jako pole.

Poznámka: Volitelný druhý parametr je k dispozici od PHP 4.0.3.

Poznámka: Pro získání aktuálního QUERY_STRING, možná budete muset použít proměnnou $_SERVER['QUERY_STRING']. Možná vás také bude zajímat kapitola proměnné mimo PHP.

Příklad 1. Použití parse_str()

<?php
$str = "first=value&arr[]=foo+bar&arr[]=baz";
parse_str($str);
echo $first;  // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz

parse_str($str, $output);
echo $output['first'];  // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz

?>

Viz také parse_url(), pathinfo(), set_magic_quotes_runtime() a urldecode().

Předcházející | Domů | Další
ord | Nahoru | print


print

(PHP 3, PHP 4, PHP 5 )

print -- Vytisknout řetězec

Popis

print ( string arg)

Vytiskne arg.

Viz také: echo(),
printf() a
flush().

Předcházející | Domů | Další
parse_str | Nahoru | printf


printf

(PHP 3, PHP 4 , PHP 5)

printf -- Vytisknout formátovaný řetězec

Popis

int printf ( string format [, mixed args])

Vytvoří výtup podle argumentu format, který je popsán v dokumentaci sprintf().

Viz také: print(),
sprintf(),
sscanf(),
fscanf() a
flush().

Předcházející | Domů | Další
print | Nahoru | quoted_printable_decode


quoted_printable_decode

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

quoted_printable_decode -- Převést quoted-printable řetězec na osmibitový řetězec

Popis

string quoted_printable_decode ( string str)

Tato funkce vrací osmibitový binární řetězec odpovídající dekódovanému quoted printable řetězci. Tato funkce je podobná imap_qprint() s tou výjimkou, že tato funkce nevyžaduje IMAP modul.

Předcházející | Domů | Další
printf | Nahoru | quotemeta


quotemeta

(PHP 3, PHP 4 , PHP 5)

quotemeta -- Opatřit lomítky metaznaky

Popis

string quotemeta ( string str)

Vrací verzi str se zpětným lomítkem před všemi výskyty následujících znaků:
. \\ + * ? [ ^ ] ( $ )

Viz také: addslashes(),
htmlentities(),
htmlspecialchars(),
nl2br() a
stripslashes().

Předcházející | Domů | Další
quoted_printable_decode | Nahoru | rtrim


rtrim

(PHP 3, PHP 4 , PHP 5)

rtrim -- Odstranit netisknutelné znaky z konce řetězce

Popis

string rtrim ( string str)

Vrací předaný řetězec bez netisknutelných znaků (vč. konců řádku) na konci. Toto je alias k chop().

Příklad 1. Ukázka rtrim()

$trimmed = rtrim ($line);

Viz také: trim(),
ltrim() a
rtrim().

Předcházející | Domů | Další
quotemeta | Nahoru | setlocale


setlocale

(PHP 3, PHP 4 , PHP 5)

setlocale -- Set locale information

Popis

string setlocale ( string category, string locale)

category je řetězec určující kategorii funkcí ovlivněných nastavením locale:

  • LC_ALL pro všechny níže uvedené kategorie

  • LC_COLLATE pro porovnávání řetězců - v PHP v současnosti neimplementováno

  • LC_CTYPE pro klasifikaci a konverzi znaků, např. strtoupper()

  • LC_MONETARY pro localeconv() - v PHP v současnosti neimplementováno

  • LC_NUMERIC pro oddělovač desetinných míst

  • LC_TIME pro formátování data a času pomocí strftime()

Pokud je locale prázný řetězec (""), názvy locale se nastaví na hodnoty systémových proměnných se stejnými jmény jako mají výše uvedené kategorie, nebo z "LANG".

Pokud je locale nula nebo "0", locale se nezmění, pouze se vrátí současná hodnota.

setlocale() vrací nové aktuální locale nebo FALSE, pokud na dotyčné platformě není funkcionalita locale implementována, zadané locale neexistuje, nebo je název kategorie neplatný. Neplatný název kategorie také vyvolá varování.

Předcházející | Domů | Další
rtrim | Nahoru | sha1_file


sha1_file

(PHP 4 >= 4.3.0, PHP 5)

sha1_file -- Calculate the sha1 hash of a file

Description

string sha1_file ( string filename [, bool raw_output])

Calculates the sha1 hash of filename using the US Secure Hash Algorithm 1, and returns that hash. The hash is a 40-character hexadecimal number. Upon failure, FALSE is returned. If the optional raw_output is set to TRUE, then the sha1 digest is instead returned in raw binary format with a length of 20.

Poznámka: The optional raw_output parameter was added in PHP 5.0.0 and defaults to FALSE

See also sha1(), crc32(), and md5_file()

Předcházející | Domů | Další
setlocale | Nahoru | sha1


sha1

(PHP 4 >= 4.3.0, PHP 5)

sha1 -- Calculate the sha1 hash of a string

Description

string sha1 ( string str [, bool raw_output])

Calculates the sha1 hash of str using the US Secure Hash Algorithm 1, and returns that hash. The hash is a 40-character hexadecimal number. If the optional raw_output is set to TRUE, then the sha1 digest is instead returned in raw binary format with a length of 20.

Poznámka: The optional raw_output parameter was added in PHP 5.0.0 and defaults to FALSE

Příklad 1. A sha1() example

<?php
$str = 'apple';

if (sha1($str) === 'd0be2dc421be4fcd0172e5afceea3970e2f3d940') {
    echo "Would you like a green or red apple?";
    exit;
}
?>

See also sha1_file(), crc32(), and md5()

Předcházející | Domů | Další
sha1_file | Nahoru | similar_text


similar_text

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

similar_text -- Spočítat podobnost dvou řetězců

Popis

int similar_text ( string first, string second [, double percent])

similar_text() spočítá podobnost dvou řetězců podle Oliver [1993]. Pozn.: Tato implementace nepoužívá stack jako v Oliverově pseudokódu, nýbrž rekurzivní volání, což může či nemusí celý proces zrychlit. Komplexita tohoto algoritmu je O(N**3) kde N je délka nejdelšího řetězce.

Pokud je similar_text() předán třetí argument (odkazem), spočítá tato funkce podobnost v procentech. Vrací počet znaků shodných v obou řetězcích.

Předcházející | Domů | Další
sha1 | Nahoru | soundex


soundex

(PHP 3, PHP 4 , PHP 5)

soundex -- Spočítat soundex klíč řetězce

Popis

string soundex ( string str)

Spočítá soundex klíč str.

Soundex klíče mají tu vlastnost, že slova vyslovovaná podobně produkují shodné soundex klíče, a dají se proto využít ke zjednodušení hledání v databázích, kde znáte výslovnost, ale ne hláskování. Tato funkce vrací řetězec dlouhý 4 znaky začínající písmenem.

Tato konkrétní soundex funkce je popsána Donaldem Knuthem v "The Art Of Computer Programming, vol. 3: Sorting And Searching", Addison-Wesley (1973), pp. 391-392.

Příklad 1. Soundex ukázky

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';

Předcházející | Domů | Další
similar_text | Nahoru | sprintf


sprintf

(PHP 3, PHP 4 , PHP 5)

sprintf -- Vrátit formátovaný řetězec

Popis

string sprintf ( string format [, mixed args])

Vrací řetězec vytvořený podle formátovacího řetězce format.

Formátovací řetězec se skládá z nula nebo více direktiv: běžných znaků (kromě %), které se přímo kopírují do výsledku, a převodních specifikací, z nichž každá přijímá jeden argument. Toto platí pro sprintf() i printf().

Každá převodní specifikace se skládá ze znaku procenta (%), následovaného jedním nebo více z těchto znaků, v tomto pořadí:

  1. Volitelný padding specifier, který určuje, jaký znak se použije na doplnění výsledku na správnou délku řetězce. Může to být mezera nebo 0 (písmeno nula). Default je nula. Jiný doplňující znak můžete zadat tak, že před něj předřadíte jednoduchou uvozovku ('). Viz ukázky níže.

  2. Volitelný alignment specifier, který určuje, jestli se má výsledek zarovnat doleva nebo doprava. Default je doprava, pomlčka (-) to změní na doleva.

  3. Volitelné číslo width specifier, které určuje, kolik znaků (minimálně) má obsahovat výsledek převodu.

  4. Volitelný precision specifier, který určuje, kolik desetinných míst se má zobrazit u čísel s desetinnou čárkou. Tento přepínač nemá žádný vliv na jiné typy než double. (Další funkcí užitečnou na formátování čísel je number_format().)

  5. type specifier, který určuje, za jaký typ se mají data argumentu považovat. Možné typy:

    % - a doslovný znak procenta. Nevyžaduje se žádný argument.
    b - argument se považuje za integer a je prezentován jako binární číslo.
    c - argument se považuje za integer a je prezentován jako znak s touto ASCII hodnotou.
    d - argument se považuje za integer a je prezentován jako desítkové číslo.
    f - argument se považuje za double a je prezentován jako číslo s plovoucí desetinou čárkou.
    o - argument se považuje za integer a je prezentován jako oktalové číslo.
    s - argument se považuje za řetězec a je takto prezentován.
    x - the argument se považuje za integer a je prezentován jako hexadecimální číslo (s malými písmeny).
    X - argument se považuje za integer a je prezentován jako hexadecimální číslo (s kapitálkami).

   Viz také: printf(),
   sscanf(),
fscanf() a
number_format().

Ukázky

Příklad 1. Ukázka sprintf(): zero-padded integers

$isodate = sprintf ("%04d-%02d-%02d", $year, $month, $day);

Příklad 2. Ukázka sprintf(): formatting currency

$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
// echo $money will output "123.1";
$formatted = sprintf ("%01.2f", $money);
// echo $formatted will output "123.10"

Předcházející | Domů | Další
soundex | Nahoru | sscanf


sscanf

(PHP 4 >= 4.0.1, PHP 5)

sscanf -- Rozparsovat vstupní řetězec podle formátu

Popis

mixed sscanf ( string str, string format [, string var1])

Funkce sscanf() je vstupním analogem printf(). sscanf() čte řetězec str a interpretuje ho podle formátu format. Pokud jsou jí předány pouze dva argumenty, vrací rozparsované hodnoty v poli.

Příklad 1. Ukázka sscanf()

// zjištění sériového čísla
$serial = sscanf("SN/2350001","SN/%d");
// a data výroby
$mandate = "January 01 2000";
list($month, $day, $year) = sscanf($mandate,"%s %d %d");
echo "Zboží $serial bylo vyrobeno: $year-".substr($month,0,3)."-$day\n";
Pokud jsou jí předány volitelné argumenty, vrací tato funkce počet přiřazených hodnot. Volitelné argumenty musí být předány odkazem.

Příklad 2. Ukázka sscanf() - použití volitelných argumentů

// zjistit informace o autorovi a vygenerovat DocBook záznam
$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";

Viz také: fscanf(),
printf() a
sprintf().

Předcházející | Domů | Další
sprintf | Nahoru | str_ireplace


str_ireplace

(PHP 5)

str_ireplace -- Case-insensitive version of str_replace().

Description

mixed str_ireplace ( mixed search, mixed replace, mixed subject [, int &count])

This function returns a string or an array with all occurrences of search in subject (ignoring case) replaced with the given replace value. If you don't need fancy replacing rules, you should generally use this function instead of eregi_replace() or preg_replace() with the i modifier.

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.

If search and replace are arrays, then str_ireplace() takes a value from each array and uses them to do 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.

Příklad 1. str_ireplace() example

<?php
$bodytag = str_ireplace("%body%", "black", "<body text=%BODY%>");
?>

This function is binary safe.

Poznámka: As of PHP 5.0.0 the number of matched and replaced needles will be returned in count which is passed by reference. Prior to PHP 5.0.0 this parameter is not available.

See also:
str_replace(),
ereg_replace(),
preg_replace(), and
strtr().

Předcházející | Domů | Další
sscanf | Nahoru | str_pad


str_pad

(PHP 4 >= 4.0.1, PHP 5)

str_pad -- Doplnit řetězec jiným řetězcem na určitou délku

Popis

string str_pad ( string input, int pad_length [, string pad_string [, int pad_type]])

str_pad() doplní řetězec input zleva, zprava nebo z obou stran na danou délku. Pokud jí není předán volitelný argument pad_string, doplní se input mezerami, jinak se doplní znaky z pad_string.

Volitelný argument pad_type může nabýt hodnot STR_PAD_RIGHT, STR_PAD_LEFT nebo STR_PAD_BOTH. Default je STR_PAD_RIGHT.

Pokud je hodnota pad_length negativní nebo menší než je délka input, k doplnění nedojde.

Příklad 1. Ukázka str_pad()

$input = "Alien";
print str_pad($input, 10);                      // produces "Alien     "
print str_pad($input, 10, "-=", STR_PAD_LEFT);  // produces "-=-=-Alien"
print str_pad($input, 10, "_", STR_PAD_BOTH);   // produces "__Alien___"

Předcházející | Domů | Další
str_ireplace | Nahoru | str_repeat


str_repeat

(PHP 4 , PHP 5)

str_repeat -- Opakovat řetězec

Popis

string str_repeat ( string input, int multiplier)

Vrací input_str multiplier krát opakovaný. multiplier musí být větší než 0.

Příklad 1. Ukázka str_repeat()

echo str_repeat ("-=", 10);

This will output "-=-=-=-=-=-=-=-=-=-=".

Poznámka: Tato funkce byla přidána v PHP 4.0.

Předcházející | Domů | Další
str_pad | Nahoru | str_replace


str_replace

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

str_replace -- Nahradit všechny výskyty jednoho řetězce dalším řetězcem

Popis

string str_replace ( string needle, string str, string haystack [, int &count])

Tato funkce nahradí všechny výskyty needle v argumentu haystack argumentem str. Pokud nepotřebujete složitá pravidla pro nahrazování, měli byste vždy použít tuto funkci místo ereg_replace() nebo preg_replace().

Od PHP 4.0.5 může být každý parametr funkce str_replace() typu array.

Varování

V PHP verzích starších než 4.3.3 byla chyba při používání polí v parametrech search a zároveň replace, která způsobila, že prázdné položky pole search byly přeskočeny bez zvýšení interního ukazatele v poli replace. Bylo to opraveno v PHP 4.3.3. Všechny skripty, které na tuto chybu spoléhaly, by měly před zavoláním této funkce odstranit prázdné hodnoty vyhledávání, aby nasimulovaly původní chování.

Pokud je parametr subject pole, proběhne vyhledávání a nahrazení v každé položce pole subject a návratová hodnota je také pole.

Pokud jsou parametry search a replace pole, funkce str_replace() bere hodnoty těchto polí a používá je pro vyhledávání a nahrazení v parametru subject. Pokud má parametr replace méně hodnot než parametr search, tak se pro chybějící hodnoty použije prázdný řetězec. Pokud je parametr search pole a parametr replace je řetězec, tak se tento řetězec použije pro každou hodnotu parametru search.

Příklad 1. Ukázka str_replace()

<?php
// Vrátí: <body text='black'>
$bodytag = str_replace("%body%", "black", "<body text='%body%'>");

// Vrátí: Hll Wrld f PHP
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");

// Vrátí: You should eat pizza, beer, and ice cream every day
$phrase  = "You should eat fruits, vegetables, and fiber every day.";
$healthy = array("fruits", "vegetables", "fiber");
$yummy   = array("pizza", "beer", "ice cream");

$newphrase = str_replace($healthy, $yummy, $phrase);

// Parametr count je k dispozici od PHP 5.0.0
$str = str_replace("ll", "", "good golly miss molly!", $count);
echo $count; // 2
?>

Poznámka: Tato funkce je binárně bezpečná.

Poznámka: Od PHP 5.0.0 je počet nalezených a zaměněných řetězců (search) vrácen v parametru count, který je předáván referencí. Před PHP 5.0.0 není tento parametr k dispozici.

Viz také
str_ireplace(),
substr_replace(),
ereg_replace(),
preg_replace() a
strtr().

Předcházející | Domů | Další
str_repeat | Nahoru | str_rot13


str_rot13

(PHP 4 >= 4.2.0, PHP 5)

str_rot13 -- Perform the rot13 transform on a string

Description

string str_rot13 ( string str)

This function performs the ROT13 encoding on the str argument and returns the resulting string. The ROT13 encoding simply shifts every letter by 13 places in the alphabet while leaving non-alpha characters untouched. Encoding and decoding are done by the same function, passing an encoded string as argument will return the original version.

Příklad 1. str_rot13() example

<?php

echo str_rot13('PHP 4.3.0'); // CUC 4.3.0

?>

Poznámka: The behaviour of this function was buggy until PHP 4.3.0. Before this, the str was also modified, as if passed by reference.

Předcházející | Domů | Další
str_replace | Nahoru | str_shuffle


str_shuffle

(PHP 4 >= 4.3.0, PHP 5)

str_shuffle -- Randomly shuffles a string

Description

string str_shuffle ( string str)

str_shuffle() shuffles a string. One permutation of all possible is created.

Příklad 1. str_shuffle() example

<?php
$str = 'abcdef';
$shuffled = str_shuffle($str);

// This will echo something like: bfdaec
echo $shuffled;
?>

See also shuffle() and rand().

Předcházející | Domů | Další
str_rot13 | Nahoru | str_split


str_split

(PHP 5)

str_split -- Convert a string to an array

Description

array str_split ( string string [, int split_length])

Converts a string to an array. If the optional split_length parameter is specified, the returned array will be broken down into chunks with each being split_length in length, otherwise each chunk will be one character in length.

FALSE is returned if split_length is less than 1. If the split_length length exceeds the length of string, the entire string is returned as the first (and only) array element.

Příklad 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);

?>

Output may look like:

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
)

Příklad 2. Examples related to str_split()

<?php

$str = "Hello Friend";

echo $str{0};  // H
echo $str{8};  // i

// Creates: array('H','e','l','l','o',' ','F','r','i','e','n','d')
$arr1 = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);

?>

See also chunk_split(),
preg_split(),
split(),
count_chars(),
str_word_count(), and
for.

Předcházející | Domů | Další
str_shuffle | Nahoru | str_word_count


str_word_count

(PHP 4 >= 4.3.0, PHP 5)

str_word_count -- Return information about words used in a string

Description

mixed str_word_count ( string string [, int format])

Counts the number of words inside string. If the optional format is not specified, then the return value will be an integer representing the number of words found. In the event the format is specified, the return value will be an array, content of which is dependent on the format. The possible value for the format and the resultant outputs are listed below.

  • 1 - returns an array containing all the words found inside the string.

  • 2 - returns an associative array, where the key is the numeric position of the word inside the string and the value is the actual word itself.

For the purpose of this function, 'word' is defined as a locale dependent string containing alphabetic characters, which also may contain, but not start with "'" and "-" characters.

Příklad 1. Example uses for str_word_count()

<?php

$str = "Hello friend, you're
        looking          good today!";

$a   = str_word_count($str, 1);
$b   = str_word_count($str, 2);
$c   = str_word_count($str);

print_r($a);
print_r($b);
echo $c;
?>

Output may look like:

Array
(
    [0] => Hello
    [1] => friend
    [2] => you're
    [3] => looking
    [4] => good
    [5] => today
)

Array
(
    [0] => Hello
    [6] => friend
    [14] => you're
    [29] => looking
    [46] => good
    [51] => today
)

6

See also explode(),
preg_split(),
split(),
count_chars(), and
substr_count().

Předcházející | Domů | Další
str_split | Nahoru | strcasecmp


strcasecmp

(PHP 3>= 3.0.2, PHP 4 , PHP 5)

strcasecmp -- Binárně bezpečné case-insensitive porovnání řetězců

Popis

int strcasecmp ( string str1, string str2)

Pokud je str1 méně než str2 vrací < 0; pokud je str1 větší než str2 vrací > 0, a 0, pokud jsou stejné.

Příklad 1. Ukázka strcasecmp()

$var1 = "Hello";
$var2 = "hello";
if (!strcasecmp ($var1, $var2)) {
    echo 'v case-insensitive textovém porovnání se $var1 rovná $var2';
}

Viz také: ereg(),
strcmp(),
substr(),
stristr(),
strncasecmp() a
strstr().

Předcházející | Domů | Další
str_word_count | Nahoru | strchr


strchr

(PHP 3, PHP 4 , PHP 5)

strchr -- Najít první výskyt znaku

Popis

string strchr ( string haystack, string needle)

Tato funkce je alias k strstr(), a je ve všech směrech identická.

Předcházející | Domů | Další
strcasecmp | Nahoru | strcmp


strcmp

(PHP 3, PHP 4 , PHP 5)

strcmp -- Binárně bezpečně porovnat řetězce

Popis

int strcmp ( string str1, string str2)

Pokud je str1 méně než str2, vrací < 0; pokud je str1 větší než str2, vrací > 0, a 0, pokud jsou stejné.

Pozn.: toto srovnání je case-sensitive.

Viz také: ereg(),
strcasecmp(),
substr(),
stristr(),
strncasecmp(),
strncmp() a
strstr().

Předcházející | Domů | Další
strchr | Nahoru | strcoll


strcoll

(PHP 4 >= 4.0.5, PHP 5)

strcoll -- Locale based string comparison

Description

int strcoll ( string str1, string str2)

Returns < 0 if str1 is less than str2; > 0 if str1 is greater than str2, and 0 if they are equal. strcoll() uses the current locale for doing the comparisons. If the current locale is C or POSIX, this function is equivalent to strcmp().

Note that this comparison is case sensitive, and unlike strcmp() this function is not binary safe.

Poznámka: strcoll() was added in PHP 4.0.5, but was not enabled for win32 until 4.2.3.

See also ereg(), strcmp(),
strcasecmp(), substr(),
stristr(), strncasecmp(),
strncmp(), strstr(), and
setlocale().

Předcházející | Domů | Další
strcmp | Nahoru | strcspn


strcspn

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

strcspn -- Najít délku úvodního segmentu neodpovídajícího masce

Popis

int strcspn ( string str1, string str2)

Vrací délku úvodního segmentu str1, který neobsahuje žádný ze znaků str2.

Viz také: strspn().

Předcházející | Domů | Další
strcoll | Nahoru | strip_tags


strip_tags

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

strip_tags -- Odstranit z řetězce HTML a PHP tagy

Popis

string strip_tags ( string str [, string allowable_tags])

Tato funkce se snaží odstranit z předaného řetězce všechny HTML a PHP tagy. It errors on the side of caution in case of incomplete or bogus tags. It uses the same tag stripping state machine as the fgetss() function.

Volitelný druhý argument můžete použít k určení tagů, které se nemají odstranit.

Poznámka: Argument allowable_tags byl přidán v PHP 3.0.13, PHP 4 b3.

Předcházející | Domů | Další
strcspn | Nahoru | stripcslashes


stripcslashes

(PHP 4 , PHP 5)

stripcslashes -- Un-quote string quoted with addcslashes()

Popis

string stripcslashes ( string str)

Vrací řetězec bez odstraněných zpětných lomítek. Rozeznává Céčkové \n, \r ..., oktalové a hexadecimální reprezentace.

Poznámka: Tato funkce byla přidána v PHP4b3-dev.

Viz také: addcslashes().

Předcházející | Domů | Další
strip_tags | Nahoru | stripos


stripos

(PHP 5)

stripos -- Find position of first occurrence of a case-insensitive string

Description

int stripos ( string haystack, string needle [, int offset])

Returns the numeric position of the first occurrence of needle in the haystack string. Unlike strpos(), stripos() is case-insensitive.

Note that the needle may be a string of one or more characters.

If needle is not found, stripos() will return boolean FALSE.

Varování

Tato funkce může vracet booleovskou hodnotu FALSE, ale také nebooleovskou hodnotu odpovídající ohodnocení FALSE, například 0 nebo "". Čtěte prosím sekci o typu Boolean, kde najdete více informací. Pro testování návratové hodnoty této funkce použijte operátor ===.

Příklad 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";
}
?>

If needle is not a string, it is converted to an integer and applied as the ordinal value of a character.

The optional offset parameter allows you to specify which character in haystack to start searching. The position returned is still relative to the the beginning of haystack.

See also strpos(), strrpos(),
strrchr(), substr(),
stristr(), strstr(),
strripos() and str_ireplace().

Předcházející | Domů | Další
stripcslashes | Nahoru | stripslashes


stripslashes

(PHP 3, PHP 4 , PHP 5)

stripslashes -- Zrušit escapování provedené funkcí addslashes()

Popis

string stripslashes ( string str)

Vrací řetězec s odstraněnými zpětnými lomítky. (\' se stává ' a pod.) Zdvojená zpětná lomítka (\\) se spojují do jednoduchých (\).

Funkce stripslashes() může být použita například tehdy, když je PHP direktiva magic_quotes_gpc nastavena na on (což je výchozí nastavení) a vy tato data nevkládáte na místa (jako je databáze), která toto escapování potřebují. To je například tehdy, když data zadaná do HTML formuláře pouze vypisujete.

Příklad 1. Příklad funkce stripslashes()

<?php
$str = "Jmenuješ se O\'reilly?";

// Outputs: Jmenuješ se O'reilly?
echo stripslashes($str);
?>

Viz také addslashes() a get_magic_quotes_gpc().

Předcházející | Domů | Další
stripos | Nahoru | stristr


stristr

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

stristr -- strstr() bez rozlišení velikosti písmen

Popis

string stristr ( string haystack, string needle)

Vrací haystack od prvního výskytu needle do konce. needle a haystack se zkoumají bez ohledu na velikost písmen.

Pokud needle nenajde, vrací FALSE.

Pokud needle není řetězec, převede se na integer a použije se jako číselná hodnota znaku.

Příklad 1. Příklad použití stristr()

<?php
  $email = 'USER@EXAMPLE.com';
  $domain = stristr($email, 'e');
  echo $domain; // ER@EXAMPLE.com
?>

Viz také strchr(),
strrchr(), substr() a
ereg().

Předcházející | Domů | Další
stripslashes | Nahoru | strlen


strlen

(PHP 3, PHP 4 , PHP 5)

strlen -- Zjistit délku řetězce

Popis

int strlen ( string str)

Vrací délku (počet znaků) argumentu string.

Příklad 1. Příklad funkce strlen()

<?php
$str = 'abcdef';
echo strlen($str); // 6

$str = ' ab cd ';
echo strlen($str); // 7
?>

Viz také count().

Předcházející | Domů | Další
stristr | Nahoru | strnatcasecmp


strnatcasecmp

(PHP 4 , PHP 5)

strnatcasecmp -- Case-insensitive textové porovnání s využitím "natural order" algoritmu

Popis

int strnatcasecmp ( string str1, string str2)

Tato funkce implementuje srovnávací algoritmus který třídí alfanumerické řetězce stejným způsobem jako člověk. Chování této funkce se podobá strnatcmp() s tou výjimkou, že porovnání je case-insensitive. Více informací viz stránka Martina Poola Natural Order String Comparison.

Podobně jako jiné funkce pro porovnávání řetězců i tato vrací < 0 pokud je str1 menší než str2; > 0 pokud je str1 větší než str2, a 0 pokud jsou shodné.

Viz také: ereg(),
strcasecmp(),
substr(),
stristr(),
strcmp(),
strncmp(),
strncasecmp(),
strnatcmp() a
strstr().

Předcházející | Domů | Další
strlen | Nahoru | strnatcmp


strnatcmp

(PHP 4 , PHP 5)

strnatcmp -- Porovnání řetězců algoritmem "přirozeného třídění"

Popis

int strnatcmp ( string str1, string str2)

Tato funkce implementuje srovnávací algoritmus který třídí alfanumerické řetězce stejným způsobem jako člověk, toto se popisuje jako "přirozené třídění". Ukázka rozdílu mězi tímto algoritmem a běžnými počítačovými algoritmy pro řazení řetězců (např. strcmp()):

$arr1 = $arr2 = array ("img12.png","img10.png","img2.png","img1.png");
echo "Standardní porovnávání řetězců\n";
usort($arr1,"strcmp");
print_r($arr1);
echo "\nPřirozené porovnávání řetězců\n";
usort($arr2,"strnatcmp");
print_r($arr2);

Výše uvedený kód vygeneruje následující výstup:

Standardní porovnávání řetězců
Array
(
    [0] => img1.png
    [1] => img10.png
    [2] => img12.png
    [3] => img2.png
)

Přirozené porovnávání řetězců
Array
(
    [0] => img1.png
    [1] => img2.png
    [2] => img10.png
    [3] => img12.png
)

Více informací viz stránka Martina Poola Natural Order String Comparison.

Podobně jako jiné funkce pro porovnávání řetězců i tato vrací < 0 pokud je str1 menší než str2; > 0 pokud je str1 větší než str2, a 0 pokud jsou shodné.

Pozn.: toto porovnání je case-sensitive.

Viz také: ereg(),
strcasecmp(),
substr(),
stristr(),
strcmp(),
strncmp(),
strncasecmp(),
strnatcasecmp(),
strstr(),
natsort() a
natcasesort().

Předcházející | Domů | Další
strnatcasecmp | Nahoru | strncasecmp


strncasecmp

(PHP 4 >= 4.0.2, PHP 5)

strncasecmp -- Binárně bezpečné case-insensitive porovnání prvních n znaků řetězců

Popis

int strncasecmp ( string str1, string str2, int len)

Tato funkce se podobá strcasecmp(), s tím rozdílem, že můžete určit (maximální) počet znaků (len) z každého z řetězců, které se použijí při porovnání. Pokud je některý z řetězců kratší než len, pak se pro porovnání použije délka tohoto řetězce.

Pokud je str1 méně než str2, vrací < 0; pokud je str1 větší než str2, vrací > 0, a 0, pokud jsou stejné.

Viz také: ereg(),
strcasecmp(),
strcmp(),
substr(),
stristr() a
strstr().

Předcházející | Domů | Další
strnatcmp | Nahoru | strncmp


strncmp

(PHP 4 , PHP 5)

strncmp -- Binárně bezpečné porovnání prvních n znaků v řetězcích

Popis

int strncmp ( string str1, string str2, int len)

This function is similar to strcmp(), with the difference that you can specify the (upper limit of the) number of characters (len) from each string to be used in the comparison. If any of the strings is shorter than len, then the length of that string will be used for the comparison.

Vrací < 0 pokud je str1 menší než str2; > 0 pokud je str1 větší než str2, a 0 pokud jsou shodné.

Pozn.: toto srovnání je case-sensitive.

Viz také: ereg(),
strncasecmp(),
strcasecmp(),
substr(),
stristr(),
strcmp() a
strstr().

Předcházející | Domů | Další
strncasecmp | Nahoru | strpos


strpos

(PHP 3, PHP 4 , PHP 5)

strpos -- Najít pozici prvního výskytu řetězce

Popis

int strpos ( string haystack, string needle [, int offset])

Vrací číselnou pozici prvního výskytu needle v řetězci haystack. Narozdíl od strrpos() tato funkce přijme jako argument needle řetězec více znaků, a celý tento řetězec se použije.

Pokud needle nenajde, vrací FALSE.

Varování

Tato funkce může vracet booleovskou hodnotu FALSE, ale také nebooleovskou hodnotu odpovídající ohodnocení FALSE, například 0 nebo "". Čtěte prosím sekci o typu Boolean, kde najdete více informací. Pro testování návratové hodnoty této funkce použijte operátor ===.

Příklad 1. strpos() examples

<?php
$mystring = 'abc';
$findme   = 'a';
$pos = strpos($mystring, $findme);

// Všimněte si použití ===. Obyčejné == by nefungovalo podle předpokladu,
// protože 'a' je na nultém (prvním) místě.
if ($pos === false) {
    echo "Řetězec '$findme' nebyl nalezen v řetězci '$mystring'";
} else {
    echo "Řetězec '$findme' nebyl nalezen v řetězci '$mystring'";
    echo " a je na pozici $pos";
}

?>

Pokud needle není řetězec, převede se na integer a použije se jako číselná hodnota znaku.

Volitelný argument offset vám umožňuje určit, na které pozici v haystack má hledání začít. Vrácená pozice je i tak relativní k začátku haystack.

Viz také: strrpos(),
stripos(),
strripos(),
strrchr(),
substr(),
stristr() a
strstr().

Předcházející | Domů | Další
strncmp | Nahoru | strrchr


strrchr

(PHP 3, PHP 4 , PHP 5)

strrchr -- Najít poslední výskyt znaku v řetězci

Popis

string strrchr ( string haystack, string needle)

Tato funkce vrací tu část haystack, která začíná posledním výskytem needle a pokračuje do konce haystack.

Pokud needle nenajde, vrací FALSE.

Pokud needle obsahuje více než jeden znak, použije se první z nich. Toto chování je odlišné od funkce strchr().

Pokud needle není řetězec, převede se na integer a použije se jako číselná hodnota znaku.

Příklad 1. Ukázka strrchr()

<?php
// získat poslední adresář v $PATH
$dir = substr(strrchr($PATH, ":"), 1);

// získat všechno po posledním konci řádku
$text = "Řádek 1\nŘádek 2\nŘádek 3";
$last = substr(strrchr($text, 10), 1 );
?>

Viz také strchr(), substr(), stristr() a strstr().

Předcházející | Domů | Další
strpos | Nahoru | strrev


strrev

(PHP 3, PHP 4 , PHP 5)

strrev -- Obrátit řetězec

Popis

string strrev ( string string)

Vrací string v opačném pořadí.

Předcházející | Domů | Další
strrchr | Nahoru | strripos


strripos

(PHP 5)

strripos -- Find position of last occurrence of a case-insensitive string in a string

Description

int strripos ( string haystack, string needle [, int offset])

Returns the numeric position of the last occurrence of needle in the haystack string. Unlike strrpos(), strripos() is case-insensitive. Also note that string positions start at 0, and not 1.

Note that the needle may be a string of one or more characters.

If needle is not found, FALSE is returned.

Varování

Tato funkce může vracet booleovskou hodnotu FALSE, ale také nebooleovskou hodnotu odpovídající ohodnocení FALSE, například 0 nebo "". Čtěte prosím sekci o typu Boolean, kde najdete více informací. Pro testování návratové hodnoty této funkce použijte operátor ===.

Příklad 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)";
}
?>

Outputs:

Congratulations!
   We found the last (aB) in (ababcd) at position (2)

offset may be specified to begin searching an arbitrary number of characters into the string. Negative values will stop searching at an arbitrary point prior to the end of the string.

See also strrpos(),
strrchr(),
substr(), stripos() and
stristr().

Předcházející | Domů | Další
strrev | Nahoru | strrpos


strrpos

(PHP 3, PHP 4 , PHP 5)

strrpos -- Najít pozici posledního výskytu znaku v řetězci

Popis

int strrpos ( string haystack, char needle [, int offset])

Vrací číselnou pozici posledního výskytu needle v řetězci haystack. Řetězec needle může být v PHP 4 jen jeden znak dlouhý. Pokud obsahuje více znaků, použije se první z nich.

Pokud needle nenajde, vrací FALSE.

Poznámka: Návratové hodnoty "znak nalezen na pozici 0" a "znak nenalezen" se dají snadno zaměnit. Tady je návod, jak zjistit tento rozdíl:

<?php

// v PHP 4.0b3 a novějších:
$pos = strrpos($mystring, "b");
if ($pos === false) { // všimněte si: tři rovnítka
    // nenalezeno...
}

// ve verzích starších než 4.0b3:
$pos = strrpos($mystring, "b");
if (is_bool($pos) && !$pos) {
    // nenalezeno...
}
?>

Pokud needle není řetězec, převede se na integer a použije se jako číselná hodnota znaku.

Poznámka: Od PHP 5.0.0 může být zadán parametr offset. To způsobí, že hledání začne od určité pozice v řetězci. Záporné hodnoty zastaví hledání na určitém místě před koncem řetězce.

Poznámka: Parametr needle může být od PHP 5.0.0 řetězec delší než 1 znak.

Viz také strpos(),
strripos(),
strrchr(),
substr(),
stristr() a
strstr().

Předcházející | Domů | Další
strripos | Nahoru | strspn


strspn

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

strspn -- Zjistit délku úvodního segmentu odpovídajícího masce

Popis

int strspn ( string str1, string str2)

Vrací úvodního segmentu str1, který se skládá výhradně ze znaků v str2.

strspn ("42 je odpověď, co je otázka...", "1234567890");

vrátí 2.

Viz také: strcspn().

Předcházející | Domů | Další
strrpos | Nahoru | strstr


strstr

(PHP 3, PHP 4 , PHP 5)

strstr -- Najít první výskyt řetězce

Popis

string strstr ( string haystack, string needle)

Vrací část haystack od prvního výskytu needle do konce.

Pokud needle nenajde, vrací FALSE.

Pokud needle není řetězec, převede se na integer a použije se jako číselná hodnota znaku.

Poznámka: Pozn.: tato funkce rozlišuje velikost písmen. Pro hledání bez rozlišení velikosti písmen použijte stristr().

Příklad 1. Ukázka strstr()

<?php
$email = 'user@example.com';
$domain = strstr($email, '@');
echo $domain; // @example.com
?>

Poznámka: Pokud pouze chcete zjistit, zda se určitý řetězec needle vyskytuje v řetězci haystack, je rychlejší a méně náročné na paměť použití funkce strpos().

Viz také ereg(), preg_match(),
strchr(), stristr(),
strpos(), strrchr() a
substr().

Předcházející | Domů | Další
strspn | Nahoru | strtok


strtok

(PHP 3, PHP 4 , PHP 5)

strtok -- Tokenize string

Popis

string strtok ( string arg1, string arg2)

strtok() is used to tokenize a string. 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.

Příklad 1. Ukázka strtok()

$string = "This is an example string";
$tok = strtok ($string," ");
while ($tok) {
    echo "Word=$tok<br>";
    $tok = strtok (" ");
}

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 argument are found.

Also be careful that your tokens may be equal to "0". This evaluates to FALSE in conditional expressions.

Viz také: split() a explode().

Předcházející | Domů | Další
strstr | Nahoru | strtolower


strtolower

(PHP 3, PHP 4 , PHP 5)

strtolower -- Změnit řetězec na malá písmena

Popis

string strtolower ( string str)

Vrací string se všemi alfabetickými znaky změněnými na malá písmena.

Pozn.: co je 'alfabetický' je dáno aktuálním místním nastavením. Například ve standardním "C" locale se znaky jako přehlasované a (Ä) nepřevedou.

Příklad 1. Ukázka strtolower()

$str = "Mary Had A Little Lamb and She LOVED It So";
$str = strtolower($str);
print $str; # vytiskne mary had a little lamb and she loved it so

Viz také: strtoupper() a ucfirst().

Předcházející | Domů | Další
strtok | Nahoru | strtoupper


strtoupper

(PHP 3, PHP 4 , PHP 5)

strtoupper -- Změnit řetězec na velká písmena

Popis

string strtoupper ( string string)

Vrací string se všemi alfabetickými znaky změněnými na velká písmena.

Pozn.: co je 'alfabetický' je dáno aktuálním místním nastavením. Například ve standardním "C" locale se znaky jako přehlasované a (ä) nepřevedou.

Příklad 1. Ukázka strtoupper()

$str = "Mary Had A Little Lamb and She LOVED It So";
$str = strtoupper ($str);
print $str; # vytiskne MARY HAD A LITTLE LAMB AND SHE LOVED IT SO

Viz také: strtolower() a ucfirst().

Předcházející | Domů | Další
strtolower | Nahoru | strtr


strtr

(PHP 3, PHP 4 , PHP 5)

strtr -- Přeložit určité znaky

Popis

string strtr ( string str, string from, string to)

string strtr ( string str, array replace_pairs)

Tato funkce upraví str tak, že všechny výskyty všech znaků ve from přeloží na odpovídající znaky v to a vrátí výsledek.

Pokud jsou from a to různě dlouhé, přebývající znaky z delšího z těch dvou se ignorují.

Příklad 1. Ukázka strtr()

<?php
$addr = strtr($addr, "äĺö", "aao");
?>

strtr() se dá také volat pouze se dvěma argumenty. Při volání se dvěma argumenty se chová takto: from musí být pole obsahující páry řetězců, které se zamění ve zdrojovém řetězci. strtr() vždy hledá nejdelší možnou shodu a NENAHRAZUJE ty části řetězce, na kterých už pracovala.

Příklad 2. strtr() example with two arguments

<?php
$trans = array("ahoj" => "nazdar", "nazdar" => "ahoj");
echo strtr("nazdar lidi, řekl jsem ahoj", $trans);
?>

Výsledek:

ahoj lidi, řekl jsem nazdar

Poznámka: Tato vlastnost (dva argumenty) byla přidána v PHP 4.0.

Viz také: ereg_replace().

Předcházející | Domů | Další
strtoupper | Nahoru | substr_compare


substr_compare

(PHP 5)

substr_compare -- Binary safe optionally case insensitive comparison of 2 strings from an offset, up to length characters

Description

int substr_compare ( string main_str, string str, int offset [, int length [, bool case_sensitivity]])

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
strtr | Nahoru | substr_count


substr_count

(PHP 4 , PHP 5)

substr_count -- Spočítat počet výskytů řetězce

Popis

int substr_count ( string haystrack, string needle)

substr_count() vrací počet výskytů řetězce needle v řetězci haystack string.

Příklad 1. Ukázka substr_count()

print substr_count("This is a test", "is"); // prints out 2

Předcházející | Domů | Další
substr_compare | Nahoru | substr_replace


substr_replace

(PHP 4 , PHP 5)

substr_replace -- Nahradit část řetězce jiným řetězcem

Popis

string substr_replace ( string string, string replacement, int start [, int length])

substr_replace() nahrazuje část řetězce string ohraničenou argumenty start a (volitelně) length řetězcem v argumentu replacement. Vrací výsledek.

Pokud je start pozitivní, náhrada začne na start-tém znaku argumentu string.

Pokud je start negativní, náhrada začne na start-tém znaku od konce argumentu string.

Pokud je přítomen length, a je pozitivní, představuje délku části argumentu string, která bude nahražena. Pokud je negativní, představuje počet znaků od konce string, kde má nahrazování skončit. Pokud přítomen není, bere se standardně strlen( string ); tj. nahrazování končí na konci argumentu string.

Příklad 1. Ukázka substr_replace()

<?php
$var = 'ABCDEFGH:/MNRPQR/';
echo "Originál: $var<hr>\n";

/* Tyto dva příklady nahradí celý obsah proměnné $var řetězcem 'bob'. */
echo substr_replace ($var, 'bob', 0) . "<br>\n";
echo substr_replace ($var, 'bob', 0, strlen ($var)) . "<br>\n";

/* Toto vloží 'bob' na začátek $var. */
echo substr_replace ($var, 'bob', 0, 0) . "<br>\n";

/* Tyto dva příklady nahradí 'MNRPQR' ve $var řetězcem 'bob'. */
echo substr_replace ($var, 'bob', 10, -1) . "<br>\n";
echo substr_replace ($var, 'bob', -7, -1) . "<br>\n";

/* Toto z $var odstraní 'MNRPQR'. */
echo substr_replace ($var, '', 10, -1) . "<br>\n";
?>

Viz také str_replace() a substr().

Poznámka: Funkce substr_replace() byla přidána v PHP 4.0.

Předcházející | Domů | Další
substr_count | Nahoru | substr


substr

(PHP 3, PHP 4 , PHP 5)

substr -- Vrátit část řetězce

Popis

string substr ( string string, int start [, int length])

substr() vrací část argumentu string určenou argumenty start a length.

Pokud je start kladný, vrácený řetězec začne start-tým znakem řetězce string, počítáno od nuly. Například v řetězci 'abcdef' je znakem na 0-té pozici 'a', znakem na pozici 2 je 'c', atd.

Příklad 1. Základní použití substr()

<?php
$rest = substr("abcdef", 1);    // vrátí "bcdef"
$rest = substr("abcdef", 1, 3); // vrátí "bcd"
$rest = substr("abcdef", 0, 4); // vrátí "abcd"
$rest = substr("abcdef", 0, 8); // vrátí "abcdef"

// Přístup přes složené závorky je další možnost
$string = 'abcdef';
echo $string{0};                // vrátí a
echo $string{3};                // vrátí d
?>

Pokud je start záporný, vrácený řetězec začne start-tým znakem od konce argumentu string.

Příklad 2. Použití záporného čísla v parametru start

<?php
$rest = substr("abcdef", -1);    // returns "f"
$rest = substr("abcdef", -2);    // returns "ef"
$rest = substr("abcdef", -3, 1); // returns "d"
?>

Pokud je argument length kladný, vrácený řetězec skončí length znaků za pozicí start. Pokud je parametr string kratší než start znaků, vrátí tato funkce FALSE.

Pokud je parametr length negativní, tak bude z konce řetězce string vynechán odpovídající počet znaků. Pokud parametr start určuje pozici za tímto zkrácením, bude vrácen prázdný řetězec.

Příklad 3. Použití záporného parametru length

<?php
$rest = substr("abcdef", 0, -1);  // vrátí "abcde"
$rest = substr("abcdef", 2, -1);  // vrátí "cde"
$rest = substr("abcdef", 4, -4);  // vrátí ""
$rest = substr("abcdef", -3, -1); // vrátí "de"
?>

Viz také strrchr(),
substr_replace(),
ereg() a
trim().

Předcházející | Domů | Další
substr_replace | Nahoru | trim


trim

(PHP 3, PHP 4 , PHP 5)

trim -- Odstranit netisknutelné znaky ze začátku a konce řetězce

Popis

string trim ( string str [, string charlist])

Poznámka: Volitelný parametr charlist byl přidán v PHP 4.1.0

Tato funkce odstraňuje bílé znaky ze začátku a konce řetězce a vrací řetězec bez těchto znaků. Bez druhého parametru odstraní tato funkce následující znaky:

  • " " (ASCII 32 (0x20)), obyčejná mezera.

  • "\t" (ASCII 9 (0x09)), tabulátor.

  • "\n" (ASCII 10 (0x0A)), nová řádka (line feed).

  • "\r" (ASCII 13 (0x0D)), návrat vozíku (carriage return).

  • "\0" (ASCII 0 (0x00)), znak NUL.

  • "\x0B" (ASCII 11 (0x0B)), vertikální tabulátor.

Můžete také určit, které znaky chcete odstranit, a to pomocí parametru charlist. Jednoduše vyjmenujte všechny znaky, které chcete odstranit. Pomocí .. můžete určit rozsah znaků.

Příklad 1. Příklady použití trim()

<?php

$text = "\t\tZde je pár slov :) ...  ";
$trimmed = trim($text);
// $trimmed = "Zde je pár slov :) ..."
$trimmed = trim($text, " \t.");
// $trimmed = "Zde je pár slov :)"
$clean = trim($binary, "\0x00..\0x1F");
// odstranit kontrolní znaky ASCII ze začátku i konce proměnné $binary
// (od 0 do 31 včetně)

?>

Viz také ltrim() a rtrim().

Předcházející | Domů | Další
substr | Nahoru | ucfirst


ucfirst

(PHP 3, PHP 4 , PHP 5)

ucfirst -- Změní první písmeno řetězce na velké

Popis

string ucfirst ( string str)

Změní první znak argumentu str, pokud je tento znak alfabetický.

Pozn.: co znamená 'alfabetický' určuje aktuální místní nastavení (locale). Například ve standardním "C" locale se znaky jako přehlasované a (ä) nepřevedou.

Příklad 1. Ukázka ucfirst()

$text = 'mary had a little lamb and she loved it so.';
$text = ucfirst ($text); // $text is now Mary had a little lamb
                         // and she loved it so.

Viz také strtoupper() a strtolower().

Předcházející | Domů | Další
trim | Nahoru | ucwords


ucwords

(PHP 3>= 3.0.3, PHP 4 , PHP 5)

ucwords -- Změnit první znak každého slova v řetězci na velké písmeno

Popis

string ucwords ( string str)

Změní první znak každého slova v argumentu str na velké písmeno, pokud je tento znak alfabetický.

Příklad 1. Ukázka ucwords()

$text = "mary had a little lamb and she loved it so.";
$text = ucwords($text); // $text is now: Mary Had A Little
                        // Lamb And She Loved It So.

Poznámka: Definice slova je: jakýkoli řetězec znaků, který následuje bezprostředně po netisknutelném znaku (to jsou: mezera, posun o tiskouvou stranu, přesun na novou řádku, návrat vozíku, horizontální tabelátor a vertikální tabelátor0.

Viz také strtoupper(), strtolower() and ucfirst().

Předcházející | Domů | Další
ucfirst | Nahoru | vprintf


vprintf

(PHP 4 >= 4.1.0, PHP 5)

vprintf -- Output a formatted string

Description

void vprintf ( string format, array args)

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.

See also printf(), sprintf(), vsprintf()

Předcházející | Domů | Další
ucwords | Nahoru | vsprintf


vsprintf

(PHP 4 >= 4.1.0, PHP 5)

vsprintf -- Return a formatted string

Description

string vsprintf ( string format, array args)

Return array values as a formatted string according to format (which is described in the documentation for sprintf()).

Operates as sprintf() but accepts an array of arguments, rather than a variable number of arguments.

See also sprintf() and vprintf()

Předcházející | Domů | Další
vprintf | Nahoru | wordwrap


wordwrap

(PHP 4 >= 4.0.2, PHP 5)

wordwrap -- Zalámat řetězec na daný počet znaků pomocí break znaku

Popis

string wordwrap ( string str [, int width [, string break [, int cut]]])

Zaláme řetězec str na sloupci určeném (volitelným) argumentem break.

Pokud není zadán argument width nebo break, wordwrap() automaticky zaláme řádky řetězce na sloupci 75 znakem '\n' (konec řádku).

Pokud má argument cut hodnotu 1, řetězec se na určenou šířku zalomí vždy. Takže pokud máte slovo delší než je daná šířka, rozdělí se. (Viz druhý příklad.)

Poznámka: Argument cut byl přidán PHP 4.0.3.

Příklad 1. Ukázka wordwrap()

$text = "Rychlá hnědá liška přeskočila líného psa.";
$newtext = wordwrap( $text, 20 );

echo "$newtext\n";

Tato ukázka by zobrazila:

Rychlá hnědá liška
přeskočila líného psa.

Příklad 2. Ukázka wordwrap()

$text = "Velmi dlouhé slooooooooooovo.";
$newtext = wordwrap( $text, 8, "\n", 1);

echo "$newtext\n";

Tato ukázka by zobrazila:

Velmi
dlouhé
sloooooo
ooooovo.

Viz také: nl2br().

Předcházející | Domů | Další
vsprintf | Nahoru | Sybase Functions


Sybase Functions

Manuál PHP
Předcházející Další

CVII. Sybase Functions

Úvod

Požadavky

Instalace

To enable Sybase-DB support configure PHP --with-sybase[=DIR]. DIR is the Sybase home directory, defaults to /home/sybase. To enable Sybase-CT support configure PHP --with-sybase-ct[=DIR]. DIR is the Sybase home directory, defaults to /home/sybase.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 1. Sybase configuration options

Name | Default | Changeable
sybase.allow_persistent | "On" | PHP_INI_SYSTEM
sybase.max_persistent | "-1" | PHP_INI_SYSTEM
sybase.max_links | "-1" | PHP_INI_SYSTEM
sybase.interface_file | "/usr/sybase/interfaces" | PHP_INI_SYSTEM
sybase.min_error_severity | "10" | PHP_INI_ALL
sybase.min_message_severity | "10" | PHP_INI_ALL
sybase.compatability_mode | "Off" | PHP_INI_SYSTEM
magic_quotes_sybase | "Off" | PHP_INI_ALL

Zde je stručné vysvětlení konfiguračních direktiv.

sybase.allow_persistent boolean

Whether to allow persistent Sybase connections.

sybase.max_persistent integer

The maximum number of persistent Sybase connections per process. -1 means no limit.

sybase.max_links integer

The maximum number of Sybase connections per process, including persistent connections. -1 means no limit.

sybase.min_error_severity integer

Minimum error severity to display.

sybase.min_message_severity integer

Minimum message severity to display.

sybase.compatability_mode boolean

Compatability mode with old versions of PHP 3.0. If on, this will cause PHP to automatically assign types to results according to their Sybase type, instead of treating them all as strings. This compatability mode will probably not stay around forever, so try applying whatever necessary changes to your code, and turn it off.

magic_quotes_sybase boolean

If magic_quotes_sybase is on, a single-quote is escaped with a single-quote instead of a backslash if magic_quotes_gpc or magic_quotes_runtime are enabled.

Poznámka: Note that when magic_quotes_sybase is ON it completely overrides magic_quotes_gpc . In this case even when magic_quotes_gpc is enabled neither double quotes, backslashes or NUL's will be escaped.

Tabulka 2. Sybase-CT configuration options

Name | Default | Changeable
sybct.allow_persistent | "On" | PHP_INI_SYSTEM
sybct.max_persistent | "-1" | PHP_INI_SYSTEM
sybct.max_links | "-1" | PHP_INI_SYSTEM
sybct.min_server_severity | "10" | PHP_INI_ALL
sybct.min_client_severity | "10" | PHP_INI_ALL
sybct.hostname | NULL | PHP_INI_ALL
sybct.deadlock_retry_count | "-1" | PHP_INI_ALL

Zde je stručné vysvětlení konfiguračních direktiv.

sybct.allow_persistent boolean

Whether to allow persistent Sybase-CT connections. The default is on.

sybct.max_persistent integer

The maximum number of persistent Sybase-CT connections per process. The default is -1 meaning unlimited.

sybct.max_links integer

The maximum number of Sybase-CT connections per process, including persistent connections. The default is -1 meaning unlimited.

sybct.min_server_severity integer

Server messages with severity greater than or equal to sybct.min_server_severity will be reported as warnings. This value can also be set from a script by calling sybase_min_server_severity(). The default is 10 which reports errors of information severity or greater.

sybct.min_client_severity integer

Client library messages with severity greater than or equal to sybct.min_client_severity will be reported as warnings. This value can also be set from a script by calling sybase_min_client_severity(). The default is 10 which effectively disables reporting.

sybct.hostname string

The name of the host you claim to be connecting from, for display by sp_who. The default is none.

sybct.deadlock_retry_count int

Allows you to to define how often deadlocks are to be retried. The default is -1, or "forever".

For further details and definition of the PHP_INI_* constants see ini_set().

Typy prostředků

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Obsah
sybase_affected_rows -- Gets number of affected rows in last query
sybase_close -- Closes a Sybase connection
sybase_connect -- Opens a Sybase server connection
sybase_data_seek -- Moves internal row pointer
sybase_deadlock_retry_count -- Sets the deadlock retry count
sybase_fetch_array -- Fetch row as array
sybase_fetch_assoc -- Fetch a result row as an associative array
sybase_fetch_field -- Get field information from a result
sybase_fetch_object -- Fetch a row as an object
sybase_fetch_row -- Get a result row as an enumerated array
sybase_field_seek -- Sets field offset
sybase_free_result -- Frees result memory
sybase_get_last_message -- Returns the last message from the server
sybase_min_client_severity -- Sets minimum client severity
sybase_min_error_severity -- Sets minimum error severity
sybase_min_message_severity -- Sets minimum message severity
sybase_min_server_severity -- Sets minimum server severity
sybase_num_fields -- Gets the number of fields in a result set
sybase_num_rows -- Get number of rows in a result set
sybase_pconnect -- Open persistent Sybase connection
sybase_query -- Sends a Sybase query
sybase_result -- Get result data
sybase_select_db -- Selects a Sybase database
sybase_set_message_handler -- Sets the handler called when a server message is raised
sybase_unbuffered_query -- Send a Sybase query and do not block

Předcházející | Domů | Další
wordwrap | Nahoru | sybase_affected_rows


sybase_affected_rows

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

sybase_affected_rows -- Gets number of affected rows in last query

Description

int sybase_affected_rows ( [resource link_identifier])

sybase_affected_rows() returns the number of rows affected by the last INSERT, UPDATE or DELETE query on the server associated with the specified link identifier. If the link identifier isn't specified, the last opened link is assumed.

Příklad 1. Delete-Query

<?php
    /* connect to database */
    sybase_connect('SYBASE', '', '') or
        die("Could not connect");
    sybase_select_db("db");

    sybase_query("DELETE FROM sometable WHERE id < 10");
    printf("Records deleted: %d\n", sybase_affected_rows());
?>

The above example would produce the following output:

Records deleted: 10

This command is not effective for SELECT statements, only on statements which modify records. To retrieve the number of rows returned from a SELECT, use sybase_num_rows().

Poznámka: Tato funkce je k dispozici pouze při použití rozhraní knihovny CT k Sybase a ne knihovny DB.

See also sybase_num_rows().

Předcházející | Domů | Další
Sybase Functions | Nahoru | sybase_close


sybase_close

(PHP 3, PHP 4 , PHP 5)

sybase_close -- Closes a Sybase connection

Description

bool sybase_close ( [resource link_identifier])

sybase_close() closes the link to a Sybase database that's associated with the specified link link_identifier. If the link identifier isn't specified, the last opened link is assumed.

Vrací TRUE při úspěchu, FALSE při selhání.

Note that this isn't usually necessary, as non-persistent open links are automatically closed at the end of the script's execution.

sybase_close() will not close persistent links generated by sybase_pconnect().

See also sybase_connect() and sybase_pconnect().

Předcházející | Domů | Další
sybase_affected_rows | Nahoru | sybase_connect


sybase_connect

(PHP 3, PHP 4 , PHP 5)

sybase_connect -- Opens a Sybase server connection

Description

resource sybase_connect ( [string servername [, string username [, string password [, string charset [, string appname]]]]])

Returns a positive Sybase link identifier on success, or FALSE on failure.

sybase_connect() establishes a connection to a Sybase server. The servername argument has to be a valid servername that is defined in the 'interfaces' file.

In case a second call is made to sybase_connect() with the same arguments, no new link will be established, but instead, the link identifier of the already opened link will be returned.

The link to the server will be closed as soon as the execution of the script ends, unless it's closed earlier by explicitly calling sybase_close().

Příklad 1. sybase_connect() example

<?php
    $link = sybase_connect('SYBASE', '', '')
            or die("Could not connect !");
    echo "Connected successfully";
    sybase_close($link);
?>

See also sybase_pconnect() and sybase_close().

Předcházející | Domů | Další
sybase_close | Nahoru | sybase_data_seek


sybase_data_seek

(PHP 3, PHP 4 , PHP 5)

sybase_data_seek -- Moves internal row pointer

Description

bool sybase_data_seek ( resource result_identifier, int row_number)

Vrací TRUE při úspěchu, FALSE při selhání.

sybase_data_seek() moves the internal row pointer of the Sybase result associated with the specified result identifier to pointer to the specified row number. The next call to sybase_fetch_row() would return that row.

See also sybase_fetch_row().

Předcházející | Domů | Další
sybase_connect | Nahoru | sybase_deadlock_retry_count


sybase_deadlock_retry_count

(PHP 4 >= 4.3.0, PHP 5)

sybase_deadlock_retry_count -- Sets the deadlock retry count

Description

void sybase_deadlock_retry_count ( int retry_count)

Using sybase_deadlock_retry_count(), the number of retries can be defined in cases of deadlocks. By default, every deadlock is retried an infinite number of times or until the process is killed by Sybase, the executing script is killed (for instance, by set_time_limit()) or the query succeeds.

Tabulka 1. Values for retry_count

-1 | Retry forever (default)
0 | Do not retry
n | Retry n times

Poznámka: Tato funkce je k dispozici pouze při použití rozhraní knihovny CT k Sybase a ne knihovny DB.

Předcházející | Domů | Další
sybase_data_seek | Nahoru | sybase_fetch_array


sybase_fetch_array

(PHP 3, PHP 4 , PHP 5)

sybase_fetch_array -- Fetch row as array

Description

array sybase_fetch_array ( resource result)

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

sybase_fetch_array() is an extended version of sybase_fetch_row(). In addition to storing the data in the numeric indices of the result array, it also stores the data in associative indices, using the field names as keys.

An important thing to note is that using sybase_fetch_array() is NOT significantly slower than using sybase_fetch_row(), while it provides a significant added value.

Poznámka: When selecting fields with identical names (for instance, in a join), the associative indices will have a sequential number prepended. See the example for details.

Příklad 1. Identical fieldnames

<?php
    $dbh = sybase_connect('SYBASE', '', '');
    $q = sybase_query('SELECT * FROM p, a WHERE p.person_id= a.person_id');
    var_dump(sybase_fetch_array($q));
    sybase_close($dbh);
?>

The above example would produce the following output (assuming the two tables only have each one column called "person_id"):

array(4) {
  [0]=>
  int(1)
  ["person_id"]=>
  int(1)
  [1]=>
  int(1)
  ["person_id1"]=>
  int(1)
}

See also
sybase_fetch_row(),
sybase_fetch_assoc() and
sybase_fetch_object().

Předcházející | Domů | Další
sybase_deadlock_retry_count | Nahoru | sybase_fetch_assoc


sybase_fetch_assoc

(PHP 4 >= 4.3.0, PHP 5)

sybase_fetch_assoc -- Fetch a result row as an associative array

Description

array sybase_fetch_assoc ( resource result)

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

sybase_fetch_assoc() is a version of sybase_fetch_row() that uses column names instead of integers for indices in the result array. Columns from different tables with the same names are returned as name, name1, name2, ..., nameN.

An important thing to note is that using sybase_fetch_assoc() is NOT significantly slower than using sybase_fetch_row(), while it provides a significant added value.

See also
sybase_fetch_array(),
sybase_fetch_object() and
sybase_fetch_row().

Předcházející | Domů | Další
sybase_fetch_array | Nahoru | sybase_fetch_field


sybase_fetch_field

(PHP 3, PHP 4 , PHP 5)

sybase_fetch_field -- Get field information from a result

Description

object sybase_fetch_field ( resource result [, int field_offset])

Returns an object containing field information.

sybase_fetch_field() can be used in order to obtain information about fields in a certain query result. If the field offset isn't specified, the next field that wasn't yet retrieved by sybase_fetch_field() is retrieved.

The properties of the object are:

  • name - column name. if the column is a result of a function, this property is set to computed#N, where #N is a serial number.

  • column_source - the table from which the column was taken

  • max_length - maximum length of the column

  • numeric - 1 if the column is numeric

  • type - datatype of the column

See also sybase_field_seek().

Předcházející | Domů | Další
sybase_fetch_assoc | Nahoru | sybase_fetch_object


sybase_fetch_object

(PHP 3, PHP 4 , PHP 5)

sybase_fetch_object -- Fetch a row as an object

Description

object sybase_fetch_object ( resource result [, mixed object])

Returns an object with properties that correspond to the fetched row, or FALSE if there are no more rows.

sybase_fetch_object() is similar to sybase_fetch_assoc(), with one difference - an object is returned, instead of an array.

Use the second object to specify the type of object you want to return. If this parameter is omitted, the object will be of type stdClass.

Poznámka: As of PHP 4.3.0, this function will no longer return numeric object members.

Old behaviour:
object(stdclass)(3) {
  [0]=>
  string(3) "foo"
  ["foo"]=>
  string(3) "foo"
  [1]=>
  string(3) "bar"
  ["bar"]=>
  string(3) "bar"
}
New behaviour:
object(stdclass)(3) {
  ["foo"]=>
  string(3) "foo"
  ["bar"]=>
  string(3) "bar"
}

Příklad 1. sybase_fetch_object() return as Foo

<?php
    class Foo {
        var $foo, $bar, $baz;
    }

    // {...]
    $qrh= sybase_query('SELECT foo, bar, baz FROM example');
    $foo= sybase_fetch_object($qrh, 'Foo');
    $bar= sybase_fetch_object($qrh, new Foo());
    // {...]
?>

Speed-wise, the function is identical to sybase_fetch_array(), and almost as quick as sybase_fetch_row() (the difference is insignificant).

See also sybase_fetch_array() and sybase_fetch_row().

Předcházející | Domů | Další
sybase_fetch_field | Nahoru | sybase_fetch_row


sybase_fetch_row

(PHP 3, PHP 4 , PHP 5)

sybase_fetch_row -- Get a result row as an enumerated array

Description

array sybase_fetch_row ( resource result)

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

sybase_fetch_row() fetches one row of data from the result associated with the specified result identifier. The row is returned as an array. Each result column is stored in an array offset, starting at offset 0.

Subsequent call to sybase_fetch_row() would return the next row in the result set, or FALSE if there are no more rows.

Tabulka 1. Data types

PHP | Sybase
string | VARCHAR, TEXT, CHAR, IMAGE, BINARY, VARBINARY, DATETIME
int | NUMERIC (w/o precision), DECIMAL (w/o precision), INT, BIT, TINYINT, SMALLINT
float | NUMERIC (w/ precision), DECIMAL (w/ precision), REAL, FLOAT, MONEY
NULL | NULL

See also
sybase_fetch_array(),
sybase_fetch_assoc(),
sybase_fetch_object(),
sybase_data_seek() and
sybase_result().

Předcházející | Domů | Další
sybase_fetch_object | Nahoru | sybase_field_seek


sybase_field_seek

(PHP 3, PHP 4 , PHP 5)

sybase_field_seek -- Sets field offset

Description

bool sybase_field_seek ( resource result, int field_offset)

Seeks to the specified field offset. If the next call to sybase_fetch_field() won't include a field offset, this field would be returned.

Vrací TRUE při úspěchu, FALSE při selhání.

See also sybase_fetch_field().

Předcházející | Domů | Další
sybase_fetch_row | Nahoru | sybase_free_result


sybase_free_result

(PHP 3, PHP 4 , PHP 5)

sybase_free_result -- Frees result memory

Description

bool sybase_free_result ( resource result)

sybase_free_result() only needs to be called if you are worried about using too much memory while your script is running. All result memory will automatically be freed when the script ends. You may call sybase_free_result() with the result identifier as an argument and the associated result memory will be freed.

Předcházející | Domů | Další
sybase_field_seek | Nahoru | sybase_get_last_message


sybase_get_last_message

(PHP 3, PHP 4 , PHP 5)

sybase_get_last_message -- Returns the last message from the server

Description

string sybase_get_last_message ( void )

sybase_get_last_message() returns the last message reported by the server.

See also sybase_min_message_severity().

Předcházející | Domů | Další
sybase_free_result | Nahoru | sybase_min_client_severity


sybase_min_client_severity

(PHP 3, PHP 4 , PHP 5)

sybase_min_client_severity -- Sets minimum client severity

Description

void sybase_min_client_severity ( int severity)

sybase_min_client_severity() sets the minimum client severity level.

Poznámka: Tato funkce je k dispozici pouze při použití rozhraní knihovny CT k Sybase a ne knihovny DB.

See also sybase_min_server_severity().

Předcházející | Domů | Další
sybase_get_last_message | Nahoru | sybase_min_error_severity


sybase_min_error_severity

(PHP 3, PHP 4 , PHP 5)

sybase_min_error_severity -- Sets minimum error severity

Description

void sybase_min_error_severity ( int severity)

sybase_min_error_severity() sets the minimum error severity level.

See also sybase_min_message_severity().

Předcházející | Domů | Další
sybase_min_client_severity | Nahoru | sybase_min_message_severity


sybase_min_message_severity

(PHP 3, PHP 4 , PHP 5)

sybase_min_message_severity -- Sets minimum message severity

Description

void sybase_min_message_severity ( int severity)

sybase_min_message_severity() sets the minimum message severity level.

See also sybase_min_error_severity().

Předcházející | Domů | Další
sybase_min_error_severity | Nahoru | sybase_min_server_severity


sybase_min_server_severity

(PHP 3, PHP 4 , PHP 5)

sybase_min_server_severity -- Sets minimum server severity

Description

void sybase_min_server_severity ( int severity)

sybase_min_server_severity() sets the minimum server severity level.

Poznámka: Tato funkce je k dispozici pouze při použití rozhraní knihovny CT k Sybase a ne knihovny DB.

See also sybase_min_client_severity().

Předcházející | Domů | Další
sybase_min_message_severity | Nahoru | sybase_num_fields


sybase_num_fields

(PHP 3, PHP 4 , PHP 5)

sybase_num_fields -- Gets the number of fields in a result set

Description

int sybase_num_fields ( resource result)

sybase_num_fields() returns the number of fields in a result set.

See also
sybase_query(),
sybase_fetch_field() and
sybase_num_rows().

Předcházející | Domů | Další
sybase_min_server_severity | Nahoru | sybase_num_rows


sybase_num_rows

(PHP 3, PHP 4 , PHP 5)

sybase_num_rows -- Get number of rows in a result set

Description

int sybase_num_rows ( resource result)

sybase_num_rows() returns the number of rows in a result set.

See also
sybase_num_fields(),
sybase_query() and
sybase_fetch_row().

Předcházející | Domů | Další
sybase_num_fields | Nahoru | sybase_pconnect


sybase_pconnect

(PHP 3, PHP 4 , PHP 5)

sybase_pconnect -- Open persistent Sybase connection

Description

resource sybase_pconnect ( [string servername [, string username [, string password [, string charset [, string appname]]]]])

Returns a positive Sybase persistent link identifier on success, or FALSE on error.

sybase_pconnect() acts very much like sybase_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 (sybase_close() will not close links established by sybase_pconnect()()).

This type of links is therefore called 'persistent'.

See also sybase_connect().

Předcházející | Domů | Další
sybase_num_rows | Nahoru | sybase_query


sybase_query

(PHP 3, PHP 4 , PHP 5)

sybase_query -- Sends a Sybase query

Description

resource sybase_query ( string query, resource link_identifier)

Returns a positive Sybase result identifier on success, or FALSE on error.

sybase_query() sends a query to the currently active database on the server that's associated with the specified link identifier. If the link identifier isn't specified, the last opened link is assumed. If no link is open, the function tries to establish a link as if sybase_connect() was called, and use it.

See also sybase_select_db() and sybase_connect().

Předcházející | Domů | Další
sybase_pconnect | Nahoru | sybase_result


sybase_result

(PHP 3, PHP 4 , PHP 5)

sybase_result -- Get result data

Description

string sybase_result ( resource result, int row, mixed field)

Returns the contents of the cell at the row and offset in the specified Sybase result set.

sybase_result() returns the contents of one cell from a Sybase result set. The field argument can be the field's offset, or the field's name, or the field's table dot field's name (tablename.fieldname). If the column name has been aliased ('select foo as bar from...'), use the alias instead of the column name.

When working on large result sets, you should consider using one of the functions that fetch an entire row (specified below). As these functions return the contents of multiple cells in one function call, they're MUCH quicker than sybase_result(). Also, note that specifying a numeric offset for the field argument is much quicker than specifying a fieldname or tablename.fieldname argument.

Recommended high-performance alternatives:
sybase_fetch_row(),
sybase_fetch_array() and
sybase_fetch_object().

Předcházející | Domů | Další
sybase_query | Nahoru | sybase_select_db


sybase_select_db

(PHP 3, PHP 4 , PHP 5)

sybase_select_db -- Selects a Sybase database

Description

bool sybase_select_db ( string database_name [, resource link_identifier])

sybase_select_db() sets the current active database on the server that's associated with the specified link identifier. If no link identifier is specified, the last opened link is assumed. If no link is open, the function will try to establish a link as if sybase_connect() was called, and use it.

Vrací TRUE při úspěchu, FALSE při selhání.

Every subsequent call to sybase_query() will be made on the active database.

See also
sybase_connect(),
sybase_pconnect() and
sybase_query()

Předcházející | Domů | Další
sybase_result | Nahoru | sybase_set_message_handler


sybase_set_message_handler

(PHP 4 >= 4.3.0, PHP 5)

sybase_set_message_handler -- Sets the handler called when a server message is raised

Description

bool sybase_set_message_handler ( callback handler [, resource connection])

sybase_set_message_handler() sets a user function to handle messages generated by the server. You may specify the name of a global function, or use an array to specify an object reference and a method name.

The handler expects five arguments in the following order: message number, severity, state, line number and description. The first four are integers. The last is a string. If the function returns FALSE, PHP generates an ordinary error message.

Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: The connection parameter was added in PHP 4.3.5.

Příklad 1. sybase_set_message_handler() callback function

<?php
    function msg_handler($msgnumber, $severity, $state, $line, $text)
    {
        var_dump($msgnumber, $severity, $state, $line, $text);
    }

    sybase_set_message_handler('msg_handler');
?>

Příklad 2. sybase_set_message_handler() callback to a class

<?php
    class Sybase {
        function handler($msgnumber, $severity, $state, $line, $text)
        {
            var_dump($msgnumber, $severity, $state, $line, $text);
        }
    }

    $sybase= new Sybase();
    sybase_set_message_handler(array($sybase, 'handler'));
?>

Příklad 3. sybase_set_message_handler() unhandled messages

<?php
    // Return FALSE from this function to indicate you can't handle
    // this. The error is printed out as a warning, the way you're used
    // to it if there is no handler installed.
    function msg_handler($msgnumber, $severity, $state, $line, $text)
    {
        if (257 == $msgnumber) {
            return false;
        }
        var_dump($msgnumber, $severity, $state, $line, $text);
    }

    sybase_set_message_handler('msg_handler');
?>

Předcházející | Domů | Další
sybase_select_db | Nahoru | sybase_unbuffered_query


sybase_unbuffered_query

(PHP 4 >= 4.3.0, PHP 5)

sybase_unbuffered_query -- Send a Sybase query and do not block

Description

resource sybase_unbuffered_query ( string query, resource link_identifier [, bool store_result])

Returns a positive Sybase result identifier on success, or FALSE on error.

sybase_unbuffered_query() sends a query to the currently active database on the server that's associated with the specified link identifier. If the link identifier isn't specified, the last opened link is assumed. If no link is open, the function tries to establish a link as if sybase_connect() was called, and use it.

Unlike sybase_query(), sybase_unbuffered_query() reads only the first row of the result set. sybase_fetch_array() and similar function read more rows as needed. sybase_data_seek() reads up to the target row. The behavior may produce better performance for large result sets.

sybase_num_rows() will only return the correct number of rows if all result sets have been read. To Sybase, the number of rows is not known and is therefore computed by the client implementation.

Poznámka: If you don't read all of the resultsets prior to executing the next query, PHP will raise a warning and cancel all of the pending results. To get rid of this, use sybase_free_result() which will cancel pending results of an unbuffered query.

The optional store_result can be FALSE to indicate the resultsets shouldn't be fetched into memory, thus minimizing memory usage which is particularly interesting with very large resultsets.

Příklad 1. sybase_unbuffered_query() example

<?php

$dbh = sybase_connect('SYBASE', '', '');
$q = sybase_unbuffered_query('select firstname, lastname from huge_table', $dbh, false);
sybase_data_seek($q, 10000);
$i = 0;

while ($row = sybase_fetch_row($q)) {
    echo $row[0], ' ', $row[1], '<br />';
    if ($i++ > 40000) {
        break;
    }
}

sybase_free_result($q);
sybase_close($dbh);

?>

Předcházející | Domů | Další
sybase_set_message_handler | Nahoru | TCP Wrappers Functions


TCP Wrappers Functions

Manuál PHP
Předcházející Další

CVIII. TCP Wrappers Functions

Úvod

The TCP wrappers provides a classical unix mechanism which has been designed to check if the remote client is able to connect from the given IP address.

Instalace

Tcpwrap is currently available through PECL http://pecl.php.net/package/tcpwrap.

If PEAR is available on your *nix-like system you can use the pear installer to install the tcpwrap extension, by the following command: pear -v install tcpwrap.

You can always download the tar.gz package and install tcpwrap by hand:

Příklad 1. tcpwrap install by hand

gunzip tcpwrap-xxx.tgz
tar -xvf tcpwrap-xxx.tar
cd tcpwrap-xxx
phpize
./configure && make && make install

Obsah
tcpwrap_check -- tcpwrap check

Předcházející | Domů | Další
sybase_unbuffered_query | Nahoru | tcpwrap_check


tcpwrap_check

(no version information, might be only in CVS)

tcpwrap_check -- tcpwrap check

Description

bool tcpwrap_check ( string daemon, string address [, string user [, bool nodns]])

This function consults /etc/hosts.allow and /etc/hosts.deny files to check if access to service daemon should be granted or denied for client with remote address address (and optional username user). address can be either IP address or domain name. user can be NULL.

If address looks like domain name then DNS is used to resolve it to IP address; set nodns to TRUE to avoid this.

For more details please consult hosts_access(3) man page.

This function returns TRUE if access should be granted, FALSE otherwise.

Předcházející | Domů | Další
TCP Wrappers Functions | Nahoru | Tidy Functions


Tidy Functions

Manuál PHP
Předcházející Další

CIX. Tidy Functions

Úvod

Tidy is a binding for the Tidy HTML clean and repair utility which allows you to not only clean and otherwise manipluate HTML documents, but also traverse the document tree.

Požadavky

To use Tidy, you will need libtidy installed, available on the tidy homepage http://tidy.sourceforge.net/.

Instalace

Tidy is currently available for PHP 4.3.x and PHP 5 as a PECL extension from http://pecl.php.net/package/tidy.

Poznámka: Tidy 1.0 is just for PHP 4.3.x, while Tidy 2.0 is just for PHP 5.

If PEAR is available on your *nix-like system you can use the pear installer to install the tidy extension, by the following command: pear -v install tidy.

You can always download the tar.gz package and install tidy by hand:

Příklad 1. tidy install by hand in PHP 4.3.x

gunzip tidy-xxx.tgz
tar -xvf tidy-xxx.tar
cd tidy-xxx
phpize
./configure && make && make install

Windows users can download the extension dll php_tidy.dll from http://snaps.php.net/win32/PECL_STABLE/.

In PHP 5 you need only to compile using the --with-tidy option.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 1. Tidy Configuration Options

Name | Default | Changeable | Function
tidy.default_config | "" | PHP_INI_SYSTEM | default path for tidy config file
tidy.clean_output | 0 | PHP_INI_PERDIR | turns on/off the output repairing by Tidy
For further details and definition of the PHP_INI_* constants see ini_set().

Varování

Do not turn on tidy.clean_output if you are generating non-html content such as dynamic images.

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

The following constants are defined:

Tabulka 2. tidy tag constants

constant | description
TIDY_TAG_UNKNOWN |
TIDY_TAG_A |
TIDY_TAG_ABBR |
TIDY_TAG_ACRONYM |
TIDY_TAG_ALIGN |
TIDY_TAG_APPLET |
TIDY_TAG_AREA |
TIDY_TAG_B |
TIDY_TAG_BASE |
TIDY_TAG_BASEFONT |
TIDY_TAG_BDO |
TIDY_TAG_BGSOUND |
TIDY_TAG_BIG |
TIDY_TAG_BLINK |
TIDY_TAG_BLOCKQUOTE |
TIDY_TAG_BODY |
TIDY_TAG_BR |
TIDY_TAG_BUTTON |
TIDY_TAG_CAPTION |
TIDY_TAG_CENTER |
TIDY_TAG_CITE |
TIDY_TAG_CODE |
TIDY_TAG_COL |
TIDY_TAG_COLGROUP |
TIDY_TAG_COMMENT |
TIDY_TAG_DD |
TIDY_TAG_DEL |
TIDY_TAG_DFN |
TIDY_TAG_DIR |
TIDY_TAG_DIV |
TIDY_TAG_DL |
TIDY_TAG_DT |
TIDY_TAG_EM |
TIDY_TAG_EMBED |
TIDY_TAG_FIELDSET |
TIDY_TAG_FONT |
TIDY_TAG_FORM |
TIDY_TAG_FRAME |
TIDY_TAG_FRAMESET |
TIDY_TAG_H1 |
TIDY_TAG_H2 |
TIDY_TAG_H3 |
TIDY_TAG_H4 |
TIDY_TAG_H5 |
TIDY_TAG_6 |
TIDY_TAG_HEAD |
TIDY_TAG_HR |
TIDY_TAG_HTML |
TIDY_TAG_I |
TIDY_TAG_IFRAME |
TIDY_TAG_ILAYER |
TIDY_TAG_IMG |
TIDY_TAG_INPUT |
TIDY_TAG_INS |
TIDY_TAG_ISINDEX |
TIDY_TAG_KBD |
TIDY_TAG_KEYGEN |
TIDY_TAG_LABEL |
TIDY_TAG_LAYER |
TIDY_TAG_LEGEND |
TIDY_TAG_LI |
TIDY_TAG_LINK |
TIDY_TAG_LISTING |
TIDY_TAG_MAP |
TIDY_TAG_MARQUEE |
TIDY_TAG_MENU |
TIDY_TAG_META |
TIDY_TAG_MULTICOL |
TIDY_TAG_NOBR |
TIDY_TAG_NOEMBED |
TIDY_TAG_NOFRAMES |
TIDY_TAG_NOLAYER |
TIDY_TAG_NOSAFE |
TIDY_TAG_NOSCRIPT |
TIDY_TAG_OBJECT |
TIDY_TAG_OL |
TIDY_TAG_OPTGROUP |
TIDY_TAG_OPTION |
TIDY_TAG_P |
TIDY_TAG_PARAM |
TIDY_TAG_PLAINTEXT |
TIDY_TAG_PRE |
TIDY_TAG_Q |
TIDY_TAG_RP |
TIDY_TAG_RT |
TIDY_TAG_RTC |
TIDY_TAG_RUBY |
TIDY_TAG_S |
TIDY_TAG_SAMP |
TIDY_TAG_SCRIPT |
TIDY_TAG_SELECT |
TIDY_TAG_SERVER |
TIDY_TAG_SERVLET |
TIDY_TAG_SMALL |
TIDY_TAG_SPACER |
TIDY_TAG_SPAN |
TIDY_TAG_STRIKE |
TIDY_TAG_STRONG |
TIDY_TAG_STYLE |
TIDY_TAG_SUB |
TIDY_TAG_TABLE |
TIDY_TAG_TBODY |
TIDY_TAG_TD |
TIDY_TAG_TEXTAREA |
TIDY_TAG_TFOOT |
TIDY_TAG_TH |
TIDY_TAG_THEAD |
TIDY_TAG_TITLE |
TIDY_TAG_TR |
TIDY_TAG_TR |
TIDY_TAG_TT |
TIDY_TAG_U |
TIDY_TAG_UL |
TIDY_TAG_VAR |
TIDY_TAG_WBR |
TIDY_TAG_XMP |

Tabulka 3. tidy attribute constants

constant | description
TIDY_ATTR_UNKNOWN |
TIDY_ATTR_ABBR |
TIDY_ATTR_ACCEPT |
TIDY_ATTR_ACCEPT_CHARSET |
TIDY_ATTR_ACCESSKEY |
TIDY_ATTR_ACTION |
TIDY_ATTR_ADD_DATE |
TIDY_ATTR_ALIGN |
TIDY_ATTR_ALINK |
TIDY_ATTR_ALT |
TIDY_ATTR_ARCHIVE |
TIDY_ATTR_AXIS |
TIDY_ATTR_BACKGROUND |
TIDY_ATTR_BGCOLOR |
TIDY_ATTR_BGPROPERTIES |
TIDY_ATTR_BORDER |
TIDY_ATTR_BORDERCOLOR |
TIDY_ATTR_BOTTOMMARGIN |
TIDY_ATTR_CELLPADDING |
TIDY_ATTR_CELLSPACING |
TIDY_ATTR_CHAR |
TIDY_ATTR_CHAROFF |
TIDY_ATTR_CHARSET |
TIDY_ATTR_CHECKED |
TIDY_ATTR_CITE |
TIDY_ATTR_CLASS |
TIDY_ATTR_CLASSID |
TIDY_ATTR_CLEAR |
TIDY_ATTR_CODE |
TIDY_ATTR_CODEBASE |
TIDY_ATTR_CODETYPE |
TIDY_ATTR_COLOR |
TIDY_ATTR_COLS |
TIDY_ATTR_COLSPAN |
TIDY_ATTR_COMPACT |
TIDY_ATTR_CONTENT |
TIDY_ATTR_COORDS |
TIDY_ATTR_DATA |
TIDY_ATTR_DATAFLD |
TIDY_ATTR_DATAPAGESIZE |
TIDY_ATTR_DATASRC |
TIDY_ATTR_DATETIME |
TIDY_ATTR_DECLARE |
TIDY_ATTR_DEFER |
TIDY_ATTR_DIR |
TIDY_ATTR_DISABLED |
TIDY_ATTR_ENCODING |
TIDY_ATTR_ENCTYPE |
TIDY_ATTR_FACE |
TIDY_ATTR_FOR |
TIDY_ATTR_FRAME |
TIDY_ATTR_FRAMEBORDER |
TIDY_ATTR_FRAMESPACING |
TIDY_ATTR_GRIDX |
TIDY_ATTR_GRIDY |
TIDY_ATTR_HEADERS |
TIDY_ATTR_HEIGHT |
TIDY_ATTR_HREF |
TIDY_ATTR_HREFLANG |
TIDY_ATTR_HSPACE |
TIDY_ATTR_HTTP_EQUIV |
TIDY_ATTR_ID |
TIDY_ATTR_ISMAP |
TIDY_ATTR_LABEL |
TIDY_ATTR_LANG |
TIDY_ATTR_LANGUAGE |
TIDY_ATTR_LAST_MODIFIED |
TIDY_ATTR_LAST_VISIT |
TIDY_ATTR_LEFTMARGIN |
TIDY_ATTR_LINK |
TIDY_ATTR_LONGDESC |
TIDY_ATTR_LOWSRC |
TIDY_ATTR_MARGINHEIGHT |
TIDY_ATTR_MARGINWIDTH |
TIDY_ATTR_MAXLENGTH |
TIDY_ATTR_MEDIA |
TIDY_ATTR_METHOD |
TIDY_ATTR_MULTIPLE |
TIDY_ATTR_NAME |
TIDY_ATTR_NOHREF |
TIDY_ATTR_NORESIZE |
TIDY_ATTR_NOSHADE |
TIDY_ATTR_NOWRAP |
TIDY_ATTR_OBJECT |
TIDY_ATTR_OnAFTERUPDATE |
TIDY_ATTR_OnBEFOREUNLOAD |
TIDY_ATTR_OnBEFOREUPDATE |
TIDY_ATTR_OnBLUR |
TIDY_ATTR_OnCHANGE |
TIDY_ATTR_OnCLICK |
TIDY_ATTR_OnDATAAVAILABLE |
TIDY_ATTR_OnDATASETCHANGED |
TIDY_ATTR_OnDATASETCOMPLETE |
TIDY_ATTR_OnDBLCLICK |
TIDY_ATTR_OnERRORUPDATE |
TIDY_ATTR_OnFOCUS |
TIDY_ATTR_OnKEYDOWN |
TIDY_ATTR_OnKEYPRESS |
TIDY_ATTR_OnKEYUP |
TIDY_ATTR_OnLOAD |
TIDY_ATTR_OnMOUSEDOWN |
TIDY_ATTR_OnMOUSEMOVE |
TIDY_ATTR_OnMOUSEOUT |
TIDY_ATTR_OnMOUSEOVER |
TIDY_ATTR_OnMOUSEUP |
TIDY_ATTR_OnRESET |
TIDY_ATTR_OnROWENTER |
TIDY_ATTR_OnROWEXIT |
TIDY_ATTR_OnSELECT |
TIDY_ATTR_OnSUBMIT |
TIDY_ATTR_OnUNLOAD |
TIDY_ATTR_PROFILE |
TIDY_ATTR_PROMPT |
TIDY_ATTR_RBSPAN |
TIDY_ATTR_READONLY |
TIDY_ATTR_REL |
TIDY_ATTR_REV |
TIDY_ATTR_RIGHTMARGIN |
TIDY_ATTR_ROWS |
TIDY_ATTR_ROWSPAN |
TIDY_ATTR_RULES |
TIDY_ATTR_SCHEME |
TIDY_ATTR_SCOPE |
TIDY_ATTR_SCROLLING |
TIDY_ATTR_SELECTED |
TIDY_ATTR_SHAPE |
TIDY_ATTR_SHOWGRID |
TIDY_ATTR_SHOWGRIDX |
TIDY_ATTR_SHOWGRIDY |
TIDY_ATTR_SIZE |
TIDY_ATTR_SPAN |
TIDY_ATTR_SRC |
TIDY_ATTR_STANDBY |
TIDY_ATTR_START |
TIDY_ATTR_STYLE |
TIDY_ATTR_SUMMARY |
TIDY_ATTR_TABINDEX |
TIDY_ATTR_TARGET |
TIDY_ATTR_TEXT |
TIDY_ATTR_TITLE |
TIDY_ATTR_TOPMARGIN |
TIDY_ATTR_TYPE |
TIDY_ATTR_USEMAP |
TIDY_ATTR_VALIGN |
TIDY_ATTR_VALUE |
TIDY_ATTR_VALUETYPE |
TIDY_ATTR_VERSION |
TIDY_ATTR_VLINK |
TIDY_ATTR_VSPACE |
TIDY_ATTR_WIDTH |
TIDY_ATTR_WRAP |
TIDY_ATTR_XML_LANG |
TIDY_ATTR_XML_SPACE |
TIDY_ATTR_XMLNS |

Tabulka 4. tidy nodetype constants

constant | description
TIDY_NODETYPE_ROOT |
TIDY_NODETYPE_DOCTYPE |
TIDY_NODETYPE_COMMENT |
TIDY_NODETYPE_PROCINS |
TIDY_NODETYPE_TEXT |
TIDY_NODETYPE_START |
TIDY_NODETYPE_END |
TIDY_NODETYPE_STARTEND |
TIDY_NODETYPE_CDATA |
TIDY_NODETYPE_SECTION |
TIDY_NODETYPE_ASP |
TIDY_NODETYPE_JSTE |
TIDY_NODETYPE_PHP |
TIDY_NODETYPE_XMLDECL |

Obsah
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_clean_repair -- Execute configured cleanup and repair operations on parsed markup
tidy_config_count -- Returns the Number of Tidy configuration errors encountered for specified document.
tidy_diagnose -- Run configured diagnostics on parsed and repaired markup.
tidy_error_count -- Returns the Number of Tidy errors encountered for specified document.
tidy_get_body -- Returns a TidyNode Object starting from the <body> tag of the tidy parse tree
tidy_get_config -- Get current Tidy configuration
tidy_get_error_buffer -- Return warnings and errors which occurred parsing the specified document
tidy_get_head -- Returns a TidyNode Object starting from the <head> tag of the tidy parse tree
tidy_get_html_ver -- Get the Detected HTML version for the specified document.
tidy_get_html -- Returns a TidyNode Object starting from the <html> tag of the tidy parse tree
tidy_get_output -- Return a string representing the parsed tidy markup
tidy_get_release -- Get release date (version) for Tidy library
tidy_get_root -- Returns a TidyNode Object representing the root of the tidy parse tree
tidy_get_status -- Get status of specified document.
tidy_getopt -- Returns the value of the specified configuration option for the tidy document.
tidy_is_xhtml -- Indicates if the document is a XHTML document.
tidy_is_xml -- Indicates if the document is a generic (non HTML/XHTML) XML document.
tidy_load_config -- Load an ASCII Tidy configuration file with the specified encoding
tidy_node->attributes -- Returns an array of attribute objects for node
tidy_node->children -- Returns an array of child nodes
tidy_node->get_attr -- Return the attribute with the provided attribute id
tidy_node->get_nodes -- Return an array of nodes under this node with the specified id
tidy_node->hasChildren -- Returns true if this node has children
tidy_node->hasSiblings -- Returns true if this node has siblings
tidy_node->isAsp -- Returns true if this node is ASP
tidy_node->isComment -- Returns true if this node represents a comment
tidy_node->isHtml -- Returns true if this node is part of a HTML document
tidy_node->isJste -- Returns true if this node is JSTE
tidy_node->isPhp -- Returns true if this node is PHP
tidy_node->isText -- Returns true if this node represents text (no markup)
tidy_node->isXhtml -- Returns true if this node is part of a XHTML document
tidy_node->isXml -- Returns true if this node is part of a XML document
tidy_node->next -- Returns the next sibling to this node
tidy_node->prev -- Returns the previous sibling to this node
tidy_node->tidy_node -- Constructor.
tidy_parse_file -- Parse markup in file or URI
tidy_parse_string -- Parse a document stored in a string
tidy_repair_file -- Repair a file and return it as a string
tidy_repair_string -- Repair a string using an optionally provided configuration file
tidy_reset_config -- Restore Tidy configuration to default values
tidy_save_config -- Save current settings to named file. Only non-default values are written.
tidy_set_encoding -- Set the input/output character encoding for parsing markup.
tidy_setopt -- Updates the configuration settings for the specified tidy document.
tidy_warning_count -- Returns the Number of Tidy warnings encountered for specified document.

Předcházející | Domů | Další
tcpwrap_check | Nahoru | ob_tidyhandler


ob_tidyhandler

(PHP 5)

ob_tidyhandler -- ob_start callback function to repair the buffer

Description

string ob_tidyhandler ( string input [, int mode])

ob_tidyhandler() is intended to be used as a callback function for ob_start() to repair the buffer.

Příklad 1. ob_tidyhandler() example

<?php
ob_start('ob_tidyhandler');

echo '<p>test</i>';
?>

The above example will output:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title></title>
</head>
<body>
<p>test</p>
</body>
</html>

See also ob_start().

Předcházející | Domů | Další
Tidy Functions | Nahoru | tidy_access_count


tidy_access_count

(PHP 5)

tidy_access_count -- Returns the Number of Tidy accessibility warnings encountered for specified document.

Description

int tidy_access_count ( resource tidy)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
ob_tidyhandler | Nahoru | tidy_clean_repair


tidy_clean_repair

(PHP 5)

tidy_clean_repair -- Execute configured cleanup and repair operations on parsed markup

Description

bool tidy_clean_repair ( resource tidy)

This function cleans and repairs the given tidy resource.

Příklad 1. tidy_clean_repair() example

<?php
$html = '<p>test</I>';

$tidy = tidy_parse_string($html);
tidy_clean_repair($tidy);

echo $tidy;
?>

The above example will output:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title></title>
</head>
<body>
<p>test</p>
</body>
</html>

See also tidy_repair_file() and tidy_repair_string().

Předcházející | Domů | Další
tidy_access_count | Nahoru | tidy_config_count


tidy_config_count

(PHP 5)

tidy_config_count -- Returns the Number of Tidy configuration errors encountered for specified document.

Description

int tidy_config_count ( resource tidy)

tidy_config_count() returns the number of errors encountered in the given configuration.

Příklad 1. tidy_config_count() example

<?php
$html = '<p>test</I>';

$config = array('foo' => 'bar');

$tidy = tidy_parse_string($html, $config);

echo tidy_config_count($tidy); //1
?>

Předcházející | Domů | Další
tidy_clean_repair | Nahoru | tidy_diagnose


tidy_diagnose

(PHP 5)

tidy_diagnose -- Run configured diagnostics on parsed and repaired markup.

Description

bool tidy_diagnose ( resource tidy)

tidy_diagnose() runs diagnostic tests on the given resource.

Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
tidy_config_count | Nahoru | tidy_error_count


tidy_error_count

(PHP 5)

tidy_error_count -- Returns the Number of Tidy errors encountered for specified document.

Description

int tidy_error_count ( resource tidy)

tidy_error_count() returns the number of Tidy errors encountered for the specified document.

Příklad 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->error_buf;
?>

The above example will output:

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

See also tidy_access_count() and tidy_warning_count().

Předcházející | Domů | Další
tidy_diagnose | Nahoru | tidy_get_body


tidy_get_body

(PHP 5)

tidy_get_body -- Returns a TidyNode Object starting from the <body> tag of the tidy parse tree

Description

object tidy_get_body ( resource tidy)

This function returns a TidyNode object starting from the <body> tag of the tidy parse tree.

Příklad 1. tidy_get_body() example

<?php
$html = '
<html>
  <head>
    <title>test</title>
  </head>
  <body>
    <p>paragraph</p>
  </body>
</html>';

$tidy = tidy_parse_string($html);

$body = tidy_get_body($tidy);
echo $body->value;
?>

The above example will output:

<body>
<p>paragraph</p>
</body>

Poznámka: Tato funkce je k dispozici pouze v Zend Engine 2, to znamená v PHP >= 5.0.0.

See also tidy_get_head() and tidy_get_html().

Předcházející | Domů | Další
tidy_error_count | Nahoru | tidy_get_config


tidy_get_config

(PHP 5)

tidy_get_config -- Get current Tidy configuration

Description

array tidy_get_config ( resource tidy)

tidy_get_config() returns an array with the configuration options in use by the given resource.

For a explanation about each option, visit http://tidy.sourceforge.net/docs/quickref.html.

Příklad 1. tidy_get_config() example

<?php
$html = '<p>test</p>';
$config = array('indent' => TRUE,
                'output-xhtml' => TRUE,
                'wrap', 200);

$tidy = tidy_parse_string($html, $config);

print_r(tidy_get_config($tidy));
?>

The above example will output:

Array
(
    [indent-spaces] => 2
    [wrap] => 68
    [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] =>
)

See also tidy_reset_config() and tidy_save_config().

Předcházející | Domů | Další
tidy_get_body | Nahoru | tidy_get_error_buffer


tidy_get_error_buffer

(PHP 5)

tidy_get_error_buffer -- Return warnings and errors which occurred parsing the specified document

Description

string tidy_get_error_buffer ( resource tidy)

tidy_get_error_buffer() returns warnings and errors which occurred parsing the specified document.

Příklad 1. tidy_get_error_buffer() example

<?php
$html = '<p>paragraph</p>';

$tidy = tidy_parse_string($html);
echo tidy_get_error_buffer($tidy);
?>

The above example will output:

line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 1 column 1 - Warning: inserting missing 'title' element

See also tidy_access_count(),
tidy_error_count() and
tidy_warning_count().

Předcházející | Domů | Další
tidy_get_config | Nahoru | tidy_get_head


tidy_get_head

(PHP 5)

tidy_get_head -- Returns a TidyNode Object starting from the <head> tag of the tidy parse tree

Description

object tidy_get_head ( resource tidy)

This function returns a TidyNode object starting from the <head> tag of the tidy parse tree.

Příklad 1. tidy_get_head() example

<?php
$html = '
<html>
  <head>
    <title>test</title>
  </head>
  <body>
    <p>paragraph</p>
  </body>
</html>';

$tidy = tidy_parse_string($html);

$head = tidy_get_head($tidy);
echo $head->value;
?>

The above example will output:

<head>
<title>test</title>
</head>

Poznámka: Tato funkce je k dispozici pouze v Zend Engine 2, to znamená v PHP >= 5.0.0.

See also tidy_get_body() and tidy_get_html().

Předcházející | Domů | Další
tidy_get_error_buffer | Nahoru | tidy_get_html_ver


tidy_get_html_ver

(PHP 5)

tidy_get_html_ver -- Get the Detected HTML version for the specified document.

Description

int tidy_get_html_ver ( resource tidy)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
tidy_get_head | Nahoru | tidy_get_html


tidy_get_html

(PHP 5)

tidy_get_html -- Returns a TidyNode Object starting from the <html> tag of the tidy parse tree

Description

object tidy_get_html ( resource tidy)

This function returns a TidyNode object starting from the <html> tag of the tidy parse tree.

Příklad 1. tidy_get_html() example

<?php
$html = '
<html>
  <head>
    <title>test</title>
  </head>
  <body>
    <p>paragraph</p>
  </body>
</html>';

$tidy = tidy_parse_string($html);

$html = tidy_get_html($tidy);
echo $html->value;
?>

The above example will output:

<html>
<head>
<title>test</title>
</head>
<body>
<p>paragraph</p>
</body>
</html>

Poznámka: Tato funkce je k dispozici pouze v Zend Engine 2, to znamená v PHP >= 5.0.0.

See also tidy_get_body() and tidy_get_head().

Předcházející | Domů | Další
tidy_get_html_ver | Nahoru | tidy_get_output


tidy_get_output

(PHP 5)

tidy_get_output -- Return a string representing the parsed tidy markup

Description

string tidy_get_output ( resource tidy)

tidy_get_output() returns a string with the repaired html.

Příklad 1. tidy_get_output() example

<?php

$html = '<p>paragraph</i>';
$tidy = tidy_parse_string($html);

$tidy->CleanRepair();

echo tidy_get_output($tidy);
?>

The above example will output:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title></title>
</head>
<body>
<p>paragraph</p>
</body>
</html>

Předcházející | Domů | Další
tidy_get_html | Nahoru | tidy_get_release


tidy_get_release

(PHP 5)

tidy_get_release -- Get release date (version) for Tidy library

Description

string tidy_get_release ( void )

This function returns a string with the release date of the Tidy library.

Předcházející | Domů | Další
tidy_get_output | Nahoru | tidy_get_root


tidy_get_root

(PHP 5)

tidy_get_root -- Returns a TidyNode Object representing the root of the tidy parse tree

Description

object tidy_get_root ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Poznámka: Tato funkce je k dispozici pouze v Zend Engine 2, to znamená v PHP >= 5.0.0.

Předcházející | Domů | Další
tidy_get_release | Nahoru | tidy_get_status


tidy_get_status

(PHP 5)

tidy_get_status -- Get status of specified document.

Description

int tidy_get_status ( resource tidy)

tidy_get_status() returns the status for the specified tidy resource. It returns 0 if no error/warning was raised, 1 for warnings or accessibility errors, or 2 for errors.

Příklad 1. tidy_get_status() example

<?php
$html = '<p>paragraph</i>';
$tidy = tidy_parse_string($html);

$html2 = '<bogus>test</bogus>';
$tidy2 = tidy_parse_string($html2);

echo tidy_get_status($tidy); //1

echo tidy_get_status($tidy2); //2
?>

Předcházející | Domů | Další
tidy_get_root | Nahoru | tidy_getopt


tidy_getopt

(PHP 5)

tidy_getopt -- Returns the value of the specified configuration option for the tidy document.

Description

mixed tidy_getopt ( string option)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
tidy_get_status | Nahoru | tidy_is_xhtml


tidy_is_xhtml

(PHP 5)

tidy_is_xhtml -- Indicates if the document is a XHTML document.

Description

bool tidy_is_xhtml ( resource tidy)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
tidy_getopt | Nahoru | tidy_is_xml


tidy_is_xml

(PHP 5)

tidy_is_xml -- Indicates if the document is a generic (non HTML/XHTML) XML document.

Description

bool tidy_is_xml ( resource tidy)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
tidy_is_xhtml | Nahoru | tidy_load_config


tidy_load_config

(no version information, might be only in CVS)

tidy_load_config -- Load an ASCII Tidy configuration file with the specified encoding

Description

void tidy_load_config ( string filename, string encoding)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Poznámka: Tato funkce je k dispozici pouze v Tidy 1.0. Ve verzi Tidy 2.0 je překonána a byla proto odstraněna.

Předcházející | Domů | Další
tidy_is_xml | Nahoru | tidy_node->attributes


tidy_node->attributes

(no version information, might be only in CVS)

tidy_node->attributes -- Returns an array of attribute objects for node

Description

array tidy_node->attributes ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
tidy_load_config | Nahoru | tidy_node->children


tidy_node->children

(no version information, might be only in CVS)

tidy_node->children -- Returns an array of child nodes

Description

array tidy_node->children ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
tidy_node->attributes | Nahoru | tidy_node->get_attr


tidy_node->get_attr

(no version information, might be only in CVS)

tidy_node->get_attr -- Return the attribute with the provided attribute id

Description

tidy_attr tidy_node->get_attr ( int attrib_id)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
tidy_node->children | Nahoru | tidy_node->get_nodes


tidy_node->get_nodes

(no version information, might be only in CVS)

tidy_node->get_nodes -- Return an array of nodes under this node with the specified id

Description

array tidy_node->get_nodes ( int node_id)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
tidy_node->get_attr | Nahoru | tidy_node->hasChildren


tidy_node->hasChildren

(no version information, might be only in CVS)

tidy_node->hasChildren -- Returns true if this node has children

Description

bool tidy_node->hasChildren ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Poznámka: This functions was named tidy_node->has_children() in PHP 4/Tidy 1.

Předcházející | Domů | Další
tidy_node->get_nodes | Nahoru | tidy_node->hasSiblings


tidy_node->hasSiblings

(no version information, might be only in CVS)

tidy_node->hasSiblings -- Returns true if this node has siblings

Description

bool tidy_node->hasSiblings ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Poznámka: This functions was named tidy_node->has_siblings() in PHP 4/Tidy 1.

Předcházející | Domů | Další
tidy_node->hasChildren | Nahoru | tidy_node->isAsp


tidy_node->isAsp

(no version information, might be only in CVS)

tidy_node->isAsp -- Returns true if this node is ASP

Description

bool tidy_node->isAsp ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Poznámka: This functions was named tidy_node->is_asp() in PHP 4/Tidy 1.

Předcházející | Domů | Další
tidy_node->hasSiblings | Nahoru | tidy_node->isComment


tidy_node->isComment

(no version information, might be only in CVS)

tidy_node->isComment -- Returns true if this node represents a comment

Description

bool tidy_node->isComment ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Poznámka: This functions was named tidy_node->is_comment() in PHP 4/Tidy 1.

Předcházející | Domů | Další
tidy_node->isAsp | Nahoru | tidy_node->isHtml


tidy_node->isHtml

(no version information, might be only in CVS)

tidy_node->isHtml -- Returns true if this node is part of a HTML document

Description

bool tidy_node->isHtml ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Poznámka: This functions was named tidy_node->is_html() in PHP 4/Tidy 1.

Předcházející | Domů | Další
tidy_node->isComment | Nahoru | tidy_node->isJste


tidy_node->isJste

(no version information, might be only in CVS)

tidy_node->isJste -- Returns true if this node is JSTE

Description

bool tidy_node->isJste ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Poznámka: This functions was named tidy_node->is_jste() in PHP 4/Tidy 1.

Předcházející | Domů | Další
tidy_node->isHtml | Nahoru | tidy_node->isPhp


tidy_node->isPhp

(no version information, might be only in CVS)

tidy_node->isPhp -- Returns true if this node is PHP

Description

bool tidy_node->isPhp ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Poznámka: This functions was named tidy_node->is_php() in PHP 4/Tidy 1.

Předcházející | Domů | Další
tidy_node->isJste | Nahoru | tidy_node->isText


tidy_node->isText

(no version information, might be only in CVS)

tidy_node->isText -- Returns true if this node represents text (no markup)

Description

bool tidy_node->isText ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Poznámka: This functions was named tidy_node->is_text() in PHP 4/Tidy 1.

Předcházející | Domů | Další
tidy_node->isPhp | Nahoru | tidy_node->isXhtml


tidy_node->isXhtml

(no version information, might be only in CVS)

tidy_node->isXhtml -- Returns true if this node is part of a XHTML document

Description

bool tidy_node->isXhtml ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Poznámka: This functions was named tidy_node->is_xhtml() in PHP 4/Tidy 1.

Předcházející | Domů | Další
tidy_node->isText | Nahoru | tidy_node->isXml


tidy_node->isXml

(no version information, might be only in CVS)

tidy_node->isXml -- Returns true if this node is part of a XML document

Description

bool tidy_node->isXml ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Poznámka: This functions was named tidy_node->is_xml() in PHP 4/Tidy 1.

Předcházející | Domů | Další
tidy_node->isXhtml | Nahoru | tidy_node->next


tidy_node->next

(no version information, might be only in CVS)

tidy_node->next -- Returns the next sibling to this node

Description

tidy_node tidy_node->next ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
tidy_node->isXml | Nahoru | tidy_node->prev


tidy_node->prev

(no version information, might be only in CVS)

tidy_node->prev -- Returns the previous sibling to this node

Description

tidy_node tidy_node->prev ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
tidy_node->next | Nahoru | tidy_node->tidy_node


tidy_node->tidy_node

(no version information, might be only in CVS)

tidy_node->tidy_node -- Constructor.

Description

void tidy_node->tidy_node ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
tidy_node->prev | Nahoru | tidy_parse_file


tidy_parse_file

(PHP 5)

tidy_parse_file -- Parse markup in file or URI

Description

resource tidy_parse_file ( string filename [, mixed config [, string encoding [, bool use_include_path]]])

This function parses the given file.

Parametr config lze předávat jak jako pole, tak jako řetězec. Předává-li se jako řetězec, představuje název konfiguračního souboru, jinak jsou obsažené parametry přímo interpretovány. Vysvětlení všech voleb naleznete na http://tidy.sourceforge.net/docs/quickref.html

Parametr encoding nastavuje kódování pro vstupní/výstupní dokumenty. Možné hodnoty parametru encoding jsou: ascii, latin0, latin1, raw, utf8, iso202, utf16le, utf16be, utf16, mac, win1252, ibm858, big5 a shiftjis.

Příklad 1. tidy_parse_file() example

<?php
$tidy = tidy_parse_file('file.html');

$tidy->cleanRepair();

if(!empty($tidy->error_buf)) {
    echo "The following errors or warnings occured:\n";
    echo $tidy->error_buf;
}
?>

Poznámka: Ve verzi Tidy 2.0 byly přidány nepovinné parametry config_options a enconding.

See also tidy_parse_string(),
tidy_parse_string() and
tidy_repair_string().

Předcházející | Domů | Další
tidy_node->tidy_node | Nahoru | tidy_parse_string


tidy_parse_string

(PHP 5)

tidy_parse_string -- Parse a document stored in a string

Description

resource tidy_parse_string ( string input [, mixed config [, string encoding]])

tidy_parse_string() parses a document stored in a string.

Parametr config lze předávat jak jako pole, tak jako řetězec. Předává-li se jako řetězec, představuje název konfiguračního souboru, jinak jsou obsažené parametry přímo interpretovány. Vysvětlení všech voleb naleznete na http://tidy.sourceforge.net/docs/quickref.html

Parametr encoding nastavuje kódování pro vstupní/výstupní dokumenty. Možné hodnoty parametru encoding jsou: ascii, latin0, latin1, raw, utf8, iso202, utf16le, utf16be, utf16, mac, win1252, ibm858, big5 a shiftjis.

Příklad 1. tidy_parse_string() 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;
?>

The above example will output:

<!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>

Poznámka: Ve verzi Tidy 2.0 byly přidány nepovinné parametry config_options a enconding.

See also tidy_parse_file(),
tidy_repair_file() and
tidy_repair_string().

Předcházející | Domů | Další
tidy_parse_file | Nahoru | tidy_repair_file


tidy_repair_file

(PHP 5)

tidy_repair_file -- Repair a file and return it as a string

Description

string tidy_repair_file ( string filename [, mixed config [, string encoding [, bool use_include_path]]])

This function repairs the given file and returns it as a string.

Parametr config lze předávat jak jako pole, tak jako řetězec. Předává-li se jako řetězec, představuje název konfiguračního souboru, jinak jsou obsažené parametry přímo interpretovány. Vysvětlení všech voleb naleznete na http://tidy.sourceforge.net/docs/quickref.html

Parametr encoding nastavuje kódování pro vstupní/výstupní dokumenty. Možné hodnoty parametru encoding jsou: ascii, latin0, latin1, raw, utf8, iso202, utf16le, utf16be, utf16, mac, win1252, ibm858, big5 a shiftjis.

Příklad 1. tidy_repair_file() example

<?php
$file = 'file.html';

$repaired = tidy_repair_file($file);
rename($file, $file . '.bak');

file_put_contents($file, $repaired);
?>

Poznámka: Ve verzi Tidy 2.0 byly přidány nepovinné parametry config_options a enconding.

See also tidy_parse_file(),
tidy_parse_string() and
tidy_repair_string().

Předcházející | Domů | Další
tidy_parse_string | Nahoru | tidy_repair_string


tidy_repair_string

(PHP 5)

tidy_repair_string -- Repair a string using an optionally provided configuration file

Description

string tidy_repair_string ( string data [, mixed config [, string encoding]])

This function repairs the given string.

Parametr config lze předávat jak jako pole, tak jako řetězec. Předává-li se jako řetězec, představuje název konfiguračního souboru, jinak jsou obsažené parametry přímo interpretovány. Vysvětlení všech voleb naleznete na http://tidy.sourceforge.net/docs/quickref.html

Parametr encoding nastavuje kódování pro vstupní/výstupní dokumenty. Možné hodnoty parametru encoding jsou: ascii, latin0, latin1, raw, utf8, iso202, utf16le, utf16be, utf16, mac, win1252, ibm858, big5 a shiftjis.

Příklad 1. tidy_repair_string() example

<?php
ob_start();
?>

<html>
  <head>
    <title>test</title>
  </head>
  <body>
    <p>error</i>
  </body>
</html>

<?php

$buffer = ob_get_clean();
$tidy = tidy_repair_string($buffer);

echo $tidy;
?>

The above example will output:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>test</title>
</head>
<body>
<p>error</p>
</body>
</html>

Poznámka: Ve verzi Tidy 2.0 byly přidány nepovinné parametry config_options a enconding.

See also tidy_parse_file(),
tidy_parse_string() and
tidy_repair_file().

Předcházející | Domů | Další
tidy_repair_file | Nahoru | tidy_reset_config


tidy_reset_config

(no version information, might be only in CVS)

tidy_reset_config -- Restore Tidy configuration to default values

Description

bool tidy_reset_config ( void )

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Poznámka: Tato funkce je k dispozici pouze v Tidy 1.0. Ve verzi Tidy 2.0 je překonána a byla proto odstraněna.

Předcházející | Domů | Další
tidy_repair_string | Nahoru | tidy_save_config


tidy_save_config

(no version information, might be only in CVS)

tidy_save_config -- Save current settings to named file. Only non-default values are written.

Description

bool tidy_save_config ( string filename)

tidy_save_config() saves current settings to the specified file. Only non-default values are written.

See also tidy_get_config(),
tidy_getopt(),
tidy_reset_config() and
tidy_setopt().

Poznámka: Tato funkce je k dispozici pouze v Tidy 1.0. Ve verzi Tidy 2.0 je překonána a byla proto odstraněna.

Předcházející | Domů | Další
tidy_reset_config | Nahoru | tidy_set_encoding


tidy_set_encoding

(no version information, might be only in CVS)

tidy_set_encoding -- Set the input/output character encoding for parsing markup.

Description

bool tidy_set_encoding ( string encoding)

Sets the encoding for input/output documents. Vrací TRUE při úspěchu, FALSE při selhání. Possible values for encoding are ascii, latin1, raw, utf8, iso2022, mac, win1252, utf16le, utf16be, utf16, big5 and shiftjis.

Poznámka: Tato funkce je k dispozici pouze v Tidy 1.0. Ve verzi Tidy 2.0 je překonána a byla proto odstraněna.

Předcházející | Domů | Další
tidy_save_config | Nahoru | tidy_setopt


tidy_setopt

(no version information, might be only in CVS)

tidy_setopt -- Updates the configuration settings for the specified tidy document.

Description

bool tidy_setopt ( string option, mixed value)

tidy_setopt() updates the specified option with a new value.

Příklad 1. tidy_setopt() example

<?php
$html = '<p>test</i>';

$tidy = tidy_parse_string($html);

tidy_setopt('indent', FALSE);
?>

See also tidy_getopt(),
tidy_get_config(),
tidy_reset_config() and
tidy_save_config().

Poznámka: Tato funkce je k dispozici pouze v Tidy 1.0. Ve verzi Tidy 2.0 je překonána a byla proto odstraněna.

Předcházející | Domů | Další
tidy_set_encoding | Nahoru | tidy_warning_count


tidy_warning_count

(PHP 5)

tidy_warning_count -- Returns the Number of Tidy warnings encountered for specified document.

Description

int tidy_warning_count ( resource tidy)

tidy_warning_count() returns the number of Tidy warnings encountered for the specified document.

Příklad 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
?>

See also tidy_access_count() and tidy_error_count().

Předcházející | Domů | Další
tidy_setopt | Nahoru | Tokenizer Functions


Tokenizer Functions

Manuál PHP
Předcházející Další

CX. Tokenizer Functions

Úvod

The tokenizer functions provide an interface to the PHP tokenizer embedded in the Zend Engine. Using these functions you may write your own PHP source analyzing or modification tools without having to deal with the language specification at the lexical level.

See also the appendix about tokens.

Požadavky

Tyto funkce jsou k dispozici jako součást standardního modulu, který je vždy dostupný.

Instalace

Beginning with PHP 4.3.0 these functions are enabled by default. For older versions you have to configure and compile PHP with --enable-tokenizer. You can disable tokenizer support with --disable-tokenizer.

Verze PHP pro Windows má vestavěnou podporu pro toto rozšíření. K použití těchto funkcí není třeba načítat žádná další rozšíření.

Poznámka: Builtin support for tokenizer is available with PHP 4.3.0.

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

T_INCLUDE (integer)

T_INCLUDE_ONCE (integer)

T_EVAL (integer)

T_REQUIRE (integer)

T_REQUIRE_ONCE (integer)

T_LOGICAL_OR (integer)

T_LOGICAL_XOR (integer)

T_LOGICAL_AND (integer)

T_PRINT (integer)

T_PLUS_EQUAL (integer)

T_MINUS_EQUAL (integer)

T_MUL_EQUAL (integer)

T_DIV_EQUAL (integer)

T_CONCAT_EQUAL (integer)

T_MOD_EQUAL (integer)

T_AND_EQUAL (integer)

T_OR_EQUAL (integer)

T_XOR_EQUAL (integer)

T_SL_EQUAL (integer)

T_SR_EQUAL (integer)

T_BOOLEAN_OR (integer)

T_BOOLEAN_AND (integer)

T_IS_EQUAL (integer)

T_IS_NOT_EQUAL (integer)

T_IS_IDENTICAL (integer)

T_IS_NOT_IDENTICAL (integer)

T_IS_SMALLER_OR_EQUAL (integer)

T_IS_GREATER_OR_EQUAL (integer)

T_SL (integer)

T_SR (integer)

T_INC (integer)

T_DEC (integer)

T_INT_CAST (integer)

T_DOUBLE_CAST (integer)

T_STRING_CAST (integer)

T_ARRAY_CAST (integer)

T_OBJECT_CAST (integer)

T_BOOL_CAST (integer)

T_UNSET_CAST (integer)

T_NEW (integer)

T_EXIT (integer)

T_IF (integer)

T_ELSEIF (integer)

T_ELSE (integer)

T_ENDIF (integer)

T_LNUMBER (integer)

T_DNUMBER (integer)

T_STRING (integer)

T_STRING_VARNAME (integer)

T_VARIABLE (integer)

T_NUM_STRING (integer)

T_INLINE_HTML (integer)

T_CHARACTER (integer)

T_BAD_CHARACTER (integer)

T_ENCAPSED_AND_WHITESPACE (integer)

T_CONSTANT_ENCAPSED_STRING (integer)

T_ECHO (integer)

T_DO (integer)

T_WHILE (integer)

T_ENDWHILE (integer)

T_FOR (integer)

T_ENDFOR (integer)

T_FOREACH (integer)

T_ENDFOREACH (integer)

T_DECLARE (integer)

T_ENDDECLARE (integer)

T_AS (integer)

T_SWITCH (integer)

T_ENDSWITCH (integer)

T_CASE (integer)

T_DEFAULT (integer)

T_BREAK (integer)

T_CONTINUE (integer)

T_OLD_FUNCTION (integer)

T_FUNCTION (integer)

T_CONST (integer)

T_RETURN (integer)

T_USE (integer)

T_GLOBAL (integer)

T_STATIC (integer)

T_VAR (integer)

T_UNSET (integer)

T_ISSET (integer)

T_EMPTY (integer)

T_CLASS (integer)

T_EXTENDS (integer)

T_OBJECT_OPERATOR (integer)

T_DOUBLE_ARROW (integer)

T_LIST (integer)

T_ARRAY (integer)

T_LINE (integer)

T_FILE (integer)

T_COMMENT (integer)

T_ML_COMMENT (integer)

Poznámka: T_ML_COMMENT is not defined in PHP 5. All comments in PHP 5 are of token T_COMMENT.

T_DOC_COMMENT (integer)

Poznámka: T_DOC_COMMENT was introduced in PHP 5.

T_OPEN_TAG (integer)

T_OPEN_TAG_WITH_ECHO (integer)

T_CLOSE_TAG (integer)

T_WHITESPACE (integer)

T_START_HEREDOC (integer)

T_END_HEREDOC (integer)

T_DOLLAR_OPEN_CURLY_BRACES (integer)

T_CURLY_OPEN (integer)

T_PAAMAYIM_NEKUDOTAYIM (integer)

T_DOUBLE_COLON (integer)

Příklady

Here is a simple example PHP scripts using the tokenizer that will read in a PHP file, strip all comments from the source and print the pure code only.

Příklad 1. Strip comments with the tokenizer

<?php
  $source = file_get_contents("somefile.php");
  $tokens = token_get_all($source);
  /* T_ML_COMMENT does not exist in PHP 5.
   * The following three lines define it in order to
   * preserve backwards compatibility.
   *
   * The next two lines define the PHP 5-only T_DOC_COMMENT,
   * which we will mask as T_ML_COMMENT for PHP 4.
   */
  if (!defined('T_ML_COMMENT')) {
    define('T_ML_COMMENT', T_COMMENT);
  } else {
    define('T_DOC_COMMENT', T_ML_COMMENT);
  }
  foreach ($tokens as $token) {
    if (is_string($token)) {
      // simple 1-character token
      echo $token;
    } else {
      // token array
      list($id, $text) = $token;
      switch ($id) {
        case T_COMMENT:
        case T_ML_COMMENT: // we've defined this
        case T_DOC_COMMENT: // and this
          // no action on comments
          break;
        default:
          // anything else -> output "as is"
          echo $text;
          break;
      }
    }
  }
?>
Obsah
token_get_all -- Split given source into PHP tokens
token_name -- Get the symbolic name of a given PHP token

Předcházející | Domů | Další
tidy_warning_count | Nahoru | token_get_all


token_get_all

(PHP 4 >= 4.2.0, PHP 5)

token_get_all -- Split given source into PHP tokens

Description

array token_get_all ( string source)

token_get_all() parses the given source string into PHP language tokens using the Zend engine's lexical scanner. The function returns an array of token identifiers. Each individual token identifier is either a single character (i.e.: ;, ., >, !, etc...), or a two element array containing the token index in element 0, and the string content of the original token in element 1.

For a list of parser tokens, see N, or use token_name() to translate a token value into its string representation.

Příklad 1. token_get_all() examples

<?php
  $tokens = token_get_all('<?php'); // => array(array(T_OPEN_TAG, '<?'));
  $tokens = token_get_all('<?php echo; ?>'); /* => array(
                                                    array(T_OPEN_TAG, '<?php'),
                                                    array(T_ECHO, 'echo'),
                                                    ';',
                                                    array(T_CLOSE_TAG, '?>') ); */

/* Note in the following example that the string is parsed as T_INLINE_HTML
   rather than the otherwise expected T_COMMENT (T_ML_COMMENT in PHP <5).
   This is because no open/close tags were used in the "code" provided.
   This would be equivalent to putting a comment outside of <?php ?> tags in a normal file. */
  $tokens = token_get_all('/* comment */'); // => array(array(T_INLINE_HTML, '/* comment */'));
?>

Předcházející | Domů | Další
Tokenizer Functions | Nahoru | token_name


token_name

(PHP 4 >= 4.2.0, PHP 5)

token_name -- Get the symbolic name of a given PHP token

Description

string token_name ( int token)

token_name() returns the symbolic name for a PHP token value. The symbolic name returned matches the name of the matching token constant.

Příklad 1. token_name() example

<?php
  // 260 is the token value for the T_REQUIRE token
  echo token_name(260);        // -> "T_REQUIRE"

  // a token constant maps to its own name
  echo token_name(T_FUNCTION); // -> "T_FUNCTION"
?>

Předcházející | Domů | Další
token_get_all | Nahoru | URL funkce


URL funkce

Manuál PHP
Předcházející Další

CXI. URL funkce

Úvod

Práce s URL řetězci: kódování, dekódování a parsování.

Požadavky

Tyto funkce jsou k dispozici jako součást standardního modulu, který je vždy dostupný.

Instalace

K používání těchto funkcí není třeba žádná instalace, jsou součástí jádra PHP.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Obsah
base64_decode -- Dekódovat data kódovaná pomocí MIME base64
base64_encode -- Zakódovat data pomocí MIME base64
get_meta_tags -- Získá hodnoty content atributů všech meta tagů v souboru a vrátí pole
http_build_query -- Generate URL-encoded query string
parse_url -- Rozebrat URL a vrátit její komponenty
rawurldecode -- Dekódovat URL-kódovaný řetězec
rawurlencode -- URL-kódovat podle RFC1738
urldecode -- Dekódovat URL-kódovaný řetězec
urlencode -- URL-kódovat řetězec

Předcházející | Domů | Další
token_name | Nahoru | base64_decode


base64_decode

(PHP 3, PHP 4 , PHP 5)

base64_decode -- Dekódovat data kódovaná pomocí MIME base64

Popis

string base64_decode ( string encoded_data)

base64_decode() dekóduje encoded_data a vrátí původní data. Vrácená data mohou být binární

Viz také: base64_encode(), RFC 2045 sekce 6.8.

Předcházející | Domů | Další
URL funkce | Nahoru | base64_encode


base64_encode

(PHP 3, PHP 4 , PHP 5)

base64_encode -- Zakódovat data pomocí MIME base64

Popis

string base64_encode ( string data)

base64_encode() vrátí data zakódovaný pomocí base64. Toto kódování je navrženo tak, aby umožnilo binárním datům přežít transport přenosovými vrstvami, které nejsou osmibitové, jako jsou například těla emailů.

Data kódovaná pomocí base64 zabírají o zhruba 33% prostoru více než původní data.

Viz také: base64_decode(), chunk_split(), RFC-2045 sekce 6.8.

Předcházející | Domů | Další
base64_decode | Nahoru | get_meta_tags


get_meta_tags

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

get_meta_tags -- Získá hodnoty content atributů všech meta tagů v souboru a vrátí pole

Popis

array get_meta_tags ( string filename [, int use_include_path])

Otevře filename, přečte ho po řádcích, a vyhledá <meta> tagy ve tvaru

Příklad 1. Ukázka na Meta Tagy

<meta name="author" content="name">
<meta name="tags" content="php3 documentation">
</head> <!-- tady čtení skončí -->
(věnujte pozornost koncům řádků - PHP používá ke čtení vstupu nativní funkci, takže Macovský soubor na Unixu nebude fungovat).

Hodnota atributu name se ve vráceném poli stává klíčem, hodnota atributu content hodnotou tohoto pole, takže ho můžete snadno projít nebo získat jednotlivé hodnoty pomocí snandardních funkcí pro práci s poli. Zvláštní znaky v hodnotě atributu name jsou nahrazeny znakem '_', zbytek se převede na malá písmena.

Pokud je use_include_path rovno 1, PHP se pokusí otevřít soubor v standardní include cestě.

Předcházející | Domů | Další
base64_encode | Nahoru | http_build_query


http_build_query

(PHP 5)

http_build_query -- Generate URL-encoded query string

Description

string http_build_query ( array formdata [, string numeric_prefix])

Generates a URL-encoded query string from the associative (or indexed) array provided. formdata may be an array or object containing properties. A formdata array may be a simple one-dimensional structure, or an array of arrays (who in turn may contain other arrays). If numeric indices are used in the base array and a numeric_prefix is provided, it will be prepended to the numeric index for elements in the base array only. This is to allow for legal variable names when the data is decoded by PHP or another CGI application later on.

Příklad 1. Simple usage of http_build_query()

<?php
$data = array('foo'=>'bar',
              'baz'=>'boom',
              'cow'=>'milk',
              'php'=>'hypertext processor');

echo http_build_query($data); // foo=bar&baz=boom&cow=milk&php=hypertext+processor
?>

Příklad 2. http_build_query() with numerically index elements.

<?php
$data = array('foo', 'bar', 'baz', 'boom', 'cow' => 'milk', 'php' =>'hypertext processor');

echo http_build_query($data);
/* Outputs:
      0=foo&1=bar&2=baz&3=boom&cow=milk&php=hypertext+processor
 */

echo http_build_query($data, 'myvar_');
/* Outputs:
      myvar_0=foo&myvar_1=bar&myvar_2=baz&myvar_3=boom&cow=milk&php=hypertext+processor
 */
?>

Příklad 3. http_build_query() with complex arrays

<?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_');
?>

this will output : (word wrapped for readability)

user[name]=Bob+Smith&user[age]=47&user[sex]=M&user[dob]=5%1F12%1F1956&
pastimes[0]=golf&pastimes[1]=opera&pastimes[2]=poker&pastimes[3]=rap&
children[bobby][age]=12&children[bobby][sex]=M&children[sally][age]=8&
children[sally][sex]=F&flags_0=CEO

Poznámka: Only the numerically indexed element in the base array "CEO" received a prefix. The other numeric indices, found under pastimes, do not require a string prefix to be legal variable names.

Příklad 4. Using http_build_query() with an object

<?php
class myClass {
  var $foo;
  var $baz;

  function myClass()
  {
    $this->foo = 'bar';
    $this->baz = 'boom';
  }
}

$data = new myClass();

echo http_build_query($data); // foo=bar&baz=boom

?>

See also:
parse_str(),
parse_url(),
urlencode(), and
array_walk()

Předcházející | Domů | Další
get_meta_tags | Nahoru | parse_url


parse_url

(PHP 3, PHP 4 , PHP 5)

parse_url -- Rozebrat URL a vrátit její komponenty

Popis

array parse_url ( string url)

Tato funkce vrátí asociativní pole všech komponent URL přítomnych v url. Ty mohou být: "scheme", "host", "port", "user", "pass", "path", "query" a "fragment".

Předcházející | Domů | Další
http_build_query | Nahoru | rawurldecode


rawurldecode

(PHP 3, PHP 4 , PHP 5)

rawurldecode -- Dekódovat URL-kódovaný řetězec

Popis

string rawurldecode ( string str)

Vrátí řetězec, ve kterém sekvence znaku procent (%) následových dvěma šestnáctkovými číslicemi byly nahrazeny prostými znaky. Například řetězec
foo%20bar%40baz
dekóduje na
foo bar@baz
.

Viz také: rawurlencode(),
urldecode(),
urlencode().

Předcházející | Domů | Další
parse_url | Nahoru | rawurlencode


rawurlencode

(PHP 3, PHP 4 , PHP 5)

rawurlencode -- URL-kódovat podle RFC1738

Popis

string rawurlencode ( string str)

Vrátí řetězec, ve kterém byly všechny nealfanumerické znaky kromě
-_.
nahrazeny znakem procent (%) následovaným dvěma šestnáctkovými číslicemi. To je kódování popsané v RFC1738 na ochranu prostých znaků před interpretací jako zvláštní oddělovače v URL a na ochranu URL před komolením přenosovými systémy se znakovými konvencemi (jako jsou některé emailové systémy). Například, pokud chcete k FTP URL přidat heslo:

Příklad 1. Příklad rawurlencode() č. 1

<?php
echo '<a href="ftp://user:', rawurlencode('foo @+%/'),
     '@ftp.example.com/x.txt">';
?>
Nebo, pokud předáváte informace v komponentě URL obsahující informaci o cestě:

Příklad 2. Příklad rawurlencode() č. 2

<?php
echo '<a href="http://example.com/department_list_script/',
    rawurlencode('sales and marketing/Miami'), '">';
?>

Viz také: rawurldecode(),
urldecode(),
urlencode() a
RFC 1738.

Předcházející | Domů | Další
rawurldecode | Nahoru | urldecode


urldecode

(PHP 3, PHP 4 , PHP 5)

urldecode -- Dekódovat URL-kódovaný řetězec

Popis

string urldecode ( string str)

Dekóduje všechny %## kódy v daném řetězci. Vrátí dekódovaný řetězec.

Příklad 1. Příklad urldecode()

<?php
$a = explode('&', $QUERY_STRING);
$i = 0;
while ($i < count($a)) {
    $b = split('=', $a[$i]);
    echo 'Hodnota parametru ', htmlspecialchars(urldecode($b[0])),
         ' je ', htmlspecialchars(urldecode($b[1])), "<br />\n";
    $i++;
}
?>

Viz také urlencode(),
rawurlencode() a
rawurldecode().

Předcházející | Domů | Další
rawurlencode | Nahoru | urlencode


urlencode

(PHP 3, PHP 4 , PHP 5)

urlencode -- URL-kódovat řetězec

Popis

string urlencode ( string str)

Vrátí řetězec, ve kterém byly všechny nealfanumerické znaky kromě -_. nahrazeny znakem procent (%) následovaným dvěma šestnácktovými číslicemi a mezery kódovány jako znaky plus (+). Kódování je stejné jako u dat postovaných z WWW formuláře, tj. stejně jako u application/x-www-form-urlencoded typu. To se liší od RFC1738 kódování (viz rawurlencode()) v tom, že z historických důvodů se mezery kódují jako znaky plus (+). Tato funkce je vhodná při kódování řetězce, který se má použít jako query část URL jako příhodný způsob předání proměnných na další stránku:

Příklad 1. Příklad urlencode()

echo '<A HREF="mycgi?foo=', urlencode ($userinput), '">';

Poznámka: pozor při předávání proměnných, které by mohly odpovídat HTML entitám. Věci jako &amp, &copy a &pound browser analyzuje a místo požadovaného jména proměnné použije odpovídající entitu. To je zřejmý problém, na který W3C upozorňuje už léta. Příručka je tady: http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2 PHP podporuje změnu oddělovače argumentů na středník doporučovaný W3C skrze .ini direktivu arg_separator. Bohužel, většina uživatelských programů neposílá data z formulářů v tomto formátu. Přenositelnější formou je použít jako oddělovač &amp; místo &. Na to nemusíte měnit arg_separator. Nechte ho na &, ale kódujte URL pomocí htmlentities() (urlencode($data)).

Příklad 2. Příklad na urlencode/htmlentities()

echo '<A HREF="mycgi?foo=', htmlentities (urlencode ($userinput) ), '">';

Viz také urldecode(),
htmlentities(),
rawurldecode(),
rawurlencode().

Předcházející | Domů | Další
urldecode | Nahoru | Variable Functions


Variable Functions

Manuál PHP
Předcházející Další

CXII. Variable Functions

Úvod

For information on how variables behave, see the Variables entry in the Language Reference section of the manual.

Požadavky

Tyto funkce jsou k dispozici jako součást standardního modulu, který je vždy dostupný.

Instalace

K používání těchto funkcí není třeba žádná instalace, jsou součástí jádra PHP.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 1. Variables Configuration Options

Name | Default | Changeable
unserialize_callback_func | "" | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Zde je stručné vysvětlení konfiguračních direktiv.

unserialize_callback_func string

The unserialize callback function will called (with the undefined class' name as parameter), if the unserializer finds an undefined class which should be instanciated. A warning appears if the specified function is not defined, or if the function doesn't include/implement the missing class. So only set this entry, if you really want to implement such a callback-function.

See also unserialize().

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Obsah
doubleval -- Alias of floatval()
empty -- Determine whether a variable is empty
floatval -- Get float value of a variable
get_defined_vars -- Returns an array of all defined variables
get_resource_type -- Returns the resource type
gettype -- Get the type of a variable
import_request_variables -- Import GET/POST/Cookie variables into the global scope
intval -- Get integer value of a variable
is_array -- Finds whether a variable is an array
is_bool -- Finds out whether a variable is a boolean
is_callable -- Verify that the contents of a variable can be called as a function
is_double -- Alias of is_float()
is_float -- Finds whether a variable is a float
is_int -- Find whether a variable is an integer
is_integer -- Alias of is_int()
is_long -- Alias of is_int()
is_null -- Finds whether a variable is NULL
is_numeric -- Finds whether a variable is a number or a numeric string
is_object -- Finds whether a variable is an object
is_real -- Alias of is_float()
is_resource -- Finds whether a variable is a resource
is_scalar -- Finds whether a variable is a scalar
is_string -- Finds whether a variable is a string
isset -- Determine whether a variable is set
print_r -- Prints human-readable information about a variable
serialize -- Generates a storable representation of a value
settype -- Set the type of a variable
strval -- Get string value of a variable
unserialize -- Creates a PHP value from a stored representation
unset -- Unset a given variable
var_dump -- Dumps information about a variable
var_export -- Outputs or returns a parsable string representation of a variable

Předcházející | Domů | Další
urlencode | Nahoru | doubleval


doubleval

doubleval -- Alias of floatval()

Description

This function is an alias of floatval().

Poznámka: This alias is a left-over from a function-renaming. In older versions of PHP you'll need to use this alias of the floatval() function, because floatval() wasn't yet available in that version.

Předcházející | Domů | Další
Variable Functions | Nahoru | empty


empty

(PHP 3, PHP 4, PHP 5 )

empty -- Determine whether a variable is empty

Description

bool empty ( mixed var)

empty() returns FALSE if var has a non-empty and non-zero value. In otherwords, "", 0, "0", NULL, FALSE, array(), var $var;, and objects with empty properties, are all considered empty. TRUE is returned if var is empty.

empty() is the opposite of (boolean) var, except that no warning is generated when the variable is not set. See converting to boolean for more information.

Příklad 1. A simple empty() / isset() comparison.

<?php
$var = 0;

// Evaluates to true because $var is empty
if (empty($var)) {
    echo '$var is either 0, empty, or not set at all';
}

// Evaluates as true because $var is set
if (isset($var)) {
    echo '$var is set even though it is empty';
}
?>

Poznámka: Protože se jedná o jazykový konstrukt a ne o funkci, nemůžete ho volat pomocí funkcí v proměnných

Poznámka: empty() only checks variables as anything else will result in a parse error. In otherwords, the following will not work: empty(addslashes($name)).

See also isset(),
unset(),
array_key_exists(),
count(),
strlen(), and
the type comparison tables.

Předcházející | Domů | Další
doubleval | Nahoru | floatval


floatval

(PHP 4 >= 4.2.0, PHP 5)

floatval -- Get float value of a variable

Description

float floatval ( mixed var)

Returns the float value of var.

Var may be any scalar type. You cannot use floatval() on arrays or objects.

<?php
$var = '122.34343The';
$float_value_of_var = floatval($var);
echo $float_value_of_var; // prints 122.34343
?>

See also intval(), strval(), settype() and Type juggling.

Předcházející | Domů | Další
empty | Nahoru | get_defined_vars


get_defined_vars

(PHP 4 >= 4.0.4, PHP 5)

get_defined_vars -- Returns an array of all defined variables

Description

array get_defined_vars ( void )

This function returns an multidimensional array containing a list of all defined variables, be them environment, server or user-defined variables.

<?php
$b = array(1, 1, 2, 3, 5, 8);

$arr = get_defined_vars();

// print $b
print_r($arr["b"]);

/* print path to the PHP interpreter (if used as a CGI)
 * e.g. /usr/local/bin/php */
echo $arr["_"];

// print the command-line paramaters if any
print_r($arr["argv"]);

// print all the server vars
print_r($arr["_SERVER"]);

// print all the available keys for the arrays of variables
print_r(array_keys(get_defined_vars()));
?>

See also get_defined_functions() and get_defined_constants().

Předcházející | Domů | Další
floatval | Nahoru | get_resource_type


get_resource_type

(PHP 4 >= 4.0.2, PHP 5)

get_resource_type -- Returns the resource type

Description

string get_resource_type ( resource handle)

This function returns a string representing the type of the resource passed to it. If the paramater is not a valid resource, it generates an error.

<?php
// prints: mysql link
$c = mysql_connect();
echo get_resource_type($c) . "\n";

// prints: file
$fp = fopen("foo", "w");
echo get_resource_type($fp) . "\n";

// prints: domxml document
$doc = new_xmldoc("1.0");
echo get_resource_type($doc->doc) . "\n";
?>

Předcházející | Domů | Další
get_defined_vars | Nahoru | gettype


gettype

(PHP 3, PHP 4 , PHP 5)

gettype -- Get the type of a variable

Description

string gettype ( mixed var)

Returns the type of the PHP variable var.

Varování

Never use gettype() to test for a certain type, since the returned string may be subject to change in a future version. In addition, it is slow too, as it involves string comparison.

Instead, use the is_* functions.

Possibles values for the returned string are:

  • "boolean" (since PHP 4)

  • "integer"

  • "double" (for historical reasons "double" is returned in case of a float, and not simply "float")

  • "string"

  • "array"

  • "object"

  • "resource" (since PHP 4)

  • "NULL" (since PHP 4)

  • "user function" (PHP 3 only, deprecated)

  • "unknown type"

For PHP 4, you should use function_exists() and method_exists() to replace the prior usage of gettype() on a function.

See also
settype(),
is_array(),
is_bool(),
is_float(),
is_integer(),
is_null(),
is_numeric(),
is_object(),
is_resource(),
is_scalar(), and
is_string().

Předcházející | Domů | Další
get_resource_type | Nahoru | import_request_variables


import_request_variables

(PHP 4 >= 4.1.0, PHP 5)

import_request_variables -- Import GET/POST/Cookie variables into the global scope

Description

bool import_request_variables ( string types [, string prefix])

Imports GET/POST/Cookie variables into the global scope. It is useful if you disabled register_globals, but would like to see some variables in the global scope.

Using the types parameter, you can specify which request variables to import. You can use 'G', 'P' and 'C' characters respectively for GET, POST and Cookie. These characters are not case sensitive, so you can also use any combination of 'g', 'p' and 'c'. POST includes the POST uploaded file information. Note that the order of the letters matters, as when using "gp", the POST variables will overwrite GET variables with the same name. Any other letters than GPC are discarded.

The prefix parameter is used as a variable name prefix, prepended before all variable's name imported into the global scope. So if you have a GET value named "userid", and provide a prefix "pref_", then you'll get a global variable named $pref_userid.

If you're interested in importing other variables into the global scope, such as SERVER, consider using extract().

Poznámka: Although the prefix parameter is optional, you will get an E_NOTICE level error if you specify no prefix, or specify an empty string as a prefix. This is a possible security hazard. Notice level errors are not displayed using the default error reporting level.

<?php
// This will import GET and POST vars
// with an "rvar_" prefix
import_request_variables("gP", "rvar_");

echo $rvar_foo;
?>

See also $_REQUEST, register_globals, Predefined Variables, and extract().

Předcházející | Domů | Další
gettype | Nahoru | intval


intval

(PHP 3, PHP 4 , PHP 5)

intval -- Get integer value of a variable

Description

int intval ( mixed var [, int base])

Returns the integer value of var, using the specified base for the conversion (the default is base 10).

var may be any scalar type. You cannot use intval() on arrays or objects.

Poznámka: The base argument for intval() has no effect unless the var argument is a string.

See also floatval(), strval(), settype() and Type juggling.

Předcházející | Domů | Další
import_request_variables | Nahoru | is_array


is_array

(PHP 3, PHP 4 , PHP 5)

is_array -- Finds whether a variable is an array

Description

bool is_array ( mixed var)

Returns TRUE if var is an array, FALSE otherwise.

Příklad 1. Check that variable is an array

<?php
$yes = array('this', 'is', 'an array');

echo is_array($yes) ? 'Array' : 'not an Array';
echo "\n";

$no = 'this is a string';

echo is_array($no) ? 'Array' : 'not an Array';
?>

This example will output :

Array
not an Array

See also
is_float(),
is_int(),
is_integer(),
is_string(), and
is_object().

Předcházející | Domů | Další
intval | Nahoru | is_bool


is_bool

(PHP 4 , PHP 5)

is_bool -- Finds out whether a variable is a boolean

Description

bool is_bool ( mixed var)

Returns TRUE if the var parameter is a boolean.

Příklad 1. is_bool() examples

<?php
$a = false;
$b = 0;

// Since $a is a boolean, this is true
if (is_bool($a)) {
    echo "Yes, this is a boolean";
}

// Since $b is not a boolean, this is not true
if (is_bool($b)) {
    echo "Yes, this is a boolean";
}
?>

See also
is_array(),
is_float(),
is_int(),
is_integer(),
is_string(), and
is_object().

Předcházející | Domů | Další
is_array | Nahoru | is_callable


is_callable

(PHP 4 >= 4.0.6, PHP 5)

is_callable -- Verify that the contents of a variable can be called as a function

Description

bool is_callable ( mixed var [, bool syntax_only [, string callable_name]])

Verify that the contents of a variable can be called as a function. This can check that a simple variable contains the name of a valid function, or that an array contains a properly encoded object and function name.

The var parameter can be either the name of a function stored in a string variable, or an object and the name of a method within the object, like this:
array($SomeObject, 'MethodName')

If the syntax_only argument is TRUE the function only verifies that var might be a function or method. It will only reject simple variables that are not strings, or an array that does not have a valid structure to be used as a callback. The valid ones are supposed to have only 2 entries, the first of which is an object or a string, and the second a string.

The callable_name argument receives the "callable name". In the example below it's "someClass:someMethod". Note, however, that despite the implication that someClass::SomeMethod() is a callable static method, this is not the case.

<?php
//  How to check a variable to see if it can be called
//  as a function.

//
//  Simple variable containing a function
//

function someFunction()
{
}

$functionVariable = 'someFunction';

var_dump(is_callable($functionVariable, false, $callable_name));  // bool(true)

echo $callable_name, "\n";  // someFunction

//
//  Array containing a method
//

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

?>

Předcházející | Domů | Další
is_bool | Nahoru | is_double


is_double

is_double -- Alias of is_float()

Description

This function is an alias of is_float().

Předcházející | Domů | Další
is_callable | Nahoru | is_float


is_float

(PHP 3, PHP 4 , PHP 5)

is_float -- Finds whether a variable is a float

Description

bool is_float ( mixed var)

Returns TRUE if var is a float, FALSE otherwise.

Poznámka: To test if a variable is a number or a numeric string (such as form input, which is always a string), you must use is_numeric().

See also
is_bool(),
is_int(),
is_integer(),
is_numeric(),
is_string(),
is_array(), and
is_object(),

Předcházející | Domů | Další
is_double | Nahoru | is_int


is_int

(PHP 3, PHP 4 , PHP 5)

is_int -- Find whether a variable is an integer

Description

bool is_int ( mixed var)

Returns TRUE if var is an integer FALSE otherwise.

Poznámka: To test if a variable is a number or a numeric string (such as form input, which is always a string), you must use is_numeric().

See also is_bool(),
is_float(),
is_integer(),
is_numeric(),
is_string(),
is_array(), and
is_object().

Předcházející | Domů | Další
is_float | Nahoru | is_integer


is_integer

is_integer -- Alias of is_int()

Description

This function is an alias of is_int().

Předcházející | Domů | Další
is_int | Nahoru | is_long


is_long

is_long -- Alias of is_int()

Description

This function is an alias of is_int().

Předcházející | Domů | Další
is_integer | Nahoru | is_null


is_null

(PHP 4 >= 4.0.4, PHP 5)

is_null -- Finds whether a variable is NULL

Description

bool is_null ( mixed var)

Returns TRUE if var is null, FALSE otherwise.

See the NULL type when a variable is considered to be NULL and when not.

See also NULL,
is_bool(),
is_numeric(),
is_float(),
is_int(),
is_string(),
is_object(),
is_array(),
is_integer(), and
is_real().

Předcházející | Domů | Další
is_long | Nahoru | is_numeric


is_numeric

(PHP 4 , PHP 5)

is_numeric -- Finds whether a variable is a number or a numeric string

Description

bool is_numeric ( mixed var)

Returns TRUE if var is a number or a numeric string, FALSE otherwise.

See also is_bool(),
is_float(),
is_int(),
is_string(),
is_object(),
is_array(), and
is_integer().

Předcházející | Domů | Další
is_null | Nahoru | is_object


is_object

(PHP 3, PHP 4 , PHP 5)

is_object -- Finds whether a variable is an object

Description

bool is_object ( mixed var)

Returns TRUE if var is an object, FALSE otherwise.

See also is_bool(),
is_int(),
is_integer(),
is_float(),
is_string(), and
is_array().

Předcházející | Domů | Další
is_numeric | Nahoru | is_real


is_real

is_real -- Alias of is_float()

Description

This function is an alias of is_float().

Předcházející | Domů | Další
is_object | Nahoru | is_resource


is_resource

(PHP 4 , PHP 5)

is_resource -- Finds whether a variable is a resource

Description

bool is_resource ( mixed var)

is_resource() returns TRUE if the variable given by the var parameter is a resource, otherwise it returns FALSE.

Příklad 1. using is_resource()

<?php

$db_link = @mysql_connect('localhost', 'mysql_user', 'mysql_pass');
if (!is_resource($db_link)) {
    die('Can\'t connect : ' . mysql_error());
}

?>

See the documentation on the resource-type for more information.

Předcházející | Domů | Další
is_real | Nahoru | is_scalar


is_scalar

(PHP 4 >= 4.0.5, PHP 5)

is_scalar -- Finds whether a variable is a scalar

Description

bool is_scalar ( mixed var)

is_scalar() returns TRUE if the variable given by the var parameter is a scalar, otherwise it returns FALSE.

Scalar variables are those containing an integer, float, string or boolean. Types array, object and resource are not 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);
// prints: 3.1416

show_var($proteins)
// prints:
// array(3) {
//   [0]=>
//   string(10) "hemoglobin"
//   [1]=>
//   string(20) "cytochrome c oxidase"
//   [2]=>
//   string(10) "ferredoxin"
// }
?>

Poznámka: is_scalar() does not consider resource type values to be scalar as resources are abstract datatypes which are currently based on integers. This implementation detail should not be relied upon, as it may change.

See also is_bool(),
is_numeric(),
is_float(),
is_int(),
is_real(),
is_string(),
is_object(),
is_array(), and
is_integer().

Předcházející | Domů | Další
is_resource | Nahoru | is_string


is_string

(PHP 3, PHP 4 , PHP 5)

is_string -- Finds whether a variable is a string

Description

bool is_string ( mixed var)

Returns TRUE if var is a string, FALSE otherwise.

See also
is_bool(),
is_int(),
is_integer(),
is_float(),
is_real(),
is_object(), and
is_array().

Předcházející | Domů | Další
is_scalar | Nahoru | isset


isset

(PHP 3, PHP 4, PHP 5 )

isset -- Determine whether a variable is set

Description

bool isset ( mixed var [, mixed var [, ...]])

Returns TRUE if var exists; FALSE otherwise.

If a variable has been unset with unset(), it will no longer be set. isset() will return FALSE if testing a variable that has been set to NULL. Also note that a NULL byte ("\0") is not equivalent to the PHP NULL constant.

Warning: isset() only works with variables as passing anything else will result in a parse error. For checking if constants are set use the defined() function.

<?php

$var = '';

// This will evaluate to TRUE so the text will be printed.
if (isset($var)) {
    echo "This var is set set so I will print.";
}

// In the next examples we'll use var_dump to output
// the return value of isset().

$a = "test";
$b = "anothertest";

var_dump(isset($a));      // TRUE
var_dump(isset($a, $b)); // TRUE

unset ($a);

var_dump(isset($a));     // FALSE
var_dump(isset($a, $b)); // FALSE

$foo = NULL;
var_dump(isset($foo));   // FALSE

?>

This also work for elements in arrays:

<?php

$a = array ('test' => 1, 'hello' => NULL);

var_dump(isset($a['test']));            // TRUE
var_dump(isset($a['foo']));             // FALSE
var_dump(isset($a['hello']));           // FALSE

// The key 'hello' equals NULL so is considered unset
// If you want to check for NULL key values then try:
var_dump(array_key_exists('hello', $a)); // TRUE

?>

Poznámka: Protože se jedná o jazykový konstrukt a ne o funkci, nemůžete ho volat pomocí funkcí v proměnných

See also empty(), unset(), defined(), the type comparison tables, array_key_exists(), and the error control @ operator.

Předcházející | Domů | Další
is_string | Nahoru | print_r


print_r

(PHP 4 , PHP 5)

print_r -- Prints human-readable information about a variable

Description

bool print_r ( mixed expression [, bool return])

Poznámka: The return parameter was added in PHP 4.3.0

print_r() displays information about a variable in a way that's readable by humans. If given a string, integer or float, the value itself will be printed. If given an array, values will be presented in a format that shows keys and elements. Similar notation is used for objects. print_r() and var_export() will also show protected and private properties of objects with PHP 5, on the contrary to var_dump().

Remember that print_r() will move the array pointer to the end. Use reset() to bring it back to beginning.

<pre>
<?php
    $a = array ('a' => 'apple', 'b' => 'banana', 'c' => array ('x', 'y', 'z'));
    print_r ($a);
?>
</pre>

Which will output:

<pre>
Array
(
    [a] => apple
    [b] => banana
    [c] => Array
        (
            [0] => x
            [1] => y
            [2] => z
        )
)
</pre>

If you would like to capture the output of print_r(), use the return parameter. If this parameter is set to TRUE, print_r() will return its output, instead of printing it (which it does by default).

Příklad 1. return parameter example

<?php
    $b = array ('m' => 'monkey', 'foo' => 'bar', 'x' => array ('x', 'y', 'z'));
    $results = print_r($b, true); //$results now contains output from print_r
?>

Poznámka: If you need to capture the output of print_r() with a version of PHP prior to 4.3.0, use the output-control functions.

Poznámka: Prior to PHP 4.0.4, print_r() will continue forever if given an array or object that contains a direct or indirect reference to itself. An example is print_r($GLOBALS) because $GLOBALS is itself a global variable that contains a reference to itself.

See also ob_start(),
var_dump() and
var_export().

Předcházející | Domů | Další
isset | Nahoru | serialize


serialize

(PHP 3>= 3.0.5, PHP 4 , PHP 5)

serialize -- Generates a storable representation of a value

Description

string serialize ( mixed value)

serialize() returns a string containing a byte-stream representation of value that can be stored anywhere.

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, use unserialize(). serialize() handles all types, except the resource-type. You can even serialize() arrays that contain references to itself. References inside the array/object you are serialize()ing will also be stored.

When serializing objects, PHP will attempt to call the member function __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 unserialize() the __wakeup() member function is called.

Poznámka: In PHP 3, object properties will be serialized, but methods are lost. PHP 4 removes that limitation and restores both properties and methods. Please see the Serializing Objects section of Classes and Objects for more information.

Příklad 1. serialize() example

<?php
// $session_data contains a multi-dimensional array with session
// information for the current user.  We use serialize() to store
// it in a database at the end of the request.

$conn = odbc_connect("webdb", "php", "chicken");
$stmt = odbc_prepare($conn,
      "UPDATE sessions SET data = ? WHERE id = ?");
$sqldata = array (serialize($session_data), $PHP_AUTH_USER);
if (!odbc_execute($stmt, &$sqldata)) {
    $stmt = odbc_prepare($conn,
     "INSERT INTO sessions (id, data) VALUES(?, ?)");
    if (!odbc_execute($stmt, &$sqldata)) {
        /* Something went wrong.. */
    }
}
?>

See Also: unserialize().

Předcházející | Domů | Další
print_r | Nahoru | settype


settype

(PHP 3, PHP 4 , PHP 5)

settype -- Set the type of a variable

Description

bool settype ( mixed var, string type)

Set the type of variable var to type.

Possibles values of type are:

  • "boolean" (or, since PHP 4.2.0, "bool")

  • "integer" (or, since PHP 4.2.0, "int")

  • "float" (only possible since PHP 4.2.0, for older versions use the deprecated variant "double")

  • "string"

  • "array"

  • "object"

  • "null" (since PHP 4.2.0)

Vrací TRUE při úspěchu, FALSE při selhání.

Příklad 1. settype() example

<?php
$foo = "5bar"; // string
$bar = true;   // boolean

settype($foo, "integer"); // $foo is now 5   (integer)
settype($bar, "string");  // $bar is now "1" (string)
?>

See also gettype(), type-casting and type-juggling.

Předcházející | Domů | Další
serialize | Nahoru | strval


strval

(PHP 3, PHP 4 , PHP 5)

strval -- Get string value of a variable

Description

string strval ( mixed var)

Returns the string value of var. See the documentation on string for more information on converting to string.

var may be any scalar type. You cannot use strval() on arrays or objects.

See also floatval(), intval(), settype() and Type juggling.

Předcházející | Domů | Další
settype | Nahoru | unserialize


unserialize

(PHP 3>= 3.0.5, PHP 4 , PHP 5)

unserialize -- Creates a PHP value from a stored representation

Description

mixed unserialize ( string str)

unserialize() takes a single serialized variable (see serialize()) and converts it back into a PHP value. The converted value is returned, and can be an integer, float, string, array or object. In case the passed string is not unserializeable, FALSE is returned.

unserialize_callback_func directive: It's 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".) Use your php.ini, ini_set() or .htaccess to define 'unserialize_callback_func'. Everytime an undefined class should be instantiated, it'll be called. To disable this feature just empty this setting. Also note that the directive unserialize_callback_func directive became available in PHP 4.2.0.

If the variable being unserialized is an object, after successfully reconstructing the object PHP will automatically attempt to call the __wakeup() member function (if it exists).

Příklad 1. unserialize_callback_func example

<?php
$serialized_object='O:1:"a":1:{s:5:"value";s:3:"100";}';

// unserialize_callback_func directive available as of PHP 4.2.0
ini_set('unserialize_callback_func', 'mycallback'); // set your callback_function

function mycallback($classname)
{
    // just include a file containing your classdefinition
    // you get $classname to figure out which classdefinition is required
}
?>

Poznámka: In PHP 3, methods are not preserved when unserializing a serialized object. PHP 4 removes that limitation and restores both properties and methods. Please see the Serializing Objects section of Classes and Objects or more information.

Příklad 2. unserialize() example

<?php
// Here, we use unserialize() to load session data to the
// $session_data array from the string selected from a database.
// This example complements the one described with serialize().

$conn = odbc_connect("webdb", "php", "chicken");
$stmt = odbc_prepare($conn, "SELECT data FROM sessions WHERE id = ?");
$sqldata = array ($PHP_AUTH_USER);
if (!odbc_execute($stmt, &$sqldata) || !odbc_fetch_into($stmt, &$tmp)) {
    // if the execute or fetch fails, initialize to empty array
    $session_data = array();
} else {
    // we should now have the serialized data in $tmp[0].
    $session_data = unserialize($tmp[0]);
    if (!is_array($session_data)) {
        // something went wrong, initialize to empty array
        $session_data = array();
    }
}
?>

See also serialize().

Předcházející | Domů | Další
strval | Nahoru | unset


unset

(PHP 3, PHP 4, PHP 5 )

unset -- Unset a given variable

Description

void unset ( mixed var [, mixed var [, mixed ...]])

unset() destroys the specified variables. Note that in PHP 3, unset() will always return TRUE (actually, the integer value 1). In PHP 4, however, unset() is no longer a true function: it is now a statement. As such no value is returned, and attempting to take the value of unset() results in a parse error.

Příklad 1. unset() example

<?php
// destroy a single variable
unset($foo);

// destroy a single element of an array
unset($bar['quux']);

// destroy more than one variable
unset($foo1, $foo2, $foo3);
?>

The behavior of unset() inside of a function can vary depending on what type of variable you are attempting to destroy.

If a globalized variable is unset() inside of a function, only the local variable is destroyed. The variable in the calling environment will retain the same value as before unset() was called.

<?php
function destroy_foo()
{
    global $foo;
    unset($foo);
}

$foo = 'bar';
destroy_foo();
echo $foo;
?>

The above example would output:

bar

If a variable that is PASSED BY REFERENCE is unset() inside of a function, only the local variable is destroyed. The variable in the calling environment will retain the same value as before unset() was called.

<?php
function foo(&$bar)
{
    unset($bar);
    $bar = "blah";
}

$bar = 'something';
echo "$bar\n";

foo($bar);
echo "$bar\n";
?>

The above example would output:

something
something

If a static variable is unset() inside of a function, unset() destroys the variable and all its references.

<?php
function foo()
{
    static $a;
    $a++;
    echo "$a\n";
    unset($a);
}

foo();
foo();
foo();
?>

The above example would output:

1
2
3

If you would like to unset() a global variable inside of a function, you can use the $GLOBALS array to do so:

<?php
function foo()
{
    unset($GLOBALS['bar']);
}

$bar = "something";
foo();
?>

Poznámka: Protože se jedná o jazykový konstrukt a ne o funkci, nemůžete ho volat pomocí funkcí v proměnných

See also isset(),
empty(), and
array_splice().

Předcházející | Domů | Další
unserialize | Nahoru | var_dump


var_dump

(PHP 3>= 3.0.5, PHP 4 , PHP 5)

var_dump -- Dumps information about a variable

Description

void var_dump ( mixed expression [, mixed expression [, ...]])

This function displays structured information about one or more expressions that includes its type and value. Arrays and objects are explored recursively with values indented to show structure.

In PHP only public properties of objects will be returned in the output. var_export() and print_r() will also return protected and private properties.

Tip: Jako pro cokoliv, co posílá své výsledky přímo do prohlížeče, můžete použít funkce pro řízení výstupu k zachycení výstupu této funkce a jeho uložení - například - do řetězce (string).

Příklad 1. var_dump() example

<?php
$a = array (1, 2, array ("a", "b", "c"));
var_dump($a);
?>

Output:

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);

?>

output:

float(3.1)
bool(true)

See also var_export() and print_r().

Předcházející | Domů | Další
unset | Nahoru | var_export


var_export

(PHP 4 >= 4.2.0, PHP 5)

var_export -- Outputs or returns a parsable string representation of a variable

Description

mixed var_export ( mixed expression [, bool return])

This function returns structured information about the variable that is passed to this function. It is similar to var_dump() with two exceptions. The first one is that the returned representation is valid PHP code, the second that it will also return protected and private properties of an object with PHP 5.

You can also return the variable representation by using TRUE as second parameter to this function.

<?php
$a = array (1, 2, array ("a", "b", "c"));
var_export($a);
?>

output:

array (
  0 => 1,
  1 => 2,
  2 =>
  array (
    0 => 'a',
    1 => 'b',
    2 => 'c',
  ),
)
<?php

$b = 3.1;
$v = var_export($b, true);
echo $v;

?>

output:

3.1

See also var_dump() and print_r().

Předcházející | Domů | Další
var_dump | Nahoru | vpopmail Functions


vpopmail Functions

Manuál PHP
Předcházející Další

CXIII. vpopmail Functions

Úvod

Varování

Toto rozšíření je EXPERIMENTÁLNÍ. Chování tohoto rozšíření, názvy funkcí a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může bez ohlášení změnit. Berte to v úvahu a používejte tento modul na vlastní nebezpečí.

This extension has been moved from PHP as of PHP 4.3.0 and now vpopmail lives in PECL.

Instalace

In PHP 4, these functions are only available if PHP was configured with --with-vpopmail[=DIR].

Obsah
vpopmail_add_alias_domain_ex -- Add alias to an existing virtual domain
vpopmail_add_alias_domain -- Add an alias for a virtual domain
vpopmail_add_domain_ex -- Add a new virtual domain
vpopmail_add_domain -- Add a new virtual domain
vpopmail_add_user -- Add a new user to the specified virtual domain
vpopmail_alias_add -- insert a virtual alias
vpopmail_alias_del_domain -- deletes all virtual aliases of a domain
vpopmail_alias_del -- deletes all virtual aliases of a user
vpopmail_alias_get_all -- get all lines of an alias for a domain
vpopmail_alias_get -- get all lines of an alias for a domain
vpopmail_auth_user -- Attempt to validate a username/domain/password. Returns true/false
vpopmail_del_domain_ex -- Delete a virtual domain
vpopmail_del_domain -- Delete a virtual domain
vpopmail_del_user -- Delete a user from a virtual domain
vpopmail_error -- Get text message for last vpopmail error. Returns string
vpopmail_passwd -- Change a virtual user's password
vpopmail_set_user_quota -- Sets a virtual user's quota

Předcházející | Domů | Další
var_export | Nahoru | vpopmail_add_alias_domain_ex


vpopmail_add_alias_domain_ex

(4.0.5 - 4.2.3 only)

vpopmail_add_alias_domain_ex -- Add alias to an existing virtual domain

Description

bool vpopmail_add_alias_domain_ex ( string olddomain, string newdomain)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
vpopmail Functions | Nahoru | vpopmail_add_alias_domain


vpopmail_add_alias_domain

(4.0.5 - 4.2.3 only)

vpopmail_add_alias_domain -- Add an alias for a virtual domain

Description

bool vpopmail_add_alias_domain ( string domain, string aliasdomain)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
vpopmail_add_alias_domain_ex | Nahoru | vpopmail_add_domain_ex


vpopmail_add_domain_ex

(4.0.5 - 4.2.3 only)

vpopmail_add_domain_ex -- Add a new virtual domain

Description

bool vpopmail_add_domain_ex ( string domain, string passwd [, string quota [, string bounce [, bool apop]]])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
vpopmail_add_alias_domain | Nahoru | vpopmail_add_domain


vpopmail_add_domain

(4.0.5 - 4.2.3 only)

vpopmail_add_domain -- Add a new virtual domain

Description

bool vpopmail_add_domain ( string domain, string dir, int uid, int gid)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
vpopmail_add_domain_ex | Nahoru | vpopmail_add_user


vpopmail_add_user

(4.0.5 - 4.2.3 only)

vpopmail_add_user -- Add a new user to the specified virtual domain

Description

bool vpopmail_add_user ( string user, string domain, string password [, string gecos [, bool apop]])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
vpopmail_add_domain | Nahoru | vpopmail_alias_add


vpopmail_alias_add

(4.1.0 - 4.2.3 only)

vpopmail_alias_add -- insert a virtual alias

Description

bool vpopmail_alias_add ( string user, string domain, string alias)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
vpopmail_add_user | Nahoru | vpopmail_alias_del_domain


vpopmail_alias_del_domain

(4.1.0 - 4.2.3 only)

vpopmail_alias_del_domain -- deletes all virtual aliases of a domain

Description

bool vpopmail_alias_del_domain ( string domain)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
vpopmail_alias_add | Nahoru | vpopmail_alias_del


vpopmail_alias_del

(4.1.0 - 4.2.3 only)

vpopmail_alias_del -- deletes all virtual aliases of a user

Description

bool vpopmail_alias_del ( string user, string domain)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
vpopmail_alias_del_domain | Nahoru | vpopmail_alias_get_all


vpopmail_alias_get_all

(4.1.0 - 4.2.3 only)

vpopmail_alias_get_all -- get all lines of an alias for a domain

Description

array vpopmail_alias_get_all ( string domain)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
vpopmail_alias_del | Nahoru | vpopmail_alias_get


vpopmail_alias_get

(4.1.0 - 4.2.3 only)

vpopmail_alias_get -- get all lines of an alias for a domain

Description

array vpopmail_alias_get ( string alias, string domain)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
vpopmail_alias_get_all | Nahoru | vpopmail_auth_user


vpopmail_auth_user

(4.0.5 - 4.2.3 only)

vpopmail_auth_user -- Attempt to validate a username/domain/password. Returns true/false

Description

bool vpopmail_auth_user ( string user, string domain, string password [, string apop])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
vpopmail_alias_get | Nahoru | vpopmail_del_domain_ex


vpopmail_del_domain_ex

(4.0.5 - 4.2.3 only)

vpopmail_del_domain_ex -- Delete a virtual domain

Description

bool vpopmail_del_domain_ex ( string domain)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
vpopmail_auth_user | Nahoru | vpopmail_del_domain


vpopmail_del_domain

(4.0.5 - 4.2.3 only)

vpopmail_del_domain -- Delete a virtual domain

Description

bool vpopmail_del_domain ( string domain)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
vpopmail_del_domain_ex | Nahoru | vpopmail_del_user


vpopmail_del_user

(4.0.5 - 4.2.3 only)

vpopmail_del_user -- Delete a user from a virtual domain

Description

bool vpopmail_del_user ( string user, string domain)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
vpopmail_del_domain | Nahoru | vpopmail_error


vpopmail_error

(4.0.5 - 4.2.3 only)

vpopmail_error -- Get text message for last vpopmail error. Returns string

Description

string vpopmail_error ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
vpopmail_del_user | Nahoru | vpopmail_passwd


vpopmail_passwd

(4.0.5 - 4.2.3 only)

vpopmail_passwd -- Change a virtual user's password

Description

bool vpopmail_passwd ( string user, string domain, string password)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
vpopmail_error | Nahoru | vpopmail_set_user_quota


vpopmail_set_user_quota

(4.0.5 - 4.2.3 only)

vpopmail_set_user_quota -- Sets a virtual user's quota

Description

bool vpopmail_set_user_quota ( string user, string domain, string quota)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
vpopmail_passwd | Nahoru | W32api Functions


W32api Functions

Manuál PHP
Předcházející Další

CXIV. W32api Functions

Úvod

This extension is a generic extension API to DLLs. This was originally written to allow access to the Win32 API from PHP, although you can also access other functions exported via other DLLs.

Currently supported types are generic PHP types (strings, booleans, floats, integers and nulls) and types you define with w32api_deftype().

Varování

Toto rozšíření je EXPERIMENTÁLNÍ. Chování tohoto rozšíření, názvy funkcí a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může bez ohlášení změnit. Berte to v úvahu a používejte tento modul na vlastní nebezpečí.

Požadavky

This extension will only work on Windows systems.

Instalace

K používání těchto funkcí není třeba žádná instalace, jsou součástí jádra PHP.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

This extension defines one resource type, used for user defined types. The name of this resource is "dynaparm".

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

DC_MICROSOFT (integer)

DC_BORLAND (integer)

DC_CALL_CDECL (integer)

DC_CALL_STD (integer)

DC_RETVAL_MATH4 (integer)

DC_RETVAL_MATH8 (integer)

DC_CALL_STD_BO (integer)

DC_CALL_STD_MS (integer)

DC_CALL_STD_M8 (integer)

DC_FLAG_ARGPTR (integer)

Příklady

This example gets the amount of time the system has been running and displays it in a message box.

Příklad 1. Get the uptime and display it in a message box

<?php
// Define constants needed, taken from
// Visual Studio/Tools/Winapi/WIN32API.txt
define("MB_OK", 0);

// Load the extension in
dl("php_w32api.dll");

// Register the GetTickCount function from kernel32.dll
w32api_register_function("kernel32.dll",
                         "GetTickCount",
                         "long");

// Register the MessageBoxA function from User32.dll
w32api_register_function("User32.dll",
                         "MessageBoxA",
                         "long");

// Get uptime information
$ticks = GetTickCount();

// Convert it to a nicely displayable text
$secs  = floor($ticks / 1000);
$mins  = floor($secs / 60);
$hours = floor($mins / 60);

$str = sprintf("You have been using your computer for:" .
                "\r\n %d Milliseconds, or \r\n %d Seconds" .
                "or \r\n %d mins or\r\n %d hours %d mins.",
                $ticks,
                $secs,
                $mins,
                $hours,
                $mins - ($hours*60));

// Display a message box with only an OK button and the uptime text
MessageBoxA(NULL,
            $str,
            "Uptime Information",
            MB_OK);
?>
Obsah
w32api_deftype -- Defines a type for use with other w32api_functions
w32api_init_dtype -- Creates an instance of the data type typename and fills it with the values passed
w32api_invoke_function -- Invokes function funcname with the arguments passed after the function name
w32api_register_function -- Registers function function_name from library with PHP
w32api_set_call_method -- Sets the calling method used

Předcházející | Domů | Další
vpopmail_set_user_quota | Nahoru | w32api_deftype


w32api_deftype

(4.2.0 - 4.2.3 only)

w32api_deftype -- Defines a type for use with other w32api_functions

Description

bool w32api_deftype ( string typename, string member1_type, string member1_name [, string ... [, string ...]])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

If you would like to define a type for a w32api call, you need to call w32api_deftype(). This function takes 2n+1 arguments, where n is the number of members the type has. The first argument is the name of the type. After that is the type of the member followed by the members name (in pairs). A member type can be a user defined type. All the type names are case sensitive. Built in type names should be provided in lowercase. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
W32api Functions | Nahoru | w32api_init_dtype


w32api_init_dtype

(4.2.0 - 4.2.3 only)

w32api_init_dtype -- Creates an instance of the data type typename and fills it with the values passed

Description

resource w32api_init_dtype ( string typename, mixed value [, mixed ...])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

This function creates an instance of the data type named typename, filling in the values of the data type. The typename parameter is case sensitive. You should give the values in the same order as you defined the data type with w32api_deftype(). The type of the resource returned is dynaparm.

Předcházející | Domů | Další
w32api_deftype | Nahoru | w32api_invoke_function


w32api_invoke_function

(4.2.0 - 4.2.3 only)

w32api_invoke_function -- Invokes function funcname with the arguments passed after the function name

Description

mixed w32api_invoke_function ( string funcname, mixed argument [, mixed ...])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

w32api_invoke_function() tries to find the previously registered function, named funcname, passing the parameters you provided. The return type is the one you set when you registered the function, the value is the one returned by the function itself. Any of the arguments can be of any PHP type or w32api_deftype() defined type, as needed.

Předcházející | Domů | Další
w32api_init_dtype | Nahoru | w32api_register_function


w32api_register_function

(4.2.0 - 4.2.3 only)

w32api_register_function -- Registers function function_name from library with PHP

Description

bool w32api_register_function ( string library, string function_name, string return_type)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

This function tries to find the function_name function in libary, and tries to import it into PHP. The function will be registered with the given return_type. This type can be a generic PHP type, or a type defined with w32api_deftype(). All type names are case sensitive. Built in type names should be provided in lowercase. Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
w32api_invoke_function | Nahoru | w32api_set_call_method


w32api_set_call_method

(4.2.0 - 4.2.3 only)

w32api_set_call_method -- Sets the calling method used

Description

void w32api_set_call_method ( int method)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

This function sets the method call type. The parameter can be one of the constants DC_CALL_CDECL or DC_CALL_STD. The extension default is DC_CALL_STD.

Předcházející | Domů | Další
w32api_register_function | Nahoru | WDDX funkce


WDDX funkce

Manuál PHP
Předcházející Další

CXV. WDDX funkce

Úvod

Tyto funkce jsou určeny pro práci s WDDX.

Požadavky

Pokud chcete používat WDDX, budete muset nainstalovat expat knihovnu (která je u Apache 1.3.7 a vyšších).

Instalace

Po instalaci expatu zkompilujte PHP s volbou --enable-wddx.

Verze PHP pro Windows má vestavěnou podporu pro toto rozšíření. K použití těchto funkcí není třeba načítat žádná další rozšíření.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Příklady

Všechny funkce, které serializují proměnné, používají první element pole k rozhodnutí jestli se toto pole serializuje do pole nebo struktury. Pokud má první element řetězec jako index, serializuje se do struktury, jinak do pole.

Příklad 1. Serializace jediné hodnoty

<?php
print wddx_serialize_value("Ukázka převodu paketu z PHP do WDDX", "PHP packet");
?>

Tato ukázka vytvoří:

<wddxPacket version='1.0'><header comment='PHP packet'/><data>
<string>Ukázka převodu paketu z PHP do WDDX</string></data></wddxPacket>

Příklad 2. Použití inkrementálních paketů

<?php
$pi = 3.1415926;
$packet_id = wddx_packet_start("PHP");
wddx_add_vars($packet_id, "pi");

/* Předpokládejme, že $cities pochází z databáze */
$cities = array("Austin", "Novato", "Seattle");
wddx_add_vars($packet_id, "cities");

$packet = wddx_packet_end($packet_id);
print $packet;
?>

Tato ukázka vytvoří:

<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>

Poznámka: If you want to serialize non-ASCII characters you have to set the appropriate locale before doing so (see setlocale()).

Obsah
wddx_add_vars -- Přidat proměnné do WDDX paketu s určeným ID
wddx_deserialize -- Deserializovat WDDX paket
wddx_packet_end -- Ukončit WDDX paket se zadaným ID
wddx_packet_start -- Začít nový WDDX paket obsahující strukturu
wddx_serialize_value -- Serializovat jedinou hodnotu do WDDX paketu
wddx_serialize_vars -- Serializovat proměnné do WDDX paketu

Předcházející | Domů | Další
w32api_set_call_method | Nahoru | wddx_add_vars


wddx_add_vars

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

wddx_add_vars -- Přidat proměnné do WDDX paketu s určeným ID

Popis

wddx_add_vars ( int packet_id, mixed name_var [, mixed ...])

wddx_add_vars() se používá k serializaci předaných proměnných a přidání výsledku do paketu specifikovaného packet_id. Proměnné určené k serializaci se udávají stejně jako u wddx_serialize_vars().

Předcházející | Domů | Další
WDDX funkce | Nahoru | wddx_deserialize


wddx_deserialize

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

wddx_deserialize -- Deserializovat WDDX paket

Popis

mixed wddx_deserialize ( string packet)

wddx_deserialized() přijímá řetězec packet a deserializuje ho. Vrací výsledek, což může být řetězec, číslo, nebo pole. Pozn.: Struktury se deserializují do asociativních polí.

Předcházející | Domů | Další
wddx_add_vars | Nahoru | wddx_packet_end


wddx_packet_end

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

wddx_packet_end -- Ukončit WDDX paket se zadaným ID

Popis

string wddx_packet_end ( int packet_id)

wddx_packet_end() ukončí WDDX paket určený argumentem packet_id a vrací řetězec obsahující tento paket.

Předcházející | Domů | Další
wddx_deserialize | Nahoru | wddx_packet_start


wddx_packet_start

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

wddx_packet_start -- Začít nový WDDX paket obsahující strukturu

Popis

int wddx_packet_start ( [string comment])

wddx_packet_start() se používá k započetí nového WDDX paketu pro inkrementální přidávání proměnných. Přijímá volitelný řetězec comment a vrací ID packetu pro použití v dalších funkcích. Uvnitř paketu automaticky vytváří definici struktury která bude obsahovat přidané proměnné.

Předcházející | Domů | Další
wddx_packet_end | Nahoru | wddx_serialize_value


wddx_serialize_value

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

wddx_serialize_value -- Serializovat jedinou hodnotu do WDDX paketu

Popis

string wddx_serialize_value ( mixed var [, string comment])

wddx_serialize_value() se používá k vytvoření WDDX paketu z jediné dané hodnoty. Přijímá hodnotu obsaženou ve var a volitelný řetězec comment, který se použije v hlavičce paketu, a vrací WDDX paket.

Předcházející | Domů | Další
wddx_packet_start | Nahoru | wddx_serialize_vars


wddx_serialize_vars

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

wddx_serialize_vars -- Serializovat proměnné do WDDX paketu

Popis

string wddx_serialize_vars ( mixed var_name [, mixed ...])

wddx_serialize_vars() se používá k vytvoření WDDX paketu se strukturou která obsahuje serializovanou reprezentaci předaných proměnných.

wddx_serialize_vars() přijímá proměnný počet argumentů, každý z nich může být buď řetězec obsahující název proměnné, nebo pole názvů proměnných, nebo jiné pole atd.

Příklad 1. wddx_serialize_vars example

<?php
$a = 1;
$b = 5.5;
$c = array("blue", "orange", "violet");
$d = "colors";

$clvars = array("c", "d");
print wddx_serialize_vars("a", "b", $clvars);
?>

Výše uvedená ukázka vytvoří:
<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>

Předcházející | Domů | Další
wddx_serialize_value | Nahoru | XML Parser Functions


XML Parser Functions

Manuál PHP
Předcházející Další

CXVI. XML Parser Functions

Úvod

XML (eXtensible Markup Language) is a data format for structured document interchange on the Web. It is a standard defined by The World Wide Web consortium (W3C). Information about XML and related technologies can be found at http://www.w3.org/XML/.

This PHP extension implements support for James Clark's expat in PHP. This toolkit lets you parse, but not validate, XML documents. It supports three source character encodings also provided by PHP: US-ASCII, ISO-8859-1 and UTF-8. UTF-16 is not supported.

This extension lets you create XML parsers and then define handlers for different XML events. Each XML parser also has a few parameters you can adjust.

Požadavky

This extension uses expat, which can be found at http://www.jclark.com/xml/expat.html. The Makefile that comes with expat does not build a library by default, you can use this make rule for that:
libexpat.a: $(OBJS)
    ar -rc $@ $(OBJS)
    ranlib $@
A source RPM package of expat can be found at http://sourceforge.net/projects/expat/.

Instalace

These functions are enabled by default, using the bundled expat library. You can disable XML support with --disable-xml. If you compile PHP as a module for Apache 1.3.9 or later, PHP will automatically use the bundled expat library from Apache. In order you don't want to use the bundled expat library configure PHP --with-expat-dir=DIR, where DIR should point to the base installation directory of expat.

Verze PHP pro Windows má vestavěnou podporu pro toto rozšíření. K použití těchto funkcí není třeba načítat žádná další rozšíření.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

xml

The xml resource as returned by xml_parser_create() and xml_parser_create_ns() references an xml parser instance to be used with the functions provided by this extension.

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

XML_ERROR_NONE (integer)

XML_ERROR_NO_MEMORY (integer)

XML_ERROR_SYNTAX (integer)

XML_ERROR_NO_ELEMENTS (integer)

XML_ERROR_INVALID_TOKEN (integer)

XML_ERROR_UNCLOSED_TOKEN (integer)

XML_ERROR_PARTIAL_CHAR (integer)

XML_ERROR_TAG_MISMATCH (integer)

XML_ERROR_DUPLICATE_ATTRIBUTE (integer)

XML_ERROR_JUNK_AFTER_DOC_ELEMENT (integer)

XML_ERROR_PARAM_ENTITY_REF (integer)

XML_ERROR_UNDEFINED_ENTITY (integer)

XML_ERROR_RECURSIVE_ENTITY_REF (integer)

XML_ERROR_ASYNC_ENTITY (integer)

XML_ERROR_BAD_CHAR_REF (integer)

XML_ERROR_BINARY_ENTITY_REF (integer)

XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF (integer)

XML_ERROR_MISPLACED_XML_PI (integer)

XML_ERROR_UNKNOWN_ENCODING (integer)

XML_ERROR_INCORRECT_ENCODING (integer)

XML_ERROR_UNCLOSED_CDATA_SECTION (integer)

XML_ERROR_EXTERNAL_ENTITY_HANDLING (integer)

XML_OPTION_CASE_FOLDING (integer)

XML_OPTION_TARGET_ENCODING (integer)

XML_OPTION_SKIP_TAGSTART (integer)

XML_OPTION_SKIP_WHITE (integer)

Event Handlers

The XML event handlers defined are:

Tabulka 1. Supported XML handlers

PHP function to set handler | Event description
xml_set_element_handler() | Element events are issued whenever the XML parser encounters start or end tags. There are separate handlers for start tags and end tags.
xml_set_character_data_handler() | Character data is roughly all the non-markup contents of XML documents, including whitespace between tags. Note that the XML parser does not add or remove any whitespace, it is up to the application (you) to decide whether whitespace is significant.
xml_set_processing_instruction_handler() | PHP programmers should be familiar with processing instructions (PIs) already. <?php ?> is a processing instruction, where php is called the "PI target". The handling of these are application-specific, except that all PI targets starting with "XML" are reserved.
xml_set_default_handler() | What goes not to another handler goes to the default handler. You will get things like the XML and document type declarations in the default handler.
xml_set_unparsed_entity_decl_handler() | This handler will be called for declaration of an unparsed (NDATA) entity.
xml_set_notation_decl_handler() | This handler is called for declaration of a notation.
xml_set_external_entity_ref_handler() | This handler is called when the XML parser finds a reference to an external parsed general entity. This can be a reference to a file or URL, for example. See the external entity example for a demonstration.

Case Folding

The element handler functions may get their element names case-folded. Case-folding is defined by the XML standard as "a process applied to a sequence of characters, in which those identified as non-uppercase are replaced by their uppercase equivalents". In other words, when it comes to XML, case-folding simply means uppercasing.

By default, all the element names that are passed to the handler functions are case-folded. This behaviour can be queried and controlled per XML parser with the xml_parser_get_option() and xml_parser_set_option() functions, respectively.

Error Codes

The following constants are defined for XML error codes (as returned by 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

Character Encoding

PHP's XML extension supports the Unicode character set through different character encodings. There are two types of character encodings, source encoding and target encoding. PHP's internal representation of the document is always encoded with UTF-8.

Source encoding is done when an XML document is parsed. Upon creating an XML parser, a source encoding can be specified (this encoding can not be changed later in the XML parser's lifetime). The supported source encodings are ISO-8859-1, US-ASCII and UTF-8. The former two are single-byte encodings, which means that each character is represented by a single byte. UTF-8 can encode characters composed by a variable number of bits (up to 21) in one to four bytes. The default source encoding used by PHP is ISO-8859-1.

Target encoding is done when PHP passes data to XML handler functions. When an XML parser is created, the target encoding is set to the same as the source encoding, but this may be changed at any point. The target encoding will affect character data as well as tag names and processing instruction targets.

If the XML parser encounters characters outside the range that its source encoding is capable of representing, it will return an error.

If PHP encounters characters in the parsed XML document that can not be represented in the chosen target encoding, the problem characters will be "demoted". Currently, this means that such characters are replaced by a question mark.

Příklady

Here are some example PHP scripts parsing XML documents.

XML Element Structure Example

This first example displays the structure of the start elements in a document with indentation.

Příklad 1. Show XML Element Structure

<?php
$file = "data.xml";
$depth = array();

function startElement($parser, $name, $attrs)
{
    global $depth;
    for ($i = 0; $i < $depth[$parser]; $i++) {
        echo "  ";
    }
    echo "$name\n";
    $depth[$parser]++;
}

function endElement($parser, $name)
{
    global $depth;
    $depth[$parser]--;
}

$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
if (!($fp = fopen($file, "r"))) {
    die("could not open XML input");
}

while ($data = fread($fp, 4096)) {
    if (!xml_parse($xml_parser, $data, feof($fp))) {
        die(sprintf("XML error: %s at line %d",
                    xml_error_string(xml_get_error_code($xml_parser)),
                    xml_get_current_line_number($xml_parser)));
    }
}
xml_parser_free($xml_parser);
?>

XML Tag Mapping Example

Příklad 2. Map XML to HTML

This example maps tags in an XML document directly to HTML tags. Elements not found in the "map array" are ignored. Of course, this example will only work with a specific XML document type.

<?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 case-folding so we are sure to find the tag in $map_array
xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, true);
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
if (!($fp = fopen($file, "r"))) {
    die("could not open XML input");
}

while ($data = fread($fp, 4096)) {
    if (!xml_parse($xml_parser, $data, feof($fp))) {
        die(sprintf("XML error: %s at line %d",
                    xml_error_string(xml_get_error_code($xml_parser)),
                    xml_get_current_line_number($xml_parser)));
    }
}
xml_parser_free($xml_parser);
?>

XML External Entity Example

This example highlights XML code. It illustrates how to use an external entity reference handler to include and parse other documents, as well as how PIs can be processed, and a way of determining "trust" for PIs containing code.

XML documents that can be used for this example are found below the example (xmltest.xml and xmltest2.xml.)

Příklad 3. External Entity Example

<?php
$file = "xmltest.xml";

function trustedFile($file)
{
    // only trust local files owned by ourselves
    if (!eregi("^([a-z]+)://", $file)
        && fileowner($file) == getmyuid()) {
            return true;
    }
    return false;
}

function startElement($parser, $name, $attribs)
{
    echo "&lt;<font color=\"#0000cc\">$name</font>";
    if (sizeof($attribs)) {
        while (list($k, $v) = each($attribs)) {
            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;
            // If the parsed document is "trusted", we say it is safe
            // to execute PHP code inside it.  If not, display the code
            // instead.
            if (trustedFile($parser_file[$parser])) {
                eval($data);
            } else {
                printf("Untrusted PHP code: <i>%s</i>",
                        htmlspecialchars($data));
            }
            break;
    }
}

function defaultHandler($parser, $data)
{
    if (substr($data, 0, 1) == "&" && substr($data, -1, 1) == ";") {
        printf('<font color="#aa00aa">%s</font>',
                htmlspecialchars($data));
    } else {
        printf('<font size="-1">%s</font>',
                htmlspecialchars($data));
    }
}

function externalEntityRefHandler($parser, $openEntityNames, $base, $systemId,
                                  $publicId) {
    if ($systemId) {
        if (!list($parser, $fp) = new_xml_parser($systemId)) {
            printf("Could not open entity %s at %s\n", $openEntityNames,
                   $systemId);
            return false;
        }
        while ($data = fread($fp, 4096)) {
            if (!xml_parse($parser, $data, feof($fp))) {
                printf("XML error: %s at line %d while parsing entity %s\n",
                       xml_error_string(xml_get_error_code($parser)),
                       xml_get_current_line_number($parser), $openEntityNames);
                xml_parser_free($parser);
                return false;
            }
        }
        xml_parser_free($parser);
        return true;
    }
    return false;
}

function new_xml_parser($file)
{
    global $parser_file;

    $xml_parser = xml_parser_create();
    xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, 1);
    xml_set_element_handler($xml_parser, "startElement", "endElement");
    xml_set_character_data_handler($xml_parser, "characterData");
    xml_set_processing_instruction_handler($xml_parser, "PIHandler");
    xml_set_default_handler($xml_parser, "defaultHandler");
    xml_set_external_entity_ref_handler($xml_parser, "externalEntityRefHandler");

    if (!($fp = @fopen($file, "r"))) {
        return false;
    }
    if (!is_array($parser_file)) {
        settype($parser_file, "array");
    }
    $parser_file[$xml_parser] = $file;
    return array($xml_parser, $fp);
}

if (!(list($xml_parser, $fp) = new_xml_parser($file))) {
    die("could not open XML input");
}

echo "<pre>";
while ($data = fread($fp, 4096)) {
    if (!xml_parse($xml_parser, $data, feof($fp))) {
        die(sprintf("XML error: %s at line %d\n",
                    xml_error_string(xml_get_error_code($xml_parser)),
                    xml_get_current_line_number($xml_parser)));
    }
}
echo "</pre>";
echo "parse complete\n";
xml_parser_free($xml_parser);

?>

Příklad 4. xmltest.xml

<?xml version='1.0'?>
<!DOCTYPE chapter SYSTEM "/just/a/test.dtd" [
<!ENTITY plainEntity "FOO entity">
<!ENTITY systemEntity SYSTEM "xmltest2.xml">
]>
<chapter>
 <TITLE>Title &plainEntity;</TITLE>
 <para>
  <informaltable>
   <tgroup cols="3">
    <tbody>
     <row><entry>a1</entry><entry morerows="1">b1</entry><entry>c1</entry></row>
     <row><entry>a2</entry><entry>c2</entry></row>
     <row><entry>a3</entry><entry>b3</entry><entry>c3</entry></row>
    </tbody>
   </tgroup>
  </informaltable>
 </para>
 &systemEntity;
 <section id="about">
  <title>About this Document</title>
  <para>
   <!-- this is a comment -->
   <?php echo 'Hi!  This is PHP version ' . phpversion(); ?>
  </para>
 </section>
</chapter>

This file is included from xmltest.xml:

Příklad 5. xmltest2.xml

<?xml version="1.0"?>
<!DOCTYPE foo [
<!ENTITY testEnt "test entity">
]>
<foo>
   <element attrib="value"/>
   &testEnt;
   <?php echo "This is some more PHP code being executed."; ?>
</foo>

Obsah
utf8_decode -- Converts a string with ISO-8859-1 characters encoded with UTF-8 to single-byte ISO-8859-1.
utf8_encode -- Encodes an ISO-8859-1 string to UTF-8
xml_error_string -- Get XML parser error string
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 -- Get XML parser error code
xml_parse_into_struct -- Parse XML data into an array structure
xml_parse -- Start parsing an XML document
xml_parser_create_ns -- Create an XML parser with namespace support
xml_parser_create -- Create an XML parser
xml_parser_free -- Free an XML parser
xml_parser_get_option -- Get options from an XML parser
xml_parser_set_option -- Set options in an XML parser
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

Předcházející | Domů | Další
wddx_serialize_vars | Nahoru | utf8_decode


utf8_decode

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

utf8_decode -- Converts a string with ISO-8859-1 characters encoded with UTF-8 to single-byte ISO-8859-1.

Description

string utf8_decode ( string data)

This function decodes data, assumed to be UTF-8 encoded, to ISO-8859-1.

See also utf8_encode() for an explanation of UTF-8 encoding.

Předcházející | Domů | Další
XML Parser Functions | Nahoru | utf8_encode


utf8_encode

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

utf8_encode -- Encodes an ISO-8859-1 string to UTF-8

Description

string utf8_encode ( string data)

This function encodes the string data to UTF-8, and returns the encoded version. UTF-8 is a standard mechanism used by Unicode for encoding wide character values into a byte stream. UTF-8 is transparent to plain ASCII characters, is self-synchronized (meaning it is possible for a program to figure out where in the bytestream characters start) and can be used with normal string comparison functions for sorting and such. PHP encodes UTF-8 characters in up to four bytes, like this:

Tabulka 1. UTF-8 encoding

bytes | bits | representation
1 | 7 | 0bbbbbbb
2 | 11 | 110bbbbb 10bbbbbb
3 | 16 | 1110bbbb 10bbbbbb 10bbbbbb
4 | 21 | 11110bbb 10bbbbbb 10bbbbbb 10bbbbbb
Each b represents a bit that can be used to store character data.

Předcházející | Domů | Další
utf8_decode | Nahoru | xml_error_string


xml_error_string

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_error_string -- Get XML parser error string

Description

string xml_error_string ( int code)

code

An error code from xml_get_error_code().

Returns a string with a textual description of the error code, or FALSE if no description was found.

Předcházející | Domů | Další
utf8_encode | Nahoru | xml_get_current_byte_index


xml_get_current_byte_index

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_get_current_byte_index -- Get current byte index for an XML parser

Description

int xml_get_current_byte_index ( resource parser)

parser

A reference to the XML parser to get byte index from.

This function returns FALSE if parser does not refer to a valid parser, or else it returns which byte index the parser is currently at in its data buffer (starting at 0).

Předcházející | Domů | Další
xml_error_string | Nahoru | xml_get_current_column_number


xml_get_current_column_number

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_get_current_column_number -- Get current column number for an XML parser

Description

int xml_get_current_column_number ( resource parser)

parser

A reference to the XML parser to get column number from.

This function returns FALSE if parser does not refer to a valid parser, or else it returns which column on the current line (as given by xml_get_current_line_number()) the parser is currently at.

Předcházející | Domů | Další
xml_get_current_byte_index | Nahoru | xml_get_current_line_number


xml_get_current_line_number

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_get_current_line_number -- Get current line number for an XML parser

Description

int xml_get_current_line_number ( resource parser)

parser

A reference to the XML parser to get line number from.

This function returns FALSE if parser does not refer to a valid parser, or else it returns which line the parser is currently at in its data buffer.

Předcházející | Domů | Další
xml_get_current_column_number | Nahoru | xml_get_error_code


xml_get_error_code

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_get_error_code -- Get XML parser error code

Description

int xml_get_error_code ( resource parser)

parser

A reference to the XML parser to get error code from.

This function returns FALSE if parser does not refer to a valid parser, or else it returns one of the error codes listed in the error codes section.

See also xml_error_string().

Předcházející | Domů | Další
xml_get_current_line_number | Nahoru | xml_parse_into_struct


xml_parse_into_struct

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

xml_parse_into_struct -- Parse XML data into an array structure

Description

int xml_parse_into_struct ( resource parser, string data, array &values [, array &index])

This function parses an XML file into 2 parallel array structures, one (index) containing pointers to the location of the appropriate values in the values array. These last two parameters must be passed by reference.

Below is an example that illustrates the internal structure of the arrays being generated by the function. We use a simple note tag embedded inside a para tag, and then we parse this and print out the structures generated:

Příklad 1. xml_parse_into_struct() example

<?php
$simple = "<para><note>simple note</note></para>";
$p = xml_parser_create();
xml_parse_into_struct($p, $simple, $vals, $index);
xml_parser_free($p);
echo "Index array\n";
print_r($index);
echo "\nVals array\n";
print_r($vals);
?>

When we run that code, the output will be:

Index array
Array
(
    [PARA] => Array
        (
            [0] => 0
            [1] => 2
        )

    [NOTE] => Array
        (
            [0] => 1
        )

)

Vals array
Array
(
    [0] => Array
        (
            [tag] => PARA
            [type] => open
            [level] => 1
        )

    [1] => Array
        (
            [tag] => NOTE
            [type] => complete
            [level] => 2
            [value] => simple note
        )

    [2] => Array
        (
            [tag] => PARA
            [type] => close
            [level] => 1
        )

)

Event-driven parsing (based on the expat library) can get complicated when you have an XML document that is complex. This function does not produce a DOM style object, but it generates structures amenable of being transversed in a tree fashion. Thus, we can create objects representing the data in the XML file easily. Let's consider the following XML file representing a small database of aminoacids information:

Příklad 2. moldb.xml - small database of molecular information

<?xml version="1.0"?>
<moldb>

    <molecule>
        <name>Alanine</name>
        <symbol>ala</symbol>
        <code>A</code>
        <type>hydrophobic</type>
    </molecule>

    <molecule>
        <name>Lysine</name>
        <symbol>lys</symbol>
        <code>K</code>
        <type>charged</type>
    </molecule>

</moldb>
And some code to parse the document and generate the appropriate objects:

Příklad 3. parsemoldb.php - parses moldb.xml into an array of molecular objects

<?php

class AminoAcid {
    var $name;  // aa name
    var $symbol;    // three letter symbol
    var $code;  // one letter code
    var $type;  // hydrophobic, charged or neutral

    function AminoAcid ($aa)
    {
        foreach ($aa as $k=>$v)
            $this->$k = $aa[$k];
    }
}

function readDatabase($filename)
{
    // read the XML database of aminoacids
    $data = implode("", file($filename));
    $parser = xml_parser_create();
    xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
    xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
    xml_parse_into_struct($parser, $data, $values, $tags);
    xml_parser_free($parser);

    // loop through the structures
    foreach ($tags as $key=>$val) {
        if ($key == "molecule") {
            $molranges = $val;
            // each contiguous pair of array entries are the
            // lower and upper range for each molecule definition
            for ($i=0; $i < count($molranges); $i+=2) {
                    $offset = $molranges[$i] + 1;
                $len = $molranges[$i + 1] - $offset;
                $tdb[] = parseMol(array_slice($values, $offset, $len));
            }
        } else {
            continue;
        }
    }
    return $tdb;
}

function parseMol($mvalues)
{
    for ($i=0; $i < count($mvalues); $i++) {
        $mol[$mvalues[$i]["tag"]] = $mvalues[$i]["value"];
    }
    return new AminoAcid($mol);
}

$db = readDatabase("moldb.xml");
echo "** Database of AminoAcid objects:\n";
print_r($db);

?>
After executing parsemoldb.php, the variable $db contains an array of AminoAcid objects, and the output of the script confirms that:

** Database of AminoAcid objects:
Array
(
    [0] => aminoacid Object
        (
            [name] => Alanine
            [symbol] => ala
            [code] => A
            [type] => hydrophobic
        )

    [1] => aminoacid Object
        (
            [name] => Lysine
            [symbol] => lys
            [code] => K
            [type] => charged
        )

)

Předcházející | Domů | Další
xml_get_error_code | Nahoru | xml_parse


xml_parse

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_parse -- Start parsing an XML document

Description

bool xml_parse ( resource parser, string data [, bool is_final])

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 (optional)

If set and TRUE, data is the last piece of data sent in this parse.

When the XML document is parsed, the handlers for the configured events are called as many times as necessary, after which this function returns TRUE or FALSE.

TRUE is returned if the parse was successful, FALSE if it was not
successful, or if parser does not refer to
a valid parser.  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().

Předcházející | Domů | Další
xml_parse_into_struct | Nahoru | xml_parser_create_ns


xml_parser_create_ns

(PHP 4 >= 4.0.5, PHP 5)

xml_parser_create_ns -- Create an XML parser with namespace support

Description

resource xml_parser_create_ns ( [string encoding [, string separator]])

xml_parser_create_ns() creates a new XML parser with XML namespace support and returns a resource handle referencing it to be used by the other XML functions.

With a namespace aware parser tag parameters passed to the various handler functions will consist of namespace and tag name separated by the string specified in seperator or ':' by default.

The optional encoding specifies the character encoding of the XML input to be parsed. Supported encodings are "ISO-8859-1", which is also the default if no encoding is specified, "UTF-8" and "US-ASCII".

See also xml_parser_create(), and xml_parser_free().

Předcházející | Domů | Další
xml_parse | Nahoru | xml_parser_create


xml_parser_create

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_parser_create -- Create an XML parser

Description

resource xml_parser_create ( [string encoding])

xml_parser_create() creates a new XML parser and returns a resource handle referencing it to be used by the other XML functions.

The optional encoding specifies the character encoding of the XML input to be parsed. Supported encodings are "ISO-8859-1", which is also the default if no encoding is specified, "UTF-8" and "US-ASCII".

See also xml_parser_create_ns() and xml_parser_free().

Předcházející | Domů | Další
xml_parser_create_ns | Nahoru | xml_parser_free


xml_parser_free

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_parser_free -- Free an XML parser

Description

bool xml_parser_free ( resource parser)

parser

A reference to the XML parser to free.

This function returns FALSE if parser does not refer to a valid parser, or else it frees the parser and returns TRUE.

Předcházející | Domů | Další
xml_parser_create | Nahoru | xml_parser_get_option


xml_parser_get_option

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_parser_get_option -- Get options from an XML parser

Description

mixed xml_parser_get_option ( resource parser, int option)

parser

A reference to the XML parser to get an option from.

option

Which option to fetch. See xml_parser_set_option() for a list of options.

This function returns FALSE if parser does not refer to a valid parser, or if the option could not be set. Else the option's value is returned.

See xml_parser_set_option() for the list of options.

Předcházející | Domů | Další
xml_parser_free | Nahoru | xml_parser_set_option


xml_parser_set_option

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_parser_set_option -- Set options in an XML parser

Description

bool xml_parser_set_option ( resource parser, int option, mixed value)

parser

A reference to the XML parser to set an option in.

option

Which option to set. See below.

value

The option's new value.

This function returns FALSE if parser does not refer to a valid parser, or if the option could not be set. Else the option is set and TRUE is returned.

The following options are available:

Tabulka 1. XML parser options

Option constant | Data type | Description
XML_OPTION_CASE_FOLDING | integer | Controls whether case-folding is enabled for this XML parser. Enabled by default.
XML_OPTION_TARGET_ENCODING | string | Sets which target encoding to use in this XML parser. By default, it is set to the same as the source encoding used by xml_parser_create(). Supported target encodings are ISO-8859-1, US-ASCII and UTF-8.

Předcházející | Domů | Další
xml_parser_get_option | Nahoru | xml_set_character_data_handler


xml_set_character_data_handler

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_set_character_data_handler -- Set up character data handler

Description

bool xml_set_character_data_handler ( resource parser, callback handler)

Sets the character data handler function for the XML parser parser. handler is a string containing the name of a function that must exist when xml_parse() is called for parser.

The function named by handler must accept two parameters: handler ( resource parser, string data)

parser

The first parameter, parser, is a reference to the XML parser calling the handler.

data

The second parameter, data, contains the character data as a string.

If a handler function is set to an empty string, or FALSE, the handler in question is disabled.

TRUE is returned if the handler is set up, FALSE if parser is not a parser.

Poznámka: Místo názvu funkce může být použito pole obsahující odkaz na objekt a název metody.

Předcházející | Domů | Další
xml_parser_set_option | Nahoru | xml_set_default_handler


xml_set_default_handler

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_set_default_handler -- Set up default handler

Description

bool xml_set_default_handler ( resource parser, callback handler)

Sets the default handler function for the XML parser parser. handler is a string containing the name of a function that must exist when xml_parse() is called for parser.

The function named by handler must accept two parameters: handler ( resource parser, string data)

parser

The first parameter, parser, is a reference to the XML parser calling the handler.

data

The second parameter, data, contains the character data. This may be the XML declaration, document type declaration, entities or other data for which no other handler exists.

If a handler function is set to an empty string, or FALSE, the handler in question is disabled.

TRUE is returned if the handler is set up, FALSE if parser is not a parser.

Poznámka: Místo názvu funkce může být použito pole obsahující odkaz na objekt a název metody.

Předcházející | Domů | Další
xml_set_character_data_handler | Nahoru | xml_set_element_handler


xml_set_element_handler

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_set_element_handler -- Set up start and end element handlers

Description

bool xml_set_element_handler ( resource parser, callback start_element_handler, callback end_element_handler)

Sets the element handler functions for the XML parser parser. start_element_handler and end_element_handler are strings containing the names of functions that must exist when xml_parse() is called for parser.

The function named by start_element_handler must accept three parameters: start_element_handler ( resource parser, string name, array attribs)

parser

The first parameter, parser, is a reference to the XML parser calling the handler.

name

The second parameter, 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.

attribs

The third parameter, attribs, contains an associative array with the element's attributes (if any). 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 original order of the attributes can be retrieved by walking through attribs the normal way, using each(). The first key in the array was the first attribute, and so on.

The function named by end_element_handler must accept two parameters: end_element_handler ( resource parser, string name)

parser

The first parameter, parser, is a reference to the XML parser calling the handler.

name

The second parameter, 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.

If a handler function is set to an empty string, or FALSE, the handler in question is disabled.

TRUE is returned if the handlers are set up, FALSE if parser is not a parser.

Poznámka: Místo názvu funkce může být použito pole obsahující odkaz na objekt a název metody.

Předcházející | Domů | Další
xml_set_default_handler | Nahoru | xml_set_end_namespace_decl_handler


xml_set_end_namespace_decl_handler

(PHP 4 >= 4.0.5, PHP 5)

xml_set_end_namespace_decl_handler -- Set up end namespace declaration handler

Description

bool xml_set_end_namespace_decl_handler ( resource parser, callback handler)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Poznámka: Místo názvu funkce může být použito pole obsahující odkaz na objekt a název metody.

Předcházející | Domů | Další
xml_set_element_handler | Nahoru | xml_set_external_entity_ref_handler


xml_set_external_entity_ref_handler

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_set_external_entity_ref_handler -- Set up external entity reference handler

Description

bool xml_set_external_entity_ref_handler ( resource parser, callback handler)

Sets the external entity reference handler function for the XML parser parser. handler is a string containing the name of a function that must exist when xml_parse() is called for parser.

The function named by handler must accept five parameters, and should return an integer value. If the value returned from the handler is FALSE (which it will be if no value is returned), the XML parser will stop parsing and xml_get_error_code() will return XML_ERROR_EXTERNAL_ENTITY_HANDLING. handler ( resource parser, string open_entity_names, string base, string system_id, string public_id)

parser

The first parameter, parser, is a reference to the XML parser calling the handler.

open_entity_names

The second parameter, open_entity_names, is 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. Currently this parameter will always be set to an empty string.

system_id

The fourth parameter, system_id, is the system identifier as specified in the entity declaration.

public_id

The fifth parameter, public_id, is 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.

If a handler function is set to an empty string, or FALSE, the handler in question is disabled.

TRUE is returned if the handler is set up, FALSE if parser is not a parser.

Poznámka: Místo názvu funkce může být použito pole obsahující odkaz na objekt a název metody.

Předcházející | Domů | Další
xml_set_end_namespace_decl_handler | Nahoru | xml_set_notation_decl_handler


xml_set_notation_decl_handler

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_set_notation_decl_handler -- Set up notation declaration handler

Description

bool xml_set_notation_decl_handler ( resource parser, callback handler)

Sets the notation declaration handler function for the XML parser parser. handler is a string containing the name of a function that must exist when xml_parse() is called for 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.

The function named by handler must accept five parameters: handler ( resource parser, string notation_name, string base, string system_id, string public_id)

parser

The first parameter, parser, is a reference to the XML parser calling the handler.

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. Currently this parameter will always be set to an empty string.

system_id

System identifier of the external notation declaration.

public_id

Public identifier of the external notation declaration.

If a handler function is set to an empty string, or FALSE, the handler in question is disabled.

TRUE is returned if the handler is set up, FALSE if parser is not a parser.

Poznámka: Místo názvu funkce může být použito pole obsahující odkaz na objekt a název metody.

Předcházející | Domů | Další
xml_set_external_entity_ref_handler | Nahoru | xml_set_object


xml_set_object

(PHP 4 , PHP 5)

xml_set_object -- Use XML Parser within an object

Description

void xml_set_object ( resource parser, object object)

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.

Příklad 1. xml_set_object() example

<?php
class xml  {
    var $parser;

    function xml()
    {
        $this->parser = xml_parser_create();

        xml_set_object($this->parser, $this);
        xml_set_element_handler($this->parser, "tag_open", "tag_close");
        xml_set_character_data_handler($this->parser, "cdata");
    }

    function parse($data)
    {
        xml_parse($this->parser, $data);
    }

    function tag_open($parser, $tag, $attributes)
    {
        var_dump($parser, $tag, $attributes);
    }

    function cdata($parser, $cdata)
    {
        var_dump($parser, $cdata);
    }

    function tag_close($parser, $tag)
    {
        var_dump($parser, $tag);
    }

} // end of class xml

$xml_parser = new xml();
$xml_parser->parse("<A ID='hallo'>PHP</A>");
?>

Předcházející | Domů | Další
xml_set_notation_decl_handler | Nahoru | xml_set_processing_instruction_handler


xml_set_processing_instruction_handler

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_set_processing_instruction_handler -- Set up processing instruction (PI) handler

Description

bool xml_set_processing_instruction_handler ( resource parser, callback handler)

Sets the processing instruction (PI) handler function for the XML parser parser. handler is a string containing the name of a function that must exist when xml_parse() is called for parser.

A processing instruction has the following format:

<?
       target
       data?>

You can put PHP code into such a tag, but be aware of one limitation: in an XML PI, the PI end tag (?>) can not be quoted, so this character sequence should not appear in the PHP code you embed with PIs in XML documents. If it does, the rest of the PHP code, as well as the "real" PI end tag, will be treated as character data.

The function named by handler must accept three parameters: handler ( resource parser, string target, string data)

parser

The first parameter, parser, is a reference to the XML parser calling the handler.

target

The second parameter, target, contains the PI target.

data

The third parameter, data, contains the PI data.

If a handler function is set to an empty string, or FALSE, the handler in question is disabled.

TRUE is returned if the handler is set up, FALSE if parser is not a parser.

Poznámka: Místo názvu funkce může být použito pole obsahující odkaz na objekt a název metody.

Předcházející | Domů | Další
xml_set_object | Nahoru | xml_set_start_namespace_decl_handler


xml_set_start_namespace_decl_handler

(PHP 4 >= 4.0.5, PHP 5)

xml_set_start_namespace_decl_handler -- Set up start namespace declaration handler

Description

bool xml_set_start_namespace_decl_handler ( resource parser, callback handler)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Poznámka: Místo názvu funkce může být použito pole obsahující odkaz na objekt a název metody.

Předcházející | Domů | Další
xml_set_processing_instruction_handler | Nahoru | xml_set_unparsed_entity_decl_handler


xml_set_unparsed_entity_decl_handler

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

xml_set_unparsed_entity_decl_handler -- Set up unparsed entity declaration handler

Description

bool xml_set_unparsed_entity_decl_handler ( resource parser, callback handler)

Sets the unparsed entity declaration handler function for the XML parser parser. handler is a string containing the name of a function that must exist when xml_parse() is called for parser.

This 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.

The function named by handler must accept six parameters: handler ( resource parser, string entity_name, string base, string system_id, string public_id, string notation_name)

parser

The first parameter, parser, is a reference to the XML parser calling the handler.

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. Currently this parameter will always be set to an empty string.

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()).

If a handler function is set to an empty string, or FALSE, the handler in question is disabled.

TRUE is returned if the handler is set up, FALSE if parser is not a parser.

Poznámka: Místo názvu funkce může být použito pole obsahující odkaz na objekt a název metody.

Předcházející | Domů | Další
xml_set_start_namespace_decl_handler | Nahoru | XML-RPC Functions


XML-RPC Functions

Manuál PHP
Předcházející Další

CXVII. XML-RPC Functions

Úvod

These functions can be used to write XML-RPC servers and clients. You can find more information about XML-RPC at http://www.xmlrpc.com/, and more documentation on this extension and its functions at http://xmlrpc-epi.sourceforge.net/.

Varování

Toto rozšíření je EXPERIMENTÁLNÍ. Chování tohoto rozšíření, názvy funkcí a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může bez ohlášení změnit. Berte to v úvahu a používejte tento modul na vlastní nebezpečí.

Požadavky

Tyto funkce jsou k dispozici jako součást standardního modulu, který je vždy dostupný.

Instalace

XML-RPC support in PHP is not enabled by default. You will need to use the --with-xmlrpc[=DIR] configuration option when compiling PHP to enable XML-RPC support. This extension is bundled into PHP as of 4.1.0.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 1. XML-RPC configuration options

Name | Default | Changeable
xmlrpc_errors | "0" | PHP_INI_SYSTEM
xmlrpc_error_number | "0" | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Obsah
xmlrpc_decode_request -- Decodes XML into native PHP types
xmlrpc_decode -- Decodes XML into native PHP types
xmlrpc_encode_request -- Generates XML for a method request
xmlrpc_encode -- Generates XML for a PHP value
xmlrpc_get_type -- Gets xmlrpc type for a PHP value. Especially useful for base64 and datetime strings
xmlrpc_parse_method_descriptions -- Decodes XML into a list of method descriptions
xmlrpc_server_add_introspection_data -- Adds introspection documentation
xmlrpc_server_call_method -- Parses XML requests and call methods
xmlrpc_server_create -- Creates an xmlrpc server
xmlrpc_server_destroy -- Destroys server resources
xmlrpc_server_register_introspection_callback -- Register a PHP function to generate documentation
xmlrpc_server_register_method -- Register a PHP function to resource method matching method_name
xmlrpc_set_type -- Sets xmlrpc type, base64 or datetime, for a PHP string value

Předcházející | Domů | Další
xml_set_unparsed_entity_decl_handler | Nahoru | xmlrpc_decode_request


xmlrpc_decode_request

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_decode_request -- Decodes XML into native PHP types

Description

array xmlrpc_decode_request ( string xml, string &method [, string encoding])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
XML-RPC Functions | Nahoru | xmlrpc_decode


xmlrpc_decode

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_decode -- Decodes XML into native PHP types

Description

array xmlrpc_decode ( string xml [, string encoding])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
xmlrpc_decode_request | Nahoru | xmlrpc_encode_request


xmlrpc_encode_request

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_encode_request -- Generates XML for a method request

Description

string xmlrpc_encode_request ( string method, mixed params)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
xmlrpc_decode | Nahoru | xmlrpc_encode


xmlrpc_encode

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_encode -- Generates XML for a PHP value

Description

string xmlrpc_encode ( mixed value)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
xmlrpc_encode_request | Nahoru | xmlrpc_get_type


xmlrpc_get_type

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_get_type -- Gets xmlrpc type for a PHP value. Especially useful for base64 and datetime strings

Description

string xmlrpc_get_type ( mixed value)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
xmlrpc_encode | Nahoru | xmlrpc_parse_method_descriptions


xmlrpc_parse_method_descriptions

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_parse_method_descriptions -- Decodes XML into a list of method descriptions

Description

array xmlrpc_parse_method_descriptions ( string xml)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
xmlrpc_get_type | Nahoru | xmlrpc_server_add_introspection_data


xmlrpc_server_add_introspection_data

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_add_introspection_data -- Adds introspection documentation

Description

int xmlrpc_server_add_introspection_data ( resource server, array desc)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
xmlrpc_parse_method_descriptions | Nahoru | xmlrpc_server_call_method


xmlrpc_server_call_method

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_call_method -- Parses XML requests and call methods

Description

mixed xmlrpc_server_call_method ( resource server, string xml, mixed user_data [, array output_options])

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
xmlrpc_server_add_introspection_data | Nahoru | xmlrpc_server_create


xmlrpc_server_create

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_create -- Creates an xmlrpc server

Description

resource xmlrpc_server_create ( void )

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
xmlrpc_server_call_method | Nahoru | xmlrpc_server_destroy


xmlrpc_server_destroy

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_destroy -- Destroys server resources

Description

int xmlrpc_server_destroy ( resource server)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
xmlrpc_server_create | Nahoru | xmlrpc_server_register_introspection_callback


xmlrpc_server_register_introspection_callback

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_register_introspection_callback -- Register a PHP function to generate documentation

Description

bool xmlrpc_server_register_introspection_callback ( resource server, string function)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
xmlrpc_server_destroy | Nahoru | xmlrpc_server_register_method


xmlrpc_server_register_method

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_register_method -- Register a PHP function to resource method matching method_name

Description

bool xmlrpc_server_register_method ( resource server, string method_name, string function)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
xmlrpc_server_register_introspection_callback | Nahoru | xmlrpc_set_type


xmlrpc_set_type

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_set_type -- Sets xmlrpc type, base64 or datetime, for a PHP string value

Description

bool xmlrpc_set_type ( string value, string type)

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
xmlrpc_server_register_method | Nahoru | xdiff Functions


xdiff Functions

Manuál PHP
Předcházející Další

CXVIII. xdiff Functions

Úvod

xdiff extension creates and applies patches to both text and binary files.

Požadavky

To use xdiff, you will need libxdiff installed, available on the libxdiff homepage http://www.xmailserver.org/xdiff-lib.html.

Instalace

xdiff is currently available through PECL http://pecl.php.net/package/xdiff.

If PEAR is available on your *nix-like system you can use the pear installer to install the xdiff extension, by the following command: pear -v install xdiff.

You can always download the tar.gz package and install xdiff by hand:

Příklad 1. xdiff install by hand

gunzip xdiff-xxx.tgz
tar -xvf xdiff-xxx.tar
cd xdiff-xxx
phpize
./configure && make && make install

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

XDIFF_PATCH_NORMAL (integer)

XDIFF_PATCH_REVERSE (integer)

Obsah
xdiff_file_diff_binary -- Make binary diff of two files.
xdiff_file_diff -- Make unified diff of two files.
xdiff_file_merge3 -- Merge 3 files into one.
xdiff_file_patch_binary -- Patch a file with a binary diff.
xdiff_file_patch -- Patch a file with an unified diff.
xdiff_string_diff_binary -- Make binary diff of two strings.
xdiff_string_diff -- Make unified diff of two strings.
xdiff_string_merge3 -- Merge 3 strings into one.
xdiff_string_patch_binary -- Patch a string with a binary diff.
xdiff_string_patch -- Patch a string with an unified diff.

Předcházející | Domů | Další
xmlrpc_set_type | Nahoru | xdiff_file_diff_binary


xdiff_file_diff_binary

(no version information, might be only in CVS)

xdiff_file_diff_binary -- Make binary diff of two files.

Description

bool xdiff_file_diff_binary ( string file1, string file2, string dest)

xdiff_file_diff_binary() makes binary diff of files file1 and file2 and stores result in file dest.

Vrací TRUE při úspěchu, FALSE při selhání.

See also xdiff_string_diff_binary().

Předcházející | Domů | Další
xdiff Functions | Nahoru | xdiff_file_diff


xdiff_file_diff

(no version information, might be only in CVS)

xdiff_file_diff -- Make unified diff of two files.

Description

bool xdiff_file_diff ( string file1, string file2, string dest [, int context [, bool minimal]])

xdiff_file_diff() makes unified diff of files file1 and file2 and stores result in file dest. context indicated how many lines of context you want to include in diff result. Set minimal to TRUE if you want to minimalize size of diff (can take a long time).

Vrací TRUE při úspěchu, FALSE při selhání.

See also xdiff_string_diff().

Předcházející | Domů | Další
xdiff_file_diff_binary | Nahoru | xdiff_file_merge3


xdiff_file_merge3

(no version information, might be only in CVS)

xdiff_file_merge3 -- Merge 3 files into one.

Description

mixed xdiff_file_merge3 ( string file1, string file2, string file3, string dest)

xdiff_file_merge3() merges files file1, file2 and file3 into one and stores result in file dest.

Returns TRUE if merge was successful, string with rejected chunks if it was not or FALSE if an internal error happened.

See also xdiff_string_merge3().

Předcházející | Domů | Další
xdiff_file_diff | Nahoru | xdiff_file_patch_binary


xdiff_file_patch_binary

(no version information, might be only in CVS)

xdiff_file_patch_binary -- Patch a file with a binary diff.

Description

bool xdiff_file_patch_binary ( string file, string patch, string dest)

xdiff_file_patch_binary() patches file file with binary patch in file patch and stores result in file dest.

Vrací TRUE při úspěchu, FALSE při selhání.

See also xdiff_string_patch_binary().

Předcházející | Domů | Další
xdiff_file_merge3 | Nahoru | xdiff_file_patch


xdiff_file_patch

(no version information, might be only in CVS)

xdiff_file_patch -- Patch a file with an unified diff.

Description

mixed xdiff_file_patch ( string file, string patch, string dest [, int flags])

xdiff_file_patch() patches file file with unified patch in file patch and stores result in file dest.

flags can be either XDIFF_PATCH_NORMAL (default mode, normal patch) or XDIFF_PATCH_REVERSE (reversed patch).

Returns FALSE if an internal error happened, string with rejected chunks of patch or TRUE if patch has been successfully applied.

See also xdiff_string_patch().

Předcházející | Domů | Další
xdiff_file_patch_binary | Nahoru | xdiff_string_diff_binary


xdiff_string_diff_binary

(no version information, might be only in CVS)

xdiff_string_diff_binary -- Make binary diff of two strings.

Description

mixed xdiff_string_diff_binary ( string str1, string str2)

xdiff_string_diff_binary() makes binary diff of strings str1 and str2.

Returns string with result or FALSE if an internal error happened.

See also xdiff_file_diff_binary().

Předcházející | Domů | Další
xdiff_file_patch | Nahoru | xdiff_string_diff


xdiff_string_diff

(no version information, might be only in CVS)

xdiff_string_diff -- Make unified diff of two strings.

Description

mixed xdiff_string_diff ( string str1, string str2 [, int context [, bool minimal]])

xdiff_string_diff() makes unified diff of strings str1 and str2. context indicated how many lines of context you want to include in diff result. Set minimal to TRUE if you want to minimalize size of diff (can take a long time).

Returns string with result or FALSE if an internal error happened.

See also xdiff_file_diff().

Předcházející | Domů | Další
xdiff_string_diff_binary | Nahoru | xdiff_string_merge3


xdiff_string_merge3

(no version information, might be only in CVS)

xdiff_string_merge3 -- Merge 3 strings into one.

Description

string xdiff_string_merge3 ( string str1, string str2, string str3 [, string & error])

xdiff_string_merge3() merges strings str1, str2 and str3 into one.

If error is passed then rejected parts are stored inside this variable.

Returns merged string or FALSE if an internal error happened.

See also xdiff_file_merge3().

Předcházející | Domů | Další
xdiff_string_diff | Nahoru | xdiff_string_patch_binary


xdiff_string_patch_binary

(no version information, might be only in CVS)

xdiff_string_patch_binary -- Patch a string with a binary diff.

Description

string xdiff_string_patch_binary ( string str, string patch)

xdiff_string_patch_binary() patches string str with binary patch in string patch.

Returns a patched string.

See also xdiff_file_patch_binary().

Předcházející | Domů | Další
xdiff_string_merge3 | Nahoru | xdiff_string_patch


xdiff_string_patch

(no version information, might be only in CVS)

xdiff_string_patch -- Patch a string with an unified diff.

Description

string xdiff_string_patch ( string str, string patch [, int flags [, string & error]])

xdiff_string_patch() patches string str with unified patch in string patch.

flags can be either XDIFF_PATCH_NORMAL (default mode, normal patch) or XDIFF_PATCH_REVERSE (reversed patch).

If error is passed then rejected parts are stored inside this variable.

Returns a patched string.

See also xdiff_file_patch().

Předcházející | Domů | Další
xdiff_string_patch_binary | Nahoru | XSL functions


XSL functions

Manuál PHP
Předcházející Další

CXIX. XSL functions

Úvod

Varování

Toto rozšíření je EXPERIMENTÁLNÍ. Chování tohoto rozšíření, názvy funkcí a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může bez ohlášení změnit. Berte to v úvahu a používejte tento modul na vlastní nebezpečí.

The XSL extension implements the XSL standard, performing XSLT transformations using the libxslt library.

Instalace

PHP 5 includes the XSL extension by default and it can be enabled by adding the argument --with-xsl[=DIR] to your configure line. DIR is the libxslt installation directory. libxslt version 1.0.18 or greater is required.

Příklady

In this small tutorial we will learn how to transform an XML document into HTML.

Příklad 1. A simple XSL tree

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="html" encoding="iso-8859-1" indent="no"/>
 <xsl:template match="collection">
  Hey! Welcome to my 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"/></h2>
  <h3> - <xsl:value-of select="year"/></h3>
 </xsl:template>
</xsl:stylesheet>

Příklad 2. Corresponding XML tree

<collection>
 <cd>
  <title>PHP Rock</title>
  <artist>Joe Coder</artist>
  <year>2003</year>
 </cd>
 <cd>
  <title>Squashing Typos on a Winter's Eve</title>
  <artist>kennyt</artist>
  <year>2004</year>
 </cd>
</collection>

Příklad 3. Making XML into HTML

The following PHP code uses the XML and XSL extensions to transform XML into presentable HTML.

<?php
/* Load the two XML sources */
$xml = new DomDocument; // from /ext/dom
$xml->load('example.xml');

$xsl = new DomDocument;
$xsl->load('example.xsl');

/* Configure the transformer */
$proc = new xsltprocessor;
$proc->importStyleSheet($xsl); // attach the xsl rules
echo $proc->transformToXML($xml); // actual transformation
?>

This should produce an HTML fragment similar to the following:

Hey! Welcome to my sweet CD collection!

<h1>PHP Rock</h1>
<h2>by Joe Coder</h2>
<h3> - 2003</h3>

<h1>Squashing Typos on a Winter's Eve</h1>
<h2> by kennyt</h2>
<h3> - 2004</h3>

Obsah
xsl_xsltprocessor_get_parameter --
xsl_xsltprocessor_has_exslt_support -- Determine if PHP has EXSLT support
xsl_xsltprocessor_import_stylesheet --
xsl_xsltprocessor_register_php_functions -- Enables the ability to use PHP functions as XSLT functions
xsl_xsltprocessor_remove_parameter --
xsl_xsltprocessor_set_parameter --
xsl_xsltprocessor_transform_to_doc --
xsl_xsltprocessor_transform_to_uri --
xsl_xsltprocessor_transform_to_xml --

Předcházející | Domů | Další
xdiff_string_patch | Nahoru | xsl_xsltprocessor_get_parameter


xsl_xsltprocessor_get_parameter

(no version information, might be only in CVS)

xsl_xsltprocessor_get_parameter --

Description

Procedural style

bool xsl_xsltprocessor_get_parameter ( string namespace, string name)

Object oriented style (method)

class xsltprocessor {

xsl_xsltdocucument getParameter ( string namespace, string name)

}

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
XSL functions | Nahoru | xsl_xsltprocessor_has_exslt_support


xsl_xsltprocessor_has_exslt_support

(no version information, might be only in CVS)

xsl_xsltprocessor_has_exslt_support -- Determine if PHP has EXSLT support

Description

Procedural style

bool xsl_xsltprocessor_has_exslt_support ( void )

Object oriented style (method)

class xsltprocessor {

bool hasExsltSupport ( void )

}

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

xsl_xsltprocessor_has_exslt_support() returns TRUE if PHP was built with the EXSLT library , FALSE otherwise.

Předcházející | Domů | Další
xsl_xsltprocessor_get_parameter | Nahoru | xsl_xsltprocessor_import_stylesheet


xsl_xsltprocessor_import_stylesheet

(no version information, might be only in CVS)

xsl_xsltprocessor_import_stylesheet --

Description

Procedural style

bool xsl_xsltprocessor_import_stylesheet ( node index)

Object oriented style (method)

class xsltprocessor {

bool importStylesheet ( node index)

}

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
xsl_xsltprocessor_has_exslt_support | Nahoru | xsl_xsltprocessor_register_php_functions


xsl_xsltprocessor_register_php_functions

(no version information, might be only in CVS)

xsl_xsltprocessor_register_php_functions -- Enables the ability to use PHP functions as XSLT functions

Description

Procedural style

void xsl_xsltprocessor_register_php_functions ( void )

Object oriented style (method)

class xsltprocessor {

void registerPHPFunctions ( void )

}

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

xsl_xsltprocessor_register_php_functions() enables the ability to use PHP functions as XSLT functions within XSL stylesheets.

Předcházející | Domů | Další
xsl_xsltprocessor_import_stylesheet | Nahoru | xsl_xsltprocessor_remove_parameter


xsl_xsltprocessor_remove_parameter

(no version information, might be only in CVS)

xsl_xsltprocessor_remove_parameter --

Description

Procedural style

bool xsl_xsltprocessor_remove_parameter ( string namespace, string name)

Object oriented style (method)

class xsltprocessor {

bool removeParameter ( string namespace, string name)

}

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
xsl_xsltprocessor_register_php_functions | Nahoru | xsl_xsltprocessor_set_parameter


xsl_xsltprocessor_set_parameter

(no version information, might be only in CVS)

xsl_xsltprocessor_set_parameter --

Description

Procedural style

bool xsl_xsltprocessor_set_parameter ( string namespace, string name, string value)

Object oriented style (method)

class xsltprocessor {

bool setParameter ( string namespace, string name, string value)

}

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
xsl_xsltprocessor_remove_parameter | Nahoru | xsl_xsltprocessor_transform_to_doc


xsl_xsltprocessor_transform_to_doc

(no version information, might be only in CVS)

xsl_xsltprocessor_transform_to_doc --

Description

Procedural style

bool >xsl_xsltprocessor_transform_to_doc ( node doc [, bool clone])

Object oriented style (method)

class xsltprocessor {

bool transformToDoc ( node doc [, bool clone])

}

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
xsl_xsltprocessor_set_parameter | Nahoru | xsl_xsltprocessor_transform_to_uri


xsl_xsltprocessor_transform_to_uri

(no version information, might be only in CVS)

xsl_xsltprocessor_transform_to_uri --

Description

Procedural style

bool xsl_xsltprocessor_transform_to_uri ( node doc, string uri [, bool clone])

Object oriented style (method)

class xsltprocessor {

bool transformToUri ( node doc, string uri [, bool clone])

}

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
xsl_xsltprocessor_transform_to_doc | Nahoru | xsl_xsltprocessor_transform_to_xml


xsl_xsltprocessor_transform_to_xml

(no version information, might be only in CVS)

xsl_xsltprocessor_transform_to_xml --

Description

Procedural style

bool xsl_xsltprocessor_transform_to_xml ( node doc [, bool clone])

Object oriented style (method)

class xsltprocessor {

bool transformToXml ( node doc [, bool clone])

}

Varování

Tato funkce je EXPERIMENTÁLNÍ. Chování této funkce, její název a všechno ostatní, co je zde zdokumentováno, se v budoucích verzích PHP může BEZ OHLÁŠENÍ změnit. Berte to v úvahu a používejte tuto funkci na vlastní nebezpečí.

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
xsl_xsltprocessor_transform_to_uri | Nahoru | XSLT funkce


XSLT funkce

Manuál PHP
Předcházející Další

CXX. XSLT funkce

Úvod

Toto rozšíření PHP poskytuje API nezávislé na zpracovateli pro XSLT transformace. V současnosti toto rozšíření podporuje pouze knihovnu Sablotron od Ginger Alliance. Plánována je podpora také pro další knihovny, jako například Xalan nebo libxslt.

XSLT (Extensible Stylesheet Language (XSL) Transformations) je jazyk pro transformaci XML dokumentů do jiných XML dokumentů. Je to standard definovaný The World Wide Web konsorciem (W3C). Imformace o XSLT a souvisejících technologiích jsou dostupné na http://www.w3.org/TR/xslt.

Poznámka: Toto rozšíření se liší od rozšíření Sablotron, které bylo distribuováno s PHP verzemi nižšími než 4.1. Od PHP 4.1 je podporováno pouze toto nové rozšíření. Pokud potřebujete podporu pro starší rozšíření, zeptejte se prosím v PHP konferencích.

Požadavky

Tato extenze využívá Sabloton a expat, které jsou dostupné na http://www.gingerall.com/, a to jak binární soubory tak zdrojové kódy.

Instalace

Na UNIXu spusťte configure s volbami --enable-xslt a --with-xslt-sablot. Sablotron knihovna by měla být nainstalována na nějakém místě, kde ji váš kompilátor může najít.

Zaručte, aby byly k Sablotronu přilinkovány stejné knihovny, které jsou přilinkovány k PHP. Konfigurační přepínače --with-expat-dir=DIR a --with-iconv-dir=DIR jsou zde proto, aby vám pomohly s jejich specifikací. Pokud požadujete podporu, vždy se zmiňte o těchto direktivách a o tom, zda jsou na vašem systému instalovány jiné verze těchto knihoven. Jednoduše řečeno, poskytněte všechna čísla verzí.

Výstraha

Zaručte, aby knihovna Sablot byla přilinkována k -lstdc++, jinak se konfigurace nepodaří nebo se PHP nespustí nebo nezavede.

Podpora pro JavaScript E-XSLT: Pokud jste Sablotron zkompilovali s podporou pro JavaScript, musíte zadat volbu --with-sablot-js=DIR.

Poznámka pro uživatele Win32: Abyste mohli tento modul používat pod Windows, musíte zkopírovat nějaké soubory z adresáře DLL disribučního archivu PHP/Win32 do adresáře SYSTEM32 vašich Windows. (Např.: C:\WINNT\SYSTEM32 nebo C:\WINDOWS\SYSTEM32). Pro PHP <= 4.2.0 zkopírujte sablot.dll a expat.dll. Pro PHP >= 4.2.1 zkopírujte sablot.dll, expat.dll a iconv.dll.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

XSLT_OPT_SILENT (integer)

Zrušit veškeré logování a hlášení chyb. Jedná se o obecnou volbu pro všechny nástroje, které mohou být přidány v budoucnu.

XSLT_SABOPT_PARSE_PUBLIC_ENTITIES (integer)

Přikázat Sablotronu, aby parsoval veřejné entity. Ve výchozím nastavení je tato volba vypnuta.

XSLT_SABOPT_DISABLE_ADDING_META (integer)

Nepřidávat meta značku "Content-Type" do HTML výstupu. Výchozí nastavení je určeno během kompilace Sablotronu.

XSLT_SABOPT_DISABLE_STRIPPING (integer)

Potlačit odstraňování bílých znaků (pouze u datových souborů).

XSLT_SABOPT_IGNORE_DOC_NOT_FOUND (integer)

Považovat nerozpoznané dokumenty (funkce document()) za nesmrtelné.

XSLT_ERR_UNSUPPORTED_SCHEME (integer)

Vrátit chybový kód, pro scheme handlers.

Obsah
xslt_create -- Vytvořit nový XSL procesor
xslt_errno -- Vrátit číslo současné chyby
xslt_error -- Vrátit text poslední chyby
xslt_free -- Uvolnit XSLT procesor
xslt_process -- Transformovat XML data řetězcem obsahujícím XSL data
xslt_set_base -- Set the base URI for all XSLT transformations
xslt_set_encoding -- Set the encoding for the parsing of XML documents
xslt_set_error_handler -- Set an error handler for a XSLT processor
xslt_set_log -- Set the log file to write log messages to
xslt_set_sax_handler -- Určit SAX handlery XSLT procesoru
xslt_set_sax_handlers -- Set the SAX handlers to be called when the XML document gets processed
xslt_set_scheme_handler -- Set Scheme handlers for a XSLT processor
xslt_set_scheme_handlers -- Set the scheme handlers for the XSLT processor

Předcházející | Domů | Další
xsl_xsltprocessor_transform_to_xml | Nahoru | xslt_create


xslt_create

(PHP 4 >= 4.0.3)

xslt_create -- Vytvořit nový XSL procesor

Popis

resource xslt_create ( void )

Tato funkce vrací handle nového XSL procesoru. Tento handle je potřeba ve všech následných voláních XSL funkcí.

Předcházející | Domů | Další
XSLT funkce | Nahoru | xslt_errno


xslt_errno

(PHP 4 >= 4.0.3)

xslt_errno -- Vrátit číslo současné chyby

Popis

int xslt_errno ( [ int xh])

Vrací číslo současné chyby daného XSL procesoru. Pokud nedostane handle, vrací číslo poslední chyby bez ohledu na její výskyt.

Předcházející | Domů | Další
xslt_create | Nahoru | xslt_error


xslt_error

(PHP 4 >= 4.0.3)

xslt_error -- Vrátit text poslední chyby

Popis

mixed xslt_error ( [int xh])

Vrací text současné chyby daného XSL procesoru. Pokud nedostane handle, vrací text poslední chyby bez ohledu na její výskyt.

Předcházející | Domů | Další
xslt_errno | Nahoru | xslt_free


xslt_free

(PHP 4 >= 4.0.3)

xslt_free -- Uvolnit XSLT procesor

Popis

void xslt_free ( resource xh)

Uvolní XSLT procesor identifikovaný předaným handle.

Předcházející | Domů | Další
xslt_error | Nahoru | xslt_process


xslt_process

(PHP 4 >= 4.0.3)

xslt_process -- Transformovat XML data řetězcem obsahujícím XSL data

Popis

mixed xslt_process ( resource xh, string xml, string xsl [, string result [, array arguments [, array parameters]]])

xslt_process() přijímá jako první argument řetězec obsahující XSLT stylesheet, jako druhý argument řetězec obsahující XML data, která chcete transformovat, a jako třetí argument řetězec obsahujícící výsledky transformace. xslt_process() vrací TRUE při úspěchu a FALSE při selhání. Číslo a text chyby případně vzniklé při transformaci můžete získat pomocí xslt_errno() a xslt_error() funkcí.

Příklad 1. Použití xslt_process() k transformaci tří řetězců

<?php

$xslData = '
<xsl:stylesheet
  version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="article">
    <table border="1" cellpadding="2" cellspacing="1">
        <tr>
            <td width="20%">

            </title>
            <td width="80%">
                <h2><xsl:value-of select="title"></h2>
                <h3><xsl:value-of select="author"></h3>
                <br>

                <xsl:value-of select="body">
            </td>
        </tr>
    </table>
</xsl:template>

</xsl:stylesheet>';

$xmlData = '
<?xml version="1.0"?>
<article>
    <title>Learning German</title>
    <author>Sterling Hughes</author>
    <body>
      Essential phrases:
      <br>
      <br>
      Komme sie mir sagen, woe die toilette es?<br>
      Eine grande beer bitte!<br>
      Noch einem bitte.<br>
    </body>
</article>';

if (xslt_process($xslData, $xmlData, $result))
{
    echo "Here is the brilliant in-depth article on learning";
    echo " German: ";
    echo "<br>\n<br>";
    echo $result;
}
else
{
    echo "There was an error that occurred in the XSL transformace...\n";
    echo "\tError number: " . xslt_errno() . "\n";
    echo "\tError string: " . xslt_error() . "\n";
    exit;
}
?>

Předcházející | Domů | Další
xslt_free | Nahoru | xslt_set_base


xslt_set_base

(PHP 4 >= 4.0.5)

xslt_set_base -- Set the base URI for all XSLT transformations

Description

void xslt_set_base ( resource xh, string uri)

Sets the base URI for all XSLT transformations, the base URI is used with Xpath instructions to resolve document() and other commands which access external resources. It is also used to resolve URIs for the <xsl:include> and <xsl:import> elements.

As of 4.3, the default base URI is the directory of the executing script. In effect, it is the directory name value of the __FILE__ constant. Prior to 4.3, the default base URI was less predictable.

Poznámka: Please note that file:// is needed in front of path if you use Windows.

Předcházející | Domů | Další
xslt_process | Nahoru | xslt_set_encoding


xslt_set_encoding

(PHP 4 >= 4.0.5)

xslt_set_encoding -- Set the encoding for the parsing of XML documents

Description

void xslt_set_encoding ( resource xh, string encoding)

Set the output encoding for the XSLT transformations. When using the Sablotron backend this option is only available when you compile Sablotron with encoding support.

Předcházející | Domů | Další
xslt_set_base | Nahoru | xslt_set_error_handler


xslt_set_error_handler

(PHP 4 >= 4.0.4)

xslt_set_error_handler -- Set an error handler for a XSLT processor

Description

void xslt_set_error_handler ( resource xh, mixed handler)

Set an error handler function for the XSLT processor given by xh, this function will be called whenever an error occurs in the XSLT transformation (this function is also called for notices).

Předcházející | Domů | Další
xslt_set_encoding | Nahoru | xslt_set_log


xslt_set_log

(PHP 4 >= 4.0.6)

xslt_set_log -- Set the log file to write log messages to

Description

void xslt_set_log ( resource xh, mixed log)

xh

A reference to the XSLT parser.

log

This parameter is either a boolean value which toggles logging on and off, or a string containing the logfile in which log errors too.

This function allows you to set the file in which you want XSLT log messages to, XSLT log messages are different than error messages, in that log messages are not actually error messages but rather messages related to the state of the XSLT processor. They are useful for debugging XSLT, when something goes wrong.

By default logging is disabled, in order to enable logging you must first call xslt_set_log() with a boolean parameter which enables logging, then if you want to set the log file to debug to, you must then pass it a string containing the filename:

Příklad 1. Using the XSLT Logging features

<?php

$xh = xslt_create();
xslt_set_log($xh, true);
xslt_set_log($xh, getcwd() . '/myfile.log');

$result = xslt_process($xh, 'dog.xml', 'pets.xsl');
echo $result;

xslt_free($xh);
?>

Poznámka: Please note that file:// is needed in front of path if you use Windows.

Předcházející | Domů | Další
xslt_set_error_handler | Nahoru | xslt_set_sax_handler


xslt_set_sax_handler

(4.0.3 - 4.0.6 only)

xslt_set_sax_handler -- Určit SAX handlery XSLT procesoru

Popis

bool xslt_set_sax_handler ( resource xh, array handlers)

Určit SAX handlery pro handle určený v xh.

Předcházející | Domů | Další
xslt_set_log | Nahoru | xslt_set_sax_handlers


xslt_set_sax_handlers

(PHP 4 >= 4.0.6)

xslt_set_sax_handlers -- Set the SAX handlers to be called when the XML document gets processed

Description

void xslt_set_sax_handlers ( resource processor, array handlers)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
xslt_set_sax_handler | Nahoru | xslt_set_scheme_handler


xslt_set_scheme_handler

(4.0.5 - 4.0.6 only)

xslt_set_scheme_handler -- Set Scheme handlers for a XSLT processor

Description

void xslt_set_scheme_handler ( resource xh, array handlers)

Set Scheme handlers on the resource handle given by xh. Scheme handlers should be an array with the format (all elements are optional):

array(
[get_all] => get all handler,
[open] => open handler,
[get] => get handler,
[put] => put handler,
[close] => close handler
)

Předcházející | Domů | Další
xslt_set_sax_handlers | Nahoru | xslt_set_scheme_handlers


xslt_set_scheme_handlers

(PHP 4 >= 4.0.6)

xslt_set_scheme_handlers -- Set the scheme handlers for the XSLT processor

Description

void xslt_set_scheme_handlers ( resource processor, array handlers)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
xslt_set_scheme_handler | Nahoru | YAZ Functions


YAZ Functions

Manuál PHP
Předcházející Další

CXXI. YAZ Functions

Úvod

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/.

Instalace

Compile YAZ (ANSI/NISO Z39.50 support) and install it. Build PHP with your favourite modules and add option --with-yaz[=DIR]. Your task is roughly the following:

Příklad 1. YAZ compilation

gunzip -c php-4.3.X.tar.gz|tar xf -
gunzip -c yaz-2.0.tar.gz|tar xf -
cd yaz-2.0
./configure --prefix=/usr
make
make install
cd ../php-4.3.X.
./configure --with-yaz=/usr/bin
make
make install

If you are using YAZ as a shared extension, add (or uncomment) the following line in php.ini on Unix:
extension=php_yaz.so
And for Windows:
extension=php_yaz.dll

On Windows, php_yaz.dll depend on yaz.dll. You'll find yaz.dll in sub directory dlls in the Win32 zip archive. Copy yaz.dll to a directory in your PATH environment (c:\winnt\system32 or c:\windows\system32).

Varování

Rozšíření IMAP nemůže být používáno zároveň s rozšířením recode nebo YAZ. Je to kvůli faktu, že tato rozšíření sdílejí stejný interní symbol.

Poznámka: The above problem is solved in version 2.0 of YAZ.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 1. YAZ configuration options

Name | Default | Changeable
yaz.max_links | "100" | PHP_INI_ALL
yaz.log_file | "" | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Příklady

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.

Příklad 2. Parallel searching using Yaz

<?php
$num_hosts = count($host);
if (empty($term) || count($host) == 0) {
    echo '<form method="get">
    <input type="checkbox"
    name="host[]" value="bagel.indexdata.dk/gils" />
        GILS test
    <input type="checkbox"
    name="host[]" value="localhost:9999/Default" />
        local test
    <input type="checkbox" checked="checked"
    name="host[]" value="z3950.loc.gov:7090/voyager" />
        Library of Congress
    <br />
    RPN Query:
    <input type="text" size="30" name="term" />
    <input type="submit" name="action" value="Search" />
    </form>
    ';
} else {
    echo 'You searched for ' . htmlspecialchars($term) . '<br />';
    for ($i = 0; $i < $num_hosts; $i++) {
        $id[] = yaz_connect($host[$i]);
        yaz_range($id[$i], 1, 10);
        yaz_search($id[$i], "rpn", $term);
    }
    yaz_wait();
    for ($i = 0; $i < $num_hosts; $i++) {
        echo '<hr />' . $host[$i] . ':';
        $error = yaz_error($id[$i]);
        if (!empty($error)) {
            echo "Error: $error";
        } else {
            $hits = yaz_hits($id[$i]);
            echo "Result Count $hits";
        }
        echo '<dl>';
        for ($p = 1; $p <= 10; $p++) {
            $rec = yaz_record($id[$i], $p, "string");
            if (empty($rec)) continue;
            echo "<dt><b>$p</b></dt><dd>";
            echo nl2br($rec);
            echo "</dd>";
        }
        echo '</dl>';
    }
}
?>

Obsah
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_get_option -- Returns value of option for connection
yaz_hits -- Returns number of hits for last search
yaz_itemorder -- Prepares for Z39.50 Item Order with an ILL-Request package
yaz_present -- Prepares for retrieval (Z39.50 present).
yaz_range -- Specifies the maximum number of records to retrieve
yaz_record -- Returns a record
yaz_scan_result -- Returns Scan Response result
yaz_scan -- Prepares for a scan
yaz_schema -- Specifies schema for retrieval.
yaz_search -- Prepares for a search
yaz_set_option -- Sets one or more options for connection
yaz_sort -- Sets sorting criteria
yaz_syntax -- Specifies the preferred record syntax for retrieval.
yaz_wait -- Wait for Z39.50 requests to complete

Předcházející | Domů | Další
xslt_set_scheme_handlers | Nahoru | yaz_addinfo


yaz_addinfo

(PHP 4 >= 4.0.1, PHP 5)

yaz_addinfo -- Returns additional error information

Description

string yaz_addinfo ( resource id)

Returns additional error message for server (last request), identified by parameter id. An empty string is returned if the last operation was successful or if no additional information was provided by the server.

See also yaz_error().

Předcházející | Domů | Další
YAZ Functions | Nahoru | yaz_ccl_conf


yaz_ccl_conf

(PHP 4 >= 4.0.5, PHP 5)

yaz_ccl_conf -- Configure CCL parser

Description

int yaz_ccl_conf ( resource id, array config)

This function configures the CCL query parser for a 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. Each index of the array config is the name of a CCL field and the corresponding value holds a string that specifies a mapping to RPN. The mapping is a sequence of attribute-type, attribute-value pairs. Attribute-type and attribute-value is separated by an equal sign (=). Each pair is separated by white space.

Příklad 1. CCL configuration

In the example below, the CCL parser is configured to support three CCL fields: ti, au and isbn. Each field is mapped to their BIB-1 equivalent. It is assumed that variable $id is the connection ID.

<?php
$fields["ti"] = "1=4";
$fields["au"] = "1=1";
$fields["isbn"] = "1=7";
yaz_ccl_conf($id, $fields);
?>

Předcházející | Domů | Další
yaz_addinfo | Nahoru | yaz_ccl_parse


yaz_ccl_parse

(PHP 4 >= 4.0.5, PHP 5)

yaz_ccl_parse -- Invoke CCL Parser

Description

bool yaz_ccl_parse ( resource id, string query, array & result)

This function invokes a CCL parser. It converts a given CCL FIND query to an RPN query which may be passed to the yaz_search() function to perform a search. To define a set of valid CCL fields call yaz_ccl_conf() prior to this function. If the supplied query was successfully converted to RPN, this function returns TRUE, and the index rpn of the supplied array result holds a valid RPN query. If the query could not be converted (because of invalid syntax, unknown field, etc.) this function returns FALSE and three indexes are set in the resulting array to indicate the cause of failure: errorcode CCL error code (integer), errorstring CCL error string, and errorpos approximate position in query of failure (integer is character position).

Příklad 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);
}
?>

Předcházející | Domů | Další
yaz_ccl_conf | Nahoru | yaz_close


yaz_close

(PHP 4 >= 4.0.1, PHP 5)

yaz_close -- Close YAZ connection

Description

bool yaz_close ( resource id)

Closes the connection given by parameter id. The id is a connection resource as returned by a previous call to yaz_connect().

Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
yaz_ccl_parse | Nahoru | yaz_connect


yaz_connect

(PHP 4 >= 4.0.1, PHP 5)

yaz_connect -- Prepares for a connection to a Z39.50 server.

Description

resource yaz_connect ( string zurl [, mixed options])

This function returns a connection resource on success, zero on failure.

yaz_connect() prepares for a connection to a Z39.50 server. The zurl argument takes the form host[:port][/database]. If port is omitted, port 210 is used. If database is omitted Default is used. 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.

If the second argument, options, is given as a string it is treated as the Z39.50 V2 authentication string (OpenAuth).

If options is given as an array the contents of the array serves as options. Note that array options are only supported for PHP 4.1.0 and later.

yaz_connect() 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.

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.

Poznámka: The use of a proxy often improves performance. A Z39.50 proxy is part of the free YAZ++ package.

Předcházející | Domů | Další
yaz_close | Nahoru | yaz_database


yaz_database

(PHP 4 >= 4.0.6, PHP 5)

yaz_database -- Specifies the databases within a session

Description

bool yaz_database ( resource id, string databases)

This function specifies one or more databases to be used in search, retrieval, etc. - overriding databases specified in call to yaz_connect(). Multiple databases are separated by a plus sign +.

This function allows you to use different sets of databases within a session.

Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
yaz_connect | Nahoru | yaz_element


yaz_element

(PHP 4 >= 4.0.1, PHP 5)

yaz_element -- Specifies Element-Set Name for retrieval

Description

bool yaz_element ( resource id, string elementset)

This function sets the element set name for retrieval. Call this function before yaz_search() or yaz_present() to specify the element set name for records to be retrieved. Most servers support F (for full records) and B (for brief records).

Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
yaz_database | Nahoru | yaz_errno


yaz_errno

(PHP 4 >= 4.0.1, PHP 5)

yaz_errno -- Returns error number

Description

int yaz_errno ( resource id)

Returns an errornumber for the server (last request) identified by id. 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.

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). To get a text description of the error, call yaz_error().

Předcházející | Domů | Další
yaz_element | Nahoru | yaz_error


yaz_error

(PHP 4 >= 4.0.1, PHP 5)

yaz_error -- Returns error description

Description

string yaz_error ( resource id)

Returns an error text message for server (last request), identified by parameter id. An empty string is returned if the last operation was successful.

yaz_error() returns an English text message corresponding to the last error number as returned by yaz_errno().

Předcházející | Domů | Další
yaz_errno | Nahoru | yaz_es_result


yaz_es_result

(PHP 4 >= 4.2.0, PHP 5)

yaz_es_result -- Inspects Extended Services Result

Description

array yaz_es_result ( resource id)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
yaz_error | Nahoru | yaz_get_option


yaz_get_option

(PHP 5)

yaz_get_option -- Returns value of option for connection

Description

string yaz_get_option ( resource id, string name)

Returns the value of the option specified with name. If an option is not set, an empty string is returned.

See the description of yaz_set_option() for available options.

Předcházející | Domů | Další
yaz_es_result | Nahoru | yaz_hits


yaz_hits

(PHP 4 >= 4.0.1, PHP 5)

yaz_hits -- Returns number of hits for last search

Description

int yaz_hits ( resource id)

yaz_hits() returns the number of hits for the last search.

Předcházející | Domů | Další
yaz_get_option | Nahoru | yaz_itemorder


yaz_itemorder

(PHP 4 >= 4.0.5, PHP 5)

yaz_itemorder -- Prepares for Z39.50 Item Order with an ILL-Request package

Description

int yaz_itemorder ( resource id, array args)

This function prepares for an Extended Services request using the Profile for the Use of Z39.50 Item Order Extended Service to Transport ILL (Profile/1). See this and the specification. The args parameter must be a hash array with information about the Item Order request to be sent. The key of the hash is the name of the corresponding ASN.1 tag path. For example, the ISBN below the Item-ID has the key item-id,ISBN.

The ILL-Request parameters are:

protocol-version-num
transaction-id,initial-requester-id,person-or-institution-symbol,person
transaction-id,initial-requester-id,person-or-institution-symbol,institution
transaction-id,initial-requester-id,name-of-person-or-institution,name-of-person
transaction-id,initial-requester-id,name-of-person-or-institution,name-of-institution
transaction-id,transaction-group-qualifier
transaction-id,transaction-qualifier
transaction-id,sub-transaction-qualifier
service-date-time,this,date
service-date-time,this,time
service-date-time,original,date
service-date-time,original,time
requester-id,person-or-institution-symbol,person
requester-id,person-or-institution-symbol,institution
requester-id,name-of-person-or-institution,name-of-person
requester-id,name-of-person-or-institution,name-of-institution
responder-id,person-or-institution-symbol,person
responder-id,person-or-institution-symbol,institution
responder-id,name-of-person-or-institution,name-of-person
responder-id,name-of-person-or-institution,name-of-institution
transaction-type
delivery-address,postal-address,name-of-person-or-institution,name-of-person
delivery-address,postal-address,name-of-person-or-institution,name-of-institution
delivery-address,postal-address,extended-postal-delivery-address
delivery-address,postal-address,street-and-number
delivery-address,postal-address,post-office-box
delivery-address,postal-address,city
delivery-address,postal-address,region
delivery-address,postal-address,country
delivery-address,postal-address,postal-code
delivery-address,electronic-address,telecom-service-identifier
delivery-address,electronic-address,telecom-service-addreess
billing-address,postal-address,name-of-person-or-institution,name-of-person
billing-address,postal-address,name-of-person-or-institution,name-of-institution
billing-address,postal-address,extended-postal-delivery-address
billing-address,postal-address,street-and-number
billing-address,postal-address,post-office-box
billing-address,postal-address,city
billing-address,postal-address,region
billing-address,postal-address,country
billing-address,postal-address,postal-code
billing-address,electronic-address,telecom-service-identifier
billing-address,electronic-address,telecom-service-addreess
ill-service-type
requester-optional-messages,can-send-RECEIVED
requester-optional-messages,can-send-RETURNED
requester-optional-messages,requester-SHIPPED
requester-optional-messages,requester-CHECKED-IN
search-type,level-of-service
search-type,need-before-date
search-type,expiry-date
search-type,expiry-flag
place-on-hold
client-id,client-name
client-id,client-status
client-id,client-identifier
item-id,item-type
item-id,call-number
item-id,author
item-id,title
item-id,sub-title
item-id,sponsoring-body
item-id,place-of-publication
item-id,publisher
item-id,series-title-number
item-id,volume-issue
item-id,edition
item-id,publication-date
item-id,publication-date-of-component
item-id,author-of-article
item-id,title-of-article
item-id,pagination
item-id,ISBN
item-id,ISSN
item-id,additional-no-letters
item-id,verification-reference-source
copyright-complicance
retry-flag
forward-flag
requester-note
forward-note

There are also a few parameters that are part of the Extended Services Request package and the ItemOrder package:

package-name
user-id
contact-name
contact-phone
contact-email
itemorder-item

Předcházející | Domů | Další
yaz_hits | Nahoru | yaz_present


yaz_present

(PHP 4 >= 4.0.5, PHP 5)

yaz_present -- Prepares for retrieval (Z39.50 present).

Description

bool yaz_present ( resource id)

This function prepares for retrieval of records after a successful search. The yaz_range() should be called prior to this function to specify the range of records to be retrieved.

Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
yaz_itemorder | Nahoru | yaz_range


yaz_range

(PHP 4 >= 4.0.1, PHP 5)

yaz_range -- Specifies the maximum number of records to retrieve

Description

bool yaz_range ( resource id, int start, int number)

This function should be called before either yaz_search() or yaz_present() to specify a range of records to be retrieved. The parameter start specifies the position of the first record to be retrieved and parameter number is the number of records. Records in a result set are numbered 1, 2, ... $hits where $hits is the count returned by yaz_hits().

Vrací TRUE při úspěchu, FALSE při selhání.

Předcházející | Domů | Další
yaz_present | Nahoru | yaz_record


yaz_record

(PHP 4 >= 4.0.1, PHP 5)

yaz_record -- Returns a record

Description

string yaz_record ( resource id, int pos, string type)

Returns the record at position pos or an empty string if no record exists at the given position.

The yaz_record() function inspects a record in the current result set at the position specified by parameter pos. If no database record exists at the given position an empty string is returned.

Record positions in a result set are numbered 1, 2, ... $hits where $hits is the count returned by yaz_hits().

The type specifies the form of the returned record.

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 afterwareds.

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).

Poznámka: 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).

Příklad 1. Array for GRS-1 record

Consider 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
$ar = yaz_record($id, $p, "array");
print_r($ar);
produces
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.
        )
)

Příklad 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).
$rec = yaz_record($id, $p, "xml; charset=marc-8,utf-8");

The record $rec can be processed with the Sablotron XSLT processor as follows:

$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);
print $res;

For PHP5 the XSL extension can be used instead of Sablotron XSLT.

Předcházející | Domů | Další
yaz_range | Nahoru | yaz_scan_result


yaz_scan_result

(PHP 4 >= 4.0.5, PHP 5)

yaz_scan_result -- Returns Scan Response result

Description

array yaz_scan_result ( resource id [, array & result])

yaz_scan_result() returns terms and associated information as received from the server in the last performed yaz_scan(). This function returns an array (0..n-1) where n is the number of terms returned. Each value is a pair where the first item is the term, and the second item is the result-count. If the optional parameter result is given it will be modified to hold additional information taken from the Scan Response: number (number of entries returned), stepsize (Step-size), position (position of term), status (Scan Status).

Předcházející | Domů | Další
yaz_record | Nahoru | yaz_scan


yaz_scan

(PHP 4 >= 4.0.5, PHP 5)

yaz_scan -- Prepares for a scan

Description

int yaz_scan ( resource id, string type, string startterm [, array flags])

This function prepares for a Z39.50 Scan Request, where parameter id specifies connection. Starting term point for the scan is given by startterm. The form in which the starting term is specified is given by parameter type. Currently only type rpn is supported. The optional parameter flags specifies additional information to control the behaviour of the scan request. Three indexes are currently read from the flags: number (number of terms requested), position (preferred position of term) and stepSize (preferred step size). To actually transfer the Scan Request to the 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.

The syntax of startterm is similar to the RPN query as described in yaz_search(). The startterm consists of zero or more @attr-operator specifications, then followed by exactly one token.

Příklad 1. PHP function that scans titles

<?php
function scan_titles($id, $startterm)
{
  yaz_scan($id, "rpn", "@attr 1=4 " . $startterm);
  yaz_wait();
  $errno = yaz_errno($id);
  if ($errno == 0) {
    $ar = yaz_scan_result($id, &$options);
    echo 'Scan ok; ';
    while (list($key, $val) = each($options)) {
      echo "$key = $val &nbsp;";
    }
    echo '<br /><table>';
    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 />";
  }
}
?>

Předcházející | Domů | Další
yaz_scan_result | Nahoru | yaz_schema


yaz_schema

(PHP 4 >= 4.2.0, PHP 5)

yaz_schema -- Specifies schema for retrieval.

Description

int yaz_schema ( resource id, string schema)

The schema must be specified as an OID (Object Identifier) in a raw dot-notation (like 1.2.840.10003.13.4) or as one of the known registered schemas: GILS-schema, Holdings, Zthes, ... This function should be called before yaz_search() or yaz_present().

Předcházející | Domů | Další
yaz_scan | Nahoru | yaz_search


yaz_search

(PHP 4 >= 4.0.1, PHP 5)

yaz_search -- Prepares for a search

Description

int yaz_search ( resource id, string type, string query)

yaz_search() prepares for a search on the connection given by parameter id. The parameter type represents the query type - only "rpn" is supported now in which case the third argument specifies a Type-1 query in prefix query notation. Like yaz_connect() this function is non-blocking and only prepares for a search to be executed later when yaz_wait() is called.

The RPN 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 operater 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.

Tabulka 1. 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.

Příklad 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.

This 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).

You can find information about attributes at the Z39.50 Maintenance Agency site.

Poznámka: If you would like to use a more friendly notation, use the CCL parser - functions yaz_ccl_conf() and yaz_ccl_parse().

Předcházející | Domů | Další
yaz_schema | Nahoru | yaz_set_option


yaz_set_option

(PHP 5)

yaz_set_option -- Sets one or more options for connection

Description

string yaz_set_option ( resource id, string name, string value)

Sets option name to value.

Tabulka 1. PYP/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().

Předcházející | Domů | Další
yaz_search | Nahoru | yaz_sort


yaz_sort

(PHP 4 >= 4.1.0, PHP 5)

yaz_sort -- Sets sorting criteria

Description

int yaz_sort ( resource id, string criteria)

This function sets sorting criteria and enables Z39.50 Sort. Call this function before yaz_search(). Using this function alone does not have any effect. When used in conjunction with yaz_search(), a Z39.50 Sort will be sent after a search response has been received and before any records are retrieved with Z39.50 Present (yaz_present(). The parameter criteria takes the form

field1 flags1 field2 flags2 ...

where field1 specifies the primary attributes for sort, field2 seconds, etc.. The field specifies either a numerical attribute combinations consisting of type=value pairs separated by comma (e.g. 1=4,2=1) ; or the field may specify a plain string criteria (e.g. title. The flags is a 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

Příklad 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

Předcházející | Domů | Další
yaz_set_option | Nahoru | yaz_syntax


yaz_syntax

(PHP 4 >= 4.0.1, PHP 5)

yaz_syntax -- Specifies the preferred record syntax for retrieval.

Description

int yaz_syntax ( resource id, string 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.). This function should be called before yaz_search() or yaz_present().

Předcházející | Domů | Další
yaz_sort | Nahoru | yaz_wait


yaz_wait

(PHP 4 >= 4.0.1, PHP 5)

yaz_wait -- Wait for Z39.50 requests to complete

Description

int yaz_wait ( [array options])

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).

If the options array is given that holds options that change the behaviour of yaz_wait().

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.

Předcházející | Domů | Další
yaz_syntax | Nahoru | Funkce pro práci s YP/NIS


Funkce pro práci s YP/NIS

Manuál PHP
Předcházející Další

CXXII. Funkce pro práci s YP/NIS

Úvod

NIS (dříve Yellow Pages) umožňuje síťovou správu důležitých administrativních souborů (např. soubory s hesly). Více informací viz NIS man stránka a The Linux NIS(YP)/NYS/NIS+ HOWTO. Existuje také kniha Managing NFS and NIS od Hala Sterna.

Poznámka: Toto rozšíření není k dispozici na platformách Windows.

Požadavky

None besides functions from standard Unix libraries which are always available (either libc or libnsl, configure will detect which one to use).

Instalace

Pokud chcete tyto funkce zprovoznit, musíte PHP zkonfigurovat s volbou --enable-yp (PHP 4).

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

YPERR_BADARGS (integer)

YPERR_BADDB (integer)

YPERR_BUSY (integer)

YPERR_DOMAIN (integer)

YPERR_KEY (integer)

YPERR_MAP (integer)

YPERR_NODOM (integer)

YPERR_NOMORE (integer)

YPERR_PMAP (integer)

YPERR_RESRC (integer)

YPERR_RPC (integer)

YPERR_YPBIND (integer)

YPERR_YPERR (integer)

YPERR_YPSERV (integer)

YPERR_VERS (integer)

Obsah
yp_all -- Traverse the map and call a function on each entry
yp_cat -- Return an array containing the entire map
yp_err_string -- Returns the error string associated with the previous operation
yp_errno -- Returns the error code of the previous operation
yp_first -- Vrátit pvní klíč/hodnota pár mapy
yp_get_default_domain -- Zjistit defaultní NIS doménu stroje
yp_master -- Zjistit název master NIS serveru mapy
yp_match -- Vrátit odpovídající záznam
yp_next -- Vrátit další klíč/hodnota pár mapy
yp_order -- Returns the order number for a map

Předcházející | Domů | Další
yaz_wait | Nahoru | yp_all


yp_all

(PHP 4 >= 4.0.6, PHP 5)

yp_all -- Traverse the map and call a function on each entry

Description

void yp_all ( string domain, string map, string callback)

Varování

Tato funkce ještě není zdokumentována, k dispozici je pouze seznam argumentů.

Předcházející | Domů | Další
Funkce pro práci s YP/NIS | Nahoru | yp_cat


yp_cat

(PHP 4 >= 4.0.6, PHP 5)

yp_cat -- Return an array containing the entire map

Description

array yp_cat ( string domain, string map)

yp_cat() returns all map entries as an array with the maps key values as array indices and the maps entries as array data.

Předcházející | Domů | Další
yp_all | Nahoru | yp_err_string


yp_err_string

(PHP 4 >= 4.0.6, PHP 5)

yp_err_string -- Returns the error string associated with the previous operation

Popis

string yp_err_string ( void )

yp_err_string() returns the error message associated with the previous operation. Useful to indicate what exactly went wrong.

Příklad 1. Example for NIS errors

<?php
    echo "Error: " . yp_err_string();
?>

Viz také yp_errno().

Předcházející | Domů | Další
yp_cat | Nahoru | yp_errno


yp_errno

(PHP 4 >= 4.0.6, PHP 5)

yp_errno -- Returns the error code of the previous operation

Popis

int yp_errno ( void )

yp_errno() returns the error code of the previous operation.

Possible errors are:

1 args to function are bad
2 RPC failure - domain has been unbound
3 can't bind to server on this domain
4 no such map in server's domain
5 no such key in map
6 internal yp server or client error
7 resource allocation failure
8 no more records in map database
9 can't communicate with portmapper
10 can't communicate with ypbind
11 can't communicate with ypserv
12 local domain name not set
13 yp database is bad
14 yp version mismatch
15 access violation
16 database busy

Viz také yp_err_string().

Předcházející | Domů | Další
yp_err_string | Nahoru | yp_first


yp_first

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

yp_first -- Vrátit pvní klíč/hodnota pár mapy

Popis

array yp_first ( string domain, string map)

yp_first() vrací první klíč/hodnota pár dané mapy v dané doméně, nebo FALSE.

Příklad 1. Ukázka NIS first

<?php
    $entry = yp_first($domain, "passwd.byname");
    $key = key($entry);
    echo "První záznam v této mapě má klíč " . $key
          . " a hodnotu " . $entry[$key];
?>

Viz také yp-get-default-domain()

Předcházející | Domů | Další
yp_errno | Nahoru | yp_get_default_domain


yp_get_default_domain

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

yp_get_default_domain -- Zjistit defaultní NIS doménu stroje

Popis

int yp_get_default_domain ( void )

yp_get_default_domain() vrací defaultní doménu uzlu nebo FALSE. Dá se používat jako argument domény v následných voláních NIS.

NIS doména se dá popsat jako skupina map NIS. Každý server, který potřebuje vyhledat informace se připojí k určité doméně. Detailnější informace viz dokumentace zmíněná v úvodu.

Příklad 1. Ukázka defaultní domény

<?php
$domain = yp_get_default_domain();
echo "Defaultní NIS doména je: " . $domain;
?>

Předcházející | Domů | Další
yp_first | Nahoru | yp_master


yp_master

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

yp_master -- Zjistit název master NIS serveru mapy

Popis

string yp_master ( string domain, string map)

yp_master() vrací název master NIS serveru určité mapy.

Příklad 1. Ukázka NIS masteru

<?php
$number = yp_master ($domain, $mapname);
echo "Master této mapy je: " . $master;
?>

Viz také yp-get-default-domain().

Předcházející | Domů | Další
yp_get_default_domain | Nahoru | yp_match


yp_match

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

yp_match -- Vrátit odpovídající záznam

Popis

string yp_match ( string domain, string map, string key)

yp_match() vrací hodnotu asociovanou v dané mapě s předaným klíčem nebo FALSE. Klíč musí být dán přesně.

Příklad 1. Ukázka NIS match

<?php
$entry = yp_match ($domain, "passwd.byname", "joe");
echo "Odpovídající záznam je: " . $entry;
?>

V tomto případě by to mohlo být: joe:##joe:11111:100:Joe User:/home/j/joe:/usr/local/bin/bash

Viz také yp-get-default-domain()

Předcházející | Domů | Další
yp_master | Nahoru | yp_next


yp_next

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

yp_next -- Vrátit další klíč/hodnota pár mapy

Popis

array yp_next ( string domain, string map, string key)

yp_next() vrací další klíč/hodnota pár v mapě po daném klíči, nebo FALSE.

Příklad 1. Ukázka NIS next

<?php
$entry = yp_next ($domain, "passwd.byname", "joe");

if (!$entry) {
    echo yp_errno() . ": " . yp_err_string();
}

$key = key ($entry);

echo "Položka následující po joe má klíč " . $key
      . " a hodnotu " . $entry[$key];
?>

Viz také yp-get-default-domain().

Předcházející | Domů | Další
yp_match | Nahoru | yp_order


yp_order

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

yp_order -- Returns the order number for a map

Popis

int yp_order ( string domain, string map)

yp_order() vrací pořadové číslo mapy nebo FALSE.

Příklad 1. Ukázka NIS order

<?php
    $number = yp_order($domain,$mapname);
    echo "Pořadové číslo této mapy je: " . $order;
?>

Viz také: yp-get-default-domain().

Předcházející | Domů | Další
yp_next | Nahoru | Zip File Functions (Read Only Access)


Zip File Functions (Read Only Access)

Manuál PHP
Předcházející Další

CXXIII. Zip File Functions (Read Only Access)

Úvod

This module enables you to transparently read ZIP compressed archives and the files inside them.

Požadavky

This module uses the functions of the ZZIPlib library by Guido Draheim. You need ZZIPlib version >= 0.10.6.

Note that ZZIPlib only provides a subset of functions provided in a full implementation of the ZIP compression algorithm and can only read ZIP file archives. A normal ZIP utility is needed to create the ZIP file archives read by this library.

Instalace

Zip support in PHP is not enabled by default. You will need to use the --with-zip[=DIR] configuration option when compiling PHP to enable zip support.

Poznámka: Zip support before PHP 4.1.0 is experimental. This section reflects the Zip extension as it exists in PHP 4.1.0 and later.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Příklady

This example opens a ZIP file archive, reads each file in the archive and prints out its contents. The test2.zip archive used in this example is one of the test archives in the ZZIPlib source distribution.

Příklad 1. Zip Usage Example

<?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);

}

?>
Obsah
zip_close -- Close a Zip File Archive
zip_entry_close -- Close a Directory Entry
zip_entry_compressedsize -- Retrieve the Compressed Size of a Directory Entry
zip_entry_compressionmethod -- Retrieve the Compression Method of a Directory Entry
zip_entry_filesize -- Retrieve the Actual File Size of a Directory Entry
zip_entry_name -- Retrieve the Name of a Directory Entry
zip_entry_open -- Open a Directory Entry for Reading
zip_entry_read -- Read From an Open Directory Entry
zip_open -- Open a Zip File Archive
zip_read -- Read Next Entry in a Zip File Archive

Předcházející | Domů | Další
yp_order | Nahoru | zip_close


zip_close

(PHP 4 >= 4.1.0)

zip_close -- Close a Zip File Archive

Description

void zip_close ( resource zip)

Closes a zip file archive. The parameter zip must be a zip archive previously opened by zip_open().

This function has no return value.

See also zip_open() and zip_read().

Předcházející | Domů | Další
Zip File Functions (Read Only Access) | Nahoru | zip_entry_close


zip_entry_close

(PHP 4 >= 4.1.0)

zip_entry_close -- Close a Directory Entry

Description

void zip_entry_close ( resource zip_entry)

Closes a directory entry specified by zip_entry. The parameter zip_entry must be a valid directory entry opened by zip_entry_open().

This function has no return value.

See also zip_entry_open() and zip_entry_read().

Předcházející | Domů | Další
zip_close | Nahoru | zip_entry_compressedsize


zip_entry_compressedsize

(PHP 4 >= 4.1.0)

zip_entry_compressedsize -- Retrieve the Compressed Size of a Directory Entry

Description

int zip_entry_compressedsize ( resource zip_entry)

Returns the compressed size of the directory entry specified by zip_entry. The parameter zip_entry is a valid directory entry returned by zip_read().

See also zip_open() and zip_read().

Předcházející | Domů | Další
zip_entry_close | Nahoru | zip_entry_compressionmethod


zip_entry_compressionmethod

(PHP 4 >= 4.1.0)

zip_entry_compressionmethod -- Retrieve the Compression Method of a Directory Entry

Description

string zip_entry_compressionmethod ( resource zip_entry)

Returns the compression method of the directory entry specified by zip_entry. The parameter zip_entry is a valid directory entry returned by zip_read().

See also zip_open() and zip_read().

Předcházející | Domů | Další
zip_entry_compressedsize | Nahoru | zip_entry_filesize


zip_entry_filesize

(PHP 4 >= 4.1.0)

zip_entry_filesize -- Retrieve the Actual File Size of a Directory Entry

Description

int zip_entry_filesize ( resource zip_entry)

Returns the actual size of the directory entry specified by zip_entry. The parameter zip_entry is a valid directory entry returned by zip_read().

See also zip_open() and zip_read().

Předcházející | Domů | Další
zip_entry_compressionmethod | Nahoru | zip_entry_name


zip_entry_name

(PHP 4 >= 4.1.0)

zip_entry_name -- Retrieve the Name of a Directory Entry

Description

string zip_entry_name ( resource zip_entry)

Returns the name of the directory entry specified by zip_entry. The parameter zip_entry is a valid directory entry returned by zip_read().

See also zip_open() and zip_read().

Předcházející | Domů | Další
zip_entry_filesize | Nahoru | zip_entry_open


zip_entry_open

(PHP 4 >= 4.1.0)

zip_entry_open -- Open a Directory Entry for Reading

Description

bool zip_entry_open ( resource zip, resource zip_entry [, string mode])

Opens a directory entry in a zip file for reading. The parameter zip is a valid resource handle returned by zip_open(). The parameter zip_entry is a directory entry resource returned by zip_read(). The optional parameter mode can be any of the modes specified in the documentation for fopen().

Poznámka: Currently, mode is ignored and is always "rb". This is due to the fact that zip support in PHP is read only access. Please see fopen() for an explanation of various modes, including "rb".

Vrací TRUE při úspěchu, FALSE při selhání.

Poznámka: Unlike fopen() and other similar functions, the return value of zip_entry_open() only indicates the result of the operation and is not needed for reading or closing the directory entry.

See also zip_entry_read() and zip_entry_close().

Předcházející | Domů | Další
zip_entry_name | Nahoru | zip_entry_read


zip_entry_read

(PHP 4 >= 4.1.0)

zip_entry_read -- Read From an Open Directory Entry

Description

string zip_entry_read ( resource zip_entry [, int length])

Reads up to length bytes from an open directory entry. If length is not specified, then zip_entry_read() will attempt to read 1024 bytes. The parameter zip_entry is a valid directory entry returned by zip_read().

Poznámka: The length parameter should be the uncompressed length you wish to read.

Returns the data read, or FALSE if the end of the file is reached.

See also zip_entry_open(),
zip_entry_close() and
zip_entry_filesize().

Předcházející | Domů | Další
zip_entry_open | Nahoru | zip_open


zip_open

(PHP 4 >= 4.1.0)

zip_open -- Open a Zip File Archive

Description

resource zip_open ( string filename)

Opens a new zip archive for reading. The filename parameter is the filename of the zip archive to open.

Returns a resource handle for later use with zip_read() and zip_close() or returns FALSE if filename does not exist.

See also zip_read() and zip_close().

Předcházející | Domů | Další
zip_entry_read | Nahoru | zip_read


zip_read

(PHP 4 >= 4.1.0)

zip_read -- Read Next Entry in a Zip File Archive

Description

resource zip_read ( resource zip)

Reads the next entry in a zip file archive. The parameter zip must be a zip archive previously opened by zip_open().

Returns a directory entry resource for later use with the zip_entry_...() functions or FALSE if there's no more entries to read.

See also zip_open(),
zip_close(),
zip_entry_open(), and
zip_entry_read().

Předcházející | Domů | Další
zip_open | Nahoru | Zlib Compression Functions


Zlib Compression Functions

Manuál PHP
Předcházející Další

CXXIV. Zlib Compression Functions

Úvod

This module enables you to transparently read and write gzip (.gz) compressed files, through versions of most of the filesystem functions which work with gzip-compressed files (and uncompressed files, too, but not with sockets).

Poznámka: Version 4.0.4 introduced a fopen-wrapper for .gz-files, so that you can use a special 'zlib:' URL to access compressed files transparently using the normal f*() file access functions if you prepend the filename or path with a 'zlib:' prefix when calling fopen().

In version 4.3.0, this special prefix has been changed to 'zlib://' to prevent ambiguities with filenames containing ':'.

This feature requires a C runtime library that provides the fopencookie() function. To my current knowledge the GNU libc is the only library that provides this feature.

Požadavky

This module uses the functions of zlib by Jean-loup Gailly and Mark Adler. You have to use a zlib version >= 1.0.9 with this module.

Instalace

Zlib support in PHP is not enabled by default. You will need to configure PHP --with-zlib[=DIR]

Verze PHP pro Windows má vestavěnou podporu pro toto rozšíření. K použití těchto funkcí není třeba načítat žádná další rozšíření.

Poznámka: Builtin support for zlib on Windows is available with PHP 4.3.0.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

The zlib extension offers the option to transparently compress your pages on-the-fly, if the requesting browser supports this. Therefore there are three options in the configuration file php.ini.

Tabulka 1. Zlib Configuration Options

Name | Default | Changeable
zlib.output_compression | "Off" | PHP_INI_ALL
zlib.output_compression_level | "-1" | PHP_INI_ALL
zlib.output_handler | "" | PHP_INI_ALL
For further details and definition of the PHP_INI_* constants see ini_set().

Zde je stručné vysvětlení konfiguračních direktiv.

zlib.output_compression boolean/integer

Whether to transparently compress pages. If this option is set to "On" in php.ini or the Apache configuration, pages are compressed if the browser sends an "Accept-Encoding: gzip" or "deflate" header. "Content-Encoding: gzip" (respectively "deflate") and "Vary: Accept-Encoding" headers are added to the output.

You can use ini_set() to disable this in your script if the headers aren't already sent. If you output a "Content-Type: image/" header the compression is disabled, too (in order to circumvent a Netscape bug). You can reenable it, if you add "ini_set('zlib.output_compression', 'On')" after the header call which added the image content-type.

This option also accepts integer values instead of boolean "On"/"Off", using this you can set the output buffer size (default is 4KB).

Poznámka: output_handler must be empty if this is set 'On' ! Instead you must use zlib.output_handler.

zlib.output_compression_level integer

Compression level used for transparent output compression.

zlib.output_handler string

You cannot specify additional output handlers if zlib.output_compression is activated here. This setting does the same as output_handler but in a different order.

Typy prostředků

Toto rozšíření nemá definován žádný typ prostředku (resource).

Předdefinované konstanty

Tyto konstanty jsou definovány tímto rozšířením a budou k dispozici pouze tehdy, bylo-li rozšíření zkompilováno společně s PHP nebo dynamicky zavedeno za běhu.

FORCE_GZIP (integer)

FORCE_DEFLATE (integer)

Příklady

This example opens a temporary file and writes a test string to it, then it prints out the content of this file twice.

Příklad 1. Small Zlib Example

<?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";

// open file for writing with maximum compression
$zp = gzopen($filename, "w9");

// write string to file
gzwrite($zp, $s);

// close file
gzclose($zp);

// open file for reading
$zp = gzopen($filename, "r");

// read 3 char
echo gzread($zp, 3);

// output until end of the file and close it.
gzpassthru($zp);
gzclose($zp);

echo "\n";

// open file and print content (the 2nd time).
if (readgzfile($filename) != strlen($s)) {
        echo "Error with zlib functions!";
}
unlink($filename);
echo "</pre>\n</body>\n</html>\n";

?>
Obsah
gzclose -- Close an open gz-file pointer
gzcompress -- Compress a string
gzdeflate -- Deflate a string
gzencode -- Create a gzip compressed string
gzeof -- Test for end-of-file on a gz-file pointer
gzfile -- Read entire gz-file into an array
gzgetc -- Get character from gz-file pointer
gzgets -- Get line from file pointer
gzgetss -- Get line from gz-file pointer and strip HTML tags
gzinflate -- Inflate a deflated string
gzopen -- Open gz-file
gzpassthru -- Output all remaining data on a gz-file pointer
gzputs -- Alias of gzwrite()
gzread -- Binary-safe gz-file read
gzrewind -- Rewind the position of a gz-file pointer
gzseek -- Seek on a gz-file pointer
gztell -- Tell gz-file pointer read/write position
gzuncompress -- Uncompress a deflated string
gzwrite -- Binary-safe gz-file write
readgzfile -- Output a gz-file
zlib_get_coding_type -- Returns the coding type used for output compression

Předcházející | Domů | Další
zip_read | Nahoru | gzclose


gzclose

(PHP 3, PHP 4 , PHP 5)

gzclose -- Close an open gz-file pointer

Description

int gzclose ( resource zp)

The gz-file pointed to by zp is closed.

Vrací TRUE při úspěchu, FALSE při selhání.

The gz-file pointer must be valid, and must point to a file successfully opened by gzopen().

See also gzopen().

Předcházející | Domů | Další
Zlib Compression Functions | Nahoru | gzcompress


gzcompress

(PHP 4 >= 4.0.1, PHP 5)

gzcompress -- Compress a string

Description

string gzcompress ( string data [, int level])

This function returns a compressed version of the input data using the ZLIB data format, or FALSE if an error is encountered. The optional parameter level can be given as 0 for no compression up to 9 for maximum compression.

For details on the ZLIB compression algorithm see the document "ZLIB Compressed Data Format Specification version 3.3" (RFC 1950).

Poznámka: This is not the same as gzip compression, which includes some header data. See gzencode() for gzip compression.

See also gzdeflate(),
gzinflate(),
gzuncompress(),
gzencode().

Předcházející | Domů | Další
gzclose | Nahoru | gzdeflate


gzdeflate

(PHP 4 >= 4.0.4, PHP 5)

gzdeflate -- Deflate a string

Description

string gzdeflate ( string data [, int level])

This function returns a compressed version of the input data using the DEFLATE data format, or FALSE if an error is encountered. The optional parameter level can be given as 0 for no compression up to 9 for maximum compression. If level is not given the default compression level will be the default compression level of the zlib library.

For details on the DEFLATE compression algorithm see the document "DEFLATE Compressed Data Format Specification version 1.3" (RFC 1951).

See also
gzinflate(),
gzcompress(),
gzuncompress(),
gzencode().

Předcházející | Domů | Další
gzcompress | Nahoru | gzencode


gzencode

(PHP 4 >= 4.0.4, PHP 5)

gzencode -- Create a gzip compressed string

Description

string gzencode ( string data [, int level [, int encoding_mode]])

This function returns a compressed version of the input data compatible with the output of the gzip program, or FALSE if an error is encountered. The optional parameter level can be given as 0 for no compression up to 9 for maximum compression, if not given the default compression level will be the default compression level of the zlib library.

You can also give FORCE_GZIP (the default) or FORCE_DEFLATE as optional third parameter encoding_mode. If you use FORCE_DEFLATE, you get a standard zlib deflated string (inclusive zlib headers) after the gzip file header but without the trailing crc32 checksum.

Poznámka: level was added in PHP 4.2, before PHP 4.2 gzencode() only had the data and (optional) encoding_mode parameters..

The resulting data contains the appropriate headers and data structure to make a standard .gz file, e.g.:

Příklad 1. Creating a gzip file

<?php
    $data = implode("", file("bigfile.txt"));
    $gzdata = gzencode($data, 9);
    $fp = fopen("bigfile.txt.gz", "w");
    fwrite($fp, $gzdata);
    fclose($fp);
?>

For more information on the GZIP file format, see the document: GZIP file format specification version 4.3 (RFC 1952).

See also gzcompress().
gzuncompress(),
gzdeflate(),
gzinflate().

Předcházející | Domů | Další
gzdeflate | Nahoru | gzeof


gzeof

(PHP 3, PHP 4 , PHP 5)

gzeof -- Test for end-of-file on a gz-file pointer

Description

int gzeof ( resource zp)

Returns TRUE if the gz-file pointer is at EOF or an error occurs; otherwise returns FALSE.

The gz-file pointer must be valid, and must point to a file successfully opened by gzopen().

Předcházející | Domů | Další
gzencode | Nahoru | gzfile


gzfile

(PHP 3, PHP 4 , PHP 5)

gzfile -- Read entire gz-file into an array

Description

array gzfile ( string filename [, int use_include_path])

Identical to readgzfile(), except that gzfile() returns the file in an array.

You can use the optional second parameter and set it to "1", if you want to search for the file in the include_path, too.

See also readgzfile(), and gzopen().

Předcházející | Domů | Další
gzeof | Nahoru | gzgetc


gzgetc

(PHP 3, PHP 4 , PHP 5)

gzgetc -- Get character from gz-file pointer

Description

string gzgetc ( resource zp)

Returns a string containing a single (uncompressed) character read from the file pointed to by zp. Returns FALSE on EOF (unlike gzeof()).

The gz-file pointer must be valid, and must point to a file successfully opened by gzopen().

See also gzopen(), and gzgets().

Předcházející | Domů | Další
gzfile | Nahoru | gzgets


gzgets

(PHP 3, PHP 4 , PHP 5)

gzgets -- Get line from file pointer

Description

string gzgets ( resource zp, int length)

Returns a (uncompressed) string of up to length - 1 bytes read from the file pointed to by fp. Reading ends when length - 1 bytes have been read, on a newline, or on EOF (whichever comes first).

If an error occurs, returns FALSE.

The file pointer must be valid, and must point to a file successfully opened by gzopen().

See also gzopen(), gzgetc(), and fgets().

Předcházející | Domů | Další
gzgetc | Nahoru | gzgetss


gzgetss

(PHP 3, PHP 4 , PHP 5)

gzgetss -- Get line from gz-file pointer and strip HTML tags

Description

string gzgetss ( resource zp, int length [, string allowable_tags])

Identical to gzgets(), except that gzgetss() attempts to strip any HTML and PHP tags from the text it reads.

You can use the optional third parameter to specify tags which should not be stripped.

Poznámka: Allowable_tags was added in PHP 3.0.13, PHP 4.0b3.

See also gzgets(), gzopen(), and strip_tags().

Předcházející | Domů | Další
gzgets | Nahoru | gzinflate


gzinflate

(PHP 4 >= 4.0.4, PHP 5)

gzinflate -- Inflate a deflated string

Description

string gzinflate ( string data [, int length])

This function takes data compressed by gzdeflate() and returns the original uncompressed data or FALSE on error. The function will return an error if the uncompressed data is more than 32768 times the length of the compressed input data or more than the optional parameter length.

See also gzcompress().
gzuncompress(),
gzdeflate(), and
gzencode().

Předcházející | Domů | Další
gzgetss | Nahoru | gzopen


gzopen

(PHP 3, PHP 4 , PHP 5)

gzopen -- Open gz-file

Description

resource gzopen ( string filename, string mode [, int use_include_path])

Opens a gzip (.gz) file for reading or writing. The mode parameter is as in fopen() ("rb" or "wb") but can also include a compression level ("wb9") or a strategy: 'f' for filtered data as in "wb6f", 'h' for Huffman only compression as in "wb1h". (See the description of deflateInit2 in zlib.h for more information about the strategy parameter.)

gzopen() can be used to read a file which is not in gzip format; in this case gzread() will directly read from the file without decompression.

gzopen() returns a file pointer to the file opened, after that, everything you read from this file descriptor will be transparently decompressed and what you write gets compressed.

If the open fails, the function returns FALSE.

You can use the optional third parameter and set it to "1", if you want to search for the file in the include_path, too.

Příklad 1. gzopen() Example

<?php
$fp = gzopen("/tmp/file.gz", "r");
?>

See also gzclose().

Předcházející | Domů | Další
gzinflate | Nahoru | gzpassthru


gzpassthru

(PHP 3, PHP 4 , PHP 5)

gzpassthru -- Output all remaining data on a gz-file pointer

Description

int gzpassthru ( resource zp)

Reads to EOF on the given gz-file pointer and writes the (uncompressed) results to standard output.

If an error occurs, returns FALSE.

The file pointer must be valid, and must point to a file successfully opened by gzopen().

Předcházející | Domů | Další
gzopen | Nahoru | gzputs


gzputs

gzputs -- Alias of gzwrite()

Description

This function is an alias of gzwrite().

Předcházející | Domů | Další
gzpassthru | Nahoru | gzread


gzread

(PHP 3, PHP 4 , PHP 5)

gzread -- Binary-safe gz-file read

Description

string gzread ( resource zp, int length)

gzread() reads up to length bytes from the gz-file pointer referenced by zp. Reading stops when length (uncompressed) bytes have been read or EOF is reached, whichever comes first.

Příklad 1. gzread() example

<?php
// get contents of a gz-file into a string
$filename = "/usr/local/something.txt.gz";
$zd = gzopen($filename, "r");
$contents = gzread($zd, 10000);
gzclose($zd);
?>

See also gzwrite(), gzopen(),
gzgets(), gzgetss(),
gzfile(), and gzpassthru().

Předcházející | Domů | Další
gzputs | Nahoru | gzrewind


gzrewind

(PHP 3, PHP 4 , PHP 5)

gzrewind -- Rewind the position of a gz-file pointer

Description

int gzrewind ( resource zp)

Sets the file position indicator for zp to the beginning of the file stream.

If an error occurs, returns 0.

The file pointer must be valid, and must point to a file successfully opened by gzopen().

See also gzseek() and gztell().

Předcházející | Domů | Další
gzread | Nahoru | gzseek


gzseek

(PHP 3, PHP 4 , PHP 5)

gzseek -- Seek on a gz-file pointer

Description

int gzseek ( resource zp, int offset)

Sets the file position indicator for the file referenced by zp to offset bytes into the file stream. Equivalent to calling (in C) gzseek(zp, offset, SEEK_SET).

If the file is opened for reading, this function is emulated but can be extremely slow. If the file is opened for writing, only forward seeks are supported; gzseek then compresses a sequence of zeroes up to the new starting position.

Upon success, returns 0; otherwise, returns -1. Note that seeking past EOF is not considered an error.

See also gztell() and gzrewind().

Předcházející | Domů | Další
gzrewind | Nahoru | gztell


gztell

(PHP 3, PHP 4 , PHP 5)

gztell -- Tell gz-file pointer read/write position

Description

int gztell ( resource zp)

Returns the position of the file pointer referenced by zp; i.e., its offset into the file stream.

If an error occurs, returns FALSE.

The file pointer must be valid, and must point to a file successfully opened by gzopen().

See also gzopen(), gzseek() and gzrewind().

Předcházející | Domů | Další
gzseek | Nahoru | gzuncompress


gzuncompress

(PHP 4 >= 4.0.1, PHP 5)

gzuncompress -- Uncompress a deflated string

Description

string gzuncompress ( string data [, int length])

This function takes data compressed by gzcompress() and returns the original uncompressed data or FALSE on error. The function will return an error if the uncompressed data is more than 32768 times the length of the compressed input data or more than the optional parameter length.

See also gzdeflate(),
gzinflate(),
gzcompress(),
gzencode().

Předcházející | Domů | Další
gztell | Nahoru | gzwrite


gzwrite

(PHP 3, PHP 4 , PHP 5)

gzwrite -- Binary-safe gz-file write

Description

int gzwrite ( resource zp, string string [, int length])

gzwrite() writes the contents of string to the gz-file stream pointed to by zp. If the length argument is given, writing will stop after length (uncompressed) bytes have been written or the end of string is reached, whichever comes first.

gzwrite() returns the number of (uncompressed) bytes written to the gz-file stream pointed to by zp.

Note that if the length argument is given, then the magic_quotes_runtime configuration option will be ignored and no slashes will be stripped from string.

See also gzread(), gzopen(), and gzputs().

Předcházející | Domů | Další
gzuncompress | Nahoru | readgzfile


readgzfile

(PHP 3, PHP 4 , PHP 5)

readgzfile -- Output a gz-file

Description

int readgzfile ( string filename [, int use_include_path])

Reads a file, decompresses it and writes it to standard output.

readgzfile() can be used to read a file which is not in gzip format; in this case readgzfile() will directly read from the file without decompression.

Returns the number of (uncompressed) bytes read from the file. If an error occurs, FALSE is returned and unless the function was called as @readgzfile, an error message is printed.

The file filename will be opened from the filesystem and its contents written to standard output.

You can use the optional second parameter and set it to "1", if you want to search for the file in the include_path, too.

See also gzpassthru(), gzfile(), and gzopen().

Předcházející | Domů | Další
gzwrite | Nahoru | zlib_get_coding_type


zlib_get_coding_type

(PHP 4 >= 4.3.2, PHP 5)

zlib_get_coding_type -- Returns the coding type used for output compression

Description

string zlib_get_coding_type ( void )

Returns the coding type used for output compression. Possible return values are gzip, deflate, or FALSE

See also the zlib.output_compression directive.

Předcházející | Domů | Další
readgzfile | Nahoru | Zend API


Zend API

Manuál PHP
Předcházející Další

VI. Zend API

Hacking the Core of PHP

Those who know don't talk.

Those who talk don't know.

Sometimes, PHP "as is" simply isn't enough. Although these cases are rare for the average user, professional applications will soon lead PHP to the edge of its capabilities, in terms of either speed or functionality. New functionality cannot always be implemented natively due to language restrictions and inconveniences that arise when having to carry around a huge library of default code appended to every single script, so another method needs to be found for overcoming these eventual lacks in PHP.

As soon as this point is reached, it's time to touch the heart of PHP and take a look at its core, the C code that makes PHP go.

Obsah
24. Overview
25. Extension Possibilities
26. Source Layout
27. PHP's Automatic Build System
28. Creating Extensions
29. Using Extensions
30. Troubleshooting
31. Source Discussion
32. Accepting Arguments
33. Creating Variables
34. Duplicating Variable Contents: The Copy Constructor
35. Returning Values
36. Printing Information
37. Startup and Shutdown Functions
38. Calling User Functions
39. Initialization File Support
40. Where to Go from Here
41. Reference: Some Configuration Macros
42. API Macros
Hacking the Core of PHP

Předcházející | Domů | Další
zlib_get_coding_type |  | Overview


Overview

Manuál PHP
Předcházející Další

Kapitola 24. Overview

Obsah
What Is Zend? and What Is PHP?

"Extending PHP" is easier said than done. PHP has evolved to a full-fledged tool consisting of a few megabytes of source code, and to hack a system like this quite a few things have to be learned and considered. When structuring this chapter, we finally decided on the "learn by doing" approach. This is not the most scientific and professional approach, but the method that's the most fun and gives the best end results. In the following sections, you'll learn quickly how to get the most basic extensions to work almost instantly. After that, you'll learn about Zend's advanced API functionality. The alternative would have been to try to impart the functionality, design, tips, tricks, etc. as a whole, all at once, thus giving a complete look at the big picture before doing anything practical. Although this is the "better" method, as no dirty hacks have to be made, it can be very frustrating as well as energy- and time-consuming, which is why we've decided on the direct approach.

Note that even though this chapter tries to impart as much knowledge as possible about the inner workings of PHP, it's impossible to really give a complete guide to extending PHP that works 100% of the time in all cases. PHP is such a huge and complex package that its inner workings can only be understood if you make yourself familiar with it by practicing, so we encourage you to work with the source.

What Is Zend? and What Is PHP?

The name Zend refers to the language engine, PHP's core. The term PHP refers to the complete system as it appears from the outside. This might sound a bit confusing at first, but it's not that complicated (see 24-1). To implement a Web script interpreter, you need three parts:

  1. The interpreter part analyzes the input code, translates it, and executes it.

  2. The functionality part implements the functionality of the language (its functions, etc.).

  3. The interface part talks to the Web server, etc.

Zend takes part 1 completely and a bit of part 2; PHP takes parts 2 and 3. Together they form the complete PHP package. Zend itself really forms only the language core, implementing PHP at its very basics with some predefined functions. PHP contains all the modules that actually create the language's outstanding capabilities.

Obrázek 24-1. The internal structure of PHP.

The following sections discuss where PHP can be extended and how it's done.

Předcházející | Domů | Další
Zend API | Nahoru | Extension Possibilities


Extension Possibilities

Manuál PHP
Předcházející Další

Kapitola 25. Extension Possibilities

Obsah
External Modules
Built-in Modules
The Zend Engine

As shown in 24-1 above, PHP can be extended primarily at three points: external modules, built-in modules, and the Zend engine. The following sections discuss these options.

External Modules

External modules can be loaded at script runtime using the function dl(). This function loads a shared object from disk and makes its functionality available to the script to which it's being bound. After the script is terminated, the external module is discarded from memory. This method has both advantages and disadvantages, as described in the following table:

Advantages | Disadvantages
External modules don't require recompiling of PHP. | The shared objects need to be loaded every time a script is being executed (every hit), which is very slow.
The size of PHP remains small by "outsourcing" certain functionality. | External additional files clutter up the disk.
 | Every script that wants to use an external module's functionality has to specifically include a call to dl(), or the extension tag in php.ini needs to be modified (which is not always a suitable solution).

To sum up, external modules are great for third-party products, small additions to PHP that are rarely used, or just for testing purposes. To develop additional functionality quickly, external modules provide the best results. For frequent usage, larger implementations, and complex code, the disadvantages outweigh the advantages.

Third parties might consider using the extension tag in php.ini to create additional external modules to PHP. These external modules are completely detached from the main package, which is a very handy feature in commercial environments. Commercial distributors can simply ship disks or archives containing only their additional modules, without the need to create fixed and solid PHP binaries that don't allow other modules to be bound to them.

Předcházející | Domů | Další
Overview | Nahoru | Built-in Modules


Built-in Modules

Built-in modules are compiled directly into PHP and carried around with every PHP process; their functionality is instantly available to every script that's being run. Like external modules, built-in modules have advantages and disadvantages, as described in the following table:

Advantages | Disadvantages
No need to load the module specifically; the functionality is instantly available. | Changes to built-in modules require recompiling of PHP.
No external files clutter up the disk; everything resides in the PHP binary. | The PHP binary grows and consumes more memory.

Built-in modules are best when you have a solid library of functions that remains relatively unchanged, requires better than poor-to-average performance, or is used frequently by many scripts on your site. The need to recompile PHP is quickly compensated by the benefit in speed and ease of use. However, built-in modules are not ideal when rapid development of small additions is required.

Předcházející | Domů | Další
Extension Possibilities | Nahoru | The Zend Engine


The Zend Engine

Of course, extensions can also be implemented directly in the Zend engine. This strategy is good if you need a change in the language behavior or require special functions to be built directly into the language core. In general, however, modifications to the Zend engine should be avoided. Changes here result in incompatibilities with the rest of the world, and hardly anyone will ever adapt to specially patched Zend engines. Modifications can't be detached from the main PHP sources and are overridden with the next update using the "official" source repositories. Therefore, this method is generally considered bad practice and, due to its rarity, is not covered in this book.

Předcházející | Domů | Další
Built-in Modules | Nahoru | Source Layout


Source Layout

Manuál PHP
Předcházející Další

Kapitola 26. Source Layout

Obsah
Extension Conventions
Macros
Memory Management
Directory and File Functions
String Handling
Complex Types

Poznámka: Prior to working through the rest of this chapter, you should retrieve clean, unmodified source trees of your favorite Web server. We're working with Apache (available at http://www.apache.org/) and, of course, with PHP (available at http://www.php.net/ - does it need to be said?).

Make sure that you can compile a working PHP environment by yourself! We won't go into this issue here, however, as you should already have this most basic ability when studying this chapter.

Before we start discussing code issues, you should familiarize yourself with the source tree to be able to quickly navigate through PHP's files. This is a must-have ability to implement and debug extensions.

The following table describes the contents of the major directories.

Directory | Contents
php4 | Main PHP source files and main header files; here you'll find all of PHP's API definitions, macros, etc. (important). Everything else is below this directory.
php4/ext | Repository for dynamic and built-in modules; by default, these are the "official" PHP modules that have been integrated into the main source tree. From PHP 4.0, it's possible to compile these standard extensions as dynamic loadable modules (at least, those that support it).
php4/main | This directory contains the main php macros and definitions. (important)
php4/pear | Directory for the PHP Extension and Application Repository. This directory contains core PEAR files.
php4/sapi | Contains the code for the different server abstraction layers.
php4/TSRM | Location of the "Thread Safe Resource Manager" (TSRM) for Zend and PHP.
php4/Zend | Location of the Zend Engine files; here you'll find all of Zend's API definitions, macros, etc. (important).

Discussing all the files included in the PHP package is beyond the scope of this chapter. However, you should take a close look at the following files:

  • php4/main/php.h, located in the main PHP directory. This file contains most of PHP's macro and API definitions.

  • php4/Zend/zend.h, located in the main Zend directory. This file contains most of Zend's macros and definitions.

  • php4/Zend/zend_API.h, also located in the Zend directory, which defines Zend's API.

You should also follow some sub-inclusions from these files; for example, the ones relating to the Zend executor, the PHP initialization file support, and such. After reading these files, take the time to navigate around the package a little to see the interdependencies of all files and modules - how they relate to each other and especially how they make use of each other. This also helps you to adapt to the coding style in which PHP is authored. To extend PHP, you should quickly adapt to this style.

Extension Conventions

Zend is built using certain conventions; to avoid breaking its standards, you should follow the rules described in the following sections.

Předcházející | Domů | Další
The Zend Engine | Nahoru | Macros


Macros

For almost every important task, Zend ships predefined macros that are extremely handy. The tables and figures in the following sections describe most of the basic functions, structures, and macros. The macro definitions can be found mainly in zend.h and zend_API.h. We suggest that you take a close look at these files after having studied this chapter. (Although you can go ahead and read them now, not everything will make sense to you yet.)

Předcházející | Domů | Další
Source Layout | Nahoru | Memory Management


Memory Management

Resource management is a crucial issue, especially in server software. One of the most valuable resources is memory, and memory management should be handled with extreme care. Memory management has been partially abstracted in Zend, and you should stick to this abstraction for obvious reasons: Due to the abstraction, Zend gets full control over all memory allocations. Zend is able to determine whether a block is in use, automatically freeing unused blocks and blocks with lost references, and thus prevent memory leaks. The functions to be used are described in the following table:

Function | Description
emalloc() | Serves as replacement for malloc().
efree() | Serves as replacement for free().
estrdup() | Serves as replacement for strdup().
estrndup() | Serves as replacement for strndup(). Faster than estrdup() and binary-safe. This is the recommended function to use if you know the string length prior to duplicating it.
ecalloc() | Serves as replacement for calloc().
erealloc() | Serves as replacement for realloc().

emalloc(), estrdup(), estrndup(), ecalloc(), and erealloc() allocate internal memory; efree() frees these previously allocated blocks. Memory handled by the e*() functions is considered local to the current process and is discarded as soon as the script executed by this process is terminated.

Varování

To allocate resident memory that survives termination of the current script, you can use malloc() and free(). This should only be done with extreme care, however, and only in conjunction with demands of the Zend API; otherwise, you risk memory leaks.

Zend also features a thread-safe resource manager to provide better native support for multithreaded Web servers. This requires you to allocate local structures for all of your global variables to allow concurrent threads to be run. Because the thread-safe mode of Zend was not finished back when this was written, it is not yet extensively covered here.

Předcházející | Domů | Další
Macros | Nahoru | Directory and File Functions


Directory and File Functions

The following directory and file functions should be used in Zend modules. They behave exactly like their C counterparts, but provide virtual working directory support on the thread level.

Zend Function | Regular C Function
V_GETCWD() | getcwd()
V_FOPEN() | fopen()
V_OPEN() | open()
V_CHDIR() | chdir()
V_GETWD() | getwd()
V_CHDIR_FILE() | Takes a file path as an argument and changes the current working directory to that file's directory.
V_STAT() | stat()
V_LSTAT() | lstat()

Předcházející | Domů | Další
Memory Management | Nahoru | String Handling


String Handling

Strings are handled a bit differently by the Zend engine than other values such as integers, Booleans, etc., which don't require additional memory allocation for storing their values. If you want to return a string from a function, introduce a new string variable to the symbol table, or do something similar, you have to make sure that the memory the string will be occupying has previously been allocated, using the aforementioned e*() functions for allocation. (This might not make much sense to you yet; just keep it somewhere in your head for now - we'll get back to it shortly.)

Předcházející | Domů | Další
Directory and File Functions | Nahoru | Complex Types


Complex Types

Complex types such as arrays and objects require different treatment. Zend features a single API for these types - they're stored using hash tables.

Poznámka: To reduce complexity in the following source examples, we're only working with simple types such as integers at first. A discussion about creating more advanced types follows later in this chapter.

Předcházející | Domů | Další
String Handling | Nahoru | PHP's Automatic Build System


PHP's Automatic Build System

Manuál PHP
Předcházející Další

Kapitola 27. PHP's Automatic Build System

PHP 4 features an automatic build system that's very flexible. All modules reside in a subdirectory of the ext directory. In addition to its own sources, each module consists of a config.m4 file, for extension configuration. (for example, see http://www.gnu.org/manual/m4/html_mono/m4.html)

All these stub files are generated automatically, along with .cvsignore, by a little shell script named ext_skel that resides in the ext directory. As argument it takes the name of the module that you want to create. The shell script then creates a directory of the same name, along with the appropriate stub files.

Step by step, the process looks like this:
:~/cvs/php4/ext:> ./ext_skel --extname=my_module
Creating directory my_module
Creating basic files: config.m4 .cvsignore my_module.c php_my_module.h CREDITS EXPERIMENTAL tests/001.phpt my_module.php [done].

To use your new extension, you will have to execute the following steps:

1.  $ cd ..
2.  $ vi ext/my_module/config.m4
3.  $ ./buildconf
4.  $ ./configure --[with|enable]-my_module
5.  $ make
6.  $ ./php -f ext/my_module/my_module.php
7.  $ vi ext/my_module/my_module.c
8.  $ make

Repeat steps 3-6 until you are satisfied with ext/my_module/config.m4 and
step 6 confirms that your module is compiled into PHP. Then, start writing
code and repeat the last two steps as often as necessary.
This instruction creates the aforementioned files. To include the new module in the automatic configuration and build process, you have to run buildconf, which regenerates the configure script by searching through the ext directory and including all found config.m4 files.

The default config.m4 shown in 27-1 is a bit more complex:

Příklad 27-1. The default config.m4.

dnl $Id: Extending_Zend_Build.xml,v 1.8 2002/10/10 18:13:11 imajes Exp $
dnl config.m4 for extension my_module

dnl Comments in this file start with the string 'dnl'.
dnl Remove where necessary. This file will not work
dnl without editing.

dnl If your extension references something external, use with:

dnl PHP_ARG_WITH(my_module, for my_module support,
dnl Make sure that the comment is aligned:
dnl [  --with-my_module             Include my_module support])

dnl Otherwise use enable:

dnl PHP_ARG_ENABLE(my_module, whether to enable my_module support,
dnl Make sure that the comment is aligned:
dnl [  --enable-my_module           Enable my_module support])

if test "$PHP_MY_MODULE" != "no"; then
  dnl Write more examples of tests here...

  dnl # --with-my_module -> check with-path
  dnl SEARCH_PATH="/usr/local /usr"     # you might want to change this
  dnl SEARCH_FOR="/include/my_module.h"  # you most likely want to change this
  dnl if test -r $PHP_MY_MODULE/; then # path given as parameter
  dnl   MY_MODULE_DIR=$PHP_MY_MODULE
  dnl else # search default path list
  dnl   AC_MSG_CHECKING([for my_module files in default path])
  dnl   for i in $SEARCH_PATH ; do
  dnl     if test -r $i/$SEARCH_FOR; then
  dnl       MY_MODULE_DIR=$i
  dnl       AC_MSG_RESULT(found in $i)
  dnl     fi
  dnl   done
  dnl fi
  dnl
  dnl if test -z "$MY_MODULE_DIR"; then
  dnl   AC_MSG_RESULT([not found])
  dnl   AC_MSG_ERROR([Please reinstall the my_module distribution])
  dnl fi

  dnl # --with-my_module -> add include path
  dnl PHP_ADD_INCLUDE($MY_MODULE_DIR/include)

  dnl # --with-my_module -> chech for lib and symbol presence
  dnl LIBNAME=my_module # you may want to change this
  dnl LIBSYMBOL=my_module # you most likely want to change this

  dnl PHP_CHECK_LIBRARY($LIBNAME,$LIBSYMBOL,
  dnl [
  dnl   PHP_ADD_LIBRARY_WITH_PATH($LIBNAME, $MY_MODULE_DIR/lib, MY_MODULE_SHARED_LIBADD)
  dnl   AC_DEFINE(HAVE_MY_MODULELIB,1,[ ])
  dnl ],[
  dnl   AC_MSG_ERROR([wrong my_module lib version or lib not found])
  dnl ],[
  dnl   -L$MY_MODULE_DIR/lib -lm -ldl
  dnl ])
  dnl
  dnl PHP_SUBST(MY_MODULE_SHARED_LIBADD)

  PHP_NEW_EXTENSION(my_module, my_module.c, $ext_shared)
fi

If you're unfamiliar with M4 files (now is certainly a good time to get familiar), this might be a bit confusing at first; but it's actually quite easy.

Note: Everything prefixed with dnl is treated as a comment and is not parsed.

The config.m4 file is responsible for parsing the command-line options passed to configure at configuration time. This means that it has to check for required external files and do similar configuration and setup tasks.

The default file creates two configuration directives in the configure script: --with-my_module and --enable-my_module. Use the first option when referring external files (such as the --with-apache directive that refers to the Apache directory). Use the second option when the user simply has to decide whether to enable your extension. Regardless of which option you use, you should uncomment the other, unnecessary one; that is, if you're using --enable-my_module, you should remove support for --with-my_module, and vice versa.

By default, the config.m4 file created by ext_skel accepts both directives and automatically enables your extension. Enabling the extension is done by using the PHP_EXTENSION macro. To change the default behavior to include your module into the PHP binary when desired by the user (by explicitly specifying --enable-my_module or --with-my_module), change the test for $PHP_MY_MODULE to == "yes":
if test "$PHP_MY_MODULE" == "yes"; then dnl
    Action.. PHP_EXTENSION(my_module, $ext_shared)
    fi
This would require you to use --enable-my_module each time when reconfiguring and recompiling PHP.

Note: Be sure to run buildconf every time you change config.m4!

We'll go into more details on the M4 macros available to your configuration scripts later in this chapter. For now, we'll simply use the default files.

Předcházející | Domů | Další
Complex Types | Nahoru | Creating Extensions


Creating Extensions

Manuál PHP
Předcházející Další

Kapitola 28. Creating Extensions

Obsah
Compiling Modules

We'll start with the creation of a very simple extension at first, which basically does nothing more than implement a function that returns the integer it receives as parameter. 28-1 shows the source.

Příklad 28-1. A simple extension.

/* include standard header */
#include "php.h"

/* declaration of functions to be exported */
ZEND_FUNCTION(first_module);

/* compiled function list so Zend knows what's in this module */
zend_function_entry firstmod_functions[] =
{
    ZEND_FE(first_module, NULL)
    {NULL, NULL, NULL}
};

/* compiled module information */
zend_module_entry firstmod_module_entry =
{
    STANDARD_MODULE_HEADER,
    "First Module",
    firstmod_functions,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NO_VERSION_YET,
    STANDARD_MODULE_PROPERTIES
};

/* implement standard "stub" routine to introduce ourselves to Zend */
#if COMPILE_DL_FIRST_MODULE
ZEND_GET_MODULE(firstmod)
#endif

/* implement function that is meant to be made available to PHP */
ZEND_FUNCTION(first_module)
{
    long parameter;

    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &parameter) == FAILURE) {
        return;
    }

    RETURN_LONG(parameter);
}

This code contains a complete PHP module. We'll explain the source code in detail shortly, but first we'd like to discuss the build process. (This will allow the impatient to experiment before we dive into API discussions.)

Poznámka: The example source makes use of some features introduced with the Zend version used in PHP 4.1.0 and above, it won't compile with older PHP 4.0.x versions.

Compiling Modules

There are basically two ways to compile modules:

  • Use the provided "make" mechanism in the ext directory, which also allows building of dynamic loadable modules.

  • Compile the sources manually.

The first method should definitely be favored, since, as of PHP 4.0, this has been standardized into a sophisticated build process. The fact that it is so sophisticated is also its drawback, unfortunately - it's hard to understand at first. We'll provide a more detailed introduction to this later in the chapter, but first let's work with the default files.

The second method is good for those who (for some reason) don't have the full PHP source tree available, don't have access to all files, or just like to juggle with their keyboard. These cases should be extremely rare, but for the sake of completeness we'll also describe this method.

Compiling Using Make. To compile the sample sources using the standard mechanism, copy all their subdirectories to the ext directory of your PHP source tree. Then run buildconf, which will create an updated configure script containing appropriate options for the new extension. By default, all the sample sources are disabled, so you don't have to fear breaking your build process.

After you run buildconf, configure --help shows the following additional modules:

--enable-array_experiments   BOOK: Enables array experiments
  --enable-call_userland       BOOK: Enables userland module
  --enable-cross_conversion    BOOK: Enables cross-conversion module
  --enable-first_module        BOOK: Enables first module
  --enable-infoprint           BOOK: Enables infoprint module
  --enable-reference_test      BOOK: Enables reference test module
  --enable-resource_test       BOOK: Enables resource test module
  --enable-variable_creation   BOOK: Enables variable-creation module

The module shown earlier in 28-1 can be enabled with --enable-first_module or --enable-first_module=yes.

Compiling Manually. To compile your modules manually, you need the following commands:

Action | Command
Compiling | cc -fpic -DCOMPILE_DL=1 -I/usr/local/include -I. -I.. -I../Zend -c -o <your_object_file> <your_c_file>
Linking | cc -shared -L/usr/local/lib -rdynamic -o <your_module_file> <your_object_file(s)>

The command to compile the module simply instructs the compiler to generate position-independent code (-fpic shouldn't be omitted) and additionally defines the constant COMPILE_DL to tell the module code that it's compiled as a dynamically loadable module (the test module above checks for this; we'll discuss it shortly). After these options, it specifies a number of standard include paths that should be used as the minimal set to compile the source files.

Note: All include paths in the example are relative to the directory ext. If you're compiling from another directory, change the pathnames accordingly. Required items are the PHP directory, the Zend directory, and (if necessary), the directory in which your module resides.

The link command is also a plain vanilla command instructing linkage as a dynamic module.

You can include optimization options in the compilation command, although these have been omitted in this example (but some are included in the makefile template described in an earlier section).

Note: Compiling and linking manually as a static module into the PHP binary involves very long instructions and thus is not discussed here. (It's not very efficient to type all those commands.)

Předcházející | Domů | Další
PHP's Automatic Build System | Nahoru | Using Extensions


Using Extensions

Manuál PHP
Předcházející Další

Kapitola 29. Using Extensions

Depending on the build process you selected, you should either end up with a new PHP binary to be linked into your Web server (or run as CGI), or with an .so (shared object) file. If you compiled the example file first_module.c as a shared object, your result file should be first_module.so. To use it, you first have to copy it to a place from which it's accessible to PHP. For a simple test procedure, you can copy it to your htdocs directory and try it with the source in 29-1. If you compiled it into the PHP binary, omit the call to dl(), as the module's functionality is instantly available to your scripts.

Varování

For security reasons, you should not put your dynamic modules into publicly accessible directories. Even though it can be done and it simplifies testing, you should put them into a separate directory in production environments.

Příklad 29-1. A test file for first_module.so.

<?php

// remove next comment if necessary
// dl("first_module.so");

$param = 2;
$return = first_module($param);

print("We sent '$param' and got '$return'");

?>

Calling this PHP file in your Web browser should give you the output shown in 29-1.

Obrázek 29-1. Output of first_module.php.

If required, the dynamic loadable module is loaded by calling the dl() function. This function looks for the specified shared object, loads it, and makes its functions available to PHP. The module exports the function first_module(), which accepts a single parameter, converts it to an integer, and returns the result of the conversion.

If you've gotten this far, congratulations! You just built your first extension to PHP.

Předcházející | Domů | Další
Creating Extensions | Nahoru | Troubleshooting


Troubleshooting

Manuál PHP
Předcházející Další

Kapitola 30. Troubleshooting

Actually, not much troubleshooting can be done when compiling static or dynamic modules. The only problem that could arise is that the compiler will complain about missing definitions or something similar. In this case, make sure that all header files are available and that you specified their path correctly in the compilation command. To be sure that everything is located correctly, extract a clean PHP source tree and use the automatic build in the ext directory with the fresh files; this will guarantee a safe compilation environment. If this fails, try manual compilation.

PHP might also complain about missing functions in your module. (This shouldn't happen with the sample sources if you didn't modify them.) If the names of external functions you're trying to access from your module are misspelled, they'll remain as "unlinked symbols" in the symbol table. During dynamic loading and linkage by PHP, they won't resolve because of the typing errors - there are no corresponding symbols in the main binary. Look for incorrect declarations in your module file or incorrectly written external references. Note that this problem is specific to dynamic loadable modules; it doesn't occur with static modules. Errors in static modules show up at compile time.

Předcházející | Domů | Další
Using Extensions | Nahoru | Source Discussion


Source Discussion

Manuál PHP
Předcházející Další

Kapitola 31. Source Discussion

Obsah
Module Structure
Header File Inclusions
Declaring Exported Functions
Declaration of the Zend Function Block
Declaration of the Zend Module Block
Creation of get_module()
Implementation of All Exported Functions
Summary

Now that you've got a safe build environment and you're able to include the modules into PHP files, it's time to discuss how everything works.

Module Structure

All PHP modules follow a common structure:

  • Header file inclusions (to include all required macros, API definitions, etc.)

  • C declaration of exported functions (required to declare the Zend function block)

  • Declaration of the Zend function block

  • Declaration of the Zend module block

  • Implementation of get_module()

  • Implementation of all exported functions

Předcházející | Domů | Další
Troubleshooting | Nahoru | Header File Inclusions


Header File Inclusions

The only header file you really have to include for your modules is php.h, located in the PHP directory. This file makes all macros and API definitions required to build new modules available to your code.

Tip: It's good practice to create a separate header file for your module that contains module-specific definitions. This header file should contain all the forward definitions for exported functions and include php.h. If you created your module using ext_skel you already have such a header file prepared.

Předcházející | Domů | Další
Source Discussion | Nahoru | Declaring Exported Functions


Declaring Exported Functions

To declare functions that are to be exported (i.e., made available to PHP as new native functions), Zend provides a set of macros. A sample declaration looks like this:
ZEND_FUNCTION ( my_function );

ZEND_FUNCTION declares a new C function that complies with Zend's internal API. This means that the function is of type void and accepts INTERNAL_FUNCTION_PARAMETERS (another macro) as parameters. Additionally, it prefixes the function name with zif. The immediately expanded version of the above definitions would look like this:
void zif_my_function ( INTERNAL_FUNCTION_PARAMETERS );
Expanding INTERNAL_FUNCTION_PARAMETERS results in the following:
void zif_my_function( int ht
                    , zval * return_value
                    , zval * this_ptr
                    , int return_value_used
                    , zend_executor_globals * executor_globals
                    );

Since the interpreter and executor core have been separated from the main PHP package, a second API defining macros and function sets has evolved: the Zend API. As the Zend API now handles quite a few of the responsibilities that previously belonged to PHP, a lot of PHP functions have been reduced to macros aliasing to calls into the Zend API. The recommended practice is to use the Zend API wherever possible, as the old API is only preserved for compatibility reasons. For example, the types zval and pval are identical. zval is Zend's definition; pval is PHP's definition (actually, pval is an alias for zval now). As the macro INTERNAL_FUNCTION_PARAMETERS is a Zend macro, the above declaration contains zval. When writing code, you should always use zval to conform to the new Zend API.

The parameter list of this declaration is very important; you should keep these parameters in mind (see 31-1 for descriptions).

Tabulka 31-1. Zend's Parameters to Functions Called from PHP

Parameter | Description
ht | The number of arguments passed to the Zend function. You should not touch this directly, but instead use ZEND_NUM_ARGS() to obtain the value.
return_value | This variable is used to pass any return values of your function back to PHP. Access to this variable is best done using the predefined macros. For a description of these see below.
this_ptr | Using this variable, you can gain access to the object in which your function is contained, if it's used within an object. Use the function getThis() to obtain this pointer.
return_value_used | This flag indicates whether an eventual return value from this function will actually be used by the calling script. 0 indicates that the return value is not used; 1 indicates that the caller expects a return value. Evaluation of this flag can be done to verify correct usage of the function as well as speed optimizations in case returning a value requires expensive operations (for an example, see how array.c makes use of this).
executor_globals | This variable points to global settings of the Zend engine. You'll find this useful when creating new variables, for example (more about this later). The executor globals can also be introduced to your function by using the macro TSRMLS_FETCH().

Předcházející | Domů | Další
Header File Inclusions | Nahoru | Declaration of the Zend Function Block


Declaration of the Zend Function Block

Now that you have declared the functions to be exported, you also have to introduce them to Zend. Introducing the list of functions is done by using an array of zend_function_entry. This array consecutively contains all functions that are to be made available externally, with the function's name as it should appear in PHP and its name as defined in the C source. Internally, zend_function_entry is defined as shown in 31-1.

Příklad 31-1. Internal declaration of zend_function_entry.

typedef struct _zend_function_entry {
    char *fname;
    void (*handler)(INTERNAL_FUNCTION_PARAMETERS);
    unsigned char *func_arg_types;
} zend_function_entry;

Entry | Description
fname | Denotes the function name as seen in PHP (for example, fopen, mysql_connect, or, in our example, first_module).
handler | Pointer to the C function responsible for handling calls to this function. For example, see the standard macro INTERNAL_FUNCTION_PARAMETERS discussed earlier.
func_arg_types | Allows you to mark certain parameters so that they're forced to be passed by reference. You usually should set this to NULL.

In the example above, the declaration looks like this:
zend_function_entry firstmod_functions[] =
{
    ZEND_FE(first_module, NULL)
    {NULL, NULL, NULL}
};
You can see that the last entry in the list always has to be {NULL, NULL, NULL}. This marker has to be set for Zend to know when the end of the list of exported functions is reached.

Poznámka: You cannot use the predefined macros for the end marker, as these would try to refer to a function named "NULL"!

The macro ZEND_FE (short for 'Zend Function Entry') simply expands to a structure entry in zend_function_entry. Note that these macros introduce a special naming scheme to your functions - your C functions will be prefixed with zif_, meaning that ZEND_FE(first_module) will refer to a C function zif_first_module(). If you want to mix macro usage with hand-coded entries (not a good practice), keep this in mind.

Tip: Compilation errors that refer to functions named zif_*() relate to functions defined with ZEND_FE.

31-2 shows a list of all the macros that you can use to define functions.

Tabulka 31-2. Macros for Defining Functions

Macro Name | Description
ZEND_FE(name, arg_types) | Defines a function entry of the name name in zend_function_entry. Requires a corresponding C function. arg_types needs to be set to NULL. This function uses automatic C function name generation by prefixing the PHP function name with zif_. For example, ZEND_FE("first_module", NULL) introduces a function first_module() to PHP and links it to the C function zif_first_module(). Use in conjunction with ZEND_FUNCTION.
ZEND_NAMED_FE(php_name, name, arg_types) | Defines a function that will be available to PHP by the name php_name and links it to the corresponding C function name. arg_types needs to be set to NULL. Use this function if you don't want the automatic name prefixing introduced by ZEND_FE. Use in conjunction with ZEND_NAMED_FUNCTION.
ZEND_FALIAS(name, alias, arg_types) | Defines an alias named alias for name. arg_types needs to be set to NULL. Doesn't require a corresponding C function; refers to the alias target instead.
PHP_FE(name, arg_types) | Old PHP API equivalent of ZEND_FE.
PHP_NAMED_FE(runtime_name, name, arg_types) | Old PHP API equivalent of ZEND_NAMED_FE.

Note: You can't use ZEND_FE in conjunction with PHP_FUNCTION, or PHP_FE in conjunction with ZEND_FUNCTION. However, it's perfectly legal to mix ZEND_FE and ZEND_FUNCTION with PHP_FE and PHP_FUNCTION when staying with the same macro set for each function to be declared. But mixing is not recommended; instead, you're advised to use the ZEND_* macros only.

Předcházející | Domů | Další
Declaring Exported Functions | Nahoru | Declaration of the Zend Module Block


Declaration of the Zend Module Block

This block is stored in the structure zend_module_entry and contains all necessary information to describe the contents of this module to Zend. You can see the internal definition of this module in 31-2.

Příklad 31-2. Internal declaration of zend_module_entry.

typedef struct _zend_module_entry zend_module_entry;

    struct _zend_module_entry {
    unsigned short size;
    unsigned int zend_api;
    unsigned char zend_debug;
    unsigned char zts;
    char *name;
    zend_function_entry *functions;
    int (*module_startup_func)(INIT_FUNC_ARGS);
    int (*module_shutdown_func)(SHUTDOWN_FUNC_ARGS);
    int (*request_startup_func)(INIT_FUNC_ARGS);
    int (*request_shutdown_func)(SHUTDOWN_FUNC_ARGS);
    void (*info_func)(ZEND_MODULE_INFO_FUNC_ARGS);
    char *version;

[ Rest of the structure is not interesting here ]

};

Entry | Description
size, zend_api, zend_debug and zts | Usually filled with the "STANDARD_MODULE_HEADER", which fills these four members with the size of the whole zend_module_entry, the ZEND_MODULE_API_NO, whether it is a debug build or normal build (ZEND_DEBUG) and if ZTS is enabled (USING_ZTS).
name | Contains the module name (for example, "File functions", "Socket functions", "Crypt", etc.). This name will show up in phpinfo(), in the section "Additional Modules."
functions | Points to the Zend function block, discussed in the preceding section.
module_startup_func | This function is called once upon module initialization and can be used to do one-time initialization steps (such as initial memory allocation, etc.). To indicate a failure during initialization, return FAILURE; otherwise, SUCCESS. To mark this field as unused, use NULL. To declare a function, use the macro ZEND_MINIT.
module_shutdown_func | This function is called once upon module shutdown and can be used to do one-time deinitialization steps (such as memory deallocation). This is the counterpart to module_startup_func(). To indicate a failure during deinitialization, return FAILURE; otherwise, SUCCESS. To mark this field as unused, use NULL. To declare a function, use the macro ZEND_MSHUTDOWN.
request_startup_func | This function is called once upon every page request and can be used to do one-time initialization steps that are required to process a request. To indicate a failure here, return FAILURE; otherwise, SUCCESS. Note: As dynamic loadable modules are loaded only on page requests, the request startup function is called right after the module startup function (both initialization events happen at the same time). To mark this field as unused, use NULL. To declare a function, use the macro ZEND_RINIT.
request_shutdown_func | This function is called once after every page request and works as counterpart to request_startup_func(). To indicate a failure here, return FAILURE; otherwise, SUCCESS. Note: As dynamic loadable modules are loaded only on page requests, the request shutdown function is immediately followed by a call to the module shutdown handler (both deinitialization events happen at the same time). To mark this field as unused, use NULL. To declare a function, use the macro ZEND_RSHUTDOWN.
info_func | When phpinfo() is called in a script, Zend cycles through all loaded modules and calls this function. Every module then has the chance to print its own "footprint" into the output page. Generally this is used to dump environmental or statistical information. To mark this field as unused, use NULL. To declare a function, use the macro ZEND_MINFO.
version | The version of the module. You can use NO_VERSION_YET if you don't want to give the module a version number yet, but we really recommend that you add a version string here. Such a version string can look like this (in chronological order): "2.5-dev", "2.5RC1", "2.5" or "2.5pl3".
Remaining structure elements | These are used internally and can be prefilled by using the macro STANDARD_MODULE_PROPERTIES_EX. You should not assign any values to them. Use STANDARD_MODULE_PROPERTIES_EX only if you use global startup and shutdown functions; otherwise, use STANDARD_MODULE_PROPERTIES directly.

In our example, this structure is implemented as follows:
zend_module_entry firstmod_module_entry =
{
    STANDARD_MODULE_HEADER,
    "First Module",
    firstmod_functions,
    NULL, NULL, NULL, NULL, NULL,
    NO_VERSION_YET,
    STANDARD_MODULE_PROPERTIES,
};
This is basically the easiest and most minimal set of values you could ever use. The module name is set to First Module, then the function list is referenced, after which all startup and shutdown functions are marked as being unused.

For reference purposes, you can find a list of the macros involved in declared startup and shutdown functions in 31-3. These are not used in our basic example yet, but will be demonstrated later on. You should make use of these macros to declare your startup and shutdown functions, as these require special arguments to be passed (INIT_FUNC_ARGS and SHUTDOWN_FUNC_ARGS), which are automatically included into the function declaration when using the predefined macros. If you declare your functions manually and the PHP developers decide that a change in the argument list is necessary, you'll have to change your module sources to remain compatible.

Tabulka 31-3. Macros to Declare Startup and Shutdown Functions

Macro | Description
ZEND_MINIT(module) | Declares a function for module startup. The generated name will be zend_minit_<module> (for example, zend_minit_first_module). Use in conjunction with ZEND_MINIT_FUNCTION.
ZEND_MSHUTDOWN(module) | Declares a function for module shutdown. The generated name will be zend_mshutdown_<module> (for example, zend_mshutdown_first_module). Use in conjunction with ZEND_MSHUTDOWN_FUNCTION.
ZEND_RINIT(module) | Declares a function for request startup. The generated name will be zend_rinit_<module> (for example, zend_rinit_first_module). Use in conjunction with ZEND_RINIT_FUNCTION.
ZEND_RSHUTDOWN(module) | Declares a function for request shutdown. The generated name will be zend_rshutdown_<module> (for example, zend_rshutdown_first_module). Use in conjunction with ZEND_RSHUTDOWN_FUNCTION.
ZEND_MINFO(module) | Declares a function for printing module information, used when phpinfo() is called. The generated name will be zend_info_<module> (for example, zend_info_first_module). Use in conjunction with ZEND_MINFO_FUNCTION.

Předcházející | Domů | Další
Declaration of the Zend Function Block | Nahoru | Creation of get_module()


Implementation of All Exported Functions

Implementing the exported functions is the final step. The example function in first_module looks like this:
ZEND_FUNCTION(first_module)
{
    long parameter;

    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &parameter) == FAILURE) {
        return;
    }

    RETURN_LONG(parameter);
}
The function declaration is done using ZEND_FUNCTION, which corresponds to ZEND_FE in the function entry table (discussed earlier).

After the declaration, code for checking and retrieving the function's arguments, argument conversion, and return value generation follows (more on this later).

Předcházející | Domů | Další
Creation of get_module() | Nahoru | Summary


Summary

That's it, basically - there's nothing more to implementing PHP modules. Built-in modules are structured similarly to dynamic modules, so, equipped with the information presented in the previous sections, you'll be able to fight the odds when encountering PHP module source files.

Now, in the following sections, read on about how to make use of PHP's internals to build powerful extensions.

Předcházející | Domů | Další
Implementation of All Exported Functions | Nahoru | Accepting Arguments


Accepting Arguments

Manuál PHP
Předcházející Další

Kapitola 32. Accepting Arguments

Obsah
Determining the Number of Arguments
Retrieving Arguments
Old way of retrieving arguments (deprecated)
Dealing with a Variable Number of Arguments/Optional Parameters
Accessing Arguments
Dealing with Arguments Passed by Reference
Assuring Write Safety for Other Parameters

One of the most important issues for language extensions is accepting and dealing with data passed via arguments. Most extensions are built to deal with specific input data (or require parameters to perform their specific actions), and function arguments are the only real way to exchange data between the PHP level and the C level. Of course, there's also the possibility of exchanging data using predefined global values (which is also discussed later), but this should be avoided by all means, as it's extremely bad practice.

PHP doesn't make use of any formal function declarations; this is why call syntax is always completely dynamic and never checked for errors. Checking for correct call syntax is left to the user code. For example, it's possible to call a function using only one argument at one time and four arguments the next time - both invocations are syntactically absolutely correct.

Determining the Number of Arguments

Since PHP doesn't have formal function definitions with support for call syntax checking, and since PHP features variable arguments, sometimes you need to find out with how many arguments your function has been called. You can use the ZEND_NUM_ARGS macro in this case. In previous versions of PHP, this macro retrieved the number of arguments with which the function has been called based on the function's hash table entry, ht, which is passed in the INTERNAL_FUNCTION_PARAMETERS list. As ht itself now contains the number of arguments that have been passed to the function, ZEND_NUM_ARGS has been stripped down to a dummy macro (see its definition in zend_API.h). But it's still good practice to use it, to remain compatible with future changes in the call interface. Note: The old PHP equivalent of this macro is ARG_COUNT.

The following code checks for the correct number of arguments:
if(ZEND_NUM_ARGS() != 2) WRONG_PARAM_COUNT;
If the function is not called with two arguments, it exits with an error message. The code snippet above makes use of the tool macro WRONG_PARAM_COUNT, which can be used to generate a standard error message (see 32-1).

Obrázek 32-1. WRONG_PARAM_COUNT in action.

This macro prints a default error message and then returns to the caller. Its definition can also be found in zend_API.h and looks like this:
ZEND_API void wrong_param_count(void);

#define WRONG_PARAM_COUNT { wrong_param_count(); return; }
As you can see, it calls an internal function named wrong_param_count() that's responsible for printing the warning. For details on generating customized error messages, see the later section "Printing Information."

Předcházející | Domů | Další
Summary | Nahoru | Retrieving Arguments


Retrieving Arguments

New parameter parsing API: This chapter documents the new Zend parameter parsing API introduced by Andrei Zmievski. It was introduced in the development stage between PHP 4.0.6 and 4.1.0 .

Parsing parameters is a very common operation and it may get a bit tedious. It would also be nice to have standardized error checking and error messages. Since PHP 4.1.0, there is a way to do just that by using the new parameter parsing API. It greatly simplifies the process of receiving parameteres, but it has a drawback in that it can't be used for functions that expect variable number of parameters. But since the vast majority of functions do not fall into those categories, this parsing API is recommended as the new standard way.

The prototype for parameter parsing function looks like this:
int zend_parse_parameters(int num_args TSRMLS_DC, char *type_spec, ...);
The first argument to this function is supposed to be the number of actual parameters passed to your function, so ZEND_NUM_ARGS() can be used for that. The second parameter should always be TSRMLS_CC macro. The third argument is a string that specifies the number and types of arguments your function is expecting, similar to how printf format string specifies the number and format of the output values it should operate on. And finally the rest of the arguments are pointers to variables which should receive the values from the parameters.

zend_parse_parameters() also performs type conversions whenever possible, so that you always receive the data in the format you asked for. Any type of scalar can be converted to another one, but conversions between complex types (arrays, objects, and resources) and scalar types are not allowed.

If the parameters could be obtained successfully and there were no errors during type conversion, the function will return SUCCESS, otherwise it will return FAILURE. The function will output informative error messages, if the number of received parameters does not match the requested number, or if type conversion could not be performed.

Here are some sample error messages:
Warning - ini_get_all() requires at most 1 parameter, 2 given
     Warning - wddx_deserialize() expects parameter 1 to be string, array given
Of course each error message is accompanied by the filename and line number on which it occurs.

Here is the full list of type specifiers:

  • l - long

  • d - double

  • s - string (with possible null bytes) and its length

  • b - boolean

  • r - resource, stored in zval*

  • a - array, stored in zval*

  • o - object (of any class), stored in zval*

  • O - object (of class specified by class entry), stored in zval*

  • z - the actual zval*

The following characters also have a meaning in the specifier string:

  • | - indicates that the remaining parameters are optional. The storage variables corresponding to these parameters should be initialized to default values by the extension, since they will not be touched by the parsing function if the parameters are not passed.

  • / - the parsing function will call SEPARATE_ZVAL_IF_NOT_REF() on the parameter it follows, to provide a copy of the parameter, unless it's a reference.

  • ! - the parameter it follows can be of specified type or NULL (only applies to a, o, O, r, and z). If NULL value is passed by the user, the storage pointer will be set to NULL.

The best way to illustrate the usage of this function is through examples:
/* Gets a long, a string and its length, and a zval. */
long l;
char *s;
int s_len;
zval *param;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
                          "lsz", &l, &s, &s_len, &param) == FAILURE) {
    return;
}

/* Gets an object of class specified by my_ce, and an optional double. */
zval *obj;
double d = 0.5;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
                          "O|d", &obj, my_ce, &d) == FAILURE) {
    return;
}

/* Gets an object or null, and an array.
   If null is passed for object, obj will be set to NULL. */
zval *obj;
zval *arr;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O!a", &obj, &arr) == FAILURE) {
    return;
}

/* Gets a separated array. */
zval *arr;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a/", &arr) == FAILURE) {
    return;
}

/* Get only the first three parameters (useful for varargs functions). */
zval *z;
zend_bool b;
zval *r;
if (zend_parse_parameters(3, "zbr!", &z, &b, &r) == FAILURE) {
    return;
}

Note that in the last example we pass 3 for the number of received parameters, instead of ZEND_NUM_ARGS(). What this lets us do is receive the least number of parameters if our function expects a variable number of them. Of course, if you want to operate on the rest of the parameters, you will have to use zend_get_parameters_array_ex() to obtain them.

The parsing function has an extended version that allows for an additional flags argument that controls its actions.
int zend_parse_parameters_ex(int flags, int num_args TSRMLS_DC, char *type_spec, ...);

The only flag you can pass currently is ZEND_PARSE_PARAMS_QUIET, which instructs the function to not output any error messages during its operation. This is useful for functions that expect several sets of completely different arguments, but you will have to output your own error messages.

For example, here is how you would get either a set of three longs or a string:
long l1, l2, l3;
char *s;
if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET,
                             ZEND_NUM_ARGS() TSRMLS_CC,
                             "lll", &l1, &l2, &l3) == SUCCESS) {
    /* manipulate longs */
} else if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET,
                                    ZEND_NUM_ARGS(), "s", &s, &s_len) == SUCCESS) {
    /* manipulate string */
} else {
    php_error(E_WARNING, "%s() takes either three long values or a string as argument",
              get_active_function_name(TSRMLS_C));
    return;
}

With all the abovementioned ways of receiving function parameters you should have a good handle on this process. For even more example, look through the source code for extensions that are shipped with PHP - they illustrate every conceivable situation.

Předcházející | Domů | Další
Accepting Arguments | Nahoru | Old way of retrieving arguments (deprecated)


Old way of retrieving arguments (deprecated)

Deprecated parameter parsing API: This API is deprecated and superseded by the new ZEND parameter parsing API.

After having checked the number of arguments, you need to get access to the arguments themselves. This is done with the help of zend_get_parameters_ex():
zval **parameter;

if(zend_get_parameters_ex(1, &parameter) != SUCCESS)
  WRONG_PARAM_COUNT;
All arguments are stored in a zval container, which needs to be pointed to twice. The snippet above tries to retrieve one argument and make it available to us via the parameter pointer.

zend_get_parameters_ex() accepts at least two arguments. The first argument is the number of arguments to retrieve (which should match the number of arguments with which the function has been called; this is why it's important to check for correct call syntax). The second argument (and all following arguments) are pointers to pointers to pointers to zvals. (Confusing, isn't it?) All these pointers are required because Zend works internally with **zval; to adjust a local **zval in our function,zend_get_parameters_ex() requires a pointer to it.

The return value of zend_get_parameters_ex() can either be SUCCESS or FAILURE, indicating (unsurprisingly) success or failure of the argument processing. A failure is most likely related to an incorrect number of arguments being specified, in which case you should exit with WRONG_PARAM_COUNT.

To retrieve more than one argument, you can use a similar snippet:
zval **param1, **param2, **param3, **param4;

if(zend_get_parameters_ex(4, &param1, &param2, &param3, &param4) != SUCCESS)
    WRONG_PARAM_COUNT;

zend_get_parameters_ex() only checks whether you're trying to retrieve too many parameters. If the function is called with five arguments, but you're only retrieving three of them with zend_get_parameters_ex(), you won't get an error but will get the first three parameters instead. Subsequent calls of zend_get_parameters_ex() won't retrieve the remaining arguments, but will get the same arguments again.

Předcházející | Domů | Další
Retrieving Arguments | Nahoru | Dealing with a Variable Number of Arguments/Optional Parameters


Dealing with a Variable Number of Arguments/Optional Parameters

If your function is meant to accept a variable number of arguments, the snippets just described are sometimes suboptimal solutions. You have to create a line calling zend_get_parameters_ex() for every possible number of arguments, which is often unsatisfying.

For this case, you can use the function zend_get_parameters_array_ex(), which accepts the number of parameters to retrieve and an array in which to store them:
zval **parameter_array[4];

/* get the number of arguments */
argument_count = ZEND_NUM_ARGS();

/* see if it satisfies our minimal request (2 arguments) */
/* and our maximal acceptance (4 arguments) */
if(argument_count < 2 || argument_count > 5)
    WRONG_PARAM_COUNT;

/* argument count is correct, now retrieve arguments */
if(zend_get_parameters_array_ex(argument_count, parameter_array) != SUCCESS)
    WRONG_PARAM_COUNT;
First, the number of arguments is checked to make sure that it's in the accepted range. After that, zend_get_parameters_array_ex() is used to fill parameter_array with valid pointers to the argument values.

A very clever implementation of this can be found in the code handling PHP's fsockopen() located in ext/standard/fsock.c, as shown in 32-1. Don't worry if you don't know all the functions used in this source yet; we'll get to them shortly.

Příklad 32-1. PHP's implementation of variable arguments in fsockopen().

pval **args[5];
int *sock=emalloc(sizeof(int));
int *sockp;
int arg_count=ARG_COUNT(ht);
int socketd = -1;
unsigned char udp = 0;
struct timeval timeout = { 60, 0 };
unsigned short portno;
unsigned long conv;
char *key = NULL;
FLS_FETCH();

if (arg_count > 5 || arg_count < 2 || zend_get_parameters_array_ex(arg_count,args)==FAILURE) {
    CLOSE_SOCK(1);
    WRONG_PARAM_COUNT;
}

switch(arg_count) {
    case 5:
        convert_to_double_ex(args[4]);
        conv = (unsigned long) (Z_DVAL_P(args[4]) * 1000000.0);
        timeout.tv_sec = conv / 1000000;
        timeout.tv_usec = conv % 1000000;
        /* fall-through */
    case 4:
        if (!PZVAL_IS_REF(*args[3])) {
            php_error(E_WARNING,"error string argument to fsockopen not passed by reference");
        }
        pval_copy_constructor(*args[3]);
        ZVAL_EMPTY_STRING(*args[3]);
        /* fall-through */
    case 3:
        if (!PZVAL_IS_REF(*args[2])) {
            php_error(E_WARNING,"error argument to fsockopen not passed by reference");
            return;
        }
        ZVAL_LONG(*args[2], 0);
        break;
}

convert_to_string_ex(args[0]);
convert_to_long_ex(args[1]);
portno = (unsigned short) Z_LVAL_P(args[1]);

key = emalloc(Z_STRLEN_P(args[0]) + 10);

fsockopen() accepts two, three, four, or five parameters. After the obligatory variable declarations, the function checks for the correct range of arguments. Then it uses a fall-through mechanism in a switch() statement to deal with all arguments. The switch() statement starts with the maximum number of arguments being passed (five). After that, it automatically processes the case of four arguments being passed, then three, by omitting the otherwise obligatory break keyword in all stages. After having processed the last case, it exits the switch() statement and does the minimal argument processing needed if the function is invoked with only two arguments.

This multiple-stage type of processing, similar to a stairway, allows convenient processing of a variable number of arguments.

Předcházející | Domů | Další
Old way of retrieving arguments (deprecated) | Nahoru | Accessing Arguments


Accessing Arguments

To access arguments, it's necessary for each argument to have a clearly defined type. Again, PHP's extremely dynamic nature introduces some quirks. Because PHP never does any kind of type checking, it's possible for a caller to pass any kind of data to your functions, whether you want it or not. If you expect an integer, for example, the caller might pass an array, and vice versa - PHP simply won't notice.

To work around this, you have to use a set of API functions to force a type conversion on every argument that's being passed (see 32-1).

Note: All conversion functions expect a **zval as parameter.

Tabulka 32-1. Argument Conversion Functions

Function | Description
convert_to_boolean_ex() | Forces conversion to a Boolean type. Boolean values remain untouched. Longs, doubles, and strings containing 0 as well as NULL values will result in Boolean 0 (FALSE). Arrays and objects are converted based on the number of entries or properties, respectively, that they have. Empty arrays and objects are converted to FALSE; otherwise, to TRUE. All other values result in a Boolean 1 (TRUE).
convert_to_long_ex() | Forces conversion to a long, the default integer type. NULL values, Booleans, resources, and of course longs remain untouched. Doubles are truncated. Strings containing an integer are converted to their corresponding numeric representation, otherwise resulting in 0. Arrays and objects are converted to 0 if empty, 1 otherwise.
convert_to_double_ex() | Forces conversion to a double, the default floating-point type. NULL values, Booleans, resources, longs, and of course doubles remain untouched. Strings containing a number are converted to their corresponding numeric representation, otherwise resulting in 0.0. Arrays and objects are converted to 0.0 if empty, 1.0 otherwise.
convert_to_string_ex() | Forces conversion to a string. Strings remain untouched. NULL values are converted to an empty string. Booleans containing TRUE are converted to "1", otherwise resulting in an empty string. Longs and doubles are converted to their corresponding string representation. Arrays are converted to the string "Array" and objects to the string "Object".
convert_to_array_ex(value) | Forces conversion to an array. Arrays remain untouched. Objects are converted to an array by assigning all their properties to the array table. All property names are used as keys, property contents as values. NULL values are converted to an empty array. All other values are converted to an array that contains the specific source value in the element with the key 0.
convert_to_object_ex(value) | Forces conversion to an object. Objects remain untouched. NULL values are converted to an empty object. Arrays are converted to objects by introducing their keys as properties into the objects and their values as corresponding property contents in the object. All other types result in an object with the property scalar , having the corresponding source value as content.
convert_to_null_ex(value) | Forces the type to become a NULL value, meaning empty.

Poznámka: You can find a demonstration of the behavior in cross_conversion.php on the accompanying CD-ROM. 32-2 shows the output.

Obrázek 32-2. Cross-conversion behavior of PHP.

Using these functions on your arguments will ensure type safety for all data that's passed to you. If the supplied type doesn't match the required type, PHP forces dummy contents on the resulting value (empty strings, arrays, or objects, 0 for numeric values, FALSE for Booleans) to ensure a defined state.

Following is a quote from the sample module discussed previously, which makes use of the conversion functions:
zval **parameter;

if((ZEND_NUM_ARGS() != 1) || (zend_get_parameters_ex(1, &parameter) != SUCCESS))
{
    WRONG_PARAM_COUNT;
}

convert_to_long_ex(parameter);

RETURN_LONG(Z_LVAL_P(parameter));
After retrieving the parameter pointer, the parameter value is converted to a long (an integer), which also forms the return value of this function. Understanding access to the contents of the value requires a short discussion of the zval type, whose definition is shown in 32-2.

Příklad 32-2. PHP/Zend zval type definition.

typedef pval zval;

typedef struct _zval_struct zval;

typedef union _zvalue_value {
    long lval;					/* long value */
    double dval;				/* double value */
    struct {
        char *val;
        int len;
    } str;
    HashTable *ht;				/* hash table value */
    struct {
        zend_class_entry *ce;
        HashTable *properties;
    } obj;
} zvalue_value;

struct _zval_struct {
    /* Variable information */
    zvalue_value value;		/* value */
    unsigned char type;	/* active type */
    unsigned char is_ref;
    short refcount;
};

Actually, pval (defined in php.h) is only an alias of zval (defined in zend.h), which in turn refers to _zval_struct. This is a most interesting structure. _zval_struct is the "master" structure, containing the value structure, type, and reference information. The substructure zvalue_value is a union that contains the variable's contents. Depending on the variable's type, you'll have to access different members of this union. For a description of both structures, see 32-2, 32-3 and 32-4.

Tabulka 32-2. Zend zval Structure

Entry | Description
value | Union containing this variable's contents. See 32-3 for a description.
type | Contains this variable's type. For a list of available types, see 32-4.
is_ref | 0 means that this variable is not a reference; 1 means that this variable is a reference to another variable.
refcount | The number of references that exist for this variable. For every new reference to the value stored in this variable, this counter is increased by 1. For every lost reference, this counter is decreased by 1. When the reference counter reaches 0, no references exist to this value anymore, which causes automatic freeing of the value.

Tabulka 32-3. Zend zvalue_value Structure

Entry | Description
lval | Use this property if the variable is of the type IS_LONG, IS_BOOLEAN, or IS_RESOURCE.
dval | Use this property if the variable is of the type IS_DOUBLE.
str | This structure can be used to access variables of the type IS_STRING. The member len contains the string length; the member val points to the string itself. Zend uses C strings; thus, the string length contains a trailing 0x00.
ht | This entry points to the variable's hash table entry if the variable is an array.
obj | Use this property if the variable is of the type IS_OBJECT.

Tabulka 32-4. Zend Variable Type Constants

Constant | Description
IS_NULL | Denotes a NULL (empty) value.
IS_LONG | A long (integer) value.
IS_DOUBLE | A double (floating point) value.
IS_STRING | A string.
IS_ARRAY | Denotes an array.
IS_OBJECT | An object.
IS_BOOL | A Boolean value.
IS_RESOURCE | A resource (for a discussion of resources, see the appropriate section below).
IS_CONSTANT | A constant (defined) value.

To access a long you access zval.value.lval, to access a double you use zval.value.dval, and so on. Because all values are stored in a union, trying to access data with incorrect union members results in meaningless output.

Accessing arrays and objects is a bit more complicated and is discussed later.

Předcházející | Domů | Další
Dealing with a Variable Number of Arguments/Optional Parameters | Nahoru | Dealing with Arguments Passed by Reference


Dealing with Arguments Passed by Reference

If your function accepts arguments passed by reference that you intend to modify, you need to take some precautions.

What we didn't say yet is that under the circumstances presented so far, you don't have write access to any zval containers designating function parameters that have been passed to you. Of course, you can change any zval containers that you created within your function, but you mustn't change any zvals that refer to Zend-internal data!

We've only discussed the so-called *_ex() API so far. You may have noticed that the API functions we've used are called zend_get_parameters_ex() instead of zend_get_parameters(), convert_to_long_ex() instead of convert_to_long(), etc. The *_ex() functions form the so-called new "extended" Zend API. They give a minor speed increase over the old API, but as a tradeoff are only meant for providing read-only access.

Because Zend works internally with references, different variables may reference the same value. Write access to a zval container requires this container to contain an isolated value, meaning a value that's not referenced by any other containers. If a zval container were referenced by other containers and you changed the referenced zval, you would automatically change the contents of the other containers referencing this zval (because they'd simply point to the changed value and thus change their own value as well).

zend_get_parameters_ex() doesn't care about this situation, but simply returns a pointer to the desired zval containers, whether they consist of references or not. Its corresponding function in the traditional API, zend_get_parameters(), immediately checks for referenced values. If it finds a reference, it creates a new, isolated zval container; copies the referenced data into this newly allocated space; and then returns a pointer to the new, isolated value.

This action is called zval separation (or pval separation). Because the *_ex() API doesn't perform zval separation, it's considerably faster, while at the same time disabling write access.

To change parameters, however, write access is required. Zend deals with this situation in a special way: Whenever a parameter to a function is passed by reference, it performs automatic zval separation. This means that whenever you're calling a function like this in PHP, Zend will automatically ensure that $parameter is being passed as an isolated value, rendering it to a write-safe state:
my_function(&$parameter);

But this is not the case with regular parameters! All other parameters that are not passed by reference are in a read-only state.

This requires you to make sure that you're really working with a reference - otherwise you might produce unwanted results. To check for a parameter being passed by reference, you can use the macro PZVAL_IS_REF. This macro accepts a zval* to check if it is a reference or not. Examples are given in in 32-3.

Příklad 32-3. Testing for referenced parameter passing.

zval *parameter;

if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &parameter) == FAILURE)
    return;

/* check for parameter being passed by reference */
if (!PZVAL_IS_REF(*parameter)) {
{
    zend_error(E_WARNING, "Parameter wasn't passed by reference");
    RETURN_NULL();
}

/* make changes to the parameter */
ZVAL_LONG(*parameter, 10);

Předcházející | Domů | Další
Accessing Arguments | Nahoru | Assuring Write Safety for Other Parameters


Assuring Write Safety for Other Parameters

You might run into a situation in which you need write access to a parameter that's retrieved with zend_get_parameters_ex() but not passed by reference. For this case, you can use the macro SEPARATE_ZVAL, which does a zval separation on the provided container. The newly generated zval is detached from internal data and has only a local scope, meaning that it can be changed or destroyed without implying global changes in the script context:
zval **parameter;

/* retrieve parameter */
zend_get_parameters_ex(1, &parameter);

/* at this stage, <parameter> still is connected */
/* to Zend's internal data buffers */

/* make <parameter> write-safe */
SEPARATE_ZVAL(parameter);

/* now we can safely modify <parameter> */
/* without implying global changes */
SEPARATE_ZVAL uses emalloc() to allocate the new zval container, which means that even if you don't deallocate this memory yourself, it will be destroyed automatically upon script termination. However, doing a lot of calls to this macro without freeing the resulting containers will clutter up your RAM.

Note: As you can easily work around the lack of write access in the "traditional" API (with zend_get_parameters() and so on), this API seems to be obsolete, and is not discussed further in this chapter.

Předcházející | Domů | Další
Dealing with Arguments Passed by Reference | Nahoru | Creating Variables


Creating Variables

Manuál PHP
Předcházející Další

Kapitola 33. Creating Variables

Obsah
Overview
Longs (Integers)
Doubles (Floats)
Strings
Booleans
Arrays
Objects
Resources
Macros for Automatic Global Variable Creation
Creating Constants

When exchanging data from your own extensions with PHP scripts, one of the most important issues is the creation of variables. This section shows you how to deal with the variable types that PHP supports.

Overview

To create new variables that can be seen "from the outside" by the executing script, you need to allocate a new zval container, fill this container with meaningful values, and then introduce it to Zend's internal symbol table. This basic process is common to all variable creations:

zval *new_variable;

/* allocate and initialize new container */
MAKE_STD_ZVAL(new_variable);

/* set type and variable contents here, see the following sections */

/* introduce this variable by the name "new_variable_name" into the symbol table */
ZEND_SET_SYMBOL(EG(active_symbol_table), "new_variable_name", new_variable);

/* the variable is now accessible to the script by using $new_variable_name */

The macro MAKE_STD_ZVAL allocates a new zval container using ALLOC_ZVAL and initializes it using INIT_ZVAL. As implemented in Zend at the time of this writing, initializing means setting the reference count to 1 and clearing the is_ref flag, but this process could be extended later - this is why it's a good idea to keep using MAKE_STD_ZVAL instead of only using ALLOC_ZVAL. If you want to optimize for speed (and you don't have to explicitly initialize the zval container here), you can use ALLOC_ZVAL, but this isn't recommended because it doesn't ensure data integrity.

ZEND_SET_SYMBOL takes care of introducing the new variable to Zend's symbol table. This macro checks whether the value already exists in the symbol table and converts the new symbol to a reference if so (with automatic deallocation of the old zval container). This is the preferred method if speed is not a crucial issue and you'd like to keep memory usage low.

Note that ZEND_SET_SYMBOL makes use of the Zend executor globals via the macro EG. By specifying EG(active_symbol_table), you get access to the currently active symbol table, dealing with the active, local scope. The local scope may differ depending on whether the function was invoked from within a function.

If you need to optimize for speed and don't care about optimal memory usage, you can omit the check for an existing variable with the same value and instead force insertion into the symbol table by using zend_hash_update():
zval *new_variable;

/* allocate and initialize new container */
MAKE_STD_ZVAL(new_variable);

/* set type and variable contents here, see the following sections */

/* introduce this variable by the name "new_variable_name" into the symbol table */
zend_hash_update(
    EG(active_symbol_table),
    "new_variable_name",
    strlen("new_variable_name") + 1,
    &new_variable,
    sizeof(zval *),
    NULL
);
This is actually the standard method used in most modules.

The variables generated with the snippet above will always be of local scope, so they reside in the context in which the function has been called. To create new variables in the global scope, use the same method but refer to another symbol table:
zval *new_variable;

// allocate and initialize new container
MAKE_STD_ZVAL(new_variable);

//
// set type and variable contents here
//

// introduce this variable by the name "new_variable_name" into the global symbol table
ZEND_SET_SYMBOL(&EG(symbol_table), "new_variable_name", new_variable);
The macro ZEND_SET_SYMBOL is now being called with a reference to the main, global symbol table by referring EG(symbol_table).

Note: The active_symbol_table variable is a pointer, but symbol_table is not. This is why you have to use EG(active_symbol_table) and &EG(symbol_table) as parameters to ZEND_SET_SYMBOL - it requires a pointer.

Similarly, to get a more efficient version, you can hardcode the symbol table update:
zval *new_variable;

// allocate and initialize new container
MAKE_STD_ZVAL(new_variable);

//
// set type and variable contents here
//

// introduce this variable by the name "new_variable_name" into the global symbol table
zend_hash_update(
    &EG(symbol_table),
    "new_variable_name",
    strlen("new_variable_name") + 1,
    &new_variable,
    sizeof(zval *),
    NULL
);
33-1 shows a sample source that creates two variables - local_variable with a local scope and global_variable with a global scope (see Figure 9.7). The full example can be found on the CD-ROM.

Note: You can see that the global variable is actually not accessible from within the function. This is because it's not imported into the local scope using global $global_variable; in the PHP source.

Příklad 33-1. Creating variables with different scopes.

ZEND_FUNCTION(variable_creation)
{
    zval *new_var1, *new_var2;

    MAKE_STD_ZVAL(new_var1);
    MAKE_STD_ZVAL(new_var2);

    ZVAL_LONG(new_var1, 10);
    ZVAL_LONG(new_var2, 5);

    ZEND_SET_SYMBOL(EG(active_symbol_table), "local_variable", new_var1);
    ZEND_SET_SYMBOL(&EG(symbol_table), "global_variable", new_var2);

    RETURN_NULL();

}

Předcházející | Domů | Další
Assuring Write Safety for Other Parameters | Nahoru | Longs (Integers)


Longs (Integers)

Now let's get to the assignment of data to variables, starting with longs. Longs are PHP's integers and are very simple to store. Looking at the zval.value container structure discussed earlier in this chapter, you can see that the long data type is directly contained in the union, namely in the lval field. The corresponding type value for longs is IS_LONG (see 33-2).

Příklad 33-2. Creation of a long.

zval *new_long;

MAKE_STD_ZVAL(new_long);

new_long->type = IS_LONG;
new_long->value.lval = 10;
Alternatively, you can use the macro ZVAL_LONG:
zval *new_long;

MAKE_STD_ZVAL(new_long);
ZVAL_LONG(new_long, 10);

Předcházející | Domů | Další
Creating Variables | Nahoru | Doubles (Floats)


Doubles (Floats)

Doubles are PHP's floats and are as easy to assign as longs, because their value is also contained directly in the union. The member in the zval.value container is dval; the corresponding type is IS_DOUBLE.
zval *new_double;

MAKE_STD_ZVAL(new_double);

new_double->type = IS_DOUBLE;
new_double->value.dval = 3.45;
Alternatively, you can use the macro ZVAL_DOUBLE:
zval *new_double;

MAKE_STD_ZVAL(new_double);
ZVAL_DOUBLE(new_double, 3.45);

Předcházející | Domů | Další
Longs (Integers) | Nahoru | Strings


Strings

Strings need slightly more effort. As mentioned earlier, all strings that will be associated with Zend's internal data structures need to be allocated using Zend's own memory-management functions. Referencing of static strings or strings allocated with standard routines is not allowed. To assign strings, you have to access the structure str in the zval.value container. The corresponding type is IS_STRING:
zval *new_string;
char *string_contents = "This is a new string variable";

MAKE_STD_ZVAL(new_string);

new_string->type = IS_STRING;
new_string->value.str.len = strlen(string_contents);
new_string->value.str.val = estrdup(string_contents);
Note the usage of Zend's estrdup() here. Of course, you can also use the predefined macro ZVAL_STRING:
zval *new_string;
char *string_contents = "This is a new string variable";

MAKE_STD_ZVAL(new_string);
ZVAL_STRING(new_string, string_contents, 1);
ZVAL_STRING accepts a third parameter that indicates whether the supplied string contents should be duplicated (using estrdup()). Setting this parameter to 1 causes the string to be duplicated; 0 simply uses the supplied pointer for the variable contents. This is most useful if you want to create a new variable referring to a string that's already allocated in Zend internal memory.

If you want to truncate the string at a certain position or you already know its length, you can use ZVAL_STRINGL(zval, string, length, duplicate), which accepts an explicit string length to be set for the new string. This macro is faster than ZVAL_STRING and also binary-safe.

To create empty strings, set the string length to 0 and use empty_string as contents:
new_string->type = IS_STRING;
new_string->value.str.len = 0;
new_string->value.str.val = empty_string;
Of course, there's a macro for this as well (ZVAL_EMPTY_STRING):
MAKE_STD_ZVAL(new_string);
ZVAL_EMPTY_STRING(new_string);

Předcházející | Domů | Další
Doubles (Floats) | Nahoru | Booleans


Booleans

Booleans are created just like longs, but have the type IS_BOOL. Allowed values in lval are 0 and 1:
zval *new_bool;

MAKE_STD_ZVAL(new_bool);

new_bool->type = IS_BOOL;
new_bool->value.lval = 1;
The corresponding macros for this type are ZVAL_BOOL (allowing specification of the value) as well as ZVAL_TRUE and ZVAL_FALSE (which explicitly set the value to TRUE and FALSE, respectively).

Předcházející | Domů | Další
Strings | Nahoru | Arrays


Arrays

Arrays are stored using Zend's internal hash tables, which can be accessed using the zend_hash_*() API. For every array that you want to create, you need a new hash table handle, which will be stored in the ht member of the zval.value container.

There's a whole API solely for the creation of arrays, which is extremely handy. To start a new array, you call array_init().
zval *new_array;

MAKE_STD_ZVAL(new_array);

array_init(new_array);
array_init() always returns SUCCESS.

To add new elements to the array, you can use numerous functions, depending on what you want to do. 33-1, 33-2 and 33-3 describe these functions. All functions return FAILURE on failure and SUCCESS on success.

Tabulka 33-1. Zend's API for Associative Arrays

Function | Description
add_assoc_long(zval *array, char *key, long n);() | Adds an element of type long.
add_assoc_unset(zval *array, char *key);() | Adds an unset element.
add_assoc_bool(zval *array, char *key, int b);() | Adds a Boolean element.
add_assoc_resource(zval *array, char *key, int r);() | Adds a resource to the array.
add_assoc_double(zval *array, char *key, double d);() | Adds a floating-point value.
add_assoc_string(zval *array, char *key, char *str, int duplicate);() | Adds a string to the array. The flag duplicate specifies whether the string contents have to be copied to Zend internal memory.
add_assoc_stringl(zval *array, char *key, char *str, uint length, int duplicate); () | Adds a string with the desired length length to the array. Otherwise, behaves like add_assoc_string().
add_assoc_zval(zval *array, char *key, zval *value);() | Adds a zval to the array. Useful for adding other arrays, objects, streams, etc...

Tabulka 33-2. Zend's API for Indexed Arrays, Part 1

Function | Description
add_index_long(zval *array, uint idx, long n);() | Adds an element of type long.
add_index_unset(zval *array, uint idx);() | Adds an unset element.
add_index_bool(zval *array, uint idx, int b);() | Adds a Boolean element.
add_index_resource(zval *array, uint idx, int r);() | Adds a resource to the array.
add_index_double(zval *array, uint idx, double d);() | Adds a floating-point value.
add_index_string(zval *array, uint idx, char *str, int duplicate);() | Adds a string to the array. The flag duplicate specifies whether the string contents have to be copied to Zend internal memory.
add_index_stringl(zval *array, uint idx, char *str, uint length, int duplicate);() | Adds a string with the desired length length to the array. This function is faster and binary-safe. Otherwise, behaves like add_index_string()().
add_index_zval(zval *array, uint idx, zval *value);() | Adds a zval to the array. Useful for adding other arrays, objects, streams, etc...

Tabulka 33-3. Zend's API for Indexed Arrays, Part 2

Function | Description
add_next_index_long(zval *array, long n);() | Adds an element of type long.
add_next_index_unset(zval *array);() | Adds an unset element.
add_next_index_bool(zval *array, int b);() | Adds a Boolean element.
add_next_index_resource(zval *array, int r);() | Adds a resource to the array.
add_next_index_double(zval *array, double d);() | Adds a floating-point value.
add_next_index_string(zval *array, char *str, int duplicate);() | Adds a string to the array. The flag duplicate specifies whether the string contents have to be copied to Zend internal memory.
add_next_index_stringl(zval *array, char *str, uint length, int duplicate);() | Adds a string with the desired length length to the array. This function is faster and binary-safe. Otherwise, behaves like add_index_string()().
add_next_index_zval(zval *array, zval *value);() | Adds a zval to the array. Useful for adding other arrays, objects, streams, etc...

All these functions provide a handy abstraction to Zend's internal hash API. Of course, you can also use the hash functions directly - for example, if you already have a zval container allocated that you want to insert into an array. This is done using zend_hash_update()() for associative arrays (see 33-3) and zend_hash_index_update() for indexed arrays (see 33-4):

Příklad 33-3. Adding an element to an associative array.

zval *new_array, *new_element;
char *key = "element_key";

MAKE_STD_ZVAL(new_array);
MAKE_STD_ZVAL(new_element);

array_init(new_array);

ZVAL_LONG(new_element, 10);

if(zend_hash_update(new_array->value.ht, key, strlen(key) + 1, (void *)&new_element, sizeof(zval *), NULL) == FAILURE)
{
    // do error handling here
}

Příklad 33-4. Adding an element to an indexed array.

zval *new_array, *new_element;
int key = 2;

MAKE_STD_ZVAL(new_array);
MAKE_STD_ZVAL(new_element);

array_init(new_array);

ZVAL_LONG(new_element, 10);

if(zend_hash_index_update(new_array->value.ht, key, (void *)&new_element, sizeof(zval *), NULL) == FAILURE)
{
    // do error handling here
}

To emulate the functionality of add_next_index_*(), you can use this:

zend_hash_next_index_insert(ht, zval **new_element, sizeof(zval *), NULL)

Note: To return arrays from a function, use array_init() and all following actions on the predefined variable return_value (given as argument to your exported function; see the earlier discussion of the call interface). You do not have to use MAKE_STD_ZVAL on this.

Tip: To avoid having to write new_array->value.ht every time, you can use HASH_OF(new_array), which is also recommended for compatibility and style reasons.

Předcházející | Domů | Další
Booleans | Nahoru | Objects


Objects

Since objects can be converted to arrays (and vice versa), you might have already guessed that they have a lot of similarities to arrays in PHP. Objects are maintained with the same hash functions, but there's a different API for creating them.

To initialize an object, you use the function object_init():
zval *new_object;

MAKE_STD_ZVAL(new_object);

if(object_init(new_object) != SUCCESS)
{
    // do error handling here
}
You can use the functions described in 33-4 to add members to your object.

Tabulka 33-4. Zend's API for Object Creation

Function | Description
add_property_long(zval *object, char *key, long l);() | Adds a long to the object.
add_property_unset(zval *object, char *key);() | Adds an unset property to the object.
add_property_bool(zval *object, char *key, int b);() | Adds a Boolean to the object.
add_property_resource(zval *object, char *key, long r);() | Adds a resource to the object.
add_property_double(zval *object, char *key, double d);() | Adds a double to the object.
add_property_string(zval *object, char *key, char *str, int duplicate);() | Adds a string to the object.
add_property_stringl(zval *object, char *key, char *str, uint length, int duplicate);() | Adds a string of the specified length to the object. This function is faster than add_property_string() and also binary-safe.
add_property_zval(zval *obect, char *key, zval *container):() | Adds a zval container to the object. This is useful if you have to add properties which aren't simple types like integers or strings but arrays or other objects.

Předcházející | Domů | Další
Arrays | Nahoru | Resources


Resources

Resources are a special kind of data type in PHP. The term resources doesn't really refer to any special kind of data, but to an abstraction method for maintaining any kind of information. Resources are kept in a special resource list within Zend. Each entry in the list has a correspondending type definition that denotes the kind of resource to which it refers. Zend then internally manages all references to this resource. Access to a resource is never possible directly - only via a provided API. As soon as all references to a specific resource are lost, a corresponding shutdown function is called.

For example, resources are used to store database links and file descriptors. The de facto standard implementation can be found in the MySQL module, but other modules such as the Oracle module also make use of resources.

Poznámka: In fact, a resource can be a pointer to anything you need to handle in your functions (e.g. pointer to a structure) and the user only has to pass a single resource variable to your function.

To create a new resource you need to register a resource destruction handler for it. Since you can store any kind of data as a resource, Zend needs to know how to free this resource if its not longer needed. This works by registering your own resource destruction handler to Zend which in turn gets called by Zend whenever your resource can be freed (whether manually or automatically). Registering your resource handler within Zend returns you the resource type handle for that resource. This handle is needed whenever you want to access a resource of this type later and is most of time stored in a global static variable within your extension. There is no need to worry about thread safety here because you only register your resource handler once during module initialization.

The Zend function to register your resource handler is defined as:
ZEND_API int zend_register_list_destructors_ex(rsrc_dtor_func_t ld, rsrc_dtor_func_t pld, char *type_name, int module_number);

There are two different kinds of resource destruction handlers you can pass to this function: a handler for normal resources and a handler for persistent resources. Persistent resources are for example used for database connection. When registering a resource, either of these handlers must be given. For the other handler just pass NULL.

zend_register_list_destructors_ex() accepts the following parameters:

ld | Normal resource destruction handler callback
pld | Pesistent resource destruction handler callback
type_name | A string specifying the name of your resource. It's always a good thing to specify an unique name within PHP for the resource type so when the user for example calls var_dump($resource); he also gets the name of the resource.
module_number | The module_number is automatically available in your PHP_MINIT_FUNCTION function and therefore you just pass it over.

The return value is an unique integer ID for your resource type.

The resource destruction handler (either normal or persistent resources) has the following prototype:
void resource_destruction_handler(zend_rsrc_list_entry *rsrc TSRMLS_DC);
The passed rsrc is a pointer to the following structure:
typedef struct _zend_rsrc_list_entry {

    void *ptr;
    int type;
    int refcount;

} zend_rsrc_list_entry;
The member void *ptr is the actual pointer to your resource.

Now we know how to start things, we define our own resource we want register within Zend. It is only a simple structure with two integer members:
typedef struct {

    int resource_link;
    int resource_type;

} my_resource;
Our resource destruction handler is probably going to look something like this:
void my_destruction_handler(zend_rsrc_list_entry *rsrc TSRMLS_DC) {

    // You most likely cast the void pointer to your structure type

    my_resource *my_rsrc = (my_resource *) rsrc->ptr;

    // Now do whatever needs to be done with you resource. Closing
    // Files, Sockets, freeing additional memory, etc.
    // Also, don't forget to actually free the memory for your resource too!

    do_whatever_needs_to_be_done_with_the_resource(my_rsrc);
}

Poznámka: One important thing to mention: If your resource is a rather complex structure which also contains pointers to memory you allocated during runtime you have to free them before freeing the resource itself!

Now that we have defined

  1. what our resource is and

  2. our resource destruction handler

we can go on and do the rest of the steps:

  1. create a global variable within the extension holding the resource ID so it can be accessed from every function which needs it

  2. define the resource name

  3. write the resource destruction handler

  4. and finally register the handler

// Somewhere in your extension, define the variable for your registered resources.
    // If you wondered what 'le' stands for: it simply means 'list entry'.
    static int le_myresource;

    // It's nice to define your resource name somewhere
    #define le_myresource_name  "My type of resource"

    [...]

    // Now actually define our resource destruction handler
    void my_destruction_handler(zend_rsrc_list_entry *rsrc TSRMLS_DC) {

        my_resource *my_rsrc = (my_resource *) rsrc->ptr;
        do_whatever_needs_to_be_done_with_the_resource(my_rsrc);
    }

    [...]

    PHP_MINIT_FUNCTION(my_extension) {

        // Note that 'module_number' is already provided through the
        // PHP_MINIT_FUNCTION() function definition.

        le_myresource = zend_register_resource_destructors_ex(my_destruction_handler, NULL, le_myresource_name, module_number);

        // You can register additional resources, initialize
        // your global vars, constants, whatever.
    }

To actually register a new resource you use can either use the zend_register_resource() function or the ZEND_REGISTER_RESOURE() macro, both defined in zend_list.h . Although the arguments for both map 1:1 it's a good idea to always use macros to be upwards compatible:
int ZEND_REGISTER_RESOURCE(zval *rsrc_result, void *rsrc_pointer, int rsrc_type);

rsrc_result | This is an already initialized zval * container.
rsrc_pointer | Your resource pointer you want to store.
rsrc_type | The type which you received when you registered the resource destruction handler. If you followed the naming scheme this would be le_myresource.

The return value is an unique integer identifier for that resource.

What is really going on when you register a new resource is it gets inserted in an internal list in Zend and the result is just stored in the given zval * container:
rsrc_id = zend_list_insert(rsrc_pointer, rsrc_type);

    if (rsrc_result) {
        rsrc_result->value.lval = rsrc_id;
        rsrc_result->type = IS_RESOURCE;
    }

    return rsrc_id;
The returned rsrc_id uniquly identifies the newly registered resource. You can use the macro RETURN_RESOURE to return it to the user:
RETURN_RESOURCE(rsrc_id)

Poznámka: It is common practice that if you want to return the resource immidiately to the user you specify the return_value as the zval * container.

Zend now keeps track of all references to this resource. As soon as all references to the resource are lost, the destructor that you previously registered for this resource is called. The nice thing about this setup is that you don't have to worry about memory leakages introduced by allocations in your module - just register all memory allocations that your calling script will refer to as resources. As soon as the script decides it doesn't need them anymore, Zend will find out and tell you.

Now that the user got his resource, at some point he is passing it back to one of your functions. The value.lval inside the zval * container contains the key to your resource and thus can be used to fetch the resource with the following macro: ZEND_FETCH_RESOURCE:
ZEND_FETCH_RESOURCE(rsrc, rsrc_type, rsrc_id, default_rsrc_id, resource_type_name, resource_type)

rsrc | This is your pointer which will point to your previously registered resource.
rsrc_type | This is the typecast argument for your pointer, e.g. myresource *.
rsrc_id | This is the address of the zval *container the user passed to your function, e.g. &z_resource if zval *z_resource is given.
default_rsrc_id | This integer specifies the default resource ID if no resource could be fetched or -1.
resource_type_name | This is the name of the requested resource. It's a string and is used when the resource can't be found or is invalid to form a meaningful error message.
resource_type | The resource_type you got back when registering the resource destruction handler. In our example this was le_myresource.

This macro has no return value. It is for the developers convenience and takes care of TSRMLS arguments passing and also does check if the resource could be fetched. It throws a warning message and returns the current PHP function with NULL if there was a problem retrieving the resource.

To force removal of a resource from the list, use the function zend_list_delete(). You can also force the reference count to increase if you know that you're creating another reference for a previously allocated value (for example, if you're automatically reusing a default database link). For this case, use the function zend_list_addref(). To search for previously allocated resource entries, use zend_list_find(). The complete API can be found in zend_list.h.

Předcházející | Domů | Další
Objects | Nahoru | Macros for Automatic Global Variable Creation


Macros for Automatic Global Variable Creation

In addition to the macros discussed earlier, a few macros allow easy creation of simple global variables. These are nice to know in case you want to introduce global flags, for example. This is somewhat bad practice, but Table 33-5 describes macros that do exactly this task. They don't need any zval allocation; you simply have to supply a variable name and value.

Tabulka 33-5. Macros for Global Variable Creation

Macro | Description
SET_VAR_STRING(name, value) | Creates a new string.
SET_VAR_STRINGL(name, value, length) | Creates a new string of the specified length. This macro is faster than SET_VAR_STRING and also binary-safe.
SET_VAR_LONG(name, value) | Creates a new long.
SET_VAR_DOUBLE(name, value) | Creates a new double.

Předcházející | Domů | Další
Resources | Nahoru | Creating Constants


Creating Constants

Zend supports the creation of true constants (as opposed to regular variables). Constants are accessed without the typical dollar sign ($) prefix and are available in all scopes. Examples include TRUE and FALSE, to name just two.

To create your own constants, you can use the macros in 33-6. All the macros create a constant with the specified name and value.

You can also specify flags for each constant:

  • CONST_CS - This constant's name is to be treated as case sensitive.

  • CONST_PERSISTENT - This constant is persistent and won't be "forgotten" when the current process carrying this constant shuts down.

To use the flags, combine them using a inary OR:
// register a new constant of type "long"
     REGISTER_LONG_CONSTANT("NEW_MEANINGFUL_CONSTANT", 324, CONST_CS |
     CONST_PERSISTENT);
There are two types of macros - REGISTER_*_CONSTANT andREGISTER_MAIN_*_CONSTANT. The first type creates constants bound to the current module. These constants are dumped from the symbol table as soon as the module that registered the constant is unloaded from memory. The second type creates constants that remain in the symbol table independently of the module.

Tabulka 33-6. Macros for Creating Constants

Macro | Description
REGISTER_LONG_CONSTANT(name, value, flags) REGISTER_MAIN_LONG_CONSTANT(name, value, flags) | Registers a new constant of type long.
REGISTER_DOUBLE_CONSTANT(name, value, flags) REGISTER_MAIN_DOUBLE_CONSTANT(name, value, flags) | Registers a new constant of type double.
REGISTER_STRING_CONSTANT(name, value, flags) REGISTER_MAIN_STRING_CONSTANT(name, value, flags) | Registers a new constant of type string. The specified string must reside in Zend's internal memory.
REGISTER_STRINGL_CONSTANT(name, value, length, flags) REGISTER_MAIN_STRINGL_CONSTANT(name, value, length, flags) | Registers a new constant of type string. The string length is explicitly set to length. The specified string must reside in Zend's internal memory.

Předcházející | Domů | Další
Macros for Automatic Global Variable Creation | Nahoru | Duplicating Variable Contents: The Copy Constructor


Duplicating Variable Contents: The Copy Constructor

Manuál PHP
Předcházející Další

Kapitola 34. Duplicating Variable Contents: The Copy Constructor

Sooner or later, you may need to assign the contents of one zval container to another. This is easier said than done, since the zval container doesn't contain only type information, but also references to places in Zend's internal data. For example, depending on their size, arrays and objects may be nested with lots of hash table entries. By assigning one zval to another, you avoid duplicating the hash table entries, using only a reference to them (at most).

To copy this complex kind of data, use the copy constructor. Copy constructors are typically defined in languages that support operator overloading, with the express purpose of copying complex types. If you define an object in such a language, you have the possibility of overloading the "=" operator, which is usually responsible for assigning the contents of the lvalue (result of the evaluation of the left side of the operator) to the rvalue (same for the right side).

Overloading means assigning a different meaning to this operator, and is usually used to assign a function call to an operator. Whenever this operator would be used on such an object in a program, this function would be called with the lvalue and rvalue as parameters. Equipped with that information, it can perform the operation it intends the "=" operator to have (usually an extended form of copying).

This same form of "extended copying" is also necessary for PHP's zval containers. Again, in the case of an array, this extended copying would imply re-creation of all hash table entries relating to this array. For strings, proper memory allocation would have to be assured, and so on.

Zend ships with such a function, called zend_copy_ctor() (the previous PHP equivalent was pval_copy_constructor()).

A most useful demonstration is a function that accepts a complex type as argument, modifies it, and then returns the argument:

zval *parameter;

if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &parameter) == FAILURE)
   return;
}

// do modifications to the parameter here

// now we want to return the modified container:
*return_value == *parameter;
zval_copy_ctor(return_value);

The first part of the function is plain-vanilla argument retrieval. After the (left out) modifications, however, it gets interesting: The container of parameter is assigned to the (predefined) return_value container. Now, in order to effectively duplicate its contents, the copy constructor is called. The copy constructor works directly with the supplied argument, and the standard return values are FAILURE on failure and SUCCESS on success.

If you omit the call to the copy constructor in this example, both parameter and return_value would point to the same internal data, meaning that return_value would be an illegal additional reference to the same data structures. Whenever changes occurred in the data that parameter points to, return_value might be affected. Thus, in order to create separate copies, the copy constructor must be used.

The copy constructor's counterpart in the Zend API, the destructor zval_dtor(), does the opposite of the constructor.

Předcházející | Domů | Další
Creating Constants | Nahoru | Returning Values


Returning Values

Manuál PHP
Předcházející Další

Kapitola 35. Returning Values

Returning values from your functions to PHP was described briefly in an earlier section; this section gives the details. Return values are passed via the return_value variable, which is passed to your functions as argument. The return_value argument consists of a zval container (see the earlier discussion of the call interface) that you can freely modify. The container itself is already allocated, so you don't have to run MAKE_STD_ZVAL on it. Instead, you can access its members directly.

To make returning values from functions easier and to prevent hassles with accessing the internal structures of the zval container, a set of predefined macros is available (as usual). These macros automatically set the correspondent type and value, as described in 35-1 and 35-2.

Poznámka: The macros in 35-1 automatically return from your function, those in 35-2 only set the return value; they don't return from your function.

Tabulka 35-1. Predefined Macros for Returning Values from a Function

Macro | Description
RETURN_RESOURCE(resource) | Returns a resource.
RETURN_BOOL(bool) | Returns a Boolean.
RETURN_NULL() | Returns nothing (a NULL value).
RETURN_LONG(long) | Returns a long.
RETURN_DOUBLE(double) | Returns a double.
RETURN_STRING(string, duplicate) | Returns a string. The duplicate flag indicates whether the string should be duplicated using estrdup().
RETURN_STRINGL(string, length, duplicate) | Returns a string of the specified length; otherwise, behaves like RETURN_STRING. This macro is faster and binary-safe, however.
RETURN_EMPTY_STRING() | Returns an empty string.
RETURN_FALSE | Returns Boolean false.
RETURN_TRUE | Returns Boolean true.

Tabulka 35-2. Predefined Macros for Setting the Return Value of a Function

Macro | Description
RETVAL_RESOURCE(resource) | Sets the return value to the specified resource.
RETVAL_BOOL(bool) | Sets the return value to the specified Boolean value.
RETVAL_NULL | Sets the return value to NULL.
RETVAL_LONG(long) | Sets the return value to the specified long.
RETVAL_DOUBLE(double) | Sets the return value to the specified double.
RETVAL_STRING(string, duplicate) | Sets the return value to the specified string and duplicates it to Zend internal memory if desired (see also RETURN_STRING).
RETVAL_STRINGL(string, length, duplicate) | Sets the return value to the specified string and forces the length to become length (see also RETVAL_STRING). This macro is faster and binary-safe, and should be used whenever the string length is known.
RETVAL_EMPTY_STRING | Sets the return value to an empty string.
RETVAL_FALSE | Sets the return value to Boolean false.
RETVAL_TRUE | Sets the return value to Boolean true.

Complex types such as arrays and objects can be returned by using array_init() and object_init(), as well as the corresponding hash functions on return_value. Since these types cannot be constructed of trivial information, there are no predefined macros for them.

Předcházející | Domů | Další
Duplicating Variable Contents: The Copy Constructor | Nahoru | Printing Information


Printing Information

Manuál PHP
Předcházející Další

Kapitola 36. Printing Information

Obsah
zend_printf()
zend_error()
Including Output in phpinfo()
Execution Information

Often it's necessary to print messages to the output stream from your module, just as print() would be used within a script. PHP offers functions for most generic tasks, such as printing warning messages, generating output for phpinfo(), and so on. The following sections provide more details. Examples of these functions can be found on the CD-ROM.

zend_printf()

zend_printf() works like the standard printf(), except that it prints to Zend's output stream.

Předcházející | Domů | Další
Returning Values | Nahoru | zend_error()


Execution Information

You can also print execution information, such as the current file being executed. The name of the function currently being executed can be retrieved using the function get_active_function_name(). This function returns a pointer to the function name and doesn't accept any arguments. To retrieve the name of the file currently being executed, use zend_get_executed_filename(). This function accesses the executor globals, which are passed to it using the TSRMLS_C macro. The executor globals are automatically available to every function that's called directly by Zend (they're part of the INTERNAL_FUNCTION_PARAMETERS described earlier in this chapter). If you want to access the executor globals in another function that doesn't have them available automatically, call the macro TSRMLS_FETCH() once in that function; this will introduce them to your local scope.

Finally, the line number currently being executed can be retrieved using the function zend_get_executed_lineno(). This function also requires the executor globals as arguments. For examples of these functions, see 36-2.

Příklad 36-2. Printing execution information.

zend_printf("The name of the current function is %s<br>", get_active_function_name(TSRMLS_C));
zend_printf("The file currently executed is %s<br>", zend_get_executed_filename(TSRMLS_C));
zend_printf("The current line being executed is %i<br>", zend_get_executed_lineno(TSRMLS_C));

Předcházející | Domů | Další
Including Output in phpinfo() | Nahoru | Startup and Shutdown Functions


Startup and Shutdown Functions

Manuál PHP
Předcházející Další

Kapitola 37. Startup and Shutdown Functions

Startup and shutdown functions can be used for one-time initialization and deinitialization of your modules. As discussed earlier in this chapter (see the description of the Zend module descriptor block), there are module, and request startup and shutdown events.

The module startup and shutdown functions are called whenever a module is loaded and needs initialization; the request startup and shutdown functions are called every time a request is processed (meaning that a file is being executed).

For dynamic extensions, module and request startup/shutdown events happen at the same time.

Declaration and implementation of these functions can be done with macros; see the earlier section "Declaration of the Zend Module Block" for details.

Předcházející | Domů | Další
Execution Information | Nahoru | Calling User Functions


Calling User Functions

Manuál PHP
Předcházející Další

Kapitola 38. Calling User Functions

You can call user functions from your own modules, which is very handy when implementing callbacks; for example, for array walking, searching, or simply for event-based programs.

User functions can be called with the function call_user_function_ex(). It requires a hash value for the function table you want to access, a pointer to an object (if you want to call a method), the function name, return value, number of arguments, argument array, and a flag indicating whether you want to perform zval separation.

ZEND_API int call_user_function_ex(HashTable *function_table, zval *object,
zval *function_name, zval **retval_ptr_ptr,
int param_count, zval **params[],
int no_separation);

Note that you don't have to specify both function_table and object; either will do. If you want to call a method, you have to supply the object that contains this method, in which case call_user_function()automatically sets the function table to this object's function table. Otherwise, you only need to specify function_table and can set object to NULL.

Usually, the default function table is the "root" function table containing all function entries. This function table is part of the compiler globals and can be accessed using the macro CG. To introduce the compiler globals to your function, call the macro TSRMLS_FETCH once.

The function name is specified in a zval container. This might be a bit surprising at first, but is quite a logical step, since most of the time you'll accept function names as parameters from calling functions within your script, which in turn are contained in zval containers again. Thus, you only have to pass your arguments through to this function. This zval must be of type IS_STRING.

The next argument consists of a pointer to the return value. You don't have to allocate memory for this container; the function will do so by itself. However, you have to destroy this container (using zval_dtor()) afterward!

Next is the parameter count as integer and an array containing all necessary parameters. The last argument specifies whether the function should perform zval separation - this should always be set to 0. If set to 1, the function consumes less memory but fails if any of the parameters need separation.

38-1 shows a small demonstration of calling a user function. The code calls a function that's supplied to it as argument and directly passes this function's return value through as its own return value. Note the use of the constructor and destructor calls at the end - it might not be necessary to do it this way here (since they should be separate values, the assignment might be safe), but this is bulletproof.

Příklad 38-1. Calling user functions.

zval **function_name;
zval *retval;

if((ZEND_NUM_ARGS() != 1) || (zend_get_parameters_ex(1, &function_name) != SUCCESS))
{
    WRONG_PARAM_COUNT;
}

if((*function_name)->type != IS_STRING)
{
    zend_error(E_ERROR, "Function requires string argument");
}

TSRMSLS_FETCH();

if(call_user_function_ex(CG(function_table), NULL, *function_name, &retval, 0, NULL, 0) != SUCCESS)
{
    zend_error(E_ERROR, "Function call failed");
}

zend_printf("We have %i as type<br>", retval->type);

*return_value = *retval;
zval_copy_ctor(return_value);
zval_ptr_dtor(&retval);

<?php

dl("call_userland.so");

function test_function()
{

    print("We are in the test function!<br>");

    return("hello");

}

$return_value = call_userland("test_function");

print("Return value: \"$return_value\"<br>");
?>

Předcházející | Domů | Další
Startup and Shutdown Functions | Nahoru | Initialization File Support


Initialization File Support

Manuál PHP
Předcházející Další

Kapitola 39. Initialization File Support

PHP 4 features a redesigned initialization file support. It's now possible to specify default initialization entries directly in your code, read and change these values at runtime, and create message handlers for change notifications.

To create an .ini section in your own module, use the macros PHP_INI_BEGIN() to mark the beginning of such a section and PHP_INI_END() to mark its end. In between you can use PHP_INI_ENTRY() to create entries.
PHP_INI_BEGIN()
PHP_INI_ENTRY("first_ini_entry",  "has_string_value", PHP_INI_ALL, NULL)
PHP_INI_ENTRY("second_ini_entry", "2",                PHP_INI_SYSTEM, OnChangeSecond)
PHP_INI_ENTRY("third_ini_entry",  "xyz",              PHP_INI_USER, NULL)
PHP_INI_END()
The PHP_INI_ENTRY() macro accepts four parameters: the entry name, the entry value, its change permissions, and a pointer to a change-notification handler. Both entry name and value must be specified as strings, regardless of whether they really are strings or integers.

The permissions are grouped into three sections:PHP_INI_SYSTEM allows a change only directly in the php.ini file; PHP_INI_USER allows a change to be overridden by a user at runtime using additional configuration files, such as .htaccess; and PHP_INI_ALL allows changes to be made without restrictions. There's also a fourth level, PHP_INI_PERDIR, for which we couldn't verify its behavior yet.

The fourth parameter consists of a pointer to a change-notification handler. Whenever one of these initialization entries is changed, this handler is called. Such a handler can be declared using the PHP_INI_MH macro:
PHP_INI_MH(OnChangeSecond);             // handler for ini-entry "second_ini_entry"

// specify ini-entries here

PHP_INI_MH(OnChangeSecond)
{

    zend_printf("Message caught, our ini entry has been changed to %s<br>", new_value);

    return(SUCCESS);

}
The new value is given to the change handler as string in the variable new_value. When looking at the definition of PHP_INI_MH, you actually have a few parameters to use:
#define PHP_INI_MH(name) int name(php_ini_entry *entry, char *new_value,
                                  uint new_value_length, void *mh_arg1,
                                  void *mh_arg2, void *mh_arg3)
All these definitions can be found in php_ini.h. Your message handler will have access to a structure that contains the full entry, the new value, its length, and three optional arguments. These optional arguments can be specified with the additional macros PHP_INI_ENTRY1 (allowing one additional argument), PHP_INI_ENTRY2 (allowing two additional arguments), and PHP_INI_ENTRY3 (allowing three additional arguments).

The change-notification handlers should be used to cache initialization entries locally for faster access or to perform certain tasks that are required if a value changes. For example, if a constant connection to a certain host is required by a module and someone changes the hostname, automatically terminate the old connection and attempt a new one.

Access to initialization entries can also be handled with the macros shown in 39-1.

Tabulka 39-1. Macros to Access Initialization Entries in PHP

Macro | Description
INI_INT(name) | Returns the current value of entry name as integer (long).
INI_FLT(name) | Returns the current value of entry name as float (double).
INI_STR(name) | Returns the current value of entry name as string. Note: This string is not duplicated, but instead points to internal data. Further access requires duplication to local memory.
INI_BOOL(name) | Returns the current value of entry name as Boolean (defined as zend_bool, which currently means unsigned char).
INI_ORIG_INT(name) | Returns the original value of entry name as integer (long).
INI_ORIG_FLT(name) | Returns the original value of entry name as float (double).
INI_ORIG_STR(name) | Returns the original value of entry name as string. Note: This string is not duplicated, but instead points to internal data. Further access requires duplication to local memory.
INI_ORIG_BOOL(name) | Returns the original value of entry name as Boolean (defined as zend_bool, which currently means unsigned char).

Finally, you have to introduce your initialization entries to PHP. This can be done in the module startup and shutdown functions, using the macros REGISTER_INI_ENTRIES() and UNREGISTER_INI_ENTRIES():
ZEND_MINIT_FUNCTION(mymodule)
{

    REGISTER_INI_ENTRIES();

}

ZEND_MSHUTDOWN_FUNCTION(mymodule)
{

    UNREGISTER_INI_ENTRIES();

}

Předcházející | Domů | Další
Calling User Functions | Nahoru | Where to Go from Here


Where to Go from Here

Manuál PHP
Předcházející Další

Kapitola 40. Where to Go from Here

You've learned a lot about PHP. You now know how to create dynamic loadable modules and statically linked extensions. You've learned how PHP and Zend deal with internal storage of variables and how you can create and access these variables. You know quite a set of tool functions that do a lot of routine tasks such as printing informational texts, automatically introducing variables to the symbol table, and so on.

Even though this chapter often had a mostly "referential" character, we hope that it gave you insight on how to start writing your own extensions. For the sake of space, we had to leave out a lot; we suggest that you take the time to study the header files and some modules (especially the ones in the ext/standard directory and the MySQL module, as these implement commonly known functionality). This will give you an idea of how other people have used the API functions - particularly those that didn't make it into this chapter.

Předcházející | Domů | Další
Initialization File Support | Nahoru | Reference: Some Configuration Macros


Reference: Some Configuration Macros

Manuál PHP
Předcházející Další

Kapitola 41. Reference: Some Configuration Macros

Obsah
config.m4

config.m4

The file config.m4 is processed by buildconf and must contain all the instructions to be executed during configuration. For example, these can include tests for required external files, such as header files, libraries, and so on. PHP defines a set of macros that can be used in this process, the most useful of which are described in 41-1.

Tabulka 41-1. M4 Macros for config.m4

Macro | Description
AC_MSG_CHECKING(message) | Prints a "checking <message>" text during configure.
AC_MSG_RESULT(value) | Gives the result to AC_MSG_CHECKING; should specify either yes or no as value.
AC_MSG_ERROR(message) | Prints message as error message during configure and aborts the script.
AC_DEFINE(name,value,description) | Adds #define to php_config.h with the value of value and a comment that says description (this is useful for conditional compilation of your module).
AC_ADD_INCLUDE(path) | Adds a compiler include path; for example, used if the module needs to add search paths for header files.
AC_ADD_LIBRARY_WITH_PATH(libraryname,librarypath) | Specifies an additional library to link.
AC_ARG_WITH(modulename,description,unconditionaltest,conditionaltest) | Quite a powerful macro, adding the module with description to the configure --help output. PHP checks whether the option --with-<modulename> is given to the configure script. If so, it runs the script unconditionaltest (for example, --with-myext=yes), in which case the value of the option is contained in the variable $withval. Otherwise, it executes conditionaltest.
PHP_EXTENSION(modulename, [shared]) | This macro is a must to call for PHP to configure your extension. You can supply a second argument in addition to your module name, indicating whether you intend compilation as a shared module. This will result in a definition at compile time for your source as COMPILE_DL_<modulename>.

Předcházející | Domů | Další
Where to Go from Here | Nahoru | API Macros


API Macros

Manuál PHP
Předcházející Další

Kapitola 42. API Macros

A set of macros was introduced into Zend's API that simplify access to zval containers (see 42-1).

Tabulka 42-1. API Macros for Accessing zval Containers

Macro | Refers to
Z_LVAL(zval) | (zval).value.lval
Z_DVAL(zval) | (zval).value.dval
Z_STRVAL(zval) | (zval).value.str.val
Z_STRLEN(zval) | (zval).value.str.len
Z_ARRVAL(zval) | (zval).value.ht
Z_LVAL_P(zval) | (*zval).value.lval
Z_DVAL_P(zval) | (*zval).value.dval
Z_STRVAL_P(zval_p) | (*zval).value.str.val
Z_STRLEN_P(zval_p) | (*zval).value.str.len
Z_ARRVAL_P(zval_p) | (*zval).value.ht
Z_LVAL_PP(zval_pp) | (**zval).value.lval
Z_DVAL_PP(zval_pp) | (**zval).value.dval
Z_STRVAL_PP(zval_pp) | (**zval).value.str.val
Z_STRLEN_PP(zval_pp) | (**zval).value.str.len
Z_ARRVAL_PP(zval_pp) | (**zval).value.ht

Předcházející | Domů | Další
Reference: Some Configuration Macros | Nahoru | PHP API: Rozhraní pro autory rozšíření PHP


PHP API: Rozhraní pro autory rozšíření PHP

Manuál PHP
Předcházející Další

VII. PHP API: Rozhraní pro autory rozšíření PHP

Obsah
43. Streams API for PHP Extension Authors

Předcházející | Domů | Další
API Macros |  | Streams API for PHP Extension Authors


Streams API for PHP Extension Authors

Manuál PHP
Předcházející Další

Kapitola 43. Streams API for PHP Extension Authors

Obsah
Overview
Streams Basics
Streams as Resources
Streams Common API Reference
Streams Dir API Reference
Streams File API Reference
Streams Socket API Reference
Streams Structures
Streams Constants

Overview

The PHP Streams API introduces a unified approach to the handling of files and sockets in PHP extension. Using a single API with standard functions for common operations, the streams API allows your extension to access files, sockets, URLs, memory and script-defined objects. Streams is a run-time extensible API that allows dynamically loaded modules (and scripts!) to register new streams.

The aim of the Streams API is to make it comfortable for developers to open files, URLs and other streamable data sources with a unified API that is easy to understand. The API is more or less based on the ANSI C stdio family of functions (with identical semantics for most of the main functions), so C programmers will have a feeling of familiarity with streams.

The streams API operates on a couple of different levels: at the base level, the API defines php_stream objects to represent streamable data sources. On a slightly higher level, the API defines php_stream_wrapper objects which "wrap" around the lower level API to provide support for retrieving data and meta-data from URLs. An additional context parameter, accepted by most stream creation functions, is passed to the wrapper's stream_opener method to fine-tune the behavior of the wrapper.

Any stream, once opened, can also have any number of filters applied to it, which process data as it is read from/written to the stream.

Streams can be cast (converted) into other types of file-handles, so that they can be used with third-party libraries without a great deal of trouble. This allows those libraries to access data directly from URL sources. If your system has the fopencookie() or funopen() function, you can even pass any PHP stream to any library that uses ANSI stdio!

Poznámka: The functions in this chapter are for use in the PHP source code and are not PHP functions. Userland stream functions can be found in the Stream Reference.

Předcházející | Domů | Další
PHP API: Rozhraní pro autory rozšíření PHP | Nahoru | Streams Basics


Streams Basics

Using streams is very much like using ANSI stdio functions. The main difference is in how you obtain the stream handle to begin with. In most cases, you will use php_stream_open_wrapper() to obtain the stream handle. This function works very much like fopen, as can be seen from the example below:

Příklad 43-1. simple stream example that displays the PHP home page

php_stream * stream = php_stream_open_wrapper("http://www.php.net", "rb", REPORT_ERRORS, NULL);
if (stream) {
    while(!php_stream_eof(stream)) {
        char buf[1024];

        if (php_stream_gets(stream, buf, sizeof(buf))) {
            printf(buf);
        } else {
            break;
        }
    }
    php_stream_close(stream);
}

The table below shows the Streams equivalents of the more common ANSI stdio functions. Unless noted otherwise, the semantics of the functions are identical.

Tabulka 43-1. ANSI stdio equivalent functions in the Streams API

ANSI Stdio Function | PHP Streams Function | Notes
fopen | php_stream_open_wrapper | Streams includes additional parameters
fclose | php_stream_close |
fgets | php_stream_gets |
fread | php_stream_read | The nmemb parameter is assumed to have a value of 1, so the prototype looks more like read(2)
fwrite | php_stream_write | The nmemb parameter is assumed to have a value of 1, so the prototype looks more like write(2)
fseek | php_stream_seek |
ftell | php_stream_tell |
rewind | php_stream_rewind |
feof | php_stream_eof |
fgetc | php_stream_getc |
fputc | php_stream_putc |
fflush | php_stream_flush |
puts | php_stream_puts | Same semantics as puts, NOT fputs
fstat | php_stream_stat | Streams has a richer stat structure

Předcházející | Domů | Další
Streams API for PHP Extension Authors | Nahoru | Streams as Resources


Streams as Resources

All streams are registered as resources when they are created. This ensures that they will be properly cleaned up even if there is some fatal error. All of the filesystem functions in PHP operate on streams resources - that means that your extensions can accept regular PHP file pointers as parameters to, and return streams from their functions. The streams API makes this process as painless as possible:

Příklad 43-2. How to accept a stream as a parameter

PHP_FUNCTION(example_write_hello)
{
    zval *zstream;
    php_stream *stream;

    if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &zstream))
        return;

    php_stream_from_zval(stream, &zstream);

    /* you can now use the stream.  However, you do not "own" the
        stream, the script does.  That means you MUST NOT close the
        stream, because it will cause PHP to crash! */

    php_stream_write(stream, "hello\n");

    RETURN_TRUE();
}

Příklad 43-3. How to return a stream from a function

PHP_FUNCTION(example_open_php_home_page)
{
    php_stream *stream;

    stream = php_stream_open_wrapper("http://www.php.net", "rb", REPORT_ERRORS, NULL);

    php_stream_to_zval(stream, return_value);

    /* after this point, the stream is "owned" by the script.
        If you close it now, you will crash PHP! */
}

Since streams are automatically cleaned up, it's tempting to think that we can get away with being sloppy programmers and not bother to close the streams when we are done with them. Although such an approach might work, it is not a good idea for a number of reasons: streams hold locks on system resources while they are open, so leaving a file open after you have finished with it could prevent other processes from accessing it. If a script deals with a large number of files, the accumulation of the resources used, both in terms of memory and the sheer number of open files, can cause web server requests to fail. Sounds bad, doesn't it? The streams API includes some magic that helps you to keep your code clean - if a stream is not closed by your code when it should be, you will find some helpful debugging information in you web server error log.

Poznámka: Always use a debug build of PHP when developing an extension (--enable-debug when running configure), as a lot of effort has been made to warn you about memory and stream leaks.

In some cases, it is useful to keep a stream open for the duration of a request, to act as a log or trace file for example. Writing the code to safely clean up such a stream is not difficult, but it's several lines of code that are not strictly needed. To save yourself the trouble of writing the code, you can mark a stream as being OK for auto cleanup. What this means is that the streams API will not emit a warning when it is time to auto-cleanup a stream. To do this, you can use php_stream_auto_cleanup().

Předcházející | Domů | Další
Streams Basics | Nahoru | Streams Common API Reference


Streams Common API Reference

Obsah
php_stream_stat_path -- Gets the status for a file or URL
php_stream_stat -- Gets the status for the underlying storage associated with a stream
php_stream_open_wrapper -- Opens a stream on a file or URL
php_stream_read -- Read a number of bytes from a stream into a buffer
php_stream_write -- Write a number of bytes from a buffer to a stream
php_stream_eof -- Check for an end-of-file condition on a stream
php_stream_getc -- Read a single byte from a stream
php_stream_gets -- Read a line of data from a stream into a buffer
php_stream_close -- Close a stream
php_stream_flush -- Flush stream buffers to storage
php_stream_seek -- Reposition a stream
php_stream_tell -- Determine the position of a stream
php_stream_copy_to_stream -- Copy data from one stream to another
php_stream_copy_to_mem -- Copy data from stream and into an allocated buffer
php_stream_make_seekable -- Convert a stream into a stream is seekable
php_stream_cast -- Convert a stream into another form, such as a FILE* or socket
php_stream_can_cast -- Determines if a stream can be converted into another form, such as a FILE* or socket
php_stream_is_persistent -- Determines if a stream is a persistent stream
php_stream_is -- Determines if a stream is of a particular type
php_stream_passthru -- Outputs all remaining data from a stream
php_register_url_stream_wrapper -- Registers a wrapper with the Streams API
php_unregister_url_stream_wrapper -- Unregisters a wrapper from the Streams API
php_stream_open_wrapper_ex -- Opens a stream on a file or URL, specifying context
php_stream_open_wrapper_as_file -- Opens a stream on a file or URL, and converts to a FILE*
php_stream_filter_register_factory -- Registers a filter factory with the Streams API
php_stream_filter_unregister_factory -- Deregisters a filter factory with the Streams API

Předcházející | Domů | Další
Streams as Resources | Nahoru | php_stream_stat_path


Streams Dir API Reference

Obsah
php_stream_opendir -- Open a directory for file enumeration
php_stream_readdir -- Fetch the next directory entry from an opened dir
php_stream_rewinddir -- Rewind a directory stream to the first entry
php_stream_closedir -- Close a directory stream and release resources

The functions listed in this section work on local files, as well as remote files (provided that the wrapper supports this functionality!).

Předcházející | Domů | Další
php_stream_filter_unregister_factory | Nahoru | php_stream_opendir


Streams File API Reference

Obsah
php_stream_fopen_from_file -- Convert an ANSI FILE* into a stream
php_stream_fopen_tmpfile -- Open a FILE* with tmpfile() and convert into a stream
php_stream_fopen_temporary_file -- Generate a temporary file name and open a stream on it

Předcházející | Domů | Další
php_stream_closedir | Nahoru | php_stream_fopen_from_file


Streams Socket API Reference

Obsah
php_stream_sock_open_from_socket -- Convert a socket descriptor into a stream
php_stream_sock_open_host -- Open a connection to a host and return a stream
php_stream_sock_open_unix -- Open a Unix domain socket and convert into a stream

Předcházející | Domů | Další
php_stream_fopen_temporary_file | Nahoru | php_stream_sock_open_from_socket


Streams Structures

Obsah
struct php_stream_statbuf -- Holds information about a file or URL
struct php_stream_dirent -- Holds information about a single file during dir scanning
struct php_stream_ops -- Holds member functions for a stream implementation
struct php_stream_wrapper -- Holds wrapper properties and pointer to operations
struct php_stream_wrapper_ops -- Holds member functions for a stream wrapper implementation
struct php_stream_filter -- Holds filter properties and pointer to operations
struct php_stream_filter_ops -- Holds member functions for a stream filter implementation

Předcházející | Domů | Další
php_stream_sock_open_unix | Nahoru | struct php_stream_statbuf


Streams Constants

Obsah
Stream open options -- Affects the operation of stream factory functions

Předcházející | Domů | Další
struct php_stream_filter_ops | Nahoru | Stream open options


FAQ: Často kladené otázky

Manuál PHP
Předcházející Další

VIII. FAQ: Často kladené otázky

Obsah
44. Obecné informace
45. E-mailové konference (mailing lists)
46. Získání PHP
47. Záležitosti databází
48. Instalace
49. Sestavovací (kompilační) problémy
50. Používání PHP
51. PHP a HTML
52. PHP a COM
53. PHP a jiné jazyky
54. Přechod z PHP 2 na PHP 3
55. Přechod z PHP 3 na PHP 4
56. Ostatní otázky

Předcházející | Domů | Další
Stream open options |  | Obecné informace


Obecné informace

Manuál PHP
Předcházející Další

Kapitola 44. Obecné informace

Tato sekce se zabývá obecnými otázkami okolo PHP: co to je a co to dělá.

1. Co je to PHP?
2. Co znamená zkratka PHP?
3. Jaký je vztah mezi verzemi?
4. Mohu současně pouštět více verzí PHP?
5. Jaké jsou rozdíly mezi PHP 3 a PHP 4?
6. Myslím, že jsem našel chybu! Komu to mám říct?

1. Co je to PHP?

Z předsádky manuálu:

PHP je skriptovací jazyk vkládaný do HTML. Mnoho jeho syntaxe je vypůjčeno z C, Javy a Perlu s několika přidanými prostředky specifickými pro PHP. Cílem jazyka je umožnit vývojářům webů rychleji psát dynamicky generované stránky.

Milý úvod do PHP od Stiga Sæther Bakkena najdete tady na stránkách Zendu. Volně k dispozici je také mnoho materiálů PHP konference.

2. Co znamená zkratka PHP?

PHP je zkratka pro PHP: Hypertext Preprocessor. Mnoho lidí může mást, že první slovo akronymu je také akronym. Tomuto typu zkratek se říká rekurzívní akronym. Zvědavci mohou navštívit Free On-Line Dictionary of Computing, kde najdou více informací o rekurzívních akronymech.

3. Jaký je vztah mezi verzemi?

PHP/FI 2.0 je časná a již nepodporovaná verze PHP. PHP 3 je následník PHP/FI 2.0 a je mnohem lepší. PHP 4 je zatím poslední generací PHP a má pod kapotou Zend engine.

4. Mohu současně pouštět více verzí PHP?

Ano. Podívejte se do souboru INSTALL, který je přiložen k distribuci zdrojových souborů PHP 4. Přečtěte si i příslušný dodatek.

5. Jaké jsou rozdíly mezi PHP 3 a PHP 4?

Existuje několik článků, které o tom napsali autoři PHP 4. Tady je seznam některých důležitějších nových prvků:

  • Rozšířený API modul

  • Zobecněný sestavovací (kompilační) proces pod UNIXem

  • Generické rozhraní pro WWW servery, které podporuje také multithreadové servery

  • Vylepšený zvýrazňovač syntaxe

  • Nativní podpora HTTP sessions

  • Podpora výstupního bufferingu

  • Silnější konfigurační systém

  • Reference counting

Podívejte se laskavě na What's new in PHP 4 overview, kde najdete detailní vysvětlení těchto prvků a ještě mnohem víc. Pokud přecházíte z PHP 3 na PHP 4, přečtěte si také příslušný dodatek.

6. Myslím, že jsem našel chybu! Komu to mám říct?

Měli byste navštívit databázi chyb (PHP Bug Database) a ujistit se, zda nalezená chyba již není v seznamu známých chyb. Pokud ji tam nenajdete, použijte formulář pro ohlašování chyb. Je důležité použít databázi chyb namísto posílání zprávy do distribučního seznamu, protože chyba bude mít přiřazeno své číslo a bude potom možné, abyste se sem později vrátili a zkontrolovali stav chyby. Chybovou databázi najdete na http://bugs.php.net/.

Předcházející | Domů | Další
FAQ: Často kladené otázky | Nahoru | E-mailové konference (mailing lists)


E-mailové konference (mailing lists)

Manuál PHP
Předcházející Další

Kapitola 45. E-mailové konference (mailing lists)

Tato část se zabývá záležitostmi o tom, jak můžete navázat kontakt s PHP komunitou. Nejlepším způsobem jsou e-mailové konference.

Pozn. překladatele: Čeština nemá adekvátní termín pro "mailing list". Protože se běžně používá termínů "e-mailová konference" nebo "konference", budu je používat i zde, i když to není úplně nejlepší řešení.

1. Existují nějaké e-mailové konference pro PHP?
2. Existují ještě jiné komunity?
3. Pomoc! Nedaří se mi přihlásit/odhlásit se do/z konference!
4. Existuje někde archiv konferencí?
5. Na co se mohu ptát v konferenci?
6. Jaké informace mám přiložit k příspěvku do konference?

1. Existují nějaké e-mailové konference pro PHP?

Samozřejmě! Je mnoho konferencí pro různé záležitosti. Kompletní seznam těchto konferencí můžete najít na naší stránce Podpora.

Většina konferencí patří do třídy php-general, tedy obecné záležitosti PHP. K přihlášení pošlete zprávu na php-general-subscribe@lists.php.net. Do předmětu zprávy ani jejího těla nemusíte vkládat nic speciálního. Odhlásíte se posláním zprávy na php-general-unsubscribe@lists.php.net.

Přihlásit nebo odhlásit se můžete také pomocí rozhraní na webu na stránce Podpora.

2. Existují ještě jiné komunity?

Je jich nespočetně po celém světě. Máme např. odkazy na některé IRC servery a konference v cizích jazycích - na stránce Podpora.

3. Pomoc! Nedaří se mi přihlásit/odhlásit se do/z konference!

Pokud máte problémy s přihlašováním nebo odhlašováním konference php-general, může to být proto, že její software nemůže vyhodnotit správnou e-mailovou adresu k použití. Pokud by vaše adresa byla joeblow@example.com, můžete poslat přihlašovací požadavek na php-general-subscribe-joeblow=example.com@lists.php.net, resp. odhlašovací na php-general-unsubscribe-joeblow=example.com@lists.php.net. Pro ostatní konference použijte obdobné adresy.

4. Existuje někde archiv konferencí?

Ano, seznam archivů najdete na stránce Podpora. Příspěvky do konferencí se archivují také jako zprávy služby news (protokol NNTP). Server této služby je k dispozici na news://news.php.net/. Existuje také experimentální webovské rozhraní pro news server na http://news.php.net/

5. Na co se mohu ptát v konferenci?

Jak je PHP den ze dne stále populárnější, provoz v konferenci php-general narůstal a nyní přichází 150-200 příspěvků denně. Kvůli tomu je v zájmu každého, aby používal tuto konferenci až jako poslední možnost poté, co hledal všude jinde.

Než něco pošlete do konference, podívejte se prosím do FAQ a do manuálu, zda nemůžete najít odpověd tam. Pokud ji nenajdete, prohlédněte si archivy konferencí (viz výše). Když máte problémy s instalací nebo konfigurací PHP, přečtěte si prosím všechnu přiloženou dokumentaci a soubory README. Pokud stále nemůžete najít nic, co by vám pomohlo, jste více než vítáni v konferenci.

6. Jaké informace mám přiložit k příspěvku do konference?

Příspěvky jako "PHP mi nechce fungovat! Pomozte mi! Co mám špatně?" jsou absolutně k ničemu. Pokud máte problémy se spouštěním a během PHP, musíte napsat, na jakém operačním systému ho spouštíte, o kterou verzi PHP se jedná, jak jste ji získali (předkompilovaný balík, CVS, RPM apod.), co jste s ním udělali, kde to uvázlo, a přesnou chybovou zprávu.

To platí úplně stejně i pro jiné problémy. Měli byste přiložit informace o tom, co jste dělali, kde to uvázlo, co jste s tím zkoušeli dělat a, pokud to lze, přesnou chybovou zprávu. Máte-li problémy se zdrojovým kódem, je třeba přiložit ten kus kódu, který nepracuje. Nepřikládejte více kódu, než je třeba! Příspěvek by byl hůře čitelný a mnoho lidí by ho kvůli tomu přeskočilo. Pokud si nejste jisti, kolik informací máte přiložit do zprávy, je lépe přidat více než méně.

Jinou důležitou věcí, kterou je třeba mít na paměti, je sumarizace problému v předmětu zprávy. Předmět typu "POMOZTEEE! nebo "Co je to za problém?" bude většina čtenářů ignorovat.

Předcházející | Domů | Další
Obecné informace | Nahoru | Získání PHP


Získání PHP

Manuál PHP
Předcházející Další

Kapitola 46. Získání PHP

Tato část obsahuje detaily o umístění PHP downloadu a záležitostech operačních systémů.

1. Kde mohu získat PHP?
2. Jsou k dispozici předkompilované binární verze?
3. Kde mohu získat knihovny potřebné pro kompilaci některých volitelných rozšíření PHP?
4. Jak zařídím, aby tyto knihovny fungovaly?
5. Získal jsem poslední verzi zdrojového kódu PHP z CVS repozitáře, co potřebuji ke kompilaci na Windows?
6. Kde najdu Browser Capabilities File?

1. Kde mohu získat PHP?

PHP můžete stáhnout z kteréhokoli bodu, který je součástí sítě PHP serverů. Najdete je na http://www.php.net/. Můžete také použít anonymní CVS přístup, čímž získáte absolutně nejnovější verzi zdrojových souborů. Více informací najdete na http://cvs.php.net/.

2. Jsou k dispozici předkompilované binární verze?

Předkompilované verze distribuujeme pouze pro systémy Windows, protože nejsme schopni zkompilovat PHP pro všechny hlavní platformy Linux/UNIX se všemi kombinacemí rozšíření. Také si uvědomte, že mnoho distribucí Linuxu dnes přímo obsahuje PHP. Binární soubory pro Windows si můžete stáhnout z naší stránky Download, pro binární soubory pro Linux navštivte stránky distribucí Linuxu.

3. Kde mohu získat knihovny potřebné pro kompilaci některých volitelných rozšíření PHP?

Poznámka: Knihovny označené * (hvězdičkou) nejsou vláknově bezpečné a neměly by se používat s PHP jako modulem do multithreadových serverů pod Windows (IIS, Netscape). V UNIXu na tom nezáleží.

  • LDAP (unix).

  • LDAP* (unix).

  • LDAP (unix/win) : Netscape Directory (LDAP) SDK 1.1.

  • free LDAP server.

  • Berkeley DB2 (Unix/Win) : http://www.sleepycat.com/.

  • SNMP* (Unix): .

  • GD* (Unix/Win).

  • mSQL* (Win).

  • mSQL* (Unix).

  • PostgreSQL (Unix).

  • IMAP* (Win/Unix).

  • Sybase-CT* (Linux, libc5) : Available locally.

  • FreeType (libttf):.

  • ZLib (Unix/Win32).

  • expat XML parser (Unix/Win32).

  • PDFLib.

  • mcrypt.

  • mhash.

  • t1lib.

  • dmalloc.

  • aspell.

  • readline.

4. Jak zařídím, aby tyto knihovny fungovaly?

Musíte se řídit instrukcemi dodanými s příslušnou knihovnou. Některé knihovny se automaticky detekují při spuštění skriptu 'configure' pro PHP (např. knihovna GD), jiné musíte aktivovat pomocí parametru '--with-EXTENSION' pro 'configure'. Seznam těchto parametrů získáte spuštěním 'configure --help'.

5. Získal jsem poslední verzi zdrojového kódu PHP z CVS repozitáře, co potřebuji ke kompilaci na Windows?

V první řadě musíte mít Microsoft Visual C++ verze 6 (MSVC++ 5 také postačí, ale my používáme verzi 6) a budete potřebovat nějaké podpůrné soubory. Podívejte se do sekce manuálu o kompilaci PHP pod Windows.

6. Kde najdu Browser Capabilities File?

Je to soubor browscap.ini na http://www.garykeith.com/browsers/downloads.asp.

Předcházející | Domů | Další
E-mailové konference (mailing lists) | Nahoru | Záležitosti databází


Záležitosti databází

Manuál PHP
Předcházející Další

Kapitola 47. Záležitosti databází

Tato sekce se zabývá častými otázkami okolo vztahu PHP a databází. Ano, PHP dnes může virtuálně přistupovat ke kterékoli dostupné databázi.

1. Slyšel jsem, že lze z PHP přistupovat k Microsoft SQL Serveru. Jak?
2. Lze přistupovat k databázím Microsoft Access?
3. Upgradoval jsem na PHP 4 a MySQL mi teď hlásí "Warning: MySQL: Unable to save result set in ...". Co se děje?
4. Po instalaci podpory sdíleného MySQL havaruje Apache v momentě, kdy načítá libphp4.so. Lze to vyřešit?
5. Proč dostávám chybu, která vypadá nějak takto: "Warning: 0 is not a MySQL result index in <file> on line <x>" nebo "Warning: Supplied argument is not a valid MySQL result resource in <file> on line <x>?

1. Slyšel jsem, že lze z PHP přistupovat k Microsoft SQL Serveru. Jak?

Na strojích s Windows můžete jednoduše použít zabudovanou podporu ODBC a správný ovladač ODBC.

Na Unixových strojích můžete k přístupu na Microsoft SQL Servery použít ovladač Sybase-CT, protože tyto protokoly jsou (alespoň z většiny) kompatibilní. V Sybase připravili volnou verzi potřebných knihoven pro Linux. Pro jiné Unixové systémy musíte kontaktovat Sybase k získání správných knihoven. Podívejte se také na odpověď na příští otázku.

2. Lze přistupovat k databázím Microsoft Access?

Ano. Pokud pracujete pod Windows 9x/Me nebo NT/2000, všechny potřebné nástroje již máte k dispozici - můžete použít ODBC a ovladače pro ODBC k databázím Microsoft Access.

Pokud používáte PHP na Unixu a chcete komunikovat s databázemi MS Access běžících na Windows, budete potřebovat ODBC ovladače pro Unix. OpenLink Software má unixové ovladače pro ODBC, které zde vyhoví. Existuje pilotní program, kdy si můžete stáhnout zkušební kopii, která má neomezenou zkušební dobu; ceny komerční verze s podporou začínají na 675 USD.

Jinou alternativou je použít SQL server, který má ODBC ovladače pro Windows a použít ho k uložení dat, ke kterým pak můžete přistupovat z aplikace Microsoft Access (pomocí ODBC) a z PHP (pomocí vestavěných ovladačů), nebo použít souborový meziformát, kterému rozumí Access i PHP (např. obyčejné soubory nebo databáze dBase). K tomuto bodu Tim Hayes z OpenLink soiftware píše:
Použití jiné databáze jako meziformátu není dobrý nápad, pokud můžete použít
ODBC z PHP přímo na vaší databázi - např. pomocí ovladačů od OpenLink software.
Když meziformát použít musíte, OpenLink nyní uvolnil Virtuoso (virtuální
databázový stroj) pro WinNT, Linux a jiné unixové platformy. Navštivte
prosím naši website a zdarma si ho
stáhněte.

Jednou z prověřených možností je použít MySQL a jeho ODBC ovladače pro Windows a synchronizace databází. Steve Lawrence píše:

  • Nainstalujte si na svou platformu MySQL podle přiložených instrukcí. Nejnovější verzi získáte na www.mysql.com (stahujte z nejbližšího zrcadla!). Není třeba žádná zvláštní konfigurace kromě toho, že když instalujete databázi a konfigurujete uživatelský účet, měli byste do pole "host" přidat % nebo název počítače s Windows, na kterém chcete MySQL spouštět. Poznamenejte si název serveru, uživatelské jméno a heslo.

  • Stáhněte si ovladač MyODBC pro Windows ze stránek MySQL. Nejnovější verze je myodbc-2_50_19-win95.zip (k dispozici také verze pro NT, stejně tak i zdrojový kód). Nainstalujte ho na počítač s Windows. Funkci můžete otestovat pomocí přiložených utilit.

  • Vytvořte uživatelský nebo systémový dsn v administrátoru ODBC, umístěném v ovládacích panelech. Zvolte název dsn, vložte název počítače, heslo, port apod. pro databázi MySQL nakonfigurovanou v kroku 1.

  • Nainstalujte plnou instalaci Accessu, což zajistí, že budou k dispozici všechny doplňky; budete potřebovat alespoň podporu ODBC a správu propojených tabulek.

  • A teď to nejzábavnější! Vytvořte novou databázi v Accessu. Klikněte pravým tlačítkem v okně tabulek a vyberte "Propojit tabulky", nebo pod nabídkou "Soubor" vyberte "Načíst externí data" a potom "Propojit tabulky". Až se otevře dialog, vyberte soubory typu ODBC. Zvolte systémový dsn a název dsn vytvořeného v kroku 3. Vyberte tabulku k propojení, stiskněte "OK" a je to"! Nyní můžete otevřít tabulku a přidat/smazat/upravovat data na vašem MySQL serveru! Můžete také vytvářet dotazy, importovat/exportovat tabulky do MySQL, vytvářet formuláře a sestavy atd.

Tipy a triky:

  • Můžete vytvořit tabulky v Accessu, exportovat je do MySQL a potom propojit zpět. To urychluje návrh tabulek.

  • Když vytváříte tabulky v Accessu, musíte mít definován primární klíč kvůli zápisu do tabulky. Ujistěte se, že jste primární klíč v MySQL vytvořili před propojením do Accessu.

  • Pokud změníte tabulku v MySQL, musíte ji znovu připojit do Accessu. Go to tools>add-ins>linked table manager, cruise to your ODBC DSN, and select the table to re-link from there. you can also move your dsn source around there, just hit the always prompt for new location checkbox before pressing ok.

3. Upgradoval jsem na PHP 4 a MySQL mi teď hlásí "Warning: MySQL: Unable to save result set in ...". Co se děje?

Nejspíše se stalo to, že bylo PHP 4 zkompilováno s volbout '--with-mysql' bez specifikace cesty k MySQL. To znamená, že PHP používá svoji vestavěnou klientskou knihovnu. Pokud na vašem systému běží aplikace jako PHP 3 (jako paralelně běžící modul Apache) nebo auth-mysql, používá jiné verze klientů MySQL, a je zde tedy konflikt dvou různých verzí těchto klientů.

Překompilování PHP 4 s přidáním cesty k MySQL do parametru, '--with-mysql=/your/path/to/mysql', obvykle tento problém vyřeší.

4. Po instalaci podpory sdíleného MySQL havaruje Apache v momentě, kdy načítá libphp4.so. Lze to vyřešit?

To se stává, když jsou knihovny MySQL připojovány s použitím pthreads. Ověřte to použitím "ldd". Pokud tomu tak je, stáhněte si balík MySQL a zkompilujte zdrojové soubory, nebo překompilujte soubory z RPM balíku a odstraňte přepínač, který zapíná threadový kód klienta. Jeden z těchto způsobů by měl problém vyřešit. Potom překompilujte PHP s novými knihovnami MySQL.

5. Proč dostávám chybu, která vypadá nějak takto: "Warning: 0 is not a MySQL result index in <file> on line <x>" nebo "Warning: Supplied argument is not a valid MySQL result resource in <file> on line <x>?

Pokoušíte se použít indentifikátor výsledku, který je 0. Nula indikuje, že váš dotaz z nějakého důvodu selhal. Po odeslání dotazu musíte provést kontrolu na chyby, dřív než se pokusíte použít vrácený indentifikátor výsledku. Správný způsob, jak to udělat, je popsán následujícím kódem:
$result = mysql_query("SELECT * FROM tables_priv");
if (!$result) {
    echo mysql_error();
    exit;
}
or
$result = mysql_query("SELECT * FROM tables_priv")
    or die("Bad query: ".mysql_error());

Předcházející | Domů | Další
Získání PHP | Nahoru | Instalace


Instalace

Manuál PHP
Předcházející Další

Kapitola 48. Instalace

Tato část se zabývá častými otázkamni ohledně způsobu instalace PHP. PHP je dostupné pro většinu OS (v podstatě kromě MacOS pře OSX) a většinu webovských serverů.

Při instalaci PHP postupujte podle instrukcí v souboru INSTALL v příslušné distribuci. Uživatelé Windows by si také měli přečíst soubor install.txt. Existuje také soubor s různými fintami pro Windows - najdete ho tady.

1. Unix/Windows: Kde by měl být uložen soubor php.ini?
2. UNIX: Nainstaloval jsem PHP, ale vždy, když načítám dokument, dostanu zprávu 'Document Contains No Data'! O co jde?
3. UNIX: Instaloval jsem PHP z balíčků RPM, ale Apache nezpracovává stránky s PHP! O co tu jde?
4. UNIX: Instaloval jsem PHP 3 z balíčků RPM, ale nekompiluje se s podporou databáze, kterou potřebuji! O co tu jde?
5. UNIX: Přidal jsem do Apache patch pro FrontPage Extension a PHP náhle přestalo pracovat. Je PHP nekompatibilní s FrontPage Extension pro Apache?
6. UNIX/Windows: Nainstaloval jsem PHP, ale při pokusu načíst soubor PHP skriptu do prohlížeče se zobrazí pouze prázdná obrazovka.
7. UNIX/Windows: Nainstaloval jsem PHP a když chci načíst PHP soubor do prohlížeče, objeví se "500 Internal Server Error".
8. Některé operační systémy: Nainstaloval jsem PHP bez chyb, ale nyní, když zkusím spustit Apache, ohlásí se chyby o nedefinovaných symbolech:
[mybox:user /src/php4] root# apachectl configtest
 apachectl: /usr/local/apache/bin/httpd Undefined symbols:
  _compress
  _uncompress
9. Windows: Nainstaloval jsem PHP, ale při načtení stránky do prohlížeče se zobrazí chyba:
cgi error:
 The specified CGI application misbehaved by not
 returning a complete set of HTTP headers.
 The headers it did return are:
10. Windows: Dodržel jsem všechny instrukce, ale PHP a IIS stále odmítají spolupracovat!

1. Unix/Windows: Kde by měl být uložen soubor php.ini?

V UNIXu má být implicitně v adresáři /usr/local/lib. Mnoho lidí to bude chtít při kompilaci změnit pomocí parametru --with-config-file-path. Mohli byste ho, například, nastavit zhruba takto:
--with-config-file-path=/etc
Pak byste zkopírovali soubor php.ini-dist z distribuce do /etc/php.ini a upravili tak, jak chcete.

Pod Windows je soubor php.ini implicintě umístěn v adresáři systému Windows.

2. UNIX: Nainstaloval jsem PHP, ale vždy, když načítám dokument, dostanu zprávu 'Document Contains No Data'! O co jde?

Pravděpobně to znamená, že PHP má nějaký problém a padá. Podívejte se do protokolu chyb, zda se jedná o tento případ a pak zkuste problém reprodukovat malým testem. Pokud víte, jak používat 'gdb', velmi pomůže, když můžete s vaším hlášením chyby poskytnout výpis (backtrace). Vývojáři tak mohou snadněji lokalizovat problém. Používáte-li PHP jako modul do serveru Apache, zkuste něco jako:

  • Zastavte httpd procesy

  • gdb httpd

  • Zastavte httpd procesy

  • > run -X -f /path/to/httpd.conf

  • Potom načtěte do prohlížeče URL, kde se vyskytl problém

  • > run -X -f /path/to/httpd.conf

  • Dostanete-li core dump (PHP spadne), gdb by vás o tom měl informovat

  • napište: bt

  • Získaný výpis (backtrace) byste měli přiložit k hlášení chyby. To by se mělo poslat na http://bugs.php.net/

Pokud váš skript používá funkce pro regulární výrazy (ereg() a další), měli byste se ujistit, že jste zkompilovali PHP a Apache se stejným balíčkem pro regulární výrazy. S PHP a Apachem 1.3.x by se to mělo dít automaticky.

3. UNIX: Instaloval jsem PHP z balíčků RPM, ale Apache nezpracovává stránky s PHP! O co tu jde?

Za předpokladu, že se obojí, jak Apache, tak PHP, instalovalo z balíčků RPM, bude třeba "odkomentovat" nebo přidat do souboru http.conf některé z následujících řádků (nebo všechny):
# Extra Modules
AddModule mod_php.c
AddModule mod_php3.c
AddModule mod_perl.c

# Extra Modules
LoadModule php_module         modules/mod_php.so
LoadModule php3_module        modules/libphp3.so     /* pro PHP 3 */
LoadModule php4_module        modules/libphp4.so     /* pro PHP 4 */
LoadModule perl_module        modules/libperl.so
Přidejte také:
AddType application/x-httpd-php3 .php3    /* pro PHP 3 */
AddType application/x-httpd-php .php      /* pro PHP 4 */
... do globálních vlastností nebo do vlastností virtuální domény (VirtualDomain) by se měla přidat podpora PHP.

4. UNIX: Instaloval jsem PHP 3 z balíčků RPM, ale nekompiluje se s podporou databáze, kterou potřebuji! O co tu jde?

Kvůli tomu, jak se PHP 3 budovalo, není snadné sestavit kompletní flexibilní RPM balíček s PHP. Problém je vyřešen v PHP 4. Pro PHP 3 nyní doporučujeme používat mechanismus popsaný v souboru INSTALL.REDHAT v distribuci PHP. Pokud trváte na použití RPM verze PHP 3, čtěte dál...

RPM pakovače jsou nastaveny na tvorbu RPM balíčků k instalaci bez podpory databází kvůli zjednodušení instalací a proto, že RPM používá adresář /usr/ namísto standardního /usr/local/. Musít sdělit RPM souboru spec, které databáze podporovat a umístění adresáře nejvyšší úrovně databázového serveru.

Tento příklad vysvětluje proces přidání podpory populárního databázového serveru MySQL, pro instalaci PHP jako modulu do Apache.

Všechny tyto informace smaozřejmě mohou být upraveny pro libovolný databázový server, který PHP podporuje. Pro tento příklad budeme předpokládat, že jste instalovali MySQL a Apache plně z balíčků RPM.

  • Nejdříve odstraňte mod_php3 :
    rpm -e mod_php3

  • Potom vezměte zdrojový balíček RPM a spusťte na něm, NE --rebuild
    rpm -Uvh mod_php3-3.0.5-2.src.rpm

  • Upravte soubor /usr/src/redhat/SPECS/mod_php3.spec

    V sekci %build přidejte databázovou podporu, kterou chcete, a nastavte cestu.

    Pro MySQL byste přidali
    --with-mysql=/usr \
    Sekce %build bude vypadat přibližně takto:
    ./configure --prefix=/usr \
    --with-apxs=/usr/sbin/apxs \
    --with-config-file-path=/usr/lib \
    --enable-debug=no \
    --enable-safe-mode \
    --with-exec-dir=/usr/bin \
    --with-mysql=/usr \
    --with-system-regex

  • Poté, co jsou provedeny tyto změny, zkompilujte balíček takto:
    rpm -bb /usr/src/redhat/SPECS/mod_php3.spec

  • Potom balíček nainstalujte:
    rpm -ivh /usr/src/redhat/RPMS/i386/mod_php3-3.0.5-2.i386.rpm

Ujistěte se, že jste restartovali Apache, a nyní již máte PHP 3 s podporou MySQL. Uvědomte si, že je pravděpodobně mnohem jednodušší zkompilovat distribuční balíček tar a držet se instrukcí v souboru INSTALL.REDHAT z distribuce.

5. UNIX: Přidal jsem do Apache patch pro FrontPage Extension a PHP náhle přestalo pracovat. Je PHP nekompatibilní s FrontPage Extension pro Apache?

Ne, PHP pracuje dobře i s FrontPage Extension. Problém je v tom, že FrontPage patch modifikuje některé struktury Apache, na které PHP spoléhá. Překompilování PHP (použitím 'make clean ; make') po instalaci FP patche by mělo problém vyřešit.

6. UNIX/Windows: Nainstaloval jsem PHP, ale při pokusu načíst soubor PHP skriptu do prohlížeče se zobrazí pouze prázdná obrazovka.

V prohlížeči vyberte funkci 'zobrazit zdrojový kód', nejspíš uvidíte zdrojový kód vašeho PHP skriptu. To znamená, že server neposílá skript k interpretaci. Chyba je někde v konfiguraci serveru - raději dvakrát zkontrolujte konfiguraci podle instrukcí k instalaci PHP.

7. UNIX/Windows: Nainstaloval jsem PHP a když chci načíst PHP soubor do prohlížeče, objeví se "500 Internal Server Error".

Při pokusu spustit PHP došlo k nějaké chybě. Abyste viděli detailnější chybovou zprávu, z příkazové řádky, přejděte do adresáře se souborem PHP (pod Windows php.exe) a spusťte php -i. Pokud při běhu PHP dojde k chybě, bude zobrazena odpovídající chybovou zpráva, která vám řekne, co se má dál udělat. Pokud získáte obrazovku plnou HTML kódu (výstup funkce phpinfo()), pak PHP funguje a váš problém může souviset s konfigurací serveru, kterou je pak třeba dobře zkontrolovat.

8. Některé operační systémy: Nainstaloval jsem PHP bez chyb, ale nyní, když zkusím spustit Apache, ohlásí se chyby o nedefinovaných symbolech:
[mybox:user /src/php4] root# apachectl configtest
 apachectl: /usr/local/apache/bin/httpd Undefined symbols:
  _compress
  _uncompress

To aktuálně nemá nic společného s PHP, ale s knihovnami klienta MySQL. Některé potřebují --with-zlib, jiné nikoli. Tímto se zabývá také MySQL FAQ.

9. Windows: Nainstaloval jsem PHP, ale při načtení stránky do prohlížeče se zobrazí chyba:
cgi error:
 The specified CGI application misbehaved by not
 returning a complete set of HTTP headers.
 The headers it did return are:

Tato chybová zpráva znamená, že z PHP nemohou vycházet žádná data. Abyste viděli detailnější chybovou zprávu, z příkazové řádky, přejděte do adresáře se souborem PHP (pod Windows php.exe) a spusťte php -i. Pokud při běhu PHP dojde k chybě, bude zobrazena odpovídající chybovou zpráva, která vám řekne, co se má dál udělat. Pokud získáte obrazovku plnou HTML kódu (výstup funkce phpinfo()), PHP funguje.

Jestliže PHP pracuje v příkazové řádce, zkuste to znovu z prohlížeče. Pokud to stále nefunguje, může to být jedním z těchto důvodů:

  • Nastavení přístupových práv k souboru se skriptem, k php.exe, php4ts.dll, php.ini nebo nějakému rozšíření PHP, které se pokoušíte načíst, je takové, že k nim anonymní internetový uživatel ISUR_<machinename> nemá přístup.

  • Soubor se skriptem neexistuje (nebo případně není tam, kde si myslíte, že je, relativně ke kořenovému adresáři webu). Uvědomte si, že na IIS můžete tuto chybu zachytit zaškrtnutím volby 'check file exists' při nastavování skriptových služeb v Internet Services Manageru. Pokud skript neexistuje, server vrátí chybu 404. Další výhodou je to, že IIS provede na souboru se skriptem všechny potřebné autentikace založené NTLanMan.

10. Windows: Dodržel jsem všechny instrukce, ale PHP a IIS stále odmítají spolupracovat!

Ujistěte se, že každý uživatel, který potřebuje spouštět PHP skripty má práva pro spouštění php.exe! IIS používá anonymního uživatele, který se přidá při instalaci IIS. Tento uživatel potřebuje práva k php.exe. Také každý autentikovaný uživatel bude potřebovat práva na spouštění php.exe. A IIS4 musíte sdělit, že PHP je skriptovací engine.

Předcházející | Domů | Další
Záležitosti databází | Nahoru | Sestavovací (kompilační) problémy


Sestavovací (kompilační) problémy

Manuál PHP
Předcházející Další

Kapitola 49. Sestavovací (kompilační) problémy

Tato sekce shrnuje nejčastější chyby, které se vyskytují při sestavování PHP.

1. Pomocí anonymního přístupu do CVS jsem získal poslední verzi PHP, ale chybí v ní skript "configure"!
2. Mám problém nakonfigurovat PHP tak, aby fungovalo se serverem Apache. Hlásí, že nemůže najít httpd.h, ale ten je přesně tam, kde jsem uvedl, že je!
3. Když spustím "configure", hlásí to, že nemůže najít "include" soubory nebo knihovny pro GD, gdbm a nějaké další balíky!
4. Když se kompiluje soubor language-parser.tab.c, hlásí to chyby, které říkají 'yytname undeclared'.
5. Když spustím "make", zdá se, že běží dobře, ale havaruje, když se pokouší sestavit konečnou aplikaci s hlášením, že nemůže najít nějaké soubory.
6. Při sestavování PHP to hlásí mnoho nedefinovaných referencí.
7. Nepřišel jsem na to, jak sestavit PHP pro Apache 1.3.
8. Postupoval jsem přesně podle instrukcí k instalaci PHP ve verzi jako modul pro Apache na UNIXu, a moje PHP skripty se zobrazují v prohlížeči nebo se je prohlížeč snaží uložit jako soubory.
9. Hlásí to použití --activate-module=src/modules/php4/libphp4.a, ale tento soubor neexistuje; proto jsem to změnil na --activate-module=src/modules/php4/libmodphp4.a a ono to nefunguje? O co jde?
10. Když zkusím sestavit Apache s PHP jakožto statickým modulem pomocí --activate-module=src/modules/php4/libphp4.a, hlásí to, že můj kompilátor nevyhovuje ANSI.
11. Když zkusím sestavit PHP s parametrem --with-apxs, dostanu záhadné chybové zprávy.
12. During 'make', I get errors in microtime, and a lot of 'RUSAGE_' stuff.
13. Chci upgradovat své PHP. Kde najdu tvar řádku ./configure, který byl použit pro sestavení stávající instalace PHP?

1. Pomocí anonymního přístupu do CVS jsem získal poslední verzi PHP, ale chybí v ní skript "configure"!

Musíte mít nainstalovaný balík "GNU autoconf", takže můžete vygenerovat skript "configure" z "configure.in". Po stažení zdrojových souborů z CVS serveru spusťte ./buildconf z nejvyšší adresářové úrovně (pokud nespustíte "configure" s parametrem --enable-maintainer-mode, skript "configure" nebude automaticky aktualizován při změně souboru "configure.in", takže se musíte ujistit, zda jste to udělali ručně poté, co byl "configure.in" změněn. Jedním z příznaků tohoto je nalezení elementů jako @VARIABLE@ v souboru "Makefile" potom, co byl spuštěn "configure" nebo "config.status").

2. Mám problém nakonfigurovat PHP tak, aby fungovalo se serverem Apache. Hlásí, že nemůže najít httpd.h, ale ten je přesně tam, kde jsem uvedl, že je!

Potřebujete sdělit konfiguračnímu/instalačnímu skriptu umístění nejvyšší úrovně zdrojových souborů Apache. To znamená, že specifikujete '--with-apache=/path/to/apache' a ne '--with-apache=/path/to/apache/src'.

3. Když spustím "configure", hlásí to, že nemůže najít "include" soubory nebo knihovny pro GD, gdbm a nějaké další balíky!

Můžete určit, aby skript "configure" hledal hlavičkové soubory a knihovny na nestandardních místech specifikací pomocných příznaků pro C preprocesor a linker, například:
CPPFLAGS=-I/path/to/include LDFLAGS=-L/path/to/library ./configure
Pokud používáte csh (C-shell) jako váš login shell (proč?), bylo by to:
env CPPFLAGS=-I/path/to/include LDFLAGS=-L/path/to/library ./configure

4. Když se kompiluje soubor language-parser.tab.c, hlásí to chyby, které říkají 'yytname undeclared'.

Musíte updatovat vaši verzi programu Bison. Nejnovější verzi najdete na http://www.gnu.org/software/bison/bison.html.

5. Když spustím "make", zdá se, že běží dobře, ale havaruje, když se pokouší sestavit konečnou aplikaci s hlášením, že nemůže najít nějaké soubory.

Některé starší verze programu "make" neukládají korektně zkompilované verze souborů umístěných v adresáři funkcí do téhož adresáře. Zkuste spustit "cp *.o functions" a potom znovu 'make', abyste viděli, zda to pomohlo. Pokud ano, měli byste opravdu nainstalovat nejnovější verzi "GNU make".

6. Při sestavování PHP to hlásí mnoho nedefinovaných referencí.

Podívejte se do řádku, kde je popsáno sestavování a ujistěte se, že byly přidány na konec všechny potřebné knihovny. Často se stává, že chybí '-ldl' a některé knihovny potřebné pro podporu databáze, kterou jste určili.

Pokud sestavujete pro Apache 1.2.x, nezapomněli jste přidat odpovídající informace na řádek EXTRA_LIBS v souboru "configure" a spustit skript pro konfiguraci Apache? Pro více informací se podívejte do souboru INSTALL, který získáte s distribučním balíkem.

Někteří lidé také hlásili, že pokud sestavovali pro Apache, museli přidat '-ldl' těsně za 'libphp4.a'.

7. Nepřišel jsem na to, jak sestavit PHP pro Apache 1.3.

Toto je nyní velmi snadné. Následujte pečlivě tyto kroky:

  • Stáhněte nejnovější distribuci Apache 1.3 z http://www.apache.org/.

  • Rozbalte ji někam, například do /usr/local/src/apache-1.3.

  • Zkompilujte PHP nejdříve spuštěním ./configure --with-apache=/<path>/apache-1.3 (nahraďte <path> aktuální cestou k adresáři apache-1.3).

  • Napište 'make' a potom 'make install' k sestavení PHP a zkopírování potřebných souborů do distribučního stromu Apache.

  • Změňte adresář na /<path>/apache-1.3/src a upravte soubor Configuration. Do souboru přidejte: AddModule modules/php4/libphp4.a.

  • Spusťte './Configure' a potom 'make'.

  • Nyní byste měli míst hotové soubory httpd pro práci s PHP.

Poznámka: : Můžete použít také nový skript ./configure pro Apache. Přečtěte si instrukce v README.configure, který je v distribuci Apache. Nahlédněte také do souboru INSTALL z distribuce PHP.

8. Postupoval jsem přesně podle instrukcí k instalaci PHP ve verzi jako modul pro Apache na UNIXu, a moje PHP skripty se zobrazují v prohlížeči nebo se je prohlížeč snaží uložit jako soubory.

To znamená, že PHP modul není z nějakých důvodů vyvoláván. Dříve, než budete shánět další pomoc, zkontrolujte tři věci:

  • Ujistěte se, že se spouští právě ten httpd, který jste zkompilovali. Zkuste spustit /path/to/binary/httpd -l

    Pokud v seznamu neuvidíte mod_php4.c, potom nespouštíte správnou verzi httpd. Najděte s instalujte správnou verzi.

  • Ujistěte se, že jste přidali správnou specifikaci Mime Type do souborů .confpro Apache. Mělo by tam být: AddType application/x-httpd-php3 .php3 (pro PHP 3)

    nebo AddType application/x-httpd-php .php (pro PHP 4)

    Také se ujistěte, že tento řádek AddType není ukryt uvnitř bloku <Virtualhost> nebo <Directory>, což může zabránit aplikaci pravidla na oblast, kde je umístěn testovací skript.

  • Konečně, implicitní umístění konfiguračních souborů Apache se mezi verzemi Apache 1.2 a 1.3 změnilo. Měli byste ověřit, že soubor, do kterého jste přidali řádek AddType je ten, který je skutečně načítán. Můžete zkusit vložit nějakou příšernou syntaktickou chybu do souboru httpd.conf nebo udělat nějakou jinou změnu tohoto rázu - uvidíte, zda je soubor správně načítán.

9. Hlásí to použití --activate-module=src/modules/php4/libphp4.a, ale tento soubor neexistuje; proto jsem to změnil na --activate-module=src/modules/php4/libmodphp4.a a ono to nefunguje? O co jde?

Uvědomte si, že soubor libphp4.a nemá existovat. Vytváří ho proces serveru Apache!

10. Když zkusím sestavit Apache s PHP jakožto statickým modulem pomocí --activate-module=src/modules/php4/libphp4.a, hlásí to, že můj kompilátor nevyhovuje ANSI.

Toto je zavádějící chybové hlášení, které bylo odstraněno v pozdějších verzích.

11. Když zkusím sestavit PHP s parametrem --with-apxs, dostanu záhadné chybové zprávy.

Je třeba zkontrolovat tři věci. Nejdříve, z důvodu, že když Apache vytváří apxs skript v Perlu, někdy ukončí kompilaci bez odpovídajících proměnných. Najděte skript apxs (zkuste příkaz 'which apxs', někdy bývá v /usr/local/apache/bin/apxs nebo /usr/sbin/apxs). Otevřte ho a zkontrolujte řádky podobné těmto:
my $CFG_CFLAGS_SHLIB  = ' ';          # nahrazeno pomocí Makefile.tmpl
my $CFG_LD_SHLIB      = ' ';          # nahrazeno pomocí Makefile.tmpl
my $CFG_LDFLAGS_SHLIB = ' ';          # nahrazeno pomocí Makefile.tmpl
Pokud vidíte toto, našli jste ten problém. Mohou se tam vyskytovat mezery nebo jiné nekorektní hodnoty, např. 'q()'. Změňte řádky takto:
my $CFG_CFLAGS_SHLIB  = '-fpic -DSHARED_MODULE'; # substituted via Makefile.tmpl
my $CFG_LD_SHLIB      = 'gcc';             # nahrazeno pomocí Makefile.tmpl
my $CFG_LDFLAGS_SHLIB = q(-shared);        # nahrazeno pomocí Makefile.tmpl
Druhý možný problém by měl vyskytovat pouze na Red Hat Linuxu 6.1 a 6.2. Skript apxs v těchto distribucích Red Hat je poškozený. Najděte řádek
my $CFG_LIBEXECDIR    = 'modules';         # nahrazeno pomocí APACI install
Pokud vidíte výše uvedený řádek, nahraďte ho tímto:
my $CFG_LIBEXECDIR    = '/usr/lib/apache'; # nahrazeno pomocí APACI install
Nakonec, když budete přeinstalovávat Apache, zařaďte 'make clean' mezi './configure' a 'make'.

12. During 'make', I get errors in microtime, and a lot of 'RUSAGE_' stuff.

During the 'make' portion of installation, if you encounter problems that look similar to this:
microtime.c: In function `php_if_getrusage':
    microtime.c:94: storage size of `usg' isn't known
    microtime.c:97: `RUSAGE_SELF' undeclared (first use in this function)
    microtime.c:97: (Each undeclared identifier is reported only once
    microtime.c:97: for each function it appears in.)
    microtime.c:103: `RUSAGE_CHILDREN' undeclared (first use in this function)
    make[3]: *** [microtime.lo] Error 1
    make[3]: Leaving directory `/home/master/php-4.0.1/ext/standard'
    make[2]: *** [all-recursive] Error 1
    make[2]: Leaving directory `/home/master/php-4.0.1/ext/standard'
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory `/home/master/php-4.0.1/ext'
    make: *** [all-recursive] Error 1

Váš systém je poškozen. Musíte opravit soubory v /usr/include instalací balíku glibc-devel, který patří k vašemu glibc. Nemá to absolutně nic společného s PHP. Důkaz získáte tímto jednoduchým testem:
$ cat >test.c <<X
    #include <sys/resource.h>
    X
    $ gcc -E test.c >/dev/null
Pokud se objeví chyby, ve vašich hlavičkových souborech panuje chaos.

13. Chci upgradovat své PHP. Kde najdu tvar řádku ./configure, který byl použit pro sestavení stávající instalace PHP?

Když se podíváte do souboru config.nice ve zdrojovém stromu současné instalace PHP. Není-li k dispozici, jednoduše spusťte skript

      Nahoře ve výpisu najdete řádek ./configure, který byl
      použit při sestavování stávající instalace.

Předcházející | Domů | Další
Instalace | Nahoru | Používání PHP


Používání PHP

Manuál PHP
Předcházející Další

Kapitola 50. Používání PHP

Tato část shrnuje nejčastější chyby, se kterými se můžete setkat při psaní PHP skriptů.

1. Chtěl bych napsat generický PHP skript, který by uměl zpracovat data z jakéhokoli formuláře. Jak se dozvím, které proměnné metody POST jsou k dispozici?
2. Potřebuji převést všechny apostrofy (') na zpětná lomítka následovaná apostrofy. Jak se to dá udělat pomocí regulárního výrazu?
3. Když napíšu následující kód, výstup se tiskne v nesprávném pořadí:
function myfunc($argument)
{
    echo $argument + 10;
}
$variable = 10;
echo "myfunc($variable) = " . myfunc($variable);
what's going on?
4. Hej, co se stalo s mými konci řádků?
<pre>
<?php echo "Tohle by měl být první řádek."; ?>
<?php echo "Tohle by se mělo ukázat na novém řádku."; ?>
</pre>
5. Zobrazila se mi zpráva 'Warning: Cannot send session cookie - headers already sent...' nebo 'Cannot add header information - headers already sent...'.
6. Potřebuji přímo přistupovat k hlavičce požadavku. Jak to udělat?
7. Když zkusím autentikaci s IIS, dostanu 'No Input file specified'.
8. Můj PHP skript pracuje na IE a Lynxu, ale v Netscapu část výstupu mizí. Když si zapnu "Zobrazit zdrojový kód", v IE vidím obsah, v Netscapu nikoliv.
9. Jaké jsou předpoklady míchání XML a PHP? Stěžuje si to na moje <?xml> tagy!
10. Jak mohu použít PHP s FrontPagem nebo jiným HTML editorem, který trvá na odsunutí mého kódu?
11. Kde najdi úplný seznam dostupných přednastavených proměnných, a proč to není zdokumentováno v dokumentaci PHP?
12. Zkouším přistupovat k jedné ze standardních CGI proměnných (jako je $DOCUMENT_ROOT nebo $HTTP_REFERER) v uživatelsky definované funkci, a nemůže ji to najít. Co je špatně?

1. Chtěl bych napsat generický PHP skript, který by uměl zpracovat data z jakéhokoli formuláře. Jak se dozvím, které proměnné metody POST jsou k dispozici?

Ujistěte se, že máte v souboru php.ini zapnuto track_vars Od PHP 4.0.3 je tato možnost vždy zapnuta. Pokud tomu tak je, vytvoří se nějaká asociativní pole, z nichž nejdůležitější je $HTTP_POST_VARS. Takže pro psaní generického skriptu pro obsluhu proměnných metody POST budete potřebovat přibližně toto:
foreach ($HTTP_POST_VARS as $var => $value) {
    echo "$var = $value<br>\n";
}

2. Potřebuji převést všechny apostrofy (') na zpětná lomítka následovaná apostrofy. Jak se to dá udělat pomocí regulárního výrazu?

Nejdříve se podívejte na funkci addslashes(). Dělá přesně to, co potřebujete. Měli byste se také podívat na direktivu magic_quotes_gpc v souboru php.ini.

3. Když napíšu následující kód, výstup se tiskne v nesprávném pořadí:
function myfunc($argument)
{
    echo $argument + 10;
}
$variable = 10;
echo "myfunc($variable) = " . myfunc($variable);
what's going on?

Pro použití výsledků vaší funkce ve výrazu (jako je spojení s jiným řetězcem v příkladu výše), musíte hodnotu vracet (pomocí vracet), ne tisknout() (pomocí echo()).

4. Hej, co se stalo s mými konci řádků?
<pre>
<?php echo "Tohle by měl být první řádek."; ?>
<?php echo "Tohle by se mělo ukázat na novém řádku."; ?>
</pre>

V PHP se blok kódu zakončuje buď "?>", nebo "?>\n" (kde \n znamená nový řádek). Takže ve výše uvedeném příkladu budou vypsané věty na jediném řádku, protože PHP vynechává konce řádků za koncem bloku. To znamená, že musíte přidávat zvláštní konce řádků za každý blok PHP kódu, aby se vytisklo odřádkování jediné.

Proč to PHP dělá? Při formátování normálního HTML to obvykle zjednodušuje život, protože nechcete konce řádků, nýbrž chcete vytvořit extrémně dlouhé řádky nebo jinak znečitelnit zdrojový kód.

5. Zobrazila se mi zpráva 'Warning: Cannot send session cookie - headers already sent...' nebo 'Cannot add header information - headers already sent...'.

Funkce header(), set_cookie() a funkce session musí do výstupu přidat hlavičky. Hlavičky je možno posílat pouze před vlastním obsahem. Funkce to udělají, pokud PHP běží jako modul Apache. Následující kus kódu zobrazí všechny hlavičky v požadavku:
$headers = getallheaders();
foreach ($headers as $name => $content) {
    echo "headers[$name] = $content<br>\n";
}

6. Potřebuji přímo přistupovat k hlavičce požadavku. Jak to udělat?

Funkce getallheaders() to udělá, pokud PHP běží jako modul do Apache. Následující kus kódu zobrazí všechny hlavičky v požadavku:
$headers = getallheaders();
foreach ($headers as $name => $content) {
    echo "headers[$name] = $content<br>\n";
}

7. Když zkusím autentikaci s IIS, dostanu 'No Input file specified'.

Bezpečnostní model IIS je s tím na štíru. Je to problém společný všem CGI programům běžícím pod IIS. Řešením je vytvořit obyčejný HTML soubor (neparsovaný PHP) jako vstupní stránku do autentikovaného adresáře. Potom se použije META tag k přesměrování na PHP stránku nebo odkaz k ručnímu přechodu. PHP pak autentikaci zpracuje správně. S modulem ISAPI toto není problémem. Jiných NT webovských serverů se problém netýká. Více informací - viz http://support.microsoft.com/support/kb/articles/q160/4/22.asp.

8. Můj PHP skript pracuje na IE a Lynxu, ale v Netscapu část výstupu mizí. Když si zapnu "Zobrazit zdrojový kód", v IE vidím obsah, v Netscapu nikoliv.

Netscape je striktnější ohledně HTML tagů (např. tabulek) něž IE. Kontrola HTML výstupu pomocí HTML validátoru, jako je validator.w3.org, může být nápomocna. Například chybějící </table> způsobuje výše uvedený problém.

IE i Lynx také ignorují jakékoliv nulové (\0) znaky v HTML proudu, Netscape nikoli. Nejlepší cestou k ověření je zkompilovat verzi PHP pro příkazovou řádku (známou jako CGI verze) a spustit skript z příkazové řádky. Na *NIXech to přesměrujte do od -c a hledejte znaky \0. Pod Windows musíte najít editor nebo jiný program, který umožňuje prohlížení binárních souborů. Když Netscape uvidí v souboru nulový znak, typicky nic dalšího nezobrazí, ačkoli IE i Lynx ano.

9. Jaké jsou předpoklady míchání XML a PHP? Stěžuje si to na moje <?xml> tagy!

Musíte vypnout krátké tagy v souboru php.ini nastavením short_tags na 0 nebo použitím odpovídající direktivy Apache. Můžete také použít sekci <File> k selektivnímu nastavení.

10. Jak mohu použít PHP s FrontPagem nebo jiným HTML editorem, který trvá na odsunutí mého kódu?

Jedním z nejjednodušších způsobů je povolit použití ASP tagů v PHP kódu. To umožní používat oddělovače v ASP stylu (<% a %>). Některé populární HTML editory s pracují (v tuto chvíli) inteligentněji. K zapnutí ASP tagů musíte v souboru php.ini nastavit proměnnou asp_tags nebo použít příslušnou direktivu Apache.

11. Kde najdi úplný seznam dostupných přednastavených proměnných, a proč to není zdokumentováno v dokumentaci PHP?

Nejlepší metodou je vložit do stránky <?php phpinfo(); ?> a načíst to do prohlížeče. Zobrazí se informace všeho druhu o nainstalovaném PHP, včetně seznamu proměnných prostředí i speciálních proměnných nastavovaných HTTP serverem. Tento seznam opravdu nemůže být zdokumentován v dokumentaci k PHP, protže se liší server od serveru.

12. Zkouším přistupovat k jedné ze standardních CGI proměnných (jako je $DOCUMENT_ROOT nebo $HTTP_REFERER) v uživatelsky definované funkci, a nemůže ji to najít. Co je špatně?

Proměnné prostředí jsou normální globální proměnné, takže je musíte buď deklarovat ve funkci jako globální proměnné (například použitím "global $DOCUMENT_ROOT;") nebo použít pole globálních proměnných (např. "$GLOBALS["DOCUMENT_ROOT"]").

Předcházející | Domů | Další
Sestavovací (kompilační) problémy | Nahoru | PHP a HTML


PHP a HTML

Manuál PHP
Předcházející Další

Kapitola 51. PHP a HTML

PHP a HTML mají hodně společného: PHP generuje HTML, a HTML má informace, které budou poslány PHP.

1. Jaké zakódování/dekódování potřebuji, když posílám hodnotu přes formulář? A v URL?
2. Zkouším použít tag <input type="image">, ale proměnné $foo.x a $foo.y nejsou dostupné. Kde jsou?
3. Jak vytvořím pole ("array") v HTML formuláři?
4. Jak získám všechna data z HTML elementu pro vícenásobný výběr?

1. Jaké zakódování/dekódování potřebuji, když posílám hodnotu přes formulář? A v URL?

Je více situací, pro které je zakódování důležité. Za předpokladu, že máte string $data, který obsahuje řetězec, jenž máte nezakódovaný a chcete ho poslat, je třeba se zabývat těmito relevantními problémy:

  • HTML interpretace. Pokud specifikujete náhodný (obecný) řetězec, musíte ho dát do uvozovek a celý ho zpracovat funkcí htmlspecialchars() (aby se odstranily/převedly speciální znaky jazyka HTML).

  • URL: sestává z několika částí. Pokud chcete, aby vaše data byla interpretována jako jedna položka, musíte je zakódovat pomocí urlencode().

Příklad 51-1. Skrytý element HTML formuláře

<?php
    echo "<input type=hidden value=\"" . htmlspecialchars($data) . "\">\n";
?>

Poznámka: Je chybou použít urlencode() pro $data, protože prohlížeče samy zajišťují zpracování dat shodné s funkcí urlencode(). Všechny oblíbené prohlížeče to dělají korektně. Uvědomte si, že toto není závislé na použité metodě (např. GET nebo POST). Všimnete si toho však pouze v případě GET, protože požadavky POST jsou obvykle skryté.

Příklad 51-2. Data k editaci uživatelem

<?php
    echo "<textarea name=mydata>\n";
    echo htmlspecialchars($data)."\n";
    echo "</textarea>";
?>

Poznámka: Data jsou v prohlížeči zobrazena tak, jak bylo zamýšleno, protože prohlížeč bude správně interpretovat speciální symboly.

Po odeslání, ať již pomocí GET nebo POST, data budou zakódována způsobem urlencode pro přenos a následně přímo dekódována v PHP. Takže vůbec nepotřebujete provádět žádné zakódování/dekódování ručně, vše je prováděno automaticky.

Příklad 51-3. Uvnitř URL

<?php
    echo "<a href=\"" . htmlspecialchars("/nexpage.php?stage=23&data=" .
        urlencode($data)) . "\">\n";
?>

Poznámka: V tomto případě již opravdu vytváříte GET požadavek, proto je nutné data kódovat ručně pomocí urlencode().

Poznámka: Musíte také použít htmlspecialchars() na celý URL, protože URL je zde hodnotou HTML atributu. V tomto případě prohlížeč nejdříve odstraní speciální znaky a pak zpracuje URL. PHP správně pochopí posílaný URL, protože jste data zakódovali pomocí urlencoded().

Můžete se všimnout, že symbol & v URL je nahrazen &amp;. Přestože to většina prohlížečů opraví. pokud na to zapomenete, není to vždy možné. Takže pokud váš URL není dynamický, musíte použít htmlspecialchars().

2. Zkouším použít tag <input type="image">, ale proměnné $foo.x a $foo.y nejsou dostupné. Kde jsou?

Když odesíláte formulář, lze namísto standardního tlačítka použít obrázek pomocí tagu jako
<input type="image" src="image.gif" name="foo">
Když uživatel klikne někde na obrázku, příslušný formulář se odešle na server s dvěma proměnnými navíc: foo.x a foo.y.

Protože $foo.x a $foo.y jsou v PHP neplatné názvy proměnných, jsou automaticky převedeny na $foo_x a $foo_y. Tzn. tečky jsou nahrazeny podtržítky.

3. Jak vytvořím pole ("array") v HTML formuláři?

Aby výsledky odeslání vašeho formuláře byly umístěny v poli (array), nazvěte elementy <input>, <select> nebo <textarea> tímto způsobem:
<input name="MyArray[]">
<input name="MyArray[]">
<input name="MyArray[]">
<input name="MyArray[]">
Všimněte si hranatých závorek po názvu proměnné, to je to, co z toho dělá pole. Můžete seskupovat elementy do různých polí spojením stejného jména s různými elementy:
<input name="MyArray[]">
<input name="MyArray[]">
<input name="MyOtherArray[]">
<input name="MyOtherArray[]">
Toto produkuje dvě pole, MyArray a MyOtherArray, která budou zaslána PHP skriptu. Je také možné dát do polí specifické klíče:
<input name="AnotherArray[]">
<input name="AnotherArray[]">
<input name="AnotherArray[email]">
<input name="AnotherArray[phone]">
Pole AnotherArray bude nyní obsahovat klíče 0, 1, email a phone.

Poznámka: Specifikace klíců polí je v HTML nepovinné. Pokud klíče nespecifikujete, pole bude vyplněno podle pořadí elementů ve formuláři. Náš první příklad obsahuje klíče 0, 1, 2 a 3.

Viz také Funkce pro práci s poli a Proměnné z vnějšku PHP.

4. Jak získám všechna data z HTML elementu pro vícenásobný výběr?

Tag pro vícenásobný výběr v HTML příkazu umožňuje uživatelům vybrat více položej ze seznamu. Tyto položky se posílají do handleru pro formulář. Problém je v tom, že se zpracovávají pod stejným jménem. Například:
<select name="var" multiple>
Každá vybraná možnost přijde do handleru akce jako:
var=option1
var=option2
var=option3
Každá volba tedy přepíše předchozí obsah proměnné $var Řešením je použít "pole vytvořené v elementu formuláře". Mělo by se použít toto:
<select name="var[]" multiple>
Výše uvedený kód říká PHP, že má proměnnou $var zpracovat jako pole a každé přiřazení hodnoty do var[] znamená přidání prvku do pole. První položka se tedy stane prvkem $var[0], další $var[1] atd. Funkci count() lze použít k určení, kolik možností bylo vybráno, a v případě potřeby lze seřadit pole funkcí sort().

Uvědomte si, že pokud používáte JavaScript, může přidání [] do názvu elementu způsobit problémy při pokusu odkazovat element jeho jménem. Tehdy použijte číselnou identifikaci elementu, nebo název proměnné uzavřete do apostrofů a použijte ho jako indexaci do pole elementů, například:
variable = documents.forms[0].elements['var[]'];

Předcházející | Domů | Další
Používání PHP | Nahoru | PHP a COM


PHP a COM

Manuál PHP
Předcházející Další

Kapitola 52. PHP a COM

PHP lze na platformách Win32 použít k přístupu k objektům COM a DCOM.

1. Zkompiloval jsem knihovnu DLL k nějakým výpočtům. Existuje způsob, jak tuto knihovnu spustit pod PHP?
2. Co znamená 'Unsupported variant type: xxxx (0xxxxx)'?
3. Je možné v PHP manipulovat vizuálními objekty?
4. Mohu ukládat COM objekty do session?
5. Jak mohu zachycovat chyby COM?
6. Mohu generovat knihovny DLL z PHP skriptů, podobně jako v Perlu?
7. Co znamená 'Unable to obtain IDispatch interface for CLSID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}'?
8. Jak lze spustit objekt COM ze vzdáleného serveru?
9. Zobrazilo se 'DCOM is disabled in C:\path...\scriptname.php on line 6', co mám dělat?
10. Lze načíst objekt ActiveX na stránce, resp. s ním manipulovat, pomocí PHP?
11. Je možné získat běžící instanci komponenty?
12. Existuje způsob, jak obsloužit událost odeslanou z objektu COM?
13. Mám problémy, když se pokouším vyvolat metodu objektu COM, která vystavuje více než jeden interface. Co mám dělat?
14. Když PHP pracuje s COM, jak je to s COM+?
15. Jestliže může PHP manipulovat s objekty COM, lze si představit použití MTS ke správě prostředků komponent společně s PHP?

1. Zkompiloval jsem knihovnu DLL k nějakým výpočtům. Existuje způsob, jak tuto knihovnu spustit pod PHP?

Pokud je to jednoduchá DLL knihovna, zatím ji není možné spustit z PHP. Pokud však tato knihovna obsahuje COM server, můžete k ní přistupovat, pokud implementuje interface IDispatch.

2. Co znamená 'Unsupported variant type: xxxx (0xxxxx)'?

Existují tucty typů VARIANT a jejich kombinací. Většina z nich je již podporována, ale několik z nich teprve musí být implementováno. Pole nejsou podporována plně. Mezi PHP a COM lze vyměňovat pouze jednorozměrná indexovaná pole. Pokud najdete jiné typy, které nejsou podporovány, ohlašte je prosím jako chybu - bug (pokud již nebyly ohlášeny) a poskytněte o nich tolik informací, kolik můžete.

3. Je možné v PHP manipulovat vizuálními objekty?

Obecně je, ale protože PHP se nejčastěji používá jako webovský skriptovací jazyk, běží v prostředí WWW serveru, a proto se vizuální objekty nezobrazují na ploše displeje serveru. Pokud používáte PHP pro aplikační skriptování, např. společně s PHP-GTK, neexistuje omezení přístupu a manipulace s vizuálními objekty pomocí COM.

4. Mohu ukládat COM objekty do session?

Nemůžete. S instancemi COM se nakládá jako s prostředky a proto jsou k dispozici pouze v kontextu jediného skriptu.

5. Jak mohu zachycovat chyby COM?

Momentálně není možné zachycovat chyby COM kromě způsobů poskytovaných samotným PHP (@, track_errors, ...), nicméně přemýšlíme o způsobu, jak to implementovat.

6. Mohu generovat knihovny DLL z PHP skriptů, podobně jako v Perlu?

Ne, v PHP bohužel není takový nástroj k dispozici.

7. Co znamená 'Unable to obtain IDispatch interface for CLSID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}'?

Tato chyba může mít více příčin:

  • hodnota CLSID je chybná

  • chybí požadovaná DLL knihovna

  • požadovaná komponenta neimplementuje interface IDispatch

8. Jak lze spustit objekt COM ze vzdáleného serveru?

Přesně tak, jak spouštíte místní objekty. Musíte pouze použít IP adresu vzdáleného stroje jako druhý parametr konstruktoru COM.

Ujistěte se, že je nastaveno com.allow_dcom=true v souboru php.ini.

9. Zobrazilo se 'DCOM is disabled in C:\path...\scriptname.php on line 6', co mám dělat?

Upravte soubor php.ini - nastavte tam com.allow_dcom=true.

10. Lze načíst objekt ActiveX na stránce, resp. s ním manipulovat, pomocí PHP?

To nemá s PHP nic společného. Objekty ActiveX se načítají na straně klienta, pokud jsou vyžádány HTML dokumentem. Nemá to žádnou souvislost s PHP skriptem a proto není možná žádná přímá interakce na straně serveru.

11. Je možné získat běžící instanci komponenty?

Je to možné pomocí "monikerů". Pokud chcete získat více referencí na tutéž instanci, můžete vytvořit tuto instanci tímto způsobem:

$word = new COM("C:\docs\word.doc");

Toto vytvoří novou instanci, pokud není k dispozici žádná běžící instance, resp. vrátí handle na běžící instanci.

12. Existuje způsob, jak obsloužit událost odeslanou z objektu COM?

Zatím ne.

13. Mám problémy, když se pokouším vyvolat metodu objektu COM, která vystavuje více než jeden interface. Co mám dělat?

Odpověď je stejně tak jednoduchá, jako neuspokojivá. Nelze to říci přesně, ale asi nemůžete dělat nic. Pokud má někdo specifické informace o tomto problému, ať laskavě napíše sem.

14. Když PHP pracuje s COM, jak je to s COM+?

COM+ rozšiřuje COM rámec pro správu komponent přes MTS a MSMQ, ale není to nic zvláštního na to, aby PHP muselo takové komponenty podporovat.

15. Jestliže může PHP manipulovat s objekty COM, lze si představit použití MTS ke správě prostředků komponent společně s PHP?

PHP samotné nemůže zatím obsluhovat transakce. Proto když nastane chyba, není iniciován žádný rollback. Pokud používáte komponenty, které podporují transakce, budete muset implementovat vlastní mechanismus správy transakcí.

Předcházející | Domů | Další
PHP a HTML | Nahoru | PHP a jiné jazyky


PHP a jiné jazyky

Manuál PHP
Předcházející Další

Kapitola 53. PHP a jiné jazyky

PHP je nejlepší jazyk pro webové programování, ale co jiné jazyky?

1. PHP vs. ASP?
2. Existuje konvertot z ASP do PHP?
3. PHP vs. Cold Fusion?
4. PHP vs. Perl?

1. PHP vs. ASP?

ASP ve skutečnosti není jazyk jako takový, je to zkratka pro Active Server Pages, jazyky nyní používanými k programování ASP jsou Visual Basic Script a JScript. Největší nevýhodou ASP je to, že se jedná o proprietární systém, který je nativně používán pouze na serveru Microsoft Internet Information Server (IIS). To omezuje jeho dostupnost na servery založené na Win32. Existuje několik projektů, které umožňují běh ASP v jiných prostředích a serverech: InstantASP od Halcyon (komerční), Chili!Soft ASP od Chili!Soft (komerční) a OpenASP od ActiveScripting.org (free). O ASP se tvrdí, že je pomalejší a těžkopádnější, a stejně tak i méně stabilní. Z výhod ASP lze uvést to, že primárně používá VBScript, který je poměrně snadno uchopitelný, pokud již víte, jak programovat ve Visual Basicu. Podpora ASP je také standardně zapnuta na IIS, takže se snadno spustí a běží. Komponenty zabudované v ASP jsou opravdu omezené, takže pokud potřebujete použít "pokročilé" prvky, jako interakce s FTP servery, musíte si koupit doplňující komponenty.

2. Existuje konvertot z ASP do PHP?

Ano, jedním z nejčastěji zmiňovaných je asp2php.

3. PHP vs. Cold Fusion?

O PHP se často tvrdí, že je rychlejší a efektivnější pro složité programové úlohy a zkoušení nových myšlenek. PHP je obecně zmiňováno jako stabilnější a méně náročné na systémové prostředky. Cold Fusion má lepší zpracování chyb, databázovou abstrakci a parsování dat, ačkoliv databázová abstrakce je addressed in PHP 4. Jinou věcí, která je uváděna jako silný nástroj Cold Fusion, je jeho výborný vyhledávací engine, avšak s tím, že vyhledávací engine není něco, co by mělo být součástí skriptovacího jazyka pro web. PHP běží na většině existujících platforem; Cold Fusion je k dispozici pouze na Win32, Solarisu, Linuxu a HP/UX. Cold Fusion má dobré IDE a je obecně jednodušší pro začátky, zatímco PHP vyžaduje více programátorských znalostí. Produkt Cold Fusion je navržen s ohledem na neprogramátory, PHP je naopak zaměřeno na programátory.

Velký souhrn na toto téma od Michaela J. Sheldona bylo posláno do mailové konfernce PHP. Kopii najdete ¨zde.

4. PHP vs. Perl?

Největší výhodou PHP oproti Perlu je, že PHP bylo navrženo pro skriptování pro web, kdežto cílem Perlu bylo dělat mnohem víc věcí, a může proto být velmi komplikovaný. Flexibilita/složitost Perlu usnadňuje napsání kódu, který bude pro jiného autora těžko čitelný. PHP má méně zmatečný a striktnější formát beze ztráty flexibility. PHP je oproti Perlu jednodušší integrovat do existujícího HTML kódu. PHP obsahuje mnoho z "dobré" funkcionality Perlu: příkazy, syntaxi apod., bez komplikovanosti, kterou může Perl přinést. Perl je dobře vyzkoušený a "opravdový jazyk", byl k dispozici již na konci 80. let, ale PHP rychle dospívá.

Předcházející | Domů | Další
PHP a COM | Nahoru | Přechod z PHP 2 na PHP 3


Přechod z PHP 2 na PHP 3

Manuál PHP
Předcházející Další

Kapitola 54. Přechod z PHP 2 na PHP 3

PHP má již za sebou dlouhou historii: Legendární PHP 1.0, PHP/FI, PHP 3.0 a PHP 4.0.

1. Přechod z PHP 2 na PHP 3?

1. Přechod z PHP 2 na PHP 3?

PHP/FI 2.0 již není podporováno. Podívejte se prosím do odpovídající části manuálu, kde najdete informace o přechodu z PHP/FI 2.0.

Pokud stále používáte PHP 2, vřele vám doporučujeme upgradovat přímo na PHP 4.

Předcházející | Domů | Další
PHP a jiné jazyky | Nahoru | Přechod z PHP 3 na PHP 4


Přechod z PHP 3 na PHP 4

Manuál PHP
Předcházející Další

Kapitola 55. Přechod z PHP 3 na PHP 4

PHP má již za sebou dlouhou historii: Legendární PHP 1.0, PHP/FI, PHP 3.0 a PHP 4.0.

1. Přechod z PHP3 na PHP4
2. Nekompatibilní funkce?

1. Přechod z PHP3 na PHP4

PHP 4 bylo navrženo tak, aby bylo tak kompatibilní se staršími verzemi, jak je to jen možné, a přitom se ztratila troška funkčnosti. Pokud jste opravdu nejistí ohledně kompatibility, měli byste nainstalovat PHP 4 do testovacího prostředí a spouštět skripty tam.

Viz také příslušný dodatek tohoto manuálu.

2. Nekompatibilní funkce?

Přestože je PHP 4 kompletně přepsaný PHP engine, je jen velmi málo funkcí, která se změnily a to pouze ty exotičtější.

Předcházející | Domů | Další
Přechod z PHP 2 na PHP 3 | Nahoru | Ostatní otázky


Ostatní otázky

Manuál PHP
Předcházející Další

Kapitola 56. Ostatní otázky

Mohou existovat otázky, které nemůžeme umístit do žádné jiné kategorie. Najdete je zde.

1. Mohu s manuály komprimovanými pomocí bz2 pracovat ve Windows?

1. Mohu s manuály komprimovanými pomocí bz2 pracovat ve Windows?

Pokud nemáte archivační nástroj pro práci se soubory bz2, stáhněte si nástroj pro příkazovou řádku od RedHatu (viz níže).

Pokud byste nechtěli používat nástroj pro příkazovou řádku, můžete zkusit free software Stuffit Expander, UltimateZip, 7-Zip nebo Quick Zip. Máte-li WinRAR nebo Power Archiver, můžete s ním také snadno dekomprimovat bz2 soubory. Pokud používáte Windows Commander, plugin pro bz2 je k dispozici zdarma přímo na stránce programu Windows Commander.

Nástroj příkazové řádky bzip2 od firmy Redhat:

Uživatelé Win2k SP2 ať si stáhnou nejnovější verzi 1.0.2, uživatelé ostatních systémů Windows by si měli stáhnout verzi 1.00. Po stažení přejmenujte spustitelný soubor na bzip2.exe. Je výhodné přesunout ho do adresáře v nastavení cest, např. C:\Windows (kde C představuje disk, kde jsou nainstalovány Windows).

Pozn.: "lang" představuje váš jazyk a "x" zvolený formát, např. pdf. K rozbalení souboru php_manual_lang.x.bz2 postupujte podle těchto kroků:

  • otevřte okno příkazové řádky

  • přejděte do složky, kde je uložen stažený soubor php_manual_lang.x.bz2

  • spusťte bzip2 -d php_manual_lang.x.bz2, rozbalí php_manual_lang.x do téže složky

V případě, že jste stáhli php_manual_lang.tar.bz2 obsahující v sobě více HTML souborů, je procedura stejná. Jediný rozdíl je ten, že obdržíte soubor php_manual_lang.tar. O formátu tar je známo, že ho lze zpracovat běžnými archivačními programy na Windows, jako je WinZip.

Předcházející | Domů | Další
Přechod z PHP 3 na PHP 4 | Nahoru | Dodatky


Dodatky

Manuál PHP
Předcházející Další

IX. Dodatky

Obsah
A. Historie PHP a souvisejících projektů
B. Migrating from PHP 4 to PHP 5
C. Přechod z PHP 3 na PHP 4
D. Přechod z PHP/FI 2 na PHP 3
E. Ladění (debugging) PHP
F. Extending PHP 3
G. Seznam aliasů funkcí
H. Seznam vyhrazených slov
I. List of Resource Types
J. List of Supported Protocols/Wrappers
K. List of Available Filters
L. List of Supported Socket Transports
M. PHP type comparison tables
N. List of Parser Tokens
O. O tomto manuálu
P. Open Publication License
Q. Rejstřík funkcí
R. Co zde chybí

Předcházející | Domů | Další
Ostatní otázky |  | Historie PHP a souvisejících projektů


Historie PHP a souvisejících projektů

Manuál PHP
Předcházející Další

Příloha A. Historie PHP a souvisejících projektů

Obsah
Historie PHP
Historie projektů souvisejících s PHP
Knihy o PHP
Ostatní publikace o PHP

PHP urazilo v posledních několika málo letech dlouhou cestu. Růst v jeden z nejprominentnějších jazyků ovládajích Web nebyl snadný. Ti z vás, kdo máte zájem dozvědět se ve zkratce, jak PHP vyrostlo do dnešní podoby, čtěte dále.

Historie PHP

PHP/FI

PHP je nástupcem staršího produktu, nazvaného PHP/FI. PHP/FI vytvořil Rasmus Lerdorf v roce 1995, na počátku jako jednoduchou sadu skriptů v jazyce Perl pro zpracování záznamů o přístupech k jeho webu. Tuto sadu nazval 'Personal Home Page Tools'. Protože byla třeba větší funkčnost, napsal Rasmus mnohem rozsáhlejší implementaci v C, která byla schopna komunikovat s databázemi aumožňovala uživatelům vyvíjet jednoduché dynamické aplikace pro Web. Rasmus se rozhodl uvolnit zdrojový kód PHP/FI pro všechny, takže kdokoli ho může používat, stejně jako opravovat chyby a vylepšovat kód.

PHP/FI, což znamená Personal Home Page / Forms Interpreter, obsahovalo něco ze základní funkcionality PHP, jak ho známe dnes. Mělo proměnné perlovského typu, automatickou interpretaci formulářových proměnných a syntaxi vloženou do HTML. Syntaxe samotná byla podobná jazyku Perl, přestože mnohem omezenější, jednodušší a v něčem nekonzistentní.

V roce 1997 se PHP/FI 2.0, druhá implementace psaná v C, stala kultovní záležitostí pro (odhadem) tisíce uživatelů po celém světě, a s přibližně 50.000 doménami oznamujícími nainstalované PHP/FI, což čítalo zhruba 1 % všech domén na Internetu. I když do projektu začalo svými kusy kódu přispívat více lidí, stále to byl velký projekt jednoho muže.

PHP/FI 2.0 bylo oficiálně uvolněno až v listopadu 1997, poté co strávilo většinu svého života v betaverzích. Krátce nato bylo následováno první alfaverzí PHP 3.0.

PHP 3

PHP 3.0 byla první verze, která se velmi blížila takovému PHP, jak ho známe dnes. Vytvořili ho Andi Gutmans a Zeev Suraski v roce 1997 jako kompletně přepsaný celek, poté co shledali PHP/FI 2.0 výrazně "poddimenzované" pro vývoj svých aplikací pro e-komerci. Ve snaze spolupracovat a zahájit budování nad existující uživatelskou základnou PHP/FI, rozhodli se Andi, Rasmus a Zeev pracovat společně a prohlásit PHP 3.0 za oficiálního nástupce PHP/FI 2.0, a vývoj PHP/FI 2.0 byl v podstatě zastaven.

Jednou z nejsilnějších zbraní PHP 3.0 byly jeho obrovské možnosti rozšíření. K poskytnutí pevné infrastruktury pro mnoho různých databází, protokolů a API koncovým uživatelům, přilákaly možnosti rozšíření PHP 3.0 také tucty vývojářů, kteří se připojili a vytvořili nové rozšiřující moduly. Toto byl nesporně klíč k obrovskému úspěchu PHP 3.0. Jiným klíčovým prvkem v PHP 3.0 byla podpora objektově orientované syntaxe a mnohem silnější a konzistentnější syntaxe jazyka.

Nový jazyk byl uvolněn pod novým názvem, který odstranil implikaci omezeného osobního použití, kterou neslo označení PHP/FI 2.0. Byl nazván pouze 'PHP', což je rekurzívní akronym - PHP: Hypertext Preprocessor.

Na konci roku 1998 vyrostlo PHP do rozsahu instalací v řádu (odhadem) desítek tisíc uživatelů a stovek tisíc Webů. V době svého vrcholu bylo PHP 3.0 instalováno na přibližně 10 % všech WWW serverů na Internetu.

PHP 3.0 bylo oficiálně uvolněno v červnu 1998, poté co strávilo cca 9 měsíců ve veřejném testování.

PHP 4

V zimě 1998, krátce po oficiálním uvolnění PHP 3.0, začali Andi Gutmans a Zeev Suraski pracovat na přespání jádra PHP. Cílem návrhu bylo zvýšit výkon pro složité aplikace a zlepšit modularitu kódové báze PHP. Takové aplikace byly schopny pracovat s PHP 3.0 (díky novým možnostem a podpoře široké škály databází a API od jiných tvůrců), ale PHP 3.0 nebylo navrženo pro efektivní práci tak náročných aplikací.

Nový engine, nazvaný 'Zend Engine' (sestaven z jejich křestních jmen, Zeev a Andi), úspěšně splnil cíle návrhu a byl uveden v polovině roku 1999. PHP 4.0, založené na tomto enginu a doplněné širokou škálou nových prvků, bylo oficiálně uvolněno v květnu 2000, necelé dva roky po svém předchůdci, PHP 3.0. K podstatně zvýšenému výkonu této verze, přidává PHP 4.0 další klíčové prvky, jako je podpora pro mnoho WWW serverů, HTTP sessions, buffering výstupu, bezpečnější způsoby zpracování vstupů uživatele a mnoho nových jazykových konstruktů.

PHP 4 je momentálně poslední uvolněnou verzí PHP. Již byla započata práce na modifikaci a vylepšení jádra Zend Engine k integraci prvků, které byly navrženy pro PHP 5.0.

Dnes používají PHP (odhadem) stovky tisíc vývojářů a nainstalované PHP hlásí několik milionů serverů - tj. přes 20 % domén na Internetu.

Vývojový tým PHP zahrnuje tucty vývojářů, stejně tak jako tucty dalších lidí, kteří pracují na projektech spojených s PHP, jako je PEAR a dokumentační projekt.

Předcházející | Domů | Další
Dodatky | Nahoru | Historie projektů souvisejících s PHP


Historie projektů souvisejících s PHP

PEAR

PEAR, PHP Extension and Application Repository (česky repozitář rozšíření a aplokací PHP) - původně PHP Extension and Add-on Repository (repozitář rozšíření a doplňků) - je PHP verze "foundation classes", a může v budoucnu vyrůst v jeden z klíčových způsobů distribuce jak PHP rozšíření, tak rozšíření PHP psaných v C, mezi vývojáře.

PEAR se zrodil v diskusi na mítinku PHP Developers' Meeting (PDM) v lednu 2000 v Tel Avivu. Byl vytvořen Stigem S. Bakkenem a delegován na jeho prvorozenou dceru Malin Bakken.

Od začátku roku 2000 PEAR vyrostl ve velký, významný projekt s velkým počtem vývojářů pracujících na společné, široce použitelné funkcionalitě ve prospěch celé PHP komunity. PEAR dnes zahrnuje širokou paletu infrastrukturních "foundation classes" pro přístup k databázím, cachování obsahu e-komerci a mnoho dalšího.

PHP Quality Assurance Initiative

PHP Quality Assurance Initiative (iniciativa zajištění kvality PHP) byla ustavena v létě 2000 v rakci na kritiku, že uvolněné verze PHP nebyly dostatečně testovány pro produkční prostředí. Tým nyní sestává z pevné skupiny vývojářů, kteří dobře rozumějí kódové bázi PHP. Tito vývojáři tráví mnoho času lokalizací a odstraňováním chyb v PHP. Navíc je zde mnoho členů týmu, kteří to pak testují a poskytují zpětnou vazbu na tyto opravy na široké škále platforem.

PHP-GTK

PHP-GTK je PHP řešení pro psaní GUI aplikací pro stranu klienta. Andrei Zmievski připomíná plánování a proces tvorby PHP-GTK:

Programování GUI vždy patřilo mezi mé zájmy a shledal jsem Gtk+ velmi příjemným toolkitem, kromě toho, že programovat s jeho použitím v C je někdy nudné. Po zkušenostech s PyGtk a GTK-Perl implemetacemi jsem se rozhodl podívat se, zda by se dalo v PHP vytvořit, alespoň trochu, rozhraní ke Gtk+. Počínaje srpnem 2000 jsem měl o něco více volného času, takže jsem začal experimentovat. Mým hlavním vodítkem byla implementace PyGtk, což bylo skutečně funkčně kompletní a příjemné objektově orientované rozhraní. James Henstridge, autor PyGtk, mi poskytl velmi užitečné rady během počatečního stádia vývoje.

Ruční psaní rozhraní ke všem funkcím Gtk+ bylo zcela mimo hru, takže jsem se zabýval ideou generátoru kódu, podobného jako v případě PyGtk. Generátor kódu je program v PHP, který čte sadu .defs souborů obsahujících informace o třídách, konstantách a metodách Gtk+ a generuje kód v C, který pro ně poskytuje rozhraní. Co nelze vygenerovat automaticky, může být napsáno ručně v souboru .overrides.

Práce na generátoru kódu a na infrastruktuře trvala nějakou dobu, protože jsem na podzim 2000 mohl práci na PHP-GTK věnovat jen málo času. Když jsem to pak ukázal Franku Kromannovi, byl zaujat a začal mi pomáhat s prací na generátoru kódu a implementaci pro Win32. Když jsme napsali první program "Ahoj světe!" a spustili ho, bylo to extrémně vzrušující. Trvalo to několik měsíců, než se projekt dostal do prezentovatelného stavu a úvodní verze byla uvolněna 1 .března 2001. Příběh okamžitě zasáhl SlashDot.

S ohledem na to, jak může být projekt PHP-GTK rozsáhlý, založil jsem pro něj samostatné diskusní skupiny a CVS repozitáře, stejně jako (s pomocí Colina Viebrocka) webovskou stránku gtk.php.net. Také by bylo třeba udělat dokumentaci a James Moore přispěchal pomoci s ní.

Uvolněná verze PHP-GTK si již získala popularitu. Máme vlastní dokumentační tým, manuál se stále zlepšuje, lidé začínají psát rozšíření pro PHP-GTK, a víc a víc vzrušujících aplikací.

Předcházející | Domů | Další
Historie PHP a souvisejících projektů | Nahoru | Knihy o PHP


Knihy o PHP

Jak PHP rostlo, začalo být považováno za celosvětově populární vývojovou platformu. Jedním z nejzajímavějších způsobů pozorování tohoto trendu je sledování knih o PHP vydávaných během posledních let.

Pokud si dobře pamatujeme, první kniha zaměřená na PHP 'PHP - Dynamische Webauftritte professionell realisieren' - německá kniha publikovaná v roce 1999, autory byli Egon Schmid, Christian Cartus and Richard Blume. První kniha v angličtině byla vydána krátce nato: 'Core PHP Programming' od Leona Atkinsona. Obě tyto knihy se zabývaly PHP 3.0.

Tyto dvě knihy byly první svého druhu - a byly následovány velkým množstvím knih různých autorů a vydavatelů. Existuje přes 40 knih v angličtině, 50 knih v němčině a přes 20 knih ve francouzštině. Navíc můžete najít knihy o PHP v mnoha dalších jazycích včetně španělštiny, korejštiny, japonštiny a hebrejštiny.

Samozřejmě, tento velký počet knih, psaných různými autory, vydávaných mnoha vydavateli a jejich dostupnost v tolika jazycích - je potvrzením celosvětového úspěchu PHP.

Předcházející | Domů | Další
Historie projektů souvisejících s PHP | Nahoru | Ostatní publikace o PHP


Ostatní publikace o PHP

Podle našich nejlepších informací byl první článek o PHP v tištěném časopisu publikován ve French Informatiques Magazine na konci roku 1998 a zabýval se PHP 3.0. Stejně jako v případě knih byl první v dlouhé řadě článků publikovaných v různých uznávaných časopisech.

Články o PHP se objevily v časopisech Dr. Dobbs, Linux Enterprise, Linux Magazine a mnoha dalších. Články o přechod z aplikací založených na ASP na platformu PHP pod Windows se objevily dokonce na ryze Microsoftím MSDN!

Předcházející | Domů | Další
Knihy o PHP | Nahoru | Migrating from PHP 4 to PHP 5


Migrating from PHP 4 to PHP 5

Manuál PHP
Předcházející Další

Příloha B. Migrating from PHP 4 to PHP 5

Obsah
What has changed in PHP 5
Backward Incompatible Changes
CLI and CGI
Migrating Configuration Files
New Functions
New Directives
Databases
New Object Model

What has changed in PHP 5

PHP 5 and the integrated Zend Engine 2 have greatly improved PHP's performance and capabilities, but great care has been taken to break as little existing code as possible. So migrating your code from PHP 4 to 5 should be very easy. Most existing PHP 4 code should be ready to run without changes, but you should still know about the few differences and take care to test your code before switching versions in production environments.

Předcházející | Domů | Další
Ostatní publikace o PHP | Nahoru | Backward Incompatible Changes


Backward Incompatible Changes

Although most existing PHP 4 code should work without changes, you should pay attention to the following backward incompatible changes:

  • strrpos() and strripos() now use the entire string as a needle.

  • Illegal use of string offsets causes E_ERROR instead of E_WARNING.

  • array_merge() was changed to accept only arrays. If a non-array variable is passed, a E_WARNING will be thrown for every such parameter. Be careful because your code may start emitting E_WARNING out of the blue.

  • PATH_TRANSLATED server variable is no longer set implicitly under Apache2 SAPI in contrast to the situation in PHP 4, where it is set to the same value as the SCRIPT_FILENAME server variable when it is not populated by Apache. This change was made to comply with the CGI specification. Please refer to bug #23610 for further information.

  • The T_ML_CONSTANT constant is no longer defined by the Tokenizer extension. If error_reporting is set to E_ALL, PHP will generate a notice. Although the T_ML_CONSTANT was never used at all, it was defined in PHP 4. In both PHP 4 and PHP 5 // and /* */ are resolved as the T_COMMENT constant. However the PHPDoc style comments /** */ ,which starting PHP 5 are parsed by PHP, are recognized as T_DOC_COMMENT.

  • $_SERVER should be populated with argc and argv if variables_order includes "S". If you have specifically configured your system to not create $_SERVER, then of course it shouldn't be there. The change was to always make argc and argv available in the CLI version regardless of the variables_order setting. As in, the CLI version will now always populate the global $argc and $argv variables.

  • An object with no properties is no longer considered "empty".

  • Classes must be declared before used.

Příklad B-1. strrpos() and strripos() now use the entire string as a needle

<?php
var_dump(strrpos('ABCDEF','DEF')); //int(3)

var_dump(strrpos('ABCDEF','DAF')); //bool(false)
?>

Příklad B-2. An object with no properties is no longer considered "empty"

<?php
class test { }
$t = new test();

var_dump(empty($t)); // echo bool(false)

if (!$t) {
    // Will be executed
}
?>

The following example was valid in PHP 4, although it will produce a fatal error in PHP 5.

Příklad B-3. Classes must be declared before used

<?php
$test = new fubar();
$test->barfu();

class fubar {
    function barfu() {
        echo 'fubar';
    }
}
?>

Předcházející | Domů | Další
Migrating from PHP 4 to PHP 5 | Nahoru | CLI and CGI


CLI and CGI

In PHP 5 there were some changes in CLI and CGI filenames. In PHP 5, the CGI version was renamed to php-cgi.exe (previously php.exe) and the CLI version now sits in the main directory (previously cli/php.exe).

In PHP 5 it was also introduced a new mode: php-win.exe. This is equal to the CLI version, except that php-win doesn't output anything and thus provides no console (no "dos box" appears on the screen). This behavior is similar to php-gtk.

In PHP 5, the CLI version will always populate the global $argv and $argc variables.

Předcházející | Domů | Další
Backward Incompatible Changes | Nahoru | Migrating Configuration Files


Migrating Configuration Files

Since the ISAPI modules changed their names, from php4xxx to php5xxx, you need to make some changes in the configuration files. There were also changes in the CLI and CGI filenames. Please refer to the corresponding section for more information.

Migrate the Apache configuration is extremely easy. See the example below to check the change you need to do:

# change this line:
LoadModule php4_module /php/sapi/php4apache2.dll

# with this one:
LoadModule php5_module /php/php5apache2.dll

If your webserver is running PHP in CGI mode, you should note that the CGI version has changed its name from php.exe to php-cgi.exe. In Apache you should do something like this:

# change this line:
Action application/x-httpd-php "/php/php.exe"

# with this one:
Action application/x-httpd-php "/php/php-cgi.exe"

In other webservers you need to change either the CGI or the ISAPI module filenames.

Předcházející | Domů | Další
CLI and CGI | Nahoru | New Functions


New Functions

In PHP 5 there are some new functions. Here is the list of them:

Arrays:

  • array_combine() - Creates an array by using one array for keys and another for its values

  • array_diff_uassoc() - Computes the difference of arrays with additional index check which is performed by a user supplied callback function

  • array_udiff() - Computes the difference of arrays by using a callback function for data comparison

  • array_udiff_assoc() - Computes the difference of arrays with additional index check. The data is compared by using a callback function

  • array_udiff_uassoc() - Computes the difference of arrays with additional index check. The data is compared by using a callback function. The index check is done by a callback function also

  • array_walk_recursive() - Apply a user function recursively to every member of an array

InterBase:

  • ibase_affected_rows() - Return the number of rows that were affected by the previous query

  • ibase_backup() - Initiates a backup task in the service manager and returns immediately

  • ibase_commit_ret() - Commit a transaction without closing it

  • ibase_db_info() - Request statistics about a database

  • ibase_drop_db() - Drops a database

  • ibase_errcode() - Return an error code

  • ibase_free_event_handler() - Cancels a registered event handler

  • ibase_gen_id() - Increments the named generator and returns its new value

  • ibase_maintain_db() - Execute a maintenance command on the database server

  • ibase_name_result() - Assigns a name to a result set

  • ibase_num_params() - Return the number of parameters in a prepared query

  • ibase_param_info() - Return information about a parameter in a prepared query

  • ibase_restore() - Initiates a restore task in the service manager and returns immediately

  • ibase_rollback_ret() - Rollback transaction and retain the transaction context

  • ibase_server_info() - Request statistics about a database

  • 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_wait_event() - Wait for an event to be posted by the database

iconv:

  • iconv_mime_decode() - Decodes a MIME header field

  • iconv_mime_decode_headers() - Decodes multiple MIME header fields at once

  • iconv_mime_encode() - Composes a MIME header field

  • iconv_strlen() - Returns the character count of string

  • iconv_strpos() - Finds position of first occurrence of a needle within a haystack

  • iconv_strrpos() - Finds the last occurrence of a needle within the specified range of haystack

  • iconv_substr() - Cut out part of a string

Streams:

  • stream_copy_to_stream() - Copies data from one stream to another

  • stream_get_line() - Gets line from stream resource up to a given delimiter

  • stream_socket_accept() - Accept a connection on a socket created by stream_socket_server()

  • stream_socket_client() - Open Internet or Unix domain socket connection

  • stream_socket_get_name() - Retrieve the name of the local or remote sockets

  • stream_socket_recvfrom() - Receives data from a socket, connected or not

  • stream_socket_sendto() - Sends a message to a socket, whether it is connected or not

  • stream_socket_server() - Create an Internet or Unix domain server socket

Other:

  • convert_uudecode() - decode a uuencoded string

  • convert_uuencode() - uuencode a string

  • curl_copy_handle() - Copy a cURL handle along with all of it's preferences

  • dba_key_split() - Splits a key in string representation into array representation

  • dbase_get_header_info() - Get the header info of a dBase database

  • dbx_fetch_row() - Fetches rows from a query-result that had the DBX_RESULT_UNBUFFERED flag set

  • fbsql_set_password() - Change the password for a given user

  • file_put_contents() - Write a string to a file

  • ftp_alloc() - Allocates space for a file to be uploaded

  • get_declared_interfaces() - Returns an array of all declared interfaces

  • get_headers() - Fetches all the headers sent by the server in response to a HTTP request

  • headers_list() - Returns a list of response headers sent (or ready to send)

  • http_build_query() - Generate URL-encoded query string

  • idate() - Format a local time/date as integer

  • image_type_to_extension() - Get file extension for
image-type returned by getimagesize(),
exif_read_data(),
exif_thumbnail(),
exif_imagetype()

  • imagefilter() - Applies Filter an image using a custom angle

  • imap_getacl() - Gets the ACL for a given mailbox

  • ldap_sasl_bind() - Bind to LDAP directory using SASL

  • mb_list_encodings() - Returns an array of all supported encodings

  • pcntl_getpriority() - Get the priority of any process

  • pcntl_wait() - Waits on or returns the status of a forked child as defined by the waitpid() system call

  • pg_version() - Returns an array with client, protocol and server version (when available)

  • php_check_syntax() - Check the syntax of the specified file

  • php_strip_whitespace() - Return source with stripped comments and whitespace

  • proc_nice() - Change the priority of the current process

  • pspell_config_data_dir() - Change location of language data files

  • pspell_config_dict_dir() - Change location of the main word list

  • setrawcookie() - Send a cookie with no url encoding of the value

  • snmp_read_mib() - Reads and parses a MIB file into the active MIB tree

  • sqlite_fetch_column_types() - Return an array of column types from a particular table

  • str_split() - Convert a string to an array

  • strpbrk() - Search a string for any of a set of characters

  • substr_compare() - Binary safe optionally case insensitive comparison of two strings from an offset, up to length characters

  • time_nanosleep() - Delay for a number of seconds and nano seconds

Poznámka: The Tidy extension has also changed its API completely.

Předcházející | Domů | Další
Migrating Configuration Files | Nahoru | New Directives


New Directives

There were some new php.ini directives introduced in PHP 5. Here is a list of them:

  • mail.force_extra_parameters - Force the addition of the specified parameters to be passed as extra parameters to the sendmail binary. These parameters will always replace the value of the 5th parameter to mail(), even in safe mode

  • register_long_arrays - allow/disallow PHP to register the deprecated long $HTTP_*_VARS

  • session.hash_function - select a hash function (MD5 or SHA-1)

  • session.hash_bits_per_character - define how many bits are stored in each character when converting the binary hash data to something readable (from 4 to 6)

  • zend.ze1_compatibility_mode - Enable compatibility mode with Zend Engine 1 (PHP 4)

Předcházející | Domů | Další
New Functions | Nahoru | Databases


Databases

There were some changes in PHP 5 regarding databases (MySQL and SQLite).

In PHP 5 the MySQL client libraries are not bundled, because of license problems and some others. For more information, read the FAQ entry.

There is also a new extension, MySQLi (Improved MySQL), which is designed to work with MySQL 4.1 and above.

Since PHP 5, the SQLite extension is built-in PHP. SQLite is an embeddable SQL database engine and is not a client library used to connect to a big database server (like MySQL or PostgreSQL). The SQLite library reads and writes directly to and from the database files on disk.

Předcházející | Domů | Další
New Directives | Nahoru | New Object Model


New Object Model

In PHP 5 there is a new Object Model. PHP's handling of objects has been completely rewritten, allowing for better performance and more features. Please read http://www.php.net/zend-engine-2.php for more info.

Předcházející | Domů | Další
Databases | Nahoru | Přechod z PHP 3 na PHP 4


Přechod z PHP 3 na PHP 4

Manuál PHP
Předcházející Další

Příloha C. Přechod z PHP 3 na PHP 4

Obsah
Co se změnilo v PHP 4
Současný běh PHP 3 a PHP 4
Převod konfiguračních souborů
Chování parseru
Hlášení chyb
Inicializátory
empty("0")
Chybějící funkce
Rozšíření PHP 3
Substituce za proměnné v řetězcích
Cookies
Obsluha globálních proměnných

Co se změnilo v PHP 4

PHP 4 a integrovaný Zend engine se vyznačuje podstatně vyšším výkonem a schopnostmi, přesto však byla věnována zvláštní péče tomu, dopady na stávající kód byly co nejmenší. Takže úpravy vašeho kódu z PHP 3 na PHP 4 by měly být podstatně snadnější než při přechodu z PHP/FI 2.0 na PHP 3. Mnoho existujícího kódu pro PHP 3 by mělo být připraveno běžet bez jakýchkoli změn, měli byste však vědět o několika podstatných odlišnostech a věnovat dobrou péči otestování kódu před změnou verze produkčního prostředí. Následující text by vám měl poradit, na co se zaměřit.

Předcházející | Domů | Další
New Object Model | Nahoru | Současný běh PHP 3 a PHP 4


Současný běh PHP 3 a PHP 4

Nejnovější operační systémy poskytují možnost versioningu a scopingu. Tyto prostředky umožňují nechat běžet PHP 3 a PHP 4 současně na jediném serveru Apache.

Funkce je ověřena na těchto platformách:

  • Linux + nejnovější binutils (testována verze binutils 2.9.1.0.25)

  • Solaris 2.5 a novější

  • FreeBSD (testovány verze 3.2 a 4.0)

K aktivaci této možnosti je třeba nakonfigurovat PHP 3 a PHP 4 k použití APXS (--with-apxs) a nezbytných rozšíření vazeb (--enable-versioning). Jinak postupujte zcela standardním způsobem (pro konfiguraci, kompilaci a instalaci). Například:

$ ./configure \
  --with-apxs=/apache/bin/apxs \
  --enable-versioning \
  --with-mysql \
  --enable-track-vars

Předcházející | Domů | Další
Přechod z PHP 3 na PHP 4 | Nahoru | Převod konfiguračních souborů


Převod konfiguračních souborů

Název globálního konfiguračního souboru, php3.ini, se změnil na php.ini.

V konfiguračním souboru serveru Apache je poněkud více změn. Změnily se především MIME datové typy rozpoznávané modulem PHP.

application/x-httpd-php3        -->    application/x-httpd-php
application/x-httpd-php3-source -->    application/x-httpd-php-source

Můžete upravit vaše konfigurační soubory tak, aby pracovaly s oběma verzemi PHP (v závislosti na tom, která je v příslušném okamžiku zkompilována pro server) použitím následující syntaxe:

AddType  application/x-httpd-php3        .php3
AddType  application/x-httpd-php3-source .php3s

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

Změnily se také názvy direktiv pro server Apache.

Od verze PHP 4.0 existují pouze čtyři direktivy pro Apache, které mají spojitost s PHP:

php_value [PHP directive name] [value]
php_flag [PHP directive name] [On|Off]
php_admin_value [PHP directive name] [value]
php_admin_flag [PHP directive name] [On|Off]

Jsou dva rozdíly mezi hodnotami "admin" a ostatními:

  • Hodnoty (nebo příznaky) "admin" se mohou objevit pouze v konfiguračních souborech pro celý server (např. httpd.conf).

  • Standardní hodnoty (nebo příznaky) nemohou ovládat jisté PHP direktivy, například bezpečný režim (pokud byste mohli změnit nastavení bezpečného režimu v souborech .htaccess, bezpečný režim ztrácí smysl). Naopak, "admin" hodnoty mohou zasahovat do jakýchkoli PHP direktiv.

Aby byl přechod na novou verzi snazší, balík PHP 4 obsahuje skripty, které automaticky převedou váš konfigurační soubor pro Apache a soubory .htaccess tak, aby pracovaly jak s PHP 3, tak s PHP 4. Tyto skripty NEPŘEVÁDĚJÍ řádky s popisy MIME typů! Musíte je upravit ručně.

K převedení konfiguračních souborů pro Apache, spusťte skript apconf-conv.sh (umístěný v adresáři scripts/apache/). Například:

~/php4/scripts/apache:#  ./apconf-conv.sh /usr/local/apache/conf/httpd.conf

Váš originální konfigurační soubor bude uložen jako httpd.conf.orig.

K převedení souborů .htaccess, spusťte skript aphtaccess-conv.sh (dostupný rovněž v adresáři scripts/apache/):

~/php4/scripts/apache:#  find / -name .htaccess -exec ./aphtaccess-conv.sh {} \;

I v tomto případě budou originální soubory .htaccess uloženy s koncovkou .orig.

Konverzní skripty vyžadují nainstalovaný nástroj awk.

Předcházející | Domů | Další
Současný běh PHP 3 a PHP 4 | Nahoru | Chování parseru


Chování parseru

Parsing a provádění kódu jsou nyní dva naprosto oddělené kroky, nic z kódu v souboru se neprovádí dříve, než je úspěšně provedena úplná syntaktická analýza celého souboru a všeho, co je třeba.

Jeden z nových požadavků, které vyvstaly tímto rozdělením, je, že všechny soubory připojené prostřednictvím "require" a "include" nyní musí být syntakticky úplné. Již nelze rozložit různé části řídicích konstrukcí přes hranice souborů. Tj. nelze začít cyklus for nebo while, větvení if nebo switch v jednom souboru a ukočit je (resp. pokračovat pomocí else, endif, case nebo break) v souboru jiném.

Zůstává zcela legální vložit další kód do cyklů nebo jiných řídicích struktur, pouze řídicí klíčová slova a odpovídající složené závorky {...} musí být ve stejné kompilační jednotce (souboru nebo řetězci zpracovaném pomocí eval()).

Toto neškodí tolik jako výše uvedené rozkládání kódu, přesto to může být považováno za velmi špatný styl.

Jinou věcí, která již není možná, je vzácně vídané vracení hodnot ze souborů připojených pomocí "require". Vracení hodnot ze souborů připojených "include" je možné i nadále.

Předcházející | Domů | Další
Převod konfiguračních souborů | Nahoru | Hlášení chyb


Hlášení chyb

Změny konfigurace

Hlášení chyb v PHP 3 bylo založeno na úrovních, představovaných jednoduchou číselnou hodnotou. Hodnoty se sčítaly pro různé úrovně chyb. Obvyklé hodnoty byly 15 pro hlášení všech chyb a varování, 7 pro hlášení všeho kromě informativních zpráv, ohlašujících špatný styl a podobné věci.

PHP 4 má větší množinu úrovní chyb a varování a přichází s konfiguračním parserem, který nyní umožňuje k nastavení potřebného chování používat symbolické konstanty.

Úroveň hlášení chyb by měla být nyní nastavována explicitním odebíráním těch úrovní, u kterých které nechceme, aby byly hlášeny (pomocí logické operace XOR se symbolickou konstantou). E_ALL. Zní to komplikovaně? No, tak řekněme, že chcete hlásit všechny chyby s výjimkou jednoduchých "stylových" varování, která jsou zařazena do kategorie popsané symbolickou konstantou E_NOTICE. Potom do souboru php.ini vložíte: error_reporting = E_ALL & ~ ( E_NOTICE ). Pokud chcete potlačit také všechna varování, přidáte odpovídající konstantu do závorek s použitím binárního operátoru '|': error_reporting= E_ALL & ~ ( E_NOTICE | E_WARNING ).

Varování

Používání starých hodnot 7 a 15 pro nastavení hlášení chyb je velmi špatný nápad, protože to potlačuje některé nově přidané třídy chyb včetně syntaktických. To může vést k velmi záhadnému chování, kdy skripty nepracují, aniž by vydaly jakoukoli zprávu o chybě.

Toto v minulosti vedlo k množství nereprodukovatelných bug reportů (hlášení o chybách v PHP), když lidé hlásili problémy s enginem, které nebyli schopni vystopovat. Pravou příčinou byla obvykle chybějící uzavírací závorka '}' v souboru připojeném pomocí "require", a parser je nemohl ohlásit kvůli špatně nakonfigurovanému hlášení chyb.

Takže kontrola nastavení hlášení chyb by měla být první věcí, pokud vaše skripty tiše havarují. Zend engine může být nyní považován za dost vyspělý na to, aby způsoboval takové podivné chování.

Přídavné varovné zprávy

Mnoho existujících kódů v PHP 3 používá jazykové konstrukty, které by měly být považovány za velmi špatný styl psaní, neboť přestože nyní dělají zamýšlené věci, snadno mohou být narušeny změnami jinde. PHP 4 bude vydávat spousty informativních zpráv v takových situacích, kdy se v PHP 3 nic nedělo. Snadnou nápravou je vypnutí zpráv E_NOTICE, ale obvykle je lepší raději opravit kód.

Nejčastějším případem, který bude produkovat takové zprávy, je použití řetězců bez uvozovek jako prvků pole. Jak PHP 3, tak PHP 4 je budou interpretovat jako řetězce, pokud pod tímto jménem není známo žádné klíčové slovo ani konstanta. Pokud by však nějaká taková konstanta (někde jinde v kódu) definována byla, skript může havarovat. Může to přerůst i v bezpečnostní riziko, pokud nějaký útočník předefinuje řetězcové konstanty způsobem, který mu dá přístupová práva, jež by mít neměl. Takže PHP 4 vás bude nyní varovat, pokud použijete řetězecovou konstantu neuzavřenou do uvozovek, jako například $HTTP_SERVER_VARS[REQUEST_METHOD]. Změníte-li to na $HTTP_SERVER_VARS['REQUEST_METHOD'], parser se uklidní a výrazně se zlepší styl a bezpečnost vašeho kódu.

Další věcí v PHP 4 je hlášení použití neinicializovaných proměnných a prvků polí.

Předcházející | Domů | Další
Chování parseru | Nahoru | Inicializátory


Inicializátory

Statické proměnné a inicializátory položek tříd přijímají pouze skalární hodnoty, zatímco v PHP 3 přijímaly i jakékoli platné výrazy. Toto je, opět, kvůli rozdělení mezi parsing a provádění kódu - když parser zpracovává inicializátor, ještě není proveden žádný kód.

K inicializaci položek ve třídách byste měli namísto toho používat konstruktory. Pro statické proměnné přesto vzácně dává smysl i něco jiného než obyčejná hodnota.

Předcházející | Domů | Další
Hlášení chyb | Nahoru | empty("0")


Chybějící funkce

Současně s tím, že se v PHP 4 objevuje mnoho nových prostředků, funkcí a rozšíření, můžete najít i funkce, které oproti verzi 3 chybí. Malý počet jádrových funkcí zmizel, protože nefungují s novým schématem oddělení parsingu a provádění kódu v Zend enginu. Jiné funkce i celá kompletní rozšíření se staly zastaralými tím, že novější funkce a rozšíření poslouží ve stejné roli lépe nebo obecněji. Některé funkce jednoduše ještě nebyly portovány a konečně jsou také funkce a rozšíření chybějící kvůli licenčním konfliktům.

Funkce chybějící kvůli konceptuálním změnám

Tím, že PHP 4 odděluje syntaktickou analýzu od interpretace, již není možné měnit chování parseru (nyní vloženého do Zend enginu) během provádění skriptu, který byl již syntakticky zpracován. Takže funkce short_tags() již neexistuje. Měnit chování parseru stále můžete, a to nastavením hodnot v souboru php.ini.

Jiným prostředkem PHP 3, který není součástí PHP 4, je zabudované rozhraní pro ladění. Existují externí doplňky pro Zend engine, které poskytují podobné funkce.

Zavržené funkce a rozšíření

Databázová rozšíření Adabas a Solid již nejsou k dispozici. Namísto toho se používá rozšíření unifikované rozhraní ODBC.

Změněný status funkce unset()

unset(), přestože je stále k dispozici, je implementována jako jazykový konstrukt namísto funkce.

To nemá žádné důsledky v chování unset(), ale test "unset" pomocí function_exists() vrátí FALSE, stejně jako v případě jiných jazykových konstruktů, které vypadají jako funkce, např. echo().

Jinou, praktičtější změnou je to, že již nelze volat unset() nepřímo, tzn. $func="unset"; $func($somevar) už nebude fungovat.

Předcházející | Domů | Další
empty("0") | Nahoru | Rozšíření PHP 3


Rozšíření PHP 3

Rozšíření psaná pro PHP 3 nebudou s PHP 4 pracovat, ani na binární, ani na zdrojové úrovni. Není těžké portovat tato rozšíření na PHP 4, pokud máte přístup k originálnímu zdrojovému kódu. Detailní popis procesu portace není součástí tohoto textu.

Předcházející | Domů | Další
Chybějící funkce | Nahoru | Substituce za proměnné v řetězcích


Substituce za proměnné v řetězcích

PHP 4 přidává nový mechanismus k substituci za proměnné v řetězcích. Nyní můžete konečně uvnitř řetězců přistupovat k položkám v objektech a k prvkům vícerozměrných polí.

To se udělá pomocí uzavření proměnných do složených závorek se znakem dolaru ihned za otvírací závorkou: {$...}

K vložení hodnoty položky objektu do řetězce jednoduše napíšete "text {$obj->member} text", zatímco v PHP 3 jste museli napsat něco jako "text ".$obj->member." text".

Toto by mělo vést k čitelnějšímu kódu, ale může to způsobovat problémy s existujícími skripty pro PHP 3. Můžete ale provést test na kombinaci znaků {$ ve vašem kódu a jejich nahrazení \{$ pomocí vašeho oblíbeného nástroje pro hledání a náhradu.

Předcházející | Domů | Další
Rozšíření PHP 3 | Nahoru | Cookies


Cookies

V PHP 3 se zavedl špatný zvyk nastavovat cookies opačným pořadím volání setcookie() v kódu. PHP 4 toto napravuje a vytváří hlavičkové řádky pro cookies v přesně stejném pořadí, jak jdou za sebou v kódu.

Opět se mohou vyskytnout problémy s existujícím kódem, ale staré chování bylo tak těžko pochopitelné, že si zasloužilo změnu, aby se zabránilo dalším problémům v budoucnosti.

Předcházející | Domů | Další
Substituce za proměnné v řetězcích | Nahoru | Obsluha globálních proměnných


Obsluha globálních proměnných

Zatímco v PHP 3 a prvních verzích PHP 4 se při obsluze globálních proměnných dbalo především na jednoduchost, nyní se zaměření změnilo směrem k vyšší bezpečnosti. Takže jestliže následující případ dobře fungoval v PHP 3, v PHP 4 je třeba provést unset($GLOBALS["id"]);. Toto je jen jeden aspekt obsluhy globálních proměnných. Měli byste vždy používat $GLOBALS, v novějších verzích PHP 4 budete nuceni tak učinit ve většině případů. Více o této problematice najdete v části global (globální) reference.

Příklad C-1. Změny u globálních proměnných

<?php
$id = 1;
function test()
{
    global $id;
    unset($id);
}
test();
echo($id); // This will print out 1 in PHP 4

Předcházející | Domů | Další
Cookies | Nahoru | Přechod z PHP/FI 2 na PHP 3


Přechod z PHP/FI 2 na PHP 3

Manuál PHP
Předcházející Další

Příloha D. Přechod z PHP/FI 2 na PHP 3

Obsah
O nekompatibilitách v 3.0
Otvírací/uzavírací značky (start/end tags)
syntaxe if..endif
syntaxe while
Typy výrazů
Chybové zprávy se změnily
Zkrácené vyhodnocení logických výrazů
Návratové hodnoty TRUE/FALSE
Jiné nekompatibility

O nekompatibilitách v 3.0

PHP 3.0 je od základu přepsáno. Má náležitý parser, který je mnohem robustnější a konzistentnější než ten ve verzi 2.0. Verze 3.0 je také signifikantně rychlejší a používá méně paměti. Logicky, některá z těchto vylepšení nebyla možná bez změnách v kompatibilitě, jak v syntaxi, tak ve funkcionalitě.

Navíc se vývojáři PHP snažili vyčistit jak syntaxi, tak sémantiku PHP, což také přineslo nějaké nekompatibility. Ze širšího pohledu, věříme že tyto změny jsou pro dobro věci.

Tato kapitola se pokusí provést vás nekompatibilitami, na které můžete narazit při přechodu z PHP/FI 2.0 na PHP 3.0 a pomoci vám je vyřešit. Nové prvky zde nebudou zmiňovány, pokud to nebude nutné.

Konverzní program, který automaticky převede vaše staré skripty v PHP/FI 2.0, existuje. Najdete ho adresáři convertor v distribuci PHP 3.0. Tento program však zachycuje pouze změny syntaxe, takže přesto pozorně čtěte tuto kapitolu.

Předcházející | Domů | Další
Obsluha globálních proměnných | Nahoru | Otvírací/uzavírací značky (start/end tags)


Otvírací/uzavírací značky (start/end tags)

Pravděpodobně první věcí, kterou zaznamenáte, je, že se změnily otevírací a uzavírací značky (označují začátek a konec kódu PHP). Staré značky <? > byly nahrazeny třemi možnými formami:

Příklad D-1. Přechod: staré otvírací/uzavírací značky

<? echo "This is PHP/FI 2.0 code.\n"; >
Jako verze 2.0, PHP 3.0 podporuje také tuto variantu:

Příklad D-2. Přechod: první otvírací/uzavírací značky

<? echo "This is PHP 3.0 code!\n"; ?>
Všimněte si, že uzavírací značka nyní sestává z otazníku a znaku "větší než" namísto pouhého znaku "větší než". Bohužel, pokud na svém serveru plánujete používat XML, bude tato varianta dělat problémy, protože se PHP může pokoušet interpretovat XML značku jako PHP kód. Z tohoto důvodu byla zavedena nová varianta:

Příklad D-3. Přechod: druhé otvírací/uzavírací značky

<?php echo "This is PHP 3.0 code!\n"; ?>
Někteří lidé mají problémy s editory, které zcela neporozumí zpracování instrukčních značek. Jedním z takových editorů je Microsoft FrontPage, a jako řešení tohoto problému byla přidána ještě další varianta:

Příklad D-4. Přechod: třetí otvírací/uzavírací značky

<script language="php">

  echo "This is PHP 3.0 code!\n";

</script>

Předcházející | Domů | Další
Přechod z PHP/FI 2 na PHP 3 | Nahoru | syntaxe if..endif


syntaxe if..endif

Alternativní způsob, jak zapsat konstrukci if/elseif/else, za použití if(); elseif(); else; endif;, nemůže být efektivně implementována bez podstatného nárůstu složitosti 3.0 parseru. Kvůli tomu se změnila syntaxe:

Příklad D-5. Přechod: stará syntaxe if..endif

if ($foo);
    echo "yep\n";
elseif ($bar);
    echo "almost\n";
else;
    echo "nope\n";
endif;

Příklad D-6. Přechod: nová syntaxe if..endif

if ($foo):
    echo "yep\n";
elseif ($bar):
    echo "almost\n";
else:
    echo "nope\n";
endif;
Všimněte si, že středníky byly nahrazeny dvojtečkami ve všech příkazech kromě závěrečného (endif).

Předcházející | Domů | Další
Otvírací/uzavírací značky (start/end tags) | Nahoru | syntaxe while


syntaxe while

Stejně jako if..endif, syntaxe while..endwhile byla změněna:

Příklad D-7. Přechod: stará syntaxe while..endwhile

while ($more_to_come);
    ...
endwhile;

Příklad D-8. Přechod: nová syntaxe while..endwhile

while ($more_to_come):
    ...
endwhile;

Varování

Pokud v PHP 3.0 použijete starou syntaxi while..endwhile, získáte nekonečnou smyčku.

Předcházející | Domů | Další
syntaxe if..endif | Nahoru | Typy výrazů


Typy výrazů

PHP/FI 2.0 používalo levou stranu výrazů k určení, jakého typu má výsledek být. PHP 3.0 bere pro určení typu v úvahu obě strany výrazu, a to může způsobit nepředvídatelné chování 2.0 skriptů v PHP 3.0.

Uvažujme tento příklad:

$a[0]=5;
$a[1]=7;

$key = key($a);
while ("" != $key) {
    echo "$keyn";
    next($a);
}

V PHP/FI 2.0 by to zobrazilo obě hodnoty v $a. V PHP 3.0 se však nezobrazí nic. Důvod je ten, že PHP 2.0 kvůli tomu, že na levé straně je řetezec, provede porovnání řetězců, a "" se nerovná "0", tedy se bude procházet cyklem. V PHP 3.0 se řetězec porovná s celým číslem (integer), provede se porovnání celých čísel (řetězec je převeden na celé číslo). Výsledkem je porovnání atoi(""), což je 0, a variablelist, což je také 0. A protože 0==0, cyklem se vůbec procházet nebude.

Oprava pro tento příklad je snadná. Nahraďte původní konstrukci tímto:

while ((string)$key != "") {

Předcházející | Domů | Další
syntaxe while | Nahoru | Chybové zprávy se změnily


Chybové zprávy se změnily

Chybové zprávy PHP 3.0 jsou obvykle přesnější, než byly ve 2.0. Neuvidíte však část kódu, kde nastala chyba. Vypíše se pouze název souboru a číslo řádku, kde nastala chyba.

Předcházející | Domů | Další
Typy výrazů | Nahoru | Zkrácené vyhodnocení logických výrazů


Zkrácené vyhodnocení logických výrazů

V PHP 3.0 se používá zkrácené vyhodnocení logických výrazů. To znamená, že pro výraz jako (1 || test_me()) již nebude funkce test_me() volána, protože za 1 již nic nemůže ovlivnit hodnotu výrazu.

Toto je malá změna kompatibility,ale může způsobit neočekávané vedlejší efekty.

Předcházející | Domů | Další
Chybové zprávy se změnily | Nahoru | Návratové hodnoty TRUE/FALSE


Jiné nekompatibility

  • Modul PHP 3.0 pro Apache již nepodporuje verze Apache starší než 1.2. Je třeba Apache 1.2 nebo pozdější.

  • Funkce echo() již nepodporuje formátovaný řetězec. Použijte namísto toho printf().

  • V PHP/FI 2.0 způsobovaly vedlejší efekty implementace to, že $foo[0] mělo stejný účinek jako $foo. Toto již v PHP 3.0 neplatí

  • Čtení z polí pomocí $array[] již není podporováno.

    To znamená, že nemůžete traverzovat pole v cyklu, který provádí $data = $array[]. Použijte funkce current() a next().

    Současně $array1[] = $array2 nepřipojuje hodnoty pole $array2 k poli $array1, nýbrž připojuje pole $array2 jako poslední položku pole $array1. Viz též: podpora vícerozměrných polí.

  • "+" již není přetěžován jako spojovací operátor pro řetězce, namísto toho konvertuje řetězce na čísla a provede jejich (numerický) součet. Použijte tedy operátor "." instead.

Příklad D-11. Přechod z 2.0: spojení řetězců

echo "1" + "1";

V PHP 2.0 by se vypsalo 11, v PHP 3.0 se vypíše 2. Když místo toho použijete:
echo "1"."1";
$a = 1;
$b = 1;
echo $a + $b;

vypíše se 2 v PHP 2.0 i 3.0.
$a = 1;
$b = 1;
echo $a.$b;
Toto v PHP 3.0 vypíše 11.

Předcházející | Domů | Další
Návratové hodnoty TRUE/FALSE | Nahoru | Ladění (debugging) PHP


Ladění (debugging) PHP

Manuál PHP
Předcházející Další

Příloha E. Ladění (debugging) PHP

Obsah
O debuggeru
Použití debuggeru
Protokol debuggeru

O debuggeru

PHP 3 obsahuje pro podporu pro síťově založený debugger.

PHP 4 nemá vnitřní mechanismy pro ladění. Nicméně můžete používat některý z externích debuggerů. Zend IDE obsahuje debugger, a ladicí rozšíření (jako DBG) najdete také na http://dd.cron.ru/dbg/ nebo na Advanced PHP Debugger (APD).

Předcházející | Domů | Další
Jiné nekompatibility | Nahoru | Použití debuggeru


Použití debuggeru

Vnitřní debugger v PHP 3 je užitečný pro hledání záludných chyb. Debugger pracuje prostřednictvím připojení na TCP port při každém startu PHP 3. Všechny chybové zprávy z příslušné relace jsou posílány do tohoto TCP kanálu. Tyto informace jsou určeny pro "debugging server", který může běžet uvnitř IDE nebo programovatelného editoru (jako je Emacs).

Jak nastavit debugger:

  1. Nastavte TCP port pro debugger v konfiguračním souboru (debugger.port) a aktivujte ho (debugger.enabled).

  2. Nastavte TCP pro poslech na nějakém portu (například socket -l -s 1400 v UNIXu).

  3. Ve vašem kódu spusťte "debugger_on(host)", kde host je IP adresa nebo doménový název počítače, kde běží příslušný TCP server.

Nyní budou všechna varování, informativní zprávy apod. mířit na síťový socket, a to i tehdy, pokud je vypnete pomocí nastavení error_reporting().

Předcházející | Domů | Další
Ladění (debugging) PHP | Nahoru | Protokol debuggeru


Protokol debuggeru

Protokol PHP 3 debuggeru je řádkově orientovaný. Každý řádek je určitého typu a několik řádků tvoří zprávu. Každá zpráva začíná řádkem typu start a končí řádkem typu end. PHP 3 může současně posílat řádky pro různé zprávy.

Řádek má tento formát:

date time
host(pid)
type:
message-data

date

Datum ve formátu ISO 8601 (yyyy-mm-dd)

time

Čas včetně mikrosekund: hh:mm:uuuuuu

host

DNS (doménový) název nebo IP adresa počítače, kde byla vygenerována chyba ve skriptu.

pid

PID (process id) na počítači host procesu, který vygeneroval chybu v PHP 3 skriptu.

type

Typ řádku. Říká přijímajícímu programu, jak má s následujícími daty naložit:

Tabulka E-1. Typy řádků debuggeru

Název | Význam
start | Říká přijímajícímu programu, že tady začíná zpráva debuggeru. Obsahem datové části (data)bude typ chybové zprávy z níže uvedeného seznamu.
message | Chybová zpráva PHP 3.
location | Název souboru a číslo řádku, kde nastala chyba. První řádek location bude vždy obsahovat nejvyšší úroveň umístění. data bude obsahovat file:line. Řádek location bude následovat za každým řádkem message a každým řádkem function.
frames | Počet rámců v následujícím výpisu zásobníku. Pokud jsou zde čtyři rámce, očekávejte informace o čtyřech úrovních volaných funkcí. Pokud se žádný řádek "frames" nevyskytuje, předpokládá se hloubka 0 (chyba nastala na nejvyšší úrovni).
function | Název funkce, kde nastala chyba. Bude se opakovat pro každou úroveň zásobníku volání funkcí.
end | Říká přijímajícímu programu, že tady končí zpráva debuggeru.

data

Data v řádku.

Tabulka E-2. Typy chyb rozlišované debuggerem

Debugger | PHP 3 Internal
warning | E_WARNING
error | E_ERROR
parse | E_PARSE
notice | E_NOTICE
core-error | E_CORE_ERROR
core-warning | E_CORE_WARNING
unknown | (všechny ostatní)

Příklad E-1. Příklad - zpráva debuggeru

1998-04-05 23:27:400966 lucifer.guardian.no(20481) start: notice
1998-04-05 23:27:400966 lucifer.guardian.no(20481) message: Uninitialized variable
1998-04-05 23:27:400966 lucifer.guardian.no(20481) location: (NULL):7
1998-04-05 23:27:400966 lucifer.guardian.no(20481) frames: 1
1998-04-05 23:27:400966 lucifer.guardian.no(20481) function: display
1998-04-05 23:27:400966 lucifer.guardian.no(20481) location: /home/ssb/public_html/test.php3:10
1998-04-05 23:27:400966 lucifer.guardian.no(20481) end: notice

Předcházející | Domů | Další
Použití debuggeru | Nahoru | Extending PHP 3


Extending PHP 3

Manuál PHP
Předcházející Další

Příloha F. Extending PHP 3

Obsah
Adding functions to PHP
Calling User Functions
Reporting Errors

This section is rather outdated and demonstrates how to extend PHP 3. If you're interested in PHP 4, please read the section on the Zend API. Also, you'll want to read various files found in the PHP source, files such as README.SELF-CONTAINED-EXTENSIONS and README.EXT_SKEL.

Adding functions to PHP

Function Prototype

All functions look like this:
void php3_foo(INTERNAL_FUNCTION_PARAMETERS) {

}
Even if your function doesn't take any arguments, this is how it is called.

Function Arguments

Arguments are always of type pval. This type contains a union which has the actual type of the argument. So, if your function takes two arguments, you would do something like the following at the top of your function:

Příklad F-1. Fetching function arguments

pval *arg1, *arg2;
if (ARG_COUNT(ht) != 2 || getParameters(ht,2,&arg1,&arg2)==FAILURE) {
   WRONG_PARAM_COUNT;
}
NOTE: Arguments can be passed either by value or by reference. In both cases you will need to pass &(pval *) to getParameters. If you want to check if the n'th parameter was sent to you by reference or not, you can use the function, ParameterPassedByReference(ht,n). It will return either 1 or 0.

When you change any of the passed parameters, whether they are sent by reference or by value, you can either start over with the parameter by calling pval_destructor on it, or if it's an ARRAY you want to add to, you can use functions similar to the ones in internal_functions.h which manipulate return_value as an ARRAY.

Also if you change a parameter to IS_STRING make sure you first assign the new estrdup()'ed string and the string length, and only later change the type to IS_STRING. If you change the string of a parameter which already IS_STRING or IS_ARRAY you should run pval_destructor on it first.

Variable Function Arguments

A function can take a variable number of arguments. If your function can take either 2 or 3 arguments, use the following:

Příklad F-2. Variable function arguments

pval *arg1, *arg2, *arg3;
int arg_count = ARG_COUNT(ht);

if (arg_count < 2 || arg_count > 3 ||
    getParameters(ht,arg_count,&arg1,&arg2,&arg3)==FAILURE) {
    WRONG_PARAM_COUNT;
}

Using the Function Arguments

The type of each argument is stored in the pval type field. This type can be any of the following:

Tabulka F-1. PHP Internal Types

IS_STRING | String
IS_DOUBLE | Double-precision floating point
IS_LONG | Long integer
IS_ARRAY | Array
IS_EMPTY | None
IS_USER_FUNCTION | ??
IS_INTERNAL_FUNCTION | ?? (if some of these cannot be passed to a function - delete)
IS_CLASS | ??
IS_OBJECT | ??

If you get an argument of one type and would like to use it as another, or if you just want to force the argument to be of a certain type, you can use one of the following conversion functions:
convert_to_long(arg1);
convert_to_double(arg1);
convert_to_string(arg1);
convert_to_boolean_long(arg1); /* If the string is "" or "0" it becomes 0, 1 otherwise */
convert_string_to_number(arg1);  /* Converts string to either LONG or DOUBLE depending on string */

These function all do in-place conversion. They do not return anything.

The actual argument is stored in a union; the members are:

  • IS_STRING: arg1->value.str.val

  • IS_LONG: arg1->value.lval

  • IS_DOUBLE: arg1->value.dval

Memory Management in Functions

Any memory needed by a function should be allocated with either emalloc() or estrdup(). These are memory handling abstraction functions that look and smell like the normal malloc() and strdup() functions. Memory should be freed with efree().

There are two kinds of memory in this program: memory which is returned to the parser in a variable, and memory which you need for temporary storage in your internal function. When you assign a string to a variable which is returned to the parser you need to make sure you first allocate the memory with either emalloc() or estrdup(). This memory should NEVER be freed by you, unless you later in the same function overwrite your original assignment (this kind of programming practice is not good though).

For any temporary/permanent memory you need in your functions/library you should use the three emalloc(), estrdup(), and efree() functions. They behave EXACTLY like their counterpart functions. Anything you emalloc() or estrdup() you have to efree() at some point or another, unless it's supposed to stick around until the end of the program; otherwise, there will be a memory leak. The meaning of "the functions behave exactly like their counterparts" is: if you efree() something which was not emalloc()'ed nor estrdup()'ed you might get a segmentation fault. So please take care and free all of your wasted memory.

If you compile with "-DDEBUG", PHP will print out a list of all memory that was allocated using emalloc() and estrdup() but never freed with efree() when it is done running the specified script.

Setting Variables in the Symbol Table

A number of macros are available which make it easier to set a variable in the symbol table:

  • SET_VAR_STRING(name,value)

  • SET_VAR_DOUBLE(name,value)

  • SET_VAR_LONG(name,value)

Varování

Be careful with SET_VAR_STRING. The value part must be malloc'ed manually because the memory management code will try to free this pointer later. Do not pass statically allocated memory into a SET_VAR_STRING.

Symbol tables in PHP are implemented as hash tables. At any given time, &symbol_table is a pointer to the 'main' symbol table, and active_symbol_table points to the currently active symbol table (these may be identical like in startup, or different, if you're inside a function).

The following examples use 'active_symbol_table'. You should replace it with &symbol_table if you specifically want to work with the 'main' symbol table. Also, the same functions may be applied to arrays, as explained below.

Příklad F-3. Checking whether $foo exists in a symbol table

if (hash_exists(active_symbol_table,"foo",sizeof("foo"))) { exists... }
else { doesn't exist }

Příklad F-4. Finding a variable's size in a symbol table

hash_find(active_symbol_table,"foo",sizeof("foo"),&pvalue);
check(pvalue.type);
Arrays in PHP are implemented using the same hashtables as symbol tables. This means the two above functions can also be used to check variables inside arrays.

If you want to define a new array in a symbol table, you should do the following.

First, you may want to check whether it exists and abort appropriately, using hash_exists() or hash_find().

Next, initialize the array:

Příklad F-5. Initializing a new array

pval arr;

if (array_init(&arr) == FAILURE) { failed... };
hash_update(active_symbol_table,"foo",sizeof("foo"),&arr,sizeof(pval),NULL);
This code declares a new array, named $foo, in the active symbol table. This array is empty.

Here's how to add new entries to it:

Příklad F-6. Adding entries to a new array

pval entry;

entry.type = IS_LONG;
entry.value.lval = 5;

/* defines $foo["bar"] = 5 */
hash_update(arr.value.ht,"bar",sizeof("bar"),&entry,sizeof(pval),NULL);

/* defines $foo[7] = 5 */
hash_index_update(arr.value.ht,7,&entry,sizeof(pval),NULL);

/* defines the next free place in $foo[],
 * $foo[8], to be 5 (works like php2)
 */
hash_next_index_insert(arr.value.ht,&entry,sizeof(pval),NULL);
If you'd like to modify a value that you inserted to a hash, you must first retrieve it from the hash. To prevent that overhead, you can supply a pval ** to the hash add function, and it'll be updated with the pval * address of the inserted element inside the hash. If that value is NULL (like in all of the above examples) - that parameter is ignored.

hash_next_index_insert() uses more or less the same logic as "$foo[] = bar;" in PHP 2.0.

If you are building an array to return from a function, you can initialize the array just like above by doing:

if (array_init(return_value) == FAILURE) { failed...; }

...and then adding values with the helper functions:

add_next_index_long(return_value,long_value);
add_next_index_double(return_value,double_value);
add_next_index_string(return_value,estrdup(string_value));

Of course, if the adding isn't done right after the array initialization, you'd probably have to look for the array first:
pval *arr;

if (hash_find(active_symbol_table,"foo",sizeof("foo"),(void **)&arr)==FAILURE) { can't find... }
else { use arr->value.ht... }

Note that hash_find receives a pointer to a pval pointer, and not a pval pointer.

Just about any hash function returns SUCCESS or FAILURE (except for hash_exists(), which returns a boolean truth value).

Returning simple values

A number of macros are available to make returning values from a function easier.

The RETURN_* macros all set the return value and return from the function:

  • RETURN

  • RETURN_FALSE

  • RETURN_TRUE

  • RETURN_LONG(l)

  • RETURN_STRING(s,dup) If dup is TRUE, duplicates the string

  • RETURN_STRINGL(s,l,dup) Return string (s) specifying length (l).

  • RETURN_DOUBLE(d)

The RETVAL_* macros set the return value, but do not return.

  • RETVAL_FALSE

  • RETVAL_TRUE

  • RETVAL_LONG(l)

  • RETVAL_STRING(s,dup) If dup is TRUE, duplicates the string

  • RETVAL_STRINGL(s,l,dup) Return string (s) specifying length (l).

  • RETVAL_DOUBLE(d)

The string macros above will all estrdup() the passed 's' argument, so you can safely free the argument after calling the macro, or alternatively use statically allocated memory.

If your function returns boolean success/error responses, always use RETURN_TRUE and RETURN_FALSE respectively.

Returning complex values

Your function can also return a complex data type such as an object or an array.

Returning an object:

  1. Call object_init(return_value).

  2. Fill it up with values. The functions available for this purpose are listed below.

  3. Possibly, register functions for this object. In order to obtain values from the object, the function would have to fetch "this" from the active_symbol_table. Its type should be IS_OBJECT, and it's basically a regular hash table (i.e., you can use regular hash functions on .value.ht). The actual registration of the function can be done using:
    add_method( return_value, function_name, function_ptr );

The functions used to populate an object are:

  • add_property_long( return_value, property_name, l ) - Add a property named 'property_name', of type long, equal to 'l'

  • add_property_double( return_value, property_name, d ) - Same, only adds a double

  • add_property_string( return_value, property_name, str ) - Same, only adds a string

  • add_property_stringl( return_value, property_name, str, l ) - Same, only adds a string of length 'l'

Returning an array:

  1. Call array_init(return_value).

  2. Fill it up with values. The functions available for this purpose are listed below.

The functions used to populate an array are:

  • add_assoc_long(return_value,key,l) - add associative entry with key 'key' and long value 'l'

  • add_assoc_double(return_value,key,d)

  • add_assoc_string(return_value,key,str,duplicate)

  • add_assoc_stringl(return_value,key,str,length,duplicate) specify the string length

  • add_index_long(return_value,index,l) - add entry in index 'index' with long value 'l'

  • add_index_double(return_value,index,d)

  • add_index_string(return_value,index,str)

  • add_index_stringl(return_value,index,str,length) - specify the string length

  • add_next_index_long(return_value,l) - add an array entry in the next free offset with long value 'l'

  • add_next_index_double(return_value,d)

  • add_next_index_string(return_value,str)

  • add_next_index_stringl(return_value,str,length) - specify the string length

Using the resource list

PHP has a standard way of dealing with various types of resources. This replaces all of the local linked lists in PHP 2.0.

Available functions:

  • php3_list_insert(ptr, type) - returns the 'id' of the newly inserted resource

  • php3_list_delete(id) - delete the resource with the specified id

  • php3_list_find(id,*type) - returns the pointer of the resource with the specified id, updates 'type' to the resource's type

Typically, these functions are used for SQL drivers but they can be used for anything else; for instance, maintaining file descriptors.

Typical list code would look like this:

Příklad F-7. Adding a new resource

RESOURCE *resource;

/* ...allocate memory for resource and acquire resource... */
/* add a new resource to the list */
return_value->value.lval = php3_list_insert((void *) resource, LE_RESOURCE_TYPE);
return_value->type = IS_LONG;

Příklad F-8. Using an existing resource

pval *resource_id;
RESOURCE *resource;
int type;

convert_to_long(resource_id);
resource = php3_list_find(resource_id->value.lval, &type);
if (type != LE_RESOURCE_TYPE) {
    php3_error(E_WARNING,"resource index %d has the wrong type",resource_id->value.lval);
    RETURN_FALSE;
}
/* ...use resource... */

Příklad F-9. Deleting an existing resource

pval *resource_id;
RESOURCE *resource;
int type;

convert_to_long(resource_id);
php3_list_delete(resource_id->value.lval);
The resource types should be registered in php3_list.h, in enum list_entry_type. In addition, one should add shutdown code for any new resource type defined, in list.c's list_entry_destructor() (even if you don't have anything to do on shutdown, you must add an empty case).

Using the persistent resource table

PHP has a standard way of storing persistent resources (i.e., resources that are kept in between hits). The first module to use this feature was the MySQL module, and mSQL followed it, so one can get the general impression of how a persistent resource should be used by reading mysql.c. The functions you should look at are:

php3_mysql_do_connect
php3_mysql_connect()
php3_mysql_pconnect()

The general idea of persistence modules is this:

  1. Code all of your module to work with the regular resource list mentioned in section (9).

  2. Code extra connect functions that check if the resource already exists in the persistent resource list. If it does, register it as in the regular resource list as a pointer to the persistent resource list (because of 1., the rest of the code should work immediately). If it doesn't, then create it, add it to the persistent resource list AND add a pointer to it from the regular resource list, so all of the code would work since it's in the regular resource list, but on the next connect, the resource would be found in the persistent resource list and be used without having to recreate it. You should register these resources with a different type (e.g. LE_MYSQL_LINK for non-persistent link and LE_MYSQL_PLINK for a persistent link).

If you read mysql.c, you'll notice that except for the more complex connect function, nothing in the rest of the module has to be changed.

The very same interface exists for the regular resource list and the persistent resource list, only 'list' is replaced with 'plist':

  • php3_plist_insert(ptr, type) - returns the 'id' of the newly inserted resource

  • php3_plist_delete(id) - delete the resource with the specified id

  • php3_plist_find(id,*type) - returns the pointer of the resource with the specified id, updates 'type' to the resource's type

However, it's more than likely that these functions would prove to be useless for you when trying to implement a persistent module. Typically, one would want to use the fact that the persistent resource list is really a hash table. For instance, in the MySQL/mSQL modules, when there's a pconnect() call (persistent connect), the function builds a string out of the host/user/passwd that were passed to the function, and hashes the SQL link with this string as a key. The next time someone calls a pconnect() with the same host/user/passwd, the same key would be generated, and the function would find the SQL link in the persistent list.

Until further documented, you should look at mysql.c or msql.c to see how one should use the plist's hash table abilities.

One important thing to note: resources going into the persistent resource list must *NOT* be allocated with PHP's memory manager, i.e., they should NOT be created with emalloc(), estrdup(), etc. Rather, one should use the regular malloc(), strdup(), etc. The reason for this is simple - at the end of the request (end of the hit), every memory chunk that was allocated using PHP's memory manager is deleted. Since the persistent list isn't supposed to be erased at the end of a request, one mustn't use PHP's memory manager for allocating resources that go to it.

When you register a resource that's going to be in the persistent list, you should add destructors to it both in the non-persistent list and in the persistent list. The destructor in the non-persistent list destructor shouldn't do anything. The one in the persistent list destructor should properly free any resources obtained by that type (e.g. memory, SQL links, etc). Just like with the non-persistent resources, you *MUST* add destructors for every resource, even it requires no destruction and the destructor would be empty. Remember, since emalloc() and friends aren't to be used in conjunction with the persistent list, you mustn't use efree() here either.

Adding runtime configuration directives

Many of the features of PHP can be configured at runtime. These configuration directives can appear in either the designated php3.ini file, or in the case of the Apache module version in the Apache .conf files. The advantage of having them in the Apache .conf files is that they can be configured on a per-directory basis. This means that one directory may have a certain safemodeexecdir for example, while another directory may have another. This configuration granularity is especially handy when a server supports multiple virtual hosts.

The steps required to add a new directive:

  1. Add directive to php3_ini_structure struct in mod_php3.h.

  2. In main.c, edit the php3_module_startup function and add the appropriate cfg_get_string() or cfg_get_long() call.

  3. Add the directive, restrictions and a comment to the php3_commands structure in mod_php3.c. Note the restrictions part. RSRC_CONF are directives that can only be present in the actual Apache .conf files. Any OR_OPTIONS directives can be present anywhere, include normal .htaccess files.

  4. In either php3take1handler() or php3flaghandler() add the appropriate entry for your directive.

  5. In the configuration section of the _php3_info() function in functions/info.c you need to add your new directive.

  6. And last, you of course have to use your new directive somewhere. It will be addressable as php3_ini.directive.

Předcházející | Domů | Další
Protokol debuggeru | Nahoru | Calling User Functions


Calling User Functions

To call user functions from an internal function, you should use the call_user_function() function.

call_user_function() returns SUCCESS on success, and FAILURE in case the function cannot be found. You should check that return value! If it returns SUCCESS, you are responsible for destroying the retval pval yourself (or return it as the return value of your function). If it returns FAILURE, the value of retval is undefined, and you mustn't touch it.

All internal functions that call user functions must be reentrant. Among other things, this means they must not use globals or static variables.

call_user_function() takes six arguments:

HashTable *function_table

This is the hash table in which the function is to be looked up.

pval *object

This is a pointer to an object on which the function is invoked. This should be NULL if a global function is called. If it's not NULL (i.e. it points to an object), the function_table argument is ignored, and instead taken from the object's hash. The object *may* be modified by the function that is invoked on it (that function will have access to it via $this). If for some reason you don't want that to happen, send a copy of the object instead.

pval *function_name

The name of the function to call. Must be a pval of type IS_STRING with function_name.str.val and function_name.str.len set to the appropriate values. The function_name is modified by call_user_function() - it's converted to lowercase. If you need to preserve the case, send a copy of the function name instead.

pval *retval

A pointer to a pval structure, into which the return value of the invoked function is saved. The structure must be previously allocated - call_user_function() does NOT allocate it by itself.

int param_count

The number of parameters being passed to the function.

pval *params[]

An array of pointers to values that will be passed as arguments to the function, the first argument being in offset 0, the second in offset 1, etc. The array is an array of pointers to pval's; The pointers are sent as-is to the function, which means if the function modifies its arguments, the original values are changed (passing by reference). If you don't want that behavior, pass a copy instead.

Předcházející | Domů | Další
Extending PHP 3 | Nahoru | Reporting Errors


Reporting Errors

To report errors from an internal function, you should call the php3_error() function. This takes at least two parameters -- the first is the level of the error, the second is the format string for the error message (as in a standard printf() call), and any following arguments are the parameters for the format string. The error levels are:

E_NOTICE

Notices are not printed by default, and indicate that the script encountered something that could indicate an error, but could also happen in the normal course of running a script. For example, trying to access the value of a variable which has not been set, or calling stat() on a file that doesn't exist.

E_WARNING

Warnings are printed by default, but do not interrupt script execution. These indicate a problem that should have been trapped by the script before the call was made. For example, calling ereg() with an invalid regular expression.

E_ERROR

Errors are also printed by default, and execution of the script is halted after the function returns. These indicate errors that can not be recovered from, such as a memory allocation problem.

E_PARSE

Parse errors should only be generated by the parser. The code is listed here only for the sake of completeness.

E_CORE_ERROR

This is like an E_ERROR, except it is generated by the core of PHP. Functions should not generate this type of error.

E_CORE_WARNING

This is like an E_WARNING, except it is generated by the core of PHP. Functions should not generate this type of error.

E_COMPILE_ERROR

This is like an E_ERROR, except it is generated by the Zend Scripting Engine. Functions should not generate this type of error.

E_COMPILE_WARNING

This is like an E_WARNING, except it is generated by the Zend Scripting Engine. Functions should not generate this type of error.

E_USER_ERROR

This is like an E_ERROR, except it is generated in PHP code by using the PHP function trigger_error(). Functions should not generate this type of error.

E_USER_WARNING

This is like an E_WARNING, except it is generated by using the PHP function trigger_error(). Functions should not generate this type of error.

E_USER_NOTICE

This is like an E_NOTICE, except it is generated by using the PHP function trigger_error(). Functions should not generate this type of error.

E_ALL

All of the above. Using this error_reporting level will show all error types.

Předcházející | Domů | Další
Calling User Functions | Nahoru | Seznam aliasů funkcí


Seznam aliasů funkcí

Manuál PHP
Předcházející Další

Příloha G. Seznam aliasů funkcí

Toto je seznam aliasů. Všechny aliasy jsou zde uvedeny. Obvykle je špatným nápadem používat aliasy, mohou být spojeny s obsolentní nebo přejmenovanou funkcí, což povede k neportovatelnému skriptu. Tento seznam je poskytován proto, aby pomohl těm, kdo chtějí upgradovat své staré skripty na novou syntaxi.

Některé funkce mohou mít dva názvy a žádný není preferován (např. is_int() a is_integer() jsou rovnocenné)

Tento seznam je konzistentní s PHP 4.0.6.

Tabulka G-1. Aliasy

Alias | Základní funkce | Použité rozšíření
add | swfmovie_add() | Ming (flash)
add | swfsprite_add() | Ming (flash)
add_root | domxml_add_root() | DOM XML
addaction | swfbutton_addAction() | Ming (flash)
addcolor | swfdisplayitem_addColor() | Ming (flash)
addentry | swfgradient_addEntry() | Ming (flash)
addfill | swfshape_addfill() | Ming (flash)
addshape | swfbutton_addShape() | Ming (flash)
addstring | swftext_addString() | Ming (flash)
addstring | swftextfield_addString() | Ming (flash)
align | swftextfield_align() | Ming (flash)
attributes | domxml_attributes() | DOM XML
children | domxml_children() | DOM XML
chop | rtrim() | Base syntax
close | closedir() | Base syntax
com_get | com_propget() | COM
com_propset | com_propput() | COM
com_set | com_propput() | COM
cv_add | ccvs_add() | CCVS
cv_auth | ccvs_auth() | CCVS
cv_command | ccvs_command() | CCVS
cv_count | ccvs_count() | CCVS
cv_delete | ccvs_delete() | CCVS
cv_done | ccvs_done() | CCVS
cv_init | ccvs_init() | CCVS
cv_lookup | ccvs_lookup() | CCVS
cv_new | ccvs_new() | CCVS
cv_report | ccvs_report() | CCVS
cv_return | ccvs_return() | CCVS
cv_reverse | ccvs_reverse() | CCVS
cv_sale | ccvs_sale() | CCVS
cv_status | ccvs_status() | CCVS
cv_textvalue | ccvs_textvalue() | CCVS
cv_void | ccvs_void() | CCVS
die | exit() | Ostatní funkce
dir | getdir() | Základní syntaxe
diskfreespace | disk_free_space() | Filesystém
domxml_getattr | domxml_get_attribute() | DOM XML
domxml_setattr | domxml_set_attribute() | DOM XML
doubleval | floatval() | Base syntax
drawarc | swfshape_drawarc() | Ming (flash)
drawcircle | swfshape_drawcircle() | Ming (flash)
drawcubic | swfshape_drawcubic() | Ming (flash)
drawcubicto | swfshape_drawcubicto() | Ming (flash)
drawcurve | swfshape_drawcurve() | Ming (flash)
drawcurveto | swfshape_drawcurveto() | Ming (flash)
drawglyph | swfshape_drawglyph() | Ming (flash)
drawline | swfshape_drawline() | Ming (flash)
drawlineto | swfshape_drawlineto() | Ming (flash)
dtd | domxml_intdtd() | DOM XML
dumpmem | domxml_dumpmem() | DOM XML
fbsql | fbsql_db_query() | FrontBase
fputs | fwrite() | Base syntax
get_attribute | domxml_get_attribute() | DOM XML
getascent | swffont_getAscent() | Ming (flash)
getascent | swftext_getAscent() | Ming (flash)
getattr | domxml_get_attribute() | DOM XML
getdescent | swffont_getDescent() | Ming (flash)
getdescent | swftext_getDescent() | Ming (flash)
getheight | swfbitmap_getHeight() | Ming (flash)
getleading | swffont_getLeading() | Ming (flash)
getleading | swftext_getLeading() | Ming (flash)
getshape1 | swfmorph_getShape1() | Ming (flash)
getshape2 | swfmorph_getShape2() | Ming (flash)
getwidth | swfbitmap_getWidth() | Ming (flash)
getwidth | swffont_getWidth() | Ming (flash)
getwidth | swftext_getWidth() | Ming (flash)
gzputs | gzwrite() | Zlib
i18n_convert | mb_convert_encoding() | Multi-bytes Strings
i18n_discover_encoding | mb_detect_encoding() | Multi-bytes Strings
i18n_http_input | mb_http_input() | Multi-bytes Strings
i18n_http_output | mb_http_output() | Multi-bytes Strings
i18n_internal_encoding | mb_internal_encoding() | Multi-bytes Strings
i18n_ja_jp_hantozen | mb_convert_kana() | Multi-bytes Strings
i18n_mime_header_decode | mb_decode_mimeheader() | Multi-bytes Strings
i18n_mime_header_encode | mb_encode_mimeheader() | Multi-bytes Strings
imap_create | imap_createmailbox() | IMAP
imap_fetchtext | imap_body() | IMAP
imap_getmailboxes | imap_list_full() | IMAP
imap_getsubscribed | imap_lsub_full() | IMAP
imap_header | imap_headerinfo() | IMAP
imap_listmailbox | imap_list() | IMAP
imap_listsubscribed | imap_lsub() | IMAP
imap_rename | imap_renamemailbox() | IMAP
imap_scan | imap_listscan() | IMAP
imap_scanmailbox | imap_listscan() | IMAP
ini_alter | ini_set() | Základní syntaxe
is_double | is_float() | Základní syntaxe
is_integer | is_int() | Základní syntaxe
is_long | is_int() | Základní syntaxe
is_real | is_float() | Základní syntaxe
is_writeable | is_writable() | Základní syntaxe
join | implode() | Základní syntaxe
labelframe | swfmovie_labelFrame() | Ming (flash)
labelframe | swfsprite_labelFrame() | Ming (flash)
last_child | domxml_last_child() | DOM XML
lastchild | domxml_last_child() | DOM XML
ldap_close | ldap_unbind() | LDAP
magic_quotes_runtime | set_magic_quotes_runtime() | Základní syntaxe
mbstrcut | mb_strcut() | Řetězce s vícebytovými znaky
mbstrlen | mb_strlen() | Řetězce s vícebytovými znaky
mbstrpos | mb_strpos() | Řetězce s vícebytovými znaky
mbstrrpos | mb_strrpos() | Řetězce s vícebytovými znaky
mbsubstr | mb_substr() | Řetězce s vícebytovými znaky
ming_setcubicthreshold | ming_setCubicThreshold() | Ming (flash)
ming_setscale | ming_setScale() | Ming (flash)
move | swfdisplayitem_move() | Ming (flash)
movepen | swfshape_movepen() | Ming (flash)
movepento | swfshape_movepento() | Ming (flash)
moveto | swfdisplayitem_moveTo() | Ming (flash)
moveto | swffill_moveTo() | Ming (flash)
moveto | swftext_moveTo() | Ming (flash)
msql | msql_db_query() | mSQL
msql_affected_rows | msql_affected_rows() | mSQL
msql_createdb | msql_create_db() | mSQL
msql_dbname | msql_result() | mSQL
msql_dropdb | msql_drop_db() | mSQL
msql_fieldflags | msql_field_flags() | mSQL
msql_fieldlen | msql_field_len() | mSQL
msql_fieldname | msql_field_name() | mSQL
msql_fieldtable | msql_field_table() | mSQL
msql_fieldtype | msql_field_type() | mSQL
msql_freeresult | msql_free_result() | mSQL
msql_listdbs | msql_list_dbs() | mSQL
msql_listfields | msql_list_fields() | mSQL
msql_listtables | msql_list_tables() | mSQL
msql_numfields | msql_num_fields() | mSQL
msql_numrows | msql_num_rows() | mSQL
msql_regcase | sql_regcase() | mSQL
msql_selectdb | msql_select_db() | mSQL
msql_tablename | msql_result() | mSQL
mssql_affected_rows | sybase_affected_rows() | Sybase
mssql_affected_rows | sybase_affected_rows() | Sybase
mssql_close | sybase_close() | Sybase
mssql_close | sybase_close() | Sybase
mssql_connect | sybase_connect() | Sybase
mssql_connect | sybase_connect() | Sybase
mssql_data_seek | sybase_data_seek() | Sybase
mssql_data_seek | sybase_data_seek() | Sybase
mssql_fetch_array | sybase_fetch_array() | Sybase
mssql_fetch_array | sybase_fetch_array() | Sybase
mssql_fetch_field | sybase_fetch_field() | Sybase
mssql_fetch_field | sybase_fetch_field() | Sybase
mssql_fetch_object | sybase_fetch_object() | Sybase
mssql_fetch_object | sybase_fetch_object() | Sybase
mssql_fetch_row | sybase_fetch_row() | Sybase
mssql_fetch_row | sybase_fetch_row() | Sybase
mssql_field_seek | sybase_field_seek() | Sybase
mssql_field_seek | sybase_field_seek() | Sybase
mssql_free_result | sybase_free_result() | Sybase
mssql_free_result | sybase_free_result() | Sybase
mssql_get_last_message | sybase_get_last_message() | Sybase
mssql_get_last_message | sybase_get_last_message() | Sybase
mssql_min_client_severity | sybase_min_client_severity() | Sybase
mssql_min_error_severity | sybase_min_error_severity() | Sybase
mssql_min_message_severity | sybase_min_message_severity() | Sybase
mssql_min_server_severity | sybase_min_server_severity() | Sybase
mssql_num_fields | sybase_num_fields() | Sybase
mssql_num_fields | sybase_num_fields() | Sybase
mssql_num_rows | sybase_num_rows() | Sybase
mssql_num_rows | sybase_num_rows() | Sybase
mssql_pconnect | sybase_pconnect() | Sybase
mssql_pconnect | sybase_pconnect() | Sybase
mssql_query | sybase_query() | Sybase
mssql_query | sybase_query() | Sybase
mssql_result | sybase_result() | Sybase
mssql_result | sybase_result() | Sybase
mssql_select_db | sybase_select_db() | Sybase
mssql_select_db | sybase_select_db() | Sybase
multcolor | swfdisplayitem_multColor() | Ming (flash)
mysql | mysql_db_query() | MySQL
mysql_createdb | mysql_create_db() | MySQL
mysql_db_name | mysql_result() | MySQL
mysql_dbname | mysql_result() | MySQL
mysql_dropdb | mysql_drop_db() | MySQL
mysql_fieldflags | mysql_field_flags() | MySQL
mysql_fieldlen | mysql_field_len() | MySQL
mysql_fieldname | mysql_field_name() | MySQL
mysql_fieldtable | mysql_field_table() | MySQL
mysql_fieldtype | mysql_field_type() | MySQL
mysql_freeresult | mysql_free_result() | MySQL
mysql_listdbs | mysql_list_dbs() | MySQL
mysql_listfields | mysql_list_fields() | MySQL
mysql_listtables | mysql_list_tables() | MySQL
mysql_numfields | mysql_num_fields() | MySQL
mysql_numrows | mysql_num_rows() | MySQL
mysql_selectdb | mysql_select_db() | MySQL
mysql_tablename | mysql_result() | MySQL
name | domxml_attrname() | DOM XML
new_child | domxml_new_child() | DOM XML
new_xmldoc | domxml_new_xmldoc() | DOM XML
nextframe | swfmovie_nextFrame() | Ming (flash)
nextframe | swfsprite_nextFrame() | Ming (flash)
node | domxml_node() | DOM XML
oci8append | ocicollappend() | OCI8
oci8assign | ocicollassign() | OCI8
oci8assignelem | ocicollassignelem() | OCI8
oci8close | ocicloselob() | OCI8
oci8free | ocifreecoll() | OCI8
oci8free | ocifreedesc() | OCI8
oci8getelem | ocicollgetelem() | OCI8
oci8load | ociloadlob() | OCI8
oci8max | ocicollmax() | OCI8
oci8ocifreecursor | ocifreestatement() | OCI8
oci8save | ocisavelob() | OCI8
oci8savefile | ocisavelobfile() | OCI8
oci8size | ocicollsize() | OCI8
oci8trim | ocicolltrim() | OCI8
oci8writetemporary | ociwritetemporarylob() | OCI8
oci8writetofile | ociwritelobtofile() | OCI8
odbc_do | odbc_exec() | OCI8
odbc_field_precision | odbc_field_len() | OCI8
orbit_caught_exception | satellite_caught_exception() | Satellite
orbit_exception_id | satellite_exception_id() | Satellite
orbit_exception_value | satellite_exception_value() | Satellite
orbit_get_repository_id | satellite_get_repository_id() | Satellite
orbit_load_idl | satellite_load_idl() | Satellite
output | swfmovie_output() | Ming (flash)
parent | domxml_parent() | DOM XML
pdf_add_outline | pdf_add_bookmark() | PDF
pg_clientencoding | pg_client_encoding() | PostgreSQL
pg_setclientencoding | pg_set_client_encoding() | PostgreSQL
pos | current() | Base syntax
recode | recode_string() | Recode
remove | swfmovie_remove() | Ming (flash)
remove | swfsprite_remove() | Ming (flash)
rewind | rewinddir() | Base syntax
root | domxml_root() | DOM XML
rotate | swfdisplayitem_rotate() | Ming (flash)
rotateto | swfdisplayitem_rotateTo() | Ming (flash)
rotateto | swffill_rotateTo() | Ming (flash)
save | swfmovie_save() | Ming (flash)
savetofile | swfmovie_saveToFile() | Ming (flash)
scale | swfdisplayitem_scale() | Ming (flash)
scaleto | swfdisplayitem_scaleTo() | Ming (flash)
scaleto | swffill_scaleTo() | Ming (flash)
set_attribute | domxml_set_attribute() | DOM XML
set_content | domxml_set_content() | DOM XML
setaction | swfbutton_setAction() | Ming (flash)
setattr | domxml_set_attribute() | DOM XML
setbackground | swfmovie_setBackground() | Ming (flash)
setbounds | swftextfield_setBounds() | Ming (flash)
setcolor | swftext_setColor() | Ming (flash)
setcolor | swftextfield_setColor() | Ming (flash)
setdepth | swfdisplayitem_setDepth() | Ming (flash)
setdimension | swfmovie_setDimension() | Ming (flash)
setdown | swfbutton_setDown() | Ming (flash)
setfont | swftext_setFont() | Ming (flash)
setfont | swftextfield_setFont() | Ming (flash)
setframes | swfmovie_setFrames() | Ming (flash)
setframes | swfsprite_setFrames() | Ming (flash)
setheight | swftext_setHeight() | Ming (flash)
setheight | swftextfield_setHeight() | Ming (flash)
sethit | swfbutton_setHit() | Ming (flash)
setindentation | swftextfield_setIndentation() | Ming (flash)
setleftfill | swfshape_setleftfill() | Ming (flash)
setleftmargin | swftextfield_setLeftMargin() | Ming (flash)
setline | swfshape_setline() | Ming (flash)
setlinespacing | swftextfield_setLineSpacing() | Ming (flash)
setmargins | swftextfield_setMargins() | Ming (flash)
setmatrix | swfdisplayitem_setMatrix() | Ming (flash)
setname | swfdisplayitem_setName() | Ming (flash)
setname | swftextfield_setName() | Ming (flash)
setover | swfbutton_setOver() | Ming (flash)
setrate | swfmovie_setRate() | Ming (flash)
setratio | swfdisplayitem_setRatio() | Ming (flash)
setrightfill | swfshape_setrightfill() | Ming (flash)
setrightmargin | swftextfield_setRightMargin() | Ming (flash)
setspacing | swftext_setSpacing() | Ming (flash)
setup | swfbutton_setUp() | Ming (flash)
show_source | highlight_file () | Základní syntaxe
sizeof | count() | Základní syntaxe
skewx | swfdisplayitem_skewX() | Ming (flash)
skewxto | swfdisplayitem_skewXTo() | Ming (flash)
skewxto | swffill_skewXTo() | Ming (flash)
skewy | swfdisplayitem_skewY() | Ming (flash)
skewyto | swfdisplayitem_skewYTo() | Ming (flash)
skewyto | swffill_skewYTo() | Ming (flash)
snmpwalkoid | snmprealwalk() | SNMP
strchr | strstr() | Základní syntaxe
streammp3 | swfmovie_streamMp3() | Ming (flash)
swfaction | swfaction_init() | Ming (flash)
swfbitmap | swfbitmap_init() | Ming (flash)
swfbutton | swfbutton_init() | Ming (flash)
swfbutton_keypress | swfbutton_keypress() | Ming (flash)
swffill | swffill_init() | Ming (flash)
swffont | swffont_init() | Ming (flash)
swfgradient | swfgradient_init() | Ming (flash)
swfmorph | swfmorph_init() | Ming (flash)
swfmovie | swfmovie_init() | Ming (flash)
swfshape | swfshape_init() | Ming (flash)
swfsprite | swfsprite_init() | Ming (flash)
swftext | swftext_init() | Ming (flash)
swftextfield | swftextfield_init() | Ming (flash)
unlink | domxml_unlink_node() | DOM XML
xpath_eval | xpath_eval() | DOM XML
xpath_eval_expression | xpath_eval_expression() | DOM XML
xpath_init | xpath_init() | DOM XML
xpath_new_context | xpath_new_context() | DOM XML
xptr_new_context | xpath_new_context() | DOM XML

Předcházející | Domů | Další
Reporting Errors | Nahoru | Seznam vyhrazených slov


Seznam vyhrazených slov

Manuál PHP
Předcházející Další

Příloha H. Seznam vyhrazených slov

Toto je seznam vyhrazených slov PHP, obvykle konstant a předdefinovaných proměnných. Nenajdete zde žádné funkce, což však neplatí pro jazykové konstrukty. Uvedenými názvy byste se neměli pokoušet nazývat proměnné, funkce, konstanty nebo metody, vedlo by to spolehlivě ke zmatku.

and | E_PARSE | old_function
$argv | E_ERROR | or
as | E_WARNING | parent
$argc | eval | PHP_OS
break | exit() | $PHP_SELF
case | extends | PHP_VERSION
cfunction | FALSE | print()
class | for | require()
continue | foreach | require_once()
declare | function | return()
default | $HTTP_COOKIE_VARS | static
do | $HTTP_GET_VARS | switch
die() | $HTTP_POST_VARS | stdClass
echo() | $HTTP_POST_FILES | $this
else | $HTTP_ENV_VARS | TRUE
elseif | $HTTP_SERVER_VARS | var
empty() | if | xor
enddeclare | include() | virtual()
endfor | include_once() | while
endforeach | global | __FILE__
endif | list() | __LINE__
endswitch | new | __sleep
endwhile | not | __wakeup
E_ALL | NULL |

Předcházející | Domů | Další
Seznam aliasů funkcí | Nahoru | List of Resource Types


List of Resource Types

Manuál PHP
Předcházející Další

Příloha I. List of Resource Types

The following is a list of functions which create, use or destroy PHP resources. The function is_resource() can be used to determine if a variable is a resource and get_resource_type() will return the type of resource it is.

Tabulka I-1. Resource Types

Resource Type Name | Created By | Used By | Destroyed By | Definition
aspell | aspell_new() | aspell_check(), aspell_check_raw(), aspell_suggest() | None | Aspell dictionary
bzip2 | bzopen() | bzerrno(), bzerror(), bzerrstr(), bzflush(), bzread(), bzwrite() | bzclose() | Bzip2 file
COM | com_load() | com_invoke(), com_propget(), com_get(), com_propput(), com_set(), com_propput() | None | COM object reference
VARIANT
cpdf | cpdf_open() | cpdf_page_init(), cpdf_finalize_page(), cpdf_finalize(), cpdf_output_buffer(), cpdf_save_to_file(), cpdf_set_current_page(), cpdf_begin_text(), cpdf_end_text(), cpdf_show(), cpdf_show_xy(), cpdf_text(), cpdf_set_font(), cpdf_set_leading(), cpdf_set_text_rendering(), cpdf_set_horiz_scaling(), cpdf_set_text_rise(), cpdf_set_text_matrix(), cpdf_set_text_pos(), cpdf_set_text_pos(), cpdf_set_word_spacing(), cpdf_continue_text(), cpdf_stringwidth(), cpdf_save(), cpdf_translate(), cpdf_restore(), cpdf_scale(), cpdf_rotate(), cpdf_setflat(), cpdf_setlinejoin(), cpdf_setlinecap(), cpdf_setmiterlimit(), cpdf_setlinewidth(), cpdf_setdash(), cpdf_moveto(), cpdf_rmoveto(), cpdf_curveto(), cpdf_lineto(), cpdf_rlineto(), cpdf_circle(), cpdf_arc(), cpdf_rect(), cpdf_closepath(), cpdf_stroke(), cpdf_closepath_fill_stroke(), cpdf_fill_stroke(), cpdf_clip(), cpdf_fill(), cpdf_setgray_fill(), cpdf_setgray_stroke(), cpdf_setgray(), cpdf_setrgbcolor_fill(), cpdf_setrgbcolor_stroke(), cpdf_setrgbcolor(), cpdf_add_outline(), cpdf_set_page_animation(), cpdf_import_jpeg(), cpdf_place_inline_image(), cpdf_add_annotation() | cpdf_close() | PDF document with CPDF lib
cpdf outline
curl | curl_init() | curl_init(), curl_exec() | curl_close() | Curl session
dbm | dbmopen() | dbmexists(), dbmfetch(), dbminsert(), dbmreplace(), dbmdelete(), dbmfirstkey(), dbmnextkey() | dbmclose() | Link to DBM database
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
dbx_link_object | dbx_connect() | dbx_query() | dbx_close() | dbx connection
dbx_result_object | dbx_query() | None | dbx result
domxml attribute
domxml document
domxml node
xpath context
xpath object
fbsql database | fbsql_select_db() | None | fbsql database
fbsql link | fbsql_change_user(), fbsql_connect() | fbsql_autocommit(), fbsql_change_user(), fbsql_create_db(), fbsql_data_seek(), fbsql_db_query(), fbsql_drop_db(), (), fbsql_select_db(), fbsql_errno(), fbsql_error(), fbsql_insert_id(), fbsql_list_dbs() | fbsql_close() | Link to fbsql database
fbsql plink | fbsql_change_user(), fbsql_pconnect() | fbsql_autocommit(), fbsql_change_user(), fbsql_create_db(), fbsql_data_seek(), fbsql_db_query(), fbsql_drop_db(), (), fbsql_select_db(), fbsql_errno(), fbsql_error(), fbsql_insert_id(), fbsql_list_dbs() | None | Persistent link to fbsql database
fbsql result | fbsql_db_query(), fbsql_list_dbs(), fbsql_query(), fbsql_list_fields(), fbsql_list_tables(), fbsql_tablename() | fbsql_affected_rows(), fbsql_fetch_array(), fbsql_fetch_assoc(), fbsql_fetch_field(), fbsql_fetch_lengths(), fbsql_fetch_object(), fbsql_fetch_row(), fbsql_field_flags(), fbsql_field_name(), fbsql_field_len(), fbsql_field_seek(), fbsql_field_table(), fbsql_field_type(), fbsql_next_result(), fbsql_num_fields(), fbsql_num_rows(), fbsql_result(), fbsql_num_rows() | fbsql_free_result() | fbsql result
fdf | fdf_open() | fdf_create(), fdf_save(), fdf_get_value(), fdf_set_value(), fdf_next_field_name(), fdf_set_ap(), fdf_set_status(), fdf_get_status(), fdf_set_file(), fdf_get_file(), fdf_set_flags(), fdf_set_opt(), fdf_set_submit_form_action(), fdf_set_javascript_action() | fdf_close() | FDF File
ftp | ftp_connect() | ftp_login(), ftp_pwd(), ftp_cdup(), ftp_chdir(), ftp_mkdir(), ftp_rmdir(), ftp_nlist(), ftp_rawlist(), ftp_systype(), ftp_pasv(), ftp_get(), ftp_fget(), ftp_put(), ftp_fput(), ftp_size(), ftp_mdtm(), ftp_rename(), ftp_delete(), ftp_site() | ftp_quit() | FTP stream
gd | imagecreate(), imagecreatefromgif(), imagecreatefromjpeg(), imagecreatefrompng(), imagecreatefromwbmp(), imagecreatefromstring(), imagecreatetruecolor() | imagearc(), imagechar(), imagecharup(), imagecolorallocate(), imagecolorat(), imagecolorclosest(), imagecolorexact(), imagecolorresolve(), imagegammacorrect(), imagegammacorrect(), imagecolorset(), imagecolorsforindex(), imagecolorstotal(), imagecolortransparent(), imagecopy(), imagecopyresized(), imagedashedline(), imagefill(), imagefilledpolygon(), imagefilledrectangle(), imagefilltoborder(), imagegif(), imagepng(), imagejpeg(), imagewbmp(), imageinterlace(), imageline(), imagepolygon(), imagepstext(), imagerectangle(), imagesetpixel(), imagestring(), imagestringup(), imagesx(), imagesy(), imagettftext(), imagefilledarc(), imageellipse(), imagefilledellipse(), imagecolorclosestalpha(), imagecolorexactalpha(), imagecolorresolvealpha(), imagecopymerge(), imagecopymergegray(), imagecopyresampled(), imagetruecolortopalette(), imagesetbrush(), imagesettile(), imagesetthickness() | imagedestroy() | GD Image
gd font | imageloadfont() | imagechar(), imagecharup(), imagefontheight() | None | Font for GD
gd PS encoding
gd PS font | imagepsloadfont() | imagepstext(), imagepsslantfont(), imagepsextendfont(), imagepsencodefont(), imagepsbbox() | imagepsfreefont() | PS font for GD
GMP integer | gmp_init() | gmp_intval(), gmp_strval(), gmp_add(), gmp_sub(), gmp_mul(), gmp_div_q(), gmp_div_r(), gmp_div_qr(), gmp_div(), gmp_mod(), gmp_divexact(), gmp_cmp(), gmp_neg(), gmp_abs(), gmp_sign(), gmp_fact(), gmp_sqrt(), gmp_sqrtrm(), gmp_perfect_square(), gmp_pow(), gmp_powm(), gmp_prob_prime(), gmp_gcd(), gmp_gcdext(), gmp_invert(), gmp_legendre(), gmp_jacobi(), gmp_random(), gmp_and(), gmp_or(), gmp_xor(), gmp_setbit(), gmp_clrbit(), gmp_scan0(), gmp_scan1(), gmp_popcount(), gmp_hamdist() | None | GMP Number
hyperwave document | hw_cp(), hw_docbyanchor(), hw_getremote(), hw_getremotechildren() | hw_children(), hw_childrenobj(), hw_getparents(), hw_getparentsobj(), hw_getchildcoll(), hw_getchildcollobj(), hw_getremote(), hw_getsrcbydestobj(), hw_getandlock(), hw_gettext(), hw_getobjectbyquerycoll(), hw_getobjectbyquerycollobj(), hw_getchilddoccoll(), hw_getchilddoccollobj(), hw_getanchors(), hw_getanchorsobj(), hw_inscoll(), hw_pipedocument(), hw_unlock() | hw_deleteobject() | Hyperwave object
hyperwave link | hw_connect() | hw_children(), hw_childrenobj(), hw_cp(), hw_deleteobject(), hw_docbyanchor(), hw_docbyanchorobj(), hw_errormsg(), hw_edittext(), hw_error(), hw_getparents(), hw_getparentsobj(), hw_getchildcoll(), hw_getchildcollobj(), hw_getremote(), hw_getremotechildren(), hw_getsrcbydestobj(), hw_getobject(), hw_getandlock(), hw_gettext(), hw_getobjectbyquery(), hw_getobjectbyqueryobj(), hw_getobjectbyquerycoll(), hw_getobjectbyquerycollobj(), hw_getchilddoccoll(), hw_getchilddoccollobj(), hw_getanchors(), hw_getanchorsobj(), hw_mv(), hw_incollections(), hw_info(), hw_inscoll(), hw_insdoc(), hw_insertdocument(), hw_insertobject(), hw_mapid(), hw_modifyobject(), hw_pipedocument(), hw_unlock(), hw_who(), hw_getusername() | hw_close(), hw_free_document() | Link to Hyperwave server
hyperwave link persistent | hw_pconnect() | hw_children(), hw_childrenobj(), hw_cp(), hw_deleteobject(), hw_docbyanchor(), hw_docbyanchorobj(), hw_errormsg(), hw_edittext(), hw_error(), hw_getparents(), hw_getparentsobj(), hw_getchildcoll(), hw_getchildcollobj(), hw_getremote(), hw_getremotechildren(), hw_getsrcbydestobj(), hw_getobject(), hw_getandlock(), hw_gettext(), hw_getobjectbyquery(), hw_getobjectbyqueryobj(), hw_getobjectbyquerycoll(), hw_getobjectbyquerycollobj(), hw_getchilddoccoll(), hw_getchilddoccollobj(), hw_getanchors(), hw_getanchorsobj(), hw_mv(), hw_incollections(), hw_info(), hw_inscoll(), hw_insdoc(), hw_insertdocument(), hw_insertobject(), hw_mapid(), hw_modifyobject(), hw_pipedocument(), hw_unlock(), hw_who(), hw_getusername() | None | Persistent link to Hyperwave server
icap | icap_open() | icap_fetch_event(), icap_list_events(), icap_store_event(), icap_snooze(), icap_list_alarms(), icap_delete_event() | icap_close() | Link to icap server
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 to IMAP, POP3 server
imap chain persistent
imap persistent
ingres | ingres_connect() | ingres_query(), ingres_num_rows(), ingres_num_fields(), ingres_field_name(), ingres_field_type(), ingres_field_nullable(), ingres_field_length(), ingres_field_precision(), ingres_field_scale(), ingres_fetch_array(), ingres_fetch_row(), ingres_fetch_object(), ingres_rollback(), ingres_commit(), ingres_autocommit() | ingres_close() | Link to ingresII base
ingres persistent | ingres_pconnect() | ingres_query(), ingres_num_rows(), ingres_num_fields(), ingres_field_name(), ingres_field_type(), ingres_field_nullable(), ingres_field_length(), ingres_field_precision(), ingres_field_scale(), ingres_fetch_array(), ingres_fetch_row(), ingres_fetch_object(), ingres_rollback(), ingres_commit(), ingres_autocommit() | None | Persistent link to ingresII base
interbase blob
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 | Persistent link to Interbase database
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
java
ldap link | ldap_connect(), ldap_search() | ldap_count_entries(), ldap_first_attribute(), ldap_first_entry(), ldap_get_attributes(), ldap_get_dn(), ldap_get_entries(), ldap_get_values(), ldap_get_values_len(), ldap_next_attribute(), ldap_next_entry() | ldap_close() | ldap connection
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
ldap result entry
mcal | mcal_open(), mcal_popen() | mcal_create_calendar(), mcal_rename_calendar(), mcal_rename_calendar(), mcal_delete_calendar(), mcal_fetch_event(), mcal_list_events(), mcal_append_event(), mcal_store_event(), mcal_delete_event(), mcal_list_alarms(), mcal_event_init(), mcal_event_set_category(), mcal_event_set_title(), mcal_event_set_description(), mcal_event_set_start(), mcal_event_set_end(), mcal_event_set_alarm(), mcal_event_set_class(), mcal_next_recurrence(), mcal_event_set_recur_none(), mcal_event_set_recur_daily(), mcal_event_set_recur_weekly(), mcal_event_set_recur_monthly_mday(), mcal_event_set_recur_monthly_wday(), mcal_event_set_recur_yearly(), mcal_fetch_current_stream_event(), mcal_event_add_attribute(), mcal_expunge() | mcal_close() | Link to calendar server
SWFAction
SWFBitmap
SWFButton
SWFDisplayItem
SWFFill
SWFFont
SWFGradient
SWFMorph
SWFMovie
SWFShape
SWFSprite
SWFText
SWFTextField
mnogosearch agent
mnogosearch result
msql link | msql_connect() | msql(), msql_create_db(), msql_createdb(), msql_drop_db(), msql_drop_db(), msql_select_db(), msql_select_db() | msql_close() | Link to mSQL database
msql link persistent | msql_pconnect() | msql(), msql_create_db(), msql_createdb(), msql_drop_db(), msql_drop_db(), msql_select_db(), msql_select_db() | None | Persistent link to mSQL
msql query | msql_query() | msql(), msql_affected_rows(), msql_data_seek(), msql_dbname(), msql_fetch_array(), msql_fetch_field(), msql_fetch_object(), msql_fetch_row(), msql_fieldname(), msql_field_seek(), msql_fieldtable(), msql_fieldtype(), msql_fieldflags(), msql_fieldlen(), msql_num_fields(), msql_num_rows(), msql_numfields(), msql_numrows(), msql_result() | msql_free_result(), msql_free_result() | mSQL result
mssql link | mssql_connect() | mssql_query(), mssql_select_db() | mssql_close() | Link to Microsft SQL Server database
mssql link persistent | mssql_pconnect() | mssql_query(), mssql_select_db() | None | Persistent link to Microsft SQL Server
mssql result | mssql_query() | mssql_data_seek(), mssql_fetch_array(), mssql_fetch_field(), mssql_fetch_object(), mssql_fetch_row(), mssql_field_length(), mssql_field_name(), mssql_field_seek(), mssql_field_type(), mssql_num_fields(), mssql_num_rows(), mssql_result() | mssql_free_result() | Microsft SQL Server result
mysql link | mysql_connect() | mysql_affected_rows(), mysql_change_user(), mysql_create_db(), mysql_data_seek(), mysql_db_name(), mysql_db_query(), mysql_drop_db(), mysql_errno(), mysql_error(), mysql_insert_id(), mysql_list_dbs(), mysql_list_fields(), mysql_list_tables(), mysql_query(), mysql_result(), mysql_select_db(), mysql_tablename(), mysql_get_host_info(), mysql_get_proto_info(), mysql_get_server_info() | mysql_close() | Link to MySQL database
mysql link persistent | mysql_pconnect() | mysql_affected_rows(), mysql_change_user(), mysql_create_db(), mysql_data_seek(), mysql_db_name(), mysql_db_query(), mysql_drop_db(), mysql_errno(), mysql_error(), mysql_insert_id(), mysql_list_dbs(), mysql_list_fields(), mysql_list_tables(), mysql_query(), mysql_result(), mysql_select_db(), mysql_tablename(), mysql_get_host_info(), mysql_get_proto_info(), mysql_get_server_info() | None | Persistent link to MySQL database
mysql result | mysql_db_query(), mysql_list_dbs(), mysql_list_fields(), mysql_list_tables(), mysql_query() | mysql_data_seek(), mysql_db_name(), mysql_fetch_array(), mysql_fetch_assoc(), mysql_fetch_field(), mysql_fetch_lengths(), mysql_fetch_object(), mysql_fetch_row(), mysql_fetch_row(), mysql_field_flags(), mysql_field_name(), mysql_field_len(), mysql_field_seek(), mysql_field_table(), mysql_field_type(), mysql_num_fields(), mysql_num_rows(), mysql_result(), mysql_tablename() | mysql_free_result() | MySQL result
oci8 collection
oci8 connection | ocilogon(), ociplogon(), ocinlogon() | ocicommit(), ociserverversion(), ocinewcursor(), ociparse(), ocierror() | ocilogoff() | Link to Oracle database
oci8 descriptor
oci8 server
oci8 session
oci8 statement | ocinewdescriptor() | ocirollback(), ocinewdescriptor(), ocirowcount(), ocidefinebyname(), ocibindbyname(), ociexecute(), ocinumcols(), ociresult(), ocifetch(), ocifetchinto(), ocifetchstatement(), ocicolumnisnull(), ocicolumnname(), ocicolumnsize(), ocicolumntype(), ocistatementtype(), ocierror() | ocifreestatement() | Oracle Cursor
odbc link | odbc_connect() | odbc_autocommit(), odbc_commit(), odbc_error(), odbc_errormsg(), odbc_exec(), odbc_tables(), odbc_tableprivileges(), odbc_do(), odbc_prepare(), odbc_columns(), odbc_columnprivileges(), odbc_procedurecolumns(), odbc_specialcolumns(), odbc_rollback(), odbc_setoption(), odbc_gettypeinfo(), odbc_primarykeys(), odbc_foreignkeys(), odbc_procedures(), odbc_statistics() | odbc_close() | Link to ODBC database
odbc link persistent | odbc_connect() | odbc_autocommit(), odbc_commit(), odbc_error(), odbc_errormsg(), odbc_exec(), odbc_tables(), odbc_tableprivileges(), odbc_do(), odbc_prepare(), odbc_columns(), odbc_columnprivileges(), odbc_procedurecolumns(), odbc_specialcolumns(), odbc_rollback(), odbc_setoption(), odbc_gettypeinfo(), odbc_primarykeys(), odbc_foreignkeys(), odbc_procedures(), odbc_statistics() | None | Persistent link to ODBC database
odbc result | odbc_prepare() | odbc_binmode(), odbc_cursor(), odbc_execute(), odbc_fetch_into(), odbc_fetch_row(), odbc_field_name(), odbc_field_num(), odbc_field_type(), odbc_field_len(), odbc_field_precision(), odbc_field_scale(), odbc_longreadlen(), odbc_num_fields(), odbc_num_rows(), odbc_result(), odbc_result_all(), odbc_setoption() | odbc_free_result() | ODBC result
birdstep link
birdstep result
OpenSSL key | openssl_get_privatekey(), openssl_get_publickey() | openssl_sign(), openssl_seal(), openssl_open(), openssl_verify() | openssl_free_key() | OpenSSL key
OpenSSL X.509 | openssl_x509_read() | openssl_x509_parse(), openssl_x509_checkpurpose() | openssl_x509_free() | Public Key
oracle Cursor | ora_open() | ora_bind(), ora_columnname(), ora_columnsize(), ora_columntype(), ora_error(), ora_errorcode(), ora_exec(), ora_fetch(), ora_fetch_into(), ora_getcolumn(), ora_numcols(), ora_numrows(), ora_parse() | ora_close() | Oracle cursor
oracle link | ora_logon() | ora_do(), ora_error(), ora_errorcode(), ora_rollback(), ora_commitoff(), ora_commiton(), ora_open(), ora_commit() | ora_logoff() | Link to oracle database
oracle link persistent | ora_plogon() | ora_do(), ora_error(), ora_errorcode(), ora_rollback(), ora_commitoff(), ora_commiton(), ora_open(), ora_commit() | None | Persistent link to oracle database
pdf document | pdf_new() | pdf_add_bookmark(), pdf_add_launchlink(), pdf_add_locallink(), pdf_add_note(), pdf_add_pdflink(), pdf_add_weblink(), pdf_arc(), pdf_attach_file(), pdf_begin_page(), pdf_circle(), pdf_clip(), pdf_closepath(), pdf_closepath_fill_stroke(), pdf_closepath_stroke(), pdf_concat(), pdf_continue_text(), pdf_curveto(), pdf_end_page(), pdf_endpath(), pdf_fill(), pdf_fill_stroke(), pdf_findfont(), pdf_get_buffer(), pdf_get_image_height(), pdf_get_image_width(), pdf_get_parameter(), pdf_get_value(), pdf_lineto(), pdf_moveto(), pdf_open_ccitt(), pdf_open_file(), pdf_open_image_file(), pdf_place_image(), pdf_rect(), pdf_restore(), pdf_rotate(), pdf_save(), pdf_scale(), pdf_setdash(), pdf_setflat(), pdf_setfont(), pdf_setgray(), pdf_setgray_fill(), pdf_setgray_stroke(), pdf_setlinecap(), pdf_setlinejoin(), pdf_setlinewidth(), pdf_setmiterlimit(), pdf_setpolydash(), pdf_setrgbcolor(), pdf_setrgbcolor_fill(), pdf_setrgbcolor_stroke(), pdf_set_border_color(), pdf_set_border_dash(), pdf_set_border_style(), pdf_set_char_spacing(), pdf_set_duration(), pdf_set_font(), pdf_set_horiz_scaling(), pdf_set_parameter(), pdf_set_text_pos(), pdf_set_text_rendering(), pdf_set_value(), pdf_set_word_spacing(), pdf_show(), pdf_show_boxed(), pdf_show_xy(), pdf_skew(), pdf_stringwidth(), pdf_stroke(), pdf_translate(), pdf_open_memory_image() | pdf_close(), pdf_delete() | PDF document
pdf image | pdf_open_image(), pdf_open_image_file(), pdf_open_memory_image() | pdf_get_image_height(), pdf_get_image_width(), pdf_open_CCITT(), pdf_place_image() | pdf_close_image() | Image in PDF file
pdf object
pdf outline
pgsql large object | pg_lo_open() | pg_lo_open(), pg_lo_create(), pg_lo_read(), pg_lo_read_all(), pg_lo_seek(), pg_lo_tell(), pg_lo_unlink(), pg_lo_write() | pg_lo_close() | PostgreSQL Large Object
pgsql link | pg_connect() | pg_affected_rows(), pg_query(), pg_send_query(), pg_get_result(), pg_connection_busy(), pg_connection_reset(), pg_connection_status(), pg_last_error(), pg_last_notice(), pg_lo_create(), pg_lo_export(), pg_lo_import(), pg_lo_open(), pg_lo_unlink(), pg_host(), pg_port(), pg_dbname(), pg_options(), pg_copy_from(), pg_copy_to(), pg_end_copy(), pg_put_line(), pg_tty(), pg_trace(), pg_untrace(), pg_set_client_encoding(), pg_client_encoding(), pg_metadata(), pg_convert(), pg_insert(), pg_select(), pg_delete(), pg_update() | pg_close() | Link to PostgreSQL database
pgsql link persistent | pg_pconnect() | pg_affected_rows(), pg_query(), pg_send_query(), pg_get_result(), pg_connection_busy(), pg_connection_reset(), pg_connection_status(), pg_last_error(), pg_last_notice(), pg_lo_create(), pg_lo_export(), pg_lo_import(), pg_lo_open(), pg_lo_unlink(), pg_host(), pg_port(), pg_dbname(), pg_options(), pg_copy_from(), pg_copy_to(), pg_end_copy(), pg_put_line(), pg_tty(), pg_trace(), pg_untrace(), pg_set_client_encoding(), pg_client_encoding(), pg_metadata(), pg_convert(), pg_insert(), pg_select(), pg_delete(), pg_update() | None | Persistent link to PostgreSQL database
pgsql result | pg_query(), pg_get_result() | pg_fetch_array(), pg_fetch_object(), pg_fetch_result(), pg_fetch_row(), pg_field_is_null(), pg_field_name(), pg_field_num(), pg_field_prtlen(), pg_field_size(), pg_field_type(), pg_last_oid(), pg_num_fields(), pg_num_rows(), pg_result_error(), pg_result_status() | pg_free_result() | PostgreSQL result
pgsql string
printer
printer brush
printer font
printer pen
pspell | pspell_new(), pspell_new_config(), pspell_new_personal() | pspell_add_to_personal(), pspell_add_to_session(), pspell_check(), pspell_clear_session(), pspell_config_ignore(), pspell_config_mode(), pspell_config_personal(), pspell_config_repl(), pspell_config_runtogether(), pspell_config_save_repl(), pspell_save_wordlist(), pspell_store_replacement(), pspell_suggest() | None | pspell dictionary
pspell config | pspell_config_create() | pspell_new_config() | None | pspell configuration
Sablotron XSLT | xslt_create() | xslt_closelog(), xslt_openlog(), xslt_run(), xslt_set_sax_handler(), xslt_errno(), xslt_error(), xslt_fetch_result(), xslt_free() | xslt_free() | XSLT parser
shmop | shmop_open() | shmop_read(), shmop_write(), shmop_size(), shmop_delete() | shmop_close()
sockets file descriptor set | socket() | accept_connect(), bind(), connect(), listen(), read(), write() | close() | Socket
sockets i/o vector
dir | dir() | readdir(), rewinddir() | closedir() | Dir handle
file | fopen() | feof(), fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), flock(), fpassthru(), fputs(), fwrite(), fread(), fseek(), ftell(), fstat(), ftruncate(), set_file_buffer(), rewind() | fclose() | File handle
pipe | popen() | feof(), fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), fpassthru(), fputs(), fwrite(), fread() | pclose() | Process handle
socket | fsockopen() | fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), fpassthru(), fputs(), fwrite(), fread() | fclose() | Socket handle
stream
sybase-db link | sybase_connect() | sybase_query(), sybase_select_db() | sybase_close() | Link to Sybase database using DB library
sybase-db link persistent | sybase_pconnect() | sybase_query(), sybase_select_db() | None | Persistent link to Sybase database using DB library
sybase-db result | sybase_query() | sybase_data_seek(), sybase_fetch_array(), sybase_fetch_field(), sybase_fetch_object(), sybase_fetch_row(), sybase_field_seek(), sybase_num_fields(), sybase_num_rows(), sybase_result() | sybase_free_result() | Sybase result using DB library
sybase-ct link | sybase_connect() | sybase_affected_rows(), sybase_query(), sybase_select_db() | sybase_close() | Link to Sybase database using CT library
sybase-ct link persistent | sybase_pconnect() | sybase_affected_rows(), sybase_query(), sybase_select_db() | None | Persistent link to Sybase database using CT library
sybase-ct result | sybase_query() | sybase_data_seek(), sybase_fetch_array(), sybase_fetch_field(), sybase_fetch_object(), sybase_fetch_row(), sybase_field_seek(), sybase_num_fields(), sybase_num_rows(), sybase_result() | sybase_free_result() | Sybase result using CT library
sysvsem | sem_get() | sem_acquire() | sem_release() | System V Semaphore
sysvshm | shm_attach() | shm_remove(), shm_put_var(), shm_get_var(), shm_remove_var() | shm_detach() | System V Shared Memory
wddx | wddx_packet_start() | wddx_add_vars() | wddx_packet_end() | WDDX packet
xml | xml_parser_create() | xml_set_object(), xml_set_element_handler(), xml_set_character_data_handler(), xml_set_processing_instruction_handler(), xml_set_default_handler(), xml_set_unparsed_entity_decl_handler(), xml_set_notation_decl_handler(), xml_set_external_entity_ref_handler(), xml_parse(), xml_get_error_code(), xml_error_string(), xml_get_current_line_number(), xml_get_current_column_number(), xml_get_current_byte_index(), xml_parse_into_struct(), xml_parser_set_option(), xml_parser_get_option() | xml_parser_free() | XML parser
zlib | gzopen() | gzeof(), gzgetc(), gzgets(), gzgetss(), gzpassthru(), gzputs(), gzread(), gzrewind(), gzseek(), gztell(), gzwrite() | gzclose() | gz-compressed file

Předcházející | Domů | Další
Seznam vyhrazených slov | Nahoru | List of Supported Protocols/Wrappers


List of Supported Protocols/Wrappers

Manuál PHP
Předcházející Další

Příloha J. List of Supported Protocols/Wrappers

Obsah
Filesystem
HTTP and HTTPS
FTP and FTPS
PHP input/output streams
Compression Streams

The following is a list of the various URL style protocols that PHP has built-in for use with the filesystem functions such as fopen() and copy(). In addition to these wrappers, as of PHP 4.3.0, you can write your own wrappers using PHP script and stream_wrapper_register().

Filesystem

All versions of PHP. Explicitly using file:// since PHP 4.3.0

  • /path/to/file.ext

  • relative/path/to/file.ext

  • fileInCwd.ext

  • C:/path/to/winfile.ext

  • C:\path\to\winfile.ext

  • \\smbserver\share\path\to\winfile.ext

  • file:///path/to/file.ext

file:// is the default wrapper used with PHP and represents the local filesystem. When a relative path is specified (a path which does not begin with /, \, \\, or a windows drive letter) the path provided will be applied against the current working directory. In many cases this is the directory in which the script resides unless it has been changed. Using the CLI sapi, this defaults to the directory from which the script was called.

With some functions, such as fopen() and file_get_contents(), include_path may be optionally searched for relative paths as well.

Tabulka J-1. Wrapper Summary

Attribute | Supported
Restricted by allow_url_fopen. | No
Allows Reading | Yes
Allows Writing | Yes
Allows Appending | Yes
Allows Simultaneous Reading and Writing | Yes
Supports stat() | Yes
Supports unlink() | Yes
Supports rename() | Yes
Supports mkdir() | Yes
Supports rmdir() | Yes

Předcházející | Domů | Další
List of Resource Types | Nahoru | HTTP and HTTPS


HTTP and HTTPS

PHP 3, PHP 4. https:// since PHP 4.3.0

  • http://example.com

  • http://user:password@example.com

  • https://example.com

  • https://user:password@example.com

Allows read-only access to files/resources via HTTP 1.0, using the HTTP GET method. A Host: header is sent with the request to handle name-based virtual hosts. If you have configured a user_agent string using your ini file or the stream context, it will also be included in the request.

Varování

Některé webservery nesplňující standardy, jako je např. IIS, posílají data způsobem, že PHP vyšle varování. Pracujete-li s takovými servery, měli byste snížit hodnotu parametru error_reporting tak, aby nezahrnovala varování.

Redirects have been supported since PHP 4.0.5; if you are using an earlier version you will need to include trailing slashes in your URLs. If it's important to know the URL of the resource where your document came from (after all redirects have been processed), you'll need to process the series of response headers returned by the stream.

<?php
$url = 'http://www.example.com/redirecting_page.php';

$fp = fopen($url, 'r');

/* Prior to PHP 4.3.0 use $http_response_header
   instead of stream_get_meta_data() */
foreach(stream_get_meta_data($fp) as $response) {

  /* Were we redirected? */
  if (substr(strtolower($response), 0, 10) == 'location: ') {
    /* update $url with where we were redirected to */
    $url = substr($response, 10);
  }

}

?>

The stream allows access to the body of the resource; the headers are stored in the $http_response_header variable. Since PHP 4.3.0, the headers are available using stream_get_meta_data().

HTTP connections are read-only; you cannot write data or copy files to an HTTP resource.

Poznámka: HTTPS is supported starting from PHP 4.3.0, if you have compiled in support for OpenSSL.

Tabulka J-2. Wrapper Summary

Attribute | Supported
Restricted by allow_url_fopen. | Yes
Allows Reading | Yes
Allows Writing | No
Allows Appending | No
Allows Simultaneous Reading and Writing | N/A
Supports stat() | No
Supports unlink() | No
Supports rename() | No
Supports mkdir() | No
Supports rmdir() | No

Tabulka J-3. Context options (as of PHP 5.0.0)

Name | Usage | Default
method | GET, POST, or any other HTTP method supported by the remote server. | GET
header | Additional headers to be sent during request. Values in this option will override other values (such as User-agent:, Host:, and Authentication:). |
user_agent | Value to send with User-Agent: header. This value will only be used if user-agent is not specified in the header context option above. | php.ini setting: user_agent
content | Additional data to be sent after the headers. Typically used with POST or PUT requests. |
proxy | URI specifying address of proxy server. (e.g. tcp://proxy.example.com:5100 ). |
request_fulluri | When set to TRUE, the entire URI will be used when constructing the request. (i.e. GET http://www.example.com/path/to/file.html HTTP/1.0). While this is a non-standard request format, some proxy servers require it. | FALSE

Underlying socket stream context options: Additional context options may be supported by the underlying transport For http:// streams, refer to context options for the tcp:// transport. For https:// streams, refer to context options for the ssl:// transport.

Předcházející | Domů | Další
List of Supported Protocols/Wrappers | Nahoru | FTP and FTPS


FTP and FTPS

PHP 3, PHP 4. ftps:// since PHP 4.3.0

  • ftp://example.com/pub/file.txt

  • ftp://user:password@example.com/pub/file.txt

  • ftps://example.com/pub/file.txt

  • ftps://user:password@example.com/pub/file.txt

Allows read access to existing files and creation of new files via FTP. If the server does not support passive mode ftp, the connection will fail.

You can open files for either reading or writing, but not both simultaneously. If the remote file already exists on the ftp server and you attempt to open it for writing but have not specified the context option overwrite, the connection will fail. If you need to overwrite existing files over ftp, specify the overwrite option in the context and open the file for writing. Alternatively, you can use the FTP extension.

Appending: As of PHP 5.0.0 files may be appended via the ftp:// URL wrapper. In prior versions, attempting to append to a file via ftp:// will result in failure.

ftps:// was introduced in PHP 4.3.0. It is the same as ftp://, but attempts to negotiate a secure connection with the ftp server. If the server does not support SSL, then the connection falls back to regular unencrypted ftp.

Poznámka: FTPS is supported starting from PHP 4.3.0, if you have compiled in support for OpenSSL.

Tabulka J-4. Wrapper Summary

Attribute | PHP 4 | PHP 5
Restricted by allow_url_fopen. | Yes | Yes
Allows Reading | Yes | Yes
Allows Writing | Yes (new files only) | Yes (new files/existing files with overwrite)
Allows Appending | No | Yes
Allows Simultaneous Reading and Writing | No | No
Supports stat() | No | filesize(), filetype(), file_exists(), is_file(), and is_dir() elements only.
Supports unlink() | No | Yes
Supports rename() | No | Yes
Supports mkdir() | No | Yes
Supports rmdir() | No | Yes

Tabulka J-5. Context options (as of PHP 5.0.0)

Name | Usage | Default
overwrite | Allow overwriting of already existing files on remote server. Applies to write mode (uploading) only. | FALSE (Disabled)
resume_pos | File offset at which to begin transfer. Applies to read mode (downloading) only. | 0 (Beginning of File)

Underlying socket stream context options: Additional context options may be supported by the underlying transport For ftp:// streams, refer to context options for the tcp:// transport. For ftps:// streams, refer to context options for the ssl:// transport.

Předcházející | Domů | Další
HTTP and HTTPS | Nahoru | PHP input/output streams


PHP input/output streams

PHP 3.0.13 and up, php://output and php://input since PHP 4.3.0, php://filter since PHP 5.0.0

  • php://stdin

  • php://stdout

  • php://stderr

  • php://output

  • php://input

  • php://filter

php://stdin, php://stdout and php://stderr allow access to the corresponding input or output stream of the PHP process.

php://output allows you to write to the output buffer mechanism in the same way as print() and echo().

php://input allows you to read raw POST data. It is a less memory intensive alternative to $HTTP_RAW_POST_DATA and does not need any special php.ini directives.

php://stdin and php://input are read-only, whereas php://stdout, php://stderr and php://output are write-only.

php://filter is a kind of meta-wrapper designed to permit the application of filters to a stream at the time of opening. This is useful with all-in-one file functions such as readfile(), file(), and file_get_contents() where there is otherwise no opportunity to apply a filter to the stream prior the contents being read.

The php://filter target takes the following 'parameters' as parts of its 'path'.

  • /resource=<stream to be filtered> (required) This parameter must be located at the end of your php://filter specification and should point to the stream which you want filtered.

    <?php
/* This is equivalent to simply:
   readfile("http://www.example.com");
   since no filters are actually specified */

readfile("php://filter/resource=http://www.example.com");
?>

  • /read=<filter list to apply to read chain> (optional) This parameter takes one or more filternames separated by the pipe character |.

    <?php
/* This will output the contents of
   www.example.com entirely in uppercase */
readfile("php://filter/read=string.toupper/resource=http://www.example.com");

/* This will do the same as above
   but will also ROT13 encode it */
readfile("php://filter/read=string.toupper|string.rot13/resource=http://www.example.com");
?>

  • /write=<filter list to apply to write chain> (optional) This parameter takes one or more filternames separated by the pipe character |.

    <?php
/* This will filter the string "Hello World"
   through the rot13 filter, then write to
   example.txt in the current directory */
file_set_contents("php://filter/write=string.rot13/resource=example.txt","Hello World");
?>

  • /<filter list to apply to both chains> (optional) Any filter lists which are not prefixed specifically by read= or write= will be applied to both the read and write chains (as appropriate).

Tabulka J-6. Wrapper Summary (For php://filter, refer to summary of wrapper being filtered.)

Attribute | Supported
Restricted by allow_url_fopen. | No
Allows Reading | php://stdin and php://input only.
Allows Writing | php://stdout, php://stderr, and php://output only.
Allows Appending | php://stdout, php://stderr, and php://output only. (Equivalent to writing)
Allows Simultaneous Reading and Writing | No. These wrappers are unidirectional.
Supports stat() | No
Supports unlink() | No
Supports rename() | No
Supports mkdir() | No
Supports rmdir() | No

Předcházející | Domů | Další
FTP and FTPS | Nahoru | Compression Streams


Compression Streams

zlib: PHP 4.0.4 - PHP 4.2.3 (systems with fopencookie only)

compress.zlib:// and compress.bzip2:// PHP 4.3.0 and up

  • zlib:

  • compress.zlib://

  • compress.bzip2://

zlib: works like gzopen(), except that the stream can be used with fread() and the other filesystem functions. This is deprecated as of PHP 4.3.0 due to ambiguities with filenames containing ':' characters; use compress.zlib:// instead.

compress.zlib:// and compress.bzip2:// are equivalent to gzopen() and bzopen() respectively, and operate even on systems that do not support fopencookie.

Tabulka J-7. Wrapper Summary

Attribute | Supported
Restricted by allow_url_fopen. | No
Allows Reading | Yes
Allows Writing | Yes
Allows Appending | Yes
Allows Simultaneous Reading and Writing | No
Supports stat() | No, use the normal file:// wrapper to stat compressed files.
Supports unlink() | No, use the normal file:// wrapper to unlink compressed files.
Supports rename() | No
Supports mkdir() | No
Supports rmdir() | No

Předcházející | Domů | Další
PHP input/output streams | Nahoru | List of Available Filters


List of Available Filters

Manuál PHP
Předcházející Další

Příloha K. List of Available Filters

Obsah
String Filters
Conversion Filters
Compression Filters

The following is a list of a few built-in stream filters for use with stream_filter_append(). Your version of PHP may have more filters (or fewer) than those listed here.

It is worth noting a slight asymmetry between stream_filter_append() and stream_filter_prepend(). Every PHP stream contains a small read buffer where it stores blocks of data retrieved from the filesystem or other resource in order to process data in the most efficient manner. As soon as data is pulled from the resource into the stream's internal buffer, it is immediately processed through any attached filters whether the PHP application is actually ready for the data or not. If data is sitting in the read buffer when a filter is appended, this data will be immediately processed through that buffer making the fact that is was sitting in the buffer seem transparent. However, if data is sitting in the read buffer when a filter is prepended, this data will NOT be processed through that filter. It will instead wait until the next block of data is retrieved from the resource.

For a list of filters installed in your version of PHP use stream_get_filters().

String Filters

Each of these filters does precisely what their name implies and correspond to the behavior of a built-in php string handling function. For more information on a given filter, refer to the manual page for the corresponding function.

string.rot13 (since PHP 4.3.0) Use of this filter is equivalent to processing all stream data through the str_rot13() function.

Příklad K-1. string.rot13

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.rot13');
fwrite($fp, "This is a test.\n");
/* Outputs:  Guvf vf n grfg.   */
?>

string.toupper (since PHP 5.0.0) Use of this filter is equivalent to processing all stream data through the strtoupper() function.

Příklad K-2. string.toupper

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.toupper');
fwrite($fp, "This is a test.\n");
/* Outputs:  THIS IS A TEST.   */
?>

string.tolower (since PHP 5.0.0) Use of this filter is equivalent to processing all stream data through the strtolower() function.

Příklad K-3. string.tolower

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.tolower');
fwrite($fp, "This is a test.\n");
/* Outputs:  this is a test.   */
?>

string.strip_tags (since PHP 5.0.0) Use of this filter is equivalent to processing all stream data through the strip_tags() function. It accepts parameters in one of two forms: Either as a string containing a list of tags similar to the second parameter of the strip_tags() function, or as an array of tag names.

Příklad K-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>bolded text</b> enlarged to a <h1>level 1 heading</h1>\n");
fclose($fp);
/* Outputs:  <b>bolded text</b> enlarged to a level 1 heading   */

$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.strip_tags', STREAM_FILTER_WRITE, array('b','i','u'));
fwrite($fp, "<b>bolded text</b> enlarged to a <h1>level 1 heading</h1>\n");
fclose($fp);
/* Outputs:  <b>bolded text</b> enlarged to a level 1 heading   */
?>

Předcházející | Domů | Další
Compression Streams | Nahoru | Conversion Filters


Conversion Filters

Like the string.* filters, the convert.* filters perform actions similar to their names. The convert filters were added with PHP 5.0.0. For more information on a given filter, refer to the manual page for the corresponding function.

convert.base64-encode and convert.base64-decode Use of these filters are equivalent to processing all stream data through the base64_encode() and base64_decode() functions respectively. convert.base64-encode supports parameters given as an associative array. If line-length is given, the base64 output will be split into chunks of line-length characters each. If line-braek-chars is given, each chunk will be delimted by the characters given. These parameters give the same effect as using base64_encode() with chunk_split().

Příklad K-5. convert.base64-encode & convert.base64-decode

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-encode');
fwrite($fp, "This is a test.\n");
fclose($fp);
/* Outputs:  VGhpcyBpcyBhIHRlc3QuCg==  */

$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, "This is a test.\n");
fclose($fp);
/* Outputs:  VGhpcyBp
          :  cyBhIHRl
          :  c3QuCg==  */

$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-decode');
fwrite($fp, "VGhpcyBpcyBhIHRlc3QuCg==");
fclose($fp);
/* Outputs:  This is a test.  */
?>

convert.quoted-printable-encode and convert.quoted-printable-decode Use of the decode version of this filter is equivalent to processing all stream data through the quoted_printable_decode() functions. There is no function equivalent to convert.quoted-printable-encode. convert.quoted-printable-encode supports parameters given as an associative array. In addition to the parameters supported by convert.base64-encode, convert.quoted-printable-encode also supports boolean arguments binary and force-encode-first. convert.base64-decode only supports the line-break-chars parameter as a type-hint for striping from the encoded payload.

Příklad K-6. convert.quoted-printable-encode & convert.quoted-printable-decode

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.quoted-printable-encode');
fwrite($fp, "This is a test.\n");
/* Outputs:  =This is a test.=0A  */
?>

Předcházející | Domů | Další
List of Available Filters | Nahoru | Compression Filters


Compression Filters

While the „Compression Streams“ v J provide a way of creating gzip and bz2 compatable files on the local filesystem, they do not provide a means for generalized compression over network streams, nor do they provide a means to begin with a non-compressed stream and transition to a compressed one. For this, a compression filter may be applied to any stream resource at any time.

Poznámka: Compression filters do not generate headers and trailers used by commandline utilites such as gzip. They only compress and decompress the payload portions of compressed data streams.

zlib.deflate (compression) and zlib.inflate (decompression) are implementations of the compression methods described in RFC 1951. The deflate filter takes up to three parameters passed as an associative array. level describes the compression strength to use (1-9). Higher numbers will generally yield smaller payloads at the cost of additional processing time. Two special compression levels also exist: 0 (for no compression at all), and -1 (zlib internal default -- currently 6). window is the base-2 log of the compression loopback window size. Higher values (up to 15 -- 32768 bytes) yield better compression at a cost of memory, while lower values (down to 9 -- 512 bytes) yield worse compression in a smaller memory footprint. Default window size is currently 15. memory is a scale indicating how much work memory should be allocated. Valid values range from 1 (minimal allocation) to 9 (maximum allocation). This memory allocation affects speed only and does not impact the size of the generated payload.

Poznámka: Because compression level is the most commonly used parameter, it may be alternatively provided as a simple integer value (rather than an array element).

Poznámka: The zlib.* filters are not currently built into the PHP core. To enable these filters in PHP 5, install the zlib_filter package from PECL. These filters are not available for PHP 4.

Příklad K-7. zlib.deflate and zlib.inflate

<?php
$params = array('level' => 6, 'window' => 15, 'memory' => 9);

$original_text = "This is a test.\nThis is only a test.\nThis is not an important string.\n";
echo "The original text is " . strlen($original_text) . " characters long.\n";

$fp = fopen('test.deflated', 'w');
stream_filter_append($fp, 'zlib.deflate', STREAM_FILTER_WRITE, $params);
fwrite($fp, $original_text);
fclose($fp);

echo "The compressed file is " . filesize('test.deflated') . " bytes long.\n";
echo "The original text was:\n";
/* Use readfile and zlib.inflate to decompress on the fly */
readfile('php://filter/zlib.inflate/resource=test.deflated');

/* Generates output:

The original text is 70 characters long.
The compressed file is 56 bytes long.
The original text was:
This is a test.
This is only a test.
This is not an important string.

 */
?>

Příklad K-8. zlib.deflate simple

<?php
$original_text = "This is a test.\nThis is only a test.\nThis is not an important string.\n";
echo "The original text is " . strlen($original_text) . " characters long.\n";

$fp = fopen('test.deflated', 'w');
/* Here "6" indicates compression level 6 */
stream_filter_append($fp, 'zlib.deflate', STREAM_FILTER_WRITE, 6);
fwrite($fp, $original_text);
fclose($fp);

echo "The compressed file is " . filesize('test.deflated') . " bytes long.\n";

/* Generates output:

The original text is 70 characters long.
The compressed file is 56 bytes long.

 */
?>

bzip2.compress and bzip2.decompress work in the same manner as the zlib filters described above. The bzip2.compress filter accepts up to two parameters given as elements of an associative array: blocks is an integer value from 1 to 9 specifying the number of 100kbyte blocks of memory to allocate for workspace. work is also an integer value ranging from 0 to 250 indicating how much effort to expend using the normal compression method before falling back on a slower, but more reliable method. Tuning this parameter effects only compression speed. Neither size of compressed output nor memory usage are changed by this setting. A work factor of 0 instructs the bzip library to use an internal default. The bzip2.decompress filter only accepts one parameter, which can be passed as either an ordinary boolean value as the small element of an associative array. small, when set to a TRUE value, instructs the bzip library to perform decompression in a minimal memory footprint at the cost of speed.

Poznámka: The bzip2.* filters are not currently built into the PHP core. To enable these filters in PHP 5, install the bz2_filter package from PECL. These filters are not available for PHP 4.

Příklad K-9. bzip2.compress and bzip2.decompress

<?php
$param = array('blocks' => 9, 'work' => 0);

echo "The original file is " . filesize('LICENSE') . " bytes long.\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 "The compressed file is " . filesize('LICENSE.compressed') . " bytes long.\n";

/* Generates output:

The original text is 3288 characters long.
The compressed file is 1488 bytes long.

 */
?>

Předcházející | Domů | Další
Conversion Filters | Nahoru | List of Supported Socket Transports


List of Supported Socket Transports

Manuál PHP
Předcházející Další

Příloha L. List of Supported Socket Transports

Obsah
Internet Domain: TCP, UDP, SSL, and TLS
Unix Domain: Unix and UDG

The following is a list of the various URL style socket transports that PHP has built-in for use with the streams based socket functions such as fsockopen(), and stream_socket_client(). These transports do not apply to the Sockets Extension.

For a list of transports installed in your version of PHP use stream_get_transports().

Internet Domain: TCP, UDP, SSL, and TLS

PHP 3, PHP 4. ssl:// & tls:// since PHP 4.3

Poznámka: If no transport is specified, tcp:// will be assumed.

  • 127.0.0.1

  • fe80::1

  • www.example.com

  • tcp://127.0.0.1

  • tcp://fe80::1

  • tcp://www.example.com

  • udp://www.example.com

  • ssl://www.example.com

  • tls://www.example.com

Internet Domain sockets expect a port number in addition to a target address. In the case of fsockopen() this is specified in a second parameter and therefore does not impact the formatting of transport URL. With stream_socket_client() and related functions as with traditional URLs however, the port number is specified as a suffix of the transport URL delimited by a colon.

  • tcp://127.0.0.1:80

  • tcp://[fe80::1]:80

  • tcp://www.example.com:80

IPv6 numeric addresses with port numbers: In the second example above, while the IPv4 and hostname examples are left untouched apart from the addition of their colon and portnumber, the IPv6 address is wrapped in square brackets: [fe80::1]. This is to distinguish between the colons used in an IPv6 address and the colon used to delimit the portnumber.

The ssl:// and tls:// transports (available only when openssl support is compiled into PHP) are extensions of the tcp:// transport which includes SSL encryption. Since PHP 4.3.0 OpenSSL support must be statically compiled into PHP, since PHP 5.0.0 it may be compiled as a module or statically.

Tabulka L-1. Context options for ssl:// and tls:// transports (since PHP 4.3.2)

Name | Usage | Default
verify_peer | TRUE or FALSE. Require verification of SSL certificate used. | FALSE
allow_self_signed | TRUE or FALSE. Allow self-signed certificates. | FALSE
cafile | 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. |
capath | 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. |
local_cert | Path to local certificate file on filesystem. It must be a PEM encoded file which contains your certificate and private key. It can optionally contain the certificate chain of issuers. |
passphrase | Passphrase with which your local_cert file was encoded. |
CN_match | Common Name we are expecting. PHP will perform limited wildcard matching. If the Common Name does not match this, the connection attempt will fail. |

Poznámka: Because ssl:// is the underlying transport for the https:// and ftps:// wrappers, any context options which apply to ssl:// also apply to https:// and ftps://.

Předcházející | Domů | Další
Compression Filters | Nahoru | Unix Domain: Unix and UDG


Unix Domain: Unix and UDG

unix:// since PHP 3, udg:// since PHP 5

  • unix:///tmp/mysock

  • udg:///tmp/mysock

unix:// provides access to a socket stream connection in the Unix domain. udg:// provides an alternate transport to a Unix domain socket using the user datagram protocol.

Unix domain sockets, unlike Internet domain sockets, do not expect a port number. In the case of fsockopen() the portno parameter should be set to 0.

Předcházející | Domů | Další
List of Supported Socket Transports | Nahoru | PHP type comparison tables


PHP type comparison tables

Manuál PHP
Předcházející Další

Příloha M. PHP type comparison tables

The following tables demonstrate behaviors for PHP types and comparison operators, for both loose and strict comparisons. This supplemental is also related to the manual section on type juggling. Inspiration was provided by various user comments and by the work over at BlueShoes.

Before utilizing these tables, it's important to understand types and their meanings. For example, "42" is a string while 42 is an integer. FALSE is a boolean while "false" is a string.

Poznámka: HTML Forms do not pass integers, floats, or booleans; they pass strings. To find out if a string is numeric, you may use is_numeric().

Poznámka: Simply doing if ($x) while $x is undefined will generate an error of level E_NOTICE. Instead, consider using empty() or isset() and/or initialize your variables.

Tabulka M-1. Comparisons of $x with PHP functions

Expression | gettype() | empty() | is_null() | isset() | boolean : if($x)
$x = ""; | string | TRUE | FALSE | TRUE | FALSE
$x = NULL | NULL | TRUE | TRUE | FALSE | FALSE
var $x; | NULL | TRUE | TRUE | FALSE | FALSE
$x is undefined | NULL | TRUE | TRUE | FALSE | FALSE
$x = array(); | array | TRUE | FALSE | TRUE | FALSE
$x = false; | boolean | TRUE | FALSE | TRUE | FALSE
$x = true; | boolean | FALSE | FALSE | TRUE | TRUE
$x = 1; | integer | FALSE | FALSE | TRUE | TRUE
$x = 42; | integer | FALSE | FALSE | TRUE | TRUE
$x = 0; | integer | TRUE | FALSE | TRUE | FALSE
$x = -1; | integer | FALSE | FALSE | TRUE | TRUE
$x = "1"; | string | FALSE | FALSE | TRUE | TRUE
$x = "0"; | string | TRUE | FALSE | TRUE | FALSE
$x = "-1"; | string | FALSE | FALSE | TRUE | TRUE
$x = "php"; | string | FALSE | FALSE | TRUE | TRUE
$x = "true"; | string | FALSE | FALSE | TRUE | TRUE
$x = "false"; | string | FALSE | FALSE | TRUE | TRUE

Tabulka M-2. Loose comparisons with ==

 | TRUE | FALSE | 1 | 0 | -1 | "1" | "0" | "-1" | NULL | array() | "php"
TRUE | TRUE | FALSE | TRUE | FALSE | TRUE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE
FALSE | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | TRUE | TRUE | FALSE
1 | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE
0 | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | TRUE | FALSE | TRUE
-1 | TRUE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE
"1" | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE
"0" | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE
"-1" | TRUE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE
NULL | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | TRUE | TRUE | FALSE
array() | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | TRUE | FALSE
"php" | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE

Tabulka M-3. Strict comparisons with ===

 | TRUE | FALSE | 1 | 0 | -1 | "1" | "0" | "-1" | NULL | array() | "php"
TRUE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
1 | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
0 | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
-1 | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
"1" | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE
"0" | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE
"-1" | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE
NULL | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE
array() | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE
"php" | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE

PHP 3.0 note: The string value "0" was considered non-empty in PHP 3, this behavior changed in PHP 4 where it's now seen as empty.

Předcházející | Domů | Další
Unix Domain: Unix and UDG | Nahoru | List of Parser Tokens


List of Parser Tokens

Manuál PHP
Předcházející Další

Příloha N. List of Parser Tokens

Various parts of the PHP language are represented internally by types like T_SR. PHP outputs identifiers like this one in parse errors, like "Parse error: unexpected T_SR, expecting ',' or ';' in script.php on line 10."

You're supposed to know what T_SR means. For everybody who doesn't know that, here is a table with those identifiers, PHP-syntax and references to the appropriate places in the manual.

Tabulka N-1. Tokens

Token | Syntax | Reference
T_AND_EQUAL | &= | assignment operators
T_ARRAY | array() | array(), array syntax
T_ARRAY_CAST | (array) | type-casting
T_AS | as | foreach
T_BAD_CHARACTER |  | anything below ASCII 32 except \t (0x09), \n (0x0a) and \r (0x0d)
T_BOOLEAN_AND | && | logical operators
T_BOOLEAN_OR | || | logical operators
T_BOOL_CAST | (bool) or (boolean) | type-casting
T_BREAK | break | break
T_CASE | case | switch
T_CHARACTER |  |
T_CLASS | class | classes and objects
T_CLOSE_TAG | ?> or %> |
T_COMMENT | // or # | comments
T_CONCAT_EQUAL | .= | assignment operators
T_CONST | const |
T_CONSTANT_ENCAPSED_STRING | "foo" or 'bar' | string syntax
T_CONTINUE | continue |
T_CURLY_OPEN |  |
T_DEC | -- | incrementing/decrementing operators
T_DECLARE | declare | declare
T_DEFAULT | default | switch
T_DIV_EQUAL | /= | assignment operators
T_DNUMBER | 0.12, etc | floating point numbers
T_DO | do | do..while
T_DOLLAR_OPEN_CURLY_BRACES | ${ | complex variable parsed syntax
T_DOUBLE_ARROW | => | array syntax
T_DOUBLE_CAST | (real), (double) or (float) | type-casting
T_ECHO | echo | echo()
T_ELSE | else | else
T_ELSEIF | elseif | elseif
T_EMPTY | empty | empty()
T_ENCAPSED_AND_WHITESPACE |  |
T_ENDDECLARE | enddeclare | declare, alternative syntax
T_ENDFOR | endfor | for, alternative syntax
T_ENDFOREACH | endforeach | foreach, alternative syntax
T_ENDIF | endif | if, alternative syntax
T_ENDSWITCH | endswitch | switch, alternative syntax
T_ENDWHILE | endwhile | while, alternative syntax
T_END_HEREDOC |  | heredoc syntax
T_EVAL | eval() | eval()
T_EXIT | exit or die | exit(), die()
T_EXTENDS | extends | extends, classes and objects
T_FILE | __FILE__ | constants
T_FOR | for | for
T_FOREACH | foreach | foreach
T_FUNCTION | function or cfunction | functions
T_GLOBAL | global | variable scope
T_IF | if | if
T_INC | ++ | incrementing/decrementing operators
T_INCLUDE | include() | include()
T_INCLUDE_ONCE | include_once() | include_once()
T_INLINE_HTML |  |
T_INT_CAST | (int) or (integer) | type-casting
T_ISSET | isset() | isset()
T_IS_EQUAL | == | comparison operators
T_IS_GREATER_OR_EQUAL | >= | comparison operators
T_IS_IDENTICAL | === | comparison operators
T_IS_NOT_EQUAL | != or <> | comparison operators
T_IS_NOT_IDENTICAL | !== | comparison operators
T_SMALLER_OR_EQUAL | <= | comparison operators
T_LINE | __LINE__ | constants
T_LIST | list() | list()
T_LNUMBER | 123, 012, 0x1ac, etc | integers
T_LOGICAL_AND | and | logical operators
T_LOGICAL_OR | or | logical operators
T_LOGICAL_XOR | xor | logical operators
T_MINUS_EQUAL | -= | assignment operators
T_ML_COMMENT | /* and */ | comments
T_MOD_EQUAL | %= | assignment operators
T_MUL_EQUAL | *= | assignment operators
T_NEW | new | classes and objects
T_NUM_STRING |  |
T_OBJECT_CAST | (object) | type-casting
T_OBJECT_OPERATOR | -> | classes and objects
T_OLD_FUNCTION | old_function | old_function
T_OPEN_TAG | <?php, <? or <% | escaping from HTML
T_OPEN_TAG_WITH_ECHO | <?= or <%= | escaping from HTML
T_OR_EQUAL | |= | assignment operators
T_PAAMAYIM_NEKUDOTAYIM | :: | ::
T_PLUS_EQUAL | += | assignment operators
T_PRINT | print() | print()
T_REQUIRE | require() | require()
T_REQUIRE_ONCE | require_once() | require_once()
T_RETURN | return | returning values
T_SL | << | bitwise operators
T_SL_EQUAL | <<= | assignment operators
T_SR | >> | bitwise operators
T_SR_EQUAL | >>= | assignment operators
T_START_HEREDOC | <<< | heredoc syntax
T_STATIC | static | variable scope
T_STRING |  |
T_STRING_CAST | (string) | type-casting
T_STRING_VARNAME |  |
T_SWITCH | switch | switch
T_UNSET | unset() | unset()
T_UNSET_CAST | (unset) | (not documented; casts to NULL)
T_USE | use | (not implemented)
T_VAR | var | classes and objects
T_VARIABLE | $foo | variables
T_WHILE | while | while, do..while
T_WHITESPACE |  |
T_XOR_EQUAL | ^= | assignment operators
T_FUNC_C | __FUNCTION__ | constants, since PHP 4.3.0
T_CLASS_C | __CLASS__ | constants, since PHP 4.3.0

Předcházející | Domů | Další
PHP type comparison tables | Nahoru | O tomto manuálu


O tomto manuálu

Manuál PHP
Předcházející Další

Příloha O. O tomto manuálu

Obsah
Formáty
O uživatelských poznámkách
Jak najít více informací o PHP
Jak pomoci zlepšit dokumentaci
Jak generujeme formáty

Formáty

Tento PHP manuál je poskytován v různých formátech. Tyto formáty se dají rozdělit do dvou skupin: formáty pro prohlížení on-line a balíky pro stahování.

Poznámka: Někteří vydavatelé vydali tištěné verze tohoto manuálu. Žádné z nich nedoporučujeme, protože velmi rychle zastarávají.

Manuál můžete číst on-line na http://www.php.net/ a mnoha zrcadlech. Pro zajištění nejrychlejšího přístupu byste si měli vybrat zrcadlo umístěné nejblíže k vám. Můžete si prohlížet manuál v "holém" HTML formátu (vhodném pro tisk) nebo v HTML formátu integrujícím manuál do vzhledu a chování samotných stránek PHP.

Výhodou on-line manuálu před off-line formáty je integrace uživatelských poznámek. Samozřejmou nevýhodou je to, že při prohlížení musíte být on-line.

Existuje více off-line formátů manuálu a formát pro vás nejvhodnější závisí na tom, jaký operační systém používáte a na vašem osobním stylu čtení. Pro informaci o tom, jak je manuál generován v tolika formátech, si přečtěte sekci 'Jak generujeme formáty' v dodatcích.

Pro nejvíce platforem se hodí manuál v HTML a jako prostý text. HTML formát je poskytován jak jako jediný HTML soubor, tak jako balíček souborů podle jednotlivých sekcí (což ve výsledku znamená kolekci tisíců souborů). HTML a prostý text jsou poskytovány jako tar soubory zkomprimované pomocí bzip2.

Jiným populárním platformně nezávislým formátem, a také formátem nejvhodnějším pro tisk, je PDF (známý také jako Adobe Acrobat). Ale před stažením tohoto formátu a stisknutím tlačítka pro tisk ještě jedno varování: Manuál je skoro 2000 stránek dlouhý a stále se upravuje!

Poznámka: Pokud ještě nemáte program schopný zobrazit formát PDF, můžete si stáhnout Adobe Acrobat Reader.

Pro vlastníky handheldů (Palm kompatibilních) jsou ideální formáty Palm document a iSilo. Můžete si přinést svůj handheld na směnu a použít prohlížeč formátu DOC nebo iSilo k oprášení znalostí PHP nebo jako rychlou příručku.

Pro platformu Windows existuje verze Widows HTML Help pro použití s aplikací Windows HTML Help- Tato verze poskytuje fulltextové vyhledávání, úplný rejstřík a záložky. Mnoho populárních vývojových prostředí pro vývoj v PHP pod Windows také integruje tuto verzi dokumentace, což zajišťuje snadný přístup.

Poznámka: Projekt Visual Basic for Linux je ve stádiu plánování, bude zahrnovat vývoj aplikace CHM Creator and Viewer for Linux. Pokud se zajímáte o stav vývoje, podívejte se na SourceForge.net page.

Předcházející | Domů | Další
List of Parser Tokens | Nahoru | O uživatelských poznámkách


O uživatelských poznámkách

Uživatelské poznámky hrají důležitou roli ve vývoji tohoto manuálu. Umožněním čtenářům manuálu přidávat příklady a další vysvětlení přímo z jejich prohlížeče jsme schopni zabudovat zpětnou vazbu do hlavního textu manuálu. A než jsou poznámky zpracovány, jsou vidět v podobě, v jaké je uživatelé poslali, v on-line (a některých off-line) formátech.

Poznámka: Uživatelské poznámky nejsou moderovány před jejich zobrazením on-line, takže kvalita textu nebo příkladů kódu a jejich věrohodnost nemohou být zaručeny (ne, že by byla zaručena kvalita nebo přesnost samotného manuálu).

Předcházející | Domů | Další
O tomto manuálu | Nahoru | Jak najít více informací o PHP


Jak najít více informací o PHP

Tento manuál se nepokouší poskytovat instrukce o obecných programovacích technikách. Pokud jste úplně čerstvý programátor nebo stále ještě začátečník, může vám přijít obtížné naučit se programovat v PHP pouze podle tohoto manuálu. Můžete chtít hledat texty více orientované na začátečníky. Zde je seznam knih týkajících se PHP: http://www.php.net/books.php.

Existuje mnoho aktivních e-mailových diskusních skupin pro diskusi o všech aspektech programování v PHP. Pokud máte problém, pro který nmůžete najít řešení, mohl by vám pomoci někdo z těchto skupin. Seznam diskusních skupin najdete na http://www.php.net/support.php, stejně tak i odkazy na archivy těchto skupin a jiné on-line zdroje. Dále, na http://www.php.net/links.php je seznam stránek zaměřených na články, fóra a galerie kódu pro PHP.

Předcházející | Domů | Další
O uživatelských poznámkách | Nahoru | Jak pomoci zlepšit dokumentaci


Jak pomoci zlepšit dokumentaci

Jsou dvě cesty, jak můžete pomoci zlepšit tuto dokumentaci.

Pokud v manuálu najdete chyby (v kterémkoli jazyce), oznamte je prosím pomocí bug systému na http://bugs.php.net/. Klasifikujte chybu jako "Documentation Problem". Můžete také poslat problémy spojené s konkrétními manuálovými formáty zde.

Poznámka: Nezneužívejte prosím bug systém odesíláním žádostí o pomoc. Použijte namísto toho diskusní fórum nebo komunitní stránky, jak již bylo zmíněno.

Při přidávání poznámek můžete poskytnout dodatečné příklady a vysvětlení pro ostatní čtenáře. Avšak neposílejte prosím pomocí tohoto anotačního systému hlášení o chybách. O anotacích se můžete více dozvědět v části 'O uživatelských poznámkách' tohoto dodatku.

Předcházející | Domů | Další
Jak najít více informací o PHP | Nahoru | Jak generujeme formáty


Jak generujeme formáty

Tento manuál je napsán v XML s použitím DocBook XML DTD, DSSSL (Document Style and Semantics Specification Language) pro formátování a experimentálně XSLT (Extensible Stylesheet Language Transformations) pro údržbu a formátování.

Použití XML jako zdrojového formátu nám dává možnost generovat mnoho výstupních formátů ze zdrojových souborů a udržovat pouze jediný zdrojový dokument pro všechny formáty. Nástroji použitými pro formátování HTML a TeX verzí jsou Jade, jehož autorem je James Clark, a The Modular DocBook Stylesheets kde je autorem Norman Walsh. Používáme Microsoft HTML Help Workshop ke generování formátu Windows HTML Help a, samozřejmě, PHP samotné pro dodatečné konverze a formátování.

Manuál si můžete stáhnout v různých jazycích a formátech, včetně prostého textu, prostého HTML, PDF, PalmPilot DOC, PalmPilot iSilo a Windows HTML Help, z http://www.php.net/docs.php. Manuály jsou automaticky aktualizovány, pokud se jejich text změní.

Více informací o stahování zdrojového kódu dokumentace v XML najdete na http://cvs.php.net/. Dokumentace je uložena v modulu phpdoc.

Předcházející | Domů | Další
Jak pomoci zlepšit dokumentaci | Nahoru | Open Publication License


Open Publication License

Manuál PHP
Předcházející Další

Příloha P. Open Publication License

Obsah
I. POŽADAVKY NEMODIFIKOVANÉ I MODIFIKOVANÉ VERZE
II. AUTORSKÁ PRÁVA
III. ROZSAH LICENCE
IV. POŽADAVKY NA MODIFIKOVANÉ PRÁCE
V. PRAKTICKÁ DOPORUČENÍ
VI. MOŽNOSTI LICENCE

v1.0, 8. 6. 1999

I. POŽADAVKY NEMODIFIKOVANÉ I MODIFIKOVANÉ VERZE

Práce "Open Publication" smějí být reprodukovány a šířeny jako celek nebo po částech, na jakémkoli fyzickém nebo elektronickém médiu, za podmínky, že jsou dodržena pravidla této licence a že je tato licence nebo přímý odkaz na ni (s jakýmikoli možnostmi zvolenými autorem (autory) a/nebo vydavatelem) zobrazena v reprodukci.

Správná forma přímého odkazování je tato:

Copyright (c) <rok> by <jméno autora nebo pověřené osoby>. Tento materiál smí být šířen pouze podle pravidel a podmínek stanovených v Open Publication License, vX.Y nebo pozdější (nejnovější verze je aktuálně k dispozici na http://www.opencontent.org/openpub/

Za odkazem musí bezprostředně následovat možnosti zvolené autorem (autory) a/nebo vydavatelem dokumentu (viz oddíl VI). Komerční redistribuce materiálu licencovaného pod Open Publication License je povolena. Jakákoli publikace ve standardní (tištěné, papírové) knize vyžaduje citaci originálního vydavatele a autora. Jména vydavatele a autora budou vytištěna na všech vnějších stranách knihy. Vytištěné jméno vydavatele bude stejně velké jako název práce a bude uveden údaj o vlastnictví práv v souvislosti s prací.

Důležité upozornění: Tento překlad je pouze pro informaci a nemá žádnou právní váhu. Právní účinky má pouze anglický originál licenčních podmínek a případné autorizované překlady do jiných jazyků (včetně češtiny).

Předcházející | Domů | Další
Jak generujeme formáty | Nahoru | II. AUTORSKÁ PRÁVA


II. AUTORSKÁ PRÁVA

Autorská práva ke každému dílu krytému Open Publication License jsou vlastněna autorem (autory) nebo pověřenou osobou.

Předcházející | Domů | Další
Open Publication License | Nahoru | III. ROZSAH LICENCE


III. ROZSAH LICENCE

Následující podmínky platí pro všechny práce pod Open Publication License, není-li v dokumentu uvedeno jinak.

Pouhá agregace (sdružování) prací pod Open Publication License nebo jejich částí s jinými pracemi nebo programy na stejném médiu nevyvolá účinek této licence na tyto ostatní práce. Souborná práce musí obsahovat informaci o zahrnutí materiálu krytého Open Publication License a odpovídající informacu o autorských právech.

ODDĚLITELNOST. Není-li některá část této licence vynutitelná v některé jurisdikci, zbývající části licence zůstávají v platnosti.

ŽÁDNÉ ZÁRUKY. Práce pod Open Publication License jsou licencovány a poskytovány "tak, jak jsou" bez jakékoli záruky, výslovné ani vyplývající, včetně, nikoli však pouze, vyplývajících záruk obchodovatelnosti nebo vhodnosti k určitému účelu, anebo záruky vyloučení zásahu do cizích práv.

Předcházející | Domů | Další
II. AUTORSKÁ PRÁVA | Nahoru | IV. POŽADAVKY NA MODIFIKOVANÉ PRÁCE


IV. POŽADAVKY NA MODIFIKOVANÉ PRÁCE

Všechny modifikované verze dokumentů krytých touto licencí, včetně překladů, antologií, kompilací a částečných dokumnetů, musí splňovat následující požadavky:

  1. Modifikovaná verze musí být jako taková označena.

  2. Osoba provádějící modifikaci musí být identifikována a modifikace datována.

  3. Souhlas originálního autora a vydavatele (lze-li použít) musí být zajištěn v souladu s normálními akademickými citačními praktikami.

  4. Musí být identifikováno umístění originálního nemodifikovaného dokumentu.

  5. Jméno originálního autora (autorů) nelze použít ve vztahu k provedeným změnám v dokumentu (ve smyslu "souhlas autora s obsahem modifikace") bez svolení tohoto autora.

Předcházející | Domů | Další
III. ROZSAH LICENCE | Nahoru | V. PRAKTICKÁ DOPORUČENÍ


V. PRAKTICKÁ DOPORUČENÍ

K požadavkům této licence je navíc vyžadaváno a vřele doporučováno pro redistributory:

  1. Šíříte-li práce kryté Open Publication License jako výtisky nebi CD-ROM, zašlete e-mailové oznámení autorům obsahu, který šíříte, alespoň 30 dní před uzavřením vašeho rukopisu nebo média, abyste dali autorům čas poskytnout aktualizované dokumenty. Toto oznámení by mělo popisovat modifikace dokumentu (pokud k nim došlo).

  2. Všechny podstatné modifikace (včetně mazání) je třeba jasně označit v dokumentu nebo popsat v příloze dokumentu.

  3. Konečně, i když to není pod touto licencí povinné, je vhodné nabídnout autorům zdarma kopii výtisku nebo CD-ROM s prací krytou Open Publication License.

Předcházející | Domů | Další
IV. POŽADAVKY NA MODIFIKOVANÉ PRÁCE | Nahoru | VI. MOŽNOSTI LICENCE


VI. MOŽNOSTI LICENCE

Autor (autoři) a/nebo vydavatel mohou zvolit jisté možnosti nabízené Open Publication License přidáním určitého dodatku k licenci. Tyto volby jsou nedílnou součástí exempláře licence a musí být přiloženy k licenci (nebo odkazu na ni) v odvozených pracích.

A. Distribuce podstatně modifikovaných verzí bez explicitního svolení autora (autorů) je zakázána. "Podstatná modifikace" je definována jako změna sémantického obsahu dokumentu, nezahrnuje pouhé změny formátu ani typografické opravy.

V tomto případě přidejte k odkazu na licenci nebo k její kopii frázi 'Distribuce podstatně modifikovaných verzí tohoto dokumentu je bez explicitního souhlasu vlastníka autorských práv zakázána'.

B. Distribuovat jakoukoli publikaci této práce nebo prací odvozených, ať již jako celek nebo některé části, ve formě standardní (papírové) knihy ke komerčním účelům, je bez předchozího získání souhlasu vlastníka autorských práv zakázáno.

V tomto případě přidejte k odkazu na licenci nebo k její kopii frázi 'Distribuce této práce nebo prací odvozených, ve formě standardní (papírové) knihy, je bez přechozího získání souhlasu vlastníka autorských práv zakázána.'

Předcházející | Domů | Další
V. PRAKTICKÁ DOPORUČENÍ | Nahoru | Rejstřík funkcí


Rejstřík funkcí

Manuál PHP
Předcházející Další

Příloha Q. Rejstřík funkcí

Obsah
Rejstřík funkcí

Předcházející | Domů | Další
VI. MOŽNOSTI LICENCE | Nahoru | Rejstřík funkcí


Rejstřík funkcí

A

abs()
acos()
acosh()
addcslashes()
addslashes()
aggregate()
aggregate_info()
aggregate_methods()
aggregate_methods_by_list()
aggregate_methods_by_regexp()
aggregate_properties()
aggregate_properties_by_list()
aggregate_properties_by_regexp()
aggregation_info()
apache_child_terminate()
apache_get_modules()
apache_get_version()
apache_getenv()
apache_lookup_uri()
apache_note()
apache_request_headers()
apache_response_headers()
apache_setenv()
array()
array_change_key_case()
array_chunk()
array_combine()
array_count_values()
array_diff()
array_diff_assoc()
array_diff_uassoc()
array_fill()
array_filter()
array_flip()
array_intersect()
array_intersect_assoc()
array_key_exists()
array_keys()
array_map()
array_merge()
array_merge_recursive()
array_multisort()
array_pad()
array_pop()
array_push()
array_rand()
array_reduce()
array_reverse()
array_search()
array_shift()
array_slice()
array_splice()
array_sum()
array_udiff()
array_udiff_assoc()
array_udiff_uassoc()
array_unique()
array_unshift()
array_values()
array_walk()
arsort()
ascii2ebcdic()
asin()
asinh()
asort()
aspell_check()
aspell_check_raw()
aspell_new()
aspell_suggest()
assert()
assert_options()
atan()
atan2()
atanh()

B

base64_decode()
base64_encode()
base_convert()
basename()
bcadd()
bccomp()
bcdiv()
bcmod()
bcmul()
bcpow()
bcpowmod()
bcscale()
bcsqrt()
bcsub()
bin2hex()
bind_textdomain_codeset()
bindec()
bindtextdomain()
bzclose()
bzcompress()
bzdecompress()
bzerrno()
bzerror()
bzerrstr()
bzflush()
bzopen()
bzread()
bzwrite()

C

cal_days_in_month()
cal_from_jd()
cal_info()
cal_to_jd()
call_user_func()
call_user_func_array()
call_user_method()
call_user_method_array()
ccvs_add()
ccvs_auth()
ccvs_command()
ccvs_count()
ccvs_delete()
ccvs_done()
ccvs_init()
ccvs_lookup()
ccvs_new()
ccvs_report()
ccvs_return()
ccvs_reverse()
ccvs_sale()
ccvs_status()
ccvs_textvalue()
ccvs_void()
ceil()
chdir()
checkdate()
checkdnsrr()
chgrp()
chmod()
chop()
chown()
chr()
chroot()
chunk_split()
class_exists()
clearstatcache()
closedir()
closelog()
com()
com_addref()
com_get()
com_invoke()
com_isenum()
com_load()
com_load_typelib()
com_propget()
com_propput()
com_propset()
com_release()
com_set()
compact()
connection_aborted()
connection_status()
connection_timeout()
constant()
convert_cyr_string()
copy()
cos()
cosh()
count()
count_chars()
cpdf_add_annotation()
cpdf_add_outline()
cpdf_arc()
cpdf_begin_text()
cpdf_circle()
cpdf_clip()
cpdf_close()
cpdf_closepath()
cpdf_closepath_fill_stroke()
cpdf_closepath_stroke()
cpdf_continue_text()
cpdf_curveto()
cpdf_end_text()
cpdf_fill()
cpdf_fill_stroke()
cpdf_finalize()
cpdf_finalize_page()
cpdf_global_set_document_limits()
cpdf_import_jpeg()
cpdf_lineto()
cpdf_moveto()
cpdf_newpath()
cpdf_open()
cpdf_output_buffer()
cpdf_page_init()
cpdf_place_inline_image()
cpdf_rect()
cpdf_restore()
cpdf_rlineto()
cpdf_rmoveto()
cpdf_rotate()
cpdf_rotate_text()
cpdf_save()
cpdf_save_to_file()
cpdf_scale()
cpdf_set_action_url()
cpdf_set_char_spacing()
cpdf_set_creator()
cpdf_set_current_page()
cpdf_set_font()
cpdf_set_font_directories()
cpdf_set_font_map_file()
cpdf_set_horiz_scaling()
cpdf_set_keywords()
cpdf_set_leading()
cpdf_set_page_animation()
cpdf_set_subject()
cpdf_set_text_matrix()
cpdf_set_text_pos()
cpdf_set_text_rendering()
cpdf_set_text_rise()
cpdf_set_title()
cpdf_set_viewer_preferences()
cpdf_set_word_spacing()
cpdf_setdash()
cpdf_setflat()
cpdf_setgray()
cpdf_setgray_fill()
cpdf_setgray_stroke()
cpdf_setlinecap()
cpdf_setlinejoin()
cpdf_setlinewidth()
cpdf_setmiterlimit()
cpdf_setrgbcolor()
cpdf_setrgbcolor_fill()
cpdf_setrgbcolor_stroke()
cpdf_show()
cpdf_show_xy()
cpdf_stringwidth()
cpdf_stroke()
cpdf_text()
cpdf_translate()
crack_check()
crack_closedict()
crack_getlastmessage()
crack_opendict()
crc32()
create_function()
crypt()
ctype_alnum()
ctype_alpha()
ctype_cntrl()
ctype_digit()
ctype_graph()
ctype_lower()
ctype_print()
ctype_punct()
ctype_space()
ctype_upper()
ctype_xdigit()
curl_close()
curl_errno()
curl_error()
curl_exec()
curl_getinfo()
curl_init()
curl_multi_add_handle()
curl_multi_close()
curl_multi_exec()
curl_multi_getcontent()
curl_multi_info_read()
curl_multi_init()
curl_multi_remove_handle()
curl_multi_select()
curl_setopt()
curl_version()
current()
cybercash_base64_decode()
cybercash_base64_encode()
cybercash_decr()
cybercash_encr()
cyrus_authenticate()
cyrus_bind()
cyrus_close()
cyrus_connect()
cyrus_query()
cyrus_unbind()

D

date()
dba_close()
dba_delete()
dba_exists()
dba_fetch()
dba_firstkey()
dba_handlers()
dba_insert()
dba_key_split()
dba_list()
dba_nextkey()
dba_open()
dba_optimize()
dba_popen()
dba_replace()
dba_sync()
dbase_add_record()
dbase_close()
dbase_create()
dbase_delete_record()
dbase_get_header_info()
dbase_get_record()
dbase_get_record_with_names()
dbase_numfields()
dbase_numrecords()
dbase_open()
dbase_pack()
dbase_replace_record()
dblist()
dbmclose()
dbmdelete()
dbmexists()
dbmfetch()
dbmfirstkey()
dbminsert()
dbmnextkey()
dbmopen()
dbmreplace()
dbplus_add()
dbplus_aql()
dbplus_chdir()
dbplus_close()
dbplus_curr()
dbplus_errcode()
dbplus_errno()
dbplus_find()
dbplus_first()
dbplus_flush()
dbplus_freealllocks()
dbplus_freelock()
dbplus_freerlocks()
dbplus_getlock()
dbplus_getunique()
dbplus_info()
dbplus_last()
dbplus_lockrel()
dbplus_next()
dbplus_open()
dbplus_prev()
dbplus_rchperm()
dbplus_rcreate()
dbplus_rcrtexact()
dbplus_rcrtlike()
dbplus_resolve()
dbplus_restorepos()
dbplus_rkeys()
dbplus_ropen()
dbplus_rquery()
dbplus_rrename()
dbplus_rsecindex()
dbplus_runlink()
dbplus_rzap()
dbplus_savepos()
dbplus_setindex()
dbplus_setindexbynumber()
dbplus_sql()
dbplus_tcl()
dbplus_tremove()
dbplus_undo()
dbplus_undoprepare()
dbplus_unlockrel()
dbplus_unselect()
dbplus_update()
dbplus_xlockrel()
dbplus_xunlockrel()
dbx_close()
dbx_compare()
dbx_connect()
dbx_error()
dbx_escape_string()
dbx_fetch_row()
dbx_query()
dbx_sort()
dcgettext()
dcngettext()
deaggregate()
debug_backtrace()
debug_print_backtrace()
debugger_off()
debugger_on()
decbin()
dechex()
decoct()
define()
define_syslog_variables()
defined()
deg2rad()
delete()
dgettext()
die()
dio_close()
dio_fcntl()
dio_open()
dio_read()
dio_seek()
dio_stat()
dio_tcsetattr()
dio_truncate()
dio_write()
dir()
dirname()
disk_free_space()
disk_total_space()
diskfreespace()
dl()
dngettext()
dns_check_record()
dns_get_mx()
dns_get_record()
domattribute->name()
domattribute->specified()
domattribute->value()
domdocument->add_root [deprecated]()
domdocument->create_attribute()
domdocument->create_cdata_section()
domdocument->create_comment()
domdocument->create_element()
domdocument->create_element_ns()
domdocument->create_entity_reference()
domdocument->create_processing_instruction()
domdocument->create_text_node()
domdocument->doctype()
domdocument->document_element()
domdocument->dump_file()
domdocument->dump_mem()
domdocument->get_element_by_id()
domdocument->get_elements_by_tagname()
domdocument->html_dump_mem()
domdocument->xinclude()
domdocumenttype->entities()
domdocumenttype->internal_subset()
domdocumenttype->name()
domdocumenttype->notations()
domdocumenttype->public_id()
domdocumenttype->system_id()
domelement->get_attribute()
domelement->get_attribute_node()
domelement->get_elements_by_tagname()
domelement->has_attribute()
domelement->remove_attribute()
domelement->set_attribute()
domelement->tagname()
domnode->add_namespace()
domnode->append_child()
domnode->append_sibling()
domnode->attributes()
domnode->child_nodes()
domnode->clone_node()
domnode->dump_node()
domnode->first_child()
domnode->get_content()
domnode->has_attributes()
domnode->has_child_nodes()
domnode->insert_before()
domnode->is_blank_node()
domnode->last_child()
domnode->next_sibling()
domnode->node_name()
domnode->node_type()
domnode->node_value()
domnode->owner_document()
domnode->parent_node()
domnode->prefix()
domnode->previous_sibling()
domnode->remove_child()
domnode->replace_child()
domnode->replace_node()
domnode->set_content()
domnode->set_name()
domnode->set_namespace()
domnode->unlink_node()
domprocessinginstruction->data()
domprocessinginstruction->target()
domxml_new_doc()
domxml_open_file()
domxml_open_mem()
domxml_version()
domxml_xmltree()
domxml_xslt_stylesheet()
domxml_xslt_stylesheet_doc()
domxml_xslt_stylesheet_file()
domxsltstylesheet->process()
domxsltstylesheet->result_dump_file()
domxsltstylesheet->result_dump_mem()
dotnet_load()
doubleval()

E

each()
easter_date()
easter_days()
ebcdic2ascii()
echo()
empty()
end()
ereg()
ereg_replace()
eregi()
eregi_replace()
error_log()
error_reporting()
escapeshellarg()
escapeshellcmd()
eval()
exec()
exif_imagetype()
exif_read_data()
exif_thumbnail()
exit()
exp()
explode()
expm1()
extension_loaded()
extract()
ezmlm_hash()

F

fam_cancel_monitor()
fam_close()
fam_monitor_collection()
fam_monitor_directory()
fam_monitor_file()
fam_next_event()
fam_open()
fam_pending()
fam_resume_monitor()
fam_suspend_monitor()
fbsql_affected_rows()
fbsql_autocommit()
fbsql_change_user()
fbsql_close()
fbsql_commit()
fbsql_connect()
fbsql_create_blob()
fbsql_create_clob()
fbsql_create_db()
fbsql_data_seek()
fbsql_database()
fbsql_database_password()
fbsql_db_query()
fbsql_db_status()
fbsql_drop_db()
fbsql_errno()
fbsql_error()
fbsql_fetch_array()
fbsql_fetch_assoc()
fbsql_fetch_field()
fbsql_fetch_lengths()
fbsql_fetch_object()
fbsql_fetch_row()
fbsql_field_flags()
fbsql_field_len()
fbsql_field_name()
fbsql_field_seek()
fbsql_field_table()
fbsql_field_type()
fbsql_free_result()
fbsql_get_autostart_info()
fbsql_hostname()
fbsql_insert_id()
fbsql_list_dbs()
fbsql_list_fields()
fbsql_list_tables()
fbsql_next_result()
fbsql_num_fields()
fbsql_num_rows()
fbsql_password()
fbsql_pconnect()
fbsql_query()
fbsql_read_blob()
fbsql_read_clob()
fbsql_result()
fbsql_rollback()
fbsql_select_db()
fbsql_set_lob_mode()
fbsql_set_transaction()
fbsql_start_db()
fbsql_stop_db()
fbsql_tablename()
fbsql_username()
fbsql_warnings()
fclose()
fdf_add_doc_javascript()
fdf_add_template()
fdf_close()
fdf_create()
fdf_enum_values()
fdf_errno()
fdf_error()
fdf_get_ap()
fdf_get_attachment()
fdf_get_encoding()
fdf_get_file()
fdf_get_flags()
fdf_get_opt()
fdf_get_status()
fdf_get_value()
fdf_get_version()
fdf_header()
fdf_next_field_name()
fdf_open()
fdf_open_string()
fdf_remove_item()
fdf_save()
fdf_save_string()
fdf_set_ap()
fdf_set_encoding()
fdf_set_file()
fdf_set_flags()
fdf_set_javascript_action()
fdf_set_opt()
fdf_set_status()
fdf_set_submit_form_action()
fdf_set_target_frame()
fdf_set_value()
fdf_set_version()
feof()
fflush()
fgetc()
fgetcsv()
fgets()
fgetss()
file()
file_exists()
file_get_contents()
file_put_contents()
fileatime()
filectime()
filegroup()
fileinode()
filemtime()
fileowner()
fileperms()
filepro()
filepro_fieldcount()
filepro_fieldname()
filepro_fieldtype()
filepro_fieldwidth()
filepro_retrieve()
filepro_rowcount()
filesize()
filetype()
floatval()
flock()
floor()
flush()
fmod()
fnmatch()
fopen()
fpassthru()
fprintf()
fputs()
fread()
frenchtojd()
fribidi_log2vis()
fscanf()
fseek()
fsockopen()
fstat()
ftell()
ftok()
ftp_alloc()
ftp_cdup()
ftp_chdir()
ftp_chmod()
ftp_close()
ftp_connect()
ftp_delete()
ftp_exec()
ftp_fget()
ftp_fput()
ftp_get()
ftp_get_option()
ftp_login()
ftp_mdtm()
ftp_mkdir()
ftp_nb_continue()
ftp_nb_fget()
ftp_nb_fput()
ftp_nb_get()
ftp_nb_put()
ftp_nlist()
ftp_pasv()
ftp_put()
ftp_pwd()
ftp_quit()
ftp_raw()
ftp_rawlist()
ftp_rename()
ftp_rmdir()
ftp_set_option()
ftp_site()
ftp_size()
ftp_ssl_connect()
ftp_systype()
ftruncate()
func_get_arg()
func_get_args()
func_num_args()
function_exists()
fwrite()

G

gd_info()
get_browser()
get_cfg_var()
get_class()
get_class_methods()
get_class_vars()
get_current_user()
get_declared_classes()
get_defined_constants()
get_defined_functions()
get_defined_vars()
get_extension_funcs()
get_html_translation_table()
get_include_path()
get_included_files()
get_loaded_extensions()
get_magic_quotes_gpc()
get_magic_quotes_runtime()
get_meta_tags()
get_object_vars()
get_parent_class()
get_required_files()
get_resource_type()
getallheaders()
getcwd()
getdate()
getenv()
gethostbyaddr()
gethostbyname()
gethostbynamel()
getimagesize()
getlastmod()
getmxrr()
getmygid()
getmyinode()
getmypid()
getmyuid()
getopt()
getprotobyname()
getprotobynumber()
getrandmax()
getrusage()
getservbyname()
getservbyport()
gettext()
gettimeofday()
gettype()
glob()
gmdate()
gmmktime()
gmp_abs()
gmp_add()
gmp_and()
gmp_clrbit()
gmp_cmp()
gmp_com()
gmp_div()
gmp_div_q()
gmp_div_qr()
gmp_div_r()
gmp_divexact()
gmp_fact()
gmp_gcd()
gmp_gcdext()
gmp_hamdist()
gmp_init()
gmp_intval()
gmp_invert()
gmp_jacobi()
gmp_legendre()
gmp_mod()
gmp_mul()
gmp_neg()
gmp_or()
gmp_perfect_square()
gmp_popcount()
gmp_pow()
gmp_powm()
gmp_prob_prime()
gmp_random()
gmp_scan0()
gmp_scan1()
gmp_setbit()
gmp_sign()
gmp_sqrt()
gmp_sqrtrem()
gmp_sqrtrm()
gmp_strval()
gmp_sub()
gmp_xor()
gmstrftime()
gregoriantojd()
gzclose()
gzcompress()
gzdeflate()
gzencode()
gzeof()
gzfile()
gzgetc()
gzgets()
gzgetss()
gzinflate()
gzopen()
gzpassthru()
gzputs()
gzread()
gzrewind()
gzseek()
gztell()
gzuncompress()
gzwrite()

H

header()
headers_list()
headers_sent()
hebrev()
hebrevc()
hexdec()
highlight_file()
highlight_string()
html_entity_decode()
htmlentities()
htmlspecialchars()
http_build_query()
hw_api->checkin()
hw_api->checkout()
hw_api->children()
hw_api->content()
hw_api->copy()
hw_api->dbstat()
hw_api->dcstat()
hw_api->dstanchors()
hw_api->dstofsrcanchors()
hw_api->find()
hw_api->ftstat()
hw_api->hwstat()
hw_api->identify()
hw_api->info()
hw_api->insert()
hw_api->insertanchor()
hw_api->insertcollection()
hw_api->insertdocument()
hw_api->link()
hw_api->lock()
hw_api->move()
hw_api->object()
hw_api->objectbyanchor()
hw_api->parents()
hw_api->remove()
hw_api->replace()
hw_api->setcommitedversion()
hw_api->srcanchors()
hw_api->srcsofdst()
hw_api->unlock()
hw_api->user()
hw_api->userlist()
hw_api_attribute()
hw_api_attribute->key()
hw_api_attribute->langdepvalue()
hw_api_attribute->value()
hw_api_attribute->values()
hw_api_content()
hw_api_content->mimetype()
hw_api_content->read()
hw_api_error->count()
hw_api_error->reason()
hw_api_object()
hw_api_object->assign()
hw_api_object->attreditable()
hw_api_object->count()
hw_api_object->insert()
hw_api_object->remove()
hw_api_object->title()
hw_api_object->value()
hw_api_reason->description()
hw_api_reason->type()
hw_array2objrec()
hw_changeobject()
hw_children()
hw_childrenobj()
hw_close()
hw_connect()
hw_connection_info()
hw_cp()
hw_deleteobject()
hw_docbyanchor()
hw_docbyanchorobj()
hw_document_attributes()
hw_document_bodytag()
hw_document_content()
hw_document_setcontent()
hw_document_size()
hw_dummy()
hw_edittext()
hw_error()
hw_errormsg()
hw_free_document()
hw_getanchors()
hw_getanchorsobj()
hw_getandlock()
hw_getchildcoll()
hw_getchildcollobj()
hw_getchilddoccoll()
hw_getchilddoccollobj()
hw_getobject()
hw_getobjectbyquery()
hw_getobjectbyquerycoll()
hw_getobjectbyquerycollobj()
hw_getobjectbyqueryobj()
hw_getparents()
hw_getparentsobj()
hw_getrellink()
hw_getremote()
hw_getremotechildren()
hw_getsrcbydestobj()
hw_gettext()
hw_getusername()
hw_identify()
hw_incollections()
hw_info()
hw_inscoll()
hw_insdoc()
hw_insertanchors()
hw_insertdocument()
hw_insertobject()
hw_mapid()
hw_modifyobject()
hw_mv()
hw_new_document()
hw_objrec2array()
hw_output_document()
hw_pconnect()
hw_pipedocument()
hw_root()
hw_setlinkroot()
hw_stat()
hw_unlock()
hw_who()
hwapi_hgcsp()
hypot()

I

ibase_add_user()
ibase_affected_rows()
ibase_blob_add()
ibase_blob_cancel()
ibase_blob_close()
ibase_blob_create()
ibase_blob_echo()
ibase_blob_get()
ibase_blob_import()
ibase_blob_info()
ibase_blob_open()
ibase_close()
ibase_commit()
ibase_commit_ret()
ibase_connect()
ibase_delete_user()
ibase_drop_db()
ibase_errcode()
ibase_errmsg()
ibase_execute()
ibase_fetch_assoc()
ibase_fetch_object()
ibase_fetch_row()
ibase_field_info()
ibase_free_event_handler()
ibase_free_query()
ibase_free_result()
ibase_gen_id()
ibase_modify_user()
ibase_name_result()
ibase_num_fields()
ibase_num_params()
ibase_param_info()
ibase_pconnect()
ibase_prepare()
ibase_query()
ibase_rollback()
ibase_rollback_ret()
ibase_set_event_handler()
ibase_timefmt()
ibase_trans()
ibase_wait_event()
iconv()
iconv_get_encoding()
iconv_mime_decode()
iconv_mime_decode_headers()
iconv_mime_encode()
iconv_set_encoding()
iconv_strlen()
iconv_strpos()
iconv_strrpos()
iconv_substr()
ifx_affected_rows()
ifx_blobinfile_mode()
ifx_byteasvarchar()
ifx_close()
ifx_connect()
ifx_copy_blob()
ifx_create_blob()
ifx_create_char()
ifx_do()
ifx_error()
ifx_errormsg()
ifx_fetch_row()
ifx_fieldproperties()
ifx_fieldtypes()
ifx_free_blob()
ifx_free_char()
ifx_free_result()
ifx_get_blob()
ifx_get_char()
ifx_getsqlca()
ifx_htmltbl_result()
ifx_nullformat()
ifx_num_fields()
ifx_num_rows()
ifx_pconnect()
ifx_prepare()
ifx_query()
ifx_textasvarchar()
ifx_update_blob()
ifx_update_char()
ifxus_close_slob()
ifxus_create_slob()
ifxus_free_slob()
ifxus_open_slob()
ifxus_read_slob()
ifxus_seek_slob()
ifxus_tell_slob()
ifxus_write_slob()
ignore_user_abort()
image2wbmp()
image_type_to_mime_type()
imagealphablending()
imageantialias()
imagearc()
imagechar()
imagecharup()
imagecolorallocate()
imagecolorallocatealpha()
imagecolorat()
imagecolorclosest()
imagecolorclosestalpha()
imagecolorclosesthwb()
imagecolordeallocate()
imagecolorexact()
imagecolorexactalpha()
imagecolormatch()
imagecolorresolve()
imagecolorresolvealpha()
imagecolorset()
imagecolorsforindex()
imagecolorstotal()
imagecolortransparent()
imagecopy()
imagecopymerge()
imagecopymergegray()
imagecopyresampled()
imagecopyresized()
imagecreate()
imagecreatefromgd()
imagecreatefromgd2()
imagecreatefromgd2part()
imagecreatefromgif()
imagecreatefromjpeg()
imagecreatefrompng()
imagecreatefromstring()
imagecreatefromwbmp()
imagecreatefromxbm()
imagecreatefromxpm()
imagecreatetruecolor()
imagedashedline()
imagedestroy()
imageellipse()
imagefill()
imagefilledarc()
imagefilledellipse()
imagefilledpolygon()
imagefilledrectangle()
imagefilltoborder()
imagefontheight()
imagefontwidth()
imageftbbox()
imagefttext()
imagegammacorrect()
imagegd()
imagegd2()
imagegif()
imageinterlace()
imageistruecolor()
imagejpeg()
imageline()
imageloadfont()
imagepalettecopy()
imagepng()
imagepolygon()
imagepsbbox()
imagepscopyfont()
imagepsencodefont()
imagepsextendfont()
imagepsfreefont()
imagepsloadfont()
imagepsslantfont()
imagepstext()
imagerectangle()
imagerotate()
imagesavealpha()
imagesetbrush()
imagesetpixel()
imagesetstyle()
imagesetthickness()
imagesettile()
imagestring()
imagestringup()
imagesx()
imagesy()
imagetruecolortopalette()
imagettfbbox()
imagettftext()
imagetypes()
imagewbmp()
imap_8bit()
imap_alerts()
imap_append()
imap_base64()
imap_binary()
imap_body()
imap_bodystruct()
imap_check()
imap_clearflag_full()
imap_close()
imap_createmailbox()
imap_delete()
imap_deletemailbox()
imap_errors()
imap_expunge()
imap_fetch_overview()
imap_fetchbody()
imap_fetchheader()
imap_fetchstructure()
imap_get_quota()
imap_get_quotaroot()
imap_getacl()
imap_getmailboxes()
imap_getsubscribed()
imap_header()
imap_headerinfo()
imap_headers()
imap_last_error()
imap_list()
imap_listmailbox()
imap_listscan()
imap_listsubscribed()
imap_lsub()
imap_mail()
imap_mail_compose()
imap_mail_copy()
imap_mail_move()
imap_mailboxmsginfo()
imap_mime_header_decode()
imap_msgno()
imap_num_msg()
imap_num_recent()
imap_open()
imap_ping()
imap_qprint()
imap_renamemailbox()
imap_reopen()
imap_rfc822_parse_adrlist()
imap_rfc822_parse_headers()
imap_rfc822_write_address()
imap_scanmailbox()
imap_search()
imap_set_quota()
imap_setacl()
imap_setflag_full()
imap_sort()
imap_status()
imap_subscribe()
imap_thread()
imap_timeout()
imap_uid()
imap_undelete()
imap_unsubscribe()
imap_utf7_decode()
imap_utf7_encode()
imap_utf8()
implode()
import_request_variables()
in_array()
ingres_autocommit()
ingres_close()
ingres_commit()
ingres_connect()
ingres_fetch_array()
ingres_fetch_object()
ingres_fetch_row()
ingres_field_length()
ingres_field_name()
ingres_field_nullable()
ingres_field_precision()
ingres_field_scale()
ingres_field_type()
ingres_num_fields()
ingres_num_rows()
ingres_pconnect()
ingres_query()
ingres_rollback()
ini_alter()
ini_get()
ini_get_all()
ini_restore()
ini_set()
intval()
ip2long()
iptcembed()
iptcparse()
ircg_channel_mode()
ircg_disconnect()
ircg_fetch_error_msg()
ircg_get_username()
ircg_html_encode()
ircg_ignore_add()
ircg_ignore_del()
ircg_is_conn_alive()
ircg_join()
ircg_kick()
ircg_lookup_format_messages()
ircg_msg()
ircg_nick()
ircg_nickname_escape()
ircg_nickname_unescape()
ircg_notice()
ircg_part()
ircg_pconnect()
ircg_register_format_messages()
ircg_set_current()
ircg_set_file()
ircg_set_on_die()
ircg_topic()
ircg_whois()
is_a()
is_array()
is_bool()
is_callable()
is_dir()
is_double()
is_executable()
is_file()
is_finite()
is_float()
is_infinite()
is_int()
is_integer()
is_link()
is_long()
is_nan()
is_null()
is_numeric()
is_object()
is_readable()
is_real()
is_resource()
is_scalar()
is_string()
is_subclass_of()
is_uploaded_file()
is_writable()
is_writeable()
isset()

J

java_last_exception_clear()
java_last_exception_get()
jddayofweek()
jdmonthname()
jdtofrench()
jdtogregorian()
jdtojewish()
jdtojulian()
jdtounix()
jewishtojd()
join()
jpeg2wbmp()
juliantojd()

K

key()
krsort()
ksort()

L

lcg_value()
ldap_8859_to_t61()
ldap_add()
ldap_bind()
ldap_close()
ldap_compare()
ldap_connect()
ldap_count_entries()
ldap_delete()
ldap_dn2ufn()
ldap_err2str()
ldap_errno()
ldap_error()
ldap_explode_dn()
ldap_first_attribute()
ldap_first_entry()
ldap_first_reference()
ldap_free_result()
ldap_get_attributes()
ldap_get_dn()
ldap_get_entries()
ldap_get_option()
ldap_get_values()
ldap_get_values_len()
ldap_list()
ldap_mod_add()
ldap_mod_del()
ldap_mod_replace()
ldap_modify()
ldap_next_attribute()
ldap_next_entry()
ldap_next_reference()
ldap_parse_reference()
ldap_parse_result()
ldap_read()
ldap_rename()
ldap_search()
ldap_set_option()
ldap_set_rebind_proc()
ldap_sort()
ldap_start_tls()
ldap_t61_to_8859()
ldap_unbind()
levenshtein()
link()
linkinfo()
list()
localeconv()
localtime()
log()
log10()
log1p()
long2ip()
lstat()
ltrim()
lzf_compress()
lzf_decompress()
lzf_optimized_for()

M

mail()
mailparse_determine_best_xfer_encoding()
mailparse_msg_create()
mailparse_msg_extract_part()
mailparse_msg_extract_part_file()
mailparse_msg_free()
mailparse_msg_get_part()
mailparse_msg_get_part_data()
mailparse_msg_get_structure()
mailparse_msg_parse()
mailparse_msg_parse_file()
mailparse_rfc822_parse_addresses()
mailparse_stream_encode()
mailparse_uudecode_all()
main()
max()
mb_convert_case()
mb_convert_encoding()
mb_convert_kana()
mb_convert_variables()
mb_decode_mimeheader()
mb_decode_numericentity()
mb_detect_encoding()
mb_detect_order()
mb_encode_mimeheader()
mb_encode_numericentity()
mb_ereg()
mb_ereg_match()
mb_ereg_replace()
mb_ereg_search()
mb_ereg_search_getpos()
mb_ereg_search_getregs()
mb_ereg_search_init()
mb_ereg_search_pos()
mb_ereg_search_regs()
mb_ereg_search_setpos()
mb_eregi()
mb_eregi_replace()
mb_get_info()
mb_http_input()
mb_http_output()
mb_internal_encoding()
mb_language()
mb_output_handler()
mb_parse_str()
mb_preferred_mime_name()
mb_regex_encoding()
mb_regex_set_options()
mb_send_mail()
mb_split()
mb_strcut()
mb_strimwidth()
mb_strlen()
mb_strpos()
mb_strrpos()
mb_strtolower()
mb_strtoupper()
mb_strwidth()
mb_substitute_character()
mb_substr()
mb_substr_count()
mcal_append_event()
mcal_close()
mcal_create_calendar()
mcal_date_compare()
mcal_date_valid()
mcal_day_of_week()
mcal_day_of_year()
mcal_days_in_month()
mcal_delete_calendar()
mcal_delete_event()
mcal_event_add_attribute()
mcal_event_init()
mcal_event_set_alarm()
mcal_event_set_category()
mcal_event_set_class()
mcal_event_set_description()
mcal_event_set_end()
mcal_event_set_recur_daily()
mcal_event_set_recur_monthly_mday()
mcal_event_set_recur_monthly_wday()
mcal_event_set_recur_none()
mcal_event_set_recur_weekly()
mcal_event_set_recur_yearly()
mcal_event_set_start()
mcal_event_set_title()
mcal_expunge()
mcal_fetch_current_stream_event()
mcal_fetch_event()
mcal_is_leap_year()
mcal_list_alarms()
mcal_list_events()
mcal_next_recurrence()
mcal_open()
mcal_popen()
mcal_rename_calendar()
mcal_reopen()
mcal_snooze()
mcal_store_event()
mcal_time_valid()
mcal_week_of_year()
mcrypt_cbc()
mcrypt_cfb()
mcrypt_create_iv()
mcrypt_decrypt()
mcrypt_ecb()
mcrypt_enc_get_algorithms_name()
mcrypt_enc_get_block_size()
mcrypt_enc_get_iv_size()
mcrypt_enc_get_key_size()
mcrypt_enc_get_modes_name()
mcrypt_enc_get_supported_key_sizes()
mcrypt_enc_is_block_algorithm()
mcrypt_enc_is_block_algorithm_mode()
mcrypt_enc_is_block_mode()
mcrypt_enc_self_test()
mcrypt_encrypt()
mcrypt_generic()
mcrypt_generic_deinit()
mcrypt_generic_end()
mcrypt_generic_init()
mcrypt_get_block_size()
mcrypt_get_cipher_name()
mcrypt_get_iv_size()
mcrypt_get_key_size()
mcrypt_list_algorithms()
mcrypt_list_modes()
mcrypt_module_close()
mcrypt_module_get_algo_block_size()
mcrypt_module_get_algo_key_size()
mcrypt_module_get_supported_key_sizes()
mcrypt_module_is_block_algorithm()
mcrypt_module_is_block_algorithm_mode()
mcrypt_module_is_block_mode()
mcrypt_module_open()
mcrypt_module_self_test()
mcrypt_ofb()
mcve_adduser()
mcve_adduserarg()
mcve_bt()
mcve_checkstatus()
mcve_chkpwd()
mcve_chngpwd()
mcve_completeauthorizations()
mcve_connect()
mcve_connectionerror()
mcve_deleteresponse()
mcve_deletetrans()
mcve_deleteusersetup()
mcve_deluser()
mcve_destroyconn()
mcve_destroyengine()
mcve_disableuser()
mcve_edituser()
mcve_enableuser()
mcve_force()
mcve_getcell()
mcve_getcellbynum()
mcve_getcommadelimited()
mcve_getheader()
mcve_getuserarg()
mcve_getuserparam()
mcve_gft()
mcve_gl()
mcve_gut()
mcve_initconn()
mcve_initengine()
mcve_initusersetup()
mcve_iscommadelimited()
mcve_liststats()
mcve_listusers()
mcve_maxconntimeout()
mcve_monitor()
mcve_numcolumns()
mcve_numrows()
mcve_override()
mcve_parsecommadelimited()
mcve_ping()
mcve_preauth()
mcve_preauthcompletion()
mcve_qc()
mcve_responseparam()
mcve_return()
mcve_returncode()
mcve_returnstatus()
mcve_sale()
mcve_setblocking()
mcve_setdropfile()
mcve_setip()
mcve_setssl()
mcve_setssl_files()
mcve_settimeout()
mcve_settle()
mcve_text_avs()
mcve_text_code()
mcve_text_cv()
mcve_transactionauth()
mcve_transactionavs()
mcve_transactionbatch()
mcve_transactioncv()
mcve_transactionid()
mcve_transactionitem()
mcve_transactionssent()
mcve_transactiontext()
mcve_transinqueue()
mcve_transnew()
mcve_transparam()
mcve_transsend()
mcve_ub()
mcve_uwait()
mcve_verifyconnection()
mcve_verifysslcert()
mcve_void()
md5()
md5_file()
mdecrypt_generic()
memory_get_usage()
metaphone()
method_exists()
mhash()
mhash_count()
mhash_get_block_size()
mhash_get_hash_name()
mhash_keygen_s2k()
microtime()
mime_content_type()
min()
ming_setcubicthreshold()
ming_setscale()
ming_useswfversion()
mkdir()
mktime()
money_format()
move_uploaded_file()
msession_connect()
msession_count()
msession_create()
msession_destroy()
msession_disconnect()
msession_find()
msession_get()
msession_get_array()
msession_getdata()
msession_inc()
msession_list()
msession_listvar()
msession_lock()
msession_plugin()
msession_randstr()
msession_set()
msession_set_array()
msession_setdata()
msession_timeout()
msession_uniq()
msession_unlock()
msg_get_queue()
msg_receive()
msg_remove_queue()
msg_send()
msg_set_queue()
msg_stat_queue()
msql()
msql_affected_rows()
msql_close()
msql_connect()
msql_create_db()
msql_createdb()
msql_data_seek()
msql_dbname()
msql_drop_db()
msql_dropdb()
msql_error()
msql_fetch_array()
msql_fetch_field()
msql_fetch_object()
msql_fetch_row()
msql_field_seek()
msql_fieldflags()
msql_fieldlen()
msql_fieldname()
msql_fieldtable()
msql_fieldtype()
msql_free_result()
msql_freeresult()
msql_list_dbs()
msql_list_fields()
msql_list_tables()
msql_listdbs()
msql_listfields()
msql_listtables()
msql_num_fields()
msql_num_rows()
msql_numfields()
msql_numrows()
msql_pconnect()
msql_query()
msql_regcase()
msql_result()
msql_select_db()
msql_selectdb()
msql_tablename()
mssql_bind()
mssql_close()
mssql_connect()
mssql_data_seek()
mssql_execute()
mssql_fetch_array()
mssql_fetch_assoc()
mssql_fetch_batch()
mssql_fetch_field()
mssql_fetch_object()
mssql_fetch_row()
mssql_field_length()
mssql_field_name()
mssql_field_seek()
mssql_field_type()
mssql_free_result()
mssql_free_statement()
mssql_get_last_message()
mssql_guid_string()
mssql_init()
mssql_min_error_severity()
mssql_min_message_severity()
mssql_next_result()
mssql_num_fields()
mssql_num_rows()
mssql_pconnect()
mssql_query()
mssql_result()
mssql_rows_affected()
mssql_select_db()
mt_getrandmax()
mt_rand()
mt_srand()
muscat_close()
muscat_get()
muscat_give()
muscat_setup()
muscat_setup_net()
mysql_affected_rows()
mysql_change_user()
mysql_client_encoding()
mysql_close()
mysql_connect()
mysql_create_db()
mysql_data_seek()
mysql_db_name()
mysql_db_query()
mysql_drop_db()
mysql_errno()
mysql_error()
mysql_escape_string()
mysql_fetch_array()
mysql_fetch_assoc()
mysql_fetch_field()
mysql_fetch_lengths()
mysql_fetch_object()
mysql_fetch_row()
mysql_field_flags()
mysql_field_len()
mysql_field_name()
mysql_field_seek()
mysql_field_table()
mysql_field_type()
mysql_free_result()
mysql_get_client_info()
mysql_get_host_info()
mysql_get_proto_info()
mysql_get_server_info()
mysql_info()
mysql_insert_id()
mysql_list_dbs()
mysql_list_fields()
mysql_list_processes()
mysql_list_tables()
mysql_num_fields()
mysql_num_rows()
mysql_pconnect()
mysql_ping()
mysql_query()
mysql_real_escape_string()
mysql_result()
mysql_select_db()
mysql_stat()
mysql_tablename()
mysql_thread_id()
mysql_unbuffered_query()
mysqli_affected_rows()
mysqli_autocommit()
mysqli_bind_param()
mysqli_bind_result()
mysqli_change_user()
mysqli_character_set_name()
mysqli_close()
mysqli_commit()
mysqli_connect()
mysqli_data_seek()
mysqli_debug()
mysqli_disable_reads_from_master()
mysqli_disable_rpl_parse()
mysqli_dump_debug_info()
mysqli_enable_reads_from_master()
mysqli_enable_rpl_parse()
mysqli_errno()
mysqli_error()
mysqli_execute()
mysqli_fetch()
mysqli_fetch_array()
mysqli_fetch_assoc()
mysqli_fetch_field()
mysqli_fetch_field_direct()
mysqli_fetch_fields()
mysqli_fetch_lengths()
mysqli_fetch_object()
mysqli_fetch_row()
mysqli_field_count()
mysqli_field_seek()
mysqli_field_tell()
mysqli_free_result()
mysqli_get_client_info()
mysqli_get_host_info()
mysqli_get_proto_info()
mysqli_get_server_info()
mysqli_get_server_version()
mysqli_info()
mysqli_init()
mysqli_insert_id()
mysqli_kill()
mysqli_master_query()
mysqli_num_fields()
mysqli_num_rows()
mysqli_options()
mysqli_param_count()
mysqli_ping()
mysqli_prepare()
mysqli_prepare_result()
mysqli_profiler()
mysqli_query()
mysqli_read_query_result()
mysqli_real_connect()
mysqli_real_escape_string()
mysqli_real_query()
mysqli_reload()
mysqli_rollback()
mysqli_rpl_parse_enabled()
mysqli_rpl_probe()
mysqli_rpl_query_type()
mysqli_select_db()
mysqli_send_long_data()
mysqli_send_query()
mysqli_slave_query()
mysqli_ssl_set()
mysqli_stat()
mysqli_stmt_affected_rows()
mysqli_stmt_close()
mysqli_stmt_errno()
mysqli_stmt_error()
mysqli_stmt_store_result()
mysqli_store_result()
mysqli_thread_id()
mysqli_thread_safe()
mysqli_use_result()
mysqli_warning_count()

N

natcasesort()
natsort()
ncurses_addch()
ncurses_addchnstr()
ncurses_addchstr()
ncurses_addnstr()
ncurses_addstr()
ncurses_assume_default_colors()
ncurses_attroff()
ncurses_attron()
ncurses_attrset()
ncurses_baudrate()
ncurses_beep()
ncurses_bkgd()
ncurses_bkgdset()
ncurses_border()
ncurses_bottom_panel()
ncurses_can_change_color()
ncurses_cbreak()
ncurses_clear()
ncurses_clrtobot()
ncurses_clrtoeol()
ncurses_color_content()
ncurses_color_set()
ncurses_curs_set()
ncurses_def_prog_mode()
ncurses_def_shell_mode()
ncurses_define_key()
ncurses_del_panel()
ncurses_delay_output()
ncurses_delch()
ncurses_deleteln()
ncurses_delwin()
ncurses_doupdate()
ncurses_echo()
ncurses_echochar()
ncurses_end()
ncurses_erase()
ncurses_erasechar()
ncurses_filter()
ncurses_flash()
ncurses_flushinp()
ncurses_getch()
ncurses_getmaxyx()
ncurses_getmouse()
ncurses_getyx()
ncurses_halfdelay()
ncurses_has_colors()
ncurses_has_ic()
ncurses_has_il()
ncurses_has_key()
ncurses_hide_panel()
ncurses_hline()
ncurses_inch()
ncurses_init()
ncurses_init_color()
ncurses_init_pair()
ncurses_insch()
ncurses_insdelln()
ncurses_insertln()
ncurses_insstr()
ncurses_instr()
ncurses_isendwin()
ncurses_keyok()
ncurses_keypad()
ncurses_killchar()
ncurses_longname()
ncurses_meta()
ncurses_mouse_trafo()
ncurses_mouseinterval()
ncurses_mousemask()
ncurses_move()
ncurses_move_panel()
ncurses_mvaddch()
ncurses_mvaddchnstr()
ncurses_mvaddchstr()
ncurses_mvaddnstr()
ncurses_mvaddstr()
ncurses_mvcur()
ncurses_mvdelch()
ncurses_mvgetch()
ncurses_mvhline()
ncurses_mvinch()
ncurses_mvvline()
ncurses_mvwaddstr()
ncurses_napms()
ncurses_new_panel()
ncurses_newpad()
ncurses_newwin()
ncurses_nl()
ncurses_nocbreak()
ncurses_noecho()
ncurses_nonl()
ncurses_noqiflush()
ncurses_noraw()
ncurses_pair_content()
ncurses_panel_above()
ncurses_panel_below()
ncurses_panel_window()
ncurses_pnoutrefresh()
ncurses_prefresh()
ncurses_putp()
ncurses_qiflush()
ncurses_raw()
ncurses_refresh()
ncurses_replace_panel()
ncurses_reset_prog_mode()
ncurses_reset_shell_mode()
ncurses_resetty()
ncurses_savetty()
ncurses_scr_dump()
ncurses_scr_init()
ncurses_scr_restore()
ncurses_scr_set()
ncurses_scrl()
ncurses_show_panel()
ncurses_slk_attr()
ncurses_slk_attroff()
ncurses_slk_attron()
ncurses_slk_attrset()
ncurses_slk_clear()
ncurses_slk_color()
ncurses_slk_init()
ncurses_slk_noutrefresh()
ncurses_slk_refresh()
ncurses_slk_restore()
ncurses_slk_set()
ncurses_slk_touch()
ncurses_standend()
ncurses_standout()
ncurses_start_color()
ncurses_termattrs()
ncurses_termname()
ncurses_timeout()
ncurses_top_panel()
ncurses_typeahead()
ncurses_ungetch()
ncurses_ungetmouse()
ncurses_update_panels()
ncurses_use_default_colors()
ncurses_use_env()
ncurses_use_extended_names()
ncurses_vidattr()
ncurses_vline()
ncurses_waddch()
ncurses_waddstr()
ncurses_wattroff()
ncurses_wattron()
ncurses_wattrset()
ncurses_wborder()
ncurses_wclear()
ncurses_wcolor_set()
ncurses_werase()
ncurses_wgetch()
ncurses_whline()
ncurses_wmouse_trafo()
ncurses_wmove()
ncurses_wnoutrefresh()
ncurses_wrefresh()
ncurses_wstandend()
ncurses_wstandout()
ncurses_wvline()
next()
ngettext()
nl2br()
nl_langinfo()
notes_body()
notes_copy_db()
notes_create_db()
notes_create_note()
notes_drop_db()
notes_find_note()
notes_header_info()
notes_list_msgs()
notes_mark_read()
notes_mark_unread()
notes_nav_create()
notes_search()
notes_unread()
notes_version()
nsapi_request_headers()
nsapi_response_headers()
nsapi_virtual()
number_format()

O

ob_clean()
ob_end_clean()
ob_end_flush()
ob_flush()
ob_get_clean()
ob_get_contents()
ob_get_flush()
ob_get_length()
ob_get_level()
ob_get_status()
ob_gzhandler()
ob_iconv_handler()
ob_implicit_flush()
ob_list_handlers()
ob_start()
ob_tidyhandler()
ocibindbyname()
ocicancel()
ocicloselob()
ocicollappend()
ocicollassign()
ocicollassignelem()
ocicollgetelem()
ocicollmax()
ocicollsize()
ocicolltrim()
ocicolumnisnull()
ocicolumnname()
ocicolumnprecision()
ocicolumnscale()
ocicolumnsize()
ocicolumntype()
ocicolumntyperaw()
ocicommit()
ocidefinebyname()
ocierror()
ociexecute()
ocifetch()
ocifetchinto()
ocifetchstatement()
ocifreecollection()
ocifreecursor()
ocifreedesc()
ocifreestatement()
ociinternaldebug()
ociloadlob()
ocilogoff()
ocilogon()
ocinewcollection()
ocinewcursor()
ocinewdescriptor()
ocinlogon()
ocinumcols()
ociparse()
ociplogon()
ociresult()
ocirollback()
ocirowcount()
ocisavelob()
ocisavelobfile()
ociserverversion()
ocisetprefetch()
ocistatementtype()
ociwritelobtofile()
ociwritetemporarylob()
octdec()
odbc_autocommit()
odbc_binmode()
odbc_close()
odbc_close_all()
odbc_columnprivileges()
odbc_columns()
odbc_commit()
odbc_connect()
odbc_cursor()
odbc_data_source()
odbc_do()
odbc_error()
odbc_errormsg()
odbc_exec()
odbc_execute()
odbc_fetch_array()
odbc_fetch_into()
odbc_fetch_object()
odbc_fetch_row()
odbc_field_len()
odbc_field_name()
odbc_field_num()
odbc_field_precision()
odbc_field_scale()
odbc_field_type()
odbc_foreignkeys()
odbc_free_result()
odbc_gettypeinfo()
odbc_longreadlen()
odbc_next_result()
odbc_num_fields()
odbc_num_rows()
odbc_pconnect()
odbc_prepare()
odbc_primarykeys()
odbc_procedurecolumns()
odbc_procedures()
odbc_result()
odbc_result_all()
odbc_rollback()
odbc_setoption()
odbc_specialcolumns()
odbc_statistics()
odbc_tableprivileges()
odbc_tables()
opendir()
openlog()
openssl_csr_export()
openssl_csr_export_to_file()
openssl_csr_new()
openssl_csr_sign()
openssl_error_string()
openssl_free_key()
openssl_get_privatekey()
openssl_get_publickey()
openssl_open()
openssl_pkcs7_decrypt()
openssl_pkcs7_encrypt()
openssl_pkcs7_sign()
openssl_pkcs7_verify()
openssl_pkey_export()
openssl_pkey_export_to_file()
openssl_pkey_get_private()
openssl_pkey_get_public()
openssl_pkey_new()
openssl_private_decrypt()
openssl_private_encrypt()
openssl_public_decrypt()
openssl_public_encrypt()
openssl_seal()
openssl_sign()
openssl_verify()
openssl_x509_check_private_key()
openssl_x509_checkpurpose()
openssl_x509_export()
openssl_x509_export_to_file()
openssl_x509_free()
openssl_x509_parse()
openssl_x509_read()
ora_bind()
ora_close()
ora_columnname()
ora_columnsize()
ora_columntype()
ora_commit()
ora_commitoff()
ora_commiton()
ora_do()
ora_error()
ora_errorcode()
ora_exec()
ora_fetch()
ora_fetch_into()
ora_getcolumn()
ora_logoff()
ora_logon()
ora_numcols()
ora_numrows()
ora_open()
ora_parse()
ora_plogon()
ora_rollback()
ord()
output_add_rewrite_var()
output_reset_rewrite_vars()
overload()
ovrimos_close()
ovrimos_commit()
ovrimos_connect()
ovrimos_cursor()
ovrimos_exec()
ovrimos_execute()
ovrimos_fetch_into()
ovrimos_fetch_row()
ovrimos_field_len()
ovrimos_field_name()
ovrimos_field_num()
ovrimos_field_type()
ovrimos_free_result()
ovrimos_longreadlen()
ovrimos_num_fields()
ovrimos_num_rows()
ovrimos_prepare()
ovrimos_result()
ovrimos_result_all()
ovrimos_rollback()

P

pack()
parse_ini_file()
parse_str()
parse_url()
passthru()
pathinfo()
pattern modifiers()
pattern syntax()
pclose()
pcntl_exec()
pcntl_fork()
pcntl_signal()
pcntl_waitpid()
pcntl_wexitstatus()
pcntl_wifexited()
pcntl_wifsignaled()
pcntl_wifstopped()
pcntl_wstopsig()
pcntl_wtermsig()
pdf_add_annotation()
pdf_add_bookmark()
pdf_add_launchlink()
pdf_add_locallink()
pdf_add_note()
pdf_add_outline()
pdf_add_pdflink()
pdf_add_thumbnail()
pdf_add_weblink()
pdf_arc()
pdf_arcn()
pdf_attach_file()
pdf_begin_page()
pdf_begin_pattern()
pdf_begin_template()
pdf_circle()
pdf_clip()
pdf_close()
pdf_close_image()
pdf_close_pdi()
pdf_close_pdi_page()
pdf_closepath()
pdf_closepath_fill_stroke()
pdf_closepath_stroke()
pdf_concat()
pdf_continue_text()
pdf_curveto()
pdf_delete()
pdf_end_page()
pdf_end_pattern()
pdf_end_template()
pdf_endpath()
pdf_fill()
pdf_fill_stroke()
pdf_findfont()
pdf_get_buffer()
pdf_get_font()
pdf_get_fontname()
pdf_get_fontsize()
pdf_get_image_height()
pdf_get_image_width()
pdf_get_majorversion()
pdf_get_minorversion()
pdf_get_parameter()
pdf_get_pdi_parameter()
pdf_get_pdi_value()
pdf_get_value()
pdf_initgraphics()
pdf_lineto()
pdf_makespotcolor()
pdf_moveto()
pdf_new()
pdf_open()
pdf_open_ccitt()
pdf_open_file()
pdf_open_gif()
pdf_open_image()
pdf_open_image_file()
pdf_open_jpeg()
pdf_open_memory_image()
pdf_open_pdi()
pdf_open_pdi_page()
pdf_open_png()
pdf_open_tiff()
pdf_place_image()
pdf_place_pdi_page()
pdf_rect()
pdf_restore()
pdf_rotate()
pdf_save()
pdf_scale()
pdf_set_border_color()
pdf_set_border_dash()
pdf_set_border_style()
pdf_set_char_spacing()
pdf_set_duration()
pdf_set_font()
pdf_set_horiz_scaling()
pdf_set_info()
pdf_set_info_author()
pdf_set_info_creator()
pdf_set_info_keywords()
pdf_set_info_subject()
pdf_set_info_title()
pdf_set_leading()
pdf_set_parameter()
pdf_set_text_matrix()
pdf_set_text_pos()
pdf_set_text_rendering()
pdf_set_text_rise()
pdf_set_value()
pdf_set_word_spacing()
pdf_setcolor()
pdf_setdash()
pdf_setflat()
pdf_setfont()
pdf_setgray()
pdf_setgray_fill()
pdf_setgray_stroke()
pdf_setlinecap()
pdf_setlinejoin()
pdf_setlinewidth()
pdf_setmatrix()
pdf_setmiterlimit()
pdf_setpolydash()
pdf_setrgbcolor()
pdf_setrgbcolor_fill()
pdf_setrgbcolor_stroke()
pdf_show()
pdf_show_boxed()
pdf_show_xy()
pdf_skew()
pdf_stringwidth()
pdf_stroke()
pdf_translate()
pfpro_cleanup()
pfpro_init()
pfpro_process()
pfpro_process_raw()
pfpro_version()
pfsockopen()
pg_affected_rows()
pg_cancel_query()
pg_client_encoding()
pg_close()
pg_connect()
pg_connection_busy()
pg_connection_reset()
pg_connection_status()
pg_convert()
pg_copy_from()
pg_copy_to()
pg_dbname()
pg_delete()
pg_end_copy()
pg_escape_bytea()
pg_escape_string()
pg_fetch_all()
pg_fetch_array()
pg_fetch_assoc()
pg_fetch_object()
pg_fetch_result()
pg_fetch_row()
pg_field_is_null()
pg_field_name()
pg_field_num()
pg_field_prtlen()
pg_field_size()
pg_field_type()
pg_free_result()
pg_get_notify()
pg_get_pid()
pg_get_result()
pg_host()
pg_insert()
pg_last_error()
pg_last_notice()
pg_last_oid()
pg_lo_close()
pg_lo_create()
pg_lo_export()
pg_lo_import()
pg_lo_open()
pg_lo_read()
pg_lo_read_all()
pg_lo_seek()
pg_lo_tell()
pg_lo_unlink()
pg_lo_write()
pg_meta_data()
pg_num_fields()
pg_num_rows()
pg_options()
pg_pconnect()
pg_ping()
pg_port()
pg_put_line()
pg_query()
pg_result_error()
pg_result_seek()
pg_result_status()
pg_select()
pg_send_query()
pg_set_client_encoding()
pg_trace()
pg_tty()
pg_unescape_bytea()
pg_untrace()
pg_update()
php_ini_scanned_files()
php_logo_guid()
php_sapi_name()
php_uname()
phpcredits()
phpinfo()
phpversion()
pi()
png2wbmp()
popen()
pos()
posix_ctermid()
posix_get_last_error()
posix_getcwd()
posix_getegid()
posix_geteuid()
posix_getgid()
posix_getgrgid()
posix_getgrnam()
posix_getgroups()
posix_getlogin()
posix_getpgid()
posix_getpgrp()
posix_getpid()
posix_getppid()
posix_getpwnam()
posix_getpwuid()
posix_getrlimit()
posix_getsid()
posix_getuid()
posix_isatty()
posix_kill()
posix_mkfifo()
posix_setegid()
posix_seteuid()
posix_setgid()
posix_setpgid()
posix_setsid()
posix_setuid()
posix_strerror()
posix_times()
posix_ttyname()
posix_uname()
pow()
preg_grep()
preg_match()
preg_match_all()
preg_quote()
preg_replace()
preg_replace_callback()
preg_split()
prev()
print()
print_r()
printer_abort()
printer_close()
printer_create_brush()
printer_create_dc()
printer_create_font()
printer_create_pen()
printer_delete_brush()
printer_delete_dc()
printer_delete_font()
printer_delete_pen()
printer_draw_bmp()
printer_draw_chord()
printer_draw_elipse()
printer_draw_line()
printer_draw_pie()
printer_draw_rectangle()
printer_draw_roundrect()
printer_draw_text()
printer_end_doc()
printer_end_page()
printer_get_option()
printer_list()
printer_logical_fontheight()
printer_open()
printer_select_brush()
printer_select_font()
printer_select_pen()
printer_set_option()
printer_start_doc()
printer_start_page()
printer_write()
printf()
proc_close()
proc_get_status()
proc_nice()
proc_open()
proc_terminate()
pspell_add_to_personal()
pspell_add_to_session()
pspell_check()
pspell_clear_session()
pspell_config_create()
pspell_config_ignore()
pspell_config_mode()
pspell_config_personal()
pspell_config_repl()
pspell_config_runtogether()
pspell_config_save_repl()
pspell_new()
pspell_new_config()
pspell_new_personal()
pspell_save_wordlist()
pspell_store_replacement()
pspell_suggest()
putenv()

Q

qdom_error()
qdom_tree()
quoted_printable_decode()
quotemeta()

R

rad2deg()
rand()
range()
rawurldecode()
rawurlencode()
read_exif_data()
readdir()
readfile()
readgzfile()
readline()
readline_add_history()
readline_clear_history()
readline_completion_function()
readline_info()
readline_list_history()
readline_read_history()
readline_write_history()
readlink()
realpath()
recode()
recode_file()
recode_string()
register_shutdown_function()
register_tick_function()
rename()
reset()
restore_error_handler()
restore_include_path()
rewind()
rewinddir()
rmdir()
round()
rsort()
rtrim()

S

scandir()
sem_acquire()
sem_get()
sem_release()
sem_remove()
serialize()
sesam_affected_rows()
sesam_commit()
sesam_connect()
sesam_diagnostic()
sesam_disconnect()
sesam_errormsg()
sesam_execimm()
sesam_fetch_array()
sesam_fetch_result()
sesam_fetch_row()
sesam_field_array()
sesam_field_name()
sesam_free_result()
sesam_num_fields()
sesam_query()
sesam_rollback()
sesam_seek_row()
sesam_settransaction()
session_cache_expire()
session_cache_limiter()
session_decode()
session_destroy()
session_encode()
session_get_cookie_params()
session_id()
session_is_registered()
session_module_name()
session_name()
session_regenerate_id()
session_register()
session_save_path()
session_set_cookie_params()
session_set_save_handler()
session_start()
session_unregister()
session_unset()
session_write_close()
set_error_handler()
set_file_buffer()
set_include_path()
set_magic_quotes_runtime()
set_time_limit()
setcookie()
setlocale()
settype()
sha1()
sha1_file()
shell_exec()
shm_attach()
shm_detach()
shm_get_var()
shm_put_var()
shm_remove()
shm_remove_var()
shmop_close()
shmop_delete()
shmop_open()
shmop_read()
shmop_size()
shmop_write()
show_source()
shuffle()
similar_text()
simplexml_element->asxml()
simplexml_element->attributes()
simplexml_element->children()
simplexml_element->xpath()
simplexml_load_dom()
simplexml_load_file()
simplexml_load_string()
sin()
sinh()
sizeof()
sleep()
snmp_get_quick_print()
snmp_set_quick_print()
snmpget()
snmprealwalk()
snmpset()
snmpwalk()
snmpwalkoid()
socket_accept()
socket_bind()
socket_clear_error()
socket_close()
socket_connect()
socket_create()
socket_create_listen()
socket_create_pair()
socket_get_option()
socket_get_status()
socket_getpeername()
socket_getsockname()
socket_iovec_add()
socket_iovec_alloc()
socket_iovec_delete()
socket_iovec_fetch()
socket_iovec_free()
socket_iovec_set()
socket_last_error()
socket_listen()
socket_read()
socket_readv()
socket_recv()
socket_recvfrom()
socket_recvmsg()
socket_select()
socket_send()
socket_sendmsg()
socket_sendto()
socket_set_block()
socket_set_blocking()
socket_set_nonblock()
socket_set_option()
socket_set_timeout()
socket_shutdown()
socket_strerror()
socket_write()
socket_writev()
sort()
soundex()
split()
spliti()
sprintf()
sql_regcase()
sqlite_array_query()
sqlite_busy_timeout()
sqlite_changes()
sqlite_close()
sqlite_column()
sqlite_create_aggregate()
sqlite_create_function()
sqlite_current()
sqlite_error_string()
sqlite_escape_string()
sqlite_fetch_array()
sqlite_fetch_single()
sqlite_fetch_string()
sqlite_field_name()
sqlite_has_more()
sqlite_last_error()
sqlite_last_insert_rowid()
sqlite_libencoding()
sqlite_libversion()
sqlite_next()
sqlite_num_fields()
sqlite_num_rows()
sqlite_open()
sqlite_popen()
sqlite_query()
sqlite_rewind()
sqlite_seek()
sqlite_udf_decode_binary()
sqlite_udf_encode_binary()
sqlite_unbuffered_query()
sqrt()
srand()
sscanf()
stat()
str_ireplace()
str_pad()
str_repeat()
str_replace()
str_rot13()
str_shuffle()
str_split()
str_word_count()
strcasecmp()
strchr()
strcmp()
strcoll()
strcspn()
stream_context_create()
stream_context_get_options()
stream_context_set_option()
stream_context_set_params()
stream_copy_to_stream()
stream_filter_append()
stream_filter_prepend()
stream_filter_register()
stream_get_contents()
stream_get_filters()
stream_get_line()
stream_get_meta_data()
stream_get_transports()
stream_get_wrappers()
stream_register_wrapper()
stream_select()
stream_set_blocking()
stream_set_timeout()
stream_set_write_buffer()
stream_socket_accept()
stream_socket_client()
stream_socket_get_name()
stream_socket_recvfrom()
stream_socket_sendto()
stream_socket_server()
stream_wrapper_register()
strftime()
strip_tags()
stripcslashes()
stripos()
stripslashes()
stristr()
strlen()
strnatcasecmp()
strnatcmp()
strncasecmp()
strncmp()
strpos()
strrchr()
strrev()
strripos()
strrpos()
strspn()
strstr()
strtok()
strtolower()
strtotime()
strtoupper()
strtr()
strval()
substr()
substr_compare()
substr_count()
substr_replace()
swf_actiongeturl()
swf_actiongotoframe()
swf_actiongotolabel()
swf_actionnextframe()
swf_actionplay()
swf_actionprevframe()
swf_actionsettarget()
swf_actionstop()
swf_actiontogglequality()
swf_actionwaitforframe()
swf_addbuttonrecord()
swf_addcolor()
swf_closefile()
swf_definebitmap()
swf_definefont()
swf_defineline()
swf_definepoly()
swf_definerect()
swf_definetext()
swf_endbutton()
swf_enddoaction()
swf_endshape()
swf_endsymbol()
swf_fontsize()
swf_fontslant()
swf_fonttracking()
swf_getbitmapinfo()
swf_getfontinfo()
swf_getframe()
swf_labelframe()
swf_lookat()
swf_modifyobject()
swf_mulcolor()
swf_nextid()
swf_oncondition()
swf_openfile()
swf_ortho()
swf_ortho2()
swf_perspective()
swf_placeobject()
swf_polarview()
swf_popmatrix()
swf_posround()
swf_pushmatrix()
swf_removeobject()
swf_rotate()
swf_scale()
swf_setfont()
swf_setframe()
swf_shapearc()
swf_shapecurveto()
swf_shapecurveto3()
swf_shapefillbitmapclip()
swf_shapefillbitmaptile()
swf_shapefilloff()
swf_shapefillsolid()
swf_shapelinesolid()
swf_shapelineto()
swf_shapemoveto()
swf_showframe()
swf_startbutton()
swf_startdoaction()
swf_startshape()
swf_startsymbol()
swf_textwidth()
swf_translate()
swf_viewport()
swfaction()
swfbitmap()
swfbitmap->getheight()
swfbitmap->getwidth()
swfbutton()
swfbutton->addaction()
swfbutton->addshape()
swfbutton->setaction()
swfbutton->setdown()
swfbutton->sethit()
swfbutton->setover()
swfbutton->setup()
swfbutton_keypress()
swfdisplayitem()
swfdisplayitem->addcolor()
swfdisplayitem->move()
swfdisplayitem->moveto()
swfdisplayitem->multcolor()
swfdisplayitem->remove()
swfdisplayitem->rotate()
swfdisplayitem->rotateto()
swfdisplayitem->scale()
swfdisplayitem->scaleto()
swfdisplayitem->setdepth()
swfdisplayitem->setname()
swfdisplayitem->setratio()
swfdisplayitem->skewx()
swfdisplayitem->skewxto()
swfdisplayitem->skewy()
swfdisplayitem->skewyto()
swffill()
swffill->moveto()
swffill->rotateto()
swffill->scaleto()
swffill->skewxto()
swffill->skewyto()
swffont()
swffont->getwidth()
swfgradient()
swfgradient->addentry()
swfmorph()
swfmorph->getshape1()
swfmorph->getshape2()
swfmovie()
swfmovie->add()
swfmovie->nextframe()
swfmovie->output()
swfmovie->remove()
swfmovie->save()
swfmovie->setbackground()
swfmovie->setdimension()
swfmovie->setframes()
swfmovie->setrate()
swfmovie->streammp3()
swfshape()
swfshape->addfill()
swfshape->drawcurve()
swfshape->drawcurveto()
swfshape->drawline()
swfshape->drawlineto()
swfshape->movepen()
swfshape->movepento()
swfshape->setleftfill()
swfshape->setline()
swfshape->setrightfill()
swfsprite()
swfsprite->add()
swfsprite->nextframe()
swfsprite->remove()
swfsprite->setframes()
swftext()
swftext->addstring()
swftext->getwidth()
swftext->moveto()
swftext->setcolor()
swftext->setfont()
swftext->setheight()
swftext->setspacing()
swftextfield()
swftextfield->addstring()
swftextfield->align()
swftextfield->setbounds()
swftextfield->setcolor()
swftextfield->setfont()
swftextfield->setheight()
swftextfield->setindentation()
swftextfield->setleftmargin()
swftextfield->setlinespacing()
swftextfield->setmargins()
swftextfield->setname()
swftextfield->setrightmargin()
sybase_affected_rows()
sybase_close()
sybase_connect()
sybase_data_seek()
sybase_deadlock_retry_count()
sybase_fetch_array()
sybase_fetch_assoc()
sybase_fetch_field()
sybase_fetch_object()
sybase_fetch_row()
sybase_field_seek()
sybase_free_result()
sybase_get_last_message()
sybase_min_client_severity()
sybase_min_error_severity()
sybase_min_message_severity()
sybase_min_server_severity()
sybase_num_fields()
sybase_num_rows()
sybase_pconnect()
sybase_query()
sybase_result()
sybase_select_db()
sybase_set_message_handler()
sybase_unbuffered_query()
symlink()
syslog()
system()

T

tan()
tanh()
tempnam()
textdomain()
tidy_access_count()
tidy_clean_repair()
tidy_config_count()
tidy_diagnose()
tidy_error_count()
tidy_get_body()
tidy_get_config()
tidy_get_error_buffer()
tidy_get_head()
tidy_get_html()
tidy_get_html_ver()
tidy_get_output()
tidy_get_release()
tidy_get_root()
tidy_get_status()
tidy_getopt()
tidy_is_xhtml()
tidy_load_config()
tidy_node->attributes()
tidy_node->children()
tidy_node->get_attr()
tidy_node->get_nodes()
tidy_node->has_children()
tidy_node->has_siblings()
tidy_node->is_asp()
tidy_node->is_comment()
tidy_node->is_html()
tidy_node->is_jsp()
tidy_node->is_jste()
tidy_node->is_text()
tidy_node->is_xhtml()
tidy_node->is_xml()
tidy_node->next()
tidy_node->prev()
tidy_node->tidy_node()
tidy_parse_file()
tidy_parse_string()
tidy_repair_file()
tidy_repair_string()
tidy_reset_config()
tidy_save_config()
tidy_set_encoding()
tidy_setopt()
tidy_warning_count()
time()
tmpfile()
token_get_all()
token_name()
touch()
trigger_error()
trim()

U

uasort()
ucfirst()
ucwords()
udm_add_search_limit()
udm_alloc_agent()
udm_api_version()
udm_cat_list()
udm_cat_path()
udm_check_charset()
udm_check_stored()
udm_clear_search_limits()
udm_close_stored()
udm_crc32()
udm_errno()
udm_error()
udm_find()
udm_free_agent()
udm_free_ispell_data()
udm_free_res()
udm_get_doc_count()
udm_get_res_field()
udm_get_res_param()
udm_load_ispell_data()
udm_open_stored()
udm_set_agent_param()
uksort()
umask()
uniqid()
unixtojd()
unlink()
unpack()
unregister_tick_function()
unserialize()
unset()
urldecode()
urlencode()
user_error()
usleep()
usort()
utf8_decode()
utf8_encode()

V

var_dump()
var_export()
variant()
version_compare()
virtual()
vpopmail_add_alias_domain()
vpopmail_add_alias_domain_ex()
vpopmail_add_domain()
vpopmail_add_domain_ex()
vpopmail_add_user()
vpopmail_alias_add()
vpopmail_alias_del()
vpopmail_alias_del_domain()
vpopmail_alias_get()
vpopmail_alias_get_all()
vpopmail_auth_user()
vpopmail_del_domain()
vpopmail_del_domain_ex()
vpopmail_del_user()
vpopmail_error()
vpopmail_passwd()
vpopmail_set_user_quota()
vprintf()
vsprintf()

W

w32api_deftype()
w32api_init_dtype()
w32api_invoke_function()
w32api_register_function()
w32api_set_call_method()
wddx_add_vars()
wddx_deserialize()
wddx_packet_end()
wddx_packet_start()
wddx_serialize_value()
wddx_serialize_vars()
wordwrap()

X

xml_error_string()
xml_get_current_byte_index()
xml_get_current_column_number()
xml_get_current_line_number()
xml_get_error_code()
xml_parse()
xml_parse_into_struct()
xml_parser_create()
xml_parser_create_ns()
xml_parser_free()
xml_parser_get_option()
xml_parser_set_option()
xml_set_character_data_handler()
xml_set_default_handler()
xml_set_element_handler()
xml_set_end_namespace_decl_handler()
xml_set_external_entity_ref_handler()
xml_set_notation_decl_handler()
xml_set_object()
xml_set_processing_instruction_handler()
xml_set_start_namespace_decl_handler()
xml_set_unparsed_entity_decl_handler()
xmlrpc_decode()
xmlrpc_decode_request()
xmlrpc_encode()
xmlrpc_encode_request()
xmlrpc_get_type()
xmlrpc_parse_method_descriptions()
xmlrpc_server_add_introspection_data()
xmlrpc_server_call_method()
xmlrpc_server_create()
xmlrpc_server_destroy()
xmlrpc_server_register_introspection_callback()
xmlrpc_server_register_method()
xmlrpc_set_type()
xpath_eval()
xpath_eval_expression()
xpath_new_context()
xptr_eval()
xptr_new_context()
xslt_create()
xslt_errno()
xslt_error()
xslt_free()
xslt_process()
xslt_set_base()
xslt_set_encoding()
xslt_set_error_handler()
xslt_set_log()
xslt_set_sax_handler()
xslt_set_sax_handlers()
xslt_set_scheme_handler()
xslt_set_scheme_handlers()

Y

yaz_addinfo()
yaz_ccl_conf()
yaz_ccl_parse()
yaz_close()
yaz_connect()
yaz_database()
yaz_element()
yaz_errno()
yaz_error()
yaz_es_result()
yaz_get_option()
yaz_hits()
yaz_itemorder()
yaz_present()
yaz_range()
yaz_record()
yaz_scan()
yaz_scan_result()
yaz_schema()
yaz_search()
yaz_set_option()
yaz_sort()
yaz_syntax()
yaz_wait()
yp_all()
yp_cat()
yp_err_string()
yp_errno()
yp_first()
yp_get_default_domain()
yp_master()
yp_match()
yp_next()
yp_order()

Z

zend_logo_guid()
zend_version()
zip_close()
zip_entry_close()
zip_entry_compressedsize()
zip_entry_compressionmethod()
zip_entry_filesize()
zip_entry_name()
zip_entry_open()
zip_entry_read()
zip_open()
zip_read()
zlib_get_coding_type()

Předcházející | Domů | Další
Rejstřík funkcí | Nahoru | Co zde chybí


Co zde chybí

Manuál PHP
Předcházející Další

Příloha R. Co zde chybí

Předcházející | Domů | Další
Rejstřík funkcí | Nahoru | Vydání HTML Help


Manuál PHP

Copyright

Tento manuál je © Copyright 1997 - 2004 PHP Documentation Group. Tento materiál lze distribuovat pouze takovým způsobem a za takových podmínek, jak stanovuje Open Publication License, v1.0 nebo pozdější (nejnovější verze je v tuto chvíli k dispozici na http://www.opencontent.org/openpub/).

Distribuce podstatně změněných verzí tohoto dokumentu bez výslovného povolení vlastníků autorských práv je zakázána.

Distribuce této práce nebo prací odvozených ve standardní (papírové) knižní formě bez předchozího souhlasu vlastníků autorských práv je zakázána.

Členové skupiny PHP Documentation Group jsou vypsáni na titulní straně tohoto manuálu. Chcete-li skupinu kontaktovat, pište prosím na adresu phpdoc@lists.php.net.

Sekce tohoto manuálu "Rozšíření PHP 4.0" je © 2000 Zend Technologies, Ltd. Tento materiál smí být redistribuován pouze za podmínek specifikovaných v Open Publication License v1.0 nebo pozdější (nejnovější verze je v současnosti k dispozici na http://www.opencontent.org/openpub/).

Kopie Open Publication License je šířena s tímto manuálem.

Domů


O tomto vydání

Manuál PHP
Předcházející Další

Kapitola 57. O tomto vydání

PHP manuál ve vydání Windows HTML Help je zaměřen na vývojáře, kteří chtějí mít manuál stále po ruce, a rádi by četli manuálové stránky a uživatelské poznámky bez čekání na stahování stránek ze vzdálených serverů. Toto vydání obsahuje úplný manuál + uživatelské poznámky, a to se všemi možnostmi, které poskytuje prohlížeč nápovědy.

Předcházející | Domů | Další
Vydání HTML Help | Nahoru | Použití prohlížeče HTML nápovědy


CHM Edition Credits

Manuál PHP
Předcházející

Kapitola 63. CHM Edition Credits

Tato rozšířená verze manuálu PHP by nikdy nevznikla, kdyby se tito lidé nepomohli svými příspěvky do projektu (uváděné pořadí o ničem nevypovídá):

  • Holger Eggert; vytvořil dva základní designy a poskytl mnoho užitečných tipů

  • Gonzalo De la Pena Andreu; přidal mnoho komentářů, na kterých lze stavět při tvorbě skinovatelného rozhraní

  • Olexandr Vynnychenko; přidal nespočetně komentářů a celou dobu testoval

  • Brendan Ferguson; poskytl mnoho optimalizací a vylepšení HTML a JavaScriptu pro manuálové stránky

  • Sandor Hojtsy; naprogramoval aplikaci pro manuálové preference

  • A konečně (ale nikoli pouze) všichni, kdo poskytli odezvu přes e-malovou konferenci a v "uživatelském dozoru".

Předcházející | Domů
CSS classes | Nahoru


Integrating the PHP Manual

Manuál PHP
Předcházející Další

Kapitola 61. Integrating the PHP Manual

Poznámka: 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.

Poznámka: All files are in the root directory of the CHM, unlike the previous CHM versions which included a language directory. Images, style sheets and other supplemental files have names starting with an underscore (like the main index shown above), to avoid name collisions.

The names of generated files follow the same rules as the online manual, except that the extension is .html and not .php. The most important is that function documentation files are named function.FUNCNAME.html where FUNCNAME is the function name, with all underscores converted to hyphens. Some examples are function.echo.html, function.mysql-close.html, function.imagecopy.html.

Using all this information, you can show a manual page for a function requested by a user. A simple example is included in the distribution, named php_quickref.hta. This is a HTML Application to demonstrate the simple process of showing a manual page for a function. The quickRef() function defined therein does the job.

If you would like to integrate the manual into an IDE without direct support for the PHP manual (actually the underscore to hyphen conversion), you can use the included _function.html file to access a function page. This file is simply a redirector, and can be parameterized via the URL, as _function.html#mysql_close. This page will redirect you to the mysql_close function page (function.mysql-close.html) automatically. You can provide the full path of this file if your IDE supports context sensitive help, and provide the IDE specified string as the parameter. An example for this is the UltraEdit 9 intergation (see the edition's website).

The index of the manual (accessible via the index tab on the navigation pane) can also be used for integrational purposes. All the HTML pages are included in the index with their titles as index terms (including function description pages).

If you are a desktop application developer and would like to tightly integrate the CHM into your program (such as displaying the TOC tree in your IDE's help box), you can find more information at http://www.helpware.net/, as well as links to other useful resources. The official site for HTML Help is at http://msdn.microsoft.com/library/en-us/htmlhelp/html/vsconhh1start.asp.

Předcházející | Domů | Další
Presentational Specialities | Nahoru | Skin development


The Full Text Search

Manuál PHP
Předcházející Další

Kapitola 59. The Full Text Search

Obsah
General searching rules
Searching for words or phrases
Defining search terms
Using nested expressions when searching
Manual Content and User Note Separation

This edition of the PHP Manual includes an advanced full text search possibility provided by the viewer application. This enables users to to search through every word in the help file to find a match. For example, if a user does a full-text search on the word "Apache", every topic that contains the word "Apache" will be listed. Advanced full-text search allows a user to search using boolean, wildcard, and nested expressions. A user can also limit the search to previous results, match similar words, or search topic titles only.

The usage of the search feature is fairly straightforward. Click on the search tab, type in the desired words and press ENTER (or click on "List Topics"). Then you'll receive a list of matches from the PHP Manual (and the notes). You can use the button with a right arrow on it to add boolean operators to your search (or you can type them in). As you see the results, you can use the column headings (Title, Location and Rank) to sort the topic list. The default order is by Rank. You can also adjust some parameters at the bottom of this tab.

The words found are highlighted on the current page in the Topic pane by default. You can turn off this feature by choosing the "Search Highlight Off" menu item in the Options menu. To can get this feature back similarly. If you are viewing a long topic, only the first 500 instances of a search word or phrase will be highlighted, due to a limitation of the viewer.

General searching rules

A basic search consists of the word or phrase you want to find. You can use wildcard expressions, nested expressions, boolean operators, similar word matches, a previous results list, or topic titles to further define your search.

The basic rules for formulating queries are as follows:

  • Searches are not case-sensitive, so you can type your search in uppercase or lowercase characters.

  • You may search for any combination of letters (a-z) and numbers (0-9). You cannot search for single letters (a, b, c, etc.) and common words, like: an, and, as, at, be, but, by, do, for, from, have, he, in, it, not, of, on, or, she, that, the, there, they, this, to, we, which, with, you.

  • Punctuation marks such as the period (.), colon (:), semicolon (;), comma (,), and hyphen (-) are ignored during a search.

  • Group the elements of your search using double quotes or parentheses to set apart each element. You cannot search for quotation marks.

Poznámka: 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."

Předcházející | Domů | Další
Použití prohlížeče HTML nápovědy | Nahoru | Searching for words or phrases


Using nested expressions when searching

Nested expressions allow you to create complex searches for information. For example, "html AND ((smtp OR pop3) NEAR mail)" finds topics containing the word "html" along with the words "smtp" and "mail" close together, or containing "html" along with the words "pop3" and "mail" close together.

The basic rules for searching help topics using nested expressions are as follows:

  • You can use parentheses to nest expressions within a query. The expressions in parentheses are evaluated before the rest of the query.

  • If a query does not contain a nested expression, it is evaluated from left to right. For example: "mail NOT pop3 OR smtp" finds topics containing the word "mail" without the word "pop3" or topics containing the word "smtp". On the other hand, "mail NOT (pop3 OR smtp)" finds topics containing the word "mail" without either of the words "pop3" or "smtp".

  • You cannot nest expressions more than five levels deep.

Předcházející | Domů | Další
Defining search terms | Nahoru | Manual Content and User Note Separation


Manual Content and User Note Separation

The manual content and the user notes are separated to php_manual_LANG.chm and php_manual_notes.chm. There were several resons to do this, including:

  • This way you can update the user notes and the manual independently as you need.

  • You can have more than one language of the manual, while only need to have one notes file. All the CHM files need to be in the same directory, and all translations need to share the same preferences if you would not like to have more then one notes file.

  • You can bookmark manual pages with notes, or just a notes part of a page separately.

  • You can "turn off" user note display and user note search results by simply deleting php_manual_notes.chm, moving it out of the directory or renaming it.

All these benefits lead us to provide the manual the way you can see it right now. This distribution had the effect on the full text search that you get search results from the manual content and from the user notes as separate ones. The "Location" column shows the source of the result, also enabling you to "add precedence" to manual content results with ordering the results by "Location". User note page titles are also prefixed with "N:" to make them easily distinguishable in the favorites list (there's no location info in the favorites list).

Předcházející | Domů | Další
Using nested expressions when searching | Nahoru | Specialities of this Edition


Defining search terms

The AND, OR, NOT, and NEAR operators enable you to precisely define your search by creating a relationship between search terms. The following table shows how you can use each of these operators. If no operator is specified, AND is used. For example, the query "server cgi security" is equivalent to "server AND cgi AND security".

Tabulka 59-2. Search operators

Search for | Example | Results
Both terms in the same topic | http AND apache | Topics containing both the words "http" and "apache".
Either term in a topic | ming OR swflib | Topics containing either the word "ming" or the word "swflib" or both.
The first term without the second term | xml NOT expat | Topics containing the word "xml" but not the word "expat".
Both terms in the same topic, close together | database NEAR security | Topics containing the word "database" within eight words of the word "security".

Poznámka: 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.

Předcházející | Domů | Další
Searching for words or phrases | Nahoru | Using nested expressions when searching


Searching for words or phrases

You can search for words or phrases and use wildcard expressions. Wildcard expressions allow you to search for one or more characters using a question mark or asterisk. The table below describes the results of these different kinds of searches.

Tabulka 59-1. Word and phrase searches

Search for | Example | Results
A single word | select | Topics that contain the word "select". (You will also find its grammatical variations, such as "selector" and "selection".)
A phrase "new operator" or new operator

Topics that contain the literal phrase "new operator" and all its grammatical variations.

Without the quotation marks, the query is equivalent to specifying "new AND operator," which will find topics containing both of the individual words, instead of the phrase.

Wildcard expressions esc* or HT??

Results for the first example include topics that contain the terms "ESC", "escape", "escalation", and so on. The asterisk cannot be the only character in the term.

Results for the second example include topics that contain the terms "HTTP", "HTML" and so on. The question mark cannot be the only character in the term.

Poznámka: 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".

Předcházející | Domů | Další
The Full Text Search | Nahoru | Defining search terms


Skin development

Manuál PHP
Předcházející Další

Kapitola 62. Skin development

Obsah
Page Display Process
Page Elements
CSS classes

This edition of the PHP Manual allows users to choose from skins to display the contents, as well as develop custom skins to meet some special needs. We decided to support skins because we realized that one skin cannot satisfy everybodies needs in a such heavily used edition.

We included two skins by default inside the CHM. These cannot be modified or removed, so if you have the CHM, you have these two skins inside. The Low skin is optimized for small window display, the High skin is a variation of the Low one with some graphics added to spice it up.

A skin must have at least two files, a skin loader JavaScript file and a CSS file. The two inline skins have these files inside the CHM. The skin loader JS should at least load in the CSS file and display the page contents to the viewer. Theoretically there are two kinds of skins: CSS skins and Full skins. CSS skins only modify the CSS and does not amend the page layout. Full skins also modify the page layout. We have included sample skins for both the CSS skin type and the Full skin type ("greenlinks" and "headernostalgia" respectively).

Varování

Note that though the current skin development methods are quite final, there may be heavy changes in used CSS classes or page elements while we refine the skin development ideas. As this edition is currently in development stage, the information described herein is not to be considered completely stable.

Page Display Process

If you are going to develop your own skin, you should know how one page is loaded and displayed to the user, and how a skin fits in this process. For these paragraphs, we assume that you have put your CHM into c:\phpmanual, so it's accessible as c:\phpmanual\php_manual_LANG.chm (where LANG is the language code), and you would like to see the function page of "echo", which is function.echo.html inside the CHM. See the sections about integration for more information on CHM contents.

  • First of all the HTML content is loaded in from function.echo.html from inside the CHM.

  • At the top of this file, there is a HTML <script> tag, which loads in the _script.js file from the CHM. This file contains all the JS code needed to move on with the process. Most importantly this JS defines many variables (like where the CHM is, or what is the actual page viewed) and many functions to print out the context menu or handle online functions.

  • At last _script.js loads in the preferences file from outside the CHM (c:\phpmanual\php_manual_prefs.js in our example). This JS file defines the preference variables, and calls back prefHandler() which is also defined in _script.js.

  • That function loads in the skin JS file as the preferences dictate. The skin JS file should load in the needed CSS file, and define a displayPage() function, which displays the page if called.

  • The HTML file (function.echo.html in this example) also contains a function call to load in the user notes, which simply puts the notes into this HTML file using DHTML to be displayed as if they were here before...

  • The HTML file also contains a body onload attribute which calls the skin-defined displayPage() function to show the page to the user. This is the last function called, it should present the page in it's complete form to the user.

Every action is synchronized with calling back a function in the previously loaded file when the JS is in memory. The notes loading and skin JS loading is only synchronized with the page's onload event (which as the Microsoft documentation says only fires if the page is completely loaded).

This load and callback chain may seem to be too complicated, but so far this seemed to be the best way to do as many things as possible parallel, while also synchronize some calls.

As you can see your skin JavaScript file is loaded in by _script.js and it's displayPage() function is called by the body onload event.

Předcházející | Domů | Další
Integrating the PHP Manual | Nahoru | Page Elements


CSS classes

We cannot provide accurate documentation currently on useable CSS classes, as some of the DocBook XSL sheets classes are not used and some classes are added. Please see the sample CSS files included for first time reference.

Předcházející | Domů | Další
Page Elements | Nahoru | CHM Edition Credits


Page Elements

The PHP Manual pages are all HTML files with several HTML tags in them for both presentational and divisional purposes. The HTML pages contain divisions to be used for skinning purposes and misc divisions added by the DocBook XSL sheets.

A HTML page can be either a function reference page or another kind of page (like a feature description). Skins should get ready to skin these two kinds of pages separately most of the time (depending on the actual design).

The pages are structured using <div> tags with appropriate IDs to ease the skin writers work. A page consists of these parts:

  • <div id="pageContent"></div> contains all the page contents. This begins right after <body> and ends just before </body>. This division is hidden by default, you need to show it after you are ready with the page rewriting process.

  • <div id="pageHeaders"></div> contains the page header parts. This includes the text only main title (in a <span id="pageTitle"></span>) and function properties, in case this is a function page (contained in <span id="funcPurpose"></span>, <span id="funcAvail"></span> and <span id="funcUsage"></span>). In case one of these three is not available, the current page is not a function page.

  • <div id="pageText"></div> contains the majority of the page contents, including examples, manual notes, warnings, etc. This also includes see also parts for now, as we still cannot differentiate between see also and normal text parts (may be a thing to change in the future).

  • <div id="pageNotes"></div> contains the user notes (itself loaded in from another HTML file by JS). It contains a heading, and then a <div> without ID for every user note and spans in that divs for every element of a user note (with "email", "date" and "text" IDs respectively).

  • <div id="pageNav"></div> contains the
navigation table, which is further divided into spans (<span
id="navPrev"></span>, <span
id="navPath"></span>, <span
id="navNext"></span>, <span
id="navOnline"></span>, <span
id="navThisOnline"></span> and <span
id="navReportBug"></span>), where navThisOnline
and navReportBug is inside navOnline.

If you would like to rewrite the page, you should first read in the parts you need from the page to JS variables, then clear the contents of pageContent (or just the part you would like to rewrite), write in the new content and show the pageContent div for the user. If you would not like to make any structural changes, you can simply display the pageContent div and only specify a special style sheet in your skin JS file (see the "greenlinks" skin for an example).

You can find a "Full skin" developed to show you how to make skins built on top of this structure. The skin name is "headernostalgia". It rewrites the header part and removes the footer navigational table.

Předcházející | Domů | Další
Skin development | Nahoru | CSS classes


Specialities of this Edition

Manuál PHP
Předcházející Další

Kapitola 60. Specialities of this Edition

Obsah
User Preferences
Presentational Specialities

The Windows HTML Help Edition of the PHP Manual overperforms the presentational and interactive capabilities offered by other editions (including the online manual). This was possible because currently CHMs can only be viewed on Windows using Internet explorer, so we can develop for one browser family and one operating system. Viewers for other OSes may be developed in the future by third parties.

User Preferences

Most of the interactive features of this manual are provided by the viewer application (including full text search, index, favorites list), but we extended this list with PHP Manual specific tools. All these can be adjusted to your needs using a simple desktop application named php_manual_prefs.exe. If you run this program you can see three groups of settings: Online Functions, Context Menu, and Skin. All your settings are stored in php_manual_prefs.js.

Online functions enable you to have elements connected to websites. The two ones you can see on all manual pages are "This page online" and "Report a bug". As you can figure out the first one shows you the same page in the online manual, the second one opens a page from http://bugs.php.net/ and prefills some bug data for you. You need to select a mirror site to use for "php.net sensitive" online functions. We recommend choosing a close mirror site to get the best speed. Other components that may be limited by this online functions setting include context menu items opening new websites ("Google search selection" for example). Custom designs may also include elements restricted by this setting.

The context menu settings enables you to choose which context menu you prefer. This application provides you with an option to define your own context menu adding elements to it from a predefined set. You can have this custom context menu for the right click of your mouse, and have the original menu for CTRL+right click, or the opposite way. Three special types of custom context menu items exist:

Tabulka 60-1. Context menu items

Type | Examples | Comments
Page Jump | Function Reference, Function Index | These items jump to a specific page in the CHM. Page Jump options are not restricted to point inside the CHM though. They can point to websites or other resources. Page jump options with a protocol part in the URL open in new window.
Function Call | Print page, Select all, Copy selection to clipboard, Google Search Selection | These are "function calls" for internally defined context menu functions. The last two examples have the speciality that they only show up in the menu if you rightclicked on a selection. Currently there is no way to extend the context menu with skin defined functions.
Special display | Google SearchBox, AlltheWeb SearchBox | These are displayed as HTML forms, where you can enter search keywords, press ENTER, and receive a new window with the search issued in the appropriate search engine. Currently there is no way to extend the set of specially displayed context menu items.
Possible context menu elements and their "abstract implementations" are stored in context.ini. You have the ability to add possible page jump options there, but there is no way currently to extend the context menu system with user (skin) defined functions. The possible mirror sites are listed in mirrors.ini. Feel free to suggest more bundled context menu items to us at php-doc-chm@lists.php.net.

The skins setting enables you to choose from the two bundled default skins, or from any user defined skins. The Low skin is optimized to display correctly at any small size, the High skin is optimized for your viewing pleasure. Other skins may be developed according to our skins development guide. The recommended place for skins on the file system is the skins/SKINNAME subfolder of the PHP Manual directory. Though this is not required, some skins may define other rules (not recommended). We included sample skins for you to see examples of how to develop skins for the PHP Manual.

You have three buttons to choose from at the bottom. The Apply button applies your changes without exiting, the OK button applies and closes the application, the Cancel button does not modify your settings and closes the program.

Předcházející | Domů | Další
Manual Content and User Note Separation | Nahoru | Presentational Specialities


Presentational Specialities

This edition of the PHP Manual is highly optimized for screen presentation. Skins may be developed to better support printing, as this was not the goal of the included skins. This approach allowed us to make many modifications to the presentation of different parts of the manual.

The first thing you'll notice is that all examples are color coded, using the PHP function show_source(). The actual colors used are defined by CSS classes. Examples also have links to PHP functions used in them to provide quick access to reference material. All code examples have a "copy to clipboard" link by the side of them with which you can copy the text contents of the example to the clipboard.

External links are marked with a special » sign, and open in a new browser window. We also included the "path to this page" information on all pages for you to easily identify where you are and navigate as needed.

Other parts of the manual are quite similar to the online ones by default, though custom skins can modify many elements on the pages.

Předcházející | Domů | Další
Specialities of this Edition | Nahoru | Integrating the PHP Manual


Použití prohlížeče HTML nápovědy

Manuál PHP
Předcházející Další

Kapitola 58. Použití prohlížeče HTML nápovědy

Obsah
Panel nástrojů HTML nápovědy

Po dvojkliku na souboru CHM se otevře okno prohlížeče HTML nápovědy se třemi panely. Na levé straně okna je navigační panel. Obsahuje čtyři navigační karty s oušky: Obsah, Rejstřík, Vyhledávat a Oblíbené. Na pravé straně je panel témat. Zobrazuje vybrané téma nápovědy, resp. implicitní téma po startu. Třetím panelem je panel nástrojů, umístěný pod titulkovou lištou okna.

Všimněte si, že když otevřete CHM poprvé, může mít okno nějaké podivné rozměry a pozici. Potom si ale systém Windows zapamatuje pozici a rozměr okna a naposledy použitou kartu. Všechno, včetně oblíbených položek, se uloží do souboru hh.dat. Pokud přesunete soubor do jiného adresáře, zapamatované nastavení budou ztracena (včetně oblíbených položek!). Nahradíte-li CHM soubor novější verzí se stejným názvem, nevzniknou žádné problémy. Názvy souborů a cesty se ukládají do souboru hh.dat.

Panel nástrojů HTML nápovědy

Když si prohlížíte PHP manuál, panel nástrojů HTML nápovědy obsahuje následující ikony:

  • Skrýt/Zobrazit - Skryje/zobrazí navigační panel.

  • Nalézt - Nalezne téma na kartě s obsahem (v případě, že jste příslušné téma otevřeli pomocí vyhledávání, rejstříku nebo oblíbených položek a chtěli byste vědět, kde se nachází v obsahu).

  • Zpět - Návrat zpět v historii.

  • Vpřed - Pohyb dopředu v historii.

  • Obnovit - Aktualizuje zobrazenou stránku.

  • Domů - Otevře výchozí stránku CHM.

  • Tisk - Otevře dialog pro tisk.

  • Možnosti - Rozbalení nabídky s možnostmi prohlížeče.

Použití panelu nástrojů je opravdu jednoduché, mnoho ikon má velmi blízko ke svým ekvivalentům v Internet Exploreru.

Předcházející | Domů | Další
O tomto vydání | Nahoru | The Full Text Search


Vydání HTML Help

Manuál PHP
Předcházející Další

X. Vydání HTML Help

Obsah
57. O tomto vydání
58. Použití prohlížeče HTML nápovědy
59. The Full Text Search
60. Specialities of this Edition
61. Integrating the PHP Manual
62. Skin development
63. CHM Edition Credits

Předcházející | Domů | Další
Co zde chybí |  | O tomto vydání


break

break ukončuje provádění aktuálního příkazu for, foreach while, do..while nebo switch.

break akceptuje nepovinný číselný argument, který říká, z kolika vnořených struktur se má vyskočit.

$arr = array ('jedna', 'dvě', 'tři', 'čtyři', 'stop', 'pět');
while (list (, $val) = each ($arr)) {
    if ($val == 'stop') {
        break;    /* Tady byste mohli napsat také 'break 1;'. */
    }
    echo "$val<br>\n";
}

/* Použití nepovinného argumentu. */

$i = 0;
while (++$i) {
    switch ($i) {
    case 5:
        echo "Při 5<br>\n";
        break 1;  /* Ukončuje pouze switch. */
    case 10:
        echo "Při 10; konec<br>\n";
        break 2;  /* Ukončuje switch a while. */
    default:
        break;
    }
}

Předcházející | Domů | Další
foreach | Nahoru | continue


continue

continue se používá uvnitř cyklů k přeskočení zbytku aktuální iterace a bezprostřednímu přechodu na následující iteraci.

continue akceptuje nepovinný číselný argument, který říká, kolik úrovní cyklů se má naráz dokončit.

while (list ($key, $value) = each ($arr)) {
    if (!($key % 2)) { // přeskoč sudé členy
        continue;
    }
    do_something_odd ($value);
}

$i = 0;
while ($i++ &lt; 5) {
    echo "Vnější<br>\n";
    while (1) {
        echo "&nbsp;&nbsp;Střední<br>\n";
        while (1) {
            echo "&nbsp;&nbsp;Vnitřní<br>\n";
            continue 3;
        }
        echo "Toto se nikdy nevytiskne.<br>\n";
    }
    echo "Ani tohle se neprovádí.<br>\n";
}

Předcházející | Domů | Další
break | Nahoru | switch


declare

Příkaz declare se používá k nastavení prováděcích direktiv pro blok kódu. Syntaxe declare je podobná syntaxi ostatnícj příkazů pro řízení toku:

declare (directive) statement

Část directive umožňuje nastavit chování bloku, který má být ovlivněn pomocí declare. V současnosti je rozpoznávána pouze jediná direktiva: ticks. (Pro více informací viz níže - direktiva ticks)

Část statement bloku declare bude provedena - jak bude provedena a jaké vedlejší efekty nastanou během provádění může záležet na direktivě nastavené v bloku directive.

Ticks

Tick je událost, která nastane pro každých N nízkoúrovňových příkazů provedených parserem uvnitř bloku declare. Hodnota N je specifikována pomocí ticks=N uvnitř sekce directive bloku declare.

Událost(i), která nastane při každém ticku, se specifikuje pomocí register_tick_function(). Více podrobností - viz příklad níže. Uvědomte si, že na každý tick může nastat více než jedna událost.

Příklad 11-1. Profile a section of PHP code

<pre>
<?php
// A function that records the time when it is called
function profile ($dump = FALSE)
{
    static $profile;

    // Return the times stored in profile, then erase it
    if ($dump) {
        $temp = $profile;
        unset ($profile);
        return ($temp);
    }

    $profile[] = microtime ();
}

// Set up a tick handler
register_tick_function("profile");

// Initialize the function before the declare block
profile ();

// Run a block of code, throw a tick every 2nd statement
declare (ticks=2) {
    for ($x = 1; $x < 50; ++$x) {
        echo similar_text (md5($x), md5($x*$x)), "&lt;br&gt;";
    }
}

// Display the data stored in the profiler
print_r (profile (TRUE));
?>
</pre>
The example profiles the PHP code within the 'declare' block, recording the time at which every second low-level statement in the block was executed. This information can then be used to find the slow areas within particular segments of code. This process can be performed using other methods: using ticks is more convenient and easier to implement.

Ticks are well suited for debugging, implementing simple multitasking, backgrounded I/O and many other tasks.

See also register_tick_function() and unregister_tick_function().

Předcházející | Domů | Další
switch | Nahoru | return


do..while

Cykly do..while jsou velmi podobné cyklům while kromě toho, že pravdivost výrazu se testuje na konci každé iterace namísto jejího začátku. Hlavní rozdíl oproti běžným cyklům while je ten, že první iterace cyklu do..while se provede vždy (pravdivostní výraz je testován až na konci iterace), což u cyklu while není zaručeno (pravdivostní výraz je testován na začátku iterace; pokud je ohodnocen jako FALSE, provádění cyklu hned skončí).

Toto je jediná syntaxe pro cykly do..while:

$i = 0;
do {
   print $i;
} while ($i>0);

Výše uvedený cyklus by se provedl právě jednou, protože po první iteraci, když se testuje pravdivostní výraz, je tento ohodnocen jako FALSE ($i není větší než 0) a provádění cyklu končí.

Pokročilí programátoři v C mohou znát i odlišné použití cyklu do..while. Kód se uzavře do do..while(0) a použije se příkaz break. To umožňuje přerušit provádění cyklu uprostřed kódu, jak je znázorněno v tomto příkladu:

do {
    if ($i < 5) {
        print "i není dost velké";
        break;
    }
    $i *= $factor;
    if ($i < $minimum_limit) {
        break;
    }
    print "i je ok";

     ...zpracuj i...

} while(0);

Nedělejte si nic z toho, že tomu hned a beze zbytku nerozumíte. Můžete psát skripty, a to i velmi účinné skripty, i bez použití této 'finty'.

Předcházející | Domů | Další
while | Nahoru | for


else

Často také můžete chtít něco provádět, pokud je jistá podmínka splněna, a něco jiného, když splněna není. To umožňuje příkaz else. else rozšiřuje příkaz if o provádění kódu v případě, že výraz v příkazu if je ohodnocen jako FALSE. Například následující kód vypíše a je větší než b, pokud $a je větší než $b, a a NENÍ větší než b v ostatních případech:

if ($a > $b) {
    print "a je větší než b";
} else {
    print "a NENÍ větší než b";
}

Příkaz v else se provádí, pouze pokud je výraz v if ohodnocen jako FALSE, a pokud by zde byly nějaké výrazy elseif - pouze pokud by byly také ohodnoceny jako FALSE (viz elseif).

Předcházející | Domů | Další
Řídicí struktury | Nahoru | elseif


elseif

Jak název napovídá, elseif, je kombinací if a else. Stejně jako else, rozšiřuje příkaz if k provádění odlišných příkazů v případě, že jevýraz původního příkazu if ohodnocen jako FALSE. Tedy, narozdíl od else, se provádí pouze tehdy, je-li výraz v podmínce elseif ohodnocen jako TRUE. Například následující kód vypíše a je větší než b, a se rovná b nebo a je menší než b:

if ($a > $b) {
    print "a je větší než b";
} elseif ($a == $b) {
    print "a se rovná b";
} else {
    print "a je menší než b";
}

V rámci jednoho příkazu if může být více příkazů elseif. Provádí se první příkaz elseif (pokud vůbec nějaký), jehož výraz je ohodnocen TRUE. V PHP můžete napsat i 'else if' (dvěma slovy), chování bude naprosto totožné jako u 'elseif' (jedním slovem). Syntaktický význam je mírně odlišný (znáte-li C, je to stejné), avšak ve výsledku dostaneme přesně totožné chování.

Příkaz elseif se provádí, pouze jsou-li příslušný (bezprostředně předcházející) výraz příkazu if a výrazy všech příslušných předcházejících příkazů elseif ohodnoceny jako FALSE, a konkrétní výraz v elseif ohodnocen jako TRUE.

Předcházející | Domů | Další
else | Nahoru | Alternativní syntaxe řídicích struktur


for

Cykly for jsou nejsložitějšími cykly v PHP. Chovají se stejně, jako jejich soukmenovci v C. Syntaxe cyklu for je následující:

for (expr1; expr2; expr3) statement

První výraz (expr1) je ohodnocen (proveden) jednou, bezpodmínečně, na začátku cyklu.

Na začátku každé iterace je ohodnocen výraz expr2. Pokud má hodnotu TRUE, cyklus pokračuje a zpracovává se kód uvnitř cyklu. Je-li naopak jeho hodnota FALSE, provádění cyklu končí.

Na konci každé iterace se ohodnotí (provede) výraz expr3.

Každý z výrazů může být prázdný. Prázdný výraz expr2 znamená, že cyklus bude probíhat nekonečně dlouho (PHP, stejně jako C, implicitně předpokládá hodnotu TRUE). To nemusí být tak bez užitku, jak si můžete myslet. Často můžete totiž chtít ukončit cyklus pomocí podmíněného příkazu break, namísto použití pravdivostního výrazu v příkazu cyklu for.

Předpokládejme následující příklady. Všechny zobrazí čísla od 1 do 10:

/* příklad 1 */

for ($i = 1; $i <= 10; $i++) {
    print $i;
}

/* příklad 2 */

for ($i = 1;;$i++) {
    if ($i > 10) {
        break;
    }
    print $i;
}

/* příklad 3 */

$i = 1;
for (;;) {
    if ($i > 10) {
        break;
    }
    print $i;
    $i++;
}

/* příklad 4 */

for ($i = 1; $i <= 10; print $i, $i++);

První příklad samozřejmě vypadá nejlépe (nebo možná i ten čtvrtý), ale můžete přijít na to, že schopnost používat prázdné výrazy v cyklech for nemusí být někdy úplně k zahození.

PHP podporuje pro cykly for také alternativní "dvojtečkovou syntaxi".

for (expr1; expr2; expr3): statement; ...; endfor;

Jiné jazyky mají příkaz foreach k traverzování polí nebo hashů. V PHP 3 nic takového není, PHP 4 ano (viz foreach). V PHP 3 můžete k dosažení stejného efektu kombinovat while s funkcemi list() a each(). Příklady najdete v dokumentaci.

Předcházející | Domů | Další
do..while | Nahoru | foreach


foreach

PHP 4 (ne PHP 3) zahrnuje příkaz foreach, podobně jako Perl a různé další jazyky. To poskytuje snadný způsob k iteraci přes pole. Existují dvě syntaxe; ta druhá je menším, avšak užitečným rozšířením té první:

foreach(array_expression as $value) statement
foreach(array_expression as $key => $value) statement

První forma traverzuje pole dané výrazem array_expression. V každé iteraci je hodnota aktuálního elementu přiřazena do $value a vnitřní ukazatel na pole je zvýšen o jednotku (tzn. v příští iteraci budete hledět na následující element).

Druhá forma dělá totéž, kromě toho, že aktuální klíč elementu bude v každé iteraci přiřazen do proměnné $key.

Poznámka: Když foreach začne provádění první iterace, je vnitřní ukazatel automaticky nastaven na první element pole. To znamená, že před foreach nemusíte volat reset().

Poznámka: Uvědomte si také, že foreach pracuje na kopii specifikovaného pole, nikoli na poli samotném, proto ukazatel na pole není modifikován tak, jako příkazem each() a změny na vráceném elementu se na původním poli neprojeví.

Poznámka: foreach nepodporuje možnost potlačit chybová hlášení použitím '@'.

Můžete si všimnout, že následující příklady jsou funkčně totožné:

reset ($arr);
while (list(, $value) = each ($arr)) {
    echo "Hodnota: $value<br>\n";
}

foreach ($arr as $value) {
    echo "Hodnota: $value<br>\n";
}

Následující příklady jsou rovněž funkčně totožné:

reset ($arr);
while (list($key, $value) = each ($arr)) {
    echo "Klíč: $key; Hodnota: $value<br>\n";
}

foreach ($arr as $key => $value) {
    echo "Klíč: $key; Hodnota: $value<br>\n";
}

Další příklady demonstrující použítí:

/* foreach příklad 1: pouze hodnota */

$a = array (1, 2, 3, 17);

foreach ($a as $v) {
   print "Současná hodnota \$a: $v.\n";
}

/* foreach příklad 2: hodnota (pro ilustraci je vypsán i klíč) */

$a = array (1, 2, 3, 17);

$i = 0; /* pouze pro ilustrativní účely */

foreach($a as $v) {
    print "\$a[$i] => $v.\n";
    $i++;
}

/* foreach příklad 3: klíč a hodnota */

$a = array (
    "jedna" => 1,
    "dvě" => 2,
    "tři" => 3,
    "sedmnáct" => 17
);

foreach($a as $k => $v) {
    print "\$a[$k] => $v.\n";
}

/* foreach příklad 4: vícerozměrná pole */

$a[0][0] = "a";
$a[0][1] = "b";
$a[1][0] = "y";
$a[1][1] = "z";

foreach($a as $v1) {
    foreach ($v1 as $v2) {
        print "$v2\n";
    }
}

/* foreach příklad 5: dynamická pole */

foreach(array(1, 2, 3, 4, 5) as $v) {
    print "$v\n";
}

Předcházející | Domů | Další
for | Nahoru | break


switch

Příkaz switch je podobná sérii příkazů IF, testujících tentýž výraz. V mnoha případech můžete chtít porovnávat stejnou proměnnou (nebo výraz) s mnoha různými hodnotami a provádět různé kusy kódu v závislosti na tom, které hodnotě se rovná. To je přesně to, k čemu je switch.

Následující dva příklady představují dva odlišné způsoby, jak napsat totéž; jeden používá sérii podmínek if, zatímco druhý je založen na příkazu switch:

if ($i == 0) {
    print "i se rovná 0";
}
if ($i == 1) {
    print "i se rovná 1";
}
if ($i == 2) {
    print "i se rovná 2";
}

switch ($i) {
    case 0:
        print "i se rovná 0";
        break;
    case 1:
        print "i se rovná 1";
        break;
    case 2:
        print "i se rovná 2";
        break;
}

Je důležité pochopit, jak se příkaz switch provádí, aby se zabránilo chybám. Příkaz switch provádí řádek po řádku (resp. příkaz po příkazu). Na začátku není proveden žádný kód. Pouze tehdy, když se najde case s hodnotou odpovídající hodnotě výrazu u switch, začne PHP provádět následující příkazy. Vykonávání kódu pokračuje, dokud se nedosáhne konce bloku switch nebo prvního příkazu break. Pokud nenapíšete na konec bloku po case příkaz break, bude PHP pokračovat v provádění dalších příkazů (po dalším case). Například:

switch ($i) {
    case 0:
        print "i se rovná 0";
    case 1:
        print "i se rovná 1";
    case 2:
        print "i se rovná 2";
}

Zde, pokud se $i rovná 0, se budou provádět všechny příkazy "print"! Pokud se $i rovná 1, PHP provede poslední dva příkazy, a pouze rovná-li se $i číslu 2, obdržíte "očekávané" chování a zobrazí se pouze "i se rovná 2". Takže je důležité nezapomenout na příkaz break (kromě případu, kdy ho chcete vynechat záměrně k dosažení určitého cíle).

V příkazu switch se podmínka testuje pouze jednou a výsledek se porovnává s každou hodnotou v case. V případě elseif se podmínka pokaždé testuje znovu. Pokud je vaše podmínka komplikovanější než jednoduché porovnání a/nebo je uvnitř cyklu, switch může být rychlejší.

Seznam příkazů za case může být také prázdný, což jednoduše předá řízení následujícímu case.

switch ($i) {
    case 0:
    case 1:
    case 2:
        print "i je menší než 3, ale nezáporné";
        break;
    case 3:
        print "i je 3";
}

Speciální case je "default". Vyhovuje všem ostatním hodnotám, které nejsou pokryty některým z ostatních case a má být vždy jako poslední. Například:

switch ($i) {
    case 0:
        print "i se rovná 0";
        break;
    case 1:
        print "i se rovná 1";
        break;
    case 2:
        print "i se rovná 2";
        break;
    default:
        print "i se nerovná 0, 1 ani 2";
}

Výraz v case může být libovolný výraz, jehož hodnota je jednoduchého typu, tj. celé nebo reálné číslo nebo řetězec. Pole ani objekty nelze použít, ledaže by odkazovaly na jednoduchý typ.

Alternativní syntaxe pro příkazy switch je podporována. Pro víc informací viz Alternativní syntaxe řídicích struktur .

switch ($i):
    case 0:
        print "i se rovná 0";
        break;
    case 1:
        print "i se rovná 1";
        break;
    case 2:
        print "i se rovná 2";
        break;
    default:
        print "i se nerovná 0, 1 ani 2";
endswitch;

Předcházející | Domů | Další
continue | Nahoru | declare


while

Cykly while jsou nejjednodušším typem cyklů v PHP. Chovají se jako jejich protějšci v C. Základí formát příkazu while je tento:

while (expr) statement

Význam příkazu while je snadno pochopitelný. Říká PHP, že má provádět vnořený(é) příkaz(y) tak dlouho, dokud je výraz ve while roven TRUE. Hodnota výrazu je testována pokaždé na začátku cyklu (v každé iteraci), takže i když se tato hodnota během provádění vnořených příkazů změní, provede se zbytek kódu uvnitř cyklu - v konkrétní iteraci - až do konce (každé provedení kódu uvnitř cyklu je jedna iterace). Někdy, když je výraz ve while ohodnocen jako FALSE již při vstupu do cyklu, vnořený kód se neprovede vůbec.

Podobně, jako v případě if, můžete i zde seskupovat příkazy uvnitř cyklu while ohraničením tohoto kódu složenými závorkami nebo za použití alternativní syntaxe:

while (expr): statement ... endwhile;

Následující příklady jsou identické, oba vypíší čísla od 1 do 10:

/* příklad 1 */

$i = 1;
while ($i <= 10) {
    print $i++;  /* vytištěná hodnota by byla rovna
                    $i před inkrementací
                    (post-inkrementace) */
}

/* příklad 2 */

$i = 1;
while ($i <= 10):
    print $i;
    $i++;
endwhile;

Předcházející | Domů | Další
Alternativní syntaxe řídicích struktur | Nahoru | do..while


include

Manuál PHP
Předcházející Kapitola 11. Řídicí struktury Další

include()

Příkaz include() vloží a ohodnotí specifikovaný soubor.

Níže popsané platí i pro require(). Tyto dva příkazy jsou zcela totožné, kromě toho, jak zpracovávají chyby. include() produkuje Warning (varování), zatímco require() skončí s chybou typu Fatal Error. Jinými slovy, require() použijte tehdy, chcete-li, aby se při chybějícím souboru zastavilo zpracovávání. include() se tak nechová, skript bude nerušeně pokračovat. Ujistěte se také, že máte v pořádku nastavení include_path.

Pokud se vloží soubor, potom kód v něm obsažený dědí kontext proměnné řádku, kde byl vložen. Všechny proměnné dostupné na tomto řádku volajícího souboru budou (od této chvíle) dostupné i ve volaném souboru.

Příklad 11-3. Základní příklad -- include()

vars.php
<?php

$color = 'zelené';
$fruit = 'jablko';

?>

test.php
<?php

echo "Vidím $color $fruit"; // Vidím

include 'vars.php';

echo "Vidím $color $fruit"; // Vidím zelené jablko

?>

Pokud ke vložení dojde uvnitř funkce ve volajícím souboru, potom se všechen kód obsažený ve volaném souboru bude chovat, jako by byl definován uvnitř této funkce -- tedy v rámci kontextu proměnných funkce.

Příklad 11-4. Vkládání uvnitř funkcí

<?php

function foo()
{
global $color;

    include 'vars.php';

    echo "Vidím $color $fruit";
}

/* vars.php je v kontextu foo(), takže      *
 * $fruit NENÍ dostupná mimo tento kontext. *
 * Naopak $color JE, protože je deklarována *
 * jako globální.                           */

foo();                        // Vidím zelené jablko
echo "Vidím $color $fruit";   // Vidím zelené

?>

Při vkládání souboru přejde parsing na začátku souboru z PHP režimu do módu HTML a na jeho konci se vrací zpět do módu PHP. Z tohoho důvodu musí být prováděný PHP kód ve vkládaném souboru uzavřen mezi platnou počáteční a koncovou PHP značku.

Pokud jsou v PHP povoleny "URL fopen wrappery" (což tak implicitně je), můžete specifikovat soubor ke vložení pomocí URL (přes HTTP) namísto lokálního umístění. Pokud přískušný server interpretuje požadovaný soubor jako PHP kód, proměnné mohou být odkazovány pomocí řetězce URL požadavku jako u HTTP GET. Není to úplně totéž jako vložení souboru s děděním kontextu proměnných od rodičovského souboru; skript běží na vzdáleném serveru a výsledek se potom vloží do lokálního skriptu.

Příklad 11-5. include() přes HTTP

<?php

/* Tento příklad předpokládá, že www.example.com je konfigurován k parsování *
 * souborů .php a nikoli souborů .txt. Tedy, 'funguje' zde znamená, že       *
 * proměnné $foo a $bar jsou dostupné uvnitř vkládaného souboru.             */

// Nefunguje; file.txt nebyl na www.example.com zpracován jako PHP
include 'http://www.example.com/file.txt?foo=1&bar=2';

// Nefunguje; hledá soubor 'file.php?foo=1&bar=2' v lokálním systému souborů.
include 'file.php?foo=1&bar=2';

// Funguje.
include 'http://www.example.com/file.php?foo=1&bar=2';

$foo = 1;
$bar = 2;
include 'file.txt';  // Funguje.
include 'file.php';  // Funguje.

?>
Související informace -- viz také Vzdálené soubory, fopen() a file().

Protože include() a require() jsou speciální jazykové příkazy, pokud se provádějí podmíněně, musíte je uzavřít do bloku.

Příklad 11-6. include() a podmíněné bloky

<?php

// Toto je ŠPATNĚ a (jak bylo řečeno) nebude to fungovat.
if ($condition)
    include $file;
else
    include $other;

// Tohle je SPRÁVNĚ.
if ($condition) {
    include $file;
} else {
    include $other;
}

?>

Obsluha návratů: Uvnitř vkládaného souboru lze provést příkaz return() k ukončení provádění souboru a návrat do volajícího skriptu. Je tedy možné z vložených souborů vracet hodnoty. Můžete vzít hodnotu volání include, jako by to byla normální funkce.

Poznámka: V PHP 3 se return nesmí objevit uvnitř bloku, pokud to není funkční blok; tehdy však se však return() týká této funkce a ne celého souboru.

Příklad 11-7. include() a příkaz return()

return.php
<?php

$var = 'PHP';

return $var;

?>

noreturn.php
<?php

$var = 'PHP';

?>

testreturns.php
<?php

$foo = include 'return.php';

echo $foo; // vypíše 'PHP'

$bar = include 'noreturn.php';

echo $bar; // vypíše 1

?>

$bar má hodnotu 1, protože příkaz include byl úspěšný. Všimněte si rozdílu mezi výše uvedenými příklady. První používá ve vkládaném souboru return(), druhý nikoli. Dalšími způsoby, jak přiřadit hodnotu souboru do proměnné, jsou funkce fopen(), file() a použití include() společně s funkcemi řízení výstupu.

Viz také require(), require_once(),
include_once(), readfile(),
virtual(), a
include_path.


include_once

Manuál PHP
Předcházející Kapitola 11. Řídicí struktury Další

include_once()

Příkaz include_once() vloží a ohodnotí specifikovaný soubor během provádění skriptu. Chová se tedy podobně jako include() , s tím rozdílem, že pokud už byl kód ze souboru dříve vložen do skriptu, nebude znovu vkládán. Jak název napovídá, bude vložen právě jednou.

Příkaz include_once() by se měl používat v případech, kde by mohl být během provádění skriptu tentýž soubor vložen a ohodnocen víckrát, a přitom chcete zajistit právě jedno vložení (je třeba se vyhnout redefinicím funkcí, novému přiřazení hodnot atd.).

Příklady na použití require_once() and include_once() najdete v kódu PEAR přiloženém v nejnovějších distribucích zdrojových kódů PHP.

Poznámka: Příkaz include_once() byl přidán v PHP 4.0.1pl2.

Viz také include(),
require(), require_once(),
get_required_files(),
get_included_files(), readfile(),
a virtual().

Předcházející | Domů | Další
require_once() | Nahoru | Funkce


require

Manuál PHP
Předcházející Kapitola 11. Řídicí struktury Další

require()

Příkaz require() vloží a ohodnotí specifikovaný soubor.

require() vloží a ohodnotí specifikovaný soubor. Podrobné informace o tom, jak vkládání pracuje, jsou popsány v dokumentaci o include().

require() a include() jsou totožné, kromě toho, jak zpracovávají chyby. include() vyprodukuje Warning (varování), zatímco require() skončí s chybou typu Fatal Error (velmi vážná chyba). Jinak řečeno, nerozpakujte se použít require(), pokud chcete, aby nepřítomnost souboru zastavila zpracování stránky. include() se takto nechová, skript bude nerušeně pokračovat. Ujistěte se také, že máte v pořádku nastavení include_path.

Příklad 11-2. Základní příklady použití require()

<?php

require 'prepend.php';

require $somefile;

require ('somefile.txt');

?>

Další příklady -- viz dokumentace include().

Poznámka: U verzí před PHP 4.0.2 platí toto: require() se vždy pokusí přečíst příslušný soubor, kromě případu, že se řádek s tímto příkazem nemůže nikdy provést. Podmíněný výraz require() neovlivňuje. Avšak pokud se řádek, na kterém require() leží, vůbec neprovádí, nebude se provádět ani kód v příslušném souboru. Podobně je tomu i v případě cyklů -- ani ty neovlivňují chování require(). Přestože kód obsažený ve vkládaném souboru je stále předmětem opakování, samotné require() se provede pouze jednou.

Viz také include(), require_once(),
include_once(), eval(),
file(), readfile(),
virtual() a include_path.

Předcházející | Domů | Další
return | Nahoru | include()


require_once

Manuál PHP
Předcházející Kapitola 11. Řídicí struktury Další

require_once()

Příkaz require_once() vloží a ohodnotí specifikovaný soubor během provádění skriptu. Chová se tedy podobně jako require(), s tím rozdílem, že pokud už byl kód ze souboru dříve vložen do skriptu, nebude znovu vkládán. Více informací o chování příkazu -- viz příkaz require().

Příkaz require_once() by se měl používat v případech, kde by mohl být během provádění skriptu tentýž soubor vložen a ohodnocen víckrát, a přitom chcete zajistit právě jedno vložení (je třeba se vyhnout redefinicím funkcí, novému přiřazení hodnot atd.).

Příklady na použití require_once() a include_once() najdete v kódu PEAR přiloženém v nejnovějších distribucích zdrojových kódů PHP.

Poznámka: Příkaz require_once() byl přidán v PHP 4.0.1pl2.

Viz také: require(),
include(), include_once(),
get_required_files(),
get_included_files(), readfile(),
a virtual().


old_function

Klausule old_function umožňuje deklarovat funkci s identickou syntaxí jako v PHP/FI2 (kromě toho, že musíte 'function' nahradit 'old_function'.

Toto je zavržená možnost a měla by být používána pouze PHP/FI2->PHP 3 konvertorem.

Varování

Funkce deklarované jako old_function nelze volat z interního kódu PHP. To mj. znamená, že je nemůžete používat ve funkcích jako usort(), array_walk(), a register_shutdown_function(). Toto omezení můžete obejít napsáním wrapperu (v normální PHP 3 formě), z něhož voláte old_function.

Předcházející | Domů | Další
Návratové hodnoty | Nahoru | Funkce v proměnných


extends

Often you need classes with similar variables and functions to another existing class. In fact, it is good practice to define a generic class which can be used in all your projects and adapt this class for the needs of each of your specific projects. To facilitate this, classes can be extensions of other classes. The extended or derived class has all variables and functions of the base class (this is called 'inheritance' despite the fact that nobody died) and what you add in the extended definition. It is not possible to substract from a class, that is, to undefine any existing functions or variables. An extended class is always dependent on a single base class, that is, multiple inheritance is not supported. Classes are extended using the keyword 'extends'.

<?php
class Named_Cart extends Cart {
    var $owner;

    function set_owner ($name) {
        $this->owner = $name;
    }
}
?>

This defines a class Named_Cart that has all variables and functions of Cart plus an additional variable $owner and an additional function set_owner(). You create a named cart the usual way and can now set and get the carts owner. You can still use normal cart functions on named carts:

<?php
$ncart = new Named_Cart;    // Create a named cart
$ncart->set_owner("kris");  // Name that cart
print $ncart->owner;        // print the cart owners name
$ncart->add_item("10", 1);  // (inherited functionality from cart)
?>

This is also called a "parent-child" relationship. You create a class, parent, and use extends to create a new class based on the parent class: the child class. You can even use this new child class and create another class based on this child class.

Poznámka: Classes must be defined before they are used! If you want the class Named_Cart to extend the class Cart, you will have to define the class Cart first. If you want to create another class called Yellow_named_cart based on the class Named_Cart you have to define Named_Cart first. To make it short: the order in which the classes are defined is important.

Předcházející | Domů | Další
Classes and Objects | Nahoru | Constructors


::

Výstraha

The following is valid for PHP 4 and later only.

Sometimes it is useful to refer to functions and variables in base classes or to refer to functions in classes that have not yet any instances. The :: operator is being used for this.

<?php
class A {
    function example() {
        echo "I am the original function A::example().<br />\n";
    }
}

class B extends A {
    function example() {
        echo "I am the redefined function B::example().<br />\n";
        A::example();
    }
}

// there is no object of class A.
// this will print
//   I am the original function A::example().<br />
A::example();

// create an object of class B.
$b = new B;

// this will print
//   I am the redefined function B::example().<br />
//   I am the original function A::example().<br />
$b->example();
?>

The above example calls the function example() in class A, but there is no object of class A, so that we cannot write $a->example() or similar. Instead we call example() as a 'class function', that is, as a function of the class itself, not any object of that class.

There are class functions, but there are no class variables. In fact, there is no object at all at the time of the call. Thus, a class function may not use any object variables (but it can use local and global variables), and it may no use $this at all.

In the above example, class B redefines the function example(). The original definition in class A is shadowed and no longer available, unless you are referring specifically to the implementation of example() in class A using the ::-operator. Write A::example() to do this (in fact, you should be writing parent::example(), as shown in the next section).

In this context, there is a current object and it may have object variables. Thus, when used from WITHIN an object function, you may use $this and object variables.

Předcházející | Domů | Další
Constructors | Nahoru | parent


parent

You may find yourself writing code that refers to variables and functions in base classes. This is particularly true if your derived class is a refinement or specialisation of code in your base class.

Instead of using the literal name of the base class in your code, you should be using the special name parent, which refers to the name of your base class as given in the extends declaration of your class. By doing this, you avoid using the name of your base class in more than one place. Should your inheritance tree change during implementation, the change is easily made by simply changing the extends declaration of your class.

<?php
class A {
    function example() {
        echo "I am A::example() and provide basic functionality.<br />\n";
    }
}

class B extends A {
    function example() {
        echo "I am B::example() and provide additional functionality.<br />\n";
        parent::example();
    }
}

$b = new B;

// This will call B::example(), which will in turn call A::example().
$b->example();
?>

Předcházející | Domů | Další
:: | Nahoru | Serializing objects - objects in sessions


Constructors

Výstraha

In PHP 3 and PHP 4 constructors behave differently. The PHP 4 semantics are strongly preferred.

Constructors are functions in a class that are automatically called when you create a new instance of a class with new. In PHP 3, a function becomes a constructor when it has the same name as the class. In PHP 4, a function becomes a constructor, when it has the same name as the class it is defined in - the difference is subtle, but crucial (see below).

<?php
// Works in PHP 3 and PHP 4.
class Auto_Cart extends Cart {
    function Auto_Cart() {
        $this->add_item("10", 1);
    }
}
?>

This defines a class Auto_Cart that is a Cart plus a constructor which initializes the cart with one item of article number "10" each time a new Auto_Cart is being made with "new". Constructors can take arguments and these arguments can be optional, which makes them much more useful. To be able to still use the class without parameters, all parameters to constructors should be made optional by providing default values.

<?php
// Works in PHP 3 and PHP 4.
class Constructor_Cart extends Cart {
    function Constructor_Cart($item = "10", $num = 1) {
        $this->add_item ($item, $num);
    }
}

// Shop the same old boring stuff.

$default_cart = new Constructor_Cart;

// Shop for real...

$different_cart = new Constructor_Cart("20", 17);
?>

You also can use the @ operator to mute errors occurring in the constructor, e.g. @new.

Výstraha

In PHP 3, derived classes and constructors have a number of limitations. The following examples should be read carefully to understand these limitations.

<?php
class A {
    function A() {
      echo "I am the constructor of A.<br />\n";
    }
}

class B extends A {
    function C() {
        echo "I am a regular function.<br />\n";
    }
}

// no constructor is being called in PHP 3.
$b = new B;
?>

In PHP 3, no constructor is being called in the above example. The rule in PHP 3 is: 'A constructor is a function of the same name as the class.'. The name of the class is B, and there is no function called B() in class B. Nothing happens.

This is fixed in PHP 4 by introducing another rule: If a class has no constructor, the constructor of the base class is being called, if it exists. The above example would have printed 'I am the constructor of A.<br />' in PHP 4.

<?php
class A
{
    function A()
    {
        echo "I am the constructor of A.<br />\n";
    }

    function B()
    {
        echo "I am a regular function named B in class A.<br />\n";
        echo "I am not a constructor in A.<br />\n";
    }
}

class B extends A
{
    function C()
    {
        echo "I am a regular function.<br />\n";
    }
}

// This will call B() as a constructor.
$b = new B;
?>

In PHP 3, the function B() in class A will suddenly become a constructor in class B, although it was never intended to be. The rule in PHP 3 is: 'A constructor is a function of the same name as the class.'. PHP 3 does not care if the function is being defined in class B, or if it has been inherited.

This is fixed in PHP 4 by modifying the rule to: 'A constructor is a function of the same name as the class it is being defined in.'. Thus in PHP 4, the class B would have no constructor function of its own and the constructor of the base class would have been called, printing 'I am the constructor of A.<br />'.

Výstraha

Neither PHP 3 nor PHP 4 call constructors of the base class automatically from a constructor of a derived class. It is your responsibility to propagate the call to constructors upstream where appropriate.

Poznámka: There are no destructors in PHP 3 or PHP 4. You may use register_shutdown_function() instead to simulate most effects of destructors.

Destructors are functions that are called automatically when an object is destroyed, either with unset() or by simply going out of scope. There are no destructors in PHP.

Předcházející | Domů | Další
extends | Nahoru | ::


The magic functions __sleep and __wakeup

serialize() checks if your class has a function with the magic name __sleep. If so, that function is being run prior to any serialization. It can clean up the object and is supposed to return an array with the names of all variables of that object that should be serialized.

The intended use of __sleep is to close any database connections that object may have, committing pending data or perform similar cleanup tasks. Also, the function is useful if you have very large objects which need not be saved completely.

Conversely, unserialize() checks for the presence of a function with the magic name __wakeup. If present, this function can reconstruct any resources that object may have.

The intended use of __wakeup is to reestablish any database connections that may have been lost during serialization and perform other reinitialization tasks.

Předcházející | Domů | Další
Serializing objects - objects in sessions | Nahoru | References inside the constructor


empty("0")

Asi nejkontroverznější změnou v chování je změna ve funkci empty(). Řetězec obsahující pouze znak '0' (nula) je nyní považován za prázdný, což v PHP 3 nebylo.

Toto nové chování má smysl u aplikací pro web tam, kde všechna vstupní pole vrací řetězce, i když je požadován číselný vstup, a se schopností PHP provádět automatickou typovou konverzi. Na druhou stranu může v některých případech vést k chybnému chování, jehož příčiny se špatně zjištují, pokud nevíte, co máte hledat.

Předcházející | Domů | Další
Inicializátory | Nahoru | Chybějící funkce


Návratové hodnoty TRUE/FALSE

Většina vnitřních funkcí byla přepsána tak, aby vracela TRUE v případě úspěchu a FALSE při selhání, narozdíl od původních hodnot 0 a -1 v PHP/FI 2.0. Nové chování umožňuje logičtější programování, jako $fp = fopen("/your/file") nebo fail("darn!");. Protože v PHP/FI 2.0 nebyla jasná pravidla, v kterých případech se vyskakovalo z funkce při selhání, většina skriptů bude pravděpodobně muset být zkontrolována ručně po použití konvertoru z 2.0 na 3.0.

Příklad D-9. Přechod z 2.0: návratové hodnoty, starý kód

$fp = fopen($file, "r");
if ($fp == -1);
    echo("Could not open $file for reading<br>\n");
endif;

Příklad D-10. Přechod z 2.0: návratové hodnoty, nový kód

$fp = @fopen($file, "r") or print("Could not open $file for reading<br>\n");

Předcházející | Domů | Další
Zkrácené vyhodnocení logických výrazů | Nahoru | Jiné nekompatibility


Stream open options

Stream open options -- Affects the operation of stream factory functions

Description

One or more of these values can be combined using the OR operator.

IGNORE_PATH

This is the default option for streams; it requests that the include_path is not to be searched for the requested file.

USE_PATH

Requests that the include_path is to be searched for the requested file.

IGNORE_URL

Requests that registered URL wrappers are to be ignored when opening the stream. Other non-URL wrappers will be taken into consideration when decoding the path. There is no opposite form for this flag; the streams API will use all registered wrappers by default.

IGNORE_URL_WIN

On Windows systems, this is equivalent to IGNORE_URL. On all other systems, this flag has no effect.

ENFORCE_SAFE_MODE

Requests that the underlying stream implementation perform safe_mode checks on the file before opening the file. Omitting this flag will skip safe_mode checks and allow opening of any file that the PHP process has rights to access.

REPORT_ERRORS

If this flag is set, and there was an error during the opening of the file or URL, the streams API will call the php_error function for you. This is useful because the path may contain username/password information that should not be displayed in the browser output (it would be a security risk to do so). When the streams API raises the error, it first strips username/password information from the path, making the error message safe to display in the browser.

STREAM_MUST_SEEK

This flag is useful when your extension really must be able to randomly seek around in a stream. Some streams may not be seekable in their native form, so this flag asks the streams API to check to see if the stream does support seeking. If it does not, it will copy the stream into temporary storage (which may be a temporary file or a memory stream) which does support seeking. Please note that this flag is not useful when you want to seek the stream and write to it, because the stream you are accessing might not be bound to the actual resource you requested.

Poznámka: If the requested resource is network based, this flag will cause the opener to block until the whole contents have been downloaded.

STREAM_WILL_CAST

If your extension is using a third-party library that expects a FILE* or file descriptor, you can use this flag to request the streams API to open the resource but avoid buffering. You can then use php_stream_cast() to retrieve the FILE* or file descriptor that the library requires.

The is particularly useful when accessing HTTP URLs where the start of the actual stream data is found after an indeterminate offset into the stream.

Since this option disables buffering at the streams API level, you may experience lower performance when using streams functions on the stream; this is deemed acceptable because you have told streams that you will be using the functions to match the underlying stream implementation. Only use this option when you are sure you need it.

Předcházející | Domů | Další
Streams Constants | Nahoru | FAQ: Často kladené otázky


php_register_url_stream_wrapper

(no version information, might be only in CVS)

php_register_url_stream_wrapper -- Registers a wrapper with the Streams API

Description

int php_register_url_stream_wrapper ( char * protocol, php_stream_wrapper * wrapper, TSRMLS_DC )

php_register_url_stream_wrapper() registers wrapper as the handler for the protocol specified by protocol.

Poznámka: If you call this function from a loadable module, you *MUST* call php_unregister_url_stream_wrapper() in your module shutdown function, otherwise PHP will crash.

Předcházející | Domů | Další
php_stream_passthru | Nahoru | php_unregister_url_stream_wrapper


php_stream_can_cast

(no version information, might be only in CVS)

php_stream_can_cast -- Determines if a stream can be converted into another form, such as a FILE* or socket

Description

int php_stream_can_cast ( php_stream * stream, int castas)

This function is equivalent to calling php_stream_cast() with ret set to NULL and flags set to 0. It returns SUCCESS if the stream can be converted into the form requested, or FAILURE if the conversion cannot be performed.

Poznámka: Although this function will not perform the conversion, some internal stream state *might* be changed by this call.

Poznámka: You must explicitly compare the return value of this function with one of the constants, as described in php_stream_cast().

See also php_stream_cast() and php_stream_is().

Předcházející | Domů | Další
php_stream_cast | Nahoru | php_stream_is_persistent


php_stream_cast

(no version information, might be only in CVS)

php_stream_cast -- Convert a stream into another form, such as a FILE* or socket

Description

int php_stream_cast ( php_stream * stream, int castas, void ** ret, int flags)

php_stream_cast() attempts to convert stream into a resource indicated by castas. If ret is NULL, the stream is queried to find out if such a conversion is possible, without actually performing the conversion (however, some internal stream state *might* be changed in this case). If flags is set to REPORT_ERRORS, an error message will be displayed is there is an error during conversion.

Poznámka: This function returns SUCCESS for success or FAILURE for failure. Be warned that you must explicitly compare the return value with SUCCESS or FAILURE because of the underlying values of those constants. A simple boolean expression will not be interpreted as you intended.

Tabulka 43-1. Resource types for castas

Value | Meaning
PHP_STREAM_AS_STDIO | Requests an ANSI FILE* that represents the stream
PHP_STREAM_AS_FD | Requests a POSIX file descriptor that represents the stream
PHP_STREAM_AS_SOCKETD | Requests a network socket descriptor that represents the stream

In addition to the basic resource types above, the conversion process can be altered by using the following flags by using the OR operator to combine the resource type with one or more of the following values:

Tabulka 43-2. Resource types for castas

Value | Meaning
PHP_STREAM_CAST_TRY_HARD | Tries as hard as possible, at the expense of additional resources, to ensure that the conversion succeeds
PHP_STREAM_CAST_RELEASE | Informs the streams API that some other code (possibly a third party library) will be responsible for closing the underlying handle/resource. This causes the stream to be closed in such a way the underlying handle is preserved and returned in ret. If this function succeeds, stream should be considered closed and should no longer be used.

Poznámka: If your system supports fopencookie() (systems using glibc 2 or later), the streams API will always be able to synthesize an ANSI FILE* pointer over any stream. While this is tremendously useful for passing any PHP stream to any third-party libraries, such behaviour is not portable. You are requested to consider the portability implications before distributing you extension. If the fopencookie synthesis is not desirable, you should query the stream to see if it naturally supports FILE* by using php_stream_is()

Poznámka: If you ask a socket based stream for a FILE*, the streams API will use fdopen() to create it for you. Be warned that doing so may cause data that was buffered in the streams layer to be lost if you intermix streams API calls with ANSI stdio calls.

See also php_stream_is() and php_stream_can_cast().

Předcházející | Domů | Další
php_stream_make_seekable | Nahoru | php_stream_can_cast


php_stream_close

(no version information, might be only in CVS)

php_stream_close -- Close a stream

Description

int php_stream_close ( php_stream * stream)

php_stream_close() safely closes stream and releases the resources associated with it. After stream has been closed, it's value is undefined and should not be used.

php_stream_close() returns 0 if the stream was closed or EOF to indicate an error. Regardless of the success of the call, stream is undefined and should not be used after a call to this function.

Předcházející | Domů | Další
php_stream_gets | Nahoru | php_stream_flush


php_stream_closedir

(no version information, might be only in CVS)

php_stream_closedir -- Close a directory stream and release resources

Description

int php_stream_closedir ( php_stream * dirstream)

php_stream_closedir() closes a directory stream and releases resources associated with it. Returns 0 on success, but -1 on failure.

Předcházející | Domů | Další
php_stream_rewinddir | Nahoru | Streams File API Reference


php_stream_copy_to_mem

(no version information, might be only in CVS)

php_stream_copy_to_mem -- Copy data from stream and into an allocated buffer

Description

size_t php_stream_copy_to_mem ( php_stream * src, char ** buf, size_t maxlen, int persistent)

php_stream_copy_to_mem() allocates a buffer maxlen+1 bytes in length using pemalloc() (passing persistent). It then reads maxlen bytes from src and stores them in the allocated buffer.

The allocated buffer is returned in buf, and the number of bytes successfully read. You, the caller, are responsible for freeing the buffer by passing it and persistent to pefree().

If you want to copy all remaining data from the src stream, pass the constant PHP_STREAM_COPY_ALL as the value of maxlen.

Poznámka: This function will attempt to copy the data in the most efficient manner, using memory mapped files when possible.

Předcházející | Domů | Další
php_stream_copy_to_stream | Nahoru | php_stream_make_seekable


php_stream_copy_to_stream

(no version information, might be only in CVS)

php_stream_copy_to_stream -- Copy data from one stream to another

Description

size_t php_stream_copy_to_stream ( php_stream * src, php_stream * dest, size_t maxlen)

php_stream_copy_to_stream() attempts to read up to maxlen bytes of data from src and write them to dest, and returns the number of bytes that were successfully copied.

If you want to copy all remaining data from the src stream, pass the constant PHP_STREAM_COPY_ALL as the value of maxlen.

Poznámka: This function will attempt to copy the data in the most efficient manner, using memory mapped files when possible.

Předcházející | Domů | Další
php_stream_tell | Nahoru | php_stream_copy_to_mem


php_stream_eof

(no version information, might be only in CVS)

php_stream_eof -- Check for an end-of-file condition on a stream

Description

int php_stream_eof ( php_stream * stream)

php_stream_eof() checks for an end-of-file condition on stream.

php_stream_eof() returns the 1 to indicate EOF, 0 if there is no EOF and -1 to indicate an error.

Předcházející | Domů | Další
php_stream_write | Nahoru | php_stream_getc


php_stream_filter_register_factory

(no version information, might be only in CVS)

php_stream_filter_register_factory -- Registers a filter factory with the Streams API

Description

int php_stream_filter_register_factory ( const char * filterpattern, php_stream_filter_factory * factory)

Use this function to register a filter factory with the name given by filterpattern. filterpattern can be either a normal string name (i.e. myfilter) or a global pattern (i.e. myfilterclass.*) to allow a single filter to perform different operations depending on the exact name of the filter invoked (i.e. myfilterclass.foo, myfilterclass.bar, etc...)

Poznámka: Filters registered by a loadable extension must be certain to call php_stream_filter_unregister_factory() during MSHUTDOWN.

Předcházející | Domů | Další
php_stream_open_wrapper_as_file | Nahoru | php_stream_filter_unregister_factory


php_stream_filter_unregister_factory

(no version information, might be only in CVS)

php_stream_filter_unregister_factory -- Deregisters a filter factory with the Streams API

Description

int php_stream_filter_unregister_factory ( const char * filterpattern)

Deregisters the filterfactory specified by the filterpattern making it no longer available for use.

Poznámka: Filters registered by a loadable extension must be certain to call php_stream_filter_unregister_factory() during MSHUTDOWN.

Předcházející | Domů | Další
php_stream_filter_register_factory | Nahoru | Streams Dir API Reference


php_stream_flush

(no version information, might be only in CVS)

php_stream_flush -- Flush stream buffers to storage

Description

int php_stream_flush ( php_stream * stream)

php_stream_flush() causes any data held in write buffers in stream to be committed to the underlying storage.

php_stream_flush() returns 0 if the buffers were flushed, or if the buffers did not need to be flushed, but returns EOF to indicate an error.

Předcházející | Domů | Další
php_stream_close | Nahoru | php_stream_seek


php_stream_fopen_from_file

(no version information, might be only in CVS)

php_stream_fopen_from_file -- Convert an ANSI FILE* into a stream

Description

php_stream * php_stream_fopen_from_file ( FILE * file, char * mode)

php_stream_fopen_from_file() returns a stream based on the file. mode must be the same as the mode used to open file, otherwise strange errors may occur when trying to write when the mode of the stream is different from the mode on the file.

Předcházející | Domů | Další
Streams File API Reference | Nahoru | php_stream_fopen_tmpfile


php_stream_fopen_temporary_file

(no version information, might be only in CVS)

php_stream_fopen_temporary_file -- Generate a temporary file name and open a stream on it

Description

php_stream * php_stream_fopen_temporary_file ( const char * dir, const char * pfx, char ** opened)

php_stream_fopen_temporary_file() generates a temporary file name in the directory specified by dir and with a prefix of pfx. The generated file name is returns in the opened parameter, which you are responsible for cleaning up using efree(). A stream is opened on that generated filename in "w+b" mode. The file is NOT automatically deleted; you are responsible for unlinking or moving the file when you have finished with it.

Předcházející | Domů | Další
php_stream_fopen_tmpfile | Nahoru | Streams Socket API Reference


php_stream_fopen_tmpfile

(no version information, might be only in CVS)

php_stream_fopen_tmpfile -- Open a FILE* with tmpfile() and convert into a stream

Description

php_stream * php_stream_fopen_tmpfile ( void )

php_stream_fopen_from_file() returns a stream based on a temporary file opened with a mode of "w+b". The temporary file will be deleted automatically when the stream is closed or the process terminates.

Předcházející | Domů | Další
php_stream_fopen_from_file | Nahoru | php_stream_fopen_temporary_file


php_stream_getc

(no version information, might be only in CVS)

php_stream_getc -- Read a single byte from a stream

Description

int php_stream_getc ( php_stream * stream)

php_stream_getc() reads a single character from stream and returns it as an unsigned char cast as an int, or EOF if the end-of-file is reached, or an error occurred.

php_stream_getc() may block in the same way as php_stream_read() blocks.

The internal position of the stream is advanced by 1 if successful.

Předcházející | Domů | Další
php_stream_eof | Nahoru | php_stream_gets


php_stream_gets

(no version information, might be only in CVS)

php_stream_gets -- Read a line of data from a stream into a buffer

Description

char * php_stream_gets ( php_stream * stream, char * buf, size_t maxlen)

php_stream_gets() reads up to count-1 bytes of data from stream and copies them into the buffer buf. Reading stops after an EOF or a newline. If a newline is read, it is stored in buf as part of the returned data. A NUL terminating character is stored as the last character in the buffer.

php_stream_read() returns buf when successful or NULL otherwise.

The internal position of the stream is advanced by the number of bytes that were read, so that subsequent reads will continue reading from that point.

This function may block in the same way as php_stream_read().

Předcházející | Domů | Další
php_stream_getc | Nahoru | php_stream_close


php_stream_is

(no version information, might be only in CVS)

php_stream_is -- Determines if a stream is of a particular type

Description

int php_stream_is ( php_stream * stream, int istype)

php_stream_is() returns 1 if stream is of the type specified by istype, or 0 otherwise.

Tabulka 43-1. Values for istype

Value | Meaning
PHP_STREAM_IS_STDIO | The stream is implemented using the stdio implementation
PHP_STREAM_IS_SOCKET | The stream is implemented using the network socket implementation
PHP_STREAM_IS_USERSPACE | The stream is implemented using the userspace object implementation
PHP_STREAM_IS_MEMORY | The stream is implemented using the grow-on-demand memory stream implementation

Poznámka: The PHP_STREAM_IS_XXX "constants" are actually defined as pointers to the underlying stream operations structure. If your extension (or some other extension) defines additional streams, it should also declare a PHP_STREAM_IS_XXX constant in it's header file that you can use as the basis of this comparison.

Poznámka: This function is implemented as a simple (and fast) pointer comparison, and does not change the stream state in any way.

See also php_stream_cast() and php_stream_can_cast().

Předcházející | Domů | Další
php_stream_is_persistent | Nahoru | php_stream_passthru


php_stream_is_persistent

(no version information, might be only in CVS)

php_stream_is_persistent -- Determines if a stream is a persistent stream

Description

int php_stream_is_persistent ( php_stream * stream)

php_stream_is_persistent() returns 1 if the stream is a persistent stream, 0 otherwise.

Předcházející | Domů | Další
php_stream_can_cast | Nahoru | php_stream_is


php_stream_make_seekable

(no version information, might be only in CVS)

php_stream_make_seekable -- Convert a stream into a stream is seekable

Description

int php_stream_make_seekable ( php_stream * origstream, php_stream ** newstream, int flags)

php_stream_make_seekable() checks if origstream is seekable. If it is not, it will copy the data into a new temporary stream. If successful, newstream is always set to the stream that is valid to use, even if the original stream was seekable.

flags allows you to specify your preference for the seekable stream that is returned: use PHP_STREAM_NO_PREFERENCE to use the default seekable stream (which uses a dynamically expanding memory buffer, but switches to temporary file backed storage when the stream size becomes large), or use PHP_STREAM_PREFER_STDIO to use "regular" temporary file backed storage.

Tabulka 43-1. php_stream_make_seekable() return values

Value | Meaning
PHP_STREAM_UNCHANGED | Original stream was seekable anyway. newstream is set to the value of origstream.
PHP_STREAM_RELEASED | Original stream was not seekable and has been released. newstream is set to the new seekable stream. You should not access origstream anymore.
PHP_STREAM_FAILED | An error occurred while attempting conversion. newstream is set to NULL; origstream is still valid.
PHP_STREAM_CRITICAL | An error occurred while attempting conversion that has left origstream in an indeterminate state. newstream is set to NULL and it is highly recommended that you close origstream.

Poznámka: If you need to seek and write to the stream, it does not make sense to use this function, because the stream it returns is not guaranteed to be bound to the same resource as the original stream.

Poznámka: If you only need to seek forwards, there is no need to call this function, as the streams API will emulate forward seeks when the whence parameter is SEEK_CUR.

Poznámka: If origstream is network based, this function will block until the whole contents have been downloaded.

Poznámka: NEVER call this function with an origstream that is reference by a file pointer in a PHP script! This function may cause the underlying stream to be closed which could cause a crash when the script next accesses the file pointer!

Poznámka: In many cases, this function can only succeed when origstream is a newly opened stream with no data buffered in the stream layer. For that reason, and because this function is complicated to use correctly, it is recommended that you use php_stream_open_wrapper() and pass in PHP_STREAM_MUST_SEEK in your options instead of calling this function directly.

Předcházející | Domů | Další
php_stream_copy_to_mem | Nahoru | php_stream_cast


php_stream_open_wrapper

(no version information, might be only in CVS)

php_stream_open_wrapper -- Opens a stream on a file or URL

Description

php_stream * php_stream_open_wrapper ( char * path, char * mode, int options, char ** opened)

php_stream_open_wrapper() opens a stream on the file, URL or other wrapped resource specified by path. Depending on the value of mode, the stream may be opened for reading, writing, appending or combinations of those. See the table below for the different modes that can be used; in addition to the characters listed below, you may include the character 'b' either as the second or last character in the mode string. The presence of the 'b' character informs the relevant stream implementation to open the stream in a binary safe mode.

The 'b' character is ignored on all POSIX conforming systems which treat binary and text files in the same way. It is a good idea to specify the 'b' character whenever your stream is accessing data where the full 8 bits are important, so that your code will work when compiled on a system where the 'b' flag is important.

Any local files created by the streams API will have their initial permissions set according to the operating system defaults - under Unix based systems this means that the umask of the process will be used. Under Windows, the file will be owned by the creating process. Any remote files will be created according to the URL wrapper that was used to open the file, and the credentials supplied to the remote server.

r

Open text file for reading. The stream is positioned at the beginning of the file.

r+

Open text file for reading and writing. The stream is positioned at the beginning of the file.

w

Truncate the file to zero length or create text file for writing. The stream is positioned at the beginning of the file.

w+

Open text file for reading and writing. The file is created if it does not exist, otherwise it is truncated. The stream is positioned at the beginning of the file.

a

Open for writing. The file is created if it does not exist. The stream is positioned at the end of the file.

a+

Open text file for reading and writing. The file is created if it does not exist. The stream is positioned at the end of the file.

options affects how the path/URL of the stream is interpreted, safe mode checks and actions taken if there is an error during opening of the stream. See Stream open options for more information about options.

If opened is not NULL, it will be set to a string containing the name of the actual file/resource that was opened. This is important when the options include USE_PATH, which causes the include_path to be searched for the file. You, the caller, are responsible for calling efree() on the filename returned in this parameter.

Poznámka: If you specified STREAM_MUST_SEEK in options, the path returned in opened may not be the name of the actual stream that was returned to you. It will, however, be the name of the original resource from which the seekable stream was manufactured.

Předcházející | Domů | Další
php_stream_stat | Nahoru | php_stream_read


php_stream_open_wrapper_as_file

(no version information, might be only in CVS)

php_stream_open_wrapper_as_file -- Opens a stream on a file or URL, and converts to a FILE*

Description

FILE * php_stream_open_wrapper_as_file ( char * path, char * mode, int options, char ** opened)

php_stream_open_wrapper_as_file() is exactly like php_stream_open_wrapper(), but converts the stream into an ANSI stdio FILE* and returns that instead of the stream. This is a convenient shortcut for extensions that pass FILE* to third-party libraries.

Předcházející | Domů | Další
php_stream_open_wrapper_ex | Nahoru | php_stream_filter_register_factory


php_stream_open_wrapper_ex

(no version information, might be only in CVS)

php_stream_open_wrapper_ex -- Opens a stream on a file or URL, specifying context

Description

php_stream * php_stream_open_wrapper_ex ( char * path, char * mode, int options, char ** opened, php_stream_context * context)

php_stream_open_wrapper_ex() is exactly like php_stream_open_wrapper(), but allows you to specify a php_stream_context object using context. To find out more about stream contexts, see XXX

Předcházející | Domů | Další
php_unregister_url_stream_wrapper | Nahoru | php_stream_open_wrapper_as_file


php_stream_opendir

(no version information, might be only in CVS)

php_stream_opendir -- Open a directory for file enumeration

Description

php_stream * php_stream_opendir ( char * path, php_stream_context * context)

php_stream_opendir() returns a stream that can be used to list the files that are contained in the directory specified by path. This function is functionally equivalent to POSIX opendir(). Although this function returns a php_stream object, it is not recommended to try to use the functions from the common API on these streams.

Předcházející | Domů | Další
Streams Dir API Reference | Nahoru | php_stream_readdir


php_stream_passthru

(no version information, might be only in CVS)

php_stream_passthru -- Outputs all remaining data from a stream

Description

size_t php_stream_passthru ( php_stream * stream)

php_stream_passthru() outputs all remaining data from stream to the active output buffer and returns the number of bytes output. If buffering is disabled, the data is written straight to the output, which is the browser making the request in the case of PHP on a web server, or stdout for CLI based PHP. This function will use memory mapped files if possible to help improve performance.

Předcházející | Domů | Další
php_stream_is | Nahoru | php_register_url_stream_wrapper


php_stream_read

(no version information, might be only in CVS)

php_stream_read -- Read a number of bytes from a stream into a buffer

Description

size_t php_stream_read ( php_stream * stream, char * buf, size_t count)

php_stream_read() reads up to count bytes of data from stream and copies them into the buffer buf.

php_stream_read() returns the number of bytes that were read successfully. There is no distinction between a failed read or an end-of-file condition - use php_stream_eof() to test for an EOF.

The internal position of the stream is advanced by the number of bytes that were read, so that subsequent reads will continue reading from that point.

If less than count bytes are available to be read, this call will block (or wait) until the required number are available, depending on the blocking status of the stream. By default, a stream is opened in blocking mode. When reading from regular files, the blocking mode will not usually make any difference: when the stream reaches the EOF php_stream_read() will return a value less than count, and 0 on subsequent reads.

Předcházející | Domů | Další
php_stream_open_wrapper | Nahoru | php_stream_write


php_stream_readdir

(no version information, might be only in CVS)

php_stream_readdir -- Fetch the next directory entry from an opened dir

Description

php_stream_dirent * php_stream_readdir ( php_stream * dirstream, php_stream_dirent * ent)

php_stream_readdir() reads the next directory entry from dirstream and stores it into ent. If the function succeeds, the return value is ent. If the function fails, the return value is NULL. See php_stream_dirent for more details about the information returned for each directory entry.

Předcházející | Domů | Další
php_stream_opendir | Nahoru | php_stream_rewinddir


php_stream_rewinddir

(no version information, might be only in CVS)

php_stream_rewinddir -- Rewind a directory stream to the first entry

Description

int php_stream_rewinddir ( php_stream * dirstream)

php_stream_rewinddir() rewinds a directory stream to the first entry. Returns 0 on success, but -1 on failure.

Předcházející | Domů | Další
php_stream_readdir | Nahoru | php_stream_closedir


php_stream_seek

(no version information, might be only in CVS)

php_stream_seek -- Reposition a stream

Description

int php_stream_seek ( php_stream * stream, off_t offset, int whence)

php_stream_seek() repositions the internal position of stream. The new position is determined by adding the offset to the position indicated by whence. If whence is set to SEEK_SET, SEEK_CUR or SEEK_END the offset is relative to the start of the stream, the current position or the end of the stream, respectively.

php_stream_seek() returns 0 on success, but -1 if there was an error.

Poznámka: Not all streams support seeking, although the streams API will emulate a seek if whence is set to SEEK_CUR and offset is positive, by calling php_stream_read() to read (and discard) offset bytes.

The emulation is only applied when the underlying stream implementation does not support seeking. If the stream is (for example) a file based stream that is wrapping a non-seekable pipe, the streams api will not apply emulation because the file based stream implements a seek operation; the seek will fail and an error result will be returned to the caller.

Předcházející | Domů | Další
php_stream_flush | Nahoru | php_stream_tell


php_stream_sock_open_from_socket

(no version information, might be only in CVS)

php_stream_sock_open_from_socket -- Convert a socket descriptor into a stream

Description

php_stream * php_stream_sock_open_from_socket ( int socket, int persistent)

php_stream_sock_open_from_socket() returns a stream based on the socket. persistent is a flag that controls whether the stream is opened as a persistent stream. Generally speaking, this parameter will usually be 0.

Předcházející | Domů | Další
Streams Socket API Reference | Nahoru | php_stream_sock_open_host


php_stream_sock_open_host

(no version information, might be only in CVS)

php_stream_sock_open_host -- Open a connection to a host and return a stream

Description

php_stream * php_stream_sock_open_host ( const char * host, unsigned short port, int socktype, struct timeval * timeout, int persistent)

php_stream_sock_open_host() establishes a connect to the specified host and port. socktype specifies the connection semantics that should apply to the connection. Values for socktype are system dependent, but will usually include (at a minimum) SOCK_STREAM for sequenced, reliable, two-way connection based streams (TCP), or SOCK_DGRAM for connectionless, unreliable messages of a fixed maximum length (UDP).

persistent is a flag the controls whether the stream is opened as a persistent stream. Generally speaking, this parameter will usually be 0.

If not NULL, timeout specifies a maximum time to allow for the connection to be made. If the connection attempt takes longer than the timeout value, the connection attempt is aborted and NULL is returned to indicate that the stream could not be opened.

Poznámka: The timeout value does not include the time taken to perform a DNS lookup. The reason for this is because there is no portable way to implement a non-blocking DNS lookup.

The timeout only applies to the connection phase; if you need to set timeouts for subsequent read or write operations, you should use php_stream_sock_set_timeout() to configure the timeout duration for your stream once it has been opened.

The streams API places no restrictions on the values you use for socktype, but encourages you to consider the portability of values you choose before you release your extension.

Předcházející | Domů | Další
php_stream_sock_open_from_socket | Nahoru | php_stream_sock_open_unix


php_stream_sock_open_unix

(no version information, might be only in CVS)

php_stream_sock_open_unix -- Open a Unix domain socket and convert into a stream

Description

php_stream * php_stream_sock_open_unix ( const char * path, int pathlen, int persistent, struct timeval * timeout)

php_stream_sock_open_unix() attempts to open the Unix domain socket specified by path. pathlen specifies the length of path. If timeout is not NULL, it specifies a timeout period for the connection attempt. persistent indicates if the stream should be opened as a persistent stream. Generally speaking, this parameter will usually be 0.

Poznámka: This function will not work under Windows, which does not implement Unix domain sockets. A possible exception to this rule is if your PHP binary was built using cygwin. You are encouraged to consider this aspect of the portability of your extension before it's release.

Poznámka: This function treats path in a binary safe manner, suitable for use on systems with an abstract namespace (such as Linux), where the first character of path is a NUL character.

Předcházející | Domů | Další
php_stream_sock_open_host | Nahoru | Streams Structures


php_stream_stat

(no version information, might be only in CVS)

php_stream_stat -- Gets the status for the underlying storage associated with a stream

Description

int php_stream_stat ( php_stream * stream, php_stream_statbuf * ssb)

php_stream_stat() examines the storage to which stream is bound, and returns information such as file size, access and creation times and so on. The return value is 0 on success, -1 on error. For more information about the information returned, see php_stream_statbuf.

Předcházející | Domů | Další
php_stream_stat_path | Nahoru | php_stream_open_wrapper


php_stream_stat_path

(no version information, might be only in CVS)

php_stream_stat_path -- Gets the status for a file or URL

Description

int php_stream_stat_path ( char * path, php_stream_statbuf * ssb)

php_stream_stat_path() examines the file or URL specified by path and returns information such as file size, access and creation times and so on. The return value is 0 on success, -1 on error. For more information about the information returned, see php_stream_statbuf.

Předcházející | Domů | Další
Streams Common API Reference | Nahoru | php_stream_stat


php_stream_tell

(no version information, might be only in CVS)

php_stream_tell -- Determine the position of a stream

Description

off_t php_stream_tell ( php_stream * stream)

php_stream_tell() returns the internal position of stream, relative to the start of the stream. If there is an error, -1 is returned.

Předcházející | Domů | Další
php_stream_seek | Nahoru | php_stream_copy_to_stream


php_stream_write

(no version information, might be only in CVS)

php_stream_write -- Write a number of bytes from a buffer to a stream

Description

size_t php_stream_write ( php_stream * stream, const char * buf, size_t count)

php_stream_write() writes count bytes of data from buf into stream.

php_stream_write() returns the number of bytes that were written successfully. If there was an error, the number of bytes written will be less than count.

The internal position of the stream is advanced by the number of bytes that were written, so that subsequent writes will continue writing from that point.

Předcházející | Domů | Další
php_stream_read | Nahoru | php_stream_eof


php_unregister_url_stream_wrapper

(no version information, might be only in CVS)

php_unregister_url_stream_wrapper -- Unregisters a wrapper from the Streams API

Description

int php_unregister_url_stream_wrapper ( char * protocol, TSRMLS_DC )

php_unregister_url_stream_wrapper() unregisters the wrapper associated with protocol.

Předcházející | Domů | Další
php_register_url_stream_wrapper | Nahoru | php_stream_open_wrapper_ex


struct php_stream_dirent

struct php_stream_dirent -- Holds information about a single file during dir scanning

Description

php_stream_dirent
     char d_name[MAXPATHLEN]

d_name holds the name of the file, relative to the directory being scanned.

Předcházející | Domů | Další
struct php_stream_statbuf | Nahoru | struct php_stream_ops


struct php_stream_filter

struct php_stream_filter -- Holds filter properties and pointer to operations

Description

struct _php_stream_filter {
            php_stream_filter_ops *fops;
            void *abstract; /* for use by filter implementation */
            php_stream_filter *next;
            php_stream_filter *prev;
            int is_persistent;

            /* link into stream and chain */
            php_stream_filter_chain *chain;

            /* buffered buckets */
            php_stream_bucket_brigade buffer;
        } php_stream_filter;

Předcházející | Domů | Další
struct php_stream_wrapper_ops | Nahoru | struct php_stream_filter_ops


struct php_stream_filter_ops

struct php_stream_filter_ops -- Holds member functions for a stream filter implementation

Description

typedef struct _php_stream_filter_ops {
            php_stream_filter_status_t (*filter)(
                    php_stream *stream,
                    php_stream_filter *thisfilter,
                    php_stream_bucket_brigade *buckets_in,
                    php_stream_bucket_brigade *buckets_out,
                    size_t *bytes_consumed,
                    int flags
                    TSRMLS_DC);

            void (*dtor)(php_stream_filter *thisfilter TSRMLS_DC);

            const char *label;
} php_stream_filter_ops;

Předcházející | Domů | Další
struct php_stream_filter | Nahoru | Streams Constants


struct php_stream_ops

struct php_stream_ops -- Holds member functions for a stream implementation

Description

typedef struct _php_stream_ops {
             /* all streams MUST implement these operations */
             size_t (*write)(php_stream *stream, const char *buf, size_t count TSRMLS_DC);
             size_t (*read)(php_stream *stream, char *buf, size_t count TSRMLS_DC);
             int (*close)(php_stream *stream, int close_handle TSRMLS_DC);
             int (*flush)(php_stream *stream TSRMLS_DC);

             const char *label; /* name describing this class of stream */

             /* these operations are optional, and may be set to NULL if the stream does not
              * support a particular operation */
            int (*seek)(php_stream *stream, off_t offset, int whence TSRMLS_DC);
            char *(*gets)(php_stream *stream, char *buf, size_t size TSRMLS_DC);
            int (*cast)(php_stream *stream, int castas, void **ret TSRMLS_DC);
            int (*stat)(php_stream *stream, php_stream_statbuf *ssb TSRMLS_DC);
        } php_stream_ops;

Předcházející | Domů | Další
struct php_stream_dirent | Nahoru | struct php_stream_wrapper


struct php_stream_statbuf

struct php_stream_statbuf -- Holds information about a file or URL

Description

php_stream_statbuf
     struct stat sb

sb is a regular, system defined, struct stat.

Předcházející | Domů | Další
Streams Structures | Nahoru | struct php_stream_dirent


struct php_stream_wrapper

struct php_stream_wrapper -- Holds wrapper properties and pointer to operations

Description

struct _php_stream_wrapper  {
            php_stream_wrapper_ops *wops;   /* operations the wrapper can perform */
            void *abstract;                 /* context for the wrapper */
            int is_url;                     /* so that PG(allow_url_fopen) can be respected */

            /* support for wrappers to return (multiple) error messages to the stream opener */
            int err_count;
            char **err_stack;
        } php_stream_wrapper;

Předcházející | Domů | Další
struct php_stream_ops | Nahoru | struct php_stream_wrapper_ops


struct php_stream_wrapper_ops

struct php_stream_wrapper_ops -- Holds member functions for a stream wrapper implementation

Description

typedef struct _php_stream_wrapper_ops {
            /* open/create a wrapped stream */
            php_stream *(*stream_opener)(php_stream_wrapper *wrapper, char *filename, char *mode,
                    int options, char **opened_path, php_stream_context *context STREAMS_DC TSRMLS_DC);
            /* close/destroy a wrapped stream */
            int (*stream_closer)(php_stream_wrapper *wrapper, php_stream *stream TSRMLS_DC);
            /* stat a wrapped stream */
            int (*stream_stat)(php_stream_wrapper *wrapper, php_stream *stream, php_stream_statbuf *ssb TSR$
            /* stat a URL */
            int (*url_stat)(php_stream_wrapper *wrapper, char *url, php_stream_statbuf *ssb TSRMLS_DC);
            /* open a "directory" stream */
            php_stream *(*dir_opener)(php_stream_wrapper *wrapper, char *filename, char *mode,
                    int options, char **opened_path, php_stream_context *context STREAMS_DC TSRMLS_DC);

            const char *label;

            /* Delete/Unlink a file */
            int (*unlink)(php_stream_wrapper *wrapper, char *url, int options, php_stream_context *context TSRMLS_DC);
        } php_stream_wrapper_ops;

Předcházející | Domů | Další
struct php_stream_wrapper | Nahoru | struct php_stream_filter


Including Output in phpinfo

Manuál PHP
Předcházející Kapitola 36. Printing Information Další

Including Output in phpinfo()

After creating a real module, you'll want to show information about the module in phpinfo() (in addition to the module name, which appears in the module list by default). PHP allows you to create your own section in the phpinfo() output with the ZEND_MINFO() function. This function should be placed in the module descriptor block (discussed earlier) and is always called whenever a script calls phpinfo().

PHP automatically prints a section in phpinfo() for you if you specify the ZEND_MINFO function, including the module name in the heading. Everything else must be formatted and printed by you.

Typically, you can print an HTML table header using php_info_print_table_start() and then use the standard functions php_info_print_table_header() and php_info_print_table_row(). As arguments, both take the number of columns (as integers) and the column contents (as strings). 36-1 shows a source example and its output. To print the table footer, use php_info_print_table_end().

Příklad 36-1. Source code and screenshot for output in phpinfo().

php_info_print_table_start();
php_info_print_table_header(2, "First column", "Second column");
php_info_print_table_row(2, "Entry in first row", "Another entry");
php_info_print_table_row(2, "Just to fill", "another row here");
php_info_print_table_end();

Předcházející | Domů | Další
zend_error() | Nahoru | Execution Information


zend_error

Manuál PHP
Předcházející Kapitola 36. Printing Information Další

zend_error()

zend_error() can be used to generate error messages. This function accepts two arguments; the first is the error type (see zend_errors.h), and the second is the error message.
zend_error(E_WARNING, "This function has been called with empty arguments");
36-1 shows a list of possible values (see 36-1). These values are also referred to in php.ini. Depending on which error type you choose, your messages will be logged.

Tabulka 36-1. Zend's Predefined Error Messages.

Error | Description
E_ERROR | Signals an error and terminates execution of the script immediately .
E_WARNING | Signals a generic warning. Execution continues.
E_PARSE | Signals a parser error. Execution continues.
E_NOTICE | Signals a notice. Execution continues. Note that by default the display of this type of error messages is turned off in php.ini.
E_CORE_ERROR | Internal error by the core; shouldn't be used by user-written modules.
E_COMPILE_ERROR | Internal error by the compiler; shouldn't be used by user-written modules.
E_COMPILE_WARNING | Internal warning by the compiler; shouldn't be used by user-written modules.

Obrázek 36-1. Display of warning messages in the browser.

Předcházející | Domů | Další
Printing Information | Nahoru | Including Output in phpinfo()


Creation of get_module

Manuál PHP
Předcházející Kapitola 31. Source Discussion Další

Creation of get_module()

This function is special to all dynamic loadable modules. Take a look at the creation via the ZEND_GET_MODULE macro first:

#if COMPILE_DL_FIRSTMOD
     ZEND_GET_MODULE(firstmod)
#endif

The function implementation is surrounded by a conditional compilation statement. This is needed since the function get_module() is only required if your module is built as a dynamic extension. By specifying a definition of COMPILE_DL_FIRSTMOD in the compiler command (see above for a discussion of the compilation instructions required to build a dynamic extension), you can instruct your module whether you intend to build it as a dynamic extension or as a built-in module. If you want a built-in module, the implementation of get_module() is simply left out.

get_module() is called by Zend at load time of the module. You can think of it as being invoked by the dl() call in your script. Its purpose is to pass the module information block back to Zend in order to inform the engine about the module contents.

If you don't implement a get_module() function in your dynamic loadable module, Zend will compliment you with an error message when trying to access it.

Předcházející | Domů | Další
Declaration of the Zend Module Block | Nahoru | Implementation of All Exported Functions