Belgeye bir düğüm dahil eder

  • « DOMDocument::getElementsByTagNameNS
  • DOMDocument::load »
  • PHP Manual
  • DOMDocument
  • Belgeye bir düğüm dahil eder

DOMDocument::importNode

(PHP 5, PHP 7, PHP 8)

DOMDocument::importNode — Belgeye bir düğüm dahil eder

Açıklama

public DOMDocument::importNode(DOMNode $node, bool $deep = false): DOMNode|false

Dahil edilen düğümü belge ile ilişkilendirip düğümün bir kopyasını döndürür.

Bağımsız Değişkenler

node

Belgeye dahil edilecek düğüm.

deep

true belirtiliği takdirde node alt düğümleriyle birlikte belgeye dahil edilir.

Bilginize:

Düğümlerin özniteliklerini de kopyalamak için bu bağımsız değişkende true belirtmek gerekir.

Dönen Değerler

Düğüm kopyalanamazsa false, yoksa kopyalanan düğümü döndürür.

Hatalar/İstisnalar

Düğüm dahil edilemezse DOMException istisnası oluşur.

Örnekler

Örnek 1 - DOMDocument::importNode() örneği

Düğümlerin bir belgeden başka bir belgeye kopyalanması.

<?php

$orgdoc = new DOMDocument;
$orgdoc->loadXML("<root><eleman><çocuk>çocuk metin</çocuk></eleman></root>");

// Yeni belgeye dahil edilecek düğüm
$node = $orgdoc->getElementsByTagName("element")->item(0);

// Yeni belgeyi oluşturalım
$newdoc = new DOMDocument;
$newdoc->formatOutput = true;

// Biraz imlenim ekleyelim
$newdoc->loadXML("<belge><bireleman>elemanın içeriği</bireleman></belge>");

echo "Düğümler kopyalanmadan 'yeni belge':\n";
echo $newdoc->saveXML();

// Düğümü alt düğümleriyle birlikte belgeye dahil edelim
$node = $newdoc->importNode($node, true);
// ve "<belge>" düğümüne ekleyelim
$newdoc->documentElement->appendChild($node);

echo "\nDüğümler kopyalandıktan sonra 'yeni belge':\n";
echo $newdoc->saveXML();
?>

Yukarıdaki örneğin çıktısı:

Düğümler kopyalanmadan 'yeni belge':
<?xml version="1.0" encoding="utf-8"?>
<belge>
  <bireleman>elemanın içeriği</bireleman>
</belge>

Düğümler kopyalandıktan sonra 'yeni belge':
<?xml version="1.0" encoding="utf-8"?>
<belge>
  <bireleman>elemanın içeriği</bireleman>
  <eleman>
    <çocuk>çocuk metin</çocuk>
  </eleman>
</belge>

User Contributed Notes

rikdnua at mail dot ru 11-Sep-2013 01:54
The behavior of importNode($node, false) is different in PHP 5.2.9-2 and PHP 5.2.17.
The second option is explicitly set to false. In PHP 5.2.9-2 importNode() imports the elements WITHOUT attributes. In PHP 5.2.17 the elements imported ALONG with their attributes.
<?php
$xml="
<html>
<a href='yandex.com'>Yandex.com</a>
<a href='rik.dn.ua'>RiK.dn.ua</a>
</html>
";
$doc=new domDocument('1.0');
$doc->loadXML($xml);
$list=$doc->getElementsByTagName('a');
$doc1=new domDocument('1.0');
$doc1->formatOutput=true;
for($i=0; $i<$list->length; $i++) $doc1->appendChild($doc1->importNode($list->item($i), false));
$doc1->save('file.xml');
?>

file.xml PHP 5.2.9-2
<?xml version="1.0"?>
<a/>
<a/>

file.xml PHP 5.2.17
<?xml version="1.0"?>
<a href="yandex.com"/>
<a href="rik.dn.ua"/>
c dot 1 at smithies dot org 19-Oct-2009 06:40
Assume that $source and $dest are instances of DOMDocument. Assume that $sourcedoc contains an element with ID 'sourceID' and that $destdoc contains an element with ID 'destID'. Assume that we have already set up source and destination element variables thus:

<?php
 $src = $sourcedoc->getElementById('sourceID');
 $dst = $destdoc->getElementById('destID');
?>

Finally, assume that $sel has more than one child node.

In order to import the child elements of $src as children of $dst, you might do something like this:

<?php
$src = $dest->importNode($src, TRUE);

foreach ($src->childNodes as $el) $dst->appendChild($el);
?>

But this does not work. foreach gets confused, because (as noted below) appending an imported element to another existing element in the same document causes it to be removed from its current parent element.

Therefore, the following technique should be used:

<?php
foreach ($src->childNodes as $el) $dst->appendChild($destdoc->importNode($el, TRUE));
?>
p dot reisinger at gmail dot com 29-Dec-2008 03:43
When you use function/method below, php automaticaly inserts namespaces (if you have some). If you want to join xml files exactly, then you can just use placeholders and treat xml as a string.
<?php
function joinXMLStrings($file1, $file2)
{
    //remove xml declaration
    $file2 = trim(preg_replace('/<\?xml.*\?>/', '', $file2, 1));

    //insert file2 in the place of placeholder in the first file
    $file1 = trim(preg_replace('/<\?file2\s\?>/', $file2, $file1, 1));
}
?>

so function looks like this and you insert two xml files. First file has to have placeholder (where you insert file2). Placeholder in this case will be <?file2 ?>

!!!this is only for ilustration - test before you use it
p dot reisinger at gmail dot com 23-Dec-2008 07:32
method (can be used as a function as well) that joins two xml files. first argument is parent xml (the one to be inserted into), second child (the one to be inserted) and third is optional argument that specifies the parent's tag where to insert children xml. If not specified then children is inserted as the last element, just before end of the root
<?php
    protected function joinXML($parent, $child, $tag = null)
    {
        $DOMChild = new DOMDocument;
        $DOMChild->loadXML($child);
        $node = $DOMChild->documentElement;

        $DOMParent = new DOMDocument;
        $DOMParent->formatOutput = true;
        $DOMParent->loadXML($parent);

        $node = $DOMParent->importNode($node, true);

        if ($tag !== null) {
            $tag = $DOMParent->getElementsByTagName($tag)->item(0);
            $tag->appendChild($node);
        } else {
            $DOMParent->documentElement->appendChild($node);
        }

        return $DOMParent->saveXML();
    }
?>
mailme at sove dot nl 11-Jun-2008 05:29
DOMDocument->importNode with seconds argument false will leave attributes behind. To fix this:

$__DOM->importNode
   (
      $__INPUT->cloneNode(false), true
   );

$__DOM (DOMDocument) will import the $__INPUT node (DOMElement) INCLUDING attributes.
mark at 4inloop dot de 05-Apr-2007 05:51
When you left out the second argument or enter false, not only the child nodes are ommited. The attributes of the node are also cut off.
adjwilli 05-Oct-2006 01:08
Editing XML with PHP can be a pain in the Secretary of State Powell, so here's a script to replace an XML node with a user-provided one through the POST. It's usually a good idea to run the $_POST['xml'] through a validation check and clean it for other thing before running this.

Pretty much this script expects a user-provided node called $_POST['xml'] and the XPath of the node in the original document that you want to replace called $_POST['XPath']. It also loads the original XML document from $xml. The function nodeRunner begins with the root node of the document you're editting and the XPath for the root element (these are more to make recursion easy than anything else).

$doc = new DOMDocument();
$doc->loadXML($xml); // $xml expects an XML string

function nodeRunner ($node,$xpath) {
    global $doc;
    if ($xpath == $_POST['XPath']) {

        $xmlPost = new DOMDocument();
        $xmlPost->loadXML($_POST['xml']);

        $newNode = $doc->importNode($xmlPost->firstChild,true);

        $node->parentNode->replaceChild($newNode,$node);
    } else {

        $page = 1;
        $section = 1;

        if ($node->hasChildNodes()) {
            foreach ($node->childNodes as $nodling) {
                $nodeName = $nodling->nodeName;
                if ($nodeName == 'page' || $nodeName == 'section') {
                    nodeRunner ($nodling,$xpath."/".$nodeName."[".$$nodeName."]");
                    $$nodeName++;
                }
            }
        }
    }
}

nodeRunner ($doc->documentElement,"/root[1]"); // /root should be explicit name of the root  element of the XPath

$doc->saveXML();
stomas 19-Sep-2006 06:14
I think this should do the same:

<?
 // Import $b into $a's document
 function myimport($a, $b)
 {
   if ($a->ownerDocument->isSameNode($b->ownerDocument))
   {
    return $b->cloneNode(TRUE);
   }
   else
   {
    return $a->ownerDocument->importNode($b, TRUE);
   }
 }
 ?>
Colin 12-Sep-2006 09:11
As of PHP 5.1.6 with libxml 2.6.26 and DOM/XML API version 20031129, importNode() does nothing if attempting to import from the same document.  Meaning, if you do an $ret = importNode and then appendChild($ret) or insertBefore($ret, ...) then you will end up *moving* the node instead of ending up with a copy.

If you expect importNode to give you a copy of the source (in this case, a deep copy) then you must account for them being from the same document.  This function addresses this:

<?
// Import $b into $a's document
function myimport($a, $b)
{
  if ($a->ownerDocument->isSameNode($b->ownerDocument))
  {
    $temp = new DOMDocument();
    $ret = $temp->importNode($b, TRUE);
    return $a->ownerDocument->importNode($ret, TRUE);
  }
  else
  {
    return $a->ownerDocument->importNode($b, TRUE);
  }
}
?>

(Function was freshly coded for this note but I based it off another, working function of mine.)

This function checks if the documents are the same and uses a new document (guaranteed to be different this way) to force a copy into $temp and then force a copy back into $a->ownerDocument.

Obviously, no error checking has been done.
andy dot clark at dial dot pipex dot com 15-Aug-2006 08:20
One useful use of importNode is to copy one node onto another.

function CopyXMLNode($SourceNode,$DestNode)
 {
  if ($SourceNode->nodeName != '#text')
   {
     //Copy this node
    $node = $DestNode->ownerDocument->importNode($SourceNode, true);
    $node = $DestNode->appendChild($node);
    //Now copy the child nodes
    foreach ($SourceNode->childNodes AS $item)
     {
     $this->CopyXMLNode($item,$node);
     }
    }
  }
Fitopaldi 03-Aug-2005 11:29
importNode returns a copy of the node to import and associates it with the current document, but not import the node to the current DOMDocument. Use appendChild for import the copy of the node to current DOMDocument.

<?
 $domNode = $dom->importNode($aDomNode, true);
 $currentDomDocument->appendChild($domNode);
?>


XML belgeyi bir dosyadan yükler

  • « DOMDocument::importNode
  • DOMDocument::loadHTML »
  • PHP Manual
  • DOMDocument
  • XML belgeyi bir dosyadan yükler

DOMDocument::load

(PHP 5, PHP 7, PHP 8)

DOMDocument::load — XML belgeyi bir dosyadan yükler

Açıklama

public DOMDocument::load(string $dosya, int $seçenekler = 0): bool

XML belgeyi belirtilen dosyadan yükler.

Uyarı

Unix tarzı düz bölülü dosya yolları Windows sistemlerinde önemli bir başarım kaybına yol açarlar. Böyle durumlarda realpath() kullanımı önerilir.

Bağımsız Değişkenler

dosya

XML belgenin dosya yolu.

seçenekler

Bit seviyesinde VEYAlanmış olarak libxml sabitleri.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Hatalar/İstisnalar

dosya olarak boş bir dizge veya boş bir dosya aktarılırsa bir uyarı üretilir. Bu uyarıyı libxml üretmez ve libxml'in hata işlevleri ile elde edilemez.

Sürüm Bilgisi

Sürüm: | Açıklama
8.3.0 | Bu işlevin dönüş türü artık deneysel bool türünde.
8.0.0 | Bu işlevin duruk olarak çağrılması artık Error oluşturuyor. Evvelce E_DEPRECATED hatası verirdi.

Örnekler

Örnek 1 - Bir belge oluşturmak

<?php
$doc = new DOMDocument();
$doc->load('book.xml');
echo $doc->saveXML();
?>

Ayrıca Bakınız

  • DOMDocument::loadXML() - XML belgeyi bir dizgeden yükler
  • DOMDocument::save() - Dahili XML ağacını bir dizge olarak dosyaya yazar
  • DOMDocument::saveXML() - Dahili XML ağacını bir dizge olarak çıktılar

User Contributed Notes

Raf-sns 11-Nov-2023 06:19
Be carreful with the option "preserveWhiteSpace"

$dom = new DOMDocument;
// false -> this preserve white spaces
// true -> this will put all entries inline
$dom->preserveWhiteSpace = false;  // preserve white space !
sainthyoga2003 at gmail dot com 09-Feb-2012 03:37
in the default example:

<?php
$doc = new DOMDocument();
$doc->load('book.xml');
echo $doc->saveXML();
?>

you must enter the absolute path for book.xml due for get a false result in load function.
sainthyoga2003 at gmail dot com 25-Feb-2011 05:38
i've found the partial solution for xml:id warning,is explained at this address: https://fosswiki.liip.ch/display/BLOG/GetElementById+Pitfalls

there explains that:
The ID does have to be a valid NCName, which for example means, that the first letter can't be a number.

and in my xml:id i had a number. :D
sainthyoga2003 at gmail dot com 16-Feb-2011 09:31
adding an id for a child, when i use abstract mode i get the following warning:

[quote]Warning: DOMDocument::load() [domdocument.load]: xml:id : attribute value xx is not an NCName in /fake/path/to/xmlfile[/quote]
_ michael 01-Jun-2010 08:34
load() will handle non-ASCII characters depending on the details of the XML declaration, but in a somewhat surprising way. One would assume that the declarations '<?xml version="1.0" encoding="UTF-8"?>' and '<?xml version="1.0"?>' are treated in the same way because UTF-8 is the default encoding anyway. But not so.

* If there is an XML declaration defining the encoding *explicitly*, the non-ASCII characters remain unchanged.
* If the XML declaration does not define the encoding explicitly, or if the XML declaration is missing, non-ASCII characters are converted into numeric entities.

So the document

    <?xml version="1.0"?>
    <root><nonascii>ä</nonascii></root>

will be converted to

    <?xml version="1.0"?>
    <root><nonascii>&#xE4;</nonascii></root>

The same happens if there is no XML declaration at all. On the other hand, the document

    <?xml version="1.0" encoding="UTF-8"?>
    <root><nonascii>ä</nonascii></root>

will remain as it is.

This behaviour applies to loadXML() as well.
_ michael 19-Apr-2010 07:50
XHTML and entities: The solution proposed below by zachatwork at gmail dot com didn't work for me. I checked on a number of servers (both LAMPP and WAMPP) - on each of them, calling loadXML() with the LIBXML_DTDLOAD option triggered an external request for the DTD. And that's bad news.

If allow_url_fopen is turned off, the request for the DTD fails with a warning. If it is turned on, the request fails because these w3c URLs return a 503 Service Unavailable.

HTML entities still generate a warning in either case.

The best solution, as far as I can tell, is simply to ignore the warnings and suppress them using '@'. I can't recommend parsing XHTML with loadHTML() instead of loadXML() - yes, you get rid of the entity problem, but loadHTML() changes the source while parsing it (tries to 'fix' it even though there is nothing to fix).
zachatwork at gmail dot com 30-Jun-2009 11:28
You can easily avoid the warning about &nbsp; references by using the LIBXML_DTDLOAD option.

<?php

$html = <<<EOF
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
  </head>
  <body>
    <p>&nbsp;</p>
  </body>
</html>
EOF;

// This one works perfectly.
$dom = new DOMDocument();
$dom->loadXML($html, LIBXML_DTDLOAD);
print $dom->saveXML();

// This one produces a warning.
$dom = new DOMDocument();
$dom->loadXML($html);
print $dom->saveXML();

?>

See also: http://www.php.net/manual/en/libxml.constants.php

Note that libxml will detect that your DTD is locally available via /etc/xml/catalog. So there is no worry about this causing your DOM loads to make external network requests.
Jonas Due Vesterheden 09-Jun-2009 08:18
I had a problem with loading documents over HTTP. I would get errors looking like this:

Warning: DOMDocument::load(http://external/document.xml): failed to open stream: HTTP request failed! HTTP/1.1 500 Internal Server Error

The document would load fine in browsers and using wget. The problem is that DOMDocument::load() on my systems (both OS X and Linux) didn't send any User-Agent header which for some weird reason made Microsoft-IIS/6.0 respond with the 500 error.

The solution is found on http://php.net/manual/en/function.libxml-set-streams-context.php :

<?php
$opts = array(
    'http' => array(
        'user_agent' => 'PHP libxml agent',
    )
);

$context = stream_context_create($opts);
libxml_set_streams_context($context);

// request a file through HTTP
$doc = DOMDocument::load('http://www.example.com/file.xml');
?>
syntaxiko 04-Apr-2009 10:16
Function will not work if using XML DOM PECL module
darren at viamedia dot co dot za 05-Aug-2008 07:17
If you are loading xml with the intention of validating it against an internal dtd and you have experienced issues with the validation it could be related to missing LIBXML constants.

I found this post by "aidan at php dot net" in root level dom docs and thought it might be more useful here:
As of PHP 5.1, libxml options may be set using constants rather than the use of proprietary DomDocument properties.

DomDocument->resolveExternals is equivilant to setting
LIBXML_DTDLOAD
LIBXML_DTDATTR

DomDocument->validateOnParse is equivilant to setting
LIBXML_DTDLOAD
LIBXML_DTDVALID

PHP 5.1 users are encouraged to use the new constants.

Example:
<?php
$dom = new DOMDocument;
// Resolve externals
$dom->load($file, LIBXML_DTDLOAD|LIBXML_DTDATTR);
// OR
// Validate against DTD
$dom->load($file, LIBXML_DTDLOAD|LIBXML_DTDVALID);
$dom->validate();
?>
the_N_Channel 15-Jul-2008 04:53
NOTE, will not load successfully if there is a comment at the beginning of the file before the <?xml version="1.0" ?> declaration!
hh dot lohmann at yahoo dot de 30-Aug-2007 03:48
BadGuy´s note may be confusing since what he depicts is no special property of the relevant method. PHP works always in and on a local file system which means that if you want to use resources from other systems or - what is, indeed, BadGuy´s problem - need resources that have been dealt with by other programs or processes, you have to state and manage that explicitly in your code. PHP is just a quite normal program in that.

BadGuy´s solution is using the "http wrapper" to get output from another process (see "wrappers" in the PHP manual). Doing this, the appropriate syntax for http calls has to be respected.
admin at tijnema dot tijnema dot info 02-Jun-2007 04:39
In reply to BadGuy [at] BadGuy [dot] nl

When the news.php file is located on the same server, like you said in the first example then http://my.beautiful-website.com/xmlsource/news.php wouldn't work, but you should use http://localhost/xmlsource/news.php or http://127.0.0.1/xmlsource/news.php
BadGuy [at] BadGuy [dot] nl 18-Jan-2007 08:50
Note that this method uses the local file system before doing anything remote. The 'disadvantage' would be that if you would do the following:
<?php
$xml = new DOMDocument;
$xml->load("xmlsource/news.php");
?>

This would not make the method read the actual output of the news.php file --presumably valid xml data--, but the file contents --obviously this would be php code. So this will return an error saying news.php is missing the xml declaration and maybe the xml start-tag

What would work is the following:

<?php
$xml = new DOMDocument;
$xml->load("http://my.beautiful-website.com/xmlsource/news.php");
?>

This will force a http request to be used to get this file instead of just locally reading it and the file just returning code
daevid at daevid dot com 18-Oct-2005 05:08
Suppose you wanted to dynamically load an array from an .XSD file. This method is your guy. just remember to use the actual xs: portion in xpaths and such.

All the other "load" methods will error out.

<?php
$attributes = array();
$xsdstring = "/htdocs/api/xsd/common.xsd";
$XSDDOC = new DOMDocument();
$XSDDOC->preserveWhiteSpace = false;
if ($XSDDOC->load($xsdstring))
{
    $xsdpath = new DOMXPath($XSDDOC);
    $attributeNodes =
              $xsdpath->
              query('//xs:simpleType[@name="attributeType"]')
              ->item(0);
    foreach ($attributeNodes->childNodes as $attr)
    {
        $attributes[ $attr->getAttribute('value') ] = $attr->getAttribute('name');
    }
    unset($xsdpath);
}
print_r($attributes);
?>


HTML belgeyi bir dizgeden yükler

  • « DOMDocument::load
  • DOMDocument::loadHTMLFile »
  • PHP Manual
  • DOMDocument
  • HTML belgeyi bir dizgeden yükler

DOMDocument::loadHTML

(PHP 5, PHP 7, PHP 8)

DOMDocument::loadHTML — HTML belgeyi bir dizgeden yükler

Açıklama

public DOMDocument::loadHTML(string $source, int $options = 0): bool

HTML belgeyi belirtilen dizgeden yükler. XML belge yüklemedeki gibi belgenin iyi biçemli olma gereği yoktur.

Uyarı

Bu işlev girdiyi HTML 4 ayrıştırıcı kullanarak ayrıştırır. Günümüz tarayıcılarının kullandığı HTML 5'in ayrıştırma kuralları farklıdır ve girdiye bağlı olarak farklı bir DOM yapısına neden olabilir. Bu nedenle bu işlevle HTML'yi arındırmak güvenli değildir.

Örnek olarak, bazı HTML öğeleri bir üst öğeyi örtülü olarak kapatacaktır. Ana öğelerin otomatik olarak kapatılmasına ilişkin kurallar HTML 4 ve HTML 5 arasında farklılık gösterir ve bu nedenle DOMDocument tarafından görülen sonuçtaki DOM yapısı, bir tarayıcının gördüğü DOM yapısından farklı olabilir ve muhtemelen bir saldırganın sonuçta ortaya çıkan HTML'yi bozmasına izin verebilir.

Bağımsız Değişkenler

source

HTML belgeyi içeren dizge.

options

libxml seçenek sabitlerinin bitsel VEYAsı.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Hatalar/İstisnalar

source olarak boş bir dizge aktarılırsa bir uyarı üretilir. Bu uyarıyı libxml üretmez ve libxml'in hata işlevleri ile elde edilemez.

Bozuk bir HTML sayfa başarıyla yüklense bile bu işlev hatalı bir imlenim ile karşılaştığında bir E_WARNING iletisi üretebilir. Böyle bir durumu atlatabilmek için libxml'in hata işleme işlevleri kullanılabilir.

Sürüm Bilgisi

Sürüm: | Açıklama
8.3.0 | Bu işlevin dönüş türü artık deneysel bool türünde.
8.0.0 | Bu işlevin duruk olarak çağrılması artık Error oluşturuyor. Evvelce E_DEPRECATED hatası verirdi.

Örnekler

Örnek 1 - Bir HTML belge oluşturmak

<?php
$doc = new DOMDocument();
$doc->loadHTML("<html><body>Test<br></body></html>");
echo $doc->saveHTML();
?>

Ayrıca Bakınız

  • DOMDocument::loadHTMLFile() - HTML belgeyi bir dosyadan yükler
  • DOMDocument::saveHTML() - Dahili belgeyi bir HTML dizgesi olarak çıktılar
  • DOMDocument::saveHTMLFile() - Dahili belgeyi bir HTML dizge olarak dosyaya yazar

User Contributed Notes

Anonymous 19-May-2022 04:05
loadHTML() & loadHTMLFile() may always generate warnings if the html include some tags such as "nav, section, footer, etc" adopted as of HTML5 (in PHP 8.1.6).

Try to run below.

<?php

$file_name = 'PHP Runtime Configuration - Manual.html'; // Download this file from "https://www.php.net/manual/en/session.configuration.php" in advance.

$doc = new DOMDocument();
$doc->loadHTMLFile($file_name); // if set "LIBXML_NOERROR" as 2nd arg, no error
echo $doc->saveHTML();

// Warning: DOMDocument::loadHTMLFile(): Tag nav invalid in PHP Runtime Configuration - Manual.html, line: 63 in D:\xampp\htdocs\test\xml(dom)\loadHTML\index.php on line 6

?>
obayed dot opu at gmail dot com 10-Dec-2021 09:58
To support HTML5 you have to disable xml error handling by add `LIBXML_NOERROR` as an option of loadHTML method.

Example:

<?php
$doc = new DOMDocument();
$doc->loadHTML("<html><body>Test<br><section>I'M UNSUPPORTED</section></body></html>", LIBXML_NOERROR);
echo $doc->saveHTML();
?>
deepakrajpal dot com at gmail dot com 20-Nov-2020 06:16
If we are loading html5 tags such as <section>, <svg> there is following error:

DOMDocument::loadHTML(): Tag section invalid in Entity

We can disable standard libxml errors (and enable user error handling) using libxml_use_internal_errors(true); before loadHTML();

This is quite useful in phpunit custom assertions as given in following example (if using phpunit test cases):

// Create a DOMDocument
$dom = new DOMDocument();

// fix html5/svg errors
libxml_use_internal_errors(true);

// Load html
$dom->loadHTML("<section></section>");
$htmlNodes = $dom->getElementsByTagName('section');

if ($htmlNodes->length == 0) {
    $this->assertFalse(TRUE);
} else {
    $this->assertTrue(TRUE);
}
divinity76+spam at gmail dot com 14-Sep-2020 09:25
if you want to get rid of all the "DOMText elements containing ONLY whitespace", maybe try

<?php

function loadHTML_noemptywhitespace(string $html, int $extra_flags = 0, int $exclude_flags = 0): DOMDocument
{
    $flags = LIBXML_HTML_NODEFDTD | LIBXML_NOBLANKS | LIBXML_NONET;
    $flags = ($flags | $extra_flags) & ~ $exclude_flags;

    $domd = new DOMDocument();
    $domd->preserveWhiteSpace = false;
    @$domd->loadHTML('<?xml encoding="UTF-8">' . $html, $flags);
    $removeAnnoyingWhitespaceTextNodes = function (\DOMNode $node) use (&$removeAnnoyingWhitespaceTextNodes): void {
        if ($node->hasChildNodes()) {
            // Warning: it's important to do it backwards; if you do it forwards, the index for DOMNodeList might become invalidated;
            // that's why i don't use foreach() - don't change it (unless you know what you're doing, ofc)
            for ($i = $node->childNodes->length - 1; $i >= 0; --$i) {
                $removeAnnoyingWhitespaceTextNodes($node->childNodes->item($i));
            }
        }
        if ($node->nodeType === XML_TEXT_NODE && !$node->hasChildNodes() && !$node->hasAttributes() && empty(trim($node->textContent))) {
            //echo "Removing annoying POS";
            // var_dump($node);
            $node->parentNode->removeChild($node);
        } //elseif ($node instanceof DOMText) { echo "not removed"; var_dump($node, $node->hasChildNodes(), $node->hasAttributes(), trim($node->textContent)); }
    };
    $removeAnnoyingWhitespaceTextNodes($domd);
    return $domd;
}
BychkovVV at mail dot ru 03-Apr-2020 08:30
If you are loading html content from any website, in "utf-8" encoding, when meta width content-type is not first child of HEAD, it would not be acknowledged by parser (encoding); So you can make this fix:
  function domLoadHTML($html)
           {$testDOM = new DOMDocument('1.0', 'UTF-8');
            $testDOM->loadHTML($html);
            $charset = NULL;
            $searchInElemnt = function(&$item) use (&$searchInElemnt, &$charset)
              {if($item->childNodes)
                 {foreach($item->childNodes as $childItem)
                    {switch($childItem->nodeName)
                       {case 'html':
                        case 'head':
                          $searchInElemnt($childItem);
                          break;
                        case 'meta':
                          $attributes = array();
                          foreach ($childItem->attributes as $attr)
                            {$attributes[mb_strtoupper($attr->localName)] = $attr->nodeValue;
                            }
                          if(array_key_exists('HTTP-EQUIV', $attributes) && (mb_strtoupper($attributes['HTTP-EQUIV']) == 'CONTENT-TYPE') && array_key_exists('CONTENT', $attributes) && preg_match('~[\s]*;[\s]*charset[\s]*=[\s]*([^\s]+)~', $attributes['CONTENT'], $matches))
                            {$charset = preg_replace('~[\s\']~', '', $matches[1]);
                            }
                       }
                    }
                 }
              };
            $searchInElemnt($testDOM);
            if(isset($charset))
              {$dom = new DOMDocument('1.0', $charset);
               $dom->loadHTML('<?xml encoding="'.$charset.'">'.$html);
               foreach ($dom->childNodes as $item)
               if($item->nodeType == XML_PI_NODE)
                 {$dom->removeChild($item);
                 }
               $dom->encoding = $charset;
              }
            else
              {$dom = $testDOM;
              }
            return $dom;
           };
kerim-yagmurcu at gmx dot de 24-Dec-2016 03:13
For those of you who want to get an external URL's class element, I have 2 usefull functions. In this example we get the '<h3 class="r">'
 elements back (search result headers) from google search:

1. Check the URL (if it is reachable, existing)
<?php
# URL Check
function url_check($url) {
    $headers = @get_headers($url);
    return is_array($headers) ? preg_match('/^HTTP\\/\\d+\\.\\d+\\s+2\\d\\d\\s+.*$/',$headers[0]) : false;
};
?>

2. Clean the element you want to get (remove all tags, tabs, new-lines etc.)
<?php
# Function to clean a string
function clean($text){
    $clean = html_entity_decode(trim(str_replace(';','-',preg_replace('/\s+/S', " ", strip_tags($text)))));// remove everything
    return $clean;
    echo '\n';// throw a new line
}
?>

After doing that, we can output the search result headers with following method:
<?php
$searchstring = 'djceejay';
$url = 'http://www.google.de/webhp#q='.$searchstring;
if(url_check($url)){
    $doc = new DomDocument;
    $doc->validateOnParse = true;
    $doc->loadHtml(file_get_contents($url));
    $output = clean($doc->getElementByClass('r')->textContent);
    echo $output . '<br>';
}else{
    echo 'URL not reachable!';// Throw message when URL not be called
}
?>
fr at felix-riesterer dot de 13-Feb-2016 01:43
Remember: If you use an HTML5 doctype and a meta element like so

<meta CHARSET=Windows-1254">

your HTML code will get interpreted as ISO-8859-something and non-ASCII chars will get converted into HTML entities. However the HTML4-like version will work (as has been pointed out 10 years ago by "bigtree at 29a"):

<meta http-equiv="Content-Type" content="text/html; CHARSET=Windows-1254">
finkenb2 at mail dot lib dot msu dot edu 05-Oct-2015 04:03
Warning:  This does not function well with HTML5 elements such as SVG.  Most of the advice on the Web is to turn off errors in order to have it work with HTML5.
cake at brothercake dot com 16-Dec-2012 05:57
Be aware that this function doesn't actually understand HTML -- it fixes tag-soup input using the general rules of SGML, so it creates well-formed markup, but has no idea which element contexts are allowed.

For example, with input like this where the first element isn't closed:

    <span>hello <div>world</div>

loadHTML will change it to this, which is well-formed but invalid:

    <span>hello <div>world</div></span>
Alex 10-Apr-2010 08:45
Beware of the "gotcha" (works as designed but not as expected): if you use loadHTML, you cannot validate the document. Validation is only for XML. Details here: http://bugs.php.net/bug.php?id=43771&edit=1
Shane Harter 04-Jan-2010 08:42
DOMDocument is very good at dealing with imperfect markup, but it throws warnings all over the place when it does.

This isn't well documented here. The solution to this is to implement a separate aparatus for dealing with just these errors.

Set libxml_use_internal_errors(true) before calling loadHTML. This will prevent errors from bubbling up to your default error handler. And you can then get at them (if you desire) using other libxml error functions.

You can find more info here http://www.php.net/manual/en/ref.libxml.php
mdmitry at gmail dot com 21-Dec-2009 09:02
You can also load HTML as UTF-8 using this simple hack:

<?php

$doc = new DOMDocument();
$doc->loadHTML('<?xml encoding="UTF-8">' . $html);

// dirty fix
foreach ($doc->childNodes as $item)
    if ($item->nodeType == XML_PI_NODE)
        $doc->removeChild($item); // remove hack
$doc->encoding = 'UTF-8'; // insert proper

?>
piopier 14-Jun-2009 08:29
Here is a function I wrote to capitalize the previous remarks about charset problems (UTF-8...) when using loadHTML and then DOM functions.
It adds the charset meta tag just after <head> to improve automatic encoding detection, converts any specific character to an html entity, thus PHP DOM functions/attributes will return correct values.

<?php
mb_detect_order("ASCII,UTF-8,ISO-8859-1,windows-1252,iso-8859-15");
function loadNprepare($url,$encod='') {
        $content        = file_get_contents($url);
        if (!empty($content)) {
                if (empty($encod))
                        $encod  = mb_detect_encoding($content);
                $headpos        = mb_strpos($content,'<head>');
                if (FALSE=== $headpos)
                        $headpos= mb_strpos($content,'<HEAD>');
                if (FALSE!== $headpos) {
                        $headpos+=6;
                        $content = mb_substr($content,0,$headpos) . '<meta http-equiv="Content-Type" content="text/html; charset='.$encod.'">' .mb_substr($content,$headpos);
                }
                $content=mb_convert_encoding($content, 'HTML-ENTITIES', $encod);
        }
        $dom = new DomDocument;
        $res = $dom->loadHTML($content);
        if (!$res) return FALSE;
        return $dom;
}
?>

NB: it uses mb_strpos/mb_substr instead of mb_ereg_replace because that seemed more efficient with huge html pages.
Errol 11-Feb-2009 08:05
It should be noted that when any text is provided within the body tag
outside of a containing element, the DOMDocument will encapsulate that
text into a paragraph tag (<p>).

For example:
<?php
$doc = new DOMDocument();
$doc->loadHTML("<html><body>Test<br><div>Text</div></body></html>");
echo $doc->saveHTML();
?>

will yield:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body>
<p>Test<br></p>
<div>Text</div>
</body></html>

while:
<?php
$doc = new DOMDocument();
$doc->loadHTML(
    "<html><body><i>Test</i><br><div>Text</div></body></html>");
echo $doc->saveHTML();
?>

will yield:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body>
<i>Test</i><br><div>Text</div>
</body></html>
jamesedwardcooke+php at gmail dot com 19-Oct-2008 11:37
Using loadHTML() automagically sets the doctype property of your DOMDocument instance(to the doctype in the html, or defaults to 4.0 Transitional). If you set the doctype with DOMImplementation it will be overridden.

I assumed it was possible to set it and then load html with the doctype I defined(in order to decide the doctype at runtime), and ran into a huge headache trying to find out where my doctype was going. Hopefully this helps someone else.
xuanbn at yahoo dot com 04-Oct-2007 01:38
If you use loadHTML() to process utf HTML string (eg in Vietnamese), you may experience result in garbage text, while some files were OK. Even your HTML already have meta charset  like

  <meta http-equiv="content-type" content="text/html; CHARSET=Windows-1254">

I have discovered that, to help loadHTML() process utf file correctly, the meta tag should come first, before any utf string appear. For example, this HTML file

<html>
 <head>
    <meta http-equiv="content-type" content="text/html; CHARSET=Windows-1254">
    <title> Vietnamese - Ti?ng Vi?t</title>
  </head>
<body></body>
</html>

will be OK with loadHTML() when <meta> tag appear <title> tag.

But the file below will not regcornize by loadHTML() because <title> tag contains utf string appear before <meta> tag.

<html>
 <head>
    <title> Vietnamese - Ti?ng Vi?t</title>
    <meta http-equiv="content-type" content="text/html; CHARSET=Windows-1254">
  </head>
<body></body>
</html>
hanhvansu at yahoo dot com 26-Apr-2007 08:50
When using loadHTML() to process UTF-8 pages, you may meet the problem that the output of dom functions are not like the input. For example, if you want to get "C?nh tranh", you will receive "Cáº¡nh tranh".  I suggest we use mb_convert_encoding before load UTF-8 page :
<?php
    $pageDom = new DomDocument();
    $searchPage = mb_convert_encoding($htmlUTF8Page, 'HTML-ENTITIES', "UTF-8");
    @$pageDom->loadHTML($searchPage);

?>
romain dot lalaut at laposte dot net 15-Feb-2007 08:31
Note that the elements of such document will have no namespace even with <html xmlns="http://www.w3.org/1999/xhtml">
bigtree at DONTSPAM dot 29a dot nl 26-Apr-2005 02:15
Pay attention when loading html that has a different charset than iso-8859-1. Since this method does not actively try to figure out what the html you are trying to load is encoded in (like most browsers do), you have to specify it in the html head. If, for instance, your html is in utf-8, make sure you have a meta tag in the html's head section:

<head>
<meta http-equiv="Content-Type" content="text/html; CHARSET=Windows-1254"/>
</head>

If you do not specify the charset like this, all high-ascii bytes will be html-encoded. It is not enough to set the dom document you are loading the html in to UTF-8.


HTML belgeyi bir dosyadan yükler

  • « DOMDocument::loadHTML
  • DOMDocument::loadXML »
  • PHP Manual
  • DOMDocument
  • HTML belgeyi bir dosyadan yükler

DOMDocument::loadHTMLFile

(PHP 5, PHP 7, PHP 8)

DOMDocument::loadHTMLFile — HTML belgeyi bir dosyadan yükler

Açıklama

public DOMDocument::loadHTMLFile(string $dosya, int $seçenekler = 0): bool

HTML belgeyi belirtilen dosyadan yükler. XML belge yüklemedeki gibi belgenin iyi biçemli olma gereği yoktur.

Uyarı

Bu işlev girdiyi HTML 4 ayrıştırıcı kullanarak ayrıştırır. Günümüz tarayıcılarının kullandığı HTML 5'in ayrıştırma kuralları farklıdır ve girdiye bağlı olarak farklı bir DOM yapısına neden olabilir. Bu nedenle bu işlevle HTML'yi arındırmak güvenli değildir.

Örnek olarak, bazı HTML öğeleri bir üst öğeyi örtülü olarak kapatacaktır. Ana öğelerin otomatik olarak kapatılmasına ilişkin kurallar HTML 4 ve HTML 5 arasında farklılık gösterir ve bu nedenle DOMDocument tarafından görülen sonuçtaki DOM yapısı, bir tarayıcının gördüğü DOM yapısından farklı olabilir ve muhtemelen bir saldırganın sonuçta ortaya çıkan HTML'yi bozmasına izin verebilir.

Bağımsız Değişkenler

dosya

HTML belgeyi içeren dosyanın yolu.

seçenekler

libxml seçenek sabitlerinin bitsel VEYAsı.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Hatalar/İstisnalar

dosya olarak boş bir dizge veya boş bir dosya aktarılırsa bir uyarı üretilir. Bu uyarıyı libxml üretmez ve libxml'in hata işlevleri ile elde edilemez.

Bozuk bir HTML sayfa başarıyla yüklense bile bu işlev hatalı bir imlenim ile karşılaştığında bir E_WARNING iletisi üretebilir. Böyle bir durumu atlatabilmek için libxml'in hata işleme işlevleri kullanılabilir.

Sürüm Bilgisi

Sürüm: | Açıklama
8.3.0 | Bu işlevin dönüş türü artık deneysel bool türünde.
8.0.0 | Bu işlevin duruk olarak çağrılması artık Error oluşturuyor. Evvelce E_DEPRECATED hatası verirdi.

Örnekler

Örnek 1 - Bir belge oluşturmak

<?php
$doc = new DOMDocument();
$doc->loadHTMLFile("filename.html");
echo $doc->saveHTML();
?>

Ayrıca Bakınız

  • DOMDocument::loadHTML() - HTML belgeyi bir dizgeden yükler
  • DOMDocument::saveHTML() - Dahili belgeyi bir HTML dizgesi olarak çıktılar
  • DOMDocument::saveHTMLFile() - Dahili belgeyi bir HTML dizge olarak dosyaya yazar

User Contributed Notes

qrworld.net 11-Nov-2014 04:37
In this post http://softontherocks.blogspot.com/2014/11/descargar-el-contenido-de-una-url_11.html I found a simple way to get the content of a URL with DOMDocument, loadHTMLFile and saveHTML().

function getURLContent($url){
    $doc = new DOMDocument;
    $doc->preserveWhiteSpace = FALSE;
    @$doc->loadHTMLFile($url);
    return $doc->saveHTML();
}
onemanbanddan at gmail dot com 04-Mar-2014 12:28
The options for surpressing errors and warnings will not work with this as they do for loadXML()
e.g.
<?php
$doc->loadHTMLFile($file, LIBXML_NOWARNING | LIBXML_NOERROR);
?>
will not work.
you must use:
<?php
libxml_use_internal_errors(true);
$doc->loadHTMLFile($file);
?>
and handle the exceptions as neccesarry.
Mark Omohundro, ajamyajax dot com 28-Nov-2008 06:32
<?php
// try this html listing example for all nodes / includes a few getElementsByTagName options:

$file = $DOCUMENT_ROOT. "test.html";
$doc = new DOMDocument();
$doc->loadHTMLFile($file);

// example 1:
$elements = $doc->getElementsByTagName('*');
// example 2:
$elements = $doc->getElementsByTagName('html');
// example 3:
//$elements = $doc->getElementsByTagName('body');
// example 4:
//$elements = $doc->getElementsByTagName('table');
// example 5:
//$elements = $doc->getElementsByTagName('div');

if (!is_null($elements)) {
  foreach ($elements as $element) {
    echo "<br/>". $element->nodeName. ": ";

    $nodes = $element->childNodes;
    foreach ($nodes as $node) {
      echo $node->nodeValue. "\n";
    }
  }
}
?>
gzech at SPAMFILTER dot eso dot org 21-Feb-2007 02:09
If you want to suppress output warnings from loadHTMLFile($url), put an @ sign in front. This even works in:
<?php
$load = @$dom->loadHTMLFile($url);
?>
andy at carobert dot com 25-May-2005 01:24
This puts the HTML into a DOM object which can be parsed by individual tags, attributes, etc..  Here is an example of getting all the 'href' attributes and corresponding node values out of the 'a' tag. Very cool....

<?php
$myhtml = <<<EOF
<html>
<head>
<title>My Page</title>
</head>
<body>
<p><a href="/mypage1">Hello World!</a></p>
<p><a href="/mypage2">Another Hello World!</a></p>
</body>
</html>
EOF;

$doc = new DOMDocument();
$doc->loadHTML($myhtml);

$tags = $doc->getElementsByTagName('a');

foreach ($tags as $tag) {
       echo $tag->getAttribute('href').' | '.$tag->nodeValue."\n";
}
?>

This should output:

/mypage1 | Hello World!
/mypage2 | Another Hello World!
bens at effortlessis dot com 08-Apr-2005 05:11
Note that this function doesn't parse the individual tags WITHIN the html file - it's all loaded as a "black box", and you end up with an XML widget that comprises nothing but the complete chunk of HTML.

I was hoping it would function as a sort of HTML-validator/parser, but that doesn't seem to be the case.


XML belgeyi bir dizgeden yükler

  • « DOMDocument::loadHTMLFile
  • DOMDocument::normalizeDocument »
  • PHP Manual
  • DOMDocument
  • XML belgeyi bir dizgeden yükler

DOMDocument::loadXML

(PHP 5, PHP 7, PHP 8)

DOMDocument::loadXML — XML belgeyi bir dizgeden yükler

Açıklama

public DOMDocument::loadXML(string $dizge, int $seçenekler = 0): bool

XML belgeyi bir dizgeden yükler.

Bağımsız Değişkenler

dizge

XML belgeyi içeren dizge.

seçenekler

Bit seviyesinde VEYAlanmış olarak libxml sabitleri.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Hatalar/İstisnalar

dizge olarak boş bir dizge aktarılırsa bir uyarı üretilir. Bu uyarıyı libxml üretmez ve libxml'in hata işlevleri ile elde edilemez.

Sürüm Bilgisi

Sürüm: | Açıklama
8.3.0 | Bu işlevin dönüş türü artık deneysel bool türünde.
8.0.0 | Bu işlevin duruk olarak çağrılması artık Error oluşturuyor. Evvelce E_DEPRECATED hatası verirdi.

Örnekler

Örnek 1 - Bir belge oluşturmak

<?php
$doc = new DOMDocument();
$doc->loadXML('<root><node/></root>');
echo $doc->saveXML();
?>

Ayrıca Bakınız

  • DOMDocument::load() - XML belgeyi bir dosyadan yükler
  • DOMDocument::save() - Dahili XML ağacını bir dizge olarak dosyaya yazar
  • DOMDocument::saveXML() - Dahili XML ağacını bir dizge olarak çıktılar

User Contributed Notes

Adrian Wiik 13-Nov-2019 09:02
A call to loadXML() will overwrite the XML declaration previously created in the constructor of DOMDocument. This can cause encoding problems if there is no XML declaration in the loaded XML and you don't have control over the source (e.g. if the XML is coming from a webservice). To fix this, set encoding AFTER loading the XML using the 'encoding' class property of DOMDocument. Example:

Bad situation:

test.xml:
<test>
    <hello>hi</hello>
    <field>ø</field>
</test>

test.php:
$xmlDoc = new DOMDocument("1.0", "utf-8"); // Parameters here are overwritten anyway when using loadXML(), and are not really relevant
$testXML = file_get_contents("test.xml");
$xmlDoc->loadXML($testXML);
// Print the contents to a file or in a log function to get the output, using $xmlDoc->saveXML()

Output:
<?xml version="1.0"?>
<test>
    <hello>hi</hello>
    <field>&#xF8;</field>
</test>

Good situation:

test.xml:
<test>
    <hello>hi</hello>
    <field>ø</field>
</test>

test.php:
$xmlDoc = new DOMDocument("1.0", "utf-8"); // Parameters here are overwritten anyway when using loadXML(), and are not really relevant
$testXML = file_get_contents("test.xml");
$xmlDoc->loadXML($testXML);
$xmlDoc->encoding = "utf-8";
// Print the contents to a file or in a log function to get the output, using $xmlDoc->saveXML()

Output:
<?xml version="1.0" encoding="utf-8"?>
<test>
    <hello>hi</hello>
    <field>ø</field>
</test>
Gustavo L. Fabro 14-Nov-2013 04:41
Always remember that with the default parameters this function doesn't handle well large files, i.e. if a text node is longer than 10Mb it can raise an exception stating:

DOMDocument::loadXML(): internal error Extra content at the end of the document in Entity

even though the XML is fine.

The cause is a definition in parserInternals.h of lixml:
#define XML_MAX_TEXT_LENGTH 10000000

To allow the function to process larger files, pass the LIBXML_PARSEHUGE as an option and it will work just fine:

$domDocument->loadXML($xml, LIBXML_PARSEHUGE);
szalma dot laszlo at zengo dot eu 27-Oct-2009 08:14
Loading from a string works fine without the <?xml version="1.0" encoding="utf-8"?> header, but in this case the xmlEncoding won't be set, and this makes the utf-8 characters (international, and special characters) to be encoded as hexa entities when saved with saveXML()!
remacg 26-Feb-2009 07:33
Instead of doing this:

<?php
$str = <<<XML
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE root [
<!ENTITY nbsp "&#160;">
]>
<div>This&nbsp;is a non-breaking space.</div>
XML;

$dd2 = new DOMDocument();
$dd2->loadXML($str);

echo $dd2->saveXML();
?>

simply use:

loadHTML() rather than loadXML().
olalonde at NOSPAM dot gmail dot com 21-Mar-2008 05:00
For some reason, when you set DOMDocument's property 'recover' to true, using '@' to mask errors thrown by loadXml() won't work.

Here's my workaround:

function maskErrors() {}
set_error_handler('maskErrors');
$dom->loadXml($xml);
restore_error_handler();

You could also simply do this: error_reporting(0); and then set back error_reporting to its original state.
Stuart Grimshaw 26-Jun-2007 01:57
Possible values for the options parameter can be found here:

http://us3.php.net/manual/en/ref.libxml.php#libxml.constants
Marc Liyanage 18-Jun-2007 07:08
The documentation states that loadXML can be called statically, but this is misleading. This feature seems to be a special case hack and its use seems to be discouraged according to http://bugs.php.net/bug.php?id=41398.

Calling the method statically will fail with an error if the code runs with E_STRICT error reporting enabled.

The documentation should be changed to make it clear that a static call is against recommended practice and won't work with E_STRICT.
jazzslider at hotmail dot com 30-Apr-2007 01:14
When using loadXML() to parse a string that contains entity references (e.g., &nbsp;), be sure that those entity references are properly declared through the use of a DOCTYPE declaration; otherwise, loadXML() will not be able to interpret the string.

Example:
<?php
$str = <<<XML
<?xml version="1.0" encoding="iso-8859-1"?>
<div>This&nbsp;is a non-breaking space.</div>
XML;

$dd1 = new DOMDocument();
$dd1->loadXML($str);

echo $dd1->saveXML();
?>

Given the above code, PHP will issue a Warning about the entity 'nbsp' not being properly declared.  Also, the call to saveXML() will return nothing but a trimmed-down version of the original processing instruction...everything else is gone, and all because of the undeclared entity.

Instead, explicitly declare the entity first:
<?php
$str = <<<XML
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE root [
<!ENTITY nbsp "&#160;">
]>
<div>This&nbsp;is a non-breaking space.</div>
XML;

$dd2 = new DOMDocument();
$dd2->loadXML($str);

echo $dd2->saveXML();
?>

Since the 'nbsp' entity is defined in the DOCTYPE, PHP no longer issues that Warning; the string is now well-formed, and loadXML() understands it perfectly.

You can also use references to external DTDs in the same way (e.g., <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">), which is particularly important if you need to do this for many different documents with many different possible entities.

Also, as a sidenote...entity references created by createEntityReference() do not need this kind of explicit declaration.
shaoyu73 at gmail dot com 15-Mar-2007 08:53
earth at anonymous dot com,

preserveWhiteSpace property needs to be set to false for formatOutput to work properly, for some reason.

$dom = new DOMDocument;
$dom->preserveWhiteSpace = false;
$dom->loadXML($xmlStr);
...
$element->appendChild(...);
...
$dom->formatOutput = true;
$xmlStr = $dom->saveXML();
echo $xmlStr;

This would format the output nicely.
Gavin Sinai gsinai at gmx dot net 30-Aug-2006 07:34
loadXml reports an error instead of throwing an exception when the xml is not well formed. This is annoying if you are trying to to loadXml() in a try...catch statement. Apparently its a feature, not a bug, because this conforms to a spefication.

If you want to catch an exception instead of generating a report, you could do something like

<?php
function HandleXmlError($errno, $errstr, $errfile, $errline)
{
    if ($errno==E_WARNING && (substr_count($errstr,"DOMDocument::loadXML()")>0))
    {
        throw new DOMException($errstr);
    }
    else
        return false;
}

function XmlLoader($strXml)
{
    set_error_handler('HandleXmlError');
    $dom = new DOMDocument();
    $dom->loadXml($strXml);
    restore_error_handler();
    return $dom;
 }

?>

Returning false in function HandleXmlError() causes a fallback to the default error handler.
mp at webfactory dot de 08-Aug-2006 08:26
While loadXML() expects its input to have a leading XML processing instruction to deduce the encoding used, there's no such concept in (non-XML) HTML documents. Thus, the libxml library underlying the DOM functions peeks at the <META> tags to figure out the encoding used.

See http://xmlsoft.org/encoding.html.
earth at anonymous dot com 12-Apr-2006 02:28
Note that loadXML crops off beginning and trailing whitespace and linebreaks.

When using loadXML and appendChild to add a chunk of XML to an existing document, you may want to force a linebreak between the end of the XML chunk and the next line (usually a close tag) in the output file:

$childDocument = new DOMDocument;
$childDocument>preserveWhiteSpace = true;
$childDocument->loadXML(..XML-Chunk..);
$mNewNode = $mainDOcument->importNode($childDocument->documentElement, true);
$ParentNode->appendChild($mNewNode);
$ParentNode->appendChild($mainDocument->createTextNode("\\n  ");

Although it is said that DOM should not be used to make 'pretty' XML output, it is something I struggled with to get something that was readable for testing.  Another solution is to use the createDocumentFragment()->appendXML(..XML-Chunk..) instead, which seems not to trim off linebreaks like DOMDocument->loadXML() does.


Belgeyi normalleştirir

  • « DOMDocument::loadXML
  • DOMDocument::prepend »
  • PHP Manual
  • DOMDocument
  • Belgeyi normalleştirir

DOMDocument::normalizeDocument

(PHP 5, PHP 7, PHP 8)

DOMDocument::normalizeDocument — Belgeyi normalleştirir

Açıklama

public DOMDocument::normalizeDocument(): void

Bu yöntem, belgeyi önce kaydedip sonra yüklemişsiniz gibi, belgeyi "normal" biçime getirir.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

Hiçbir değer dönmez.

Ayrıca Bakınız

  • » DOM Belirtimi
  • DOMNode::normalize() - Düğümü normalleştirir

User Contributed Notes

lingasamy dot sakthivel at gmail dot com 16-Apr-2015 05:44
You can use this in this way.

$doc = new DOMDocument('1.0', 'UTF-8');
$doc->loadHTML($content); // html content
$xpath = new DOMXPath($doc);
$doc->normalizeDocument();

Note that, you can use $doc->normalizeDocument(); at any point of time.


Prepends nodes before the first child node

  • « DOMDocument::normalizeDocument
  • DOMDocument::registerNodeClass »
  • PHP Manual
  • DOMDocument
  • Prepends nodes before the first child node

DOMDocument::prepend

(PHP 8)

DOMDocument::prepend — Prepends nodes before the first child node

Açıklama

public DOMDocument::prepend(DOMNode|string ...$nodes): void

Prepends one or many nodes to the list of children before the first child node.

Bağımsız Değişkenler

nodes

The nodes to prepend. Strings are automatically converted to text nodes.

Dönen Değerler

Hiçbir değer dönmez.

Hatalar/İstisnalar

DOM_HIERARCHY_REQUEST_ERR

Raised if this node is of a type that does not allow children of the type of one of the passed nodes, or if the node to put in is one of this node's ancestors or this node itself.

DOM_WRONG_DOCUMENT_ERR

Raised if one of the passed nodes was created from a different document than the one that created this node.

Sürüm Bilgisi

Sürüm: | Açıklama
8.3.0 | Calling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.

Örnekler

Örnek 1 DOMDocument::prepend() example

Adds nodes before the document root.

<?php
$doc = new DOMDocument;
$doc->loadXML("<world/>");

$doc->prepend($doc->createElement("hello"), "beautiful");

echo $doc->saveXML();
?>

Yukarıdaki örneğin çıktısı:

<?xml version="1.0"?>
<hello/>
beautiful
<world/>

Ayrıca Bakınız

  • DOMParentNode::prepend() - Prepends nodes before the first child node
  • DOMDocument::append() - Appends nodes after the last child node

User Contributed Notes

There are no user contributed notes for this page.


Temel düğüm türünü oluşturmakta kullanılacak türetilmiş sınıfı belirtmek için kullanılır

  • « DOMDocument::prepend
  • DOMDocument::relaxNGValidate »
  • PHP Manual
  • DOMDocument
  • Temel düğüm türünü oluşturmakta kullanılacak türetilmiş sınıfı belirtmek için kullanılır

DOMDocument::registerNodeClass

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DOMDocument::registerNodeClass — Temel düğüm türünü oluşturmakta kullanılacak türetilmiş sınıfı belirtmek için kullanılır

Açıklama

public DOMDocument::registerNodeClass(string $temelSınıf, ?string $türetilenSınıf): bool

Sonradan PHP DOM eklentisi tarafından kullanılmak üzere hazırladığınız kendi DOM sınıfınızı tanıtmanızı sağlar.

Bu yöntem DOM standardının bir parçası değildir.

Dikkat

Kayıtlı düğüm sınıflarının nesne kurucusu çağrılmaz.

Bağımsız Değişkenler

temelSınıf

Kendi sınıfınızı türetirken kullandığınız temel sınıfın ismi. Bu sınıfların listesi için bakınız: DOM.

türetilenSınıf

Türettiğiniz sınıfın ismi. null belirtilirse, temelSınıf'tan evvelce türetilen sınıf silinir.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Örnekler

Örnek 1 - Kolaylık olsun diye DOMElement sınıfına yeni bir yöntem eklemek

<?php

class myElement extends DOMElement {
function appendElement($name) {
return $this->appendChild(new myElement($name));
}
}

class myDocument extends DOMDocument {
function setRoot($name) {
return $this->appendChild(new myElement($name));
}
}

$doc = new myDocument();
$doc->registerNodeClass('DOMElement', 'myElement');

// Artık bir elemanı diğerine eklemek için bir yöntem yetecek!
$root = $doc->setRoot('root');
$child = $root->appendElement('child');
$child->setAttribute('foo', 'bar');

echo $doc->saveXML();

?>

Yukarıdaki örneğin çıktısı:

<?xml version="1.0"?>
<root><child foo="bar"/></root>

Örnek 2 - Elemanların özel bir sınıf olarak döndürülmesi

<?php
class myElement extends DOMElement {
public function __toString() {
return $this->nodeValue;
}
}

$doc = new DOMDocument;
$doc->loadXML("<root><element><child>text in child</child></element></root>");
$doc->registerNodeClass("DOMElement", "myElement");

$element = $doc->getElementsByTagName("child")->item(0);
var_dump(get_class($element));

// __toString yönteminden yararlanalım
echo $element;
?>

Yukarıdaki örneğin çıktısı:

string(9) "myElement"
text in child

Örnek 3 - Asıl belgeyi döndürmek

DOMDocument sınıfına özgü olarak, sınıf örneklenirken sınıfın ownerDocument özelliği örneklenen sınıfı gösterecektir. Ancak, bu sınıfa yapılan tüm başvurular kaldırılırsa, sınıf yok edilir ve yerine yeni bir DOMDocument sınıfı oluşturulur. Bu sebeple, DOMDocument sınıfı için DOMDocument::registerNodeClass() yönteminin kullanımına aslında gerek yoktur.

<?php
class MyDOMDocument extends DOMDocument {
}

class MyOtherDOMDocument extends DOMDocument {
}

// MyDOMDocument nesnesini XML belge olarak oluşturalım
$doc = new MyDOMDocument;
$doc->loadXML("<root><element><child>text in child</child></element></root>");

$child = $doc->getElementsByTagName("child")->item(0);

// Düğümün sahibi MyDOMDocument nesnesidir
var_dump(get_class($child->ownerDocument));
// MyDOMDocument yok edildi
unset($doc);
// Ve yeni bir DOMDocument örneği oluşturuldu
var_dump(get_class($child->ownerDocument));

// MyDOMDocument nesnesinden bir düğüm alalım
$newdoc = new MyOtherDOMDocument;
$child = $newdoc->importNode($child);

// Özel DOMDocument sınıfını kayda alalım
$newdoc->registerNodeClass("DOMDocument", "MyOtherDOMDocument");

var_dump(get_class($child->ownerDocument));
unset($doc);
// Yeni MyOtherDOMDocument oluşturuldu
var_dump(get_class($child->ownerDocument));
?>

Yukarıdaki örneğin çıktısı:

string(13) "MyDOMDocument"
string(11) "DOMDocument"
string(18) "MyOtherDOMDocument"
string(18) "MyOtherDOMDocument"

Örnek 4 - Ismarlama nesneler geçicidir

Dikkat

Kayıtlı düğüm sınıflarının nesneleri geçicidir, yani artık PHP kodundan gönderim alınmadığında yok edilirler ve tekrar alındığında yeniden oluşturulurlar. Bu, ısmarlama özellik değerlerinin yeniden oluşturulduktan sonra kaybedileceği anlamına gelir.

<?php
class MyDOMElement extends DOMElement
{
public $myProp = 'öntanımlı değer';
}

$doc = new DOMDocument();
$doc->registerNodeClass('DOMElement', 'MyDOMElement');

$node = $doc->createElement('a');
$node->myProp = 'değişen değer';
$doc->appendChild($node);

echo $doc->childNodes[0]->myProp, PHP_EOL;
unset($node);
echo $doc->childNodes[0]->myProp, PHP_EOL;
?>

Yukarıdaki örneğin çıktısı:

değişen değer
öntanımlı değer

User Contributed Notes

crh3675 at gmail dot com 25-Sep-2009 08:23
Creating innerHTML and outerHTML

<?php

class DOMHTMLElement extends DOMElement
{
    function __construct() { parent::__construct();}

    public function innerHTML()
    {
        $doc = new DOMDocument();
      foreach ($this->childNodes as $child){
          $doc->appendChild($doc->importNode($child, true));
        }
        $content = $doc->saveHTML();
        return $content;
    }

    public function outerHTML()
    {
        $doc = new DOMDocument();
        $doc->appendChild($doc->importNode($this, true));
        $content = $doc->saveHTML();
        return $content;
    }
}

$dom = DOMDocument::loadHTMLFile($file);
$dom->registerNodeClass('DOMElement','DOMHTMLElement');

if($dom)
{
    $xpath = new DOMXpath($dom);
    $regions = $xpath->query("//*[contains(@class, 'editable')]");
    $content = '';

    foreach($regions as $region){
        $content .= $region->outerHTML();
    }

    return $content;

}else{
    throw new Exception('Cannot parse HTML.  Please verify the syntax is correct.');
}
?>
arnold at adaniels dot nl 22-Jul-2009 03:10
Note than save and saveXML are not affected by __toString().


Belgeyi belirtilen RNG dosyasıyla doğrular

  • « DOMDocument::registerNodeClass
  • DOMDocument::relaxNGValidateSource »
  • PHP Manual
  • DOMDocument
  • Belgeyi belirtilen RNG dosyasıyla doğrular

DOMDocument::relaxNGValidate

(PHP 5, PHP 7, PHP 8)

DOMDocument::relaxNGValidate — Belgeyi belirtilen RNG dosyasıyla doğrular

Açıklama

public DOMDocument::relaxNGValidate(string $dosya): bool

Belirtilen RNG şemasına göre belgeye » relaxNG doğrulaması uygular.

Bağımsız Değişkenler

dosya

RNG dosyasının yolu.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Ayrıca Bakınız

  • DOMDocument::relaxNGValidateSource() - Belgeyi belirtilen RNG dizgesiyle doğrular
  • DOMDocument::schemaValidate() - Belgeyi bir şema dosyasına göre doğrular
  • DOMDocument::schemaValidateSource() - Belgeyi bir şema dizgesine göre doğrular
  • DOMDocument::validate() - Belgeyi DTD'sine göre doğrular

User Contributed Notes

scarywound at gmail dot com 17-Oct-2012 11:39
Keep in mind that this method can't handle schemas in compact syntax!


Belgeyi belirtilen RNG dizgesiyle doğrular

  • « DOMDocument::relaxNGValidate
  • DOMDocument::replaceChildren »
  • PHP Manual
  • DOMDocument
  • Belgeyi belirtilen RNG dizgesiyle doğrular

DOMDocument::relaxNGValidateSource

(PHP 5, PHP 7, PHP 8)

DOMDocument::relaxNGValidateSource — Belgeyi belirtilen RNG dizgesiyle doğrular

Açıklama

public DOMDocument::relaxNGValidateSource(string $rng): bool

Belirtilen RNG şemasına göre belgeye » relaxNG doğrulaması uygular.

Bağımsız Değişkenler

rng

RNG şemasını içeren dizge.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Ayrıca Bakınız

  • DOMDocument::relaxNGValidate() - Belgeyi belirtilen RNG dosyasıyla doğrular
  • DOMDocument::schemaValidate() - Belgeyi bir şema dosyasına göre doğrular
  • DOMDocument::schemaValidateSource() - Belgeyi bir şema dizgesine göre doğrular
  • DOMDocument::validate() - Belgeyi DTD'sine göre doğrular

User Contributed Notes

There are no user contributed notes for this page.


Replace children in document

  • « DOMDocument::relaxNGValidateSource
  • DOMDocument::save »
  • PHP Manual
  • DOMDocument
  • Replace children in document

DOMDocument::replaceChildren

(PHP 8 >= 8.3.0)

DOMDocument::replaceChildren — Replace children in document

Açıklama

public DOMDocument::replaceChildren(DOMNode|string ...$nodes): void

Replaces the children in the document with new nodes.

Bağımsız Değişkenler

nodes

The nodes replacing the children. Strings are automatically converted to text nodes.

Dönen Değerler

Hiçbir değer dönmez.

Hatalar/İstisnalar

DOM_HIERARCHY_REQUEST_ERR

Raised if this node is of a type that does not allow children of the type of one of the passed nodes, or if the node to put in is one of this node's ancestors or this node itself.

DOM_WRONG_DOCUMENT_ERR

Raised if one of the passed nodes was created from a different document than the one that created this node.

Sürüm Bilgisi

Sürüm: | Açıklama
8.3.0 | Calling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.

Örnekler

Örnek 1 DOMDocument::replaceChildren() example

Replaces the children with new nodes.

<?php
$doc = new DOMDocument;
$doc->loadXML("<container><hello/></container>");

$doc->replaceWith("beautiful", $doc->createElement("world"));

echo $doc->saveXML();
?>

Yukarıdaki örneğin çıktısı:

<?xml version="1.0"?>
beautiful
<world/>

Ayrıca Bakınız

  • DOMParentNode::replaceChildren() - Replace children in node
  • DOMDocument::append() - Appends nodes after the last child node
  • DOMDocument::prepend() - Prepends nodes before the first child node

User Contributed Notes

There are no user contributed notes for this page.


Dahili XML ağacını bir dizge olarak dosyaya yazar

  • « DOMDocument::replaceChildren
  • DOMDocument::saveHTML »
  • PHP Manual
  • DOMDocument
  • Dahili XML ağacını bir dizge olarak dosyaya yazar

DOMDocument::save

(PHP 5, PHP 7, PHP 8)

DOMDocument::save — Dahili XML ağacını bir dizge olarak dosyaya yazar

Açıklama

public DOMDocument::save(string $dosya, int $seçenekler = 0): int|false

Belgeyi DOM gösteriminden oluşturur. Bu yöntem genellikle, aşağıdaki örnekte olduğu gibi sıfırdan bir belge oluşturulduktan sonra çağrılır.

Bağımsız Değişkenler

dosya

XML belgenin kaydedileceği dosyanın yolu.

seçenekler

Ek seçenekler. Şimdilik sadece LIBXML_NOEMPTYTAG desteklenmektedir.

Dönen Değerler

Bir hata oluşmuşsa false yoksa yazılan bayt sayısı döner.

Örnekler

Örnek 1 - Bir DOM ağacının bir dosyaya kaydedilmesi

<?php

$doc = new DOMDocument('1.0');
// Çıktı göze hoş görünsün
$doc->formatOutput = true;

$root = $doc->createElement('book');
$root = $doc->appendChild($root);

$title = $doc->createElement('title');
$title = $root->appendChild($title);

$text = $doc->createTextNode('This is the title');
$text = $title->appendChild($text);

echo $doc->save("/tmp/test.xml") . ' bayt yazıldı'; // 72 bayt yazıldı

?>

Ayrıca Bakınız

  • DOMDocument::saveXML() - Dahili XML ağacını bir dizge olarak çıktılar
  • DOMDocument::load() - XML belgeyi bir dosyadan yükler
  • DOMDocument::loadXML() - XML belgeyi bir dizgeden yükler

User Contributed Notes

dubois-holvoet dot patrick at neuf dot fr 25-Feb-2016 08:13
I just intend to bring my little contribution to the use of DOMDocument::save() function along with PHP serialize() function.

Sometimes you could have to serialize a PHP object before you put it into a XML structure (or other..). And then I suppose you could have to save this XML structure in a file. Of course, you will further need to read this file and unserialize it before to use its content.

The problem appears when there are some properties described as Protected in the object to be serialized.

As it's written in the PHP documentation, serialize function add for those protected properties an asterisk before the name of the property along with a NULL character on each side of the asterisk.
In this case, the DOMDocument::save function will stop the save operation just before the first NULL character met in the string to be saved, because PHP consider it as a potential risk.
So, after that, the unserialize operation of the file become impossible.

To solve that, here is a first solution to apply :

For the serialize , before the DOMDocument::save() ::
$data_serial = explode("\x00\x2A\x00", serialize($object));  //take off the 'NULL * NULL' string
$data_serial = implode("\x5C\x30\x2A\x5C\x30", $data_serial);    //and replace with '\0*\0' string

Before the unserialize :
$data_serial = explode("\x5C\x30\x2A\x5C\x30", $serialized_object);    // take off the '\0*\0' string
$serial_object = implode("\x00\x2A\x00", $data_serial);      // and replace with 'NULL * NULL' string as included by the previous serialize

And a second solution :

For the serialize, before the DOMDocument::save() :
$serialized_object = addslashes(serialize($object)) ;

Before re-using the object in your application :
$object = unserialize(stripslashes($serialized_object)) ;

Hope this will help some.
ludvig at ergopedia dot no 31-Oct-2014 10:21
When creating a DOMDocument from scratch and saving it, the encoding will be utf-8, although it's declared as iso-8859-1.

When loading an XML-file declared and saved as iso-8859-1, php will keep the correct encoding when it's saved after changes are made.

Php converts files declared as iso-8859-1 to utf-8 internally. To add text containing special characters, the text must be encoded as utf-8. When the document is saved, special characters are converted to iso-8859-1.

To save an xml created from scratch, use fopen/fwrite and utf8_decode:

   $doc = new DOMDocument('1.0', 'iso-8859-1');

//Add som nodes and text with apropriate methods

   $f = fopen('xmlfile.xml', 'w+');
   fwrite($f, utf8_decode($doc->saveXML()));
   fclose($f);
john at johnreid dot it 06-Aug-2013 09:42
I had been hitting my head against the wall when I couldn't get an edited XML file to save due to file permissions, even though I knew that it was OK.

Eventually I realised that for some odd reason, when I went to save the XML file, it would try to write the file to the root directory.

As such, use realpath() to keep the complete system path to the XML file when you load it:

<?php
$myfile = 'myxml.xml';
$myfile = realpath($myfile);
$doc = new DOMDocument('1.0');
$doc->load($myfile);

// Let's just add a couple of elements for good measure
$root = $doc->documentElement;

$title = $doc->createElement('title');
$title = $root->appendChild($title);

$text = $doc->createTextNode('This is a title');
$text = $title->appendChild($text);

$doc->save($myfile);
?>
ss at littlerain dot com 01-Feb-2009 12:05
In addition to:
DOMDocument->formatOutput = true
DOMDocument->preserveWhiteSpace = false

...you also have to ensure you don't add text nodes as siblings of element nodes, or formatOutput won't work.
chenel324 at gmail dot com 19-Oct-2008 06:38
It took me forever to discover that
DOMDocument->formatOutput = true
will only have an effect on documents that are loaded from disk if one also sets
DOMDocument->preserveWhiteSpace = false ....

Hope this saves somebody a headache.
siegparr at NOSPAM dot web dot de 07-Jul-2006 08:00
The XML parser converts the text of an XML document into UTF-8, even if you have set the character encoding of the XML, for example as a second parameter of the DOMDocument constructor. After parsing the XML with the load() command all its texts have been converted to UTF-8.

In case you append text nodes with special characters (e. g. Umlaut) to your XML document you should therefore use utf8_encode() with your text to convert it into UTF-8 before you append the text to the document. Otherwise you will get an error message like "output conversion failed due to conv error" at the save() command. See example below:

<?php
// Text to insert into XML below
$txt = "a text with special characters like 'ä', 'ß', 'Ü' etc.";

// Create Instance of DOMDocument
$dom =  new DOMDocument;
// Load XML file
// Was created before with DOMDocument('1.0', 'iso-8859-1')
$dom = $dom->load("file.xml");
// Find the parent node
$parent = $dom->documentElement;
// Create Instance of DomXPath
$xpath = new DomXPath($dom);
// new node will be inserted before this node
$next = $xpath->query("//parentnode/childnode");
// Create the new element
$new_elem = $dom->createElement('new_elem');
// Insert the new element
$parent->insertBefore($new_elem, $next->item(0));
// DOMXML = utf-8! (will be converted to iso-8859-1 only at 'save()')
// prevents error message "output conversion failed due to conv error" at 'save()'
$txt = utf8_encode($txt);
// Create new text node with utf-8 encoded string
$nodetext = $dom->createTextNode("$txt");
// Append text node to new element
$nodetext = $new_elem->appendChild($nodetext);
// save
$dom->save("file.xml");
?>

Hope this helps someone.

siegparr


Dahili belgeyi bir HTML dizgesi olarak çıktılar

  • « DOMDocument::save
  • DOMDocument::saveHTMLFile »
  • PHP Manual
  • DOMDocument
  • Dahili belgeyi bir HTML dizgesi olarak çıktılar

DOMDocument::saveHTML

(PHP 5, PHP 7, PHP 8)

DOMDocument::saveHTML — Dahili belgeyi bir HTML dizgesi olarak çıktılar

Açıklama

public DOMDocument::saveHTML(?DOMNode $düğüm = null): string|false

HTML belgeyi DOM gösteriminden oluşturur. Bu yöntem genellikle, aşağıdaki örnekte olduğu gibi sıfırdan bir belge oluşturulduktan sonra çağrılır.

Bağımsız Değişkenler

düğüm

Belgenin bir bölümünü çıktılamak için istemlik bağımsız değişken.

Dönen Değerler

Bir hata oluşursa false, yoksa HTML belge döner.

Örnekler

Örnek 1 - Bir HTML ağacının dizge olarak çıktılanması

<?php

$doc = new DOMDocument('1.0');

$root = $doc->createElement('html');
$root = $doc->appendChild($root);

$head = $doc->createElement('head');
$head = $root->appendChild($head);

$title = $doc->createElement('title');
$title = $head->appendChild($title);

$text = $doc->createTextNode('This is the title');
$text = $title->appendChild($text);

echo $doc->saveHTML();

?>

Ayrıca Bakınız

  • DOMDocument::saveHTMLFile() - Dahili belgeyi bir HTML dizge olarak dosyaya yazar
  • DOMDocument::loadHTML() - HTML belgeyi bir dizgeden yükler
  • DOMDocument::loadHTMLFile() - HTML belgeyi bir dosyadan yükler

User Contributed Notes

jeboy 28-Sep-2017 02:57
LIBXML_HTML_NOIMPLIED doesn't work on PHP 7.1.9 with libxml2-2.7.8
sasha @ goldnet dot ca 27-Jul-2017 04:21
When saving HTML fragment initiated with LIBXML_HTML_NOIMPLIED option, it will end up being "broken" as libxml requires root element. libxml will attempt to fix the fragment by adding closing tag at the end of string based on the first opened tag it encounters in the fragment.

For an example:

<h1>Foo</h1><p>bar</p>

will end up as:

<h1>Foo<p>bar</p></h1>

Easiest workaround is adding root tag yourself and stripping it later:

$html->loadHTML('<html>' . $content .'</html>', LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);

$content = str_replace(array('<html>','</html>') , '' , $html->saveHTML());
contact at cathexis dot de 31-Aug-2016 10:41
If you load HTML from a string ensure the charset is set.

<?php
...
$html_src = '<html><head><meta content="text/html; CHARSET=Windows-1254" http-equiv="Content-Type"></head><body>';
$html_src .= '...';
...
?>

Otherwise the charset will be ISO-8859-1!
tomas dot strejcek at ghn dot cz 20-Aug-2016 12:34
As of PHP 5.4 and Libxml 2.6, there is currently simpler approach:

when you load html as this

$html->loadHTML($content, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);

in the output, there will be no doctype, html or body tags
Anonymous 11-Dec-2015 03:38
To solve the script tag problem just add an empty text node to the script node and DOMDocument will render <script src="your.js"></script> nicely.
qrworld.net 11-Nov-2014 04:34
In this post http://softontherocks.blogspot.com/2014/11/descargar-el-contenido-de-una-url_11.html I found a simple way to get the content of a URL with DOMDocument, loadHTMLFile and saveHTML().

function getURLContent($url){
    $doc = new DOMDocument;
    $doc->preserveWhiteSpace = FALSE;
    @$doc->loadHTMLFile($url);
    return $doc->saveHTML();
}
Anonymous 09-Feb-2010 07:52
If you want a simpler way to get around the <script> tag problem try:

<?php

  $script = $doc->createElement ('script');\
  // Creating an empty text node forces <script></script>
  $script->appendChild ($doc->createTextNode (''));
  $head->appendChild ($script);

?>
Anonymous 12-May-2009 07:35
To avoid script tags from being output as <script />, you can use the DOMDocumentFragment class:

<?php

$doc = new DOMDocument();
$doc -> loadXML($xmlstring);
$fragment = $doc->createDocumentFragment();
/* Append the script element to the fragment using raw XML strings (will be preserved in their raw form) and if succesful proceed to insert it in the DOM tree */
if($fragment->appendXML("<script type='text/javascript' src='$source'></script>") {
  $xpath = new DOMXpath($doc);
  $resultlist = $xpath->query("//*[local-name() = 'html']/*[local-name() = 'head']"); /* namespace-safe method to find all head elements which are childs of the html element, should only return 1 match */
  foreach($resultlist as $headnode)  // insert the script tag
     $headnode->appendChild($fragment);
}
$doc->saveXML(); /* and our script tags will still be <script></script> */

?>
Anonymous 25-Apr-2008 08:15
<?php
function getDOMString($retNode) {
  if (!$retNode) return null;
  $retval = strtr($retNode-->ownerDocument->saveXML($retNode),
  array(
    '></area>' => ' />',
    '></base>' => ' />',
    '></basefont>' => ' />',
    '></br>' => ' />',
    '></col>' => ' />',
    '></frame>' => ' />',
    '></hr>' => ' />',
    '></img>' => ' />',
    '></input>' => ' />',
    '></isindex>' => ' />',
    '></link>' => ' />',
    '></meta>' => ' />',
    '></param>' => ' />',
    'default:' => '',
    // sometimes, you have to decode entities too...
    '&quot;' => '&#34;',
    '&amp;' =>  '&#38;',
    '&apos;' => '&#39;',
    '&lt;' =>   '&#60;',
    '&gt;' =>   '&#62;',
    '&nbsp;' => '&#160;',
    '&copy;' => '&#169;',
    '&laquo;' => '&#171;',
    '&reg;' =>   '&#174;',
    '&raquo;' => '&#187;',
    '&trade;' => '&#8482;'
  ));
  return $retval;
}
?>
archanglmr at yahoo dot com 27-Nov-2007 03:28
If created your DOMDocument object using loadHTML() (where the source is from another site) and want to pass your changes back to the browser you should make sure the HTTP Content-Type header matches your meta content-type tags value because modern browsers seem to ignore the meta tag and trust just the HTTP header. For example if you're reading an ISO-8859-1 document and your web server is claiming UTF-8 you need to correct it using the header() function.

<?php
header('Content-Type: text/html; charset=iso-8859-1');
?>
xoplqox 20-Nov-2007 11:07
XHTML:

If the output is XHTML use the function saveXML().

Output example for saveHTML:

<select name="pet" size="3" multiple>
    <option selected>mouse</option>
    <option>bird</option>
    <option>cat</option>
</select>

XHTML conform output using saveXML:

<select name="pet" size="3" multiple="multiple">
    <option selected="selected">mouse</option>
    <option>bird</option>
    <option>cat</option>
</select>
tyson at clugg dot net 21-Apr-2005 05:44
<?php
// Using DOM to fix sloppy HTML.
// An example by Tyson Clugg <tyson@clugg.net>
//
// vim: syntax=php expandtab tabstop=2

function tidyHTML($buffer)
{
  // load our document into a DOM object
  $dom = @DOMDocument::loadHTML($buffer);
  // we want nice output
  $dom->formatOutput = true;
  return($dom->saveHTML());
}

// start output buffering, using our nice
// callback funtion to format the output.
ob_start("tidyHTML");

?>
<html>
<p>It's like comparing apples to oranges.
</html>
<?php

// this will be called implicitly, but we'll
// call it manually to illustrate the point.
ob_end_flush();

?>

The above code takes out sloppy HTML:
 <html>
 <p>It's like comparing apples to oranges.
 </html>

And cleans it up to the following:
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
 <html><body><p>It's like comparing apples to oranges.
 </p></body></html>


Dahili belgeyi bir HTML dizge olarak dosyaya yazar

  • « DOMDocument::saveHTML
  • DOMDocument::saveXML »
  • PHP Manual
  • DOMDocument
  • Dahili belgeyi bir HTML dizge olarak dosyaya yazar

DOMDocument::saveHTMLFile

(PHP 5, PHP 7, PHP 8)

DOMDocument::saveHTMLFile — Dahili belgeyi bir HTML dizge olarak dosyaya yazar

Açıklama

public DOMDocument::saveHTMLFile(string $dosya): int|false

HTML belgeyi DOM gösteriminden oluşturur. Bu yöntem genellikle, aşağıdaki örnekte olduğu gibi sıfırdan bir belge oluşturulduktan sonra çağrılır.

Bağımsız Değişkenler

dosya

HTML belgenin kaydedileceği dosyanın yolu.

Dönen Değerler

Bir hata oluşmuşsa false yoksa yazılan bayt sayısı döner.

Örnekler

Örnek 1 - Bir HTML ağacının bir dosyaya kaydedilmesi

<?php

$doc = new DOMDocument('1.0');
// Çıktı göze hoş görünsün
$doc->formatOutput = true;

$root = $doc->createElement('html');
$root = $doc->appendChild($root);

$head = $doc->createElement('head');
$head = $root->appendChild($head);

$title = $doc->createElement('title');
$title = $head->appendChild($title);

$text = $doc->createTextNode('This is the title');
$text = $title->appendChild($text);

echo $doc->saveHTMLFile("/tmp/test.html") . ' bayt yazıldı';
// Çıktısı: 129 bayt yazıldı

?>

Ayrıca Bakınız

  • DOMDocument::saveHTML() - Dahili belgeyi bir HTML dizgesi olarak çıktılar
  • DOMDocument::loadHTML() - HTML belgeyi bir dizgeden yükler
  • DOMDocument::loadHTMLFile() - HTML belgeyi bir dosyadan yükler

User Contributed Notes

RiKdnUA at mail dot ru 27-Jul-2013 04:15
saveHTMLFile() always saves the file in UTF-8. Even if the DOMDocument->encoding explicitly prescribe different from UTF-8 encoding. All "non-Latin" characters will be converted to HTML-entities. Tested in PHP 5.2.9-2 and PHP 5.2.17. Example:

<?php
$document=new domDocument('1.0', 'WINDOWS-1251');
$document->loadHTML('<html><head><title>Russian language</title></head><body>??????? ????</body></html>');
$document->formatOutput=true;
$document->encoding='WINDOWS-1251';
echo "???????? ????. Recorded bytes: ".$document->saveHTMLFile('html.html');
?>

Method recorded file in UTF-8 encoding. The contents of the file html.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; CHARSET=Windows-1254">
<title>Russian language</title>
</head>
<body>?óññêèé ÿçûê</body>
</html>
naebeth at hotmail dot NOSPAM dot com 24-Sep-2012 10:03
Not mentioned in the documentation is the fact that using DOMDocument::saveHTMLFile() will automatically overwrite the contents if an existing file is used - with no notice, warning or error thrown.

Make sure you check the filename before using this function so that you don't accidentally overwrite important files.

Example:
<?php

$file = fopen('test.html', 'w');
fwrite($file, 'this is some text');
fclose($file);

$doc = new DOMDocument();
$doc->formatOutput = true;
$doc->loadHTML('<html><head><title>Test</title></head><body></body></html>');
$doc->saveHTMLFile('test.html');

// test.html
/*
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; CHARSET=Windows-1254">
<title>Test</title>
</head>
<body></body>
</html>
*/

?>

If you're dynamically generating a series of pages using DOMDocument objects, make sure you are also dynamically generating the file or directory names using something that can't easily be confused for an existing file/folder, or check if the desired path already exists before saving so that you don't accidentally delete previous files.
deep42thouSPAMght42 at y_a_h_o_o dot com 14-Jan-2011 03:46
I foolishly assumed that this function was equivalent to
<?php
file_put_contents($filename, $document->saveHTML());
?>
but there are differences in the generated HTML:
<?php
$doc = new DOMDocument();
$doc->loadHTML(
    '<html><head><title>Test</title></head><body></body></html>'
);
$doc->encoding = 'iso-8859-1';

echo $doc->saveHTML();
#<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
#<html>
#<head><title>Test</title></head>
#<body></body>
#</html>

$doc->saveHTMLFile('output.html');
#<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
#<html><head><meta http-equiv="Content-Type" content="text/html; CHARSET=Windows-1254"><title>Test</title></head><body></body></html>

?>
Note that saveHTMLFile() adds a UTF-8 meta tag despite the ISO-8859-1 document encoding.


Dahili XML ağacını bir dizge olarak çıktılar

  • « DOMDocument::saveHTMLFile
  • DOMDocument::schemaValidate »
  • PHP Manual
  • DOMDocument
  • Dahili XML ağacını bir dizge olarak çıktılar

DOMDocument::saveXML

(PHP 5, PHP 7, PHP 8)

DOMDocument::saveXML — Dahili XML ağacını bir dizge olarak çıktılar

Açıklama

public DOMDocument::saveXML(?DOMNode $düğüm = null, int $seçenekler = 0): string|false

Belgeyi DOM gösteriminden oluşturur. Bu yöntem genellikle, aşağıdaki örnekte olduğu gibi sıfırdan bir belge oluşturulduktan sonra çağrılır.

Bağımsız Değişkenler

düğüm

XML belgenin tamamını değil de sadece bir düğümünü (XML bildirimi olmaksızın) çıktılamak için kullanılır.

seçenekler

Ek seçenekler. LIBXML_NOEMPTYTAG ve LIBXML_NOXMLDECL desteklenmektedir. PHP 8.3.0 öncesinde yalnızca LIBXML_NOEMPTYTAG seçeneği destekleniyordu.

Dönen Değerler

Bir hata oluşursa false, yoksa XML belge döner.

Hatalar/İstisnalar

DOM_WRONG_DOCUMENT_ERR

düğüm başka bir belgeye aitse bu hata oluşur.

Sürüm Bilgisi

Sürüm: | Açıklama
8.3.0 | Artık LIBXML_NOXMLDECL seçeneği de destekleniyor.

Örnekler

Örnek 1 - Bir DOM ağacının dizge olarak çıktılanması

<?php

$doc = new DOMDocument('1.0');
// Çıktı göze hoş görünsün
$doc->formatOutput = true;

$root = $doc->createElement('book');
$root = $doc->appendChild($root);

$title = $doc->createElement('title');
$title = $root->appendChild($title);

$text = $doc->createTextNode('Başlık');
$text = $title->appendChild($text);

echo "Belgenin tamamı:\n";
echo $doc->saveXML() . "\n";

echo "Sadece başlığı:\n";
echo $doc->saveXML($title);

?>

Yukarıdaki örneğin çıktısı:

Belgenin tamamı:
<?xml version="1.0"?>
<book>
  <title>Başlık</title>
</book>

Sadece başlığı:
<title>Başlık</title>

Ayrıca Bakınız

  • DOMDocument::save() - Dahili XML ağacını bir dizge olarak dosyaya yazar
  • DOMDocument::load() - XML belgeyi bir dosyadan yükler
  • DOMDocument::loadXML() - XML belgeyi bir dizgeden yükler

User Contributed Notes

liumenglei0211 at 163 dot com 17-Jan-2019 07:50
How to display two tags when the node content is empty.

<?php
$dom     = new \DOMDocument('1.0');
$document = $dom->createElement('document');
$document = $dom->appendChild($document);
$head = $dom->createElement('title','this is title');
$content = $dom->createElement('content','');
$document->appendChild($head);
$document->appendChild($content);
echo $dom->saveXML();
?>

In XML, they are considered exactly the same thing, and any parser should recognize both forms.However, you can write it this way if you still need it

<?php
echo $dom->saveXML($dom->documentElement, LIBXML_NOEMPTYTAG);
?>

Example 1:

<?xml version="1.0"?>
<document>
    <title>this is title</title>
    <content/>
</document>

Example 2:
<document>
    <title>this is test</title>
    <content></content>
</document>
Frank 29-Mar-2017 06:40
I would like to create a DOM document Xml Guestbook ..can somebody help to me?

Username, Comments in form read/write the task.

Thanks if somebody save me :)
Alexander Fedulin 05-Mar-2014 08:29
As @fbernodi said earlier, there is a problem with saveXML of DOMNode when you have a number of defined namespaces. The simple solution for this:

<code>
   // $node is some node of some other document
   $temp_document = new DOMDocument('1.0', 'utf-8');
   $temp_document->appendChild($temp_document->importNode($node, true));
   echo $temp_document->saveXML();
</code>
fbernoldi at gmail dot com 01-Aug-2013 08:24
Hello,

I had an unexpected behavior in some parsing code, because of this saveXML method that is saving the tags without namespace specification. If you try to load into a DOMDocument a string saved from a DOMNode that has a referenced namespace but it the original document it was not defined in that element, you get a not well formed xml. In the example you can see the issue and a possible solution, the other solution may be add to the ChildElement node the namespace reference (<testNS:ChildElement testNS="http://example.org">), but in my scenario it was not needed.

<?php

//Test XML
$test_xml =
"<?xml version=\"1.0\"?>
<testNS:RootNode xmlns:testNS=\"http://example.org\">
    <testNS:ChildElement>
        <testNS:AnotherChildElement>I'm a Another Child node.</testNS:AnotherChildElement>
    </testNS:ChildElement>
</testNS:RootNode>";

//We define our Test DOMDocument
$domDoc = new DOMDocument("1.0");
$domDoc->loadXML($test_xml);

//We use xpath to search ChildElement:
$domXPath = new DOMXPath($domDoc);
$domXPath->registerNamespace("testNS", "http://example.org");
$DOMNodeList_ChildElement = $domXPath->query("//testNS:RootNode/testNS:ChildElement");
$ChildElement = $DOMNodeList_ChildElement->item(0);

echo "Not usefull xml to load in another document:\n\n";
echo $domDoc->saveXML($ChildElement);

/* Output here:
 *
 * Not usefull xml to load in another document:
 *
 *  <testNS:ChildElement>
 *        <testNS:AnotherChildElement>I'm a Another Child node.</testNS:AnotherChildElement>
 *    </testNS:ChildElement>
 *
 */

/**
 * Function to help us clone the element to another document.
 * @param DOMElement $node The node to clone.
 * @param DOMDocument $doc The document where we are going to reference the elements.
 * @return DOMElement The new cloned element without namespace.
 */
function cloneNode($node, $doc) {
    //Create new element with the original localName (w/o namespace)
    $nd = $doc->createElement($node->localName);

    //Clone attributes
    foreach($node->attributes as $value)
        $nd->setAttribute($value->localName, $value->value);

    //No more childs then we finish.
    if (!$node->childNodes)
        return $nd;
    //We have childs, add them
    foreach($node->childNodes as $child) {
        if ($child->nodeName=="#text") //Only needed to clone text nodes, i.e. text comments, spaces, tabs. etc.
            $nd->appendChild($doc->createTextNode($child->nodeValue));
        else
            $nd->appendChild(cloneNode($child, $doc)); //recursion to clone all children.
    }
    return $nd;
}

//New Document to reference the new node without namespaces
$domDoc2 = new DOMDocument("1.0");

//We clone this node taking out the namespace
$new_node = cloneNode($ChildElement, $domDoc2);

echo "\n\nWe can load this into a DOMDocument without problems:\n\n";
echo $domDoc2->saveXML($new_node);

/*
 * We can load this into a DOMDocument without problems:
 *
 *    <ChildElement>
 *        <AnotherChildElement>I'm a Another Child node.</AnotherChildElement>
 *    </ChildElement>
 */

?>
xianrenb at gmail dot com 15-Jul-2012 10:54
If you want to save xhtml (in a string), you may try the following method:
<?php
    $doc = new DOMDocument('1.0');

    // ...

    $xhtml = (string) $doc->saveXML($doc->doctype);
    $xhtml .= "\n";
    $xhtml .= (string) $doc->saveXML($doc->documentElement);
?>
samstah at gmail dot com 19-Mar-2010 03:56
We discovered using DOMDocument::saveHTML() that it converts to HTML 4.01 compatible markup; rather than XHTML. The simple answer is to use saveXML() instead, although this adds the XML declaration to the top.

To qjerry.com at gmail.com, thanks for the pointer below - but I think that the simplest way seems to be using:
<?php $domDocument->saveXML($domDocument->documentElement); ?>

Of course, if you're dealing with XHTML, this will strip any <!DOCTYPE> declarations in the document too.
qjerry.com at gmail.com 04-May-2009 04:24
The simpliest (and probably the fastest) way to strip an XML declaration (<?xml version="1.0" ... ?>) out of output document, is to output child nodes of DOMDocument separately:

<?php

$document = new DOMDocument();
$document->load('/some/file.xml');

// this will also output doctype and comments at top level
foreach($document->childNodes as $node)
    $result .= $document->saveXML($node)."\n";

echo $result;

?>

This might be userful when dealing with browser compatibility issues, for example, well known problem with valid XHTML in IE6.
vikramvmalhotra at hotmail dot com 27-Jan-2009 03:49
if you are storing multi-byte characters in XML, then saving the XML using saveXML() will create problems. It will spit out the characters converted in encoded format.

<?php
$str = domdoc->saveXML(); // gives "&x#1245;" some encoded data
?>

Instead do the following

<?php
$str = domdoc->saveXML(domdoc->documentElement); // gives "??????" correct multi-byte data
?>
shinsh at shinmugen dot net 23-May-2008 07:57
Be careful, this function has been changed in 5.2.6 version. Adding a required parameter which is not that required wasn't the most intelligent idea ever, especially for a function which is often used.

To fix your programs if you have an error, fill the first parameter like this:

$dom->saveXML($dom->documentElement);

Why didn't the devs simply implement this as optional parameter, fixing the default parameter as documentElement?
Kriogen 26-Dec-2007 12:57
Create before test.xml with:
<?xml version="1.0" encoding="utf-8"?>
<Photos>
</Photos>

and past after in your php-file:

<?php
$simp = simplexml_load_file('test.xml');
$node = $simp->addChild('home');
$node->addChild('mychild', 'insert text');
$s = simplexml_import_dom($simp);
$s->saveXML('test.xml');
?>

This code creating a child-nod in the root.
Owner http://www.mensfashion.ru
JITR 02-Aug-2007 05:10
Comment to `devin at SPAMISBAD dot tritarget dot com''s post:

Thanks for pointing out the pitfalls of `formatOutput' vs. `load*()'. This has certainly saved me from some possible surprises.

I think the seemingly strange behaviour can be explained. Warning: The following stuff is mostly based on deductions and experiments. Much less on studying the sources and specs (I'm not sure some of these would provide answer anyway, at least not easily).

As you point out, `preserveWhiteSpace' must be set before loading the DOM from the source string (I'm working with `loadXML()' but I believe the situation should be the same with `load()' you used). This looks logical, as this property seems to control the parsing and DOM creation process during which text nodes containing the whitespace are either included or dropped. This can be proven by dumping the DOM structure and comparing the results based on the value of `preserveWhiteSpace'. With `preserveWhiteSpace' set to `FALSE', no text nodes containing whitespace will be present in the returned DOM. When this property is `TRUE', these nodes will be present.

Note: When speaking about the whitespace in the previous paragraph, we're most certainly speaking about so called `whitespace in element content' or `element content whitespace', if I'm not mistaken. See also my comment in the notes of `DOMText->isWhitespaceInElementContent()' method.

As for the mysterious effect on the output of `saveXLM()', I think the explanation lies in the presence or absence of the above mentioned whitespace text nodes. This was also proven by experiments: After adding such a node into a DOM which contained none (the DOM was created using `loadXML()' with `preserveWhiteSpace' set to `FALSE'), the output formatting got affected in a such a way, the formatting got lost for the rest of the document after the added node. I think the presence of whitespace text nodes forces such rendering, that the content of these nodes is used to separate adjoining nodes thus disabling default formatting. Only when there are no such text nodes present, the ouput formatting takes effect (provided the `formatOutput' is set to `TRUE', of course).

Well, the thing I don't really understand is how you did get an output of a signle line with `formatOutput' set to `TRUE'. This has happened to me when no whitespace text nodes were present (ie. when loading the XML with `preserveWhiteSpace' set to `FALSE') *and* with `formatOutput' set to *`FALSE'* (with the opposite value of `formatOutput', the formatting should do it's work and you should not end up with just one line). But I haven't seen your source. Perhaps you had whitespace nodes containing no new-lines in your DOM?

As for the CAUTION about root element, I didn't see any problems with empty root element neither in shortened nor full form. What did you have in mind, when you said it `WORKS' or `DOES NOT WORK'?
Sander 25-Apr-2007 05:35
Note that for large DOM trees (tens of thousands of elements nested at least a few levels deep), setting formatOutput to true drives up memory usage to rather insane levels when you call saveXML(). (Tested with PHP 5.2.1) Pretty output is not worth that cost.
nevyn at NOSPAM dot email dot PLEASE dot it 27-Dec-2006 01:41
A little function to get the full xml contents of a Xml node.

function innerXml($node)
{
    $out = $node->ownerDocument->saveXML($node);
    $re = "{^<(\\w*)(?:\\s*\\w+=(?:\"[^\"]*\"|\'[^\']*\'))*\\s*>(.*)</\\1>$}";
    preg_match($re, $out, $mat);
    return $mat[2];
}
devin at SPAMISBAD dot tritarget dot com 14-Aug-2006 10:52
It took some searching to figure this one out. I didn't see much in the way of explaining this glitch in the manual thus far. (For PHP5 I believe)

formatOutput = true; appears to fail when the origin of the DOM came from a file via load(). EX:

<?php
    $dom = new DOMDocument();
    $dom->load ("test.xml");
    $dom->formatOutput = true;

    $new_tag = $dom->createElement ('testNode');
    $new_tag->appendChild (
        $dom->createElement ('test', 'this is a test'));
    $dom->documentElement->appendChild ($new_tag);

    printf ("<pre>%s</pre>", htmlentities ($dom->saveXML()));
?>

Will not indent the output and will display the modified nodes all in one long line. Makes for editing a config.xml a bit difficult when saving to a file.

By adding the preserveWhiteSpace = false; BEFORE the load() the formatOutput works as expected. EX:

<?php
    $dom = new DOMDocument();
    $dom->preserveWhiteSpace = false;
    $dom->load ("test.xml");
    $dom->formatOutput = true;

    $new_tag = $dom->createElement ('testNode');
    $new_tag->appendChild (
        $dom->createElement ('test', 'this is a test'));
    $dom->documentElement->appendChild ($new_tag);

    printf ("<pre>%s</pre>", htmlentities ($dom->saveXML()));
?>

CAUTION: If your loaded xml file (test.xml) has an empty root node that is not shortened or has no children this will NOT work.

Example:

DOES NOT WORK:
<?xml version="1.0"?>
<root>
</root>

WORKS:
<?xml version="1.0"?>
<root/>

WORKS:
<?xml version="1.0"?>
<root>
  <!-- comment -->
</root>

WORKS:
<?xml version="1.0"?>
<root>
  <child/>
</root>
26-Mar-2006 04:20
I used the function posted by "joe" but the following works to me for get the innerXML
<?php
$itemLeido = $XMLRespuesta->getElementsByTagName("articulos");
foreach($itemLeido as $node) {
    echo($node->ownerDocument->saveXML($node));
}
?>
mswiercz at mwerk dot com 10-Sep-2004 03:43
Quick tip to minimize memory when generating documents with DOM.

Rather than using
   $xmlStr = DOMDocument->saveXML();
   echo $xmlStr;

to dump a large DOM to the output buffer, use a PHP output stream, as in

   DOMDocument->save('php://output');

A lot of memory will be saved when generating large DOMs.
padys at tlen dot pl 05-Aug-2004 07:36
When you save whole document:
DOMDocument->saveXML() produces string in encoding defined in property DOMDocument->encoding.

When you save only one node:
DOMDocument->saveXML(DOMNode) produces always string in UTF-8.


Belgeyi bir şema dosyasına göre doğrular

  • « DOMDocument::saveXML
  • DOMDocument::schemaValidateSource »
  • PHP Manual
  • DOMDocument
  • Belgeyi bir şema dosyasına göre doğrular

DOMDocument::schemaValidate

(PHP 5, PHP 7, PHP 8)

DOMDocument::schemaValidate — Belgeyi bir şema dosyasına göre doğrular

Açıklama

public DOMDocument::schemaValidate(string $dosya, int $seçenekler = 0): bool

Belgeyi belirtilen şema dosyasına göre doğrular. Sadece XML Schema 1.0 desteklenir.

Bağımsız Değişkenler

dosya

Şema dosyasının yolu.

seçenekler

Libxml şema doğrulama seçeneklerinin bit maskesi. Şu an için desteklenen tek seçenek LIBXML_SCHEMA_CREATE'dir. Libxml 2.6.14'ten beri kullanılabilmektedir.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Ayrıca Bakınız

  • DOMDocument::schemaValidateSource() - Belgeyi bir şema dizgesine göre doğrular
  • DOMDocument::relaxNGValidate() - Belgeyi belirtilen RNG dosyasıyla doğrular
  • DOMDocument::relaxNGValidateSource() - Belgeyi belirtilen RNG dizgesiyle doğrular
  • DOMDocument::validate() - Belgeyi DTD'sine göre doğrular

User Contributed Notes

mmamsch at googlemail dot com 16-Sep-2015 10:01
A note for people trying to validate complex schemas with PHP.  It seems that libxml will not automatically try to import referenced schemas, but simply skip the validation if the schemas were not explicitly imported.

In our example we tried to validate an XML file against a schema with the namespace "xttp://automotive-his.de/200706/rif" that contains a reference to the namespace "xttp://automotive-his.de/200706/rif-xhtml":

  <xsd:complexType name="XHTML-CONTENT">
    <xsd:sequence>
      <xsd:any namespace="xttp://automotive-his.de/200706/rif-xhtml"/>
    </xsd:sequence>
  </xsd:complexType>

which basically says that an xhtml-content element can contain any element from the rif-xhtml namespace.

However since libxml does not know where to find the schema file, it will stop the validation if the elements from the referenced namespace, passing also document with invalid xhtml content as valid.

The solution was to create a combined schema, which contains import statements for all files matching the referenced schemas:

<xsd:schema xmlns:xs="xttp://www.w3.org/2001/XMLSchema">
<xs:import namespace="xttp://automotive-his.de/200706/rif-xhtml" schemaLocation="rif-xhtml.xsd"/>
<xs:import namespace="xttp://automotive-his.de/200706/rif" schemaLocation="rif.xsd"/>
<xs:import namespace="xttp://www.w3.org/XML/1998/namespace" schemaLocation="../xml.xsd"/>
</xsd:schema>

Note that the schemaLocation tells the validator, where to find the files for the corresponding namespaces. When validating the XML document against this combined schema, libxml validated correctly the content inside the XHTML-Content.

Hope this helps someone out there.
wkoehler at ce-gmbh dot com 11-Jan-2011 02:37
In older versions of PHP5 this function might cause error messages when dealing with namespaces. I had problems with PHP 5.2.14 which comes with libXML V2.6.16. After switching to PHP 5.3.5 with libXML V2.7.7 I no longer had problems. Took me only about 30 hrs to figure that one out.
NetPanther 27-Mar-2009 01:42
Initial situation:
- Debian Lenny
- Apache 2 with PHP 5.2.6
- libxml 2.6.32

Problem: While trying to validate a manually created (!) DOMDocument against an existing XML Schema, I ran into a warning like the one below. Validation fails, even though the document IS valid and the command line tool xmllint confirms this (even with libxml 2.6.32, so this must be a problem with DOM). The validation works fine with libxml 2.7.3.

Warning: DOMDocument::schemaValidate() [domdocument.schemavalidate]: Element 'YourRootElementName': No matching global declaration available for the validation root. in /var/www/YourFile.php on line X

Solution: As libxml 2.7.3 is not provided for Debian Lenny yet and this problem seems to be caused by DOM (s.o.), I currently use the following workaround on my machines. DOM obviously has some namespace problems with documents, that have been created manually (i.e. they were not loaded from a file).

So my workaround is saving the DOMDocument temporarily, re-loading it and then validating the temporary DOMDocument. Strangely enough the validation of the same document (= same content) now works. Sure, creating a temporary file is not a nice solution, but unless this bug is fixed, this workaround should do just fine.

<?php

// Works with libxml 2.7.3 and higher.
public function isValid()
{
  return $this->dom->schemaValidate('schema.xsd');
}

// Workaround for prior libxml versions, e.g. 2.6.32.
public function isValid()
{
  // Create temporary file and save manually created DOMDocument.
  $tempFile = time() . '-' . rand() . '-document.tmp';
  $this->dom->save($tempFile);

  // Create temporary DOMDocument and re-load content from file.
  $tempDom = new DOMDocument();
  $tempDom->load($tempFile);

  // Delete temporary file.
  if (is_file($tempFile))
  {
    unlink($tempFile);
  }

  // Validate temporary DOMDocument.
  return $tempDom->schemaValidate('schema.xsd');
}

?>
poletto at jeuxvideo dot com 13-Feb-2008 12:32
I had a tricky issue using this method, i thought it was bug but i realized i misundestood something about namespaces.
When you want to use a schema to describe an xml document, you basically put the default namespace to a personnal namespace (and you refer to this namespace in the targetNamespace attribute of your schema).

<?xml version="1.0" encoding="utf-8"?>
<root xmlns="http://my.uri.net">
  <elt>
    <x>blabla</x>
    <y>blabla</y>
  </elt>
</root>

That xmlns attribute specifies a "default namespace" and means that the root element and its children are in this namespace.
What i misunderstood is that, there's no way with the DOM api to specify a "default namespace" for each children of the root element.
Thus you may need to use createElementNS() and createAttributeNS() methods for each created element or attribute in the document specifying the URI of your namespace each time ("http://my.uri.net").

This only applies if you want to validate a document built with the API, not with a document loaded from an xml file or stream.
justin at redwiredesign dot com 08-Nov-2006 03:32
In his previous comment, Mike A wrote about validating documents using an XSD. However, you can validate without one. In my case, I needed to ensure that the content entered was just valid XML or not, and I couldn't find an XSD to support that. So I wrote this:

public static function validate($xml)
{
    libxml_use_internal_errors(true);

    $doc = new DOMDocument('1.0', 'utf-8');
    $doc->loadXML($xml);

    $errors = libxml_get_errors();
    if (empty($errors))
    {
        return true;
    }

    $error = $errors[0];
    if ($error->level < 3)
    {
        return true;
    }

    $lines = explode("\r", $xml);
    $line = $lines[($error->line)-1];

    $message = $error->message.' at line '.$error->line.':<br />'.htmlentities($line);

    return $message;
}

The catch here is that the function only checks for the first error is LIBXML_ERR_FATAL, which would break XSL/XML compilation.

In my experience, the errors are returned by libxml_get_errors in descending severity, so this may be an OK thing to do.
Mike A. 17-Feb-2006 12:03
For more detailed feedback from DOMDocument::schemaValidate, disable libxml errors and fetch error information yourself.  See http://php.net/manual/en/ref.libxml.php for more info.

example.xml
<?xml version="1.0"?>
<example>
    <child_string>This is an example.</child_string>
    <child_integer>Error condition.</child_integer>
</example>

example.xsd
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
    <xs:element name="example">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="child_string" type="xs:string"/>
                <xs:element name="child_integer" type="xs:integer"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

<?php

function libxml_display_error($error)
{
    $return = "<br/>\n";
    switch ($error->level) {
        case LIBXML_ERR_WARNING:
            $return .= "<b>Warning $error->code</b>: ";
            break;
        case LIBXML_ERR_ERROR:
            $return .= "<b>Error $error->code</b>: ";
            break;
        case LIBXML_ERR_FATAL:
            $return .= "<b>Fatal Error $error->code</b>: ";
            break;
    }
    $return .= trim($error->message);
    if ($error->file) {
        $return .=    " in <b>$error->file</b>";
    }
    $return .= " on line <b>$error->line</b>\n";

    return $return;
}

function libxml_display_errors() {
    $errors = libxml_get_errors();
    foreach ($errors as $error) {
        print libxml_display_error($error);
    }
    libxml_clear_errors();
}

// Enable user error handling
libxml_use_internal_errors(true);

$xml = new DOMDocument();
$xml->load('example.xml');

if (!$xml->schemaValidate('example.xsd')) {
    print '<b>DOMDocument::schemaValidate() Generated Errors!</b>';
    libxml_display_errors();
}

?>

Old error message:
Warning: DOMDocument::schemaValidate() [function.schemaValidate]: Element 'child_integer': 'Error condition.' is not a valid value of the atomic type 'xs:integer'. in example.php on line 40

New error message:
DOMDocument::schemaValidate() Generated Errors!
Error 1824: Element 'child_integer': 'Error condition.' is not a valid value of the atomic type 'xs:integer'. in example.xml on line 4


Belgeyi bir şema dizgesine göre doğrular

  • « DOMDocument::schemaValidate
  • DOMDocument::validate »
  • PHP Manual
  • DOMDocument
  • Belgeyi bir şema dizgesine göre doğrular

DOMDocument::schemaValidateSource

(PHP 5, PHP 7, PHP 8)

DOMDocument::schemaValidateSource — Belgeyi bir şema dizgesine göre doğrular

Açıklama

public DOMDocument::schemaValidateSource(string $şema, int $flags = 0): bool

Belgeyi belirtilen şema dizgesine göre doğrular.

Bağımsız Değişkenler

şema

Şemayı içeren dizge.

seçenekler

Libxml şema doğrulama seçeneklerinin bit maskesi. Şu an için desteklenen tek seçenek LIBXML_SCHEMA_CREATE'dir. Libxml 2.6.14'ten beri kullanılabilmektedir.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Ayrıca Bakınız

  • DOMDocument::schemaValidate() - Belgeyi bir şema dosyasına göre doğrular
  • DOMDocument::relaxNGValidate() - Belgeyi belirtilen RNG dosyasıyla doğrular
  • DOMDocument::relaxNGValidateSource() - Belgeyi belirtilen RNG dizgesiyle doğrular
  • DOMDocument::validate() - Belgeyi DTD'sine göre doğrular

User Contributed Notes

There are no user contributed notes for this page.


Belgeyi DTD'sine göre doğrular

  • « DOMDocument::schemaValidateSource
  • DOMDocument::xinclude »
  • PHP Manual
  • DOMDocument
  • Belgeyi DTD'sine göre doğrular

DOMDocument::validate

(PHP 5, PHP 7, PHP 8)

DOMDocument::validate — Belgeyi DTD'sine göre doğrular

Açıklama

public DOMDocument::validate(): bool

Belgeyi DTD'sine göre doğrular.

Bir DTD doğrulaması yapmak için DOMDocument sınıfının validateOnParse özelliği de kullanılabilir.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner. Belgeye ekli bir DTD yoksa bu yöntem false döndürür.

Örnekler

Örnek 1 - DTD'ye göre doğrulama örneği

<?php
$dom = new DOMDocument;
$dom->load('book.xml');
if ($dom->validate()) {
echo "Belge geçerli!\n";
}
?>

XML dosyayı yüklerken de doğrulatmak mümkündür:

<?php
$dom = new DOMDocument;
$dom->validateOnParse = true;
$dom->load('book.xml');
?>

Ayrıca Bakınız

  • DOMDocument::schemaValidate() - Belgeyi bir şema dosyasına göre doğrular
  • DOMDocument::schemaValidateSource() - Belgeyi bir şema dizgesine göre doğrular
  • DOMDocument::relaxNGValidate() - Belgeyi belirtilen RNG dosyasıyla doğrular
  • DOMDocument::relaxNGValidateSource() - Belgeyi belirtilen RNG dizgesiyle doğrular

User Contributed Notes

cabral dot brc at gmail dot com 08-Sep-2010 12:46
I was trying to validate my SVG file just to get the IDs with getElementById(),

<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<text id="text_titulo" x="150" y="20" font-family="Arial" font-size="15px" style="font-weight:bold;">Title</text>
<text id="text_subtitulo" x="200" y="35" font-family="Arial" font-size="10px">Sub Title</text>
<g transform="translate(0,50) scale(0.1)">
  <a id="a_AC" ...... >
    <polygon id="polygon_AC" ....... />
  </a>
</g>
</svg>

but when calling $dom->load(), it was getting the errors "failed to open stream" and "Validation failed: no DTD found !I/O warning : failed to load external entity"
so I created my own validation wrapper (I just want to find the IDs with getElementById() )

<?php
  $docSVG = new DOMDocument();
  $docSVG->load(realpath($filepath));
  setAllId($docSVG);

function setAllId($DOMNode){
  if($DOMNode->hasChildNodes()){
    foreach ($DOMNode->childNodes as $DOMElement) {
      if($DOMElement->hasAttributes()){
        $id=$DOMElement->getAttribute("id");
        if($id){
          $DOMElement->setIdAttribute("id",$id);
        }
      }
      setAllId($DOMElement);
    }
  }
}
?>
a dot schaffhirt at sedna-soft dot de 17-Sep-2008 02:22
When validating documents with this method there are two issues I don't like about it. First, it creates a bunch of warnings, which one would not expect, as the plot of calling this method is preventing any warnings that could occur when erroneously relying on the document's validity. Second, it only returns a boolean with no chance of getting additional details about the reasons for rendering invalid.

That's the reason for me to use a little wrapper, which I post here in case anyone finds it useful.

Please note that it only works with PHP5 or later.

<?php
    class MyDOMDocument {
        private $_delegate;
        private $_validationErrors;

        public function __construct (DOMDocument $pDocument) {
            $this->_delegate = $pDocument;
            $this->_validationErrors = array();
        }

        public function __call ($pMethodName, $pArgs) {
            if ($pMethodName == "validate") {
                $eh = set_error_handler(array($this, "onValidateError"));
                $rv = $this->_delegate->validate();
                if ($eh) {
                    set_error_handler($eh);
                }
                return $rv;
            }
            else {
                return call_user_func_array(array($this->_delegate, $pMethodName), $pArgs);
            }
        }
        public function __get ($pMemberName) {
            if ($pMemberName == "errors") {
                return $this->_validationErrors;
            }
            else {
                return $this->_delegate->$pMemberName;
            }
        }
        public function __set ($pMemberName, $pValue) {
            $this->_delegate->$pMemberName = $pValue;
        }
        public function onValidateError ($pNo, $pString, $pFile = null, $pLine = null, $pContext = null) {
            $this->_validationErrors[] = preg_replace("/^.+: */", "", $pString);
        }
    }
?>

<?php
    // $doc is a DOMDocument object
    $myDoc = new MyDOMDocument($doc); // copy constructor

    // do anything with $myDoc that you would with $doc

    $isValid = $myDoc->validate(); // won't create warnings
    if (!$isValid) {
        print_r($myDoc->errors); // the array all warnings are collected in
    }
?>

Maybe you need to change the the part
preg_replace("/^.+: */", "", $pString)
to something different depending on your system's error reporting settings (HTML or plain text), whatsoever

Best Regards,

Anja
darren at viamedia dot co dot za 05-Aug-2008 07:19
If you are loading xml with the intention of validating it against an internal dtd and you have experienced issues with the validation it could be related to missing LIBXML constants.

I found this post by "aidan at php dot net" in root level dom docs and thought it might be more useful here:
As of PHP 5.1, libxml options may be set using constants rather than the use of proprietary DomDocument properties.

DomDocument->resolveExternals is equivilant to setting
LIBXML_DTDLOAD
LIBXML_DTDATTR

DomDocument->validateOnParse is equivilant to setting
LIBXML_DTDLOAD
LIBXML_DTDVALID

PHP 5.1 users are encouraged to use the new constants.

Example:
<?php
$dom = new DOMDocument;
// Resolve externals
$dom->load($file, LIBXML_DTDLOAD|LIBXML_DTDATTR);
// OR
// Validate against DTD
$dom->load($file, LIBXML_DTDLOAD|LIBXML_DTDVALID);
$dom->validate();
?>


Bir DOMDocument nesnesindeki XInclude dosyalarını belgeye dahil eder

  • « DOMDocument::validate
  • DOMDocumentFragment »
  • PHP Manual
  • DOMDocument
  • Bir DOMDocument nesnesindeki XInclude dosyalarını belgeye dahil eder

DOMDocument::xinclude

(PHP 5, PHP 7, PHP 8)

DOMDocument::xinclude — Bir DOMDocument nesnesindeki XInclude dosyalarını belgeye dahil eder

Açıklama

public DOMDocument::xinclude(int $seçenekler = 0): int|false

Bir DOMDocument nesnesinde, » XIncludes mekanizması kullanılarak belgeye dahil edilen dosyaların içeriklerini yerlerine yerleştirir.

Bilginize:

libxml2'nin öğeleri otomatik olarak çözümlemesinden dolayı, eğer dahil edilen XML dosyanın kendine ekli bir DTD'si varsa bu yöntem beklenmedik sonuçlara yol açabilir.

Dikkat

Kayıtlı düğüm sınıflarının nesne kurucusu çağrılmaz.

Bağımsız Değişkenler

seçenekler

libxml seçenek sabitlerinin bitsel VEYAsı.

Dönen Değerler

Belgeye XIncludes ile dahil edilen dosyaların sayısı. İşlem başarısız olursa -1, dahil edilecek birşey yoksa false döner.

Örnekler

Örnek 1 - DOMDocument::xinclude() örneği

<?php

$xml = <<<EOD
<?xml version="1.0" ?>
<chapter xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Yabancı kitapları</title>
<para>
<xi:include href="kitap.xml">
<xi:fallback>
<error>xinclude: kitap.xml dosyasına rastlanmadı</error>
</xi:fallback>
</xi:include>
</para>
</chapter>
EOD;

$dom = new DOMDocument;

// çıktı göze hoş görünsün
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;

// yutarıdaki XML dizgeyi yükleyelim
$dom->loadXML($xml);

// dahil edilecek dosyaların içeriklerini alalım
$dom->xinclude();

echo $dom->saveXML();

?>

Yukarıdaki örnek şuna benzer bir çıktı üretir:

<?xml version="1.0"?>
<chapter xmlns:xi="http://www.w3.org/2001/XInclude">
  <title>Yabancı kitaplar</title>
  <para>
    <row xml:base="/home/didou/book.xml">
       <entry>The Grapes of Wrath</entry>
       <entry>John Steinbeck</entry>
       <entry>en</entry>
       <entry>0140186409</entry>
      </row>
    <row xml:base="/home/didou/book.xml">
       <entry>The Pearl</entry>
       <entry>John Steinbeck</entry>
       <entry>en</entry>
       <entry>014017737X</entry>
      </row>
    <row xml:base="/home/didou/book.xml">
       <entry>Samarcande</entry>
       <entry>Amine Maalouf</entry>
       <entry>fr</entry>
       <entry>2253051209</entry>
      </row>
  </para>
</chapter>

User Contributed Notes

nicolas_rainardNOSPAM at yahoo dot fr 12-Jul-2007 04:56
If you use the loadXML() method instead of the load() one (let's say, to process the XML string before loading and parsing it), you will have problems with xinclude(), because the parser will not know where to find the files to include.
Using chdir() before xinclude() will not help.

The solution is to set the documentURI property of the DOMDocument object accordingly to it's original filename, and everything will work fine !

<?php

$xml = file_get_contents($file);
$xml = do_something_with($xml);

$doc = new DOMDocument;
$doc->documentURI = $file;
$doc->loadXML($xml);
$doc->xinclude();

?>


DOMDocumentFragment sınıfı

(PHP 5, PHP 7, PHP 8)

Sınıf Sözdizimi

class DOMDocumentFragment extends DOMNode implements DOMParentNode {
/* Özellikler */
public readonly ?DOMElement $firstElementChild;
public readonly ?DOMElement $lastElementChild;
public readonly int $childElementCount;
/* Miras alınan özellikler */
public readonly ?string $nodeName;
public string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly DOMNodeList $childNodes;
public readonly ?DOMNode $firstChild;
public readonly ?DOMNode $lastChild;
public readonly ?DOMNode $previousSibling;
public readonly ?DOMNode $nextSibling;
public readonly ?DOMNamedNodeMap $attributes;
public readonly ?DOMDocument $ownerDocument;
public readonly ?string $namespaceURI;
public ?string $prefix;
public readonly ?string $localName;
public readonly ?string $baseURI;
public string $textContent;
/* Yöntemler */
public __construct()
public append(DOMNode|string ...$nodes): void
public appendXML(string $data): bool
public prepend(DOMNode|string ...$nodes): void
public replaceChildren(DOMNode|string ...$nodes): void
/* Miras alınan yöntemler */
public DOMNode::appendChild(DOMNode $yeni): DOMNode|false
public DOMNode::C14N(
bool $özel = false,
bool $aAçıklamalı = false,
?array $xpath = null,
?array $isim_alanları = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $torunlar_dahil = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(?array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $yeni, ?DOMNode $mevcut = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $uri): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $düğüm): bool
public DOMNode::isSupported(string $özellik, string $sürüm): bool
public DOMNode::lookupNamespaceURI(?string $önek): ?string
public DOMNode::lookupPrefix(string $uri): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $eski): DOMNode|false
public DOMNode::replaceChild(DOMNode $yeni, DOMNode $eski): DOMNode|false
}

Özellikler

childElementCount

Çocuk eleman sayısı.

firstElementChild

İlk çocuk eleman ya da null.

lastElementChild

Son çocuk eleman ya da null.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | The firstElementChild, lastElementChild, ve childElementCount özellikleri eklendi.
8.0.0 | DOMDocumentFragment artık DOMParentNode arayüzünü gerçekliyor.

İçindekiler

  • DOMDocumentFragment::append — Appends nodes after the last child node
  • DOMDocumentFragment::appendXML — Ham bir XML verisi ekler
  • DOMDocumentFragment::__construct — Constructs a DOMDocumentFragment object
  • DOMDocumentFragment::prepend — Prepends nodes before the first child node
  • DOMDocumentFragment::replaceChildren — Replace children in fragment

User Contributed Notes

peter at softcoded dot com 03-May-2017 03:31
DOMDocumentFragment makes it easy to add (or replace)
nodes. Individually creating nodes using DOM methods can
be tedious. Instead, do something like this:

/**
* Create fragment of colgroup
* @param DOMDocument $doc The DOMDocument
* @return DOMDocumentFragment
*/
function makeFragment($d){
  $chunk = <<<HTML
  <colgroup>
    <col class="c1"/>
    <col class="c2"/>
    <col class="c3"/>
    <col class="c4"/>
  </colgroup>
HTML;
  $fragment = $d->createDocumentFragment();
  $fragment->appendXML($chunk);
  return $fragment;
}
Ricki 29-Mar-2011 06:00
DOMDocumentFragment only appears useful if created from a parent DOMDocument eg.

1. $dom = new DOMDocument("1.0","UTF-8");
2. $docFrag = $dom->createDocumentFragment();
3. Now append items to $docFrag
4. Graft $docFrag contents back onto $dom at the desired location

Conversely taking this approach:
1. $dom = new DOMDocument("1.0","UTF-8");
2. $docFrag = new DOMDocumentFragment();
3. Now append items to $docFrag

...will fail on step 3 with a "read only" error as $docFrag is not created as a child of  DOMDocument.

I'm not sure of the reason for this: on the web people have cited security, and others have cited poor design however whatever the reason, it is really limiting when wanting to encapsulating generic independent DocumentFragments into classes for easy grafting to the desired tree. The only workarounds i have seen look expensive from a performance perspective and cumbersome from a coding perspective ie. create a  dummy $dom for temporary use.

(This is valid as of PHP 5.3) I've put this here as i've wasted a lot of time finding it out - I hope this saves others some heartache.

Using new DOMDocumentFramt
matthijs at stdin dot nl 29-Mar-2011 03:06
Note that DOMDocumentFragment is a bit special when it's added to another node. When that happens, not the fragment itself is added as a child, but all of the children of the fragment are moved over to the new parent node.

For example, consider this script:

<?php

/* Create a document and a fragment containing a single node */
$doc = new DOMDocument();
$fragment = $doc->createDocumentFragment();
$fragment->appendChild($doc->createElement('foo'));

/* Now, the foo node is a child of the fragment */
var_dump($fragment->firstChild);

/* After appending the fragment to another node, the children of the
 * fragment will have been transfered to that node (and the fragment is
 * not present in the children list!) */
$doc->appendChild($fragment);
/* So the fragment has no children anymore */
var_dump($fragment->firstChild);
/* But $doc has a single child, which is the foo element, not the
 * fragment */
var_dump($doc->childNodes->length);
var_dump($doc->firstChild);

?>

This produces the following output:

object(DOMElement)#3 (0) {
}
NULL
int(1)
object(DOMElement)#3 (0) {
}


Appends nodes after the last child node

  • « DOMDocumentFragment
  • DOMDocumentFragment::appendXML »
  • PHP Manual
  • DOMDocumentFragment
  • Appends nodes after the last child node

DOMDocumentFragment::append

(PHP 8)

DOMDocumentFragment::append — Appends nodes after the last child node

Açıklama

public DOMDocumentFragment::append(DOMNode|string ...$nodes): void

Appends one or many nodes to the list of children after the last child node.

Bağımsız Değişkenler

nodes

The nodes to append. Strings are automatically converted to text nodes.

Dönen Değerler

Hiçbir değer dönmez.

Hatalar/İstisnalar

DOM_HIERARCHY_REQUEST_ERR

Raised if this node is of a type that does not allow children of the type of one of the passed nodes, or if the node to put in is one of this node's ancestors or this node itself.

DOM_WRONG_DOCUMENT_ERR

Raised if one of the passed nodes was created from a different document than the one that created this node.

Sürüm Bilgisi

Sürüm: | Açıklama
8.3.0 | Calling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.

Örnekler

Örnek 1 DOMDocumentFragment::append() example

Appends nodes in the fragment.

<?php
$doc = new DOMDocument;
$fragment = $doc->createDocumentFragment();
$fragment->appendChild($doc->createElement("hello"));

$fragment->append("beautiful", $doc->createElement("world"));

echo $doc->saveXML($fragment);
?>

Yukarıdaki örneğin çıktısı:

<hello/>beautiful<world/>

Ayrıca Bakınız

  • DOMParentNode::append() - Appends nodes after the last child node
  • DOMDocumentFragment::prepend() - Prepends nodes before the first child node

User Contributed Notes

There are no user contributed notes for this page.


Ham bir XML verisi ekler

  • « DOMDocumentFragment::append
  • DOMDocumentFragment::__construct »
  • PHP Manual
  • DOMDocumentFragment
  • Ham bir XML verisi ekler

DOMDocumentFragment::appendXML

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

DOMDocumentFragment::appendXML — Ham bir XML verisi ekler

Açıklama

public DOMDocumentFragment::appendXML(string $data): bool

Bir DOMDocumentFragment nesnesine ham bir XML verisi ekler.

Bu yöntem DOM standardının bir parçası değildir. Bir DOMDocument nesnesine bir XML belge parçası eklemek için basit bir yaklaşım olarak gerçeklenmiştir.

Standardla tam uyum içinde olmak isterseniz, sahte bir kök elemana sahip geçici bir DOMDocument oluşturup XML verinizi ekleyeceğiniz kök elemanın çocuk düğümleriyle bir döngüye girmelisiniz.

Bağımsız Değişkenler

data

Eklenecek XML veri.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Örnekler

Örnek 1 - Belgeye XML veri eklemek

<?php
$doc = new DOMDocument();
$doc->loadXML("<root/>");
$f = $doc->createDocumentFragment();
$f->appendXML("<foo>text</foo><bar>text2</bar>");
$doc->documentElement->appendChild($f);
echo $doc->saveXML();
?>

Yukarıdaki örneğin çıktısı:

<?xml version="1.0"?>
<root><foo>text</foo><bar>text2</bar></root>

User Contributed Notes

Thanks to Christoph. 07-Jun-2022 01:50
Strings such as " ' & < > may need to be escaped in advance.
In that case, you can use htmlspecialchars().
lpetrov(AT)axisvista.com 20-Jul-2007 05:45
Here is (maybe) a better example:
/**
* Helper function for replacing $node (DOMNode)
* with an XML code (string)
*
* @var DOMNode $node
* @var string $xml
*/
public function replaceNodeXML(&$node,$xml) {
 $f = $this->dom->createDocumentFragment();
 $f->appendXML($xml);
 $node->parentNode->replaceChild($f,$node);
}

Copied from the "PHP5 Dom Based Template" article at:
http://blog.axisvista.com/?p=35


Constructs a DOMDocumentFragment object

  • « DOMDocumentFragment::appendXML
  • DOMDocumentFragment::prepend »
  • PHP Manual
  • DOMDocumentFragment
  • Constructs a DOMDocumentFragment object

DOMDocumentFragment::__construct

(PHP 5, PHP 7, PHP 8)

DOMDocumentFragment::__construct — Constructs a DOMDocumentFragment object

Açıklama

public DOMDocumentFragment::__construct()

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

User Contributed Notes

There are no user contributed notes for this page.


Prepends nodes before the first child node

  • « DOMDocumentFragment::__construct
  • DOMDocumentFragment::replaceChildren »
  • PHP Manual
  • DOMDocumentFragment
  • Prepends nodes before the first child node

DOMDocumentFragment::prepend

(PHP 8)

DOMDocumentFragment::prepend — Prepends nodes before the first child node

Açıklama

public DOMDocumentFragment::prepend(DOMNode|string ...$nodes): void

Prepends one or many nodes to the list of children before the first child node.

Bağımsız Değişkenler

nodes

The nodes to prepend. Strings are automatically converted to text nodes.

Dönen Değerler

Hiçbir değer dönmez.

Hatalar/İstisnalar

DOM_HIERARCHY_REQUEST_ERR

Raised if this node is of a type that does not allow children of the type of one of the passed nodes, or if the node to put in is one of this node's ancestors or this node itself.

DOM_WRONG_DOCUMENT_ERR

Raised if one of the passed nodes was created from a different document than the one that created this node.

Sürüm Bilgisi

Sürüm: | Açıklama
8.3.0 | Calling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.

Örnekler

Örnek 1 DOMDocumentFragment::prepend() example

Prepends nodes before the fragment root.

<?php
$doc = new DOMDocument;
$fragment = $doc->createDocumentFragment();
$fragment->appendChild($doc->createElement("world"));

$fragment->prepend($doc->createElement("hello"), "beautiful");

echo $doc->saveXML($fragment);
?>

Yukarıdaki örneğin çıktısı:

<hello/>beautiful<world/>

Ayrıca Bakınız

  • DOMParentNode::prepend() - Prepends nodes before the first child node
  • DOMDocumentFragment::append() - Appends nodes after the last child node

User Contributed Notes

There are no user contributed notes for this page.


Replace children in fragment

  • « DOMDocumentFragment::prepend
  • DOMDocumentType »
  • PHP Manual
  • DOMDocumentFragment
  • Replace children in fragment

DOMDocumentFragment::replaceChildren

(PHP 8 >= 8.3.0)

DOMDocumentFragment::replaceChildren — Replace children in fragment

Açıklama

public DOMDocumentFragment::replaceChildren(DOMNode|string ...$nodes): void

Replaces the children in the document fragment with new nodes.

Bağımsız Değişkenler

nodes

The nodes replacing the children. Strings are automatically converted to text nodes.

Dönen Değerler

Hiçbir değer dönmez.

Hatalar/İstisnalar

DOM_HIERARCHY_REQUEST_ERR

Raised if this node is of a type that does not allow children of the type of one of the passed nodes, or if the node to put in is one of this node's ancestors or this node itself.

DOM_WRONG_DOCUMENT_ERR

Raised if one of the passed nodes was created from a different document than the one that created this node.

Sürüm Bilgisi

Sürüm: | Açıklama
8.3.0 | Calling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.

Örnekler

Örnek 1 DOMDocumentFragment::replaceChildren() example

Replaces the children with new nodes.

<?php
$doc = new DOMDocument;
$doc->loadXML("<container><hello/></container>");
$fragment = $doc->createDocumentFragment();
$fragment->append("hello");

$fragment->replaceWith("beautiful", $doc->createElement("world"));

echo $doc->saveXML($fragment);
?>

Yukarıdaki örneğin çıktısı:

beautiful
<world/>

Ayrıca Bakınız

  • DOMParentNode::replaceChildren() - Replace children in node
  • DOMDocumentFragment::append() - Appends nodes after the last child node
  • DOMDocumentFragment::prepend() - Prepends nodes before the first child node

User Contributed Notes

There are no user contributed notes for this page.


DOMDocumentType sınıfı

(PHP 5, PHP 7, PHP 8)

Giriş

Her DOMDocument nesnesi, değeri null veya bir DOMDocumentType nesnesi olabilen bir doctype özniteliğine sahiptir.

Sınıf Sözdizimi

class DOMDocumentType extends DOMNode {
/* Özellikler */
public readonly string $name;
public readonly DOMNamedNodeMap $entities;
public readonly DOMNamedNodeMap $notations;
public readonly string $publicId;
public readonly string $systemId;
public readonly ?string $internalSubset;
/* Miras alınan özellikler */
public readonly ?string $nodeName;
public string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly DOMNodeList $childNodes;
public readonly ?DOMNode $firstChild;
public readonly ?DOMNode $lastChild;
public readonly ?DOMNode $previousSibling;
public readonly ?DOMNode $nextSibling;
public readonly ?DOMNamedNodeMap $attributes;
public readonly ?DOMDocument $ownerDocument;
public readonly ?string $namespaceURI;
public ?string $prefix;
public readonly ?string $localName;
public readonly ?string $baseURI;
public string $textContent;
/* Miras alınan yöntemler */
public DOMNode::appendChild(DOMNode $yeni): DOMNode|false
public DOMNode::C14N(
bool $özel = false,
bool $aAçıklamalı = false,
?array $xpath = null,
?array $isim_alanları = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $torunlar_dahil = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(?array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $yeni, ?DOMNode $mevcut = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $uri): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $düğüm): bool
public DOMNode::isSupported(string $özellik, string $sürüm): bool
public DOMNode::lookupNamespaceURI(?string $önek): ?string
public DOMNode::lookupPrefix(string $uri): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $eski): DOMNode|false
public DOMNode::replaceChild(DOMNode $yeni, DOMNode $eski): DOMNode|false
}

Özellikler

publicId

Harici alt kümenin genel betimleyicisi.

systemId

Harici alt kümenin sistem betimleyicisi. Bu bir mutlak URI olabileceği gibi olmayabilir de.

name

DTD ismi; yani, DOCTYPE anahtar sözcüğünden sonra gelen sözcük.

entities

DTD'de bildirilmiş harici ve dahili genel öğeleri içeren bir DOMNamedNodeMap nesnesi.

notations

DTD'de bildirilmiş gösterimleri içeren bir DOMNamedNodeMap nesnesi.

internalSubset

Bir dizge olarak dahili alt küme; hiçbir şey yoksa null. Sınırlayıcı köşeli ayraçları içermez.

User Contributed Notes

There are no user contributed notes for this page.


DOMElement sınıfı

(PHP 5, PHP 7, PHP 8)

Sınıf Sözdizimi

class DOMElement extends DOMNode implements DOMParentNode, DOMChildNode {
/* Özellikler */
public readonly string $tagName;
public readonly mixed $schemaTypeInfo = null;
public readonly ?DOMElement $firstElementChild;
public readonly ?DOMElement $lastElementChild;
public readonly int $childElementCount;
public readonly ?DOMElement $previousElementSibling;
public readonly ?DOMElement $nextElementSibling;
/* Miras alınan özellikler */
public readonly ?string $nodeName;
public string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly DOMNodeList $childNodes;
public readonly ?DOMNode $firstChild;
public readonly ?DOMNode $lastChild;
public readonly ?DOMNode $previousSibling;
public readonly ?DOMNode $nextSibling;
public readonly ?DOMNamedNodeMap $attributes;
public readonly ?DOMDocument $ownerDocument;
public readonly ?string $namespaceURI;
public ?string $prefix;
public readonly ?string $localName;
public readonly ?string $baseURI;
public string $textContent;
/* Yöntemler */
public __construct(string $qualifiedName, ?string $value = null, string $namespace = "")
public after(DOMNode|string ...$nodes): void
public append(DOMNode|string ...$nodes): void
public before(DOMNode|string ...$nodes): void
public getAttributeNode(string $isim): DOMAttr|DOMNamespaceNode|false
public getAttributeNames(): array
public getAttributeNode(string $isim): DOMAttr|DOMNameSpaceNode|false
public getAttributeNodeNS(?string $uri, string $isim): DOMAttr|DOMNameSpaceNode|null
public getAttributeNS(?string $uri, string $isim): string
public getElementsByTagName(string $isim): DOMNodeList
public getElementsByTagNameNS(?string $isimalanı, string $isim): DOMNodeList
public hasAttribute(string $isim): bool
public hasAttributeNS(?string $uri, string $isim): bool
public insertAdjacentElement(string $where, DOMElement $element): ?DOMElement
public insertAdjacentText(string $where, string $data): void
public prepend(DOMNode|string ...$nodes): void
public remove(): void
public removeAttribute(string $isim): bool
public removeAttributeNode(DOMAttr $öznitelik): DOMAttr|false
public removeAttributeNS(?string $uri, string $isim): void
public replaceChildren(DOMNode|string ...$nodes): void
public replaceWith(DOMNode|string ...$nodes): void
public setAttribute(string $isim, string $değer): DOMAttr|bool
public setAttributeNode(DOMAttr $öznitelik): DOMAttr|null|false
public setAttributeNodeNS(DOMAttr $öznitelik): DOMAttr|null|false
public setAttributeNS(?string $uri, string $isim, string $değer): void
public setIdAttribute(string $isim, bool $id_olarak): void
public setIdAttributeNode(DOMAttr $öznitelik, bool $id_olarak): void
public setIdAttributeNS(string $uri, string $isim, bool $id_olarak): void
public toggleAttribute(string $qualifiedName, ?bool $force = null): bool
/* Miras alınan yöntemler */
public DOMNode::appendChild(DOMNode $yeni): DOMNode|false
public DOMNode::C14N(
bool $özel = false,
bool $aAçıklamalı = false,
?array $xpath = null,
?array $isim_alanları = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $torunlar_dahil = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(?array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $yeni, ?DOMNode $mevcut = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $uri): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $düğüm): bool
public DOMNode::isSupported(string $özellik, string $sürüm): bool
public DOMNode::lookupNamespaceURI(?string $önek): ?string
public DOMNode::lookupPrefix(string $uri): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $eski): DOMNode|false
public DOMNode::replaceChild(DOMNode $yeni, DOMNode $eski): DOMNode|false
}

Özellikler

childElementCount

Çocuk eleman sayısı.

firstElementChild

İlk çocuk eleman ya da null.

lastElementChild

Son çocuk eleman ya da null.

nextElementSibling

Sonraki kardeş eleman ya da null.

previousElementSibling

Önceki kardeş eleman ya da null.

schemaTypeInfo

Henüz gerçeklenmedi; daima null döndürür.

tagName

Elemanın ismi

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | firstElementChild, lastElementChild, childElementCount, previousElementSibling, ve nextElementSibling özellikleri eklendi.
8.0.0 | DOMElement artık DOMParentNode ve DOMChildNode arayüzünü gerçekliyor.

Notlar

Bilginize:

DOM eklentisi UTF-8 kodlama kullanır. Diğer kodlamalarla çalışmak için mb_convert_encoding(), UConverter::transcode() veya iconv() kullanılabilir.

İçindekiler

  • DOMElement::after — Adds nodes after the element
  • DOMElement::append — Appends nodes after the last child node
  • DOMElement::before — Adds nodes before the element
  • DOMElement::__construct — Yeni bir DOMElement nesnesi oluşturur
  • DOMElement::getAttribute — İsmi belirtilen özniteliğin değerini döndürür
  • DOMElement::getAttributeNames — Get attribute names
  • DOMElement::getAttributeNode — İsmi belirtilen öznitelik düğümünü döndürür
  • DOMElement::getAttributeNodeNS — İsmi ve isim alanı belirtilen öznitelik düğümünü döndürür
  • DOMElement::getAttributeNS — İsmi ve isim alanı belirtilen özniteliğin değerini döndürür
  • DOMElement::getElementsByTagName — İsmi belirtilen elemanları döndürür
  • DOMElement::getElementsByTagNameNS — İsmi ve isim alanı belirtilen elemanları döndürür
  • DOMElement::hasAttribute — İsmi belirtilen öznitelik mevcut mu diye bakar
  • DOMElement::hasAttributeNS — Belirtilen isim alanlı öznitelik var mı diye bakar
  • DOMElement::insertAdjacentElement — Insert adjacent element
  • DOMElement::insertAdjacentText — Insert adjacent text
  • DOMElement::prepend — Prepends nodes before the first child node
  • DOMElement::remove — Removes the element
  • DOMElement::removeAttribute — İsmi belirtilen özniteliği siler
  • DOMElement::removeAttributeNode — Belirtilen öznitelik düğümünü siler
  • DOMElement::removeAttributeNS — İsmi ve isim alanı belirtilen özniteliği siler
  • DOMElement::replaceChildren — Replace children in element
  • DOMElement::replaceWith — Replaces the element with new nodes
  • DOMElement::setAttribute — Yeni bir öznitelik ekler ya da var olanda değişiklik yapar
  • DOMElement::setAttributeNode — Elemana yeni bir öznitelik düğümü ekler
  • DOMElement::setAttributeNodeNS — Elemana isim alanlı yeni bir öznitelik düğümü ekler
  • DOMElement::setAttributeNS — İsim alanlı yeni bir öznitelik ekler
  • DOMElement::setIdAttribute — İsmi belirtilen özniteliği bir ID özniteliği olarak tanımlar
  • DOMElement::setIdAttributeNode — Belirtilen öznitelik düğümünü ID türünde bir öznitelik düğümü haline getirir
  • DOMElement::setIdAttributeNS — İsmi ve isim alanı belirtilen özniteliği bir ID özniteliği olarak tanımlar
  • DOMElement::toggleAttribute — Toggle attribute

User Contributed Notes

johnny 03-Mar-2014 03:48
Get html of a node
 $html .= $dom->saveHTML($node);
Janne Enberg 07-Nov-2013 11:02
This page doesn't list the inherited properties from DOMNode, e.g. the quite important textContent property. It would be immensely helpful if it would list those as well.
felix dot klee at inka dot de 26-Feb-2013 03:23
How to rename an element and preserve attributes:

<?php

// Changes the name of element $element to $newName.
function renameElement($element, $newName) {
  $newElement = $element->ownerDocument->createElement($newName);
  $parentElement = $element->parentNode;
  $parentElement->insertBefore($newElement, $element);

  $childNodes = $element->childNodes;
  while ($childNodes->length > 0) {
    $newElement->appendChild($childNodes->item(0));
  }

  $attributes = $element->attributes;
  while ($attributes->length > 0) {
    $attribute = $attributes->item(0);
    if (!is_null($attribute->namespaceURI)) {
      $newElement->setAttributeNS('http://www.w3.org/2000/xmlns/',
                                  'xmlns:'.$attribute->prefix,
                                  $attribute->namespaceURI);
    }
    $newElement->setAttributeNode($attribute);
  }

  $parentElement->removeChild($element);
}

function prettyPrint($d) {
  $d->formatOutput = true;
  echo '<pre>'.htmlspecialchars($d->saveXML()).'</pre>';
}

$d = new DOMDocument( '1.0' );
$d->loadXML('<?xml version="1.0"?>
<library>
  <data a:foo="1" x="bar" xmlns:a="http://example.com/a">
    <invite>
      <username>jmansa</username>
      <userid>1</userid>
    </invite>
    <update>1</update>
  </data>
</library>');

$xpath = new DOMXPath($d);
$elements = $xpath->query('/library/data');
if ($elements->length == 1) {
  $element = $elements->item(0);
  renameElement($element, 'invites');
}

prettyPrint($d);

?>
loopduplicate at burningtoken dot com 22-Apr-2011 02:34
This works perfect for me as well:

<?php $xml = $domElement->ownerDocument->saveXML($domElement); ?>
Anonymous 24-Dec-2010 08:22
you can use DOMNode::nodeValue
DOMElement inherits this public property.

$elem->nodeValue
dpetroff ( at ) gmail.com 04-Dec-2010 11:24
Hi!

Combining all th comments, the easiest way to get inner HTML of the node is to use this function:

<?php
function get_inner_html( $node ) {
    $innerHTML= '';
    $children = $node->childNodes;
    foreach ($children as $child) {
        $innerHTML .= $child->ownerDocument->saveXML( $child );
    }

    return $innerHTML;
}
?>
nawaman at gmail dot com 03-Sep-2009 08:08
The following code shows can text-only content be extracted from a document.

<?php
function getTextFromNode($Node, $Text = "") {
    if ($Node->tagName == null)
        return $Text.$Node->textContent;

    $Node = $Node->firstChild;
    if ($Node != null)
        $Text = getTextFromNode($Node, $Text);

    while($Node->nextSibling != null) {
        $Text = getTextFromNode($Node->nextSibling, $Text);
        $Node = $Node->nextSibling;
    }
    return $Text;
}

function getTextFromDocument($DOMDoc) {
    return getTextFromNode($DOMDoc->documentElement);
}

$Doc = new DOMDocument();
$Doc->loadHTMLFile("Test.html");
echo getTextFromDocument($Doc)."\n";
?>
Daniel Morlock 07-May-2009 09:22
It would be nice to have a function which converts a document/node/element into a string.

Anyways, I use the following code snippet to get the innerHTML value of a DOMNode:

<?php
function getInnerHTML($Node)
{
     $Body = $Node->ownerDocument->documentElement->firstChild->firstChild;
     $Document = new DOMDocument();
     $Document->appendChild($Document->importNode($Body,true));
     return $Document->saveHTML();
}
?>
patrick smith 04-Nov-2008 08:14
Although it may be preferable to use the dom to manipulate elements, sometimes it's useful to actually get the innerHTML from a document element (e.g. to load into a client-side editor).

To get the innerHTML of a specific element ($elem_id) in a specific html file ($filepath):

<?php
$innerHTML = '';
$doc = new DOMDocument();
$doc->loadHTMLFile($filepath);
$elem = $doc->getElementById($elem_id);

// loop through all childNodes, getting html
$children = $elem->childNodes;
foreach ($children as $child) {
    $tmp_doc = new DOMDocument();
    $tmp_doc->appendChild($tmp_doc->importNode($child,true));
    $innerHTML .= $tmp_doc->saveHTML();
}
?>
Pinochet 25-Oct-2008 05:33
Hi to get the value of DOMElement just get the nodeValue public parameter (it is inherited from DOMNode):
<?php
echo $domElement->nodeValue;
?>
Everything is obvious if you now about this thing ;-)
j DOT wagner ( AT ) medieninnovation.com 08-Oct-2008 09:11
Caveat!
It took me almost an hour to figure this out, so I hope it saves at least one of you some time.

If you want to debug your DOM tree and try var_dump() or similar you will be fooled into thinking the DOMElement that you are looking at is empty, because var_dump() says: object(DOMElement)#1 (0) { }

After much debugging I found out that all DOM objects are invisible to var_dump() and print_r(), my guess is because they are C objects and not PHP objects. So I tried saveXML(), which works fine on DOMDocument, but is not implemented on DOMElement.

The solution is simple (if you know it):
$xml = $domElement->ownerDocument->saveXML($domElement);

This will give you an XML representation of $domElement.
Severin 14-Sep-2008 06:18
I wanted to find similar Elements - thats why I built an Xpath-String like this - maybe somebody needs it... its not very pretty - but neither is domdocument :)

<?php

$dom->load($xmlFile))

$xpathQuery = '//*';
$xmlNodes = $xpath->query($xpathQuery);

$pathlist = array();
$attrlist = array();
foreach ($xmlNodes as $node) {

  $depth = $this->_getDomDepth($node);   //get Path-Depth (for array key)
  $pathlist[$depth] = $node->tagName;     // tagname

  $attrs = $node->attributes;
  $attr='';
  $a=0;
  foreach ($attrs as $attrName => $attrNode)  // attributes
            {
              if ($attrName !='reg')
              {
                if ($a++!=0) $attr .= ' and ';
                $attr .= '@'.$attrName.'='."'".$attrNode->value."'";
              }
            }

          $attrlist[$depth] = $attr?'['.$attr.']':'';

          $path = ''; for ($i=0;$i<=$depth;$i++) $path .= '/'.$pathlist[$i].$attrlist[$i];  // the xpath of the actual Element

    // ... now you can go on and user $path to find similar elements
    }
  }
}

 private function _getDomDepth(DomNode $node)
   {
     $r = -2;
     while ($node) {
       $r++;
       $node = $node->parentNode;
     }
     return  $r;
   }
?>
ae.fxx 18-Jul-2008 01:49
Hi there.

Remember to append a DOMNode (or any of its descendants) to a DOMDocument __BEFORE__ you try to append a child to it.

I don't know why it has to be this way but it can't be done without it.

bye


Adds nodes after the element

  • « DOMElement
  • DOMElement::append »
  • PHP Manual
  • DOMElement
  • Adds nodes after the element

DOMElement::after

(PHP 8)

DOMElement::after — Adds nodes after the element

Açıklama

public DOMElement::after(DOMNode|string ...$nodes): void

Adds the passed nodes after the element.

Bağımsız Değişkenler

nodes

Nodes to be added after the node. Strings are automatically converted to text nodes.

Dönen Değerler

Hiçbir değer dönmez.

Hatalar/İstisnalar

DOM_HIERARCHY_REQUEST_ERR

Raised if the parent is of a type that does not allow children of the type of one of the passed nodes, or if the node to put in is one of this node's ancestors or this node itself.

DOM_WRONG_DOCUMENT_ERR

Raised if one of the passed nodes was created from a different document than the one that created this node.

Sürüm Bilgisi

Sürüm: | Açıklama
8.3.0 | Calling this method on a node without a parent is now a no-op to align the behaviour with the DOM specification. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.
8.3.0 | Calling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.

Örnekler

Örnek 1 DOMElement::after() example

Adds nodes after the hello element.

<?php
$doc = new DOMDocument;
$doc->loadXML("<hello/>");
$container = $doc->documentElement;

$container->after("beautiful", $doc->createElement("world"));

echo $doc->saveXML();
?>

Yukarıdaki örneğin çıktısı:

<?xml version="1.0"?>
<hello/>
beautiful
<world/>

Ayrıca Bakınız

  • DOMChildNode::after() - Adds nodes after the node
  • DOMElement::before() - Adds nodes before the element

User Contributed Notes

There are no user contributed notes for this page.


Appends nodes after the last child node

  • « DOMElement::after
  • DOMElement::before »
  • PHP Manual
  • DOMElement
  • Appends nodes after the last child node

DOMElement::append

(PHP 8)

DOMElement::append — Appends nodes after the last child node

Açıklama

public DOMElement::append(DOMNode|string ...$nodes): void

Appends one or many nodes to the list of children after the last child node.

Bağımsız Değişkenler

nodes

The nodes to append. Strings are automatically converted to text nodes.

Dönen Değerler

Hiçbir değer dönmez.

Hatalar/İstisnalar

DOM_HIERARCHY_REQUEST_ERR

Raised if this node is of a type that does not allow children of the type of one of the passed nodes, or if the node to put in is one of this node's ancestors or this node itself.

DOM_WRONG_DOCUMENT_ERR

Raised if one of the passed nodes was created from a different document than the one that created this node.

Sürüm Bilgisi

Sürüm: | Açıklama
8.3.0 | Calling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.

Örnekler

Örnek 1 DOMElement::append() example

Appends nodes in the container element.

<?php
$doc = new DOMDocument;
$doc->loadXML("<container>hello </container>");
$world = $doc->documentElement;

$world->append("beautiful", $doc->createElement("world"));

echo $doc->saveXML();
?>

Yukarıdaki örneğin çıktısı:

<?xml version="1.0"?>
<container>hello beautiful<world/></container>

Ayrıca Bakınız

  • DOMParentNode::append() - Appends nodes after the last child node
  • DOMElement::prepend() - Prepends nodes before the first child node

User Contributed Notes

There are no user contributed notes for this page.


Adds nodes before the element

  • « DOMElement::append
  • DOMElement::__construct »
  • PHP Manual
  • DOMElement
  • Adds nodes before the element

DOMElement::before

(PHP 8)

DOMElement::before — Adds nodes before the element

Açıklama

public DOMElement::before(DOMNode|string ...$nodes): void

Adds the passed nodes before the element.

Bağımsız Değişkenler

nodes

Nodes to be added before the node. Strings are automatically converted to text nodes.

Dönen Değerler

Hiçbir değer dönmez.

Hatalar/İstisnalar

DOM_HIERARCHY_REQUEST_ERR

Raised if the parent is of a type that does not allow children of the type of one of the passed nodes, or if the node to put in is one of this node's ancestors or this node itself.

DOM_WRONG_DOCUMENT_ERR

Raised if one of the passed nodes was created from a different document than the one that created this node.

Sürüm Bilgisi

Sürüm: | Açıklama
8.3.0 | Calling this method on a node without a parent is now a no-op to align the behaviour with the DOM specification. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.

Örnekler

Örnek 1 DOMElement::before() example

Adds nodes before the hello element.

<?php
$doc = new DOMDocument;
$doc->loadXML("<world/>");
$world = $doc->documentElement;

$world->before("hello", $doc->createElement("beautiful"));

echo $doc->saveXML();
?>

Yukarıdaki örneğin çıktısı:

hello
<beautiful/>
<world/>

Ayrıca Bakınız

  • DOMChildNode::before() - Adds nodes before the node
  • DOMElement::after() - Adds nodes after the element

User Contributed Notes

There are no user contributed notes for this page.


Yeni bir DOMElement nesnesi oluşturur

  • « DOMElement::before
  • DOMElement::getAttribute »
  • PHP Manual
  • DOMElement
  • Yeni bir DOMElement nesnesi oluşturur

DOMElement::__construct

(PHP 5, PHP 7, PHP 8)

DOMElement::__construct — Yeni bir DOMElement nesnesi oluşturur

Açıklama

public DOMElement::__construct(string $qualifiedName, ?string $value = null, string $namespace = "")

Yeni bir DOMElement nesnesi oluşturur. Bu nesne salt okunurdur. Nesne bu haliyle bir belgeye eklenebilir, fakat belge ile ilişkilendirilinceye kadar yeni bir düğüm eklenemez. Yazılabilir bir düğüm oluşturmak için DOMDocument::createElement() veya DOMDocument::createElementNS() yöntemlerini kullanın.

Bağımsız Değişkenler

qualifiedName

Elemanın etiket ismi. Bir isim alanı betimleyicisi belirtildiği takdirde eleman ismi bu isim alanı ile ilişkili bir önek alabilir.

value

Elemanın değeri.

namespace

Elemanın bir isim alanına ait olması halinde bu isim alanını betimleyen adres.

Örnekler

Örnek 1 - Yeni bir DOMElement oluşturmak

<?php

$dom = new DOMDocument('1.0', 'utf-8');
$element = $dom->appendChild(new DOMElement('kök'));
$element_ns = new DOMElement('bir:düğüm1', 'birdeğer', 'http://rst');
$element->appendChild($element_ns);
echo $dom->saveXML(); /* <?xml version="1.0" encoding="utf-8"?>
<kök><bir:düğüm1 xmlns:bu="http://rst">birdeğer</bir:düğüm1></kök> */

?>

Ayrıca Bakınız

  • DOMDocument::createElement() - Yeni bir eleman düğümü oluşturur
  • DOMDocument::createElementNS() - İsim alanlı bir eleman düğümü oluşturur

User Contributed Notes

troelskn at gmail dot com 03-Jun-2008 07:46
Note that this function is buggy. You have to manually escape the $value argument with htmlspecialchars.
See: http://bugs.php.net/bug.php?id=31191


İsmi belirtilen özniteliğin değerini döndürür

  • « DOMElement::__construct
  • DOMElement::getAttributeNames »
  • PHP Manual
  • DOMElement
  • İsmi belirtilen özniteliğin değerini döndürür

DOMElement::getAttribute

(PHP 5, PHP 7, PHP 8)

DOMElement::getAttribute — İsmi belirtilen özniteliğin değerini döndürür

Açıklama

public DOMElement::getAttributeNode(string $isim): DOMAttr|DOMNamespaceNode|false

İsmi belirtilen düğüm özniteliğinin değerini döndürür.

Bağımsız Değişkenler

isim

Özniteliğin ismi.

Dönen Değerler

isim özniteliği yoksa boş bir dizge, varsa öznitelik değerini içeren bir dizge döner. XML isim alanı bildirimleri (xmlns ve xmlns:* öznitelikleri) için bir DOMAttr örneği değil bir DOMNameSpaceNode örneği döner.

Ayrıca Bakınız

  • DOMElement::hasAttribute() - İsmi belirtilen öznitelik mevcut mu diye bakar
  • DOMElement::setAttribute() - Yeni bir öznitelik ekler ya da var olanda değişiklik yapar
  • DOMElement::removeAttribute() - İsmi belirtilen özniteliği siler

User Contributed Notes

mpalmer at cybersource dot com 09-Nov-2007 03:32
- - - - - - - - - - - - - -

XML Data:
<data>
<Report ID="1">
    <Date>REVIEW</Date>
    <AuthorID>1</AuthorID>
</Report>
<Report ID="2">
    <Date>REVIEW</Date>
    <AuthorID>2</AuthorID>
</Report>
</data>

- - - - - - - - - - - - - -

<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load( 'data.xml' );

$searchNode = $xmlDoc->getElementsByTagName( "Report" );

foreach( $searchNode as $searchNode )
{
    $valueID = $searchNode->getAttribute('ID');

    $xmlDate = $searchNode->getElementsByTagName( "Date" );
    $valueDate = $xmlDate->item(0)->nodeValue;

    $xmlAuthorID = $searchNode->getElementsByTagName( "AuthorID" );
    $valueAuthorID = $xmlAuthorID->item(0)->nodeValue;

    echo "$valueID - $valueDate - $valueAuthorID\n";
}
?>

- - - - - - - - - - - - - -

Output:

1 - REVIEW - 1
2 - REVIEW - 2

- - - - - - - - - - - - - -


Get attribute names

  • « DOMElement::getAttribute
  • DOMElement::getAttributeNode »
  • PHP Manual
  • DOMElement
  • Get attribute names

DOMElement::getAttributeNames

(PHP 8 >= 8.3.0)

DOMElement::getAttributeNames — Get attribute names

Açıklama

public DOMElement::getAttributeNames(): array

Get attribute names.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

Return attribute names.

Örnekler

Örnek 1 DOMElement::getAttributeNames() example

<?php

$dom = new DOMDocument();
$dom->loadXML('<html xmlns:some="some:ns" some:test="a" test2="b"/>');
var_dump($dom->documentElement->getAttributeNames());
?>

Yukarıdaki örneğin çıktısı:

array(3) {
 [0]=>
 string(10) "xmlns:some"
 [1]=>
 string(9) "some:test"
 [2]=>
 string(5) "test2"
}

User Contributed Notes

There are no user contributed notes for this page.


İsmi belirtilen öznitelik düğümünü döndürür

  • « DOMElement::getAttributeNames
  • DOMElement::getAttributeNodeNS »
  • PHP Manual
  • DOMElement
  • İsmi belirtilen öznitelik düğümünü döndürür

DOMElement::getAttributeNode

(PHP 5, PHP 7, PHP 8)

DOMElement::getAttributeNode — İsmi belirtilen öznitelik düğümünü döndürür

Açıklama

public DOMElement::getAttributeNode(string $isim): DOMAttr|DOMNameSpaceNode|false

Düğümün ismi belirtilen öznitelik düğümünü döndürür.

Bağımsız Değişkenler

isim

Özniteliğin ismi.

Dönen Değerler

Öznitelik düğümü. XML isim alanı bildirimleri (xmlns ve xmlns:* öznitelikleri) için bir DOMAttr örneği değil bir DOMNameSpaceNode örneği döner.

Ayrıca Bakınız

  • DOMElement::hasAttribute() - İsmi belirtilen öznitelik mevcut mu diye bakar
  • DOMElement::setAttributeNode() - Elemana yeni bir öznitelik düğümü ekler
  • DOMElement::removeAttributeNode() - Belirtilen öznitelik düğümünü siler

User Contributed Notes

lowezar at gmail dot com 28-Feb-2011 08:22
It may also return DOMNameSpaceNode if you`re requesting 'xmlns:_prefix_'. So you`re unable to remove it with removeAttributeNode() which requires DOMAttr as parameter.
Alex 18-Feb-2009 08:33
Just trying to add some clarification: this function will return boolean "false" when there is not a $name attribute :)

Cheers, Alex


İsmi ve isim alanı belirtilen öznitelik düğümünü döndürür

  • « DOMElement::getAttributeNode
  • DOMElement::getAttributeNS »
  • PHP Manual
  • DOMElement
  • İsmi ve isim alanı belirtilen öznitelik düğümünü döndürür

DOMElement::getAttributeNodeNS

(PHP 5, PHP 7, PHP 8)

DOMElement::getAttributeNodeNS — İsmi ve isim alanı belirtilen öznitelik düğümünü döndürür

Açıklama

public DOMElement::getAttributeNodeNS(?string $uri, string $isim): DOMAttr|DOMNameSpaceNode|null

Düğümün ismi ve isim alanı belirtilen özniteliği döndürür.

Bağımsız Değişkenler

uri

İsim alanını betimleyen adres.

isim

önek:öznitelik biçeminde öznitelik ismi.

Dönen Değerler

Öznitelik düğümü. XML isim alanı bildirimleri (xmlns ve xmlns:* öznitelikleri) için bir DOMAttr örneği değil bir DOMNameSpaceNode örneği döner.

Ayrıca Bakınız

  • DOMElement::hasAttributeNS() - Belirtilen isim alanlı öznitelik var mı diye bakar
  • DOMElement::setAttributeNodeNS() - Elemana isim alanlı yeni bir öznitelik düğümü ekler
  • DOMElement::removeAttributeNode() - Belirtilen öznitelik düğümünü siler

User Contributed Notes

There are no user contributed notes for this page.


İsmi ve isim alanı belirtilen özniteliğin değerini döndürür

  • « DOMElement::getAttributeNodeNS
  • DOMElement::getElementsByTagName »
  • PHP Manual
  • DOMElement
  • İsmi ve isim alanı belirtilen özniteliğin değerini döndürür

DOMElement::getAttributeNS

(PHP 5, PHP 7, PHP 8)

DOMElement::getAttributeNS — İsmi ve isim alanı belirtilen özniteliğin değerini döndürür

Açıklama

public DOMElement::getAttributeNS(?string $uri, string $isim): string

Düğümün ismi ve isim alanı belirtilen özniteliğinin değerini döndürür.

Bağımsız Değişkenler

uri

İsim alanını betimleyen adres.

isim

önek:öznitelik biçeminde öznitelik ismi.

Dönen Değerler

isim özniteliği yoksa boş bir dizge, varsa öznitelik değerini içeren bir dizge döner.

Ayrıca Bakınız

  • DOMElement::hasAttributeNS() - Belirtilen isim alanlı öznitelik var mı diye bakar
  • DOMElement::setAttributeNS() - İsim alanlı yeni bir öznitelik ekler
  • DOMElement::removeAttributeNS() - İsmi ve isim alanı belirtilen özniteliği siler

User Contributed Notes

There are no user contributed notes for this page.


İsmi belirtilen elemanları döndürür

  • « DOMElement::getAttributeNS
  • DOMElement::getElementsByTagNameNS »
  • PHP Manual
  • DOMElement
  • İsmi belirtilen elemanları döndürür

DOMElement::getElementsByTagName

(PHP 5, PHP 7, PHP 8)

DOMElement::getElementsByTagName — İsmi belirtilen elemanları döndürür

Açıklama

public DOMElement::getElementsByTagName(string $isim): DOMNodeList

Düğümün ismi belirtilen alt düğümlerini rastlandıkları sıra ile ve alt düğümleri ile içeren yeni bir DOMNodeList nesnesi döndürür.

Bağımsız Değişkenler

isim

Etiket ismi. Tüm eleman ağacını döndürmek için * belirtin.

Dönen Değerler

Eşleşen tüm elemanları içeren yeni bir DOMNodeList nesnesi döner.

Ayrıca Bakınız

  • DOMElement::getElementsByTagNameNS() - İsmi ve isim alanı belirtilen elemanları döndürür

User Contributed Notes

There are no user contributed notes for this page.


İsmi ve isim alanı belirtilen elemanları döndürür

  • « DOMElement::getElementsByTagName
  • DOMElement::hasAttribute »
  • PHP Manual
  • DOMElement
  • İsmi ve isim alanı belirtilen elemanları döndürür

DOMElement::getElementsByTagNameNS

(PHP 5, PHP 7, PHP 8)

DOMElement::getElementsByTagNameNS — İsmi ve isim alanı belirtilen elemanları döndürür

Açıklama

public DOMElement::getElementsByTagNameNS(?string $isimalanı, string $isim): DOMNodeList

Düğümün ismi ve isim alanına dahil alt düğümleri rastlandıkları sıra ile ve alt düğümleri ile içeren yeni bir DOMNodeList nesnesi döndürür.

Bağımsız Değişkenler

isimalanı

Elemanların eşleştirileceği isim alanını betimleyen adres. Bütün isim alanları anlamında "*" belirtilebilir. Boş isim alanı ile eşleşme için null aktarılabilir.

isim

Eşleştirilecek elemanın ismi. Tüm yerel adları döndürmek için "*" belirtilebilir.

Dönen Değerler

Eşleşen tüm elemanları içeren yeni bir DOMNodeList nesnesi döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.3 | isimalanı artık null olabiliyor.

Ayrıca Bakınız

  • DOMElement::getElementsByTagName() - İsmi belirtilen elemanları döndürür

User Contributed Notes

spam at chovy dot com 03-Jun-2009 05:36
I had some difficulty stripping all default NS attributes for an ns-uri in one shot, the following will work though...first strip the documentElement namespace, then getElementsByTagNameNS() -- the documentation should reflect that the 2nd argument is actually the name of the tag, not the local namespace prefix as I first expected:

<?php

function strip_default_ns( $xml = null, $ns_uri = 'http://example.com/XML-Foo' ) {
    $ns_local = '';
    $ns_tag = '*';

    if ( empty($xml) ) return false;

    //remove document namespace
    $dom = new DOMDocument();
    $dom->loadXML($xml);
    $dom->documentElement->removeAttributeNS($ns_uri, $ns_local);

    //strip element namespaces
    foreach ( $dom->getElementsByTagNameNS($ns_uri, $ns_tag) as $elem ) {
        $elem->removeAttributeNS($ns_uri, $ns_local);
    }

    return $dom->saveXML();
}

$stripped_xml = strip_default_ns($the_xml);

?>

$stripped_xml can now take advantage of running XPath queries on it for the NULL namespace.


İsmi belirtilen öznitelik mevcut mu diye bakar

  • « DOMElement::getElementsByTagNameNS
  • DOMElement::hasAttributeNS »
  • PHP Manual
  • DOMElement
  • İsmi belirtilen öznitelik mevcut mu diye bakar

DOMElement::hasAttribute

(PHP 5, PHP 7, PHP 8)

DOMElement::hasAttribute — İsmi belirtilen öznitelik mevcut mu diye bakar

Açıklama

public DOMElement::hasAttribute(string $isim): bool

İsmi belirtilen öznitelik mevcutsa true döndürür.

Bağımsız Değişkenler

isim

Özniteliğin ismi.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Ayrıca Bakınız

  • DOMElement::hasAttributeNS() - Belirtilen isim alanlı öznitelik var mı diye bakar
  • DOMElement::getAttribute() - İsmi belirtilen özniteliğin değerini döndürür
  • DOMElement::setAttribute() - Yeni bir öznitelik ekler ya da var olanda değişiklik yapar
  • DOMElement::removeAttribute() - İsmi belirtilen özniteliği siler

User Contributed Notes

There are no user contributed notes for this page.


Belirtilen isim alanlı öznitelik var mı diye bakar

  • « DOMElement::hasAttribute
  • DOMElement::insertAdjacentElement »
  • PHP Manual
  • DOMElement
  • Belirtilen isim alanlı öznitelik var mı diye bakar

DOMElement::hasAttributeNS

(PHP 5, PHP 7, PHP 8)

DOMElement::hasAttributeNS — Belirtilen isim alanlı öznitelik var mı diye bakar

Açıklama

public DOMElement::hasAttributeNS(?string $uri, string $isim): bool

İsmi ve isim alanı belirtilen öznitelik mevcutsa true döndürür.

Bağımsız Değişkenler

uri

İsim alanını betimleyen adres.

isim

önek:etiket biçeminde öznitelik ismi.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Ayrıca Bakınız

  • DOMElement::hasAttribute() - İsmi belirtilen öznitelik mevcut mu diye bakar
  • DOMElement::getAttributeNS() - İsmi ve isim alanı belirtilen özniteliğin değerini döndürür
  • DOMElement::setAttributeNS() - İsim alanlı yeni bir öznitelik ekler
  • DOMElement::removeAttributeNS() - İsmi ve isim alanı belirtilen özniteliği siler

User Contributed Notes

There are no user contributed notes for this page.


Insert adjacent element

  • « DOMElement::hasAttributeNS
  • DOMElement::insertAdjacentText »
  • PHP Manual
  • DOMElement
  • Insert adjacent element

DOMElement::insertAdjacentElement

(PHP 8 >= 8.3.0)

DOMElement::insertAdjacentElement — Insert adjacent element

Açıklama

public DOMElement::insertAdjacentElement(string $where, DOMElement $element): ?DOMElement

Inserts an element at a relative position given by where.

Bağımsız Değişkenler

where

  • beforebegin - Insert before the target element.
  • afterbegin - Insert as the first child of the target element.
  • beforeend - Insert as the last child of the target element.
  • afterend - Insert after the target element.

element

The element to insert.

Dönen Değerler

Return DOMElement or null on failure.

Örnekler

Örnek 1 DOMElement::insertAdjacentElement() example

<?php

$dom = new DOMDocument();
$dom->loadXML('<?xml version="1.0"?><container><p>foo</p></container>');
$container = $dom->documentElement;
$p = $container->firstElementChild;

$p->insertAdjacentElement('beforebegin', $dom->createElement('A'));
echo $dom->saveXML();
?>

Yukarıdaki örneğin çıktısı:

<?xml version="1.0"?>
<container><A/><p>foo</p></container>

Ayrıca Bakınız

  • DOMElement::insertAdjacentText() - Insert adjacent text

User Contributed Notes

There are no user contributed notes for this page.


Insert adjacent text

  • « DOMElement::insertAdjacentElement
  • DOMElement::prepend »
  • PHP Manual
  • DOMElement
  • Insert adjacent text

DOMElement::insertAdjacentText

(PHP 8 >= 8.3.0)

DOMElement::insertAdjacentText — Insert adjacent text

Açıklama

public DOMElement::insertAdjacentText(string $where, string $data): void

Inserts text at a relative position given by where.

Bağımsız Değişkenler

where

  • beforebegin - Insert before the target element.
  • afterbegin - Insert as the first child of the target element.
  • beforeend - Insert as the last child of the target element.
  • afterend - Insert after the target element.

data

The string to insert.

Dönen Değerler

Hiçbir değer dönmez.

Örnekler

Örnek 1 DOMElement::insertAdjacentText() example

<?php

$dom = new DOMDocument();
$dom->loadXML('<?xml version="1.0"?><container><p>H</p></container>');

$container = $dom->documentElement;
$p = $container->firstElementChild;

$p->insertAdjacentText("afterbegin", "P");
$p->insertAdjacentText("beforeend", "P");

echo $dom->saveXML();
?>

Yukarıdaki örneğin çıktısı:

<?xml version="1.0"?>
<container><p>PHP</p></container>

Ayrıca Bakınız

  • DOMElement::insertAdjacentElement() - Insert adjacent element

User Contributed Notes

There are no user contributed notes for this page.


Prepends nodes before the first child node

  • « DOMElement::insertAdjacentText
  • DOMElement::remove »
  • PHP Manual
  • DOMElement
  • Prepends nodes before the first child node

DOMElement::prepend

(PHP 8)

DOMElement::prepend — Prepends nodes before the first child node

Açıklama

public DOMElement::prepend(DOMNode|string ...$nodes): void

Prepends one or many nodes to the list of children before the first child node.

Bağımsız Değişkenler

nodes

The nodes to prepend. Strings are automatically converted to text nodes.

Dönen Değerler

Hiçbir değer dönmez.

Hatalar/İstisnalar

DOM_HIERARCHY_REQUEST_ERR

Raised if this node is of a type that does not allow children of the type of one of the passed nodes, or if the node to put in is one of this node's ancestors or this node itself.

DOM_WRONG_DOCUMENT_ERR

Raised if one of the passed nodes was created from a different document than the one that created this node.

Sürüm Bilgisi

Sürüm: | Açıklama
8.3.0 | Calling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.

Örnekler

Örnek 1 DOMElement::prepend() example

Prepends nodes in the container element.

<?php
$doc = new DOMDocument;
$doc->loadXML("<container> world</container>");
$world = $doc->documentElement;

$world->prepend($doc->createElement("hello"), "beautiful");

echo $doc->saveXML();
?>

Yukarıdaki örneğin çıktısı:

<?xml version="1.0"?>
<container><hello/>beautiful world</container>

Ayrıca Bakınız

  • DOMParentNode::prepend() - Prepends nodes before the first child node
  • DOMElement::append() - Appends nodes after the last child node

User Contributed Notes

There are no user contributed notes for this page.


Removes the element

  • « DOMElement::prepend
  • DOMElement::removeAttribute »
  • PHP Manual
  • DOMElement
  • Removes the element

DOMElement::remove

(PHP 8)

DOMElement::remove — Removes the element

Açıklama

public DOMElement::remove(): void

Removes the element.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

Hiçbir değer dönmez.

Örnekler

Örnek 1 DOMElement::remove() example

Removes the element.

<?php
$doc = new DOMDocument;
$doc->loadXML("<container><hello/><world/></container>");
$hello = $doc->documentElement->firstChild;

$hello->remove();

echo $doc->saveXML();
?>

Yukarıdaki örneğin çıktısı:

<?xml version="1.0"?>
<container><world/></container>

Ayrıca Bakınız

  • DOMElement::after() - Adds nodes after the element
  • DOMElement::before() - Adds nodes before the element
  • DOMElement::replaceWith() - Replaces the element with new nodes
  • DOMNode::removeChild() - Listeden belirtilen çocuğu siler

User Contributed Notes

There are no user contributed notes for this page.


İsmi belirtilen özniteliği siler

  • « DOMElement::remove
  • DOMElement::removeAttributeNode »
  • PHP Manual
  • DOMElement
  • İsmi belirtilen özniteliği siler

DOMElement::removeAttribute

(PHP 5, PHP 7, PHP 8)

DOMElement::removeAttribute — İsmi belirtilen özniteliği siler

Açıklama

public DOMElement::removeAttribute(string $isim): bool

İsmi belirtilen özniteliği siler.

Bağımsız Değişkenler

isim

Silinecek özniteliğin ismi.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Hatalar/İstisnalar

DOM_NO_MODIFICATION_ALLOWED_ERR

Düğüm salt okunur ise oluşur.

Ayrıca Bakınız

  • DOMElement::hasAttribute() - İsmi belirtilen öznitelik mevcut mu diye bakar
  • DOMElement::getAttribute() - İsmi belirtilen özniteliğin değerini döndürür
  • DOMElement::setAttribute() - Yeni bir öznitelik ekler ya da var olanda değişiklik yapar

User Contributed Notes

suwayan at mail dot ru 30-Mar-2012 12:19
<?php
/*When I try to get a some attribute from not validated HTML or XML document, PHP dies with no errors in logs or output:
*/
        function is_attribute_value($obj,$type,$value)
        {
            $_ret=false;
            if($obj)
            {
                if($val=$obj->getAttribute($type))
                {
                    if($val==$value)
                    {
                        $_ret=true;
                    }
                }
            }
            return $_ret;
        }
//And this check helped to me:
        function is_attribute_value($obj,$type,$value)
        {
            $_ret=false;
            if($obj->attributes)
            {
                if($val=$obj->getAttribute($type))
                {
                    if($val==$value)
                    {
                        $_ret=true;
                    }
                }
            }
            return $_ret;
        }
?>
Rakesh Verma - rakeshnsony at gmail dot com 10-Nov-2010 11:38
<?php

//Store your html into $html variable.

$html="<html>
<head>
<title>Rakesh Verma</title>
</head>

<body>
    <a href='http://example.com'>Example</a>
    <a href='http://google.com'>Google</a>
    <a href='http://www.yahoo.com'>Yahoo</a>
</body>

</html>";

$dom = new DOMDocument();
$dom->loadHTML($html);

//Evaluate Anchor tag in HTML
$xpath = new DOMXPath($dom);
$hrefs = $xpath->evaluate("/html/body//a");

for ($i = 0; $i < $hrefs->length; $i++) {
        $href = $hrefs->item($i);
        $url = $href->getAttribute('href');

        //remove and set target attribute
        $href->removeAttribute('target');
        $href->setAttribute("target", "_blank");

        $newURL=$url.".au";

        //remove and set href attribute
        $href->removeAttribute('href');
        $href->setAttribute("href", $newURL);
}

// save html
$html=$dom->saveHTML();

echo $html;

?>


Belirtilen öznitelik düğümünü siler

  • « DOMElement::removeAttribute
  • DOMElement::removeAttributeNS »
  • PHP Manual
  • DOMElement
  • Belirtilen öznitelik düğümünü siler

DOMElement::removeAttributeNode

(PHP 5, PHP 7, PHP 8)

DOMElement::removeAttributeNode — Belirtilen öznitelik düğümünü siler

Açıklama

public DOMElement::removeAttributeNode(DOMAttr $öznitelik): DOMAttr|false

öznitelik düğümünü eleman düğümünden siler.

Bağımsız Değişkenler

öznitelik

Silinecek öznitelik düğümü.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Hatalar/İstisnalar

DOM_NO_MODIFICATION_ALLOWED_ERR

Düğüm salt okunur ise oluşur.

DOM_NOT_FOUND_ERR

öznitelik, bu düğümün bir özniteliği değilse oluşur.

Ayrıca Bakınız

  • DOMElement::hasAttribute() - İsmi belirtilen öznitelik mevcut mu diye bakar
  • DOMElement::getAttributeNode() - İsmi belirtilen öznitelik düğümünü döndürür
  • DOMElement::setAttributeNode() - Elemana yeni bir öznitelik düğümü ekler

User Contributed Notes

xr07354 at gmx dot de 18-Jun-2013 01:16
Basic: I use PHP5.4.9 from Ubuntu 13.04 repository. The aim of my code is to iterate HTML source (as a DomDocument) recursively and cleanup everything that is not valid to be used inside Epub files (i.e. and attribute align is not valid for paragraphs in Epubs).

FIRST: Today I tried removing attributes from a DOMElement using this simple code:
<?php
for ( $k=0; $k < $element->attributes->length; $k++) {
    if( /* some rule */ ){
        var_dump( $element->attributes->item($k)->nodeName);
        $element->removeAttributeNode( $element->attributes->item($k));
    }
}
?>
Unfortunately all attributes still existed when this loop was finished, even if these var_dumps told me that deleting them was tried.

I solved this problem iterating the attributes list backward:
<?php
for ( $k = $element->attributes->length - 1; $k >= 0; --$k) {
    if( /* same rule */ ){
        var_dump( $element->attributes->item($k)->nodeName);
        $element->removeAttributeNode( $element->attributes->item($k));
    }
}
?>
SECOND: DOMElement::removeAttributeNode does NOT return a bool but a DOMAttr object.


İsmi ve isim alanı belirtilen özniteliği siler

  • « DOMElement::removeAttributeNode
  • DOMElement::replaceChildren »
  • PHP Manual
  • DOMElement
  • İsmi ve isim alanı belirtilen özniteliği siler

DOMElement::removeAttributeNS

(PHP 5, PHP 7, PHP 8)

DOMElement::removeAttributeNS — İsmi ve isim alanı belirtilen özniteliği siler

Açıklama

public DOMElement::removeAttributeNS(?string $uri, string $isim): void

Elemanın uri isim alanındaki isim özniteliğini siler.

Bağımsız Değişkenler

uri

İsim alanını betimleyen adres.

isim

önek:öznitelik biçeminde öznitelik ismi.

Dönen Değerler

Hiçbir değer dönmez.

Hatalar/İstisnalar

DOM_NO_MODIFICATION_ALLOWED_ERR

Düğüm salt okunur ise oluşur.

Ayrıca Bakınız

  • DOMElement::hasAttributeNS() - Belirtilen isim alanlı öznitelik var mı diye bakar
  • DOMElement::getAttributeNS() - İsmi ve isim alanı belirtilen özniteliğin değerini döndürür
  • DOMElement::setAttributeNS() - İsim alanlı yeni bir öznitelik ekler

User Contributed Notes

primaryspace at hotmail dot com 10-Aug-2005 12:56
This method can be used to remove a namespace declaration from an element, even though the declaration is not considered an attribute by the DOM.  The prefix will be removed from any element or attribute using it.

<?php

$dom = DOMDocument::loadXML('<foo:root xmlns:foo="http:bar"/>');
$element = $dom->childNodes->item(0);

// prints '0':
echo (int) $element->hasAttributeNS('http:bar', 'foo');

$element->removeAttributeNS('http:bar', 'foo');

/* prints '<?xml version="1.0"?> <root/>': */
print htmlentities($dom->saveXML());

?>


Replace children in element

  • « DOMElement::removeAttributeNS
  • DOMElement::replaceWith »
  • PHP Manual
  • DOMElement
  • Replace children in element

DOMElement::replaceChildren

(PHP 8 >= 8.3.0)

DOMElement::replaceChildren — Replace children in element

Açıklama

public DOMElement::replaceChildren(DOMNode|string ...$nodes): void

Replaces the children in the element with new nodes.

Bağımsız Değişkenler

nodes

The nodes replacing the children. Strings are automatically converted to text nodes.

Dönen Değerler

Hiçbir değer dönmez.

Hatalar/İstisnalar

DOM_HIERARCHY_REQUEST_ERR

Raised if this node is of a type that does not allow children of the type of one of the passed nodes, or if the node to put in is one of this node's ancestors or this node itself.

DOM_WRONG_DOCUMENT_ERR

Raised if one of the passed nodes was created from a different document than the one that created this node.

Sürüm Bilgisi

Sürüm: | Açıklama
8.3.0 | Calling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.

Örnekler

Örnek 1 DOMElement::replaceChildren() example

Replaces the children with new nodes.

<?php
$doc = new DOMDocument;
$doc->loadXML("<container><hello/></container>");
$container = $doc->documentElement;

$container->replaceWith("beautiful", $doc->createElement("world"));

echo $doc->saveXML();
?>

Yukarıdaki örneğin çıktısı:

<?xml version="1.0"?>
beautiful
<world/>

Ayrıca Bakınız

  • DOMParentNode::replaceChildren() - Replace children in node
  • DOMElement::replaceWith() - Replaces the element with new nodes
  • DOMElement::after() - Adds nodes after the element
  • DOMElement::before() - Adds nodes before the element
  • DOMElement::remove() - Removes the element

User Contributed Notes

There are no user contributed notes for this page.


Replaces the element with new nodes

  • « DOMElement::replaceChildren
  • DOMElement::setAttribute »
  • PHP Manual
  • DOMElement
  • Replaces the element with new nodes

DOMElement::replaceWith

(PHP 8)

DOMElement::replaceWith — Replaces the element with new nodes

Açıklama

public DOMElement::replaceWith(DOMNode|string ...$nodes): void

Replaces the element with new nodes.

Bağımsız Değişkenler

nodes

The replacement nodes. Strings are automatically converted to text nodes.

Dönen Değerler

Hiçbir değer dönmez.

Hatalar/İstisnalar

DOM_HIERARCHY_REQUEST_ERR

Raised if the parent is of a type that does not allow children of the type of one of the passed nodes, or if the node to put in is one of this node's ancestors or this node itself.

DOM_WRONG_DOCUMENT_ERR

Raised if one of the passed nodes was created from a different document than the one that created this node.

Sürüm Bilgisi

Sürüm: | Açıklama
8.3.0 | Calling this method on a node without a parent is now a no-op to align the behaviour with the DOM specification. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.

Örnekler

Örnek 1 DOMElement::replaceWith() example

Replaces the element with new nodes.

<?php
$doc = new DOMDocument;
$doc->loadXML("<container><hello/></container>");
$cdata = $doc->documentElement->firstChild;

$cdata->replaceWith("beautiful", $doc->createElement("world"));

echo $doc->saveXML();
?>

Yukarıdaki örneğin çıktısı:

<?xml version="1.0"?>
<container>beautiful<world/></container>

Ayrıca Bakınız

  • DOMChildNode::replaceWith() - Replaces the node with new nodes
  • DOMElement::replaceChildren() - Replace children in element
  • DOMElement::after() - Adds nodes after the element
  • DOMElement::before() - Adds nodes before the element
  • DOMElement::remove() - Removes the element

User Contributed Notes

There are no user contributed notes for this page.


Yeni bir öznitelik ekler ya da var olanda değişiklik yapar

  • « DOMElement::replaceWith
  • DOMElement::setAttributeNode »
  • PHP Manual
  • DOMElement
  • Yeni bir öznitelik ekler ya da var olanda değişiklik yapar

DOMElement::setAttribute

(PHP 5, PHP 7, PHP 8)

DOMElement::setAttribute — Yeni bir öznitelik ekler ya da var olanda değişiklik yapar

Açıklama

public DOMElement::setAttribute(string $isim, string $değer): DOMAttr|bool

İsmi ve değeri belirtilen özniteliği tanımlar. Öznitelik düğümde mevcut değilse oluşturulur.

Bağımsız Değişkenler

isim

Özniteliğin ismi.

değer

Özniteliğin değeri.

Dönen Değerler

Bir hata durumunda false, aksi takdirde yeni veya değişiklik yapılmış DOMAttr nesnesi döner.

Hatalar/İstisnalar

DOM_NO_MODIFICATION_ALLOWED_ERR

Düğüm salt okunur ise oluşur.

Örnekler

Örnek 1 - Bir özniteliğin atanması

<?php
$doc = new DOMDocument("1.0");
$node = $doc->createElement("para");
$newnode = $doc->appendChild($node);
$newnode->setAttribute("align", "left");
?>

Ayrıca Bakınız

  • DOMElement::hasAttribute() - İsmi belirtilen öznitelik mevcut mu diye bakar
  • DOMElement::getAttribute() - İsmi belirtilen özniteliğin değerini döndürür
  • DOMElement::removeAttribute() - İsmi belirtilen özniteliği siler

User Contributed Notes

info at ensostudio dot ru 02-Dec-2021 06:17
Solution to render HTML 5 tags with attributes with/without value:
<?php
$dom = new DOMImplementation();
$doc = $dom->createDocument(null, 'html', $dom->createDocumentType('html'));

$tag = $doc->appendChild($doc->createElement('input'));
$tag->setAttribute('type', 'text');
$tag->setAttribute('disabled', '');

echo $doc->saveHTML($tag); // <input type="text" disabled="">

$doc->normalize(); // normalize attributes
echo $doc->saveHTML($tag); // <input type="text" disabled>
?>
lehal2@hotmail 06-Jun-2013 09:44
The use of Dom to first remove and then add the width and height to the first img tag from the text.I hope it help you to save your time
<?php
$html = '

            <img src="http://www.example.com/images/header.jpg" width="898" height="223" style="border-bottom:5px solid #cccccc;"/>
        <img src="http://www.example.com/images/header2.jpg" width="898" height="223" style="border-bottom:5px solid #cccccc;"/>
        ';

$doc = DOMDocument::loadHTML($html);
$c =0;
foreach($doc->getElementsByTagName('img') as $image){
    if ($c>0) continue;
    foreach(array('width', 'height') as $attribute_to_remove){
        echo $attribute_to_remove;
        if($image->hasAttribute($attribute_to_remove)){
            $image->removeAttribute($attribute_to_remove);

        }
        if($attribute_to_remove=='height'){
            if(!$image->hasAttribute($attribute_to_remove)){
                $image->setAttribute($attribute_to_remove,'220');

            }}
        if($attribute_to_remove=='width'){
      if(!$image->hasAttribute($attribute_to_remove)){
            $image->setAttribute($attribute_to_remove,'700');

        }}
        $c = $c+1;
    }
}
echo $doc->saveHTML();
Rakesh Verma - rakeshnsony at gmail dot com 10-Nov-2010 11:27
<?php
//Store your html into $html variable.
$html="
<html>
<head>
<title>Untitled Document</title>
</head>

<body>
    <a href='http://example.com'>Example</a><br>
    <a href='http://google.com'>Google</a><br>

    <a href='http://www.yahoo.com'>Yahoo</a><br>
</body>

</html>";

$dom = new DOMDocument();
$dom->loadHTML($html);

//Evaluate Anchor tag in HTML
$xpath = new DOMXPath($dom);
$hrefs = $xpath->evaluate("/html/body//a");

for ($i = 0; $i < $hrefs->length; $i++) {
        $href = $hrefs->item($i);
        $url = $href->getAttribute('href');

        //remove and set target attribute
        $href->removeAttribute('target');
        $href->setAttribute("target", "_blank");

        $newURL=$url."/newurl";

        //remove and set href attribute
        $href->removeAttribute('href');
        $href->setAttribute("href", $newURL);
}

// save html
$html=$dom->saveHTML();

echo $html;

?>
address at gmail dot com 03-Jul-2008 07:25
If wanting to set an attribute of an element with unique id of "1"

<?php
$dom = new DomDocument();
$dom->load('test.xml');
$xp = new DomXPath($dom);
$res = $xp->query("//*[@id = '1']");
$res->item(0)->setAttribute('title','2');
$dom->save('test.xml');
?>
Vasil Rangelov 31-Jul-2007 04:44
@karvjorm,
Using this method is not exactly a good practice. Infact, I think it may be a bug.
Names beginning with "xml" are reserved (for namespaces in this case).
setAttribute() should return false in this case I think, but I suppose it doesn't.

Still, the right way to do it is with createElementNS().
It lets you specify the namespace when creating the element node.

So the equivalent to yours ($html added to allow word wrapping) is:

$dom = new DomDocument('1.0','iso-8859-15');
$html = $dom->createElementNS('http://www.w3.org/1999/xhtml', 'html');
$ht_ml = $dom->appendChild($html);
$ht_ml->setAttribute('xml:lang','fi');
$ht_ml->setAttribute('lang','fi');
karvjorm at users.sourceforge.net 02-Mar-2007 03:05
$dom = new DomDocument('1.0','iso-8859-15');

$ht_ml = $dom->appendChild($dom->createElement('html'));
$ht_ml->setAttribute('xmlns','http://www.w3.org/1999/xhtml');
$ht_ml->setAttribute('xml:lang','fi');
$ht_ml->setAttribute('lang','fi');

Result:

<?xml version="1.0" encoding="iso-8859-15"?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fi" lang="fi">


Elemana yeni bir öznitelik düğümü ekler

  • « DOMElement::setAttribute
  • DOMElement::setAttributeNodeNS »
  • PHP Manual
  • DOMElement
  • Elemana yeni bir öznitelik düğümü ekler

DOMElement::setAttributeNode

(PHP 5, PHP 7, PHP 8)

DOMElement::setAttributeNode — Elemana yeni bir öznitelik düğümü ekler

Açıklama

public DOMElement::setAttributeNode(DOMAttr $öznitelik): DOMAttr|null|false

Elemana öznitelik düğümünü ekler. Elemanda aynı ada sahip bir nitelik zaten varsa, bu öznitelik belirtilen öznitelik ile değiştirilir.

Bağımsız Değişkenler

öznitelik

Eklenecek öznitelik düğümü.

Dönen Değerler

Öznitelik mevcut olanla değiştirilmişse eski düğümü veya eski düğüm yoksa null döndürür. DOM_WRONG_DOCUMENT_ERR hatası oluşmuşsa ve strictErrorChecking değeri de false ise false döner.

Hatalar/İstisnalar

DOM_WRONG_DOCUMENT_ERR

öznitelik elemana değil, farklı bir belgeye aitse oluşur.

Ayrıca Bakınız

  • DOMElement::hasAttribute() - İsmi belirtilen öznitelik mevcut mu diye bakar
  • DOMElement::getAttributeNode() - İsmi belirtilen öznitelik düğümünü döndürür
  • DOMElement::removeAttributeNode() - Belirtilen öznitelik düğümünü siler

User Contributed Notes

karvjorm at users.sourceforge.net 02-Mar-2007 04:01
$dom = new DomDocument('1.0','iso-8859-15');

$ht_ml = $dom->appendChild($dom->createElement('html'));

$he_ad = $ht_ml->appendChild($dom->createElement('head'));

$tit_le= $he_ad->appendChild($dom->createElement('title'));
$tit_le->appendChild($dom->createTextNode('DOMAttr test'));

$me_ta = $he_ad->appendChild(new DOMElement('meta'));
$me_ta->setAttributeNode(new DOMAttr('name', 'Description'));
$me_ta->setAttributeNode(new DOMAttr('content', 'example'));

$me_ta = $he_ad->appendChild(new DOMElement('meta'));
$me_ta->setAttributeNode(new DOMAttr('name', 'Author'));
$me_ta->setAttributeNode(new DOMAttr('content', 'karvjorm'));

Result:

<?xml version="1.0" encoding="iso-8859-15"?>
<html>
  <head>
    <title>DOMAttr test</title>
    <meta name="Description" content="example"/>
    <meta name="Author" content="karvjorm"/>
  </head>


Elemana isim alanlı yeni bir öznitelik düğümü ekler

  • « DOMElement::setAttributeNode
  • DOMElement::setAttributeNS »
  • PHP Manual
  • DOMElement
  • Elemana isim alanlı yeni bir öznitelik düğümü ekler

DOMElement::setAttributeNodeNS

(PHP 5, PHP 7, PHP 8)

DOMElement::setAttributeNodeNS — Elemana isim alanlı yeni bir öznitelik düğümü ekler

Açıklama

public DOMElement::setAttributeNodeNS(DOMAttr $öznitelik): DOMAttr|null|false

İsim alanını hesaba katarak elemana isim alanlı öznitelik düğümünü ekler. Elemanda aynı ada sahip bir nitelik zaten varsa, bu öznitelik belirtilen öznitelik ile değiştirilir.

Bağımsız Değişkenler

öznitelik

Eklenecek öznitelik düğümü.

Dönen Değerler

Öznitelik mevcut olanla değiştirilmişse eski düğümü veya eski düğüm yoksa null döndürür. DOM_WRONG_DOCUMENT_ERR hatası oluşmuşsa ve strictErrorChecking değeri de false ise false döner.

Hatalar/İstisnalar

DOM_WRONG_DOCUMENT_ERR

öznitelik elemana değil, farklı bir belgeye aitse oluşur.

Ayrıca Bakınız

  • DOMElement::hasAttributeNS() - Belirtilen isim alanlı öznitelik var mı diye bakar
  • DOMElement::getAttributeNodeNS() - İsmi ve isim alanı belirtilen öznitelik düğümünü döndürür
  • DOMElement::removeAttributeNode() - Belirtilen öznitelik düğümünü siler

User Contributed Notes

There are no user contributed notes for this page.


İsim alanlı yeni bir öznitelik ekler

  • « DOMElement::setAttributeNodeNS
  • DOMElement::setIdAttribute »
  • PHP Manual
  • DOMElement
  • İsim alanlı yeni bir öznitelik ekler

DOMElement::setAttributeNS

(PHP 5, PHP 7, PHP 8)

DOMElement::setAttributeNS — İsim alanlı yeni bir öznitelik ekler

Açıklama

public DOMElement::setAttributeNS(?string $uri, string $isim, string $değer): void

İsmi, değeri ve isim alanı belirtilen özniteliği tanımlar. Öznitelik düğümde mevcut değilse oluşturulur.

Bağımsız Değişkenler

uri

İsim alanını betimleyen adres.

isim

önek:öznitelik biçeminde öznitelik ismi.

değer

Özniteliğin değeri.

Dönen Değerler

Hiçbir değer dönmez.

Hatalar/İstisnalar

DOM_NO_MODIFICATION_ALLOWED_ERR

Düğüm salt okunur ise oluşur.

DOM_NAMESPACE_ERR

isim uygun değilse veya bir önek belirtildiği halde uri olarak null verilmişse bu hata oluşur.

Ayrıca Bakınız

  • DOMElement::hasAttributeNS() - Belirtilen isim alanlı öznitelik var mı diye bakar
  • DOMElement::getAttributeNS() - İsmi ve isim alanı belirtilen özniteliğin değerini döndürür
  • DOMElement::removeAttributeNS() - İsmi ve isim alanı belirtilen özniteliği siler

User Contributed Notes

catalinenache78 at gmail dot com 18-May-2011 07:39
To add new brand xml namespace use:

<?php
    $element->setAttributeNS(
        'http://www.w3.org/2000/xmlns/', // xmlns namespace URI
        'xmlns:mynamespace',
        'example.com/mynamespace'
    );
?>

'http://www.w3.org/2000/xmlns/' URI is important
to be able to add  new namespaces !!!

Later you can use your namespace like:

<?php
    $element->setAttributeNS(
        'example.com/mynamespace',
        'mynamespace:something',
        'value'
    );
?>


İsmi belirtilen özniteliği bir ID özniteliği olarak tanımlar

  • « DOMElement::setAttributeNS
  • DOMElement::setIdAttributeNode »
  • PHP Manual
  • DOMElement
  • İsmi belirtilen özniteliği bir ID özniteliği olarak tanımlar

DOMElement::setIdAttribute

(PHP 5, PHP 7, PHP 8)

DOMElement::setIdAttribute — İsmi belirtilen özniteliği bir ID özniteliği olarak tanımlar

Açıklama

public DOMElement::setIdAttribute(string $isim, bool $id_olarak): void

isim özniteliğini bir ID özniteliği haline getirir.

Bağımsız Değişkenler

isim

Özniteliğin ismi.

isId

isim özniteliği bir ID özniteliği olarak bildiriliyorsa true, aksi takdirde false olmalıdır.

Dönen Değerler

Hiçbir değer dönmez.

Hatalar/İstisnalar

DOM_NO_MODIFICATION_ALLOWED_ERR

Düğüm salt okunursa oluşur.

DOM_NOT_FOUND_ERR

isim, bu düğümün bir özniteliği değilse oluşur.

Ayrıca Bakınız

  • DOMDocument::getElementById() - ID'si belirtilen elemanı döndürür
  • DOMElement::setIdAttributeNode() - Belirtilen öznitelik düğümünü ID türünde bir öznitelik düğümü haline getirir
  • DOMElement::setIdAttributeNS() - İsmi ve isim alanı belirtilen özniteliği bir ID özniteliği olarak tanımlar

User Contributed Notes

There are no user contributed notes for this page.


Belirtilen öznitelik düğümünü ID türünde bir öznitelik düğümü haline getirir

  • « DOMElement::setIdAttribute
  • DOMElement::setIdAttributeNS »
  • PHP Manual
  • DOMElement
  • Belirtilen öznitelik düğümünü ID türünde bir öznitelik düğümü haline getirir

DOMElement::setIdAttributeNode

(PHP 5, PHP 7, PHP 8)

DOMElement::setIdAttributeNode — Belirtilen öznitelik düğümünü ID türünde bir öznitelik düğümü haline getirir

Açıklama

public DOMElement::setIdAttributeNode(DOMAttr $öznitelik, bool $id_olarak): void

Belirtilen öznitelik düğümünü ID türünde bir öznitelik düğümü haline getirir.

Bağımsız Değişkenler

öznitelik

Öznitelik düğümü.

id_olarak

isim özniteliği bir ID özniteliği olarak bildiriliyorsa true, aksi takdirde false olmalıdır.

Dönen Değerler

Hiçbir değer dönmez.

Hatalar/İstisnalar

DOM_NO_MODIFICATION_ALLOWED_ERR

Düğüm salt okunursa oluşur.

DOM_NOT_FOUND_ERR

öznitelik, bu düğümün bir özniteliği değilse oluşur.

Ayrıca Bakınız

  • DOMDocument::getElementById() - ID'si belirtilen elemanı döndürür
  • DOMElement::setIdAttribute() - İsmi belirtilen özniteliği bir ID özniteliği olarak tanımlar
  • DOMElement::setIdAttributeNS() - İsmi ve isim alanı belirtilen özniteliği bir ID özniteliği olarak tanımlar

User Contributed Notes

There are no user contributed notes for this page.


İsmi ve isim alanı belirtilen özniteliği bir ID özniteliği olarak tanımlar

  • « DOMElement::setIdAttributeNode
  • DOMElement::toggleAttribute »
  • PHP Manual
  • DOMElement
  • İsmi ve isim alanı belirtilen özniteliği bir ID özniteliği olarak tanımlar

DOMElement::setIdAttributeNS

(PHP 5, PHP 7, PHP 8)

DOMElement::setIdAttributeNS — İsmi ve isim alanı belirtilen özniteliği bir ID özniteliği olarak tanımlar

Açıklama

public DOMElement::setIdAttributeNS(string $uri, string $isim, bool $id_olarak): void

uri ile belirtilen isim alanındaki isim özniteliğini bir ID özniteliği haline getirir.

Bağımsız Değişkenler

uri

Özniteliğin isim alanını betimleyen adres.

isim

önek:öznitelik biçeminde özniteliğin ismi.

id_olarak

isim özniteliği bir ID özniteliği olarak bildiriliyorsa true, aksi takdirde false olmalıdır.

Dönen Değerler

Hiçbir değer dönmez.

Hatalar/İstisnalar

DOM_NO_MODIFICATION_ALLOWED_ERR

Düğüm salt okunursa oluşur.

DOM_NOT_FOUND_ERR

isim, bu düğümün bir özniteliği değilse oluşur.

Ayrıca Bakınız

  • DOMDocument::getElementById() - ID'si belirtilen elemanı döndürür
  • DOMElement::setIdAttribute() - İsmi belirtilen özniteliği bir ID özniteliği olarak tanımlar
  • DOMElement::setIdAttributeNode() - Belirtilen öznitelik düğümünü ID türünde bir öznitelik düğümü haline getirir

User Contributed Notes

There are no user contributed notes for this page.


Toggle attribute

  • « DOMElement::setIdAttributeNS
  • DOMEntity »
  • PHP Manual
  • DOMElement
  • Toggle attribute

DOMElement::toggleAttribute

(PHP 8 >= 8.3.0)

DOMElement::toggleAttribute — Toggle attribute

Açıklama

public DOMElement::toggleAttribute(string $qualifiedName, ?bool $force = null): bool

Toggle the attribute.

Bağımsız Değişkenler

qualifiedName

The qualified name of the attribute.

force

  • if null, the function will toggle the attribute.
  • if true, the function adds the attribute.
  • if false, the function removes the attribute.

Dönen Değerler

Returns true if the attribute is present after finishing the call, false otherwise.

Örnekler

Örnek 1 DOMElement::toggleAttribute() example

<?php

$dom = new DOMDocument();
$dom->loadXML("<?xml version='1.0'?><container selected=\"\"/>");

var_dump($dom->documentElement->toggleAttribute('selected'));
echo $dom->saveXML() . PHP_EOL;

var_dump($dom->documentElement->toggleAttribute('selected'));
echo $dom->saveXML();
?>

Yukarıdaki örneğin çıktısı:

bool(false)
<?xml version="1.0"?>
<container/>

bool(true)
<?xml version="1.0"?>
<container selected=""/>

User Contributed Notes

There are no user contributed notes for this page.


DOMEntity sınıfı

(PHP 5, PHP 7, PHP 8)

Giriş

Bu arayüz, bir XML belgede, çözümlenebilir olsun olmasın, bilinen bir öğeyi temsil eder.

Sınıf Sözdizimi

class DOMEntity extends DOMNode {
/* Özellikler */
public readonly ?string $publicId;
public readonly ?string $systemId;
public readonly ?string $notationName;
public readonly ?string $actualEncoding;
public readonly ?string $encoding = null;
public readonly ?string $version = null;
/* Miras alınan özellikler */
public readonly ?string $nodeName;
public string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly DOMNodeList $childNodes;
public readonly ?DOMNode $firstChild;
public readonly ?DOMNode $lastChild;
public readonly ?DOMNode $previousSibling;
public readonly ?DOMNode $nextSibling;
public readonly ?DOMNamedNodeMap $attributes;
public readonly ?DOMDocument $ownerDocument;
public readonly ?string $namespaceURI;
public ?string $prefix;
public readonly ?string $localName;
public readonly ?string $baseURI;
public string $textContent;
/* Miras alınan yöntemler */
public DOMNode::appendChild(DOMNode $yeni): DOMNode|false
public DOMNode::C14N(
bool $özel = false,
bool $aAçıklamalı = false,
?array $xpath = null,
?array $isim_alanları = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $torunlar_dahil = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(?array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $yeni, ?DOMNode $mevcut = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $uri): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $düğüm): bool
public DOMNode::isSupported(string $özellik, string $sürüm): bool
public DOMNode::lookupNamespaceURI(?string $önek): ?string
public DOMNode::lookupPrefix(string $uri): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $eski): DOMNode|false
public DOMNode::replaceChild(DOMNode $yeni, DOMNode $eski): DOMNode|false
}

Özellikler

publicId

Belirtilmişse öğe ile ilişkili genel betimleyici, yoksa null.

systemId

Belirtilmişse öğe ile ilişkili sistem betimleyici, yoksa null. Bir mutlak URI olabileceği gibi olmayabilir de.

notationName

Çözümsüz öğeler için öğenin gösterim ismi. Çözümlenebilen öğeler için null.

actualEncoding

Öğe bir harici çözümlenebilir öğe olduğu takdirde, çözümleme sırasında öğe için kullanılan kodlamayı belirten bir öznitelik. Eğer öğe bir dahili alt kümedeyse veya bilinmiyorsa null'dur.

encoding

Öğe bir harici çözümlenebilir öğe olduğu takdirde, metin bildiriminin bir parçası olarak öğenin karakter kodlamasını belirten bir özniteliktir, aksi takdirde null'dur.

version

Öğe bir harici çözümlenebilir öğe olduğu takdirde, metin bildiriminin bir parçası olarak öğenin sürüm numarasını belirten bir özniteliktir, aksi takdirde null'dur.

User Contributed Notes

There are no user contributed notes for this page.


DOMEntityReference sınıfı

(PHP 5, PHP 7, PHP 8)

Sınıf Sözdizimi

class DOMEntityReference extends DOMNode {
/* Miras alınan özellikler */
public readonly ?string $nodeName;
public string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly DOMNodeList $childNodes;
public readonly ?DOMNode $firstChild;
public readonly ?DOMNode $lastChild;
public readonly ?DOMNode $previousSibling;
public readonly ?DOMNode $nextSibling;
public readonly ?DOMNamedNodeMap $attributes;
public readonly ?DOMDocument $ownerDocument;
public readonly ?string $namespaceURI;
public ?string $prefix;
public readonly ?string $localName;
public readonly ?string $baseURI;
public string $textContent;
/* Yöntemler */
public __construct(string $name)
/* Miras alınan yöntemler */
public DOMNode::appendChild(DOMNode $yeni): DOMNode|false
public DOMNode::C14N(
bool $özel = false,
bool $aAçıklamalı = false,
?array $xpath = null,
?array $isim_alanları = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $torunlar_dahil = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(?array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $yeni, ?DOMNode $mevcut = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $uri): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $düğüm): bool
public DOMNode::isSupported(string $özellik, string $sürüm): bool
public DOMNode::lookupNamespaceURI(?string $önek): ?string
public DOMNode::lookupPrefix(string $uri): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $eski): DOMNode|false
public DOMNode::replaceChild(DOMNode $yeni, DOMNode $eski): DOMNode|false
}

İçindekiler

  • DOMEntityReference::__construct — Yeni bir DOMEntityReference nesnesi oluşturur

User Contributed Notes

There are no user contributed notes for this page.


Yeni bir DOMEntityReference nesnesi oluşturur

  • « DOMEntityReference
  • DOMException »
  • PHP Manual
  • DOMEntityReference
  • Yeni bir DOMEntityReference nesnesi oluşturur

DOMEntityReference::__construct

(PHP 5, PHP 7, PHP 8)

DOMEntityReference::__construct — Yeni bir DOMEntityReference nesnesi oluşturur

Açıklama

public DOMEntityReference::__construct(string $name)

Yeni bir DOMEntityReference nesnesi oluşturur.

Bağımsız Değişkenler

name

Öğe gönderiminin ismi.

Örnekler

Örnek 1 Yeni bir DOMEntityReference oluşturmak

<?php

$dom = new DOMDocument('1.0', 'utf-8');
$element = $dom->appendChild(new DOMElement('root'));
$entity = $element->appendChild(new DOMEntityReference('nbsp'));
echo $dom->saveXML(); /* <?xml version="1.0" encoding="utf-8"?><root>&nbsp;</root> */

?>

Ayrıca Bakınız

  • DOMDocument::createEntityReference() - Yeni bir öğe bildirimi düğümü oluşturur

User Contributed Notes

There are no user contributed notes for this page.


DOMException sınıfı

(PHP 5, PHP 7, PHP 8)

Giriş

Bir işlemin mantıksal sebeplerle yerine getirilmesinin imkansız olduğu durumlarda olduğu gibi, belli durumlarda istisnalar oluşturan DOM işlemleri.

Ayrıca bakınız: İstisnalar.

Sınıf Sözdizimi

final class DOMException extends Exception {
/* Özellikler */
public int $code;
/* Miras alınan özellikler */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Miras alınan yöntemler */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Özellikler

code

Üretilen hatanın türünü belirten bir tamsayı.

User Contributed Notes

There are no user contributed notes for this page.


DOMImplementation sınıfı

(PHP 5, PHP 7, PHP 8)

Giriş

İşlemleri belli bir belge nesne modeli örneğinden bağımsız olarak gerçekleştirmek için bazı yöntemler sunan bir sınıf.

Sınıf Sözdizimi

class DOMImplementation {
/* Yöntemler */
public createDocument(?string $isimalanı = null, string $önekliAd = "", ?DOMDocumentType $belgeTürü = null): DOMDocument|false
public createDocumentType(string $belgeAdı, string $publicId = "", string $systemId = ""): DOMDocumentType|false
public hasFeature(string $özellik, string $sürüm): bool
}

İçindekiler

  • DOMImplementation::__construct — Yeni bir DOMImplementation nesnesi oluşturur
  • DOMImplementation::createDocument — Belge elemanı belirtilen DOMDocument nesnesini oluşturur
  • DOMImplementation::createDocumentType — Boş bir DOMDocumentType nesnesi oluşturur
  • DOMImplementation::hasFeature — DOM gerçeklenimi belirtilen özelliğe sahip mi diye bakar

User Contributed Notes

LANGE.LUDO 07-Nov-2014 06:05
Ok got it working like a charm using "proxy pattern" with traits. The idea being declaring the common methods inside a "trait" in order for extended and registered Node Classes to have access even if not derived / child of the extended DOMNode...

Here a small snippet :
<?php
    namespace my;

    trait tNode
    {    // We need the magic method __get in order to add properties such as DOMNode->parentElement
        public function __get($name)
        {    if(property_exists($this, $name)){return $this->$name;}
            if(method_exists($this, $name)){return $this->$name();}
            throw new \ErrorException('my\\Node property \''.(string) $name.'\' not found...', 42, E_USER_WARNING);
        }

        // parentElement property definition
        private function parentElement()
        {    if($this->parentNode === null){return null;}
            if($this->parentNode->nodeType === XML_ELEMENT_NODE){return $this->parentNode;}
            return $this->parentNode->parentElement();
        }

        // JavaScript equivalent
        public function isEqualNode(\DOMNode $node){return $this->isSameNode($node);}
        public function compareDocumentPosition(\DOMNode $otherNode)
        {    if($this->ownerDocument !== $otherNode->ownerDocument){return DOCUMENT_POSITION_DISCONNECTED;}
            $c = strcmp($this->getNodePath(), $otherNode->getNodePath());
            if($c === 0){return 0;}
            else if($c < 0){return DOCUMENT_POSITION_FOLLOWING | ($c < -1 ? DOCUMENT_POSITION_CONTAINED_BY : 0);}
            return DOCUMENT_POSITION_PRECEDING | ($c > 1 ? DOCUMENT_POSITION_CONTAINS : 0);
        }
        public function contains(\DOMNode $otherNode){return ($this->compareDocumentPosition($otherNode) >= DOCUMENT_POSITION_CONTAINED_BY);}
    }

    class Document extends \DomDocument
    {    public function __construct($version=null, $encoding=null)
        {    parent::__construct($version, $encoding);
            $this->registerNodeClass('DOMNode', 'my\Node');
            $this->registerNodeClass('DOMElement', 'my\Element');
            $this->registerNodeClass('DOMDocument', 'my\Document');
            /* [...] */
        }
    }

    class Element extends \DOMElement
    {    use tNode;
        /* [...] */
    }

    class Node extends \DOMNode
    {    use tNode;
        /* [...] */
    }

?>


Yeni bir DOMImplementation nesnesi oluşturur

  • « DOMImplementation
  • DOMImplementation::createDocument »
  • PHP Manual
  • DOMImplementation
  • Yeni bir DOMImplementation nesnesi oluşturur

DOMImplementation::__construct

(PHP 5, PHP 7)

DOMImplementation::__construct — Yeni bir DOMImplementation nesnesi oluşturur

Açıklama

DOMImplementation::__construct()

Yeni bir DOMImplementation nesnesi oluşturur.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

User Contributed Notes

There are no user contributed notes for this page.


Belge elemanı belirtilen DOMDocument nesnesini oluşturur

  • « DOMImplementation::__construct
  • DOMImplementation::createDocumentType »
  • PHP Manual
  • DOMImplementation
  • Belge elemanı belirtilen DOMDocument nesnesini oluşturur

DOMImplementation::createDocument

(PHP 5, PHP 7, PHP 8)

DOMImplementation::createDocument — Belge elemanı belirtilen DOMDocument nesnesini oluşturur

Açıklama

public DOMImplementation::createDocument(?string $isimalanı = null, string $önekliAd = "", ?DOMDocumentType $belgeTürü = null): DOMDocument|false

Belge elemanı belirtilen DOMDocument nesnesini oluşturur.

Bağımsız Değişkenler

isimalanı

Oluşturulacak belge elemanının isim alanını betimleyen adres.

önekliAd

Oluşturulacak belge elemanının isim alanı önekli ismi.

belgeTürü

Oluşturulacak belgenin türü veya null.

Dönen Değerler

Yeni bir DOMDocument nesnesi veya hata durumunda false döner. uri, önekliAd ve belgeTürü olarak null belirtilirse belge elemanı olmayan boş bir DOMDocument nesnesi döner.

Hatalar/İstisnalar

DOM_WRONG_DOCUMENT_ERR

belgeTürü başka bir belgede zaten kullanılmışsa veya başka bir gerçeklenim tarafından oluşturulmuşsa bu hata oluşur.

DOM_NAMESPACE_ERR

uri ve önekliAd ile saptanan isim alanı ile ilgili bir hata durumunda bu hata oluşur.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.3 | isimalanı artık null olabiliyor.
8.0.0 | belgeTürü artık null olabiliyor.
8.0.0 | Bu işlevin duruk olarak çağrılması artık Error oluşturuyor. Evvelce E_DEPRECATED hatası verirdi.

Ayrıca Bakınız

  • DOMDocument::__construct() - Yeni bir DOMDocument nesnesi oluşturur
  • DOMImplementation::createDocumentType() - Boş bir DOMDocumentType nesnesi oluşturur

User Contributed Notes

sleistico at gmail dot com 02-Jul-2018 03:48
I just recently got an error, having to do with deprecation, by using the type of calls in the other example listed here.  What I had to do instead looks like this...

$htmldoc = (new DOMImplementation)->createDocument(null, 'html', (new DOMImplementation)->createDocumentType("html"));

This creates a document with <!DOCTYPE html> at the top of it.
eboyjr 22-Jul-2010 12:48
To add on to the other example, here's how to create an XHTML 1.0 transitional document with head, title, and body elements.

<?php

$document = DOMImplementation::createDocument(null, 'html',
    DOMImplementation::createDocumentType("html",
        "-//W3C//DTD XHTML 1.0 Transitional//EN",
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"));
$document->formatOutput = true;

$html = $document->documentElement;
$head = $document->createElement('head');
$title = $document->createElement('title');
$text = $document->createTextNode('Title of Page');
$body = $document->createElement('body');

$title->appendChild($text);
$head->appendChild($title);
$html->appendChild($head);
$html->appendChild($body);

echo $document->saveXML();
?>

This outputs: (http links removed due to spam)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "doctype.dtd">
<html xmlns="w3org1999xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; CHARSET=Windows-1254" />
    <title>Title of Page</title>
  </head>
  <body></body>
</html>

Note the saveXML function. If saveHTML was used instead, you get the output:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "doctype.dtd">
<html>
<head><title>Title of Page</title></head>
<body></body>
</html>
arturm at union dot com dot pl 06-May-2006 10:23
To create HTML document with doctype:

<?php
$doctype = DOMImplementation::createDocumentType("html",
                "-//W3C//DTD HTML 4.01//EN",
                "http://www.w3.org/TR/html4/strict.dtd");
$doc = DOMImplementation::createDocument(null, 'html', $doctype);
?>


Boş bir DOMDocumentType nesnesi oluşturur

  • « DOMImplementation::createDocument
  • DOMImplementation::hasFeature »
  • PHP Manual
  • DOMImplementation
  • Boş bir DOMDocumentType nesnesi oluşturur

DOMImplementation::createDocumentType

(PHP 5, PHP 7, PHP 8)

DOMImplementation::createDocumentType — Boş bir DOMDocumentType nesnesi oluşturur

Açıklama

public DOMImplementation::createDocumentType(string $belgeAdı, string $publicId = "", string $systemId = ""): DOMDocumentType|false

Boş bir DOMDocumentType nesnesi oluşturur. Öğe bildirimleri ve gösterimler kullanılabilir değildir. Öğe gönderimi dönüşümleri ve öntanımlı öznitelik eklemeleri yapılmaz.

Bağımsız Değişkenler

belgeAdı

Oluşturulacak belgenin nitelikli adı.

publicId

Harici alt kümenin genel betimleyicisi.

systemId

Harici alt kümenin sistem betimleyicisi.

Dönen Değerler

ownerDocument özelliği null olmak üzere yeni bir DOMDocumentType nesnesi döner. Başarısızlık durumunda false döner.

Hatalar/İstisnalar

DOM_NAMESPACE_ERR

belgeAdı ile belirlenen isim alanı ile ilgili bir hata varsa bu hata oluşur.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | Bu işlevin duruk olarak çağrılması artık Error oluşturuyor. Evvelce E_DEPRECATED hatası verirdi.

Örnekler

Örnek 1 - Bir DTD ekleyerek bir belge oluşturmak

<?php

// Yeni bir DOMImplementation nesnesi oluşturalım
$imp = new DOMImplementation;

// Bir DOMDocumentType nesnesi oluşturalım
$dtd = $imp->createDocumentType('graph', '', 'graph.dtd');

// Bir DOMDocument nesnesi oluşturalım
$dom = $imp->createDocument("", "", $dtd);

// Diğer özellikleri tanımlayalım
$dom->encoding = 'UTF-8';
$dom->standalone = false;

// Boş bir eleman oluşturalım
$element = $dom->createElement('graph');

// Bir eleman ekleyelim
$dom->appendChild($element);

// Belgeyi çıktılayalım
echo $dom->saveXML();

?>

Yukarıdaki örneğin çıktısı:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE graph SYSTEM "graph.dtd">
<graph/>

Ayrıca Bakınız

  • DOMImplementation::createDocument() - Belge elemanı belirtilen DOMDocument nesnesini oluşturur

User Contributed Notes

until-all-bytes-are-free at example dot org 09-Apr-2011 04:28
I had problems to use a DTD from a file. It needed to be resolved relatively and it contained characters that made DomDocument failed to resolve the file.

Encoding and an absolute filename did not help much. So I used the data:// streamwrapper ( http://php.net/manual/en/wrappers.data.php ) as a work-around:

<?php

// relative or absolute filename
$path = '...';

// convert file contents into a filename
$data = file_get_contents($path);
$systemId = 'data://text/plain;base64,'.base64_encode($data);

// ...

// Creates a DOMDocumentType instance
$dtd = $aImp->createDocumentType('qualified name', '', $systemId);

?>

Works like a charm.


DOM gerçeklenimi belirtilen özelliğe sahip mi diye bakar

  • « DOMImplementation::createDocumentType
  • DOMNamedNodeMap »
  • PHP Manual
  • DOMImplementation
  • DOM gerçeklenimi belirtilen özelliğe sahip mi diye bakar

DOMImplementation::hasFeature

(PHP 5, PHP 7, PHP 8)

DOMImplementation::hasFeature — DOM gerçeklenimi belirtilen özelliğe sahip mi diye bakar

Açıklama

public DOMImplementation::hasFeature(string $özellik, string $sürüm): bool

DOM gerçeklenimi belirtilen özelliğe sahip mi diye bakar.

Özelliklerin tam listesini DOM belirtiminin » Conformance bölümünde bulabilirsiniz.

Bağımsız Değişkenler

özellik

Varlığı sınanacak özellik.

sürüm

Varlığı sınanacak özelliğin sürümü. 2. seviyede bu değer 2.0 veya 1.0 olabilir.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | Bu işlevin duruk olarak çağrılması artık Error oluşturuyor. Evvelce E_DEPRECATED hatası verirdi.

Örnekler

Örnek 1 - DOM Gerçekleniminin özellikleri

<?php

$features = array(
'Core' => 'Çekirdek modülü',
'XML' => 'XML modülü',
'HTML' => 'HTML modülü',
'Views' => 'Görünüm modülü',
'Stylesheets' => 'XSLT modülü',
'CSS' => 'CSS modülü',
'CSS2' => 'CSS2 modülü',
'Events' => 'Olay modülü',
'UIEvents' => 'Kullanıcı arayüzü olay modülü',
'MouseEvents' => 'Fare olayları modülü',
'MutationEvents' => 'Başkalaşım olayları modülü',
'HTMLEvents' => 'HTML olayları modülü',
'Range' => 'Aralık modülü',
'Traversal' => 'Geçişli modül'
);

foreach ($features as $isim => $özellik) {
if (DOMImplementation::hasFeature($key, '2.0')) {
echo "$özellik var\n";
} else {
echo "$özellik yok\n";
}
}

?>

Ayrıca Bakınız

  • DOMNode::isSupported() - Özelliğin belirtilen sürümünün desteklenip desteklenmediğine bakar

User Contributed Notes

There are no user contributed notes for this page.


DOMNamedNodeMap sınıfı

(PHP 5, PHP 7, PHP 8)

Sınıf Sözdizimi

class DOMNamedNodeMap implements IteratorAggregate, Countable {
/* Özellikler */
public readonly int $length;
/* Yöntemler */
public count(): int
public getIterator(): Iterator
public getNamedItem(string $isim): ?DOMNode
public getNamedItemNS(?string $uri, string $isim): ?DOMNode
public item(int $indis): ?DOMNode
}

Özellikler

length

Ağaçtaki düğüm sayısı. Geçerli çocuk düğüm indisleri 0'dan length - 1'e (dahil) kadardır.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | Gerçeklenmemiş olan DOMNamedNodeMap::setNamedItem(), DOMNamedNodeMap::removeNamedItem(), DOMNamedNodeMap::setNamedItemNS() ve DOMNamedNodeMap::removeNamedItem() yöntemi kaldırıldı.
8.0.0 | DOMNamedNodeMap artık IteratorAggregate arayüzünü gerçekliyor. Evvelce, Traversable arayüzünü gerçekliyordu.

İçindekiler

  • DOMNamedNodeMap::count — Ağaçtaki düğüm sayısını döndürür
  • DOMNamedNodeMap::getIterator — Retrieve an external iterator
  • DOMNamedNodeMap::getNamedItem — İsmi belirtilen düğümü döndürür
  • DOMNamedNodeMap::getNamedItemNS — İsmi ve isim alanı belirtilen düğümü döndürür
  • DOMNamedNodeMap::item — İndisi belirtilen düğümü döndürür

User Contributed Notes

sirajshaikh96 at yahoo dot com 01-Jan-2021 02:48
I have tried to solve the general problem occurs in DOMNamedNodeMap that during executing for/foreachloop after executing removeAttribute('$name') for item(0), item(1) is not executing and warning occurs. Following codes give the solution of this problem that in loop item(0) should be applied rather than item($i) because after removing first attribute node now present element has only one attribute node.

<?php
$html  = '<h1 id="h1test" class="h2test">Heading</h1>';
$html .= '<p align="left" class="right">Hello World</p>';

$doc = new DOMDocument();
$doc->loadHTML($html);

// remove attributes from  the h1 element
$h1 = $doc->getElementsByTagName('h1')->item(0);
$length = $h1->attributes->length;
for ($i = 0; $i < $length; $i++) {
    $name = $h1->attributes->item(0)->nodeName;
    $value = $h1->attributes->item(0)->nodeValue;
    $h1->removeAttribute($name);
    echo "h1: removed attribute name :- " .$name."</br>";
    echo "h1: removed attribute value :- " .$value."</br>";
    }
// remove attributes from the p element
$p = $doc->getElementsByTagName('p')->item(0);
for ($i = 0; $i < $length; $i++) {
    $name = $p->attributes->item(0)->nodeName;
    $value = $p->attributes->item(0)->nodeValue;
    $p->removeAttribute($name);
    echo "p: removed attribute name :- " .$name."</br>";
    echo "p: removed attribute value :- " .$value."</br>";
}
?>

OUTPUT:

h1: removed attribute name :- id
h1: removed attribute value :- h1test
h1: removed attribute name :- class
h1: removed attribute value :- h2test
p: removed attribute name :- align
p: removed attribute value :- left
p: removed attribute name :- class
p: removed attribute value :- right
kendsnyder at gmail dot com 29-Oct-2009 07:55
To add to xafford's comment. When iterating a named node map collection using ->item() or using foreach, removing a attribute with DOMNode->removeAttribute() or DOMNode->removeAttributeNode() alters the collection as if it were a stack. To illustrate, the code below tries to remove all attributes from each element but only removes the first. One work around is to copy the named node map into an array before removing attributes. Using PHP 5.2.9 on Windows XP.

<?php
error_reporting(E_ALL);
$html  = '<h1 id="h1test" class="h1test">Heading</h1>';
$html .= '<p align="left" class="ptest">Hello World</p>';

$doc = new DOMDocument();
$doc->loadHTML($html);

// remove attributes from  the h1 element
$h1 = $doc->getElementsByTagName('h1')->item(0);
$length = $h1->attributes->length;
for ($i = 0; $i < $length; ++$i) {
    $name = $h1->attributes->item($i)->name;
    $h1->removeAttribute($name);
    echo "h1: removed attribute `$name`<br>";
}
// remove attributes from the p element
$p = $doc->getElementsByTagName('p')->item(0);
foreach ($p->attributes as $name => $attrNode) {
    $p->removeAttribute($name);
    echo "p: removed attribute `$name`<br>";
}

?>

OUTPUT:
-------
h1: removed attribute `id`

Notice: Trying to get property of non-object in nodemap.php on line 13
h1: removed attribute ``
p: removed attribute `align`
xafford 15-Oct-2009 03:16
I stumbled upon a problem with DOMNamedNodeMap. If you iterate over a DOMNamedNodeMap, representing the attributes of a DOMElement with foreach and you use DOMElement::removeAttributeNode only the first attribute will be handled.

Example (not complete):

<?php

/*
 * Imagine you got a node like this:
 * <a onclick="alert('evil')" href="http://example.com">evil</a>
 * and onclick should be removed, href would not be tested.
 */

foreach ( $node->attributes as $attribute )
{

    echo 'checking attribute ', $attribute->name, '<br />';

    if ( ! in_array ( $attribute->name, $allowed_attributes ) )
    {
        $node->removeAttributeNode ( $attribute );
    }

}

?>

The output would be:

checking attribute onclick


Ağaçtaki düğüm sayısını döndürür

  • « DOMNamedNodeMap
  • DOMNamedNodeMap::getIterator »
  • PHP Manual
  • DOMNamedNodeMap
  • Ağaçtaki düğüm sayısını döndürür

DOMNamedNodeMap::count

(PHP 7 >= 7.2.0, PHP 8)

DOMNamedNodeMap::count — Ağaçtaki düğüm sayısını döndürür

Açıklama

public DOMNamedNodeMap::count(): int

Ağaçtaki düğüm sayısını döndürür.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

length özellliğinin de değeri olan, ağaçtaki düğüm sayısını döndürür.

User Contributed Notes

There are no user contributed notes for this page.


Retrieve an external iterator

  • « DOMNamedNodeMap::count
  • DOMNamedNodeMap::getNamedItem »
  • PHP Manual
  • DOMNamedNodeMap
  • Retrieve an external iterator

DOMNamedNodeMap::getIterator

(PHP 8)

DOMNamedNodeMap::getIterator — Retrieve an external iterator

Açıklama

public DOMNamedNodeMap::getIterator(): Iterator

Returns an external iterator for the named node map.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

Traversable veya Iterator arayüzünü gerçekleyen nesnenin bir örneğiyle döner.

Hatalar/İstisnalar

Başarısızlık durumunda bir istisna (Exception) oluşur.

Ayrıca Bakınız

  • IteratorAggregate::getIterator() - Harici bir yineleyici ile döner

User Contributed Notes

There are no user contributed notes for this page.


İsmi belirtilen düğümü döndürür

  • « DOMNamedNodeMap::getIterator
  • DOMNamedNodeMap::getNamedItemNS »
  • PHP Manual
  • DOMNamedNodeMap
  • İsmi belirtilen düğümü döndürür

DOMNamedNodeMap::getNamedItem

(PHP 5, PHP 7, PHP 8)

DOMNamedNodeMap::getNamedItem — İsmi belirtilen düğümü döndürür

Açıklama

public DOMNamedNodeMap::getNamedItem(string $isim): ?DOMNode

İsmi belirtilen düğümü döndürür.

Bağımsız Değişkenler

isim

Döndürülecek düğümün ismi.

Dönen Değerler

Belirtilen düğüm yoksa null varsa düğümü döndürür.

Ayrıca Bakınız

  • DOMNamedNodeMap::getNamedItemNS() - İsmi ve isim alanı belirtilen düğümü döndürür

User Contributed Notes

franp at free dot fr 03-Mar-2006 07:28
Basic example of use :

<?xml version="1.0" encoding="UTF-8"?>
<racine version="2.0a">
  <article/>
</racine>

<?php
(...)
 echo $doc->documentElement->attributes->getNamedItem("version")->nodeValue;

// returns "2.0a"
?>


İsmi ve isim alanı belirtilen düğümü döndürür

  • « DOMNamedNodeMap::getNamedItem
  • DOMNamedNodeMap::item »
  • PHP Manual
  • DOMNamedNodeMap
  • İsmi ve isim alanı belirtilen düğümü döndürür

DOMNamedNodeMap::getNamedItemNS

(PHP 5, PHP 7, PHP 8)

DOMNamedNodeMap::getNamedItemNS — İsmi ve isim alanı belirtilen düğümü döndürür

Açıklama

public DOMNamedNodeMap::getNamedItemNS(?string $uri, string $isim): ?DOMNode

İsmi ve isim alanı belirtilen düğümü döndürür.

Bağımsız Değişkenler

uri

İsim alanını betimleyen adres.

isim

önek:etiket biçeminde öznitelik ismi.

Dönen Değerler

Belirtilen düğüm yoksa null varsa düğümü döndürür.

Ayrıca Bakınız

  • DOMNamedNodeMap::getNamedItem() - İsmi belirtilen düğümü döndürür

User Contributed Notes

There are no user contributed notes for this page.


İndisi belirtilen düğümü döndürür

  • « DOMNamedNodeMap::getNamedItemNS
  • DOMNameSpaceNode »
  • PHP Manual
  • DOMNamedNodeMap
  • İndisi belirtilen düğümü döndürür

DOMNamedNodeMap::item

(PHP 5, PHP 7, PHP 8)

DOMNamedNodeMap::item — İndisi belirtilen düğümü döndürür

Açıklama

public DOMNamedNodeMap::item(int $indis): ?DOMNode

DOMNamedNodeMap nesnesinin indis'inci düğümünü döndürür.

Bağımsız Değişkenler

indis

Eşlemdeki indis.

Dönen Değerler

Geçerli bir indis belirtilmemişse (indis düğüm sayısına eşit veya ondan büyükse) null, aksi takdirde listedeki indis'inci düğümü döndürür.

User Contributed Notes

reyjacobs at yahoo dot com 07-Mar-2008 11:24
Nevermind: I got it, and here it is:

<?php
if($element->hasAttributes())
{
    $attributes = $element->attributes;
    if(!is_null($attributes))
    {
        foreach ($attributes as $index=>$attr)
        {
            echo $attr->name."=\"".$attr->value."\"";
        }
    }
}
?>


The DOMNameSpaceNode class

(PHP 5, PHP 7, PHP 8)

Sınıf Sözdizimi

class DOMNameSpaceNode {
/* Özellikler */
public readonly string $nodeName;
public readonly ?string $nodeValue;
public readonly int $nodeType;
public readonly string $prefix;
public readonly ?string $localName;
public readonly ?string $namespaceURI;
public readonly bool $isConnected;
public readonly ?DOMDocument $ownerDocument;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
}

Özellikler

nodeName

The qualified name of this node.

nodeValue

The namespace URI declared by this node, or null if the empty namespace.

nodeType

The type of the node. In this case it returns XML_NAMESPACE_DECL_NODE .

prefix

The namespace prefix declared by this node.

localName

The local part of the qualified name of this node.

namespaceURI

The namespace URI declared by this node, or null if it is unspecified.

isConnected

Whether the node is connected to a document.

ownerDocument

The DOMDocument object associated with this node, or null if this node is a DOMDocument

parentNode

The parent of this node. If there is no such node, this returns null.

parentElement

The parent element of this node. If there is no such element, this returns null.

Sürüm Bilgisi

Sürüm: | Açıklama
8.3.0 | Properties DOMNameSpaceNode::$parentElement, and DOMNameSpaceNode::$isConnected have been added.

User Contributed Notes

There are no user contributed notes for this page.


DOMNode sınıfı

(PHP 5, PHP 7, PHP 8)

Sınıf Sözdizimi

class DOMNode {
/* Özellikler */
public readonly ?string $nodeName;
public string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly DOMNodeList $childNodes;
public readonly ?DOMNode $firstChild;
public readonly ?DOMNode $lastChild;
public readonly ?DOMNode $previousSibling;
public readonly ?DOMNode $nextSibling;
public readonly ?DOMNamedNodeMap $attributes;
public readonly ?DOMDocument $ownerDocument;
public readonly ?string $namespaceURI;
public ?string $prefix;
public readonly ?string $localName;
public readonly ?string $baseURI;
public string $textContent;
/* Yöntemler */
public appendChild(DOMNode $yeni): DOMNode|false
public C14N(
bool $özel = false,
bool $aAçıklamalı = false,
?array $xpath = null,
?array $isim_alanları = null
): string|false
public C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public cloneNode(bool $torunlar_dahil = false): DOMNode|false
public contains(DOMNode|DOMNameSpaceNode|null $other): bool
public getLineNo(): int
public getNodePath(): ?string
public getRootNode(?array $options = null): DOMNode
public hasAttributes(): bool
public hasChildNodes(): bool
public insertBefore(DOMNode $yeni, ?DOMNode $mevcut = null): DOMNode|false
public isDefaultNamespace(string $uri): bool
public isEqualNode(?DOMNode $otherNode): bool
public isSameNode(DOMNode $düğüm): bool
public isSupported(string $özellik, string $sürüm): bool
public lookupNamespaceURI(?string $önek): ?string
public lookupPrefix(string $uri): ?string
public normalize(): void
public removeChild(DOMNode $eski): DOMNode|false
public replaceChild(DOMNode $yeni, DOMNode $eski): DOMNode|false
}

Özellikler

nodeName

Geçerli düğüm türü için en doğru ismi döndürür.

nodeValue

Düğümün türüne bağlı olarak düğümün değeri.

Düğümün türüne bağlı olarak düğümün değeri. DOMElement düğümlerinin düğüm değeri null değil DOMNode::textContent'e eşittir.

nodeType

XML_xxx_NODE sabitlerinden biri olarak düğüm türü.

parentNode

Düğümün ebeveyni. Böyle bir düğüm yoksa null döner.

childNodes

Düğümün tüm çocuklarını içeren bir DOMNodeList nesnesi; düğüm çocuksuzsa boş bir DOMNodeList nesnesidir.

firstChild

Düğümün ilk çocuğu; yoksa null'dur.

lastChild

Düğümün son çocuğu; yoksa null'dur.

previousSibling

Bir önceki kardeş düğüm; yoksa null'dur.

nextSibling

Bir sonraki kardeş düğüm; yoksa null'dur.

attributes

Düğüm bir DOMElement nesnesi ise düğümün özniteliklerini içeren bir DOMNamedNodeMap nesnesi, yoksa null'dur.

ownerDocument

Düğümün ilişkili olduğu DOMDocument nesnesi. Düğümüm kendisi bir DOMDocument nesnesi ise null.

namespaceURI

Belirtilmişse düğümün isim alanını betimleyen adres; yoksa null'dur.

prefix

Düğümün isim alanı öneki.

localName

Düğümün nitelikli isminin yerel kısmı.

baseURI

Düğümün mutlak adresi; eğer gerçeklenim bir mutlak adres sağlayamıyorsa null'dur.

textContent

Düğümün kendinin, çocuk ve torunlarının metin içeriği.

Notlar

Bilginize:

DOM eklentisi UTF-8 kodlama kullanır. Diğer kodlamalarla çalışmak için mb_convert_encoding(), UConverter::transcode() veya iconv() kullanılabilir.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | Gerçeklenmemiş olan DOMNode::compareDocumentPosition(), DOMNode::isEqualNode(), DOMNode::getFeature(), DOMNode::setUserData() ve DOMNode::getUserData() yöntemi kaldırıldı.

Ayrıca Bakınız

  • » Node arayüzünün W3C belirtimi

İçindekiler

  • DOMNode::appendChild — Listenin sonuna yeni bir çocuk ekler
  • DOMNode::C14N — Düğümleri belgedeki yazımını bozmadan dizgeleştirir
  • DOMNode::C14NFile — Düğümleri belgedeki yazımını bozmadan dosyaya yazar
  • DOMNode::cloneNode — Düğümün bir kopyasını yapar
  • DOMNode::contains — Checks if node contains other node
  • DOMNode::getLineNo — Düğümün tanımlandığı satır numarasını döndürür
  • DOMNode::getNodePath — Düğümün XPath yolunu döndürür
  • DOMNode::getRootNode — Get root node
  • DOMNode::hasAttributes — Düğümün öznitelikleri var mı diye bakar
  • DOMNode::hasChildNodes — Düğümün çocuk düğümleri var mı diye bakar
  • DOMNode::insertBefore — Yeni çocuğu belirtilen çocuğun öncesine yerleştirir
  • DOMNode::isDefaultNamespace — Belirtilen isim alanının öntanımlı olup olmadığına bakar
  • DOMNode::isEqualNode — Checks that both nodes are equal
  • DOMNode::isSameNode — İki düğüm aynı mı diye bakar
  • DOMNode::isSupported — Özelliğin belirtilen sürümünün desteklenip desteklenmediğine bakar
  • DOMNode::lookupNamespaceURI — İsim alanı öneki belirtilen düğümün isim alanı betimleyicisini döndürür
  • DOMNode::lookupPrefix — Belirtilen isim alanıyla ilişkili düğümün isim alanı önekini döndürür
  • DOMNode::normalize — Düğümü normalleştirir
  • DOMNode::removeChild — Listeden belirtilen çocuğu siler
  • DOMNode::replaceChild — Bir çocuk düğümü yenisi ile değiştirir

User Contributed Notes

Anonymous 06-May-2018 04:12
It would be helpful if docs for concrete properties mentioned readonly status of some properties:
"
ownerDocument

    The DOMDocument object associated with this node.

"
zlk1214 at gmail dot com 15-Jan-2016 01:07
A function that can set the inner HTML without encoding error. $html can be broken content such as "<a ID=id20>ssss"
function setInnerHTML($node, $html) {
    removeChildren($node);
    if (empty($html)) {
        return;
    }

    $doc = $node->ownerDocument;
    $htmlclip = new DOMDocument();
    $htmlclip->loadHTML('<meta http-equiv="Content-Type" content="text/html;CHARSET=Windows-1254"><div>' . $html . '</div>');
    $clipNode = $doc->importNode($htmlclip->documentElement->lastChild->firstChild, true);
    while ($item = $clipNode->firstChild) {
        $node->appendChild($item);
    }
}
metanull 24-Jul-2014 03:11
Yet another DOMNode to php array conversion function.
Other ones on this page are generating too "complex" arrays; this one should keep the array as tidy as possible.
Note: make sure to set LIBXML_NOBLANKS when calling DOMDocument::load, loadXML or loadHTML
See: http://be2.php.net/manual/en/libxml.constants.php
See: http://be2.php.net/manual/en/domdocument.loadxml.php

<?php
         /**
         * Returns an array representation of a DOMNode
         * Note, make sure to use the LIBXML_NOBLANKS flag when loading XML into the DOMDocument
         * @param DOMDocument $dom
         * @param DOMNode $node
         * @return array
         */
        function nodeToArray( $dom, $node) {
            if(!is_a( $dom, 'DOMDocument' ) || !is_a( $node, 'DOMNode' )) {
                return false;
            }
            $array = false;
            if( empty( trim( $node->localName ))) {// Discard empty nodes
                return false;
            }
            if( XML_TEXT_NODE == $node->nodeType ) {
                return $node->nodeValue;
            }
            foreach ($node->attributes as $attr) {
                $array['@'.$attr->localName] = $attr->nodeValue;
            }
            foreach ($node->childNodes as $childNode) {
                if ( 1 == $childNode->childNodes->length && XML_TEXT_NODE == $childNode->firstChild->nodeType ) {
                    $array[$childNode->localName] = $childNode->nodeValue;
                }  else {
                    if( false !== ($a = self::nodeToArray( $dom, $childNode))) {
                        $array[$childNode->localName] =     $a;
                    }
                }
            }
            return $array;
        }
?>
pizarropablo at gmail dot com 16-Apr-2014 02:36
In response to: alastair dot dallas at gmail dot com about "#text" nodes.
"#text" nodes appear when there are spaces or new lines between end tag and next initial tag.

Eg "<data><age>10</age>[SPACES]<other>20</other>[SPACES]</data>"

"data" childNodes has 4 childs:
- age = 10
- #text = spaces
- other = 20
- #text =  spaces
matej dot golian at gmail dot com 29-Aug-2013 01:15
Here is a little function that truncates a DomNode to a specified number of text characters. I use it to generate HTML excerpts for my blog entries.

<?php

function makehtmlexcerpt(DomNode $html, $excerptlength)
{
$remove = 0;
$htmllength = strlen(html_entity_decode($html->textContent, ENT_QUOTES, 'UTF-8'));
$truncate = $htmllength - $excerptlength;
if($htmllength > $excerptlength)
{
if($html->hasChildNodes())
{
$children = $html->childNodes;
for($counter = 0; $counter < $children->length; $counter ++)
{
$child = $children->item($children->length - ($counter + 1));
$childlength = strlen(html_entity_decode($child->textContent, ENT_QUOTES, 'UTF-8'));
if($childlength <= $truncate)
{
$remove ++;
$truncate = $truncate - $childlength;
}
else
{
$child = makehtmlexcerpt($child, $childlength - $truncate);
break;
}
}
if($remove != 0)
{
for($counter = 0; $counter < $remove; $counter ++)
{
$html->removeChild($html->lastChild);
}
}
}
else
{
if($html->nodeName == '#text')
{
$html->nodeValue = substr(html_entity_decode($html->nodeValue, ENT_QUOTES, 'UTF-8'), 0, $htmllength - $truncate);
}
}
}
return $html;
}

?>
alastair dot dallas at gmail dot com 25-Sep-2011 08:44
The issues around mixed content took me some experimentation to remember, so I thought I'd add this note to save others time.

When your markup is something like: <div><p>First text.</p><ul><li><p>First bullet</p></li></ul></div>, you'll get XML_ELEMENT_NODEs that are quite regular. The <div> has children <p> and <ul> and the nodeValue for both <p>s yields the text you expect.

But when your markup is more like <p>This is <b>bold</b> and this is <i>italic</i>.</p>, you realize that the nodeValue for XML_ELEMENT_NODEs is not reliable. In this case, you need to look at the <p>'s child nodes. For this example, the <p> has children: #text, <b>, #text, <i>, #text.

In this example, the nodeValue of <b> and <i> is the same as their #text children. But you could have markup like: <p>This <b>is bold and <i>bold italic</i></b>, you see?</p>. In this case, you need to look at the children of <b>, which will be #text, <i>, because the nodeValue of <b> will not be sufficient.

XML_TEXT_NODEs have no children and are always named '#text'. Depending on how whitespace is handled, your tree may have "empty" #text nodes as children of <body> and elsewhere.

Attributes are nodes, but I had forgotten that they are not in the tree expressed by childNodes. Walking the full tree using childNodes will not visit any attribute nodes.
imranomar at gmail dot com 20-Mar-2011 06:10
Just discovered that node->nodeValue strips out all the tags
I. Cook 19-Apr-2010 02:43
For a reference with more information about the XML DOM node types, see http://www.w3schools.com/dom/dom_nodetype.asp

(When using PHP DOMNode, these constants need to be prefaced with "XML_")
R. Studer 13-Jan-2010 09:03
For clarification:
The assumingly 'discoverd' by previous posters and seemingly undocumented methods (.getElementsByTagName and .getAttribute) on this class (DOMNode) are in fact methods of the class DOMElement, which inherits from DOMNode.

See: http://www.php.net/manual/en/class.domelement.php
David Rekowski 08-Jan-2010 01:54
You cannot simply overwrite $textContent, to replace the text content of a DOMNode, as the missing readonly flag suggests. Instead you have to do something like this:

<?php

$node->removeChild($node->firstChild);
$node->appendChild(new DOMText('new text content'));

?>

This example shows what happens:

<?php

$doc = DOMDocument::loadXML('<node>old content</node>');
$node = $doc->getElementsByTagName('node')->item(0);
echo "Content 1: ".$node->textContent."\n";

$node->textContent = 'new content';
echo "Content 2: ".$node->textContent."\n";

$newText = new DOMText('new content');

$node->appendChild($newText);
echo "Content 3: ".$node->textContent."\n";

$node->removeChild($node->firstChild);
$node->appendChild($newText);
echo "Content 4: ".$node->textContent."\n";

?>

The output is:

Content 1: old content // starting content
Content 2: old content // trying to replace overwriting $node->textContent
Content 3: old contentnew content // simply appending the new text node
Content 4: new content // removing firstchild before appending the new text node

If you want to have a CDATA section, use this:

<?php
$doc = DOMDocument::loadXML('<node>old content</node>');
$node = $doc->getElementsByTagName('node')->item(0);
$node->removeChild($node->firstChild);
$newText = $doc->createCDATASection('new cdata content');
$node->appendChild($newText);
echo "Content withCDATA: ".$doc->saveXML($node)."\n";
?>
Steve K 03-Nov-2009 11:47
This class apparently also has a getElementsByTagName method.

I was able to confirm this by evaluating the output from DOMNodeList->item() against various tests with the is_a() function.
marc at ermshaus dot org 05-May-2009 08:36
It took me forever to find a mapping for the XML_*_NODE constants. So I thought, it'd be handy to paste it here:

 1 XML_ELEMENT_NODE
 2 XML_ATTRIBUTE_NODE
 3 XML_TEXT_NODE
 4 XML_CDATA_SECTION_NODE
 5 XML_ENTITY_REFERENCE_NODE
 6 XML_ENTITY_NODE
 7 XML_PROCESSING_INSTRUCTION_NODE
 8 XML_COMMENT_NODE
 9 XML_DOCUMENT_NODE
10 XML_DOCUMENT_TYPE_NODE
11 XML_DOCUMENT_FRAGMENT_NODE
12 XML_NOTATION_NODE
matt at lamplightdb dot co dot uk 06-Apr-2009 05:39
And apparently also a setAttribute method too:

$node->setAttribute( 'attrName' , 'value' );
brian wildwoodassociates.info 07-Dec-2008 11:27
This class has a getAttribute method.

Assume that a DOMNode object $ref contained an anchor taken out of a DOMNode List.  Then

    $url = $ref->getAttribute('href');

would isolate the url associated with the href part of the anchor.


Listenin sonuna yeni bir çocuk ekler

  • « DOMNode
  • DOMNode::C14N »
  • PHP Manual
  • DOMNode
  • Listenin sonuna yeni bir çocuk ekler

DOMNode::appendChild

(PHP 5, PHP 7, PHP 8)

DOMNode::appendChild — Listenin sonuna yeni bir çocuk ekler

Açıklama

public DOMNode::appendChild(DOMNode $yeni): DOMNode|false

Listeye yeni bir çocuk ekler; liste yoksa oluşturulur. Çocuk DOMDocument::createElement(), DOMDocument::createTextNode() gibi yöntemlerle oluşturulabileceği gibi oluşturulmuş diğer düğümlerden biri de olabilir.

Mevcut bir düğüm, kullanıldığında taşınır.

Bağımsız Değişkenler

yeni

Listeye eklenecek çocuk.

Dönen Değerler

Eklenen düğüm veya hata durumunda false.

Hatalar/İstisnalar

DOM_NO_MODIFICATION_ALLOWED_ERR

Düğüm salt okunursa veya düğümün önceki ebeveyni salt okunur olarak yerleştirilmişse bu hata oluşur.

DOM_HIERARCHY_REQUEST_ERR

Düğüm, yeni düğümün türündeki çocuk düğümlere izin vermeyen türde ise veya yeni düğüm, çocuğu olacağı düğümün ebeveyni veya atalarından biri ise bu hata oluşur.

DOM_WRONG_DOCUMENT_ERR

Eğer yeni düğüm, çocuğu olacağı düğümü oluşturan belgeden farklı bir belge tarafından oluşturulmuşsa bu hata oluşur.

Örnekler

Aşağıdaki örnekte yeni bir belgeye yeni bir eleman düğümü eklenmektedir.

Örnek 1 - Bir çocuk düğüm eklemek

<?php

$doc = new DOMDocument;

$node = $doc->createElement("para");
$newnode = $doc->appendChild($node);

echo $doc->saveXML();
?>

Örnek 2 - Çocuk ve torun düğümler

<?php

$doc = new DOMDocument;

$headNode = $doc->createElement("head");
$doc->appendChild($headNode);

$titleNode = $doc->createElement("title");
$headNode->appendChild($titleNode);

echo $doc->saveXML();
?>

Ayrıca Bakınız

  • DOMChildNode::after() - Adds nodes after the node
  • DOMNode::insertBefore() - Yeni çocuğu belirtilen çocuğun öncesine yerleştirir
  • DOMNode::removeChild() - Listeden belirtilen çocuğu siler
  • DOMNode::replaceChild() - Bir çocuk düğümü yenisi ile değiştirir

User Contributed Notes

cweiske at php dot net 05-Nov-2017 01:56
If you want to move the children of one node to another, you cannot simply iterate on $element->childNodes - you have to make an array first:

<?php
$children = [];
foreach ($elemWithChildren->childNodes as $child) {
    $children[] = $child;
}
foreach ($children as $child) {
    $targetElement->appendChild($child);
}
?>
frame at dynamiccreated dot de 01-Dec-2010 04:14
Aware dealing with DOMNodeList and appendChild() on the same Node.

If you want to replace only the children not the DOMElement itself you probably foreach childNodes-property or get the DOMElements with a for-loop and item()-method of the DOMNodeList.

You will fail if you not clone the received single DOMElement. Actually the count of the DOMNodelist will be decreased on appendChild count but appendChild seems to refer to the old Nodelist and nothing visible will happen. Cloning will help.
krisdover at hotmail dot com 31-May-2008 08:49
What's not mentioned here is that DOMNode::appendChild() can also be used to move an existing node to another part of the DOMDocument, e.g.

<?php
$doc = new DOMDocument();
$doc->loadXML("<foobar><bar/><foo/></foobar>");
$bar = $doc->documentElement->firstChild;
$foo = $doc->documentElement->lastChild;
$foo->appendChild($bar);
print $doc->saveXML();
?>

This produces:

<?xml version="1.0"?>
<foobar><foo><bar/></foo></foobar>

Note that the nodes "<foo/>" and "<bar/>" were siblings, i.e. the first and last child of "<foobar>" but using appendChild() we were able to move "<bar/>" so that it is a child of "<foo/>".

This saves you the trouble of doing a DOMNode::removeChild($bar) to remove "<bar/>" before appending it as a child of "<foo/>".

Kris Dover
jrtayloriv at gmail dot com 30-Mar-2008 04:56
If you want to create nested DOM elements:

<?php
    $doc = new DOMDocument();

    $foo = $doc->createElement("foo");
    $doc->appendChild($foo);

    $bar = $doc->createElement("bar");
    $foo->appendChild($bar);

    $bazz = $doc->createElement("bazz");
    $foo->appendChild($bazz);

    echo $doc->saveXML();
?>

Is equivalent to:

<foo>
  <bar></bar>
  <bazz></bazz>
</foo>


Düğümleri belgedeki yazımını bozmadan dizgeleştirir

  • « DOMNode::appendChild
  • DOMNode::C14NFile »
  • PHP Manual
  • DOMNode
  • Düğümleri belgedeki yazımını bozmadan dizgeleştirir

DOMNode::C14N

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DOMNode::C14N — Düğümleri belgedeki yazımını bozmadan dizgeleştirir

Açıklama

public DOMNode::C14N(
bool $özel = false,
bool $aAçıklamalı = false,
?array $xpath = null,
?array $isim_alanları = null
): string|false

Düğümleri belgedeki yazımını bozmadan dizgeleştirir.

Bağımsız Değişkenler

özel

Sadece xpath ve/veya isim_alanları bağımsız değişkenleri ile belirtilen öneklerle eşleşen düğümlerin seçilmesi için true olmalıdır.

açıklamalı

true ise açıklamalar çıktıya dahil edilir.

xpath

Seçilecek düğümler için xpath önekleri dizisi.

isim_alanları

Seçilecek düğümler için isim alanları dizisi.

Dönen Değerler

Düğümleri belgedeki yazımını bozmadan dizge olarak döndürür, başarısızlık durumunda false döner

Ayrıca Bakınız

  • DOMNode::C14NFile() - Düğümleri belgedeki yazımını bozmadan dosyaya yazar

User Contributed Notes

lordbaco 28-Jan-2016 09:57
[edit by nielsdos: This has been fixed starting in PHP 8.4]

Good to know:

<< Due to a known issue in XML canonicalization in PHP, processing large metadata files in SimpleSAMLphp takes a big amount of resources, with that amount growing approximately by the square of the number of entities in the metadata set >>
https://simplesamlphp.org/metaprocessing

<< The C14N() function appears to have a runtime that is O(N^2) (or possibly worse?) depending on input size, which means that it becomes very slow as the input grows. For example, an input with around 196000 nodes takes about 290 seconds, while an input with 486000 nodes takes 2200 seconds. >>
https://bugs.php.net/bug.php?id=53655

We had the same issue with a 4.1 MB XML (105k lines). The sample code of ticket  #53655 takes 1h36 minute to canonicalize it!
jorda at edpsciences dot org 13-Mar-2015 09:11
C14N() returns an empty string if the node is not included in the document tree:
<?php
$d = new DOMDocument('1.0');
$d->loadXML('<foo></foo>');
$n = $d->createElement('bar');
var_dump($n->C14N());
$d->documentElement->appendChild($n);
var_dump($n->C14N());
?>
output:
string(0) ""
string(11) "<bar></bar>"
Rijk 27-Mar-2013 09:26
When working with (malformed) HTML, you're probably better off using DOMDocument's saveHTML() method instead. C14N() will attempt to make your HTML valid XML, for example by converting <br> to <br></br>.

So instead of:
$html = $Node->C14N();

Use:
$html = $Node->ownerDocument->saveHTML( $Node );


Düğümleri belgedeki yazımını bozmadan dosyaya yazar

  • « DOMNode::C14N
  • DOMNode::cloneNode »
  • PHP Manual
  • DOMNode
  • Düğümleri belgedeki yazımını bozmadan dosyaya yazar

DOMNode::C14NFile

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DOMNode::C14NFile — Düğümleri belgedeki yazımını bozmadan dosyaya yazar

Açıklama

public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false

Düğümleri belgedeki yazımını bozmadan dosyaya yazar.

Bağımsız Değişkenler

uri

Çıktının yazılacağı dosyanın yolu.

özel

Sadece xpath ve/veya isim_alanları bağımsız değişkenleri ile belirtilen öneklerle eşleşen düğümlerin seçilmesi için true olmalıdır.

açıklamalı

true ise açıklamalar çıktıya dahil edilir.

xpath

Düğümleri filtrelemek için bir XPath dizisi. Bu dizideki her girdi, aşağıdakileri içeren bir ilişkisel dizidir:

  • XPath ifadesini bir dize olarak içeren gerekli bir query anahtarı.
  • Ad alanı öneklerini (anahtarlar) ad alanı URI'lerine (değerler) eşleyen bir dizi içeren isteğe bağlı bir namespaces anahtarı.

isim_alanları

Seçilecek düğümler için isim alanları dizisi.

Dönen Değerler

Normalde dosyaya yazılan bayt sayısı, başarısızlık durumunda false döner

Ayrıca Bakınız

  • DOMNode::C14N() - Düğümleri belgedeki yazımını bozmadan dizgeleştirir

User Contributed Notes

There are no user contributed notes for this page.


Düğümün bir kopyasını yapar

  • « DOMNode::C14NFile
  • DOMNode::contains »
  • PHP Manual
  • DOMNode
  • Düğümün bir kopyasını yapar

DOMNode::cloneNode

(PHP 5, PHP 7, PHP 8)

DOMNode::cloneNode — Düğümün bir kopyasını yapar

Açıklama

public DOMNode::cloneNode(bool $torunlar_dahil = false): DOMNode|false

Düğümün bir kopyasını oluşturur.

Bağımsız Değişkenler

torunlar_dahil

Tüm çocuk ve torunların da kopyalanıp kopyalanmayaçağı.

Dönen Değerler

Kopyalanan düğüm.

User Contributed Notes

cmd at 1xinternet dot de 16-Nov-2016 12:11
If you need to clone node including all child DOMNode elements:

private function cloneNode($node){

        $nd = new DOMNode();

        for ($i = 0; $i < $node->childNodes->length; $i++) {
            $child = $node->childNodes->item($i);
            if ($child->nodeType === XML_TEXT_NODE) {
                $nd->appendChild($node->cloneNode(true));
            }
            else{
                $nd->appendChild($this->cloneNode($child));
            }
        }

        return $nd;
    }
h-fate at gmx dot net 01-Oct-2014 07:48
If you have an object that holds a DOMNode, cloning the object won't clone the DOMNode with it. If you simply copy the object or add its DOMNode several times, you will in fact only move the DOMNode in the tree, not multiply it. That might seem obvious, but took me half a day to find out.

The object needs to use __clone and clone the node manually:

<?php
class containsNode {
    public $node; //set from somewhere

    public function __clone() {
        $this->node = $this->node->cloneNode(TRUE);
    }
}
?>
frame at dynamiccreated dot de 02-Dec-2012 02:19
Remeber that DOMNode always needs a reference to a parent node or DOMDocument.

For example, if you try to clone a node - copy all children - and overwrite or delete the variable which holds the cloned node - all children will loose any reference and getting invalid.

This will cause a nice message like "Couldn't... node no longer exists" if you have luck. In most cases PHP only gives you the poor information "Couldn't fetch DOM[...]" which makes hard to find out whats going on, depending on the current operation.
cemkalyoncu at gmail dot com 28-Apr-2009 03:04
If you need some function to clone a node without touching namespaces you can use the following.

<?php
private function cloneNode($node,$doc){
    $nd=$doc->createElement($node->nodeName);

    foreach($node->attributes as $value)
        $nd->setAttribute($value->nodeName,$value->value);

    if(!$node->childNodes)
        return $nd;

    foreach($node->childNodes as $child) {
        if($child->nodeName=="#text")
            $nd->appendChild($doc->createTextNode($child->nodeValue));
        else
            $nd->appendChild(cloneNode($child,$doc));
    }

    return $nd;
}
?>
[montana] at [percepticon] dot [com] 16-Feb-2009 02:23
<?php

//@oliver thanks for example source...

/*
 cloneNode(false) does not omit
 Attributes of cloned node,
 to achieve this an iteration is required.
 this is probably less efficient
 than merely creating a new
 node from the desired nodeName
 but in some cases could be useful.

use case:

omit subnodes and attributes of
secured portions of an xml document
without altering expected general structure;
*/
//xml to use

$file="<?xml version='1.0'?>
<book type='paperback'>
    <title name='MAP'>Red Nails</title>
    <price>$12.99</price>
    <author>
        <name first='Robert' middle='E' last='Howard'/>
        <birthdate disco='false' nirvana='definitely'>
            9/21/1977
            <month title='september' />
        </birthdate>
    </author>
    <author>
        <name first='Arthur' middle='Mc' last='Kayn'/>
    </author>
</book>";

$doc = new domDocument;

$doc->loadXML($file);

$xpath = new domXPath($doc);

$query = "//author/birthdate";
$xpathQuery = $xpath->query($query);

//would be a loop in production code...
$child = $xpathQuery->item(0);

$parent = $child->parentNode;

$doppel = $child->cloneNode(false);

$limit = $doppel->attributes->length;

for ($a=0;$a<$limit;$a++) {
    $doppel->removeAttributeNode($doppel->attributes->item(0));
}
//swap for now empty node
$parent->replaceChild( $doppel, $child);

print $doc->saveXML();

?>
oliver dot christen at camptocamp dot com 19-Nov-2004 08:48
simple exemple of node cloning

<?xml version="1.0"?>

<book type="paperback">
    <title name='MAP'>Red Nails</title>
    <price>$12.99</price>
    <author>
        <name first="Robert" middle="E" last="Howard"/>
        <birthdate>9/21/1977</birthdate>
    </author>
    <author>
        <name first="Arthur" middle="Mc" last="Kayn"/>
    </author>
</book>

<?php

//filename xml file to use
$file = 'book.xml';

$doc = new domDocument;

if (file_exists($file)) {
    $doc->load($file);
} else {
    exit('Erreur !.');
}

$xpath = new domXPath($doc);

$query = "//author/*";
$xpathQuery = $xpath->query($query);

$size = $xpathQuery->length;
for ($i=0; $i<$size; $i++){
    $node = $xpathQuery->item($i);
    if ($node->nodeName == 'birthdate' && $node->hasChildNodes() && $node->firstChild->textContent != ''){
        $clonenode = $node->cloneNode(true);
        $refnode = $node;
    }
}
for ($i=0; $i<$size; $i++){
    $node = $xpathQuery->item($i);
    if (!$node->isSameNode($refnode)){
        $newnode = $node->appendChild($clonenode);
    }
}

print $doc->saveXML();

?>


Checks if node contains other node

  • « DOMNode::cloneNode
  • DOMNode::getLineNo »
  • PHP Manual
  • DOMNode
  • Checks if node contains other node

DOMNode::contains

(PHP 8 >= 8.3.0)

DOMNode::contains — Checks if node contains other node

Açıklama

public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool

Checks if node contains other node.

Bağımsız Değişkenler

other

Node to be checked.

Dönen Değerler

Returns true if node contains other node, false otherwise.

Örnekler

Örnek 1 DOMNode::contains() example

<?php

$dom = new DOMDocument();
$dom->loadXML(<<<XML
<!DOCTYPE HTML>
<html>
<body>
<main>
<p>Hello, world!</p>
</main>
</body>
</html>
XML);

$xpath = new DOMXPath($dom);
$main = $xpath->query("//main")[0];

var_dump($dom->documentElement->contains($main));
?>

Yukarıdaki örneğin çıktısı:

bool(true)

User Contributed Notes

There are no user contributed notes for this page.


Düğümün tanımlandığı satır numarasını döndürür

  • « DOMNode::contains
  • DOMNode::getNodePath »
  • PHP Manual
  • DOMNode
  • Düğümün tanımlandığı satır numarasını döndürür

DOMNode::getLineNo

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DOMNode::getLineNo — Düğümün tanımlandığı satır numarasını döndürür

Açıklama

public DOMNode::getLineNo(): int

Düğümün tanımlandığı satırın numarasını döndürür.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

Daima düğümün tanımlandığı satırın numarası ile döner.

Örnekler

Örnek 1 - DOMNode::getLineNo() örneği

<?php
// Örnek için XML belge
$xml = <<<XML
<?xml version="1.0" encoding="utf-8"?>
<root>
<node />
</root>
XML;

// DOMDocument örneğini oluştur
$dom = new DOMDocument;

// XML belgeyi yükle
$dom->loadXML($xml);

// 'node' elemanını tanımlandığı satırın numarasını bas
echo '<node> elemanı ', $dom->getElementsByTagName('node')->item(0)->getLineNo()), ' numaralı satırda tanımlanmış';
?>

Yukarıdaki örneğin çıktısı:

<node> elemanı 3 numaralı satırda tanımlanmış

User Contributed Notes

ruud at vanmelick dot com 25-Oct-2013 09:15
The 65535 line number limit is no longer a problem when you use libxml 2.9 or higher, but you have to explicitly enable support for big line numbers:

<?php
define('XML_PARSE_BIG_LINES', 4194304);
$dom = new DOMDocument;
$dom->loadXML($xml, XML_PARSE_BIG_LINES);
?>
Anonymous 19-May-2012 02:21
The DOMNode::getLineNo() method doesn't work properly due to a libxml2 bug.

https://bugzilla.gnome.org/show_bug.cgi?id=676026
luke dot NOREPLY at webconnex dot com 04-Mar-2011 06:28
This function is buggy. It doesn't always return the correct line number, especially for text elements. As an alternative you can do something like this:

<?php
$text = $node->ownerDocument->saveXML($node);
$line += substr_count($text, "\n");
?>

You'll want to keep a reference to $line (starting at 0) and add to it as you parse over the document recursively.

In order for this to work you have to tell DOMDocument to preserve white space before loading the document.


Düğümün XPath yolunu döndürür

  • « DOMNode::getLineNo
  • DOMNode::getRootNode »
  • PHP Manual
  • DOMNode
  • Düğümün XPath yolunu döndürür

DOMNode::getNodePath

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DOMNode::getNodePath — Düğümün XPath yolunu döndürür

Açıklama

public DOMNode::getNodePath(): ?string

Düğümün XPath yolunu döndürür.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

Normalde düğümün XPath yolunu içeren dizge, hata durumnda null döner.

Örnekler

Örnek 1 - DOMNode::getNodePath() örneği

<?php
// DOMDocument örneğini oluştur
$dom = new DOMDocument;

// XML belgeyi yükle
$dom->loadXML('
<fruits>
<apples>
<apple>braeburn</apple>
<apple>granny smith</apple>
</apples>
<pears>
<pear>conference</pear>
</pears>
</fruits>
');

// Her eleman için XPath yolunu bas
foreach ($dom->getElementsByTagName('*') as $node) {
echo $node->getNodePath() . "\n";
}
?>

Yukarıdaki örneğin çıktısı:

/fruits
/fruits/apples
/fruits/apples/apple[1]
/fruits/apples/apple[2]
/fruits/pears
/fruits/pears/pear

Ayrıca Bakınız

  • DOMXPath

User Contributed Notes

There are no user contributed notes for this page.


Get root node

  • « DOMNode::getNodePath
  • DOMNode::hasAttributes »
  • PHP Manual
  • DOMNode
  • Get root node

DOMNode::getRootNode

(PHP 8 >= 8.3.0)

DOMNode::getRootNode — Get root node

Açıklama

public DOMNode::getRootNode(?array $options = null): DOMNode

Get root node.

Bağımsız Değişkenler

options

This parameter has no effect yet.

Dönen Değerler

Returns the root node.

Örnekler

Örnek 1 DOMNode::getRootNode() example

<?php

$dom = new DOMDocument();
$dom->loadXML('<?xml version="1.0"?><html><body/></html>');

var_dump($dom->documentElement->firstElementChild->getRootNode() === $dom);
?>

Yukarıdaki örneğin çıktısı:

bool(true)

User Contributed Notes

There are no user contributed notes for this page.


Düğümün öznitelikleri var mı diye bakar

  • « DOMNode::getRootNode
  • DOMNode::hasChildNodes »
  • PHP Manual
  • DOMNode
  • Düğümün öznitelikleri var mı diye bakar

DOMNode::hasAttributes

(PHP 5, PHP 7, PHP 8)

DOMNode::hasAttributes — Düğümün öznitelikleri var mı diye bakar

Açıklama

public DOMNode::hasAttributes(): bool

Bakılan düğümün türü XML_ELEMENT_NODE ise ve öznitelikleri varsa true döner.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Ayrıca Bakınız

  • DOMNode::hasChildNodes() - Düğümün çocuk düğümleri var mı diye bakar

User Contributed Notes

There are no user contributed notes for this page.


Düğümün çocuk düğümleri var mı diye bakar

  • « DOMNode::hasAttributes
  • DOMNode::insertBefore »
  • PHP Manual
  • DOMNode
  • Düğümün çocuk düğümleri var mı diye bakar

DOMNode::hasChildNodes

(PHP 5, PHP 7, PHP 8)

DOMNode::hasChildNodes — Düğümün çocuk düğümleri var mı diye bakar

Açıklama

public DOMNode::hasChildNodes(): bool

Düğümün çocuk düğümleri varsa true döner.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Ayrıca Bakınız

  • DOMNode::hasAttributes() - Düğümün öznitelikleri var mı diye bakar

User Contributed Notes

Anonymous 21-Mar-2015 04:33
Hi what if its a dynamic file and we cannot use get elements by tag name then how do we print the contents of all level tags?
richard dot gildx at gmail dot com 29-Jul-2012 01:20
This "hasChildNodes()" exercise is simple enough to make it clear and understandable. Or, you could take it as a tag empty check. By Richard Holm, Sweden.

<?php
$xmldoc=
'<?xml version="1.0" ?>
<root>
<text>Text</text>
<none/>
<empty></empty>
<space> </space>
</root>';

$domdoc=new DOMDocument();
$domdoc->loadXML($xmldoc);

$tag=$domdoc->getElementsByTagName('root')->item(0);
$v=$tag->hasChildNodes()?" hasChildNodes":" hasNoChildNodes";
echo $tag->tagName.$v."<br/>";

$tag=$domdoc->getElementsByTagName('text')->item(0);
$v=$tag->hasChildNodes()?" hasChildNodes":" hasNoChildNodes";
echo $tag->tagName.$v."<br/>";

$tag=$domdoc->getElementsByTagName('none')->item(0);
$v=$tag->hasChildNodes()?" hasChildNodes":" hasNoChildNodes";
echo $tag->tagName.$v."<br/>";

$tag=$domdoc->getElementsByTagName('empty')->item(0);
$v=$tag->hasChildNodes()?" hasChildNodes":" hasNoChildNodes";
echo $tag->tagName.$v."<br/>";

$tag=$domdoc->getElementsByTagName('space')->item(0);
$v=$tag->hasChildNodes()?" hasChildNodes":" hasNoChildNodes";
echo $tag->tagName.$v."<br/>";
?>

Output:
root hasChildNodes
text hasChildNodes
none hasNoChildNodes
empty hasNoChildNodes
space hasChildNodes
sansana 14-Oct-2010 07:04
Personally I think using a simple:[code]if($DOMNode->childNodes <>0){}[/code] works better.
syngcw at syncgw.com 04-Jan-2010 05:53
This function is a bit tricky. If you want to find XML childnodes it is useless. You need to create a work-around:

<?php

$x = new DOMDocument();
$x->loadXML('
<A>
 <B>b-text</B>
 <C>
  <D>d-text</D>
 </C>
 <E/>
</A>');

shownode($x->getElementsByTagName('A')->item(0));
function shownode($x) {
 foreach ($x->childNodes as $p)
  if (hasChild($p)) {
      echo $p->nodeName.' -> CHILDNODES<br>';
      shownode($p);
  } elseif ($p->nodeType == XML_ELEMENT_NODE)
   echo $p->nodeName.' '.$p->nodeValue.'<br>';
}
function hasChild($p) {
 if ($p->hasChildNodes()) {
  foreach ($p->childNodes as $c) {
   if ($c->nodeType == XML_ELEMENT_NODE)
    return true;
  }
 }
 return false;
}

?>

shows:
B b-text
C -> CHILDNODES
D d-text
E
jintoppy at gmail dot com 28-Apr-2009 04:13
<?php

$doc = new DOMDocument;
$node = $doc->createElement("FirstMain", "First Main Node. This have child");
$doc->appendChild($node);
$childnode = $doc->createElement("childnode", "child node");
$node->appendChild($childnode);
$secondnode = $doc->createElement("SecondMain", "First Main Node. This don't have child");
$doc->appendChild($secondnode);
$doc->saveXML();
$nodeElmt = $doc->getElementsByTagName("FirstMain");
/*
if given as $nodeElmt = $doc->getElementsByTagName("childnode");
the output would be "This node has childnodes"

if given as $nodeElmt = $doc->getElementsByTagName("SecondMain");
the output would be "This node has no childnodes"

*/

foreach($nodeElmt as $nodeElmt)
{
if($nodeElmt->hasChildNodes())
{
echo "This node has childnodes";
}
else
{
echo "This node has no childnodes";
}
}

  ?>

- - - - - - - - - - - - - -

Output:

This node has childnodes

- - - - - - - - - - - - - -


Yeni çocuğu belirtilen çocuğun öncesine yerleştirir

  • « DOMNode::hasChildNodes
  • DOMNode::isDefaultNamespace »
  • PHP Manual
  • DOMNode
  • Yeni çocuğu belirtilen çocuğun öncesine yerleştirir

DOMNode::insertBefore

(PHP 5, PHP 7, PHP 8)

DOMNode::insertBefore — Yeni çocuğu belirtilen çocuğun öncesine yerleştirir

Açıklama

public DOMNode::insertBefore(DOMNode $yeni, ?DOMNode $mevcut = null): DOMNode|false

yeni düğümü mevcut düğümün hemen öncesine yerleştirir. Eklenen çocukta değişiklik yapmayı düşünüyorsanız dönen düğümü kullanın.

Bağımsız Değişkenler

yeni

Yeni çocuk düğüm.

mevcut

Mevcut çocuk düğüm. Belirtilmediği takdirde yeni düğüm listeye son çocuk olarak eklenir.

Dönen Değerler

Yerleştirilen düğüm veya hata durumunda false.

Hatalar/İstisnalar

DOM_NO_MODIFICATION_ALLOWED_ERR

Düğüm salt okunursa veya düğümün önceki ebeveyni salt okunur olarak yerleştirilmişse bu hata oluşur.

DOM_HIERARCHY_REQUEST_ERR

Düğüm, yeni düğümün türündeki çocuk düğümlere izin vermeyen türde ise veya yeni düğüm, çocuğu olacağı düğümün ebeveyni veya atalarından biri ise bu hata oluşur.

DOM_WRONG_DOCUMENT_ERR

Eğer yeni düğüm, çocuğu olacağı düğümü oluşturan belgeden farklı bir belge tarafından oluşturulmuşsa bu hata oluşur.

DOM_NOT_FOUND_ERR

mevcut düğüm, bir çocuk düğüm değilse bu hata oluşur.

Ayrıca Bakınız

  • DOMNode::appendChild() - Listenin sonuna yeni bir çocuk ekler

User Contributed Notes

jarry1250 at gmail dot com 30-May-2015 01:59
Note that supplying the same node for $newnode and $refnode leads to an E_WARNING ("Couldn't add newnode as the previous sibling of refnode"). For example imagine one wanted to make $newnode the first child of its parent by doing:

<?php
$firstSibling = $newnode->parentNode->firstChild;
// Bad:
$newnode->parentNode->insertBefore( $newnode, $firstSibling );
?>

This would generate a warning if it already was the first child of its parent, since $newnode and $firstSibling are identical. Easy to work around though:

<?php
$firstSibling = $newnode->parentNode->firstChild;
// Better:
if( $newnode !== $firstSibling ) {
    $newnode->parentNode->insertBefore( $newnode, $firstSibling );
}
?>
DrTebi at Yahoo 03-Oct-2007 05:54
Sorry, my previous posting worked only for the top node. Here the corrected version, which will work for any node:

XML
----
<?xml version="1.0"?>
<contacts>
  <person>Adam</person>
  <person>Eva</person>
  <person>Thomas</person>
</contacts>

PHP
---
<?php
// load XML, create XPath object
$xml = new DomDocument();
$xml->preserveWhitespace = false;
$xml->load('contacts.xml');
$xpath = new DOMXPath($xml);

// get node eva, which we will append to
$eva = $xpath->query('/contacts/person[.="Eva"]')->item(0);

// create node john
$john = $xml->createElement('person', 'John');

// insert john after eva
//   "in eva's parent node (=contacts) insert
//   john before eva's next node"
// this also works if eva would be the last node
$eva->parentNode->insertBefore($john, $eva->nextSibling);

// show result
header('Content-Type: text/plain');
print $xml->saveXML();
?>

Result
------
<?xml version="1.0"?>
<contacts>
  <person>Adam</person>
  <person>Eva</person><person>John</person>
  <person>Thomas</person>
</contacts>
justin at redwiredesign dot com 07-Feb-2007 08:20
The previous example is incorrect, and causes a DOM_NOT_FOUND error, as the child nodes are not direct descendants of the root node.

Therefore, the line:

$parent_path = "/root";

needs to change to:

$parent_path = "/root/parent";

or

$parent_path = "//parent";

for this example to work
jg at handcode dot de 18-Aug-2005 12:18
example to insert <newnode/> between <chid1/> and <child2/>

<?xml version="1.0" encoding="ISO-8859-1" ?>
<root>
  <parent>
    <child nr="1"/>
    <child nr="2"/>
  </parent>
</root>

<?php

$xml_src = 'test.xml';

// XPath-Querys
$parent_path = "//parent";
$next_path = "//parent/child[@nr='2']";

// Create a new DOM document
$dom = new DomDocument();
$dom->load($xml_src);

// Find the parent node
$xpath = new DomXPath($dom);

// Find parent node
$parent = $xpath->query($parent_path);

// new node will be inserted before this node
$next = $xpath->query($next_path);

// Create the new element
$element = $dom->createElement('newnode');

// Insert the new element
$parent->item(0)->insertBefore($element, $next->item(0));

echo $dom->saveXML();

?>
Jerry Ellis 03-Jun-2005 12:45
1st argument) a node to insert
2nd argument) a reference node - this is the node that the new node will be inserted before

The trick to using this method is that the OBJECT on which you actually CALL the insertBefore() method is actually the PARENT node of the reference node!

INCORRECT:
$DOMNode_refNode->insertBefore($DOMNode_newNode, $DOMNode_refNode);

CORRECT:
$DOMNode_refNode->parentNode->insertBefore($DOMNode_newNode, $DOMNode_refNode);


Belirtilen isim alanının öntanımlı olup olmadığına bakar

  • « DOMNode::insertBefore
  • DOMNode::isEqualNode »
  • PHP Manual
  • DOMNode
  • Belirtilen isim alanının öntanımlı olup olmadığına bakar

DOMNode::isDefaultNamespace

(PHP 5, PHP 7, PHP 8)

DOMNode::isDefaultNamespace — Belirtilen isim alanının öntanımlı olup olmadığına bakar

Açıklama

public DOMNode::isDefaultNamespace(string $uri): bool

İsim alanı betimleyicisi uri ile belirtilen isim alanının öntanımlı isim alanı olup olmadığına bakar.

Bağımsız Değişkenler

uri

Bakılacak isim alanını betimleyen adres.

Dönen Değerler

uri öntanımlı isim alanını betimliyorsa true aksi takdirde false döner.

User Contributed Notes

There are no user contributed notes for this page.


Checks that both nodes are equal

  • « DOMNode::isDefaultNamespace
  • DOMNode::isSameNode »
  • PHP Manual
  • DOMNode
  • Checks that both nodes are equal

DOMNode::isEqualNode

(PHP 8 >= 8.3.0)

DOMNode::isEqualNode — Checks that both nodes are equal

Açıklama

public DOMNode::isEqualNode(?DOMNode $otherNode): bool

Checks that both nodes are equal.

Bağımsız Değişkenler

otherNode

The node.

Dönen Değerler

Returns true if both nodes are equal, false otherwise.

Örnekler

Örnek 1 DOMNode::isEqualNode() example

<?php

$dom1 = (new DOMDocument())->createElement('h1', 'Hello World!');
$dom2 = (new DOMDocument())->createElement('h1', 'Hello World!');

var_dump($dom1->isEqualNode($dom2));
?>

Yukarıdaki örneğin çıktısı:

bool(true)

User Contributed Notes

There are no user contributed notes for this page.


İki düğüm aynı mı diye bakar

  • « DOMNode::isEqualNode
  • DOMNode::isSupported »
  • PHP Manual
  • DOMNode
  • İki düğüm aynı mı diye bakar

DOMNode::isSameNode

(PHP 5, PHP 7, PHP 8)

DOMNode::isSameNode — İki düğüm aynı mı diye bakar

Açıklama

public DOMNode::isSameNode(DOMNode $düğüm): bool

Düğüm, belirtilen düğümle aynı mı diye bakar. Karşılaştırma içeriği göre yapılmaz.

Bağımsız Değişkenler

düğüm

Karşılaştırılacak düğüm.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

User Contributed Notes

There are no user contributed notes for this page.


Özelliğin belirtilen sürümünün desteklenip desteklenmediğine bakar

  • « DOMNode::isSameNode
  • DOMNode::lookupNamespaceURI »
  • PHP Manual
  • DOMNode
  • Özelliğin belirtilen sürümünün desteklenip desteklenmediğine bakar

DOMNode::isSupported

(PHP 5, PHP 7, PHP 8)

DOMNode::isSupported — Özelliğin belirtilen sürümünün desteklenip desteklenmediğine bakar

Açıklama

public DOMNode::isSupported(string $özellik, string $sürüm): bool

özellik özelliğinin sürüm sürümünün gerçeklenim tarafından desteklenip desteklenmediğine bakar.

Bağımsız Değişkenler

özellik

Sınanacak özellik. Özelliklerin listesi için DOMImplementation::hasFeature() yöntemine bakınız.

sürüm

Sınanacak özellik özelliğinin sürüm numarası.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Ayrıca Bakınız

  • DOMImplementation::hasFeature() - DOM gerçeklenimi belirtilen özelliğe sahip mi diye bakar

User Contributed Notes

There are no user contributed notes for this page.


İsim alanı öneki belirtilen düğümün isim alanı betimleyicisini döndürür

  • « DOMNode::isSupported
  • DOMNode::lookupPrefix »
  • PHP Manual
  • DOMNode
  • İsim alanı öneki belirtilen düğümün isim alanı betimleyicisini döndürür

DOMNode::lookupNamespaceURI

(PHP 5, PHP 7, PHP 8)

DOMNode::lookupNamespaceURI — İsim alanı öneki belirtilen düğümün isim alanı betimleyicisini döndürür

Açıklama

public DOMNode::lookupNamespaceURI(?string $önek): ?string

İsim alanı öneki önek ile belirtilen düğümün isim alanı belirtecini döndürür.

Bağımsız Değişkenler

önek

Bakılan önek. null belirtilmişse yöntem öntanımlı isim alanı belirtecini döndürür (varsa).

Dönen Değerler

İsim alanı ile ilişkili belirteç ya da böyle bir şey yoksa null.

Ayrıca Bakınız

  • DOMNode::lookupPrefix() - Belirtilen isim alanıyla ilişkili düğümün isim alanı önekini döndürür

User Contributed Notes

_ michael 30-Apr-2010 02:22
You have to pass *null* to lookupNamespaceURI if you want to read the default namespace. Passing an empty string doesn't work - even though the documentation says that lookupNamespaceURI takes a string as argument (and null would just be converted to an empty string).
lewar 05-Jun-2007 05:20
Simple way to get the URI of the default namespace:

<?php
    $document = new DOMDocument();
    $document->load($xml_file);
    $uri = $document->documentElement->lookupnamespaceURI(NULL);
?>


Belirtilen isim alanıyla ilişkili düğümün isim alanı önekini döndürür

  • « DOMNode::lookupNamespaceURI
  • DOMNode::normalize »
  • PHP Manual
  • DOMNode
  • Belirtilen isim alanıyla ilişkili düğümün isim alanı önekini döndürür

DOMNode::lookupPrefix

(PHP 5, PHP 7, PHP 8)

DOMNode::lookupPrefix — Belirtilen isim alanıyla ilişkili düğümün isim alanı önekini döndürür

Açıklama

public DOMNode::lookupPrefix(string $uri): ?string

İsim alanı betimleyicisi uri ile belirtilen isim alanı ile ilişkili düğümün isim alanı önekini döndürür.

Bağımsız Değişkenler

uri

İsim alanını betimleyen adres.

Dönen Değerler

İsim alanı öneki veya hata durumunda null.

Ayrıca Bakınız

  • DOMNode::lookupNamespaceUri() - İsim alanı öneki belirtilen düğümün isim alanı betimleyicisini döndürür

User Contributed Notes

There are no user contributed notes for this page.


Düğümü normalleştirir

  • « DOMNode::lookupPrefix
  • DOMNode::removeChild »
  • PHP Manual
  • DOMNode
  • Düğümü normalleştirir

DOMNode::normalize

(PHP 5, PHP 7, PHP 8)

DOMNode::normalize — Düğümü normalleştirir

Açıklama

public DOMNode::normalize(): void

Düğümün boş düğümleri kaldırır ve bunları komşu metin düğümlerine ve tüm çocuklarına katar.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

Hiçbir değer dönmez.

Ayrıca Bakınız

  • » DOM Belirtimi
  • DOMDocument::normalizeDocument() - Belgeyi normalleştirir

User Contributed Notes

Amir Laher 22-Aug-2005 04:45
This is a quote from the DOM level 2 spec, explaining the normalize() function.
----
normalize
Puts all Text nodes in the full depth of the sub-tree underneath this Node, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates Text nodes, i.e., there are neither adjacent Text nodes nor empty Text nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [XPointer] lookups) that depend on a particular document tree structure are to be used.
----
(source: http://www.w3.org/TR/DOM-Level-2-Core/core.html)

i.e. the idea of normalize is to make text nodes the same as they would be if the xml document was re-loaded into DOM. It's handy if you want to compare DOM nodes.


Listeden belirtilen çocuğu siler

  • « DOMNode::normalize
  • DOMNode::replaceChild »
  • PHP Manual
  • DOMNode
  • Listeden belirtilen çocuğu siler

DOMNode::removeChild

(PHP 5, PHP 7, PHP 8)

DOMNode::removeChild — Listeden belirtilen çocuğu siler

Açıklama

public DOMNode::removeChild(DOMNode $eski): DOMNode|false

Çocuk listesinden belirtilen çocuğu siler.

Bağımsız Değişkenler

eski

Silinecek çocuk.

Dönen Değerler

Belirtilen çocuk silinebilmişse silinen çocuğu yoksa %false; döndürür.

Hatalar/İstisnalar

DOM_NO_MODIFICATION_ALLOWED_ERR

Düğüm salt okunursa oluşur.

DOM_NOT_FOUND_ERR

eski düğüm listedeki çocuklardan biri değilse oluşur.

Örnekler

- Aşağıdaki örnekte, XML belgedeki chapter elemanı silinmektedir.

Örnek 1 Removing a child

<?php

$doc = new DOMDocument;
$doc->load('book.xml');

$kitap = $doc->documentElement;

// chapter elemanını döndürüp $kitaptan siliyoruz
$chapter = $kitap->getElementsByTagName('chapter')->item(0);
$eskisi = $kitap->removeChild($chapter);

echo $doc->saveXML();
?>

Yukarıdaki örneğin çıktısı:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
          "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<book id="listing">
 <title>My lists</title>

</book>

Ayrıca Bakınız

  • DOMChildNode::remove() - Removes the node
  • DOMNode::appendChild() - Listenin sonuna yeni bir çocuk ekler
  • DOMNode::replaceChild() - Bir çocuk düğümü yenisi ile değiştirir

User Contributed Notes

nggit@phpindonesia 01-Feb-2019 02:29
You can use foreach to remove multiple elements from a DOMNodeList, only if you use a temporary array or via XPath query.
If not, the simplest way will be:

<?php

while ($element = $nodeList->item(0)) {
    $element->parentNode->removeChild($element);
}

?>
Kenney 28-Mar-2013 10:19
This method will remove all child nodes but leave the attributes (and namespace declarations) intact.

<?php
function removeChildren( &$node )
{
  $node->parentNode->replaceChild(
    $n = $node->cloneNode( false ),
    $node );

  $node = $n;
}
?>
drimsun at gmail dot com 11-Feb-2010 03:37
If you try to remove children of a nested node (e.g. a <ul> list that contains another <ul>) and only remove the first level of child nodes, you'll get a messed-up node object.

Upon re-use of the messed-up node you'll get an error message that says: "Fatal error: Call to a member function blahblah() on a non-object".

To remove ALL child nodes, use this recursive function instead:
<?php
/**
 * Helper function that removes all child nodes of $node recursively
 * (i.e. including child nodes of the child nodes and so forth).
 */
function remove_children(&$node) {
  while ($node->firstChild) {
    while ($node->firstChild->firstChild) {
      remove_children($node->firstChild);
    }
    $node->removeChild($node->firstChild);
  }
}
?>
Justin Carlson 05-Nov-2009 11:46
Just a note, if you remove a node the whitespace it occupied will remain if you save the file.

To avoid this, use $document->preserveWhiteSpace = false;

For Example:

<?php
$document = new DomDocument();
$document->preserveWhiteSpace = false;
?>
crazy888s at hotmail dot com 15-Apr-2009 01:50
You can't remove DOMNodes from a DOMNodeList as you're iterating over them in a foreach loop. For example...

<?php
$domNodeList = $domDocument->getElementsByTagname('p');
foreach ( $domNodeList as $domElement ) {
  //  ...do stuff with $domElement...
  $domElement->parentNode->removeChild($domElement);
}
?>

... will seemingly leave the internal iterator on the foreach out of wack and results will be quite strange. Though, making a queue of items to remove seems to work. For example...

<?php
$domNodeList = $domDocument->getElementsByTagname('p');
$domElemsToRemove = array();
foreach ( $domNodeList as $domElement ) {
  // ...do stuff with $domElement...
  $domElemsToRemove[] = $domElement;
}
foreach( $domElemsToRemove as $domElement ){
  $domElement->parentNode->removeChild($domElement);
}
?>
Justin Sheckler 30-Jan-2009 08:44
These two functions might be helpful to anyone trying to delete a node and all of its children:

<?php
function deleteNode($node) {
    deleteChildren($node);
    $parent = $node->parentNode;
    $oldnode = $parent->removeChild($node);
}

function deleteChildren($node) {
    while (isset($node->firstChild)) {
        deleteChildren($node->firstChild);
        $node->removeChild($node->firstChild);
    }
}
?>
tim cameron ryan 19-Jul-2008 01:00
Or something like:

<?php

while ($node->childNodes->length)
     $node->removeChild($node->firstChild);

?>
Michael D (DigitalGemstones.com) 05-Jul-2008 04:15
Note that iterating through the childNodes array and removing those children will stop the iteration.

For example:
<?php
foreach($node->childNodes as $child)
{
  if(iWantToDeleteThisNode($child))
     $child->parentNode->removeChild($child);
}
?>

Will not work.  Note that in removing the node, the childNodes array gets rebuilt (it seems) and so only the first item will be removed.  In order to properly remove all the children you want to remove, you will need to do something like the following:

<?php
$nodesToDelete = array();
foreach($node->childNodes as $child)
{
  if(iWantToDeleteThisNode($child))
    $nodesToDelete[] = $child;
}
foreach($nodesToDelete as $node)
{
  $node->parentNode->removeChild($node);
}
?>

I believe this is actually more efficient than the first snippet would be (if it worked) but obviously I cannot benchmark it.
Wala 04-Apr-2008 10:57
I used the following to delete an entire node using the child element:

<?php
$childElement->parentNode->parentNode-> removeChild($childElement->parentNode);
?>

I could not have thought of it without the help of everyone who contributed to this thread.

Thanks!

(I had to introduce the extra space between parentNode->removeChild to get rid of the wordwrap() warning while posting this note)
Vasil Rangelov 06-Oct-2007 10:14
At the time of writing, I suppose rightfully, removeChild() removes only the selected node, but when you remove an element, it's child elements are not removed. If you want to achieve that, replaceChild() is the solution.

The following should remove all descendants of the $node DOMNode, regardless of it's name:
<?php
$node->replaceChild(new DOMElement($node->nodeName), $node);
?>
If you're replacing the root element, you must explicitly state that with $node->documentElement as the second argument.
mytto at openxtrem dot com 07-Sep-2005 02:20
Back again on removing childs and iterators robustness.

Things get a bit more complicated when you only want to remove 'some' nodes according to a certain condition. Then you can't just remove the first one repeatedly.

The trick is to copy the content of the node list into a more robust collection than DOMNodeList, I name array!

The following piece of code will, for instance, remove all empty child nodes:

<?php
// Copy childNodes array
$childNodes = array();
foreach($node->childNodes as $childNode) {
  $childNodes[] = $childNode;
}

// Browse with the copy
foreach ($childNodes as $childNode) {
  if (!$childNode->hasChildNodes()); {
    $childNode->parentNode->removeChild($childNode);
  }
}
?>
blaine (at) blainegarrett (dot com) 23-Aug-2005 10:10
This might be obvious, but might help someone as well...

If you simply have a node that you need to remove (perhaps from an xpath) and don't know the parent node offhand (the examples seem to assume you have the parent in a variable), then you can do something easy like this...

$node->parentNode->removeChild($node);

parentNode is a scalar property of the Element.

Hope that helps.

--
Blaine Garrett
pedro at leb dot usp dot br 30-May-2005 04:24
You may also use the hasChild function:
<?php

while($node->hasChildNodes()) {
  $node->removeChild($node->childNodes->item(0));
}

?>

When you remove a childNode, the next node becomes the first one!
vsematika at centrum dot cz 13-Feb-2005 03:35
For those who don't understand >sbeam at onsetcorps dot net on 02-Feb-2005 12:07< 'hack', here's a little discussion:

First but *wrong* try would be:
<?php
foreach ($parent->childNodes as $child) {
   $parent->removeChild($child);
?>
This doesn't work because DOM tree id modified on-the-fly and this confuses foreach loop.

The idea behind sbeam's trick is that after removing the first item in the first iteration, the second item in childNodes nodelist immediately becomes the first item. That's why we must _always_ remove the first child. Here's another implementation:

<?php
$count = $parent->childNodes->length;
for ($i = 0; $i < $count; $i++) {
   $oldNode = $parent->removeChild($parent->childNodes->item(0)); // !!! not item($i) !!!
}
?>


Bir çocuk düğümü yenisi ile değiştirir

  • « DOMNode::removeChild
  • DOMNodeList »
  • PHP Manual
  • DOMNode
  • Bir çocuk düğümü yenisi ile değiştirir

DOMNode::replaceChild

(PHP 5, PHP 7, PHP 8)

DOMNode::replaceChild — Bir çocuk düğümü yenisi ile değiştirir

Açıklama

public DOMNode::replaceChild(DOMNode $yeni, DOMNode $eski): DOMNode|false

Düğümün eski çocuk düğümünün yerine yeni düğümünü yerleştirir. Yeni düğüm zaten bir çocuk düğümse ikinci kez eklenmez. Yer değiştirme başarılı olursa eski düğüm döndürülür.

Bağımsız Değişkenler

yeni

Yeni düğüm. Hedef belgenin bir üyesi olmalıdır. Yani, DOMDocument->createXXX() yöntemlerinden biri ile oluşturulmuş veya DOMDocument::importNode() ile belgeye dahil edilmiş olmalıdır.

eski

Eski düğüm.

Dönen Değerler

Bir hata oluşursa false yoksa eski düğüm.

Hatalar/İstisnalar

DOM_NO_MODIFICATION_ALLOWED_ERR

Düğüm salt okunursa veya düğümün önceki ebeveyni salt okunur olarak yerleştirilmişse bu hata oluşur.

DOM_HIERARCHY_REQUEST_ERR

Düğüm, yeni düğümün türündeki çocuk düğümlere izin vermeyen türde ise veya yeni düğüm, çocuğu olacağı düğümün ebeveyni veya atalarından biri ise bu hata oluşur.

DOM_WRONG_DOCUMENT_ERR

Eğer yeni düğüm, çocuğu olacağı düğümü oluşturan belgeden farklı bir belge tarafından oluşturulmuşsa bu hata oluşur.

DOM_NOT_FOUND_ERR

eski düğüm, bir çocuk düğüm değilse bu hata oluşur.

Ayrıca Bakınız

  • DOMChildNode::replaceWith() - Replaces the node with new nodes
  • DOMNode::appendChild() - Listenin sonuna yeni bir çocuk ekler
  • DOMNode::removeChild() - Listeden belirtilen çocuğu siler

User Contributed Notes

chealer at gmail dot com 15-Aug-2018 03:07
As of version 5.6, PHP still behaves as reported by jb at jbpros dot com. To use replaceChild() in a loop, the more standard pattern used in the following example can be used:

for ($currentNode = 0; $currentNode < $link->childNodes->length; $currentNode++) {
    $child = $link->childNodes[$currentNode];

    // "Remove" links, since links can't contain links
    if ($child instanceof DOMElement && $child->tagName == 'a') {
        $replacement = $dom->createTextNode($child->textContent);
        $link->replaceChild($replacement, $child);
    }
}
jb at jbpros dot com 01-Mar-2005 08:08
If you are trying to replace more than one node at once, you have to be careful about iterating over the DOMNodeList.  If the old node has a different name from the new node, it will be removed from the list once it has been replaced.  Use a regressive loop:

<?php

$xml = new DOMDocument;
$xml->load('docfile.xml');

$elements = $xml->getElementsByTagNameNS('http://www.example.com/NS/', '*');
$i = $elements->length - 1;
while ($i > -1) {
    $element = $elements->item($i);
    $ignore = false;

    $newelement = $xml>createTextNode('Some new node!');
    $element->parentNode->replaceChild($newelement, $element);
    $i--;
}

?>

The loop counter ($i) will always be in the list's interval as removed elements indexes are above the counter.
aidan at php dot net 26-Dec-2004 02:17
Here is a simple example for replacing a node:

Let's define our XML like so:

<?php
$xml = <<<XML
<?xml version="1.0"?>
<root>
  <parent>
     <child>bar</child>
     <child>foo</child>
  </parent>
</root>
XML;
?>

If we wanted to replace the entire <parent> node, we could do something like this:

<?php
// Create a new document fragment to hold the new <parent> node
$parent = new DomDocument;
$parent_node = $parent ->createElement('parent');

// Add some children
$parent_node->appendChild($parent->createElement('child', 'somevalue'));
$parent_node->appendChild($parent->createElement('child', 'anothervalue'));

// Add the keywordset into the new document
// The $parent variable now holds the new node as a document fragment
$parent->appendChild($parent_node);
?>

Next, we need to locate the old node:

<?php
// Load the XML
$dom = new DomDocument;
$dom->loadXML($xml);

// Locate the old parent node
$xpath = new DOMXpath($dom);
$nodelist = $xpath->query('/root/parent');
$oldnode = $nodelist->item(0);
?>

We then import and replace the new node:

<?php
// Load the $parent document fragment into the current document
$newnode = $dom->importNode($parent->documentElement, true);

// Replace
$oldnode->parentNode->replaceChild($newnode, $oldnode);

// Display
echo $dom->saveXML();
?>

Our new node is successfully imported:

<?xml version="1.0"?>
<root>
<parent><child>somevalue</child><child>anothervalue</child></parent>
</root>
franp at free dot fr 23-Sep-2004 08:39
1) If your XPath query returns a NodeList including a unique item, or if you know for sure the order of the items returned, you can use the "item(n)" syntax instead of the "foreach" syntax.
This can greatly improve you code lisibility.
s the method name implies, replaceChild cannot replace a node itself but a child of a node.
The trick is to use replaceChild on the parent node of your Xpath query result.

<?xml version="1.0" ?>
<action>
 <actionGlobal>
  <actionGlobalFR>sometext</actionGlobalFR>
 <actionGlobal>
</action>

$frag = $doc->createElement("actionGlobalFR");
$fragA = $doc->createTextNode("anothertext");
$frag->appendChild($fragA);

$xpResult = $xp->query("/action/actionGlobal/actionGlobalFR");
$blipblip = $xpResult->item(0)->parentNode->replaceChild($ajout, $xpResult->item(0));

2) Also, as the method name implies, replaceChild cannot replace a node itself but a child of a node.
Still it is possible to replace a node pointed by XPath istead of its child.
The trick is to use replaceChild on the parent node of your Xpath query result.

<?xml version="1.0" ?>
<action>
  <FR>French Text</FR>
</action>

<?php
$frag = $doc->createElement("EN");
$fragA = $doc->createTextNode("English Text");
$frag->appendChild($fragA);

$xpResult = $xp->query("/action/FR");
$blipblip = $xpResult->item(0)->parentNode->replaceChild($fragA, $xpResult->item(0));
?>

Et voil? !

This produces :
<?xml version="1.0" ?>
<action>
  <EN>English Text</EN>
</action>

....................................................

3) Also, be carefull, you CANNOT replace a node that doesn't exist.
While this may seems obvious, it is easy to forget.

Consider this :
<?xml version="1.0" ?>
<action>
  <EN></EN>
</action>

You cannot use replaceChild() to turn this into :
<?xml version="1.0" ?>
<action>
  <EN>Some text</EN>
</action>

The reason is that since the <EN></EN> element is empty, it has no child (this is clearer to understand if you consider that <EN></EN> can be written <EN />).
The fact that you intend to put some text inbetween <EN> and </EN> does not change the fact that it has no text yet, thus no child yet.
When dealing with DOM, do not take your dream for the reality. The DOM parser doen't care about your dreams. If an element is currently empty, it has no child, whatever you intend to fill in.

Thus, the solution to teh problem is to use appendChild intead of replaceChild :

<?php
$fragA = $doc->createTextNode("Some Text");
$xpResult = $xp->query("/action/EN");
$blipblip = $xpResult->item(0)->appendChild($fragA);
?>

This produces the awaited :
<?xml version="1.0" ?>
<action>
  <EN>Some Text</EN>
</action>

....................................................

4) Note that the description of replaceChild in the doc is wrong. Arguments have been inverted.
The correct description is :
object DOMNode->replaceChild (object newnode, object oldnode)


DOMNodeList sınıfı

(PHP 5, PHP 7, PHP 8)

Sınıf Sözdizimi

class DOMNodeList implements IteratorAggregate, Countable {
/* Özellikler */
public readonly int $length;
/* Yöntemler */
public count(): int
public getIterator(): Iterator
public item(int $index): DOMElement|DOMNode|DOMNameSpaceNode|null
}

Özellikler

length

Listedeki düğüm sayısı. Geçerli çocuk düğümlerin indisleri 0'dan başlar, length - 1'de biter.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | DOMNodeList artık IteratorAggregate arayüzünü gerçekliyor. Evvelce, Traversable arayüzünü gerçekliyordu.
7.2.0 | length özelliğinin değerini döndüren Countable arayüzü gerçeklendi.

Ayrıca Bakınız

  • » NodeList'in W3C belirtimi

İçindekiler

  • DOMNodeList::count — Listedeki düğüm sayısını döndürür
  • DOMNodeList::getIterator — Retrieve an external iterator
  • DOMNodelist::item — İndisi belirtilen düğümü döndürür

User Contributed Notes

niko at yopmail dot com 03-Apr-2021 03:13
It's worth to mention that DOMNodeList is not an Array,  so you have to convert first to an array before to use for, foreach or array_map, array_filter, array_walk functions.

Use iterator_to_array to make the conversion ( since PHP 5.1.0 ) .

<code>
  /* @ suppress warning var_dump not yet implemented for class */

@array_walk( iterator_to_array( $Some_NodeList ), 'var_dump' ) );

foreach( iterator_to_array( $Some_NodeList ) as $node )
    @var_dump( $node );

</code>

Hope is usefull.
ignitedfirestarter at gmail dot com 04-Jul-2012 10:39
If you want to recurse over a DOM then this might help:
<?php

/**
 * PHP's DOM classes are recursive but don't provide an implementation of
 * RecursiveIterator. This class provides a RecursiveIterator for looping over DOMNodeList
 */
class DOMNodeRecursiveIterator extends ArrayIterator implements RecursiveIterator {

  public function __construct (DOMNodeList $node_list) {

    $nodes = array();
    foreach($node_list as $node) {
      $nodes[] = $node;
    }

    parent::__construct($nodes);

  }

  public function getRecursiveIterator(){
    return new RecursiveIteratorIterator($this, RecursiveIteratorIterator::SELF_FIRST);
  }

  public function hasChildren () {
    return $this->current()->hasChildNodes();
  }

  public function getChildren () {
    return new self($this->current()->childNodes);
  }

}
?>
geompse at gmail dot com 19-May-2010 08:39
Note that $length is calculated (php5.3.2).
Iterating over a large NodeList may be time expensive.

Prefer :
$nb = $nodelist->length;
for($pos=0; $pos<$nb; $pos++)

Than:
for($pos=0; $pos<$nodelist->length; $pos++)

I had a hard time figuring that out...
bobvandell at hotmail dot com 26-Aug-2008 09:12
That's actually incorrect. You can use function results as objects. It makes building an API for your database very clean and neat. For example:

Our code:

$articles = Node::screate('tags', 123456)->assets('like:title:test')->articles;

We use the above code to get articles that are linked to assets that are linked to a specific tag in our database.
c dot 1 at smithies dot org 23-May-2008 05:43
You can modify, and even delete, nodes from a DOMNodeList if you iterate backwards:

$els = $document->getElementsByTagName('input');
for ($i = $els->length; --$i >= 0; ) {
  $el = $els->item($i);
  switch ($el->getAttribute('name')) {
    case 'MAX_FILE_SIZE' :
      $el->parentNode->removeChild($el);
    break;
    case 'inputfile' :
      $el->setAttribute('type', 'text');
    //break;
  }
}
drichter at muvicom dot de 14-May-2008 06:11
Addition to my first note:

An traditional for-loop does not allow you to change the DOM-tree while looping - the effects are the nearly the same as with foreach. So you have to collect the nodes in an array and do the tree-altering stuff within a second loop (looping the array this time ...)
drichter at muvicom dot de 14-May-2008 04:56
I have done some testing and have found 2 results:
(My System: Win XP with PHP 5.2.1)

1) Iteration with foreach does function correctly as "james dot j dot hackett at gmail dot com" writes, _if_ you only do readonly stuff with foreach or minor writings of some attributes.

2) foreach does not function, if you are doing some DOM-Operations while iterating. In my situation it was adding the iterated $node as an child to an new node:

$newNode = $dom->createElement('newNode') ;
foreach ($nodeList as $node) {
  echo $node->nodeValue ;
  $newNode->appendChild($node) ;
}

This only gives you the first element ...

I'm interpreting it as an confusing but correct behavior because of the changes within the $dom-object while appending the node at an additional place ...

So, if you want to do something like 2) use for, length and item() :)
james dot j dot hackett at gmail dot com 08-May-2008 09:47
In Response to 'kassah at gmail'

You don't need to convert a DOMNodeList to an array in order iterate through it using 'foreach'.  You can use foreach directly with the DOMNodeList.

$nodeList = $someDomDocument->getElementsbytagname('user');

foreach ($nodeList as $node) {
    echo $node->nodeValue;
}
brack at wjp dot de 21-Apr-2008 02:35
In PHP 5.2.5 (Windows) it is not possible to iterate correctly over the DOMNodeList object returned by DOMNode->childNodes using foreach. Instead I had to use the for loop in conjunction with the item() method of DOMNodeList for iterating over all child nodes correctly.

I don't know whether this is really a bug, but apparently it is.


Listedeki düğüm sayısını döndürür

  • « DOMNodeList
  • DOMNodeList::getIterator »
  • PHP Manual
  • DOMNodeList
  • Listedeki düğüm sayısını döndürür

DOMNodeList::count

(PHP 7 >= 7.2.0, PHP 8)

DOMNodeList::count — Listedeki düğüm sayısını döndürür

Açıklama

public DOMNodeList::count(): int

Listedeki düğüm sayısını döndürür.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

Aynı zamanda length özelliğinin de değeri olan, listedeki düğüm sayısını döndürür.

User Contributed Notes

plimpton47 at example dot com 04-May-2018 08:09
Be careful with using this function as it's not available for anything before PHP 7.2, use the length property instead


Retrieve an external iterator

  • « DOMNodeList::count
  • DOMNodelist::item »
  • PHP Manual
  • DOMNodeList
  • Retrieve an external iterator

DOMNodeList::getIterator

(PHP 8)

DOMNodeList::getIterator — Retrieve an external iterator

Açıklama

public DOMNodeList::getIterator(): Iterator

Returns an external iterator for the node list.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

Traversable veya Iterator arayüzünü gerçekleyen nesnenin bir örneğiyle döner.

Hatalar/İstisnalar

Başarısızlık durumunda bir istisna (Exception) oluşur.

Ayrıca Bakınız

  • IteratorAggregate::getIterator() - Harici bir yineleyici ile döner

User Contributed Notes

There are no user contributed notes for this page.


İndisi belirtilen düğümü döndürür

  • « DOMNodeList::getIterator
  • DOMNotation »
  • PHP Manual
  • DOMNodeList
  • İndisi belirtilen düğümü döndürür

DOMNodelist::item

(PHP 5, PHP 7, PHP 8)

DOMNodelist::item — İndisi belirtilen düğümü döndürür

Açıklama

public DOMNodeList::item(int $index): DOMElement|DOMNode|DOMNameSpaceNode|null

DOMNodeList nesnesi içindeki index'i belirtilen düğümü döndürür.

İpucu

Listedeki düğüm sayısını öğrenmek için DOMNodeList nesnesinin length özelliğini kullanın.

Bağımsız Değişkenler

index

İstenen düğümün düğüm listesindeki indisi.

Dönen Değerler

DOMNodeList nesnesindeki index'inci düğümü döndürür; belirtilen indis geçersizse null döner.

Örnekler

Örnek 1 - Bir tablonun tüm girdilerini çıktılamak

<?php

$doc = new DOMDocument;
$doc->load('book.xml');

$items = $doc->getElementsByTagName('entry');

for ($i = 0; $i < $items->length; $i++) {
echo $items->item($i)->nodeValue . "\n";
}

?>

for yerine foreach de kullanılabilirdi:

<?php

foreach ($items as $item) {
echo $item->nodeValue . "\n";
}

?>

Yukarıdaki örneğin çıktısı:

Title
Author
Language
ISBN
The Grapes of Wrath
John Steinbeck
en
0140186409
The Pearl
John Steinbeck
en
014017737X
Samarcande
Amine Maalouf
fr
2253051209

User Contributed Notes

jeffpuckett2 at gmail dot com 15-Jun-2016 02:55
DOMNodelist::item can return a DOMElement object, which extends DOMNode class. But it can also return a DOMText object.

<?php
$xml = '
<root>
  <node/>
  <node>
    <sub>more</sub>
  </node>
  <node>
    <sub>another</sub>
  </node>
  <node>value</node>
</root>
';

$doc = new DOMDocument();
$doc->loadXML($xml);

$items = $doc->documentElement->childNodes;
for ($i = 0; $i < $items->length; $i++)
  echo get_class($items->item($i)).PHP_EOL;
?>

Results in this output:

DOMText
DOMElement
DOMText
DOMElement
DOMText
DOMElement
DOMText
DOMElement
DOMText
Anonymous 25-Jun-2012 11:36
calling domnodelist->item($i) with an index $i greater than domnodelist->length - 1 , will return the entire document, will not produce an error, and will not circle back to the start of the list.
Nagy Attila 06-Jan-2011 09:02
DOMNodeList::item does not return in constant time!

If you need to iterate over large nodelist then you'd better use standard navigation.

Instead of:

<?php
foreach ($nodelist as $node) {
    // do something
}
?>

you could do:

<?php
$node = $parentnode->firstChild;

do {
    // do something
} while ($node = $node->nextSibling);
?>
olivier dot berger at it-sudparis dot eu 21-Aug-2008 02:56
It seems that with zend.ze1_compatibility_mode on, the only way to iterate over the items list is with :
for ($i = 0; $i < $nodeList->length; ++$i) {
    $nodeName = $nodeList->item($i)->nodeName;
    $nodeValue = $nodeList->item($i)->nodeValue;
}

As other attemps failed :

for ($i = 0; $i < $nodeList->length; ++$i) {
    $node = &$nodeList->item($i);
    $nodeName = $node->nodeName;
    $nodeValue = $node->nodeValue;
}

or :
foreach ($nodeList as $node) {
    echo $node->nodeName;
    echo $node->nodeValue;
}
vinyanov at poczta dot onet dot pl 05-Jan-2008 10:12
SimpleXML has its own SPL iterator. See http://www.php.net/~helly/php/ext/spl/classSimpleXMLIterator.html . But I guess that there are none for DOM nodes. By the way, two out of three implementations I found over the Net were not recursive, so I wrote my own. Here is the snippet:

<?php

class DOMNodeListIterator implements RecursiveIterator
{
    private
        $nodes,
        $offset;

    function __construct(DOMNodeList $nodes)
    {
        return $this -> nodes = $nodes;
    }

    function rewind()
    {
        return $this -> offset = 0;
    }

    function current()
    {
        return $this -> nodes -> item($this -> offset);
    }

    function key()
    {
        return $this -> current() -> nodeName;
    }

    function next()
    {
        return $this -> offset++;
    }

    function valid()
    {
        return $this -> offset < $this -> nodes -> length;
    }

    function hasChildren()
    {
        return isset($this -> current() -> childNodes -> length) && $this -> current() -> childNodes -> length > 0;
    }

    function getChildren()
    {
        return new self($this -> current() -> childNodes);
    }
}

?>

Remember to use RecursiveIteratorIterator::SELF_FIRST flag when you create your iterator iterator.

<?php

$iterator = new DOMNodeListIterator($document -> childNodes);
$iterator = new RecursiveIteratorIterator($iterator, RecursiveIteratorIterator::SELF_FIRST);

?>

Should work, has just few minutes though. :)
Hayley Watson 29-Oct-2007 02:14
Keep in mind that DOMNodelists are "live" - changes to the document or node that the DOMNodelist was derived from will be reflected in the DOMNodelist. In other words, a list of a parent node's children will change if you change the parent's children!
james dot dunmore at gmai dot com 27-Jul-2007 08:57
tfg_allardyce at gmail dot com

I have had exactly this problem.

To rectify I've had to do this:
<?php
$old_element = $doc->getElementsByTagName('Element1')->item(0);
$new_element = $doc->createElement('NewElement1');

$old_element_childNodes = $old_element->childNodes;
$length = $old_element_childNodes->length;

for($i = 0; $i < $length; $i++)
{
    $oldChildren_array[] = $old_element_childNodes->item($i);
}

foreach($oldChildren_array as $old_c)
{
    $new_element->appendChild($old_c);
}
?>

Rather than this:
(which I will bug report)
<?php
$old_element = $doc->getElementsByTagName('Element1')->item(0):
$new_element = $doc->createElement('NewElement1');

foreach($old_element->childNode as $node)
{
     $new_element->appendChild($node);
}

?>

Using the latter, randomally removes the children!
Geoffrey Thubron 26-May-2007 02:47
@ tfg_allardyce at gmail dot com

You could loop through the list backwards, that way, you are only ever taking off the last item from the list, and hence wont have disrupted the order.
oliver dot christen at camptocamp dot com 13-Feb-2007 07:27
NodeList are something annoying because you can't output the content with a simple print_r, so I did a little function that add all the node to a new empty DOMDocument and output it as a string.
Have fun.

<?php

public function domNodeList_to_string($DomNodeList) {
    $output = '';
    $doc = new DOMDocument;
    while ( $node = $DomNodeList->item($i) ) {
        // import node
        $domNode = $doc->importNode($node, true);
        // append node
        $doc->appendChild($domNode);
        $i++;
    }
    $output = $doc->saveXML();
    $output = print_r($output, 1);
    // I added this because xml output and ajax do not like each others
    $output = htmlspecialchars($output);
    return $output;
}

?>


DOMNotation sınıfı

(PHP 5, PHP 7, PHP 8)

Sınıf Sözdizimi

class DOMNotation extends DOMNode {
/* Özellikler */
public readonly string $publicId;
public readonly string $systemId;
/* Miras alınan özellikler */
public readonly ?string $nodeName;
public string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly DOMNodeList $childNodes;
public readonly ?DOMNode $firstChild;
public readonly ?DOMNode $lastChild;
public readonly ?DOMNode $previousSibling;
public readonly ?DOMNode $nextSibling;
public readonly ?DOMNamedNodeMap $attributes;
public readonly ?DOMDocument $ownerDocument;
public readonly ?string $namespaceURI;
public ?string $prefix;
public readonly ?string $localName;
public readonly ?string $baseURI;
public string $textContent;
/* Miras alınan yöntemler */
public DOMNode::appendChild(DOMNode $yeni): DOMNode|false
public DOMNode::C14N(
bool $özel = false,
bool $aAçıklamalı = false,
?array $xpath = null,
?array $isim_alanları = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $torunlar_dahil = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(?array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $yeni, ?DOMNode $mevcut = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $uri): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $düğüm): bool
public DOMNode::isSupported(string $özellik, string $sürüm): bool
public DOMNode::lookupNamespaceURI(?string $önek): ?string
public DOMNode::lookupPrefix(string $uri): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $eski): DOMNode|false
public DOMNode::replaceChild(DOMNode $yeni, DOMNode $eski): DOMNode|false
}

Özellikler

publicId

Genel betimleyici.

systemId

Sistem betimleyicisi.

User Contributed Notes

There are no user contributed notes for this page.


The DOMParentNode interface

(PHP 8)

Arayüz Sözdizimi

interface DOMParentNode {
/* Yöntemler */
public append(DOMNode|string ...$nodes): void
public prepend(DOMNode|string ...$nodes): void
public replaceChildren(DOMNode|string ...$nodes): void
}

İçindekiler

  • DOMParentNode::append — Appends nodes after the last child node
  • DOMParentNode::prepend — Prepends nodes before the first child node
  • DOMParentNode::replaceChildren — Replace children in node

User Contributed Notes

There are no user contributed notes for this page.


Appends nodes after the last child node

  • « DOMParentNode
  • DOMParentNode::prepend »
  • PHP Manual
  • DOMParentNode
  • Appends nodes after the last child node

DOMParentNode::append

(PHP 8)

DOMParentNode::append — Appends nodes after the last child node

Açıklama

public DOMParentNode::append(DOMNode|string ...$nodes): void

Appends one or many nodes to the list of children after the last child node.

Bağımsız Değişkenler

nodes

The nodes to append. Strings are automatically converted to text nodes.

Dönen Değerler

Hiçbir değer dönmez.

Hatalar/İstisnalar

DOM_HIERARCHY_REQUEST_ERR

Raised if this node is of a type that does not allow children of the type of one of the passed nodes, or if the node to put in is one of this node's ancestors or this node itself.

DOM_WRONG_DOCUMENT_ERR

Raised if one of the passed nodes was created from a different document than the one that created this node.

Sürüm Bilgisi

Sürüm: | Açıklama
8.3.0 | Calling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.

Ayrıca Bakınız

  • DOMParentNode::prepend() - Prepends nodes before the first child node

User Contributed Notes

There are no user contributed notes for this page.


Prepends nodes before the first child node

  • « DOMParentNode::append
  • DOMParentNode::replaceChildren »
  • PHP Manual
  • DOMParentNode
  • Prepends nodes before the first child node

DOMParentNode::prepend

(PHP 8)

DOMParentNode::prepend — Prepends nodes before the first child node

Açıklama

public DOMParentNode::prepend(DOMNode|string ...$nodes): void

Prepends one or many nodes to the list of children before the first child node.

Bağımsız Değişkenler

nodes

The nodes to prepend. Strings are automatically converted to text nodes.

Dönen Değerler

Hiçbir değer dönmez.

Hatalar/İstisnalar

DOM_HIERARCHY_REQUEST_ERR

Raised if this node is of a type that does not allow children of the type of one of the passed nodes, or if the node to put in is one of this node's ancestors or this node itself.

DOM_WRONG_DOCUMENT_ERR

Raised if one of the passed nodes was created from a different document than the one that created this node.

Sürüm Bilgisi

Sürüm: | Açıklama
8.3.0 | Calling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.

Ayrıca Bakınız

  • DOMParentNode::append() - Appends nodes after the last child node

User Contributed Notes

There are no user contributed notes for this page.


Replace children in node

  • « DOMParentNode::prepend
  • DOMProcessingInstruction »
  • PHP Manual
  • DOMParentNode
  • Replace children in node

DOMParentNode::replaceChildren

(PHP 8 >= 8.3.0)

DOMParentNode::replaceChildren — Replace children in node

Açıklama

public DOMParentNode::replaceChildren(DOMNode|string ...$nodes): void

Replace children in node.

Bağımsız Değişkenler

nodes

The nodes replacing the children. Strings are automatically converted to text nodes.

Dönen Değerler

Hiçbir değer dönmez.

Hatalar/İstisnalar

DOM_HIERARCHY_REQUEST_ERR

Raised if this node is of a type that does not allow children of the type of one of the passed nodes, or if the node to put in is one of this node's ancestors or this node itself.

DOM_WRONG_DOCUMENT_ERR

Raised if one of the passed nodes was created from a different document than the one that created this node.

Sürüm Bilgisi

Sürüm: | Açıklama
8.3.0 | Calling this method on a node without an owner document now works. Previously this threw a DOMException with code DOM_HIERARCHY_REQUEST_ERR.

Örnekler

Örnek 1 DOMParentNode::replaceChildren() example

<?php

$dom = new DOMDocument();
$dom->loadHTML('<!DOCTYPE HTML><html><p>hi</p> test <p>hi2</p></html>');

$dom->documentElement->replaceChildren('foo', $dom->createElement('p'), 'bar');
echo $dom->saveXML();
?>

Yukarıdaki örneğin çıktısı:

<?xml version="1.0" standalone="yes"?>
<!DOCTYPE HTML>
<html>foo<p/>bar</html>

User Contributed Notes

There are no user contributed notes for this page.


DOMProcessingInstruction sınıfı

(PHP 5, PHP 7, PHP 8)

Sınıf Sözdizimi

class DOMProcessingInstruction extends DOMNode {
/* Özellikler */
public readonly string $target;
public string $data;
/* Miras alınan özellikler */
public readonly ?string $nodeName;
public string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly DOMNodeList $childNodes;
public readonly ?DOMNode $firstChild;
public readonly ?DOMNode $lastChild;
public readonly ?DOMNode $previousSibling;
public readonly ?DOMNode $nextSibling;
public readonly ?DOMNamedNodeMap $attributes;
public readonly ?DOMDocument $ownerDocument;
public readonly ?string $namespaceURI;
public ?string $prefix;
public readonly ?string $localName;
public readonly ?string $baseURI;
public string $textContent;
/* Yöntemler */
public __construct(string $name, string $value = "")
/* Miras alınan yöntemler */
public DOMNode::appendChild(DOMNode $yeni): DOMNode|false
public DOMNode::C14N(
bool $özel = false,
bool $aAçıklamalı = false,
?array $xpath = null,
?array $isim_alanları = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $torunlar_dahil = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(?array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $yeni, ?DOMNode $mevcut = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $uri): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $düğüm): bool
public DOMNode::isSupported(string $özellik, string $sürüm): bool
public DOMNode::lookupNamespaceURI(?string $önek): ?string
public DOMNode::lookupPrefix(string $uri): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $eski): DOMNode|false
public DOMNode::replaceChild(DOMNode $yeni, DOMNode $eski): DOMNode|false
}

Özellikler

target

Hedef.

data

Veri.

İçindekiler

  • DOMProcessingInstruction::__construct — Yeni bir DOMProcessingInstruction nesnesi oluşturur

User Contributed Notes

There are no user contributed notes for this page.


Yeni bir DOMProcessingInstruction nesnesi oluşturur

  • « DOMProcessingInstruction
  • DOMText »
  • PHP Manual
  • DOMProcessingInstruction
  • Yeni bir DOMProcessingInstruction nesnesi oluşturur

DOMProcessingInstruction::__construct

(PHP 5, PHP 7, PHP 8)

DOMProcessingInstruction::__construct — Yeni bir DOMProcessingInstruction nesnesi oluşturur

Açıklama

public DOMProcessingInstruction::__construct(string $name, string $value = "")

Yeni bir DOMProcessingInstruction nesnesi oluşturur. Bu nesne salt okunurdur. Bir belgeye eklenebilir, fakat düğüm bir belge ile ilişkilendirilene kadar düğüme yeni düğümler eklenemez. Yazılabilir bir düğüm oluşturmak için DOMDocument::createProcessingInstruction() yöntemini kullanın.

Bağımsız Değişkenler

name

İşlem komutunun etiket ismi.

değer

İşlem komutunun değeri.

Örnekler

Örnek 1 - Yeni bir DOMProcessingInstruction oluşturmak

<?php

$dom = new DOMDocument('1.0', 'UTF-8');
$html = $dom->appendChild(new DOMElement('html'));
$body = $html->appendChild(new DOMElement('body'));
$pinode = new DOMProcessingInstruction('php', 'echo "Merhaba Arz"; ');
$body->appendChild($pinode);
echo $dom->saveXML();

?>

Yukarıdaki örneğin çıktısı:

<?xml version="1.0" encoding="UTF-8"?>
<html><body><?php echo "Merhaba Arz"; ?></body></html>

Ayrıca Bakınız

  • DOMDocument::createProcessingInstruction() - Yeni bir işlem komutu düğümü oluşturur

User Contributed Notes

There are no user contributed notes for this page.


DOMText sınıfı

(PHP 5, PHP 7, PHP 8)

Giriş

DOMText sınıfı DOMCharacterData sınıfından türetilir ve bir DOMElement veya DOMAttr düğümünün metin içeriğini temsil eder.

Sınıf Sözdizimi

class DOMText extends DOMCharacterData {
/* Özellikler */
public readonly string $wholetext;
/* Miras alınan özellikler */
public string $data;
public readonly int $length;
public readonly ?DOMElement $previousElementSibling;
public readonly ?DOMElement $nextElementSibling;
public readonly ?string $nodeName;
public string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly DOMNodeList $childNodes;
public readonly ?DOMNode $firstChild;
public readonly ?DOMNode $lastChild;
public readonly ?DOMNode $previousSibling;
public readonly ?DOMNode $nextSibling;
public readonly ?DOMNamedNodeMap $attributes;
public readonly ?DOMDocument $ownerDocument;
public readonly ?string $namespaceURI;
public ?string $prefix;
public readonly ?string $localName;
public readonly ?string $baseURI;
public string $textContent;
/* Yöntemler */
public __construct(string $data = "")
public isElementContentWhitespace(): bool
public isWhitespaceInElementContent(): bool
public splitText(int $offset): DOMText|false
/* Miras alınan yöntemler */
public DOMCharacterData::after(DOMNode|string ...$nodes): void
public DOMCharacterData::appendData(string $data): true
public DOMCharacterData::before(DOMNode|string ...$nodes): void
public DOMCharacterData::deleteData(int $offset, int $count): bool
public DOMCharacterData::insertData(int $offset, string $data): bool
public DOMCharacterData::remove(): void
public DOMCharacterData::replaceData(int $offset, int $count, string $data): bool
public DOMCharacterData::replaceWith(DOMNode|string ...$nodes): void
public DOMCharacterData::substringData(int $offset, int $count): string|false
public DOMNode::appendChild(DOMNode $yeni): DOMNode|false
public DOMNode::C14N(
bool $özel = false,
bool $aAçıklamalı = false,
?array $xpath = null,
?array $isim_alanları = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $torunlar_dahil = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(?array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $yeni, ?DOMNode $mevcut = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $uri): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $düğüm): bool
public DOMNode::isSupported(string $özellik, string $sürüm): bool
public DOMNode::lookupNamespaceURI(?string $önek): ?string
public DOMNode::lookupPrefix(string $uri): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $eski): DOMNode|false
public DOMNode::replaceChild(DOMNode $yeni, DOMNode $eski): DOMNode|false
}

Özellikler

wholetext

Mantıken birbirine komşu metin düğümlerinin (eleman, açıklama veya işlem komutları ile ayrılmamış) tüm metinlerini içerir.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | Gerçeklenmemiş olan DOMText::replaceWholeText() yöntemi kaldırıldı.

İçindekiler

  • DOMText::__construct — Yeni bir DOMText nesnesi oluşturur
  • DOMText::isElementContentWhitespace — Metin düğümünün eleman içeriğinde boşluk karakterleri varsa true döndürür
  • DOMText::isWhitespaceInElementContent — Düğümün boşluk içerip içermediğini belirtir
  • DOMText::splitText — Düğümü belirtilen konumda iki düğüme böler

User Contributed Notes

Trititaty 20-Oct-2016 11:47
Text replacement function for DOM.

<?php
function domTextReplace( $search, $replace, DOMNode &$domNode, $isRegEx = false ) {
  if ( $domNode->hasChildNodes() ) {
    $children = array();
    // since looping through a DOM being modified is a bad idea we prepare an array:
    foreach ( $domNode->childNodes as $child ) {
      $children[] = $child;
    }
    foreach ( $children as $child ) {
      if ( $child->nodeType === XML_TEXT_NODE ) {
        $oldText = $child->wholeText;
        if ( $isRegEx ) {
          $newText = preg_replace( $search, $replace, $oldText );
        } else {
          $newText = str_replace( $search, $replace, $oldText );
        }
        $newTextNode = $domNode->ownerDocument->createTextNode( $newText );
        $domNode->replaceChild( $newTextNode, $child );
      } else {
        domTextReplace( $search, $replace, $child, $isRegEx );
      }
    }
  }
}


Yeni bir DOMText nesnesi oluşturur

  • « DOMText
  • DOMText::isElementContentWhitespace »
  • PHP Manual
  • DOMText
  • Yeni bir DOMText nesnesi oluşturur

DOMText::__construct

(PHP 5, PHP 7, PHP 8)

DOMText::__construct — Yeni bir DOMText nesnesi oluşturur

Açıklama

public DOMText::__construct(string $data = "")

Yeni bir DOMText nesnesi oluşturur.

Bağımsız Değişkenler

data

Metin düğümünün değeri. Belirtilmezse boş bir metin düğümü oluşturulur.

Örnekler

Örnek 1 - Yeni bir DOMText nesnesi oluşturmak

<?php

$dom = new DOMDocument('1.0', 'utf-8');
$element = $dom->appendChild(new DOMElement('root'));
$text = $element->appendChild(new DOMText('kök değer'));
echo $dom->saveXML();
/* çıktısı:
<?xml version="1.0" encoding="utf-8"?><root>kök değer</root> */

?>

Ayrıca Bakınız

  • DOMDocument::createTextNode() - Yeni bir metin düğümü oluşturur

User Contributed Notes

Thomas 27-Apr-2012 01:54
I experinced that DOMText, given a integer as only value to the constructor failed to return valid data. I had to typecast the input to a string first:

$intValue = 3252; // Post/Zip-code
$some_element->appendChild( new DOMText( (string) $intValue) );

When not typecasting using "(string)" the XML output from $root->saveXML() would not validate.


Metin düğümünün eleman içeriğinde boşluk karakterleri varsa true döndürür

  • « DOMText::__construct
  • DOMText::isWhitespaceInElementContent »
  • PHP Manual
  • DOMText
  • Metin düğümünün eleman içeriğinde boşluk karakterleri varsa true döndürür

DOMText::isElementContentWhitespace

(Bir sürüm bilgisi bulunamadı; sadece Git'te olabilir.)

DOMText::isElementContentWhitespace — Metin düğümünün eleman içeriğinde boşluk karakterleri varsa true döndürür

Açıklama

public DOMText::isElementContentWhitespace(): bool

Metin düğümünün eleman içeriğinde boşluk karakterleri varsa true döndürür.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

User Contributed Notes

riking 28-Jun-2018 12:17
This is the recommended (W3C) function name for the equivalent:
http://php.net/manual/en/domtext.iswhitespaceinelementcontent.php

See there for additional notes.


Düğümün boşluk içerip içermediğini belirtir

  • « DOMText::isElementContentWhitespace
  • DOMText::splitText »
  • PHP Manual
  • DOMText
  • Düğümün boşluk içerip içermediğini belirtir

DOMText::isWhitespaceInElementContent

(PHP 5, PHP 7, PHP 8)

DOMText::isWhitespaceInElementContent — Düğümün boşluk içerip içermediğini belirtir

Açıklama

public DOMText::isWhitespaceInElementContent(): bool

Düğümün sadece boşluk karakterlerinden oluşup oluşmadığını belirler. Metin düğümünün boşluk içerip içermediği belgenin yüklenmesi sırasında saptanır.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

Belge sıfır (belge boşsa) veya daha fazla boşluk karakteri içeriyor, başka bir şey içermiyorsa true aksi takdirde false döner.

User Contributed Notes

JITR 07-Jul-2007 03:36
To add to `permidion at yahoo dot com''s comment:

Quite true. According to DOM Level 3 Core, the `isWhitespaceInElementContent()' method indicates, whether the node contains `whitespace in element content' (or `element content whitespace' according to the newer spec), see [1].

Btw, it seems the `isWhitespaceInElementContent()' method was replaced with the `isElementContentWhitespace' attribute in the current W3C recommendation, see [2].

I have the feeling, though, it would be more precise with the word `only' added, like: `... indicates, whether the node contains *only* element content whitespace.' This would better correspond with the fact the result is false, when there are any non-whitespace characters present (in addition to the whitespace ones), as already noted.

[1] (please concatenate the following two lines)
http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html
#core-Text3-isWhitespaceInElementContent
[2] (please concatenate the following two lines)
http://www.w3.org/TR/DOM-Level-3-Core/core.html
#Text3-isElementContentWhitespace
permidion at yahoo dot com 28-Oct-2004 08:30
if you have an xml element such as <name>Foo Bar</name> (note the space), isWhitespaceInElementContent will return false.
However it will return true for <name><name> or <name/>
so, that function can be used to determine if the element has a text content or not


Düğümü belirtilen konumda iki düğüme böler

  • « DOMText::isWhitespaceInElementContent
  • DOMXPath »
  • PHP Manual
  • DOMText
  • Düğümü belirtilen konumda iki düğüme böler

DOMText::splitText

(PHP 5, PHP 7, PHP 8)

DOMText::splitText — Düğümü belirtilen konumda iki düğüme böler

Açıklama

public DOMText::splitText(int $offset): DOMText|false

Düğümü offset ile belirtilen konuma göre iki düğüme böler ve iki düğümü kardeş düğümler haline getirir.

Bölünme sonrası, düğüm offset konumuna kadar olan parçayı içerir. Düğümün bir ebeveyni varsa yeni düğüm, sonraki kardeş düğüm olarak eklenir. Eğer offset düğümün uzunluğuna eşitse kardeş düğüm boş olur.

Bağımsız Değişkenler

offset

Bölme yeri. İlk konum 0'dır.

Dönen Değerler

offset konumundan sonraki parçayı içeren yeni bir düğüm döner.

User Contributed Notes

Flix Cloutier 28-Oct-2013 05:31
It should be noted that $offset is a **character offset**, not a **byte offset**. This means that most other PHP string functions that deal with lengths and offsets (strlen, strpos, preg_match with PREG_OFFSET_CAPTURE, etc.) use and return values unsuitable for this method if used with multibyte strings (like UTF-8 strings).

Byte offsets can be converted to character offsets with mb_strlen:

<?php
function char_offset($string, $byte_offset, $encoding = null)
{
    $substr = substr($string, 0, $byte_offset);
    return mb_strlen($substr, $encoding ?: mb_internal_encoding());
}
?>


DOMXPath sınıfı

(PHP 5, PHP 7, PHP 8)

Giriş

XPath 1.0 desteklenir.

Sınıf Sözdizimi

class DOMXPath {
/* Özellikler */
public readonly DOMDocument $document;
public bool $registerNodeNamespaces;
/* Yöntemler */
public __construct(DOMDocument $document, bool $registerNodeNS = true)
public evaluate(string $ifade, ?DOMNode $bağlamsal_düğüm = null, bool $kaydet = true): mixed
public query(string $ifade, ?DOMNode $bağlamsal_düğüm = null, bool $kaydet = true): DOMNodeList
public registerNamespace(string $prefix, string $namespace): bool
public registerPhpFunctions(string|array|null $sınırla = null): void
}

Özellikler

document

Belge.

registerNodeNamespaces

true atandığında, düğümdeki isim alanları kayıt altına alınır.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | registerNodeNamespaces özelliği eklendi.

İçindekiler

  • DOMXPath::__construct — Yeni bir DOMXPath nesnesi oluşturur
  • DOMXPath::evaluate — Belirtilen XPath ifadesini çözümler ve mümkünse yazılı bir sonuç verir
  • DOMXPath::query — Belirtilen XPath ifadesini değerlendirir
  • DOMXPath::registerNamespace — Belirtilen isim alanını DOMXPath nesnesi ile ilişkilendirir
  • DOMXPath::registerPhpFunctions — PHP işlevlerini XPath ifadelerinde kullanılabilir yapar

User Contributed Notes

TechNyquist 08-Jan-2020 09:16
When working with XML (as a strict format) might be very important to give a namespace to XPath object in order to make it work properly.

I was experiencing "query" always returning empty node lists, it could not find anything. Only a broad "//*" was able to show off only the root element.

Then found out that registering the namespace reported in the "xmlns" attribute of the root element in the XPath object, and writing the namespace near the elements name, made it work properly.

So for an XML like this (from a sitemap):

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <url>
        <loc>http://example.com/index.php</loc>
        <lastmod>2005-01-01</lastmod>
        <changefreq>monthly</changefreq>
        <priority>0.5</priority>
    </url>
</urlset>

I needed the following XPath configuration:

<?php

    $doc = new DOMDocument;
    $doc->load("sitemap.xml");
    $xpath = new DOMXPath($doc);
    $xpath->registerNamespace('ns', 'http://www.sitemaps.org/schemas/sitemap/0.9');
    $nodes = $xpath->query('//ns:urlset/ns:url');

?>

Then again, that "xmlns" could be provided dynamically from the root element attribute of course.
peter at softcoded dot com 03-May-2017 05:51
You may not always know at runtime whether your file has
a namespace or not. This can make it difficult to create
XPath queries. Use the seriously underdocumented
"namespaceURI" property of the documentElement of a
DOMDocument to determine if there is a namespace.
Use code such as the following:

$doc = new DOMDocument();
$doc->load($file);
$xpath = new DOMXPath($doc);
$ns = $doc->documentElement->namespaceURI;
if($ns) {
  $xpath->registerNamespace("ns", $ns);
  $nodes = $xpath->query("//ns:em[@class='glossterm']");
} else {
  $nodes = $xpath->query("//em[@class='glossterm']");
}
//look at nodes here
peter at softcoded dot com 03-May-2017 04:46
Using XPath expressions can save a lot of programming
and allow you to home in on only the nodes you want.
Suppose you want to delete all empty <p> tags.
If you create a query using the following XPath expression,
you can find <p> tags that do not have any text
(other than spaces), any attributes,
any children or comments:

$expression = "//p[not(@*)
   and not(*)
   and not(./comment())
   and normalize-space(text())='']";

This expression will only find para tags that look like:

<p>[any number of spaces]</p>
<p></p>

Imagine the code you would have to add if you used
DOMDocument::getElementsByTagName("p") instead.
archimedix32783262 at mailinator dot com 03-Sep-2014 12:03
Note that evaluate() will use the same encoding as the XML document.

So if you have a UTF-16 XML, you will have to query using UTF-16 strings.

You can use iconv() to convert from your code's encoding to the target encoding for better legibility.
dhz 05-Jan-2011 10:47
I just spent far too much time chasing this one....

When running an xpath query on a table be careful about table internal nodes (ie: <tr></tr>, and <td></td>).  If the master <table> tag is missing, then query() (and likely evaluate() also) will return unexpected results.

I had a DOMNode with a structure like this:

<td>
    <table></table>
    <table>
        <tr>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
        </tr>
    </table>
</td>

Upon which I was trying to do a relative query (ie: <?php $xpath_obj->query('my/x/path', $relative_node); ?>).

But because of the lone outer <td></td> tags, the inner tags were being invalidated, while the nodes were still recognized.  Meaning that the following query would work:

<?php $xpath_obj->query('*[2]/*[*[2]]', $relative_node); ?>

But when replacing any of the "*" tokens with the corresponding (and valid) "table", "tr", or "td" tokens the query would inexplicably break.
Mark Omohundro, ajamyajax dot com 14-Dec-2008 09:15
<?php
// to retrieve selected html data, try these DomXPath examples:

$file = $DOCUMENT_ROOT. "test.html";
$doc = new DOMDocument();
$doc->loadHTMLFile($file);

$xpath = new DOMXpath($doc);

// example 1: for everything with an id
//$elements = $xpath->query("//*[@id]");

// example 2: for node data in a selected id
//$elements = $xpath->query("/html/body/div[@id='yourTagIdHere']");

// example 3: same as above with wildcard
$elements = $xpath->query("*/div[@id='yourTagIdHere']");

if (!is_null($elements)) {
  foreach ($elements as $element) {
    echo "<br/>[". $element->nodeName. "]";

    $nodes = $element->childNodes;
    foreach ($nodes as $node) {
      echo $node->nodeValue. "\n";
    }
  }
}
?>


Yeni bir DOMXPath nesnesi oluşturur

  • « DOMXPath
  • DOMXPath::evaluate »
  • PHP Manual
  • DOMXPath
  • Yeni bir DOMXPath nesnesi oluşturur

DOMXPath::__construct

(PHP 5, PHP 7, PHP 8)

DOMXPath::__construct — Yeni bir DOMXPath nesnesi oluşturur

Açıklama

public DOMXPath::__construct(DOMDocument $document, bool $registerNodeNS = true)

Yeni bir DOMXPath nesnesi oluşturur.

Bağımsız Değişkenler

document

DOMXPath ile ilişkili DOMDocument nesnesi.

registerNodeNS

kaydet

Bağlam düğümünün kapsam içi ad alanı öneklerinin DOMXPath nesnesine otomatik olarak kaydedilip kaydedilmeyeceği. Bu, kapsam dahilindeki her ad alanı için DOMXPath::registerNamespace() öğesini manuel olarak çağırmaya gerek kalmaması için kullanılabilir. Bir ad alanı öneki çakışması olduğunda, yalnızca en yakın soydan gelen ad alanı öneki kaydedilir.

User Contributed Notes

thsoft at vipmail dot hu 04-Jul-2007 04:57
As of PHP 5.2.0, DOMXPath object implements XPath 1.0.
Saulo Vallory 26-Jun-2007 03:23
The DOMXPath object doesn't create a reference to the document. If you load a new xml using either load, loadXML or loadHTML functions the DOMXPath object will still query and evaluate over the source in the DOMDocument when it was created.


Belirtilen XPath ifadesini çözümler ve mümkünse yazılı bir sonuç verir

  • « DOMXPath::__construct
  • DOMXPath::query »
  • PHP Manual
  • DOMXPath
  • Belirtilen XPath ifadesini çözümler ve mümkünse yazılı bir sonuç verir

DOMXPath::evaluate

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

DOMXPath::evaluate — Belirtilen XPath ifadesini çözümler ve mümkünse yazılı bir sonuç verir

Açıklama

public DOMXPath::evaluate(string $ifade, ?DOMNode $bağlamsal_düğüm = null, bool $kaydet = true): mixed

ifade ile belirtilen XPath ifadesini çözümler ve mümkünse yazılı bir sonuç verir.

Bağımsız Değişkenler

ifade

Değerlenderelecek XPath ifadesi.

bağlamsal_düğüm

Seçimlik olarak, göreli XPath sorguları yapmak içindir. Öntanımlı olarak sorgular kök elemana göre çözümlenir.

kaydet

Bağlam düğümünün kapsam içi ad alanı öneklerinin DOMXPath nesnesine otomatik olarak kaydedilip kaydedilmeyeceği. Bu, kapsam dahilindeki her ad alanı için DOMXPath::registerNamespace() öğesini manuel olarak çağırmaya gerek kalmaması için kullanılabilir. Bir ad alanı öneki çakışması olduğunda, yalnızca en yakın soydan gelen ad alanı öneki kaydedilir.

Dönen Değerler

Mümkünse sonucu bir dizge orarak döndürür, değilse belirtilen XPath ifadesi ile eşleşen tüm düğümleri içeren bir DOMNodeList nesnesi döner.

ifade bozuksa ya da bağlamsal_düğüm geçersizse, DOMXPath::evaluate() false döndürür.

Örnekler

Örnek 1 - Tüm İngilizce kitapların sayısını döndürmek

<?php

$doc = new DOMDocument;

$doc->load('book.xml');

$xpath = new DOMXPath($doc);

$tbody = $doc->getElementsByTagName('tbody')->item(0);

// sorgumuzu tbody düğümüne göre yapalım
$query = 'count(row/entry[. = "en"])';

$entries = $xpath->evaluate($query, $tbody);
echo "$entries İngilizce kitap var.\n";

?>

Yukarıdaki örneğin çıktısı:

2 İngilizce kitap var.

Ayrıca Bakınız

  • DOMXPath::query() - Belirtilen XPath ifadesini değerlendirir

User Contributed Notes

danny at webdevelopers dot eu 28-Jan-2020 11:36
The only way how to distinguish FALSE returned value from syntax error FALSE is to re-run the XPath expression wrapped in string() function. If must return empty string. If it returns FALSE again then it is an error.

<?php

        $ret=$this->xp->evaluate($eval, $context);

        // Error detection: DOMXPath::evaluate() returns FALSE on error
        // so does DOMXPath::evaluate("boolean(/nothing)")
        // @workaround webdevelopers.eu
        if ($ret === false && $this->xp->evaluate("string($eval)", $context) === false) {
            throw new Exception("Invalid XPath expression ".json_encode($eval), 3491);
        }
?>
aazaharov81 at gmail dot com 14-Jan-2015 12:48
To query DOMNodes by their HTML classes, use such snippet
<?php

// CssClassXPathSelector
function ccxs($class) {
    return '[contains(concat(" ", normalize-space(@class), " "), " ' . $class . ' ")]';
}

 // then just
 $domitems = $this->xpath("//*[@id='searchResultsRows']//a" . ccxs('listing_row'));
?>
daniel at danielnorton dot com 25-Jun-2011 09:56
Note that this method does not provide any means to distinguish between a successful result that returns FALSE and an error.

For example, this will succeed and return FALSE:

<?php $xpath->evaluate("1 = 0"); ?>

One workaround when you know you are expecting a Boolean is to wrap the result with string(). e.g.

<?php $xpath->evaluate("string(1 = 0)"); ?>

This will return a string "false" on success, or the Boolean FALSE on error.
Damien Bezborodov 28-Mar-2011 06:13
If your expression returns a node set, you will get a DOMNodeList instead of a typed result. Instead, try modifying your expression from "//node[1]" to "string(//node[1])".
yuriucsal at NOSPAM dot yahoo dot com dot br 06-Mar-2005 12:55
this class can substitute the method evaluate while it is not validated. Made for Yuri Bastos and Jo?o Gilberto Magalh?es.

<?php

    class XPtahQuery
    {
        // function returns a DOMNodeList from a relative xPath
        public static function selectNodes($pNode, $xPath)
        {

            $pos = strpos(self::getFullXpath($pNode),"/",1);
            $xPathQuery = substr(self::getFullXpath($pNode),$pos);//to paste  /#document[1]/
            $xPathQueryFull = $xPathQuery. $xPath;
            $domXPath = new DOMXPath($pNode->ownerDocument);
            $rNodeList = $domXPath->query($xPathQueryFull);

                return $rNodeList;
        }
        // function returns a DOMNode from a xPath from other DOMNode
        public static function selectSingleNode($pNode, $xPath)
        {

            $pos = strpos(self::getFullXpath($pNode),"/",1);
            $xPathQuery = substr(self::getFullXpath($pNode),$pos);//to paste  /#document[1]/
            $xPathQueryFull = $xPathQuery. $xPath;
            $domXPath = new DOMXPath($pNode->ownerDocument);
            $rNode = $domXPath->query($xPathQueryFull)->item(0);

                return $rNode;
        }
        //utilitaries functions off selectSingleNode
        private function getNodePos($pNode, $nodeName)
        {
            if($pNode == null)
                {
                        return 0;
            }
            else
            {
                $var = 0;
                    if ($pNode->previousSibling != null)
                    {
                    if ($pNode->previousSibling->nodeName == $nodeName)
                    {
                        $var = 1;
                    }
                    }
                    return self::getNodePos($pNode->previousSibling, $nodeName) + $var;
            }
        }
        //utilitaries functions off selectSingleNode
        private function getFullXpath($pNode)
        {
            if($pNode == null)
                {
                        return "";
            }
            else
            {

                return self::getFullXpath($pNode->parentNode) . "/" . $pNode->nodeName . "[" .strval(self::getNodePos($pNode, $pNode->nodeName)+1) . "]";//+1 to get the real xPath index

            }
        }
    }
?>


Belirtilen XPath ifadesini değerlendirir

  • « DOMXPath::evaluate
  • DOMXPath::registerNamespace »
  • PHP Manual
  • DOMXPath
  • Belirtilen XPath ifadesini değerlendirir

DOMXPath::query

(PHP 5, PHP 7, PHP 8)

DOMXPath::query — Belirtilen XPath ifadesini değerlendirir

Açıklama

public DOMXPath::query(string $ifade, ?DOMNode $bağlamsal_düğüm = null, bool $kaydet = true): DOMNodeList

Belirtilen XPath ifade'sini çözümler.

Bağımsız Değişkenler

ifade

Değerlendirilecek XPath ifadesi.

bağlamsal_düğüm

Seçimlik olarak, göreli XPath sorguları yapmak içindir. Öntanımlı olarak sorgular kök elemana göre çözümlenir.

kaydet

Bağlam düğümünün kapsam içi ad alanı öneklerinin DOMXPath nesnesine otomatik olarak kaydedilip kaydedilmeyeceği. Bu, kapsam dahilindeki her ad alanı için DOMXPath::registerNamespace() öğesini manuel olarak çağırmaya gerek kalmaması için kullanılabilir. Bir ad alanı öneki çakışması olduğunda, yalnızca en yakın soydan gelen ad alanı öneki kaydedilir.

Dönen Değerler

Belirtilen XPath ifade'si ile eşleşen tüm düğümleri içeren bir DOMNodeList nesnesi döner. Hiçbir eşleşme olmamışsa boş bir DOMNodeList nesnesi döner.

ifade bozuksa ya da bağlamsal_düğüm geçersizse, DOMXPath::evaluate() false döndürür.

Örnekler

Örnek 1 - Tüm İngilizce kitapları listelemek

<?php

$doc = new DOMDocument;

// Fazladan boşlukları korumak istemiyoruz
$doc->preserveWhiteSpace = false;

$doc->load('book.xml');

$xpath = new DOMXPath($doc);

// Sorguyu kök elemandan başlatıyoruz
$query = '//book/chapter/para/informaltable/tgroup/tbody/row/entry[. = "en"]';

$entries = $xpath->query($query);

foreach ($entries as $entry) {
echo "Found {$entry->previousSibling->previousSibling->nodeValue}," .
" by {$entry->previousSibling->nodeValue}\n";
}
?>

Yukarıdaki örneğin çıktısı:

Found The Grapes of Wrath, by John Steinbeck
Found The Pearl, by John Steinbeck

İfademizi kısaltmak için bağlamsal_düğüm bağımsız değişkenini kullanabilirdik:

<?php

$doc = new DOMDocument;
$doc->preserveWhiteSpace = false;

$doc->load('book.xml');

$xpath = new DOMXPath($doc);

$tbody = $doc->getElementsByTagName('tbody')->item(0);

// Sorguyu tbody düğümüne göre yapalım
$query = 'row/entry[. = "en"]';

$entries = $xpath->query($query, $tbody);

foreach ($entries as $entry) {
echo "Found {$entry->previousSibling->previousSibling->nodeValue}," .
" by {$entry->previousSibling->nodeValue}\n";
}
?>

Ayrıca Bakınız

  • DOMXPath::evaluate() - Belirtilen XPath ifadesini çözümler ve mümkünse yazılı bir sonuç verir

User Contributed Notes

chris dot russo99 at gmail dot com 17-Aug-2016 03:58
If you can't find a solution for PHP XPATH case sensitivity, you can always try this approach:

http://fsockopen.com/php-programming/your-final-stop-for-php-xpath-case-insensitive

Instead of inserting PHP functions into a XPATH object, convert the XPATH object into an Array(), and then use any PHP function, the regular way.
ikmahesh at cdac dot in 08-Jul-2015 09:29
The parameters for $xPath->query() method is case sensitive.
It matches IDs exact words.
RiKdnUa at mail dot ru 17-Sep-2013 04:26
?????? XPath ??????? ? XML ?????????. XML ???????? ????????? ???????? ? ??????? ?? ??????????? ???????? (?????????). ??? ????????????? ? XPath ??????? ?????????, ??????? DOMXPath::query() ?????? ?????????????? ? ?????? ?? ????????. ????? ?????? ???????, ???? ???? ????????? ???. ???? ????? ??????? ?????? ???? ? ????????? WINDOWS-1251. ?????????? ? PHP 5.2.9-2 ? PHP 5.2.17

Example XPath-query to the XML-document. XML-document contains an elements with the names of non-Latin characters (cyrillic). When used predicate in XPath-query, function DOMXPath::query() gives a warning and query does not work. In order to earned the query, it is necessary to explicitly specify the axis. The file of this example is to be in the encoding WINDOWS-1251. Tested in PHP 5.2.9-2 and PHP 5.2.17
<?php
ini_set("display_errors","on");
error_reporting(-1);
function utf8encode($str){return iconv('WINDOWS-1251', 'UTF-8', $str);}
$xml="<?xml version='1.0' encoding='WINDOWS-1251'?>
<?????>
<?????? href='yandex.com'>??????</??????>
<?????? href='rik.dn.ua/fotopan.php'>?.??????</??????>
</?????>
";
$document=new domDocument();
$document->preserveWhiteSpace=false;
$document->loadXML($xml);
$domxpath=new domXpath($document);
$list=$domxpath->query(utf8encode('/child::?????/child::??????'));//Ok
echo '$list->length='.$list->length."\n<br/>\n";
$list=$domxpath->query(utf8encode('/?????/??????'));//Ok
echo '$list->length='.$list->length."\n<br/>\n";
$list=$domxpath->query(utf8encode('/child::?????/child::??????[position()=1]'));//Ok
echo '$list->length='.$list->length."\n<br/>\n";
$list=$domxpath->query(utf8encode('/?????/??????[1]'));//Warning: DOMXPath::query() [domxpath.query]: Invalid expression in ...
echo '$list->length='.$list->length."\n<br/>\n";
$list=$domxpath->query(utf8encode('/?????/??????[position()=1]'));//Warning: DOMXPath::query() [domxpath.query]: Invalid expression in ...
echo '$list->length='.$list->length."\n<br/>\n";
?>
info at syncgw dot com 22-Sep-2011 09:05
A warning to all PHP programmer using this function PHP 5.0.0.0: We needed an equivalent to upper-case() function (is not available in XPath 1.0).

XML-Document:

<Rec>
<SourceRef>./c:calendar2</SourceRef>
<SourceRef>./c:calendar</SourceRef>
</Rec>

using

query('//DataStore[translate(SourceRef,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")="./C:CALENDAR"]/.')

returns ZERO matches.

If you change XML-Source to

<Rec>
<SourceRef>./c:calendar</SourceRef>
<SourceRef>./c:calendar2</SourceRef>
</Rec>

everything works fine
yuriscom at gmail dot com 07-Sep-2011 10:29
I hope it will be helpful for someone:

I spent some time to solve the problem when you query a string with quotes inside.

Suppose you have:
$parameter = "aaa \"bbb\"";
$domxpath->query("//path[text()=\"".$parameter."\""];

In versions > 5.3.0 there is registerPhpFunctions where you can put an addslashes. But in older version you cannot do it in simple way.

So the solution is to use a concat function. So when you have a substring with " inside, wrap it with '. And when you have a substring with ', then wrap with in ".

The code is:

<?php
$dom = new DOMDocument;
$dom->loadXML("<name>'bla' \"bla\" bla</name>");
$xpath = new DOMXPath($dom);
$nodeList = $xpath->query("//name[text()=concat(\"'bla' \" ,'\"bla\"' ,\" bla\")]");
?>

Below is the function that receives a string and returns a concat pattern for the xpath query.

<?php
    function getPattern_MQ($pattern) {
        // initiating an array of substrings
        $ar = array();
        // points to the current position in a string
        $offset = 0;
        $strlen = strlen($pattern);
        while (true) {
            // find a position of quotes
            $qPos = strpos($pattern, "\"", $offset);

            if (!$qPos) {
                // no more quotes
                $leftOver = $offset - $strlen;
                if ($leftOver < 0) {
                    $string = substr($pattern, $leftOver);
                    $ar[] = "\"" . $string . "\"";
                }
                break;
            }
            // add the whole substring before the quotes into the array
            $ar[] = "\"" . substr($pattern, $offset, ($qPos - $offset)) . "\"";
            // add the quotes wrapped with single quot
            $ar[] = "'" . substr($pattern, $qPos, 1) . "'";
            $offset = $qPos + 1;
        }
        // join the array to get: concat("aaa",'"',"bbb",'"');
        $pattern = "concat(''," . join(",", $dynamicPatternsAr) . ")";
        return $pattern;
    }
?>
chris AT cmbuckley DOT co DOT uk 14-Apr-2011 07:31
To help with the problem where the default namespace is not registered with the DOMXPath object, you can use the following replacement to update your paths accordingly:

<?php

$xml = <<<EOS
<root xmlns="urn:test">
    <foo>bar</foo>
</root>
EOS;

$expression = '//foo';
$prefix = 'fakeprefix';

$doc = new DOMDocument();
$doc->loadXML($xml);

$context = $doc->documentElement; // or whichever element you choose
$xpath = new DOMXPath($doc);

// register namespace as below, and apply a regex to the expression
if (null !== $context->namespaceURI) {
    $xpath->registerNamespace($prefix, $context->namespaceURI);
    $expression = preg_replace('#(::|/\s*|\A)(?![/@].+?|[a-z\-]+::)#', '$1' . $prefix . ':$2', $expression);
    var_dump($expression); // string(16) "//fakeprefix:foo"
}

$foo = $xpath->query($expression, $context)->item(0);
var_dump($doc->saveXML($foo)); // string(14) "<foo>bar</foo>"

?>
kkez at example dot com 03-Sep-2010 07:51
If the query() function seems to ignore your $contextnode, and instead returns all the tags in the document, try to use a relative path (use a . in front of the query):

<?php
    $xml = "<?xml version='1.0' encoding='UTF-8'?>
        <test>
            <tag1>
                <uselesstag>
                    <tag2>test</tag2>
                </uselesstag>
            </tag1>
            <tag2>test2</tag2>
        </test>";

    $dom = new DomDocument();
    $dom->loadXML($xml);
    $xpath = new DomXPath($dom);

    $tag1 = $dom->getElementsByTagName("tag1")->item(0);

    echo $xpath->query("//tag2")->length; //output 2 -> correct
    echo $xpath->query("//tag2", $tag1)->length; //output 2 -> wrong, the query is not relative
    echo $xpath->query(".//tag2", $tag1)->length; //output 1 -> correct (note the dot in front of //)
?>

See that i couldn't use $xpath->query("tag2", $tag1) as per the documentation, since "tag2" is not a direct child of "tag1".
I don't know why this note was deleted, i just tested it and it's correct.
It's not a bug, it's simply not written in the documentation.
Anonymous 27-Nov-2009 12:26
I found this useful for building page templates

<?php
$xsl = new DOMDocument;
$xsl->load('layout.xsl');

// Set the <xsl:include> href attribute, the inner stylesheet to include in this layout
$xpath = new DomXPath($xsl);
$res = $xpath->query('//xsl:include');
$res->item(0)->setAttribute('href','page.xsl');
$xsl->save('media/xsl/layout.xsl');
?>
Niklas 27-Aug-2008 02:36
For XPath escaping use the following method (of course it could be more efficient).
<?php
public function xpathescape($string)
{
$result = 'concat(';

for($i=0, $j=strlen($string); $i<$j; ++$i)
{
if($i > 0)
$result .= ",";

if($string[$i] == '\'')
$result .= "\"".$string[$i]."\"";
else
$result .= '\''.$string[$i].'\'';
}

$result .= ')';

return $result;
}
?>

Use it this way:
<php
$xpath->query('//example[sub='.xpathescape($acomplexstring).']');

?>
adam dot prall at thinkingman dot com 19-Jul-2008 09:01
If you're wondering, like I was, why your XPath queries are not returning any of the new DOMElements you create in your (X)HTML documents, and only the ones originally loaded in with (for example) loadXML(), this is why; if you're doing things right, you have registered the nameSpace 'html' after creating your DOMXPath object thus:

<?php

class XPathQueryLength {
     private $nameSpace = '';
     function __construct(DOMDocument $doc) {
          $this->xpath = new DOMXPath($this->doc);
          $this->xpath->registerNamespace(
                 'html','http://www.w3.org/1999/xhtml' );
     }
     function queryLength($query) {
          return $this->xpath->query($query)->length;
     }
}

?>

...but don't forget that when adding new elements to the above DOMDocument $doc, to use createElementNS() instead of createElement(), otherwise you'll have this problem:

<?php

//$doc is a previously loaded XHTML document containing a normal html, head and body structure
//$body is the first selected tag using $doc->getElementsByTagName('body');

$pTag = $doc->createElement('p','This is a new paragraph!');
$body->appendChild($pTag);

$xPath = new XPathQueryLength($doc);
print $xPath->queryLength('//html:p');

output: 0

print $xPath->queryLength('//p');

output: 1

?>

So do this instead:

<?php

//$doc is a previously loaded XHTML document containing a normal html, head and body structure
//$body is the first selected tag using $doc->getElementsByTagName('body');

$pTag = $doc->createElementNS('http://www.w3.org/1999/xhtml','p','This is a new paragraph!');
$body->appendChild($pTag);

$xPath = new XPathQueryLength($doc);
print $xPath->queryLength('//html:p');

output: 2

print $xPath->queryLength('//p');

output: 0

?>

The resulting XHTML file from both example scripts looks much like this:

<html>
  <head></head>
  <body>
     <p>This is a hardcoded paragraph.</p>
     <p>This is a new paragraph!</p>
  </body>
</html>

...so you would think that a paragraph is a paragraph is a paragraph, since you never see the prefix, as in "<html:p>This is a new paragraph!</html:p>".

This may seem glaringly obvious, but I was writing a class that converts CSS queries into XPath queries, and the fact that a namespace had been registered was rather buried in the code.

We love the DOM, the DOM is good to us.
Nibinaear 03-Mar-2008 06:15
I've searched the entire web looking for a way to update / modify/ change/ alter the elements of an xml file and found NOTHING!

So here it is, the defninitive way to "Change XML elements with PHP" rather than adding / appending new ones. This uses XPATH:

<?php

// Create a DOMDocument instance
$xml = new DOMDocument;

// Ignore whitespace between nodes (default: true)
$xml->preserveWhiteSpace = false;

$file='about.xml';

// Load the XML data source
$xml->Load($file);

$xpath = new DOMXPath($xml);

$query='/regions/branch';

$entries = $xpath->query($query);

foreach ($entries as $entry)
{
  $entry->firstChild->nodeValue="like this!";
  echo $entry->firstChild->nodeValue;
}

$xml->save($file);

?>
ondrej dot fischer at 4internet dot cz 25-Oct-2007 06:46
Unfortunately PHP's DOM extension doesn't support use of:
<?xml-stylesheet type="text/xsl" ... ?>
processing instruction.
Here is an example, how to implement it using XPath query and extending DOMDocument by a method output().

<?php

// This simple function adds missing direct usage of anonymous instances
// in PHP5's reference model
function a($var) {
   return $var;
}

// Extended DOMDocument class
class MyDOMDocument extends DOMDocument
{

   public function output()
   {
      $stylesheets = array();
      $PIs = a(new DOMXPath($this))
                  ->query('/processing-instruction("xml-stylesheet")');

      foreach($PIs as $PI)
      {
         // This might be implemented cleaner by regular parsing
         // of DOMProcessingInstruction::data property
         if(ereg('type *= *"text/xsl" +href *= *"([^"]+)"', $PI->data, $mem))
         {
            // Here should be verified, that XSL file exists.
            a($stylesheets[] = new DOMDocument())->load($mem[1]);
         }
      }

      if($stylesheets)
      {
         $processor = new XSLTProcessor();
         foreach($stylesheets as $stylesheet)
            $processor->importStylesheet($stylesheet);
         return $processor->transformToDoc($this);
      }
      // If no stylesheet instructions present, return self directly
      else return $this;

   }
}

?>

Usage:

<?php

$document = new MyDOMDocument();
$document->load('my.xml');
echo $document->output()->saveXML();

?>

With following file my.xml:

<?xml version="1.0" ?>
<?xml-stylesheet type="text/xsl" href="my.xsl" ?>
<my-root />

and existing file my.xsl that code will transform the xml file using my.xsl and output the result.
jbarnett at flowershopnetwork dot com 11-Sep-2007 01:46
The order of nodes in the return value is not guaranteed.

When my code was on an old server, the returned DOMNodeList was in document order.  On the new server, the returned DOMNodeList is in a consistent order, but it is not in document order.

PHP passes this function call off to the xmlXPathEvalExpression() function in libxml.  That function in libxml only accepts two arguments - the same two this PHP function accepts.  There must have been a change in the libxml version from the old server to the new server, and that libxml behaves differently.

This would be okay if PHP had a way to compare nodes so I can resort the nodes manually, but there is not.

So, there is no guaranteed way to get an ordered list of nodes like DOM 3 XPath provides.
Hayley Watson 12-Aug-2007 05:43
Note that if your DOMDocument was loaded from HTML, where element and attribute names are case-insensitive, the DOM parser converts them all to lower-case, so your XPath queries will have to as well; '//A/@HREF' won't find anything even if the original HTML contained "<A HREF='example.com'>".
nicolas_rainardNOSPAM at yahoo dot fr 10-Jul-2007 02:04
Please note that what clochix says is valid for *any* document which has a default namespace (as it is the case for XHTML).

This document :

<?xml version="1.0" encoding="UTF-8" ?>

<root xmlns="http://www.exemple.org/namespace">

    <element id="1">
    ...
    </element>

    <element id="2">
    ...
    </element>

</element>

must be accessed this way :

$document = new DOMDocument();
$document->load('document.xml');

$xpath = new DOMXPath($document);
$xpath->registerNameSpace('fakeprefix', 'http://www.exemple.org/namespace');

$elements = $xpath->query('//fakeprefix:element');

Of course, there is no prefix in the original document, but the DOMXPath class *needs* one, whatever it is, if you use a default namespace. It *doesn't work* if you specify an empty prefix like this :

$xpath->registerNameSpace('', 'http://www.exemple.org/namespace');

Hope this help to spare some time...
clochix at clochix dot net 01-Mar-2007 04:05
If you want to perform queries on XHTML documents, you must fix a default namespace:

<?php
$doc = new DOMDocument;
$doc->preserveWhiteSpace = true;
$doc->resolveExternals = true; // for character entities
$doc->load("http://www.w3.org/");
$xpath = new DOMXPath($doc);
// won't work
$entries = $xpath->query("//div");
// you should use :
$xpath->registerNamespace("html", "http://www.w3.org/1999/xhtml");
$entries = $xpath->query("//html:div");
?>
jakob dot voss at nichtich dot de 14-Nov-2005 12:33
You can transform the result nodes into new DOMDocument objects this way:

<?php
$result = $xpath->query($query);
$resultNode = $result->item(0);
$newDom = new DOMDocument;
$newDom->appendChild($newDom->importNode($resultNode,1));

print "<pre>" . htmlspecialchars($newDom->saveXML()) . "</pre>";
?>
Eric Hanson 12-Jul-2005 05:40
Two great XPath references follow.

XPath in Five Paragraphs (finally!):
http://www.rpbourret.com/xml/XPathIn5.htm

The w3c spec actually has a bunch of helpful examples:
http://www.w3.org/TR/xpath#location-paths


Belirtilen isim alanını DOMXPath nesnesi ile ilişkilendirir

  • « DOMXPath::query
  • DOMXPath::registerPhpFunctions »
  • PHP Manual
  • DOMXPath
  • Belirtilen isim alanını DOMXPath nesnesi ile ilişkilendirir

DOMXPath::registerNamespace

(PHP 5, PHP 7, PHP 8)

DOMXPath::registerNamespace — Belirtilen isim alanını DOMXPath nesnesi ile ilişkilendirir

Açıklama

public DOMXPath::registerNamespace(string $prefix, string $namespace): bool

prefix ve namespace ile belirtilen isim alanını DOMXPath nesnesi ile ilişkilendirir.

Bağımsız Değişkenler

prefix

İsim alanı öneki.

namespace

İsim alanını betimleyen adres.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

User Contributed Notes

igor dot pellegrini at diespam-berlinonline dot de 10-Mar-2015 07:32
The documentation is not really detailed.
Probably someone is also interested in the possibility of unregistering the namespace.

Worths to note that the original libxml function "xmlXPathRegisterNs()"

* Does NOT accept NULL or empty string for the argument "$prefix".

   and

* Unregisters the namespace if the "$namespaceURI" argument is NULL.

Here the documentation:
http://xmlsoft.org/html/libxml-xpathInternals.html#xmlXPathRegisterNs
xmedeko at gmail dot com 20-Sep-2011 04:58
A general way to register the root default namespace:

<?php
$xml = new DomDocument();
$xml->load('data.xml');
$xpath = new DOMXPath($xml);
$rootNamespace = $xml->lookupNamespaceUri($xml->namespaceURI);
$xpath->registerNamespace('x', $rootNamespace);
?>

And then just query:

<?php $elementList = $xpath->query('//x:items/x:name'); ?>
dulao5 at gmail dot com 16-Jun-2009 12:01
The following code can work for XML default namespace.
<?php
$xml = <<<EOT
<?xml version="1.0" encoding="UTF-8"?>
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:other="http://other.w3.org/other" >
        <id>uYG7-sPwjFg</id>
        <published>2009-05-17T18:29:31.000Z</published>
</entry>
EOT;

$doc = new DOMDocument;
$doc->loadXML($xml);
$xpath =  DOMXPath($doc);

$xpath->registerNamespace('atom', "http://www.w3.org/2005/Atom");

$xpath_str = '//atom:entry/atom:published/text()';

$entries = $xpath->evaluate($xpath_str);

print $entries->item(0)->nodeValue ."\n";

?>
agent009 31-Mar-2009 04:55
Ok, here's a function that extends XPath syntax with the following special characters:

~ inserts default namespace prefix if defined

# shorthand for text()

% shorthand for comment()

$ shorthand for node()

?* shorthand for processing-instruction()

?foo shorthand for processing-instruction("foo")

? shorthand for processing-instruction("")

^ escapes following character (with literal or SGML entity as needed)

All of the above except ^ are ignored within quoted strings

<?php
function extendXPath($str, $defns = NULL) {
   $quote = false;
   $map = array(
      '~' => isset($defns) ? "$defns:" : '',
      '#' => 'text()',
      '%' => 'comment()',
      '$' => 'node()'
   );
   $out = '';

   for ($i = 0, $len = strlen($str); $i < $len; $i++) {
      $c = $str[$i];
      if (!$quote && array_key_exists($c, $map)) {
         $out .= $map[$c];
      } else switch ($c) {
         case '^':
            $out .= htmlspecialchars($str[++$i], ENT_QUOTES);
            break;
         case '?':
            if ($quote) {
               $out .= $c;
            } elseif ($str[$i + 1] == '*') {
               $out .= 'processing-instruction()';
               $i++;
            } else {
               preg_match('/^\w+/', substr($str, $i + 1), $matches);
               $out .= 'processing-instruction("'.$matches[0].'")';
               $i += strlen($matches[0]);
            };
            break;
         case '"':
            $quote = !$quote;
         default:
            $out .= $c;
      };
   };

   return $out;
}
?>
cameron kellough 14-Apr-2007 10:33
This is called prefix mapping and it is necessary to use xpath to handle documents which have default namespaces. //root/item will search for items with no namespace, not items with the namespace described as the default in the xmlns declaration.  This problem is maddening as it just looks on the surface like xpath isn't working.
spam at spam dot spam 31-Mar-2005 12:46
It is mentioned in a few places on the web, but it wasn't mentioned here. You need to use this function to set up a prefix for the default namespace of a document.

For instance, if you are trying to parse a Microsoft Spreadsheet XML file, which has the default namespace of "urn:schemas-microsoft-com:office:spreadsheet":

$doc = DOMDocument::load("my_spreadsheet.xml);
$xpath = new DOMXPath($doc);
$xpath->registerNamespace("m",
        "urn:schemas-microsoft-com:office:spreadsheet");
$query = '/m:Workbook/m:Worksheet[1]/m:Table';
$result = $xpath->query($query, $doc);

You can use anything in place of the 'm', but you have to specify something! Just asking for "/Workbook/Worksheet/Table" doesn't work.


PHP işlevlerini XPath ifadelerinde kullanılabilir yapar

  • « DOMXPath::registerNamespace
  • DOM İşlevleri »
  • PHP Manual
  • DOMXPath
  • PHP işlevlerini XPath ifadelerinde kullanılabilir yapar

DOMXPath::registerPhpFunctions

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DOMXPath::registerPhpFunctions — PHP işlevlerini XPath ifadelerinde kullanılabilir yapar

Açıklama

public DOMXPath::registerPhpFunctions(string|array|null $sınırla = null): void

Bu yöntem PHP işlevlerinin XPath ifadelerinde kullanılabilme yeteneğini etkinleştirir.

Bağımsız Değişkenler

sınırla

XPath ifadelerinde kullanmak üzere sadece belli işlevlere izin vermek için kullanılır.

Ya bir dizge (işlev ismi) ya da işlev isimlerini içeren bir dizi olabilir.

Dönen Değerler

Hiçbir değer dönmez.

Örnekler

Bu örneklerde aşağıda içeriği verlen book.xml dosyası kullanılmıştır:

Örnek 1 book.xml

<?xml version="1.0" encoding="UTF-8"?>
<books>
 <book>
  <title>PHP Basics</title>
  <author>Jim Smith</author>
  <author>Jane Smith</author>
 </book>
 <book>
  <title>PHP Secrets</title>
  <author>Jenny Smythe</author>
 </book>
 <book>
  <title>XML basics</title>
  <author>Joe Black</author>
 </book>
</books>

Örnek 2 - DOMXPath::registerPHPFunctions() ve php:functionString kullanımı

<?php
$doc = new DOMDocument;
$doc->load('book.xml');

$xpath = new DOMXPath($doc);

// php: isim alanını tanıt (gerekli)
$xpath->registerNamespace("php", "http://php.net/xpath");

// PHP işlevlerini tanıt (sınırlama yok)
$xpath->registerPHPFunctions();

// substr işlevini book/title üzerinde kullan
$nodes = $xpath->query('//book[php:functionString("substr", title, 0, 3) = "PHP"]');

echo "'PHP' ile başlayan {$nodes->length} kitap bulundu:\n";
foreach ($nodes as $node) {
$title = $node->getElementsByTagName("title")->item(0)->nodeValue;
$author = $node->getElementsByTagName("author")->item(0)->nodeValue;
echo "$author tarafından yazılan '$title'\n";
}

?>

Yukarıdaki örnek şuna benzer bir çıktı üretir:

'PHP' ile başlayan 2 kitap bulundu:
Jim Smith tarafından yazılan 'PHP Basics'
Jenny Smythe tarafından yazılan 'PHP Secrets'

Örnek 3 - DOMXPath::registerPHPFunctions() ve php:function kullanımı

<?php
$doc = new DOMDocument;
$doc->load('book.xml');

$xpath = new DOMXPath($doc);

// php: isim alanını tanıt (gerekli)
$xpath->registerNamespace("php", "http://php.net/xpath");

// PHP işlevlerini tanıt (sadece birden_fazla işlevi)
$xpath->registerPHPFunctions("birden_fazla");

function birden_fazla($nodes) {
// Bir yazardan fazla varsa true dönsün
return count($nodes) > 1;
}
// Birden fazla yazarlı kitapları ayır
$books = $xpath->query('//book[php:function("birden_fazla", author)]');

echo "Birden fazla yazarlı kitaplar:\n";
foreach ($books as $book) {
echo $book->getElementsByTagName("title")->item(0)->nodeValue . "\n";
}

?>

Yukarıdaki örnek şuna benzer bir çıktı üretir:

Birden fazla yazarlı kitaplar:
PHP Basics

Ayrıca Bakınız

  • DOMXPath::registerNamespace() - Belirtilen isim alanını DOMXPath nesnesi ile ilişkilendirir
  • DOMXPath::query() - Belirtilen XPath ifadesini değerlendirir
  • DOMXPath::evaluate() - Belirtilen XPath ifadesini çözümler ve mümkünse yazılı bir sonuç verir

User Contributed Notes

There are no user contributed notes for this page.


DOM İşlevleri

İçindekiler

  • dom_import_simplexml — Bir SimpleXMLElement düğümü alıp bir DOMElement düğümü döndürür

User Contributed Notes

There are no user contributed notes for this page.


Bir SimpleXMLElement düğümü alıp bir DOMElement düğümü döndürür

  • « DOM İşlevleri
  • libxml »
  • PHP Manual
  • DOM İşlevleri
  • Bir SimpleXMLElement düğümü alıp bir DOMElement düğümü döndürür

dom_import_simplexml

(PHP 5, PHP 7, PHP 8)

dom_import_simplexml — Bir SimpleXMLElement düğümü alıp bir DOMElement düğümü döndürür

Açıklama

dom_import_simplexml(object $node): ?DOMElement

Bir SimpleXMLElement düğümü alıp bir DOMElement düğümü döndürür. Bu yeni nesne doğal bir DOMElement düğümü olarak kullanılabilir.

Bağımsız Değişkenler

node

Bir SimpleXMLElement düğümü.

Dönen Değerler

DOMElement düğümünü ekler.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | Bu işlev başarısızlık durumunda artık null döndürmüyor.

Örnekler

Örnek 1 - dom_import_simplexml() ile DOM'a SimpleXML ithali

<?php

$sxe = simplexml_load_string('<books><book><title>blah</title></book></books>');

if ($sxe === false) {
echo 'Belge çözümlenirken hata oluştu ';
exit;
}

$dom_sxe = dom_import_simplexml($sxe);
if (!$dom_sxe) {
echo 'XML dönüşümünde hata oluştu ';
exit;
}

$dom = new DOMDocument('1.0');
$dom_sxe = $dom->importNode($dom_sxe, true);
$dom_sxe = $dom->appendChild($dom_sxe);

echo $dom->saveXML();

?>

Ayrıca Bakınız

  • simplexml_import_dom() - Bir DOM düğümü alıp bir SimpleXMLElement nesnesi döndürür

User Contributed Notes

h4ss4n3 at hyj4z1 dot me 08-Sep-2020 08:08
//No need to initiate, import and append on example#1

(...)
$dom_sxe = dom_import_simplexml($sxe);
if (!$dom_sxe) {
    echo 'Erreur lors de la conversion du XML';
    exit;
}

//$dom = new DOMDocument('1.0');
//$dom_sxe = $dom->importNode($dom_sxe, true);
//$dom_sxe = $dom->appendChild($dom_sxe);

//use ownerDocument propertie
echo $dom->ownerDocument->saveXML();

?>
biniou at yopmail dot com 20-May-2016 09:58
Very useful to add a CDATA node with SimpleXMLElement (use it like addChild) :

<?php
class My_SimpleXMLElement extends SimpleXMLElement {

    public function addChildWithCData($name, $value = NULL) {
        $new_child = $this->addChild($name);

        $node = dom_import_simplexml($new_child);
        $no = $node->ownerDocument;
        $node->appendChild($no->createCDATASection($value));

        return $new_child;
    }
}
Jeff M 06-Mar-2009 01:09
SimpleXML is an 'Object Mapping XML API'. It is not DOM, per se. SimpleXML converts the XML elements into PHP's native data types.

The dom_import_simplexml and simplexml_import_dom functions do *not* create separate copies of the original object. You are free to use the methods of either or both interchangeably, since the underlying instance is the same.

<?php
    // initialize a simplexml object
    $sxe = simplexml_load_string('<root/>');

    // get a dom interface on the simplexml object
    $dom = dom_import_simplexml($sxe);

    // dom adds a new element under the root
    $element = $dom->appendChild(new DOMElement('dom_element'));

    // dom adds an attribute on the new element
    $element->setAttribute('creator', 'dom');

    // simplexml adds an attribute on the dom element
    $sxe->dom_element['sxe_attribute'] = 'added by simplexml';

    // simplexml adds a new element under the root
    $element = $sxe->addChild('sxe_element');

    // simplexml adds an attribute on the new element
    $element['creator'] = 'simplexml';

    // dom finds the simplexml element (via DOMNodeList->index)
    $element = $dom->getElementsByTagName('sxe_element')->item(0);

    // dom adds an attribute on the simplexml element
    $element->setAttribute('dom_attribute', 'added by dom');

    echo ('<pre>');
    print_r($sxe);
    echo ('</pre>');
?>

Outputs:

SimpleXMLElement Object
(
    [dom_element] => SimpleXMLElement Object
        (
            [@attributes] => Array
                (
                    [creator] => dom
                    [sxe_attribute] => added by simplexml
                )

        )

    [sxe_element] => SimpleXMLElement Object
        (
            [@attributes] => Array
                (
                    [creator] => simplexml
                    [dom_attribute] => added by dom
                )

        )

)

What this illustrates is that both interfaces are operating on the same underlying object instance. Also, when you dom_import_simplexml, you can create and add new elements without reference to an ownerDocument (or documentElement).

So passing a SimpleXMLElement to another method does not mean the recipient is limited to using SimpleXML methods.

Hey Presto! Your telescope has become a pair of binoculars!
crescentfreshpot at yahoo dot com 12-Dec-2007 12:22
justinpatrin at php dot net:
> To get a proper DOM document (which you need to do most things) you need...

No you don't. Just do:
<?php
$dom = dom_import_simplexml($xml)->ownerDocument;
?>
justinpatrin at php dot net 01-Jun-2006 09:44
I've found that newer versions of PHP5 require some special syntax in order to properly convert between SimpleXML and DOM. It's not as easy as calling dom_import_simplexml() with a SimpleXML node. To get a proper DOM document (which you need to do most things) you need:
<?php
//$xml is a SimpleXML instance
$domnode = dom_import_simplexml($xml);
$dom = new DOMDocument();
$domnode = $dom->importNode($domnode, true);
$dom->appendChild($domnode);
?>

Switching back, though, is, well...simple.

<?php
//$dom is a DOMDocument instance
$xml = simplexml_import_dom($dom);
?>


libxml

  • Giriş
  • Yapılandırma/Kurulum
    • Gereksinimler
    • PHP >= 7.4 sürümleri için kurulum
    • PHP < 7.4 sürümleri için kurulum
    • Çalışma Anı Yapılandırması
    • Özkaynak Türleri
  • Öntanımlı Sabitler
  • LibXMLError — LibXMLError sınıfı
  • libxml İşlevleri
    • libxml_clear_errors — libxml hata tamponunu temizler
    • libxml_disable_entity_loader — Harici öğeleri yükleme yeteneğini iptal eder
    • libxml_get_errors — Hataları içeren bir dizi döndürür
    • libxml_get_external_entity_loader — Get the current external entity loader
    • libxml_get_last_error — libxml'den son hatayı döndürür
    • libxml_set_external_entity_loader — Öntanımlı harici öğe yükleyiciyi değiştirir
    • libxml_set_streams_context — Yüklenecek veya yazılacak sonraki libxml belgesinin akım bağlamını belirler
    • libxml_use_internal_errors — libxml hatalarını kapatarak kullanıcı tanımlı hataları mümkün kılar

User Contributed Notes

There are no user contributed notes for this page.


Giriş

Bu işlevler ve sabitler PHP 5.1.0'dan beri kullanılabilmekte olup, bu eklenti ile ilgili yerleşik eklentiler şunlardır: SimpleXML, SOAP, WDDX, XSL, XML, XMLReader, XMLRPC ve XMLWriter.

User Contributed Notes

There are no user contributed notes for this page.


Yapılandırma/Kurulum

İçindekiler

  • Gereksinimler
  • PHP >= 7.4 sürümleri için kurulum
  • PHP < 7.4 sürümleri için kurulum
  • Çalışma Anı Yapılandırması
  • Özkaynak Türleri

User Contributed Notes

There are no user contributed notes for this page.


Gereksinimler

Bu eklenti PHP 8.0 ve sonrasında » libxml >= 2.9.0, PHP 8.0 öncesinde ise libxml >= 2.6.0 gerektirir.

User Contributed Notes

There are no user contributed notes for this page.


PHP >= 7.4 sürümleri için kurulum

libxml eklentisi ön tanımlı olarak etkindir, ancak --without-libxml seçeneği ile iptal edilebilir.

libxml2 için kullanılacak doğru kütüphane dosyası, başlık dosyaları ve derleme seçeneklerini belirlemek için PHP, pkg-config kullanır. Doğru libxml2 sürümünün seçildiğinden emin olmak için yapılandırma betiği (configure) çalıştırılmadan önce PKG_CONFIG_PATH ortam değişkeninde istenen sürümün bulunacağı yer

PKG_CONFIG_PATH="/önek/libxml2/diğerönek/lib/pkgconfig:/lib/pkgconfig"
şeklinde belirtilebilir.

User Contributed Notes

mansourjabin at gmail dot com 06-Nov-2023 05:35
Critical Note: In PHP 7.4, an issue presents itself when interfacing with libxml version 2.10.2. If you're deploying PHP 7.4 and wish to maintain operational stability, ensure that libxml is aligned to version 2.9.10. This version has been verified to work seamlessly with PHP 7.4, thereby preventing potential conflicts.
KiralyCraft 19-Sep-2022 05:51
Please note that this option does not seem to work for PHP 8.1.10 anymore.


PHP < 7.4 sürümleri için kurulum

Libxml eklentisi öntanımlı olarak etkin olup iptal edilmek istenirse --disable-libxml derleme seçeneği kullanılabilir.

Seçimlik olan --with-libxml-dir seçeneği belirtildiği takdirde PHP belirtilen yerdeki libxml kütüphanesiyle derlenir, aksi takdirde kütüphane standart yerlerde aranır. Configure işlemi libxml kütüphanesini (özellikle xml2-config) bulmak için şu yolu izler:

  1. --with-libxml-dir seçeneğinde belirtilen DiZiN ([DiZiN]/bin/xml2-config)

  2. /usr/local/bin/xml2-config

  3. /usr/bin/xml2-config

Configure betiği xml2-config dosyasını --with-libxml-dir ile belirttiğiniz yerde bulamazsa standart yerlere bakar.

User Contributed Notes

There are no user contributed notes for this page.


Öntanımlı Sabitler

Buradaki sabitler bu eklenti için tanımlanmış olup, sadece eklentinin PHP içinde derlenmiş olması veya çalışma anında dinamik olarak yüklenmesi halinde kullanılabilir.

LIBXML_BIGLINES (int)
65535'ten büyük satır numaralarının doğru şekilde raporlanmasına izin verir.

Bilginize:

Sadece PHP 7.0.0 ve sonrası ile Libxml >= 2.9.0 için kullanılabilir.

LIBXML_COMPACT (int)
Küçük düğüm ayırma en iyilemesini etkinleştirir. Kodda değişiklik yapmaksızın uygulamanızın hızlanmasını sağlar.

Bilginize:

Sadece Libxml >= 2.6.21 sürümlerinde kullanılabilmektedir.

LIBXML_DTDATTR (int)
Öntanımlı DTD öznitelikleri.
LIBXML_DTDLOAD (int)
Harici alt kümeyi yükler.
LIBXML_DTDVALID (int)
DTD ile doğrulama yapar.
Dikkat

DTD doğrulamasının etkinleştirilmesi, XML Harici Varlık (XXE) saldırılarını kolaylaştırabilir.

LIBXML_HTML_NOIMPLIED (int)
Örtülü html/body... öğelerinin otomatik olarak eklenmesini kapatan HTML_PARSE_NOIMPLIED seçeneğini ayarlar.

Bilginize:

Sadece Libxml >= 2.7.7 ile PHP 5.4.0 ve sonrasında kullanılabilir.

LIBXML_HTML_NODEFDTD (int)
Bulunmadığında doctype eklenmesini engelleyen HTML_PARSE_NODEFDTD seçeneğini ayarlar.

Bilginize:

Sadece Libxml >= 2.7.8 ile PHP 5.4.0 ve sonrasında kullanılabilir.

LIBXML_NOBLANKS (int)
Boş düğümleri siler.
LIBXML_NOCDATA (int)
CDATA bölümleri metin düğümü olarak ele alınır.
LIBXML_NOEMPTYTAG (int)
Boş etiketleri genişletir (örneğin, <br/> etiketi <br></br> haline getirilir).

Bilginize:

Bu seçenek şimdilik sadece DOMDocument::save() ve DOMDocument::saveXML() yönteminde kullanılabilmektedir.

LIBXML_NOENT (int)
Öğe ikameleri yapılır.
Dikkat

Öğe ikamesinin etkinleştirilmesi, XML Harici Öğe (XXE) saldırılarını kolaylaştırabilir.

LIBXML_NOERROR (int)
Hata raporlama kapatılır.
LIBXML_NONET (int)
Belgeler yüklenirken ağ erişimi iptal edilir.
LIBXML_NOWARNING (int)
Uyarı raporlama kapatılır.
LIBXML_NOXMLDECL (int)
Bir belgeyi kaydederken XML bildirimi atlanır.

Bilginize:

Sadece Libxml >= 2.6.21 sürümlerinde kullanılabilmektedir.

LIBXML_NSCLEAN (int)
Gereksiz isim alanı bildirimleri silinir.
LIBXML_PARSEHUGE (int)
Ayrıştırıcıdaki herhangi bir sabit kodlanmış sınırı gevşeten XML_PARSE_HUGE bayrağını ayarlar. Bu, bir belgenin azami derinliği veya öğe özyinelemesi gibi sınırları ve ayrıca metin düğümlerinin boyut sınırlarını etkiler.

Bilginize:

Sadece Libxml >= 2.7.0 (PHP >= 5.3.2 ve PHP >= 5.2.12) ile kullanılabilir.

LIBXML_PEDANTIC (int)
Bilgiçlik hatası raporlamayı etkinleştiren XML_PARSE_PEDANTIC bayrağını ayarlar.

Bilginize:

PHP >= 5.4.0 ile kullanılabilir.

LIBXML_XINCLUDE (int)
XInclude ikamesi gerçeklenir.
LIBXML_ERR_ERROR (int)
Kurtarılabilir hata.
LIBXML_ERR_FATAL (int)
Ölümcül hata.
LIBXML_ERR_NONE (int)
Hata yok.
LIBXML_ERR_WARNING (int)
Basit uyarı.
LIBXML_VERSION (int)
20605 veya 20617 biçiminde libxml sürümü.
LIBXML_DOTTED_VERSION (string)
2.6.5 veya 2.6.17 biçiminde libxml sürümü.
LIBXML_SCHEMA_CREATE (int)
XSD şema doğrulaması sırasında öntanımlı/sabit değer düğümleri oluşturur.

Bilginize:

Sadece Libxml >= 2.6.14 (PHP >= 5.5.2) ile kullanılabilir.

User Contributed Notes

Ismael Miguel 07-Jul-2023 10:53
If you want to save without the XML declaration, and LIBXML_NOXMLDECL doesn't work for you, you can just do this:

<?php
$doc = new \DOMDocument('1.0', 'UTF-8');
$doc->loadXML($xml, LIBXML_*);

echo $doc->saveXML($doc->firstElementChild);
?>

This will output the XML without the XML declaration and without using the flag.
You also don't need to do fiddly replacements and pray that it works.
siraic at gmail dot com 24-Mar-2021 12:10
The name of the constant LIBXML_NOENT is very misleading. Adding this flag actually causes the parser to load and insert the external entities. Omitting it leaves the tags untouched, which is probably what you want.
vetalstar at mail dot ru 16-Nov-2017 12:26
LIBXML_DOTTED_VERSION option doesn't work.
libxml version: 2.9.4

<?php

echo LIBXML_DOTTED_VERSION;
$xml = new SimpleXMLElement('<fasa_request id="1234567"/>', LIBXML_NOXMLDECL);

?>
@oneseventeen 05-Feb-2011 11:51
When inserting XML DOM Elements inside existing XML DOM Elements that I loaded from an XML file using the following code, none of my new elements were formatted correctly, they just showed up on one line:

<?php
$dom = DOMDocument::load('file.xml');
$dom->formatOutput = true;
//$dom->add some new elements with child nodes somewhere inside the loaded XML using insertBefore();
$dom->saveXML();
//output: everything looks normal but the new nodes are all on one line.
?>

I found I could pass LIBXML_NOBLANKS to the load method and it would reformat the whole document, including my added stuff:
<?php
$dom = DOMDocument::load('file.xml', LIBXML_NOBLANKS);
$dom->formatOutput = true;
//$dom->add some new elements with child nodes somewhere inside the loaded XML using insertBefore();
$dom->saveXML();
//output: everything looks newly formatted, including new nodes
?>

Hope this helps, took me hours of trial and error to figure this out!
zachatwork at gmail dot com 09-Feb-2010 11:30
Note: The LIBXML_NOXMLDECL constant is defined in this library but is not supported by DOMDocument (yet).

See also: http://bugs.php.net/bug.php?id=47137

<?php

print "PHP_VERSION:      ".PHP_VERSION."\n";
print "LIBXML_VERSION:   ".LIBXML_VERSION."\n";
print "LIBXML_NOXMLDECL: ".LIBXML_NOXMLDECL."\n";

$dom = new DomDocument();
$dom->loadXML("<foo />");

# This should work but doesn't.

print "DOMDocument doesn't honor LIBXML_NOXMLDECL:\n";
print $dom->saveXML(null,LIBXML_NOXMLDECL);

# This works, and will still work after the above is fixed.

print "Forwards compatible workaround:\n";
$lines = explode("\n", $dom->saveXML(null, LIBXML_NOXMLDECL), 2);
if(!preg_match('/^\<\?xml/', $lines[0]))
    print $lines[0];
print $lines[1];

?>

PHP_VERSION:      5.3.1-0.dotdeb.1
LIBXML_VERSION:   20632
LIBXML_NOXMLDECL: 2
DOMDocument doesn't honor LIBXML_NOXMLDECL:
<?xml version="1.0"?>
<foo/>
Forwards compatible workaround:
<foo/>


LibXMLError sınıfı

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Giriş

Libxml tarafından oluşturulan hatalar hakkında çeşitli bilgiler içerir. Hata kodları, resmi » xmlError API belgelerinde açıklanmıştır.

Sınıf Sözdizimi

class LibXMLError {
/* >Özellikler */
public int $level;
public int $code;
public int $column;
public string $message;
public string $file;
public int $line;
}

Özellikler

level

Hatanın önem derecesi. Şu sabitlerden biri olmalıdır: LIBXML_ERR_WARNING, LIBXML_ERR_ERROR veya LIBXML_ERR_FATAL.

code

Hatanın kodu.

column

Hatanın oluştuğu sütun.

Bilginize:

Bu özellik libxml'de tamamen gerçeklenmediğinden çoğunlukla 0 döner.

message

Varsa hatanın iletisi.

file

Dosya ismi. XML belge bir dizge olarak yüklenmişse boştur.

line

Hatanın oluştuğu satır.

User Contributed Notes

There are no user contributed notes for this page.


libxml İşlevleri

İçindekiler

  • libxml_clear_errors — libxml hata tamponunu temizler
  • libxml_disable_entity_loader — Harici öğeleri yükleme yeteneğini iptal eder
  • libxml_get_errors — Hataları içeren bir dizi döndürür
  • libxml_get_external_entity_loader — Get the current external entity loader
  • libxml_get_last_error — libxml'den son hatayı döndürür
  • libxml_set_external_entity_loader — Öntanımlı harici öğe yükleyiciyi değiştirir
  • libxml_set_streams_context — Yüklenecek veya yazılacak sonraki libxml belgesinin akım bağlamını belirler
  • libxml_use_internal_errors — libxml hatalarını kapatarak kullanıcı tanımlı hataları mümkün kılar

User Contributed Notes

There are no user contributed notes for this page.


libxml hata tamponunu temizler

  • « libxml İşlevleri
  • libxml_disable_entity_loader »
  • PHP Manual
  • libxml İşlevleri
  • libxml hata tamponunu temizler

libxml_clear_errors

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

libxml_clear_errors — libxml hata tamponunu temizler

Açıklama

libxml_clear_errors(): void

libxml hata tamponunu temizler.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

Hiçbir değer dönmez.

Ayrıca Bakınız

  • libxml_get_errors() - Hataları içeren bir dizi döndürür
  • libxml_get_last_error() - libxml'den son hatayı döndürür

User Contributed Notes

There are no user contributed notes for this page.


Harici öğeleri yükleme yeteneğini iptal eder

  • « libxml_clear_errors
  • libxml_get_errors »
  • PHP Manual
  • libxml İşlevleri
  • Harici öğeleri yükleme yeteneğini iptal eder

libxml_disable_entity_loader

(PHP 5 >= 5.2.11, PHP 7, PHP 8)

libxml_disable_entity_loader — Harici öğeleri yükleme yeteneğini iptal eder

Uyarı

Bu işlevin kullanımı PHP 8.0.0 itibariyle ÖNERİLMEMEKTEDİR. Bu işleve kesinlikle güvenilmemelidir.

Açıklama

libxml_disable_entity_loader(bool $iptal = true): bool

Harici öğeleri yükleme yeteneğini iptal eder/etkinleştirir. Harici öğelerin yüklenmesini devre dışı bırakmak, XML belgelerinin yüklenmesiyle ilgili genel sorunlara neden olabilir. Ancak, libxml 2.9.0'dan itibaren öğe ikamesi öntanımlı olarak devre dışıdır, bu nedenle dahili öğe gönderimlerini LIBXML_NOENT ile çözümlemeye gerek olmadığı sürece harici öğelerin yüklenmesini devre dışı bırakmaya gerek yoktur. Genel olarak, harici öğelerin yüklenmesini engellemek için libxml_set_external_entity_loader() kullanılması tercih edilir.

Bağımsız Değişkenler

iptal

DOM, XMLWriter ve XMLReader gibi libxml eklentilerinin harici öğeleri yüklemesini iptal etmek (true) veya etkinleştirmek (false) için kullanılır.

Dönen Değerler

Önceki değeri döndürür.

Ayrıca Bakınız

  • libxml_use_internal_errors() - libxml hatalarını kapatarak kullanıcı tanımlı hataları mümkün kılar
  • libxml_set_external_entity_loader() - Öntanımlı harici öğe yükleyiciyi değiştirir
  • LIBXML_NOENT sabiti

User Contributed Notes

editor at geekkb.com 27-Apr-2023 02:46
There is an extra \ should be deleted before PHP_VERSION_ID in the code which suconghou posted 2 years ago.

if (PHP_VERSION_ID < 80000) {
    libxml_disable_entity_loader(true);
}
suconghou at gmail dot com 07-Jan-2021 10:27
In PHP 8.0 and later, PHP uses libxml versions from 2.9.0, libxml_disable_entity_loader is deprecated.
so it is now safe to remove all `libxml_disable_entity_loader` calls on php8

if you want Backwards Compatibility

use this snippet

if (\PHP_VERSION_ID < 80000) {
    libxml_disable_entity_loader(true);
}
vavra at 602 dot cz 04-Jan-2018 09:48
If is called
libxml_disable_entity_loader(true);

, it causes that new SoapClient(.) fails with

SOAP-ERROR: Parsing WSDL: Couldn't load from 'D:\path/dm_operations.wsdl' : failed to load external entity "D:\path/dm_operations.wsdl

because this wsdl imports a xsd as an another external file.
Tested on php 7.1.12, win x64.
brendan at bloodbone dot ws 25-Mar-2014 10:23
This also seems to have an impact on <xsl:import /> statements if this is applied when loading XSLT for the XSLTProcessor class.
phofstetter at sensational dot ch 27-Jan-2014 04:36
Be mindful that this also disables url loading in simplexml_load_file() and likely other libxml based functions that deal with URLs
daschtour at me dot com 25-Dec-2013 11:56
This function was reported to be not thread safe. So this might affect php-scripts on the same server.
simonsimcity 29-Feb-2012 06:23
Using this function you can prevent a vulnerable to Local and Remote File Inclusion attacks.

You'll see it in an example where I load and validate the following string:

<!DOCTYPE scan [<!ENTITY test SYSTEM "php://filter/read=convert.base64-encode/resource=/etc/passwd">]>
<scan>&test;</scan>

One way to prevent that the file in given back is to set this value to 0.
Please take a closer look at the release of symfony 2.0.11


Hataları içeren bir dizi döndürür

  • « libxml_disable_entity_loader
  • libxml_get_external_entity_loader »
  • PHP Manual
  • libxml İşlevleri
  • Hataları içeren bir dizi döndürür

libxml_get_errors

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

libxml_get_errors — Hataları içeren bir dizi döndürür

Açıklama

libxml_get_errors(): array

Hataları içeren bir dizi döndürür.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

Tamponda bir hata oluşmuşsa LibXMLError nesnelerinden oluşan bir dizi, yoksa boş bir dizi döner.

Örnekler

Örnek 1 - libxml_get_errors() örneği

Örnekte basit bir libxml hata eylemcisinin gerçeklenişi gösterilmiştir.

<?php

libxml_use_internal_errors(true);

$xmlstr = <<< XML
<?xml version='1.0' standalone='yes'?>
<movies>
<movie>
<titles>PHP: Behind the Parser</title>
</movie>
</movies>
XML;

$doc = simplexml_load_string($xmlstr);
$xml = explode("\n", $xmlstr);

if ($doc === false) {
$errors = libxml_get_errors();

foreach ($errors as $error) {
echo display_xml_error($error, $xml);
}

libxml_clear_errors();
}

function display_xml_error($error, $xml)
{
$return = $xml[$error->line - 1] . "\n";
$return .= str_repeat('-', $error->column) . "^\n";

switch ($error->level) {
case LIBXML_ERR_WARNING:
$return .= "Uyarı $error->code: ";
break;
case LIBXML_ERR_ERROR:
$return .= "Hata $error->code: ";
break;
case LIBXML_ERR_FATAL:
$return .= "Ölümcül hata $error->code: ";
break;
}

$return .= trim($error->message) .
"\n Satır: $error->line" .
"\n Sütun: $error->column";

if ($error->file) {
$return .= "\n Dosya: $error->file";
}

return "$return\n\n--------------------------------------------\n\n";
}

?>

Yukarıdaki örneğin çıktısı:

<titles>PHP: Behind the Parser</title>
----------------------------------------------^
Ölümcül hata 76: Opening and ending tag mismatch: titles line 4 and title
  Satır: 4
  Sütun: 46

--------------------------------------------

Ayrıca Bakınız

  • libxml_get_last_error() - libxml'den son hatayı döndürür
  • libxml_clear_errors() - libxml hata tamponunu temizler

User Contributed Notes

lech 29-Jul-2017 12:12
Please beware that the column property seems almost always to be invalid. I thought it only occurred when the line in question was long (and I was just about to submit a bug report with an example), however, at the time of posting, you can even see the problem in the example provided on this page: line 4 does not even have 46 characters. Where the XML line is long, the difference can be very large.

This property comes from the libxml extension, so in any case I don't think this is a PHP bug, however it is worth knowing that the value might be totally unreliable to save some confusion.

The PHP documentation page for the libXMLError class gives some indication, stating:

"This property isn't entirely implemented in libxml and therefore 0 is often returned."

(My libxml version: 2.9.1)


Get the current external entity loader

  • « libxml_get_errors
  • libxml_get_last_error »
  • PHP Manual
  • libxml İşlevleri
  • Get the current external entity loader

libxml_get_external_entity_loader

(PHP 8 >= 8.2.0)

libxml_get_external_entity_loader — Get the current external entity loader

Açıklama

libxml_get_external_entity_loader(): ?callable

Get external entity loader previously installed by libxml_set_external_entity_loader().

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

The external entity loader previously installed by libxml_set_external_entity_loader(). If that function was never called, or if it was called with null, null will be returned.

Ayrıca Bakınız

  • libxml_set_external_entity_loader() - Öntanımlı harici öğe yükleyiciyi değiştirir

User Contributed Notes

There are no user contributed notes for this page.


libxml'den son hatayı döndürür

  • « libxml_get_external_entity_loader
  • libxml_set_external_entity_loader »
  • PHP Manual
  • libxml İşlevleri
  • libxml'den son hatayı döndürür

libxml_get_last_error

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

libxml_get_last_error — libxml'den son hatayı döndürür

Açıklama

libxml_get_last_error(): LibXMLError|false

libxml'den son hatayı döndürür.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

Tamponda bir hata oluşmuşsa bir LibXMLError nesnesi, yoksa false döner.

Ayrıca Bakınız

  • libxml_get_errors() - Hataları içeren bir dizi döndürür
  • libxml_clear_errors() - libxml hata tamponunu temizler

User Contributed Notes

There are no user contributed notes for this page.


Öntanımlı harici öğe yükleyiciyi değiştirir

  • « libxml_get_last_error
  • libxml_set_streams_context »
  • PHP Manual
  • libxml İşlevleri
  • Öntanımlı harici öğe yükleyiciyi değiştirir

libxml_set_external_entity_loader

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

libxml_set_external_entity_loader — Öntanımlı harici öğe yükleyiciyi değiştirir

Açıklama

libxml_set_external_entity_loader(?callable $geri_çağırım): bool

Öntanımlı harici öğe yükleyiciyi değiştirir. İlgili işlem için LIBXML_NOENT atanmış olsa bile, XXE saldırılarını önlemek için isteğe bağlı harici öğe yüklenmesini engellemekte kullanılabilir ve genellikle libxml_disable_entity_loader() çağrısına tercih edilir.

Bağımsız Değişkenler

geri_çağırım

Aşağıdaki sözdizimine sahip bir işlev olmalıdır:

çözümleyici(?string $genel, string $sistem, array $bağlam): resource|string|null
genel
DOCTYPE genel kimliği.
sistem
DOCTYPE sistem kimliği.
bağlam
"directory", "intSubName", "extSubURI" ve "extSubSystem" anahtarlı ilişkisel bir dizi.
Bu çağrılabilir, bir özkaynağın açılabileceği bir dize veya özkaynak döndürmelidir. null döndürülürse, öğe gönderim çözümlemesi başarısız olmuş demektir.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Örnekler

Örnek 1 - libxml_set_external_entity_loader() örneği

<?php
$xml = <<<XML
<!DOCTYPE foo PUBLIC "-//FOO/BAR" "http://example.com/foobar">
<foo>bar</foo>
XML;

$dtd = <<<DTD
<!ELEMENT foo (#PCDATA)>
DTD;

libxml_set_external_entity_loader(
function ($public, $system, $context) use($dtd) {
var_dump($public);
var_dump($system);
var_dump($context);
$f = fopen("php://temp", "r+");
fwrite($f, $dtd);
rewind($f);
return $f;
}
);

$dd = new DOMDocument;
$r = $dd->loadXML($xml);

var_dump($dd->validate());
?>

Yukarıdaki örneğin çıktısı:

string(10) "-//FOO/BAR"
string(25) "http://example.com/foobar"
array(4) {
    ["directory"]    => NULL
    ["intSubName"]   => NULL
    ["extSubURI"]    => NULL
    ["extSubSystem"] => NULL
}
bool(true)

Ayrıca Bakınız

  • libxml_disable_entity_loader() - Harici öğeleri yükleme yeteneğini iptal eder
  • libxml_get_external_entity_loader() - Get the current external entity loader

User Contributed Notes

There are no user contributed notes for this page.


Yüklenecek veya yazılacak sonraki libxml belgesinin akım bağlamını belirler

  • « libxml_set_external_entity_loader
  • libxml_use_internal_errors »
  • PHP Manual
  • libxml İşlevleri
  • Yüklenecek veya yazılacak sonraki libxml belgesinin akım bağlamını belirler

libxml_set_streams_context

(PHP 5, PHP 7, PHP 8)

libxml_set_streams_context — Yüklenecek veya yazılacak sonraki libxml belgesinin akım bağlamını belirler

Açıklama

libxml_set_streams_context(resource $bağlam): void

Yüklenecek veya yazılacak sonraki libxml belgesinin akım bağlamını belirler.

Bağımsız Değişkenler

bağlam

stream_context_create() ile oluşturulan bir akım bağlamı özkaynağı.

Dönen Değerler

Hiçbir değer dönmez.

Örnekler

Örnek 1 - libxml_set_streams_context() örneği

<?php

$opts = array(
'http' => array(
'user_agent' => 'PHP libxml agent',
)
);

$context = stream_context_create($opts);
libxml_set_streams_context($context);

// Dosyayı HTTP üzerinden isteyelim
$doc = DOMDocument::load('http://www.example.com/file.xml');

?>

Ayrıca Bakınız

  • stream_context_create() - Bir akım bağlamı oluşturur

User Contributed Notes

There are no user contributed notes for this page.


libxml hatalarını kapatarak kullanıcı tanımlı hataları mümkün kılar

  • « libxml_set_streams_context
  • SimpleXML »
  • PHP Manual
  • libxml İşlevleri
  • libxml hatalarını kapatarak kullanıcı tanımlı hataları mümkün kılar

libxml_use_internal_errors

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

libxml_use_internal_errors — libxml hatalarını kapatarak kullanıcı tanımlı hataları mümkün kılar

Açıklama

libxml_use_internal_errors(?bool $hatalar_etkin = null): bool

Standart libxml hatalarını iptal edip kullanıcı tanımlı hataları etkin kılar.

Bağımsız Değişkenler

hatalar_etkin

true atanırsa kullanıcı hataları etkin olur. false atanırsa iptal olur. İptal edilmesi ayrıca mevcut libxml hatalarını da temizleyecektir.

Dönen Değerler

hatalar_etkin bağımsız değişkeninin önceki değerini döndürür.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | hatalar_etkin artık null olabiliyor. Evvelce, false öntanımlıydı.

Örnekler

Örnek 1 - libxml_use_internal_errors() örneği

Aşağıdaki örnekte işlevin döndürdüğü değer ve libxml hatalarının temel kullanımı gösterilmiştir.

<?php

// Kullanıcı tanımlı hataları etkin kılalım
var_dump(libxml_use_internal_errors(true));

// Belgeyi yükleyelim
$doc = new DOMDocument;

if (!$doc->load('file.xml')) {
foreach (libxml_get_errors() as $error) {
// Hataları burada ele alıyoruz
}

libxml_clear_errors();
}

?>

Yukarıdaki örneğin çıktısı:

bool(false)

Ayrıca Bakınız

  • libxml_clear_errors() - libxml hata tamponunu temizler
  • libxml_get_errors() - Hataları içeren bir dizi döndürür

User Contributed Notes

marcovtwout 07-May-2013 01:05
When using libxml_use_internal_errors(true), and perform a possibly memory intensive operation like simplexml_load_string() next, you might end up with a blank screen and no php error logged because the error message been suppressed.
james at dunmore dot me dot uk 21-Aug-2008 03:03
We use a custom error handler using  set_error_handler()  I found that after I call

libxml_use_internal_errors(false);

It resets my error_handler - not sure if this is a bug or not, I will report it as a bug - however, I needed to repeat my call to set_error_handler

(did confuse me for a while)
B Crawford 03-Oct-2007 06:22
When using this funtion, be sure to clear your internal error buffer. If you dn't and you are using this in a long running process, you may find that all your memory is used up.


Basit XML

  • Giriş
  • Yapılandırma/Kurulum
    • Gereksinimler
    • Kurulum
    • Çalışma Anı Yapılandırması
    • Özkaynak Türleri
  • Öntanımlı Sabitler
  • Örnekler
    • Temel SimpleXML kullanımı
    • XML hatalarıya ilgilenmek
  • SimpleXMLElement — SimpleXMLElement sınıfı
    • SimpleXMLElement::addAttribute — XML elemanına bir öznitelik ekler
    • SimpleXMLElement::addChild — XML düğümüne bir çocuk düğüm ekler
    • SimpleXMLElement::asXML — Nesnenin içerdiği belgeyi iyi biçemli bir XML dizge olarak döndürür
    • SimpleXMLElement::attributes — Bir elemanın özniteliklerine erişim sağlar
    • SimpleXMLElement::children — Belirtilen düğümün çocuklarını bulur
    • SimpleXMLElement::__construct — Yeni bir SimpleXMLElement nesnesi oluşturur
    • SimpleXMLElement::count — Counts the children of an element
    • SimpleXMLElement::current — Returns the current element
    • SimpleXMLElement::getDocNamespaces — Belgede bildirilmiş isim alanlarını döndürür
    • SimpleXMLElement::getName — XML eleman ismi döndürür
    • SimpleXMLElement::getNamespaces — Belgede kullanılan isim alanlarını döndürür
    • SimpleXMLElement::getChildren — Returns the sub-elements of the current element
    • SimpleXMLElement::hasChildren — Checks whether the current element has sub elements
    • SimpleXMLElement::key — Return current key
    • SimpleXMLElement::next — Move to next element
    • SimpleXMLElement::registerXPathNamespace — Sonraki XPath ifadesi için bir önek/isim alanı bağlamı oluşturur
    • SimpleXMLElement::rewind — Rewind to the first element
    • SimpleXMLElement::saveXML — Takma Adı: SimpleXMLElement::asXML
    • SimpleXMLElement::__toString — Returns the string content
    • SimpleXMLElement::valid — Check whether the current element is valid
    • SimpleXMLElement::xpath — Bir XML veri üzerinde bir XPath sorgusu çalıştırır
  • SimpleXMLIterator — The SimpleXMLIterator class
  • Basit XML İşlevleri
    • simplexml_import_dom — Bir DOM düğümü alıp bir SimpleXMLElement nesnesi döndürür
    • simplexml_load_file — Bir XML dosyasının içeriğini bir nesne haline getirir
    • simplexml_load_string — Bir XML dizgesini bir nesne haline getirir

User Contributed Notes

oleg at mastak dot fi 30-Mar-2016 09:57
Two lines xml2array:

<?php

$xml = simplexml_load_string($xmlstring);
$array = (array) $xml;

?>
dkrnl at yandex dot ru 30-Sep-2013 02:57
Wrapper XMLReader class, for simple SAX-reading huge xml:
https://github.com/dkrnl/SimpleXMLReader

Usage example: http://github.com/dkrnl/SimpleXMLReader/blob/master/examples/example1.php

<?php

/**
 * Simple XML Reader
 *
 * @license Public Domain
 * @author Dmitry Pyatkov(aka dkrnl) <dkrnl@yandex.ru>
 * @url http://github.com/dkrnl/SimpleXMLReader
 */
class SimpleXMLReader extends XMLReader
{

    /**
     * Callbacks
     *
     * @var array
     */
    protected $callback = array();

    /**
     * Add node callback
     *
     * @param  string   $name
     * @param  callback $callback
     * @param  integer  $nodeType
     * @return SimpleXMLReader
     */
    public function registerCallback($name, $callback, $nodeType = XMLREADER::ELEMENT)
    {
        if (isset($this->callback[$nodeType][$name])) {
            throw new Exception("Already exists callback $name($nodeType).");
        }
        if (!is_callable($callback)) {
            throw new Exception("Already exists parser callback $name($nodeType).");
        }
        $this->callback[$nodeType][$name] = $callback;
        return $this;
    }

    /**
     * Remove node callback
     *
     * @param  string  $name
     * @param  integer $nodeType
     * @return SimpleXMLReader
     */
    public function unRegisterCallback($name, $nodeType = XMLREADER::ELEMENT)
    {
        if (!isset($this->callback[$nodeType][$name])) {
            throw new Exception("Unknow parser callback $name($nodeType).");
        }
        unset($this->callback[$nodeType][$name]);
        return $this;
    }

    /**
     * Run parser
     *
     * @return void
     */
    public function parse()
    {
        if (empty($this->callback)) {
            throw new Exception("Empty parser callback.");
        }
        $continue = true;
        while ($continue && $this->read()) {
            if (isset($this->callback[$this->nodeType][$this->name])) {
                $continue = call_user_func($this->callback[$this->nodeType][$this->name], $this);
            }
        }
    }

    /**
     * Run XPath query on current node
     *
     * @param  string $path
     * @param  string $version
     * @param  string $encoding
     * @return array(SimpleXMLElement)
     */
    public function expandXpath($path, $version = "1.0", $encoding = "UTF-8")
    {
        return $this->expandSimpleXml($version, $encoding)->xpath($path);
    }

    /**
     * Expand current node to string
     *
     * @param  string $version
     * @param  string $encoding
     * @return SimpleXMLElement
     */
    public function expandString($version = "1.0", $encoding = "UTF-8")
    {
        return $this->expandSimpleXml($version, $encoding)->asXML();
    }

    /**
     * Expand current node to SimpleXMLElement
     *
     * @param  string $version
     * @param  string $encoding
     * @param  string $className
     * @return SimpleXMLElement
     */
    public function expandSimpleXml($version = "1.0", $encoding = "UTF-8", $className = null)
    {
        $element = $this->expand();
        $document = new DomDocument($version, $encoding);
        $node = $document->importNode($element, true);
        $document->appendChild($node);
        return simplexml_import_dom($node, $className);
    }

    /**
     * Expand current node to DomDocument
     *
     * @param  string $version
     * @param  string $encoding
     * @return DomDocument
     */
    public function expandDomDocument($version = "1.0", $encoding = "UTF-8")
    {
        $element = $this->expand();
        $document = new DomDocument($version, $encoding);
        $node = $document->importNode($element, true);
        $document->appendChild($node);
        return $document;
    }

}
?>
whyme 28-Dec-2012 09:55
Simple means simple.  If you know the structure and just want the value of a tag:

<?php
$xml = simplexml_load_file($xmlfile);
print $xml->City->Street->Address->HouseColor;
?>

Warning, numbers can come out as strings, empty elements like <HouseColor></HouseColor> come out as array(0)
xaviered at gmail dot com 17-May-2012 07:00
Here is a recursive function that will convert a given SimpleXMLElement object into an array, preserving namespaces and attributes.

<?php
function xmlObjToArr($obj) {
        $namespace = $obj->getDocNamespaces(true);
        $namespace[NULL] = NULL;

        $children = array();
        $attributes = array();
        $name = strtolower((string)$obj->getName());

        $text = trim((string)$obj);
        if( strlen($text) <= 0 ) {
            $text = NULL;
        }

        // get info for all namespaces
        if(is_object($obj)) {
            foreach( $namespace as $ns=>$nsUrl ) {
                // atributes
                $objAttributes = $obj->attributes($ns, true);
                foreach( $objAttributes as $attributeName => $attributeValue ) {
                    $attribName = strtolower(trim((string)$attributeName));
                    $attribVal = trim((string)$attributeValue);
                    if (!empty($ns)) {
                        $attribName = $ns . ':' . $attribName;
                    }
                    $attributes[$attribName] = $attribVal;
                }

                // children
                $objChildren = $obj->children($ns, true);
                foreach( $objChildren as $childName=>$child ) {
                    $childName = strtolower((string)$childName);
                    if( !empty($ns) ) {
                        $childName = $ns.':'.$childName;
                    }
                    $children[$childName][] = xmlObjToArr($child);
                }
            }
        }

        return array(
            'name'=>$name,
            'text'=>$text,
            'attributes'=>$attributes,
            'children'=>$children
        );
    }
?>
soloman at textgrid dot com 09-Aug-2011 05:06
Three line xml2array:

<?php

$xml = simplexml_load_string($xmlstring);
$json = json_encode($xml);
$array = json_decode($json,TRUE);

?>

Ta da!
streaver91 at gmail dot com 04-May-2011 08:49
The BIGGEST differece between an XML and a PHP array is that in an XML file, the name of elements can be the same even if they are siblings, eg. "<pa><ch /><ch /><ch /></pa>", while in an PHP array, the key of which must be different.

I think the array structure developed by svdmeer can fit for XML, and fits well.

here is an example array converted from an xml file:
array(
"@tag"=>"name",
"@attr"=>array(
    "id"=>"1","class"=>"2")
"@text"=>"some text",
)

or if it has childrens, that can be:

array(
"@tag"=>"name",
"@attr"=>array(
    "id"=>"1","class"=>"2")
"@items"=>array(
    0=>array(
        "@tag"=>"name","@text"=>"some text"
    )
)

Also, I wrote a function that can change that array back to XML.

<?php
function array2XML($arr,$root) {
$xml = new SimpleXMLElement("<?xml version=\"1.0\" encoding=\"utf-8\" ?><{$root}></{$root}>");
$f = create_function('$f,$c,$a','
        foreach($a as $v) {
            if(isset($v["@text"])) {
                $ch = $c->addChild($v["@tag"],$v["@text"]);
            } else {
                $ch = $c->addChild($v["@tag"]);
                if(isset($v["@items"])) {
                    $f($f,$ch,$v["@items"]);
                }
            }
            if(isset($v["@attr"])) {
                foreach($v["@attr"] as $attr => $val) {
                    $ch->addAttribute($attr,$val);
                }
            }
        }');
$f($f,$xml,$arr);
return $xml->asXML();
}
?>
phil at dier dot us 19-Jan-2011 11:37
Here's a function I came up with to convert an associative array to XML.  Works for multidimensional arrays as well.

<?php
function assocArrayToXML($root_element_name,$ar)
{
    $xml = new SimpleXMLElement("<?xml version=\"1.0\"?><{$root_element_name}></{$root_element_name}>");
    $f = create_function('$f,$c,$a','
            foreach($a as $k=>$v) {
                if(is_array($v)) {
                    $ch=$c->addChild($k);
                    $f($f,$ch,$v);
                } else {
                    $c->addChild($k,$v);
                }
            }');
    $f($f,$xml,$ar);
    return $xml->asXML();
}
?>
philipp at strazny dot com 23-Nov-2010 05:33
Here's a quick way to dump the nodeValues from SimpleXML into an array using the path to each nodeValue as key. The paths are compatible with e.g. DOMXPath. I use this when I need to update values externally (i.e. in code that doesn't know about the underlying xml). Then I use DOMXPath to find the node containing the original value and update it.

<?php
function XMLToArrayFlat($xml, &$return, $path='', $root=false)
{
    $children = array();
    if ($xml instanceof SimpleXMLElement) {
        $children = $xml->children();
        if ($root){ // we're at root
            $path .= '/'.$xml->getName();
        }
    }
    if ( count($children) == 0 ){
        $return[$path] = (string)$xml;
        return;
    }
    $seen=array();
    foreach ($children as $child => $value) {
        $childname = ($child instanceof SimpleXMLElement)?$child->getName():$child;
        if ( !isset($seen[$childname])){
            $seen[$childname]=0;
        }
        $seen[$childname]++;
        XMLToArrayFlat($value, $return, $path.'/'.$child.'['.$seen[$childname].']');
    }
}
?>

Use like this:

<?php
$xml = simplexml_load_string(...some xml string...);
$xmlarray = array(); // this will hold the flattened data
XMLToArrayFlat($xml, $xmlarray, '', true);
?>

You can also pull multiple files in one array:

<?php
foreach($files as $file){
    $xml = simplexml_load_file($file);
    XMLToArrayFlat($xml, $xmlarray, $file.':', true);
}
?>
The respective filename/path is thus prefixed to each key.
kristof at viewranger dot com 18-Nov-2010 05:14
If you tried to load an XML file with this, but the CDATA parts were not loaded for some reason, is because you should do it this way:

$xml = simplexml_load_file($this->filename, 'SimpleXMLElement', LIBXML_NOCDATA);

This converts CDATA to String in the returning object.
emmanuel 17-Feb-2010 10:21
dynamic sql in php using xml:

test.xml:
<?xml version="1.0" encoding="UTF-8"?>
<sql>
    <statement>
        SELECT * FROM USERS
        <call criteria="byId">WHERE id = %d</call>
        <call criteria="byUsername">WHERE username = "%s"</call>;
    </statement>
</sql>

index.php:
<?php
function callMe($param) {
    $search = array('byUsername' => 'dynsql');

    if (isset($search[$param[1]])) {
        return sprintf($param[2], $search[$param[1]]);
    }

    return "";
}

$xml = simplexml_load_file("test.xml");
$string = $xml->statement->asXML();
$string = preg_replace_callback('/<call criteria="(\w+)">(.*?)<\/call>/', 'callMe', $string);
$node = simplexml_load_string($string);
echo $node;
?>

obviously, this example can be improved [in your own code.]
mahmutta at gmail dot com 20-Jan-2010 12:58
while using simple xml and get double or float int value from xml object for using math operations (+ * - / ) some errors happens on the operation, this is because of simple xml returns everythings to objects.
exmple;

<?php

$name = "somestring";
$size = 11.45;
$xml = '
<xml>
 <name>somestring</name>
 <size>11.45</size>
</xml>';

$xmlget = simplexml_load_string($xml)

echo $xml->size*2;    // 20  its false
// ($xml->size is an object (int)11 and  (45) )

// this is true
echo $size*2;            // 22.90
echo (float)$size*2;   // 22.90
?>
mail at kleineedv dot de 28-Apr-2009 12:37
I had a problem with simplexml reading nodes from an xml file. It always return an SimpleXML-Object but not the text inside the node.

Example:
<?xml version="1.0" encoding="UTF-8"?>
<Test>
    <Id>123</Id>
</Test>

Reading this xml into a variable called $xml and then doing the following
<?php
$myId = $xml->Id;
?>
Did not return 123 in $myId, but instead I got a SimpleXMLElement Object.

The solution is simple, when you know it. Use explicit string conversion.
<?php
$myId = (string)$xml->Id;
?>
oscargodson at gmail dot com 25-Jan-2009 03:05
To add to what others have said, you can't directly put a $_GET or $_POST value into a variable then into an attribute using SimpleXML. You must first convert it to an integer.

This will NOT work

<?php
      $page_id = $_GET['id'];
      echo $xml->page[$page_id]
?>

You will get something like:
Notice: Trying to get property of non-object in /Applications/MAMP/htdocs/mysite/index.php on line 10

However, this WILL work and is much simpler then using (string) or other methods.
<?php
   $page_id = intval($_GET['id']);
   echo $xml->page[$page_id]
?>
QLeap 18-Nov-2008 02:27
Storing SimpleXMLElement values in $_SESSION does not work. Saving the results as an object or individual elements of the object will result in the dreaded "Warning: session_start() [function.session-start]: Node no longer exists" error.

For example, this does not work:

    $xml  = new SimpleXMLElement($page);
    $country  = $xml->Response->Placemark->AddressDetails->Country->CountryNameCode;
    $_SESSION['country'] = $country;

This will work:

    $_SESSION['country'] = (string) $country;
aalaap at gmail dot com 30-Jun-2008 06:58
Here are two quick and dirty functions that use SimpleXML to detect if a feed xml is RSS or ATOM:

<?php
function is_rss($feedxml) {
    @$feed = new SimpleXMLElement($feedxml);

    if ($feed->channel->item) {
        return true;
    } else {
        return false;
    }
}

function is_atom($feedxml) {
    @$feed = new SimpleXMLElement($feedxml);

    if ($feed->entry) {
        return true;
    } else {
        return false;
    }
}
?>

The functions take in the full text feed (retrieved via cURL, for example) and return a true or a false based on the result.


Giriş

Basit XML eklentisi, XML belgeleri, normal özellik seçicileri ve dizi yineleyicileri ile işleyebilen bir nesneye dönüştürmeyi kolaylaştıran araçları içerir.

User Contributed Notes

There are no user contributed notes for this page.


Kurulum

Bu eklenti öntanımlı olarak etkindir. Derleme sırasında bu seçenekle iptal edilebilir: --disable-simplexml

User Contributed Notes

Rapitharian at hotmail dot com 24-Apr-2019 08:39
To install on CentOS and Redhat, run: sudo yum -y install php-xml
ottakar at freezed dot me 19-Dec-2017 09:31
This XML module is not provided on a default php (v7) install on Debian GNU/Linux stretch (9.3)
Add it with: sudo apt-get install php-xml
shashank at shankee dot com 31-May-2017 09:44
Installing simpleXml using composer:

"composer require ext-simplexml"

The extension is enabled by default in most distros. You can check the list of php modules using:

"php -m"
morel dot josh at hotmail dot com 17-Dec-2016 12:09
For Linux Ubuntu using PHP 7:
sudo apt-get install php7.0-xml


Örnekler

İçindekiler

  • Temel SimpleXML kullanımı
  • XML hatalarıya ilgilenmek

User Contributed Notes

Juan Herrera 19-Dec-2009 12:49
When using simplexml to access a element the returned object may be a SimpleXMLElement instead of a string.

Example:

<?php
$string = <<<XML
<?xml version='1.0'?>
<document>
    <cmd>login</cmd>
    <login>Richard</login>
</document>
XML;

$xml = simplexml_load_string($string);
print_r($xml);
$login = $xml->login;
print_r($login);
$login = (string) $xml->login;
print_r($login);
?>

Expected result:
----------------
SimpleXMLElement Object
(
    [cmd] => login
    [login] => Richard
)
Richard
Richard

Actual result:
--------------
SimpleXMLElement Object
(
    [cmd] => login
    [login] => Richard
)
SimpleXMLElement Object
(
    [0] => Richard
)
Richard

But this is an intended behavior. See http://bugs.php.net/bug.php?id=29500
info at accountr dot eu 05-May-2009 08:35
Instead of using  <?php eval($code) ?>

you can use this method,

<?php

$node = "node";

$XML = simplexml_load_file($file);

$text = (string)$XML->nodes->{$node}; // works
// or
$text2 = (string)$XML->{$node}->child; // also works fine

?>

I think it is much more easier instead of eval().
Kari P. 15-Aug-2008 02:17
To take care of proper error checking, one must use try-catch blocks:

<?php
try {
  $sxe = new SimpleXMLElement($xmlstring);
} catch (Exception $e) {
  echo "bad xml";
}
?>

To get rid of warnings, use @ in front of new:

<?php
try {
  $sxe = @new SimpleXMLElement($xmlstring);
} catch (Exception $e) {
  echo "bad xml";
}
?>
mike at mike-griffiths dot co dot uk 18-Apr-2008 09:11
It is important that you select the correct method of loading the XML in depending on the format of your XML file.

If you use the wrong function to load it in you will get some strange errors.


Temel SimpleXML kullanımı

Bu eklentideki bir çok örnek bir XML dizge gerektirir. Her örnekte bu dizgeyi tekrar tekrar yazmak yerine her örnekte içerilmek üzere bir dosyaya koyduk. Bu dosyanın içeriği aşağıda verilmiştir. İsterseniz kendi XML belgenizi oluşturup simplexml_load_file() işleviyle de okutabilirsiniz.

Örnek 1 - XML dizge olarak içerilecek example.php dosyası

<?php
$xmlstr = <<<XML
<?xml version='1.0' standalone='yes'?>
<movies>
<movie>
<title>PHP: Behind the Parser</title>
<characters>
<character>
<name>Ms. Coder</name>
<actor>Onlivia Actora</actor>
</character>
<character>
<name>Mr. Coder</name>
<actor>El Act&#211;r</actor>
</character>
</characters>
<plot>
So, this language. It's like, a programming language. Or is it a
scripting language? All is revealed in this thrilling horror spoof
of a documentary.
</plot>
<great-lines>
<line>PHP solves all my web problems</line>
</great-lines>
<rating type="thumbs">7</rating>
<rating type="stars">5</rating>
</movie>
</movies>
XML;
?>

Basit XML eklentisinin basitleştiriciliği, en açık haliyle basit bir XML belgeden bir sayı veya dizgeyi çıkarırken görülür.

Örnek 2 - <plot> içeriğinin eldesi

<?php
include 'example.php';

$movies = new SimpleXMLElement($xmlstr);

echo $movies->movie[0]->plot;
?>

Yukarıdaki örneğin çıktısı:

   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.

Bir XML belgedeki elemanlara erişirken, PHP isimlendirme kurallarına uymayan (örneğin, tire içeren) eleman isimleri tek tırnak ve kaşlı ayraçlarla sarmalanarak belirtilebilir.

Örnek 3 - <line> içeriğinin eldesi

<?php
include 'example.php';

$xml = new SimpleXMLElement($xmlstr);

echo $movies->movie->{'great-lines'}->line;
?>

Yukarıdaki örneğin çıktısı:

PHP solves all my web problems

Örnek 4 - Bir elemanın birden fazla örneğine erişim

Bir ebeveyn elemanın aynı isimdeki birden fazla çocuğunun içeriğini elde etmek için normal yineleme teknikleri kullanılır.

<?php
include 'example.php';

$movies = new SimpleXMLElement($xmlstr);

/* Her <character> düğümündeki <name> içeriğini çıkaralım */
foreach ($movies->movie->characters->character as $character) {
echo $character->name, ' played by ', $character->actor, PHP_EOL;
}

?>

Yukarıdaki örneğin çıktısı:

Ms. Coder played by Onlivia Actora
Mr. Coder played by El ActÓr

Bilginize:

Özellikler (önceki örnekteki $movies->movie) dizi değildir. Yinelenebilir ve erişilebilir nesnelerdir.

Örnek 5 - Özniteliklerin kullanımı

Şimdiye kadar hep eleman isimleri ve içerikleri ile çalıştık. Basit XML eklentisi eleman özniteliklerine de erişir. Eleman özniteliklerine, eleman ismini taşıyan dizinin anahtarları olarak erişebilirsiniz.

<?php
include 'example.php';

$movies = new SimpleXMLElement($xmlstr);

/* İlk <movie> içindeki <rating> düğümlerine erişelim.
* İstatistiksel sonuçları çıktılayalım. */
foreach ($movies->movie[0]->rating as $rating) {
switch((string) $rating['type']) { // Öznitelikler birer anahtardır
case 'thumbs':
echo $rating, ' onaylı';
break;
case 'stars':
echo $rating, ' yıldızlı';
break;
}
}
?>

Yukarıdaki örneğin çıktısı:

7 thumbs up5 stars

Örnek 6 - Elemanları ve öznitelikleri karşılaştırmak

Bir elemanı veya özniteliği bir dizge ile karşılaştırmak veya bir dizge gerektiren bir işleve aktarmak için nesnenin önüne (string) getirerek tür dönüşümü yapmalısınız. Aksi takdirde PHP, elemanı bir nesne olarak ele alır.

<?php
include 'example.php';

$movies = new SimpleXMLElement($xmlstr);

if ((string) $movies->movie->title == 'PHP: Behind the Parser') {
print 'My favorite movie.';
}

echo htmlentities((string) $movies->movie->title);
?>

Yukarıdaki örneğin çıktısı:

My favorite movie.PHP: Behind the Parser

Örnek 7 - İki elemanı karşılaştırmak

İki SimpleXMLElement nesnesi, aynı elemana ait olsalar bile, farklı nesneler olarak ele alınır.

<?php
include 'example.php';

$movies1 = new SimpleXMLElement($xmlstr);
$movies2 = new SimpleXMLElement($xmlstr);
var_dump($movies1 == $movies2);
?>

Yukarıdaki örneğin çıktısı:

bool(false)

Örnek 8 - XPath kullanımı

Basit XML eklentisinin yerleşik XPath desteği vardar. Tüm <character> elemanlarını bulmak isteyelim:

<?php
include 'example.php';

$movies = new SimpleXMLElement($xmlstr);

foreach ($movies->xpath('//character') as $character) {
echo $character->name, ' played by ', $character->actor, PHP_EOL;
}
?>

'//character' ifadesindeki '//' bir kısaltma olup, belgedeki tüm character elemanları anlamına gelir (Bakınız: » XML Adresleme Dili (XPath) 1.0 belirtimi).

Yukarıdaki örneğin çıktısı:

Ms. Coder played by Onlivia Actora
Mr. Coder played by El ActÓr

Örnek 9 - Değer atamak

SimpleXMLElement nesnesinin verileri birer sabit değildir. Nesnenin tüm elemanlarında değişiklik yapılabilir.

<?php
include 'example.php';
$movies = new SimpleXMLElement($xmlstr);

$movies->movie[0]->characters->character[0]->name = 'Miss Coder';

echo $movies->asXML();
?>

Yukarıdaki örneğin çıktısı:

<?xml version="1.0" standalone="yes"?>
<movies>
 <movie>
  <title>PHP: Behind the Parser</title>
  <characters>
   <character>
    <name>Miss Coder</name>
    <actor>Onlivia Actora</actor>
   </character>
   <character>
    <name>Mr. Coder</name>
    <actor>El Act&#xD3;r</actor>
   </character>
  </characters>
  <plot>
   So, this language. It's like, a programming language. Or is it a
   scripting language? All is revealed in this thrilling horror spoof
   of a documentary.
  </plot>
  <great-lines>
   <line>PHP solves all my web problems</line>
  </great-lines>
  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
 </movie>
</movies>

Örnek 10 - Eleman ve öznitelik eklemek

SimpleXMLElement nesnesine çocuk elemanlar ve öznitelikler kolayca eklenebilmektedir.

<?php
include 'example.php';
$movies = new SimpleXMLElement($xmlstr);

$character = $movies->movie[0]->characters->addChild('character');
$character->addChild('name', 'Mr. Parser');
$character->addChild('actor', 'John Doe');

$rating = $movies->movie[0]->addChild('rating', 'PG');
$rating->addAttribute('type', 'mpaa');

echo $movies->asXML();
?>

Yukarıdaki örneğin çıktısı:

<?xml version="1.0" standalone="yes"?>
<movies>
 <movie>
  <title>PHP: Behind the Parser</title>
  <characters>
   <character>
    <name>Ms. Coder</name>
    <actor>Onlivia Actora</actor>
   </character>
   <character>
    <name>Mr. Coder</name>
    <actor>El Act&#xD3;r</actor>
   </character>
  <character><name>Mr. Parser</name><actor>John Doe</actor></character></characters>
  <plot>
   So, this language. It's like, a programming language. Or is it a
   scripting language? All is revealed in this thrilling horror spoof
   of a documentary.
  </plot>
  <great-lines>
   <line>PHP solves all my web problems</line>
  </great-lines>
  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
 <rating type="mpaa">PG</rating></movie>
</movies>

Örnek 11 - DOM ile çalışabilirlik

PHP, XML düğümlerin Basit XML ve DOM biçemleri arasında dönüşüm yapılabilmeyi sağlayan bir mekanizmaya sahiptir. Bu örnekte bir DOM elemanının bir SimpleXMLElement nesnesine dönüştürülmesi gösterilmiştir.

<?php
$dom = new DOMDocument;
$dom->loadXML('<books><book><title>blah</title></book></books>');
if (!$dom) {
echo 'Belge çözümlenirken hata oluştu';
exit;
}

$books = simplexml_import_dom($dom);

echo $books->book[0]->title;
?>

Yukarıdaki örneğin çıktısı:

blah

User Contributed Notes

Josef 01-Sep-2021 06:54
How to find out if a Node exists:

<?xml version='1.0' standalone='yes'?>
<book>
  <author>Josef</author>
  <isbn></isbn>
</book>

empty($xml->isbn) will be true
isset($xml->isbn) will be true

empty($xml->title) will be true
isset($xml->title) will be false
Anonymous 22-Aug-2017 12:35
If your xml string contains booleans encoded with "0" and "1", you will run into problems when you cast the element directly to bool:

$xmlstr = <<<XML
<?xml version='1.0' standalone='yes'?>
<values>
    <truevalue>1</truevalue>
    <falsevalue>0</falsevalue>
</values>
XML;
$values = new SimpleXMLElement($xmlstr);
$truevalue = (bool)$values->truevalue; // true
$falsevalue = (bool)$values->falsevalue; // also true!!!

Instead you need to cast to string or int first:

$truevalue = (bool)(int)$values->truevalue; // true
$falsevalue = (bool)(int)$values->falsevalue; // false
rowan dot collins at gmail dot com 04-Jun-2015 06:58
There is a common "trick" often proposed to convert a SimpleXML object to an array, by running it through json_encode() and then json_decode(). I'd like to explain why this is a bad idea.

Most simply, because the whole point of SimpleXML is to be easier to use and more powerful than a plain array. For instance, you can write <?php $foo->bar->baz['bing'] ?> and it means the same thing as <?php $foo->bar[0]->baz[0]['bing'] ?>, regardless of how many bar or baz elements there are in the XML; and if you write <?php (string)$foo->bar[0]->baz[0] ?> you get all the string content of that node - including CDATA sections - regardless of whether it also has child elements or attributes. You also have access to namespace information, the ability to make simple edits to the XML, and even the ability to "import" into a DOM object, for much more powerful manipulation. All of this is lost by turning the object into an array rather than reading understanding the examples on this page.

Additionally, because it is not designed for this purpose, the conversion to JSON and back will actually lose information in some situations. For instance, any elements or attributes in a namespace will simply be discarded, and any text content will be discarded if an element also has children or attributes. Sometimes, this won't matter, but if you get in the habit of converting everything to arrays, it's going to sting you eventually.

Of course, you could write a smarter conversion, which didn't have these limitations, but at that point, you are getting no value out of SimpleXML at all, and should just use the lower level XML Parser functions, or the XMLReader class, to create your structure. You still won't have the extra convenience functionality of SimpleXML, but that's your loss.
jishcem at gmail dot com 12-Mar-2013 07:31
For me it was easier to use arrays than objects,

So, I used this code,

$xml = simplexml_load_file('xml_file.xml');

$json_string = json_encode($xml);

$result_array = json_decode($json_string, TRUE);

Hope it would help someone
gkokmdam at zonnet dot nl 23-Feb-2011 01:54
A quick tip on xpath queries and default namespaces. It looks like the XML-system behind SimpleXML has the same workings as I believe the XML-system .NET uses: when one needs to address something in the default namespace, one will have to declare the namespace using registerXPathNamespace and then use its prefix to address the otherwise in the default namespace living element.

<?php
$string = <<<XML
<?xml version='1.0'?>
<document xmlns="http://www.w3.org/2005/Atom">
 <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);
$xml->registerXPathNamespace("def", "http://www.w3.org/2005/Atom");

$nodes = $xml->xpath("//def:document/def:title");

?>
kdos 31-Jan-2011 05:32
Using stuff like: is_object($xml->module->admin) to check if there actually is a node called "admin", doesn't seem to work as expected, since simplexml always returns an object- in that case an empty one  - even if a particular node does not exist.
For me good old empty() function seems to work just fine in such cases.

Cheers
Max K. 20-Jun-2010 02:38
From the README file:

SimpleXML is meant to be an easy way to access XML data.

SimpleXML objects follow four basic rules:

1) properties denote element iterators
2) numeric indices denote elements
3) non numeric indices denote attributes
4) string conversion allows to access TEXT data

When iterating properties then the extension always iterates over
all nodes with that element name. Thus method children() must be
called to iterate over subnodes. But also doing the following:
foreach ($obj->node_name as $elem) {
  // do something with $elem
}
always results in iteration of 'node_name' elements. So no further
check is needed to distinguish the number of nodes of that type.

When an elements TEXT data is being accessed through a property
then the result does not include the TEXT data of subelements.

Known issues
============

Due to engine problems it is currently not possible to access
a subelement by index 0: $object->property[0].
ie dot raymond at gmail dot com 01-Apr-2010 03:07
If you need to output valid xml in your response, don't forget to set your header content type to xml in addition to echoing out the result of asXML():

<?php

$xml=simplexml_load_file('...');
...
...xml stuff
...

//output xml in your response:
header('Content-Type: text/xml');
echo $xml->asXML();
?>
php at keith tyler dot com 23-Dec-2009 12:57
[Editor's Note: The SimpleXMLIterator class, however, does implement these methods.]

While SimpleXMLElement claims to be iterable, it does not seem to implement the standard Iterator interface functions like ::next and ::reset properly. Therefore while foreach() works, functions like next(), current(), or each() don't seem to work as you would expect -- the pointer never seems to move or keeps getting reset.
radams at circlepix com 24-Apr-2009 10:52
To test whether an element exists:

<?php

    $xml = <<<EOT
<?xml version='1.0' standalone='yes'?>
<root>
    <test1></test1>
    <test2 />
    <test4> </test4>
</root>
EOT;

    $xmlDoc = new SimpleXMLElement($xml);

echo "Test1: \n";
var_dump($xmlDoc->test1);
echo "\n(" . (bool)$xmlDoc->test1 . ")";
echo "\n\n";

echo "Test2: \n";
var_dump($xmlDoc->test2);
echo "\n(" . (bool)$xmlDoc->test2 . ")";
echo "\n\n";

echo "Test3: \n";
var_dump($xmlDoc->test3);
echo "\n(" . (bool)$xmlDoc->test3 . ")";
echo "\n\n";

echo "Test4: \n";
var_dump($xmlDoc->test4);
echo "\n(" . (bool)$xmlDoc->test4 . ")";
echo "\n\n";

?>

The var_dumps for test1, test2, and test3 are identical, but the (bool) test gives a '1' for test1 and test2, and a '' for test3.


XML hatalarıya ilgilenmek

Belgeleri yüklerken XML hatalarını ele almak basit bir işlemdir. Belgeyi yüklerken XML hatalarını libxml işlevselliğini kullanarak bastırdıktan sonra hatalar tek tek ele alınabilir.

libxml_get_errors() işlevi tarafından döndürülen libXMLError nesnesi, hata ile ilgili ileti, satır ve sütun gibi özellikler içerir.

Örnek 1 - Hatalı bir XML dizgesinin yüklenmesi

<?php
libxml_use_internal_errors(true);
$sxe = simplexml_load_string("<?xml version='1.0'><broken><xml></broken>");
if ($sxe === false) {
echo "XML yüklemesi başarısız oldu\n";
foreach(libxml_get_errors() as $error) {
echo "\t", $error->message;
}
}

Yukarıdaki örneğin çıktısı:

XML yüklemesi başarısız oldu
    Blank needed here
    parsing XML declaration: '?>' expected
    Opening and ending tag mismatch: xml line 1 and broken
    Premature end of data in tag broken line 1

Ayrıca Bakınız

  • libxml_use_internal_errors()
  • libxml_get_errors()
  • LibXMLError

User Contributed Notes

1337 at netapp dot com 04-Sep-2015 02:21
If you need to process the content of your broken XML-doc you might find this interesting. It has blown past a few simple corruptions for me.
http://php.net/manual/en/class.domdocument.php#domdocument.props.recover
tuxedobob 11-Sep-2014 09:29
Now that the /e modifier is considered deprecated in preg_replace, you can use a negative lookahead to replace unescaped ampersands with &amp; without throwing warnings:

$str = preg_replace('/&(?!;{6})/', '&amp;', $str);

You probably should have been doing this before /e was deprecated, actually.
openbip at gmail dot com 25-Feb-2010 08:20
Note that "if (! $sxe) {" may give you a false-negative if the XML document was empty (e.g. "<root />").  In that case, $sxe will be:

object(SimpleXMLElement)#1 (0) {
}

which will evaluate to false, even though nothing technically went wrong.

Consider instead: "if ($sxe === false) {"
Jacob Tabak 15-Feb-2010 01:17
If you are trying to load an XML string with some escaped and some unescaped ampersands, you can pre-parse the string to ecsape the unescaped ampersands without modifying the already escaped ones:
<?php
$s = preg_replace('/&[^; ]{0,6}.?/e', "((substr('\\0',-1) == ';') ? '\\0' : '&amp;'.substr('\\0',1))", $s);
?>


SimpleXMLElement sınıfı

(PHP 5, PHP 7, PHP 8)

Giriş

XML belgesindeki bir elemanı temsil eder.

Sınıf Sözdizimi

class SimpleXMLElement implements Stringable, Countable, RecursiveIterator {
/* Yöntemler */
public __construct(
string $veri,
int $seçenekler = 0,
bool $veri_bir_url = false,
string $isimalanı_veya_önek = "",
bool $önek_var = false
)
public addAttribute(string $isim, string $değer, ?string $isimalanı = null): void
public addChild(string $isim, ?string $değer = null, ?string $isimalanı = null): ?SimpleXMLElement
public asXML(?string $dosya = null): string|bool
public attributes(?string $isimalanı_veya_önek = null, bool $önek_var = false): ?SimpleXMLElement
public children(?string $isimalanı_veya_önek = null, bool $önek_var = false): ?SimpleXMLElement
public count(): int
public current(): SimpleXMLElement
public getDocNamespaces(bool $ardışık = false, bool $kökten = true): array|false
public getName(): string
public getNamespaces(bool $ardışık = false): array
public getChildren(): ?SimpleXMLElement
public hasChildren(): bool
public key(): string
public next(): void
public registerXPathNamespace(string $önek, string $isimalanı): bool
public rewind(): void
public __toString(): string
public valid(): bool
public xpath(string $ifade): array|null|false
}

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | SimpleXMLElement artık Stringable, Countable ve RecursiveIterator arayüzünü gerçekliyor.

İçindekiler

  • SimpleXMLElement::addAttribute — XML elemanına bir öznitelik ekler
  • SimpleXMLElement::addChild — XML düğümüne bir çocuk düğüm ekler
  • SimpleXMLElement::asXML — Nesnenin içerdiği belgeyi iyi biçemli bir XML dizge olarak döndürür
  • SimpleXMLElement::attributes — Bir elemanın özniteliklerine erişim sağlar
  • SimpleXMLElement::children — Belirtilen düğümün çocuklarını bulur
  • SimpleXMLElement::__construct — Yeni bir SimpleXMLElement nesnesi oluşturur
  • SimpleXMLElement::count — Counts the children of an element
  • SimpleXMLElement::current — Returns the current element
  • SimpleXMLElement::getDocNamespaces — Belgede bildirilmiş isim alanlarını döndürür
  • SimpleXMLElement::getName — XML eleman ismi döndürür
  • SimpleXMLElement::getNamespaces — Belgede kullanılan isim alanlarını döndürür
  • SimpleXMLElement::getChildren — Returns the sub-elements of the current element
  • SimpleXMLElement::hasChildren — Checks whether the current element has sub elements
  • SimpleXMLElement::key — Return current key
  • SimpleXMLElement::next — Move to next element
  • SimpleXMLElement::registerXPathNamespace — Sonraki XPath ifadesi için bir önek/isim alanı bağlamı oluşturur
  • SimpleXMLElement::rewind — Rewind to the first element
  • SimpleXMLElement::saveXML — Takma Adı: SimpleXMLElement::asXML
  • SimpleXMLElement::__toString — Returns the string content
  • SimpleXMLElement::valid — Check whether the current element is valid
  • SimpleXMLElement::xpath — Bir XML veri üzerinde bir XPath sorgusu çalıştırır

User Contributed Notes

ohcc at 163 dot com 12-Jun-2023 03:28
You can remove SimpleXMLElement nodes using php's unset() language construct.

<?php
    $xml = <<<'EOT'
<users>
    <user>
        <name>orange</name>
        <sex>male</sex>
        <homepage>wuxiancheng.cn</homepage>
    </user>
    <user>
        <name>tangerine</name>
        <sex>male</sex>
        <homepage>51-n.com</homepage>
    </user>
</users>
EOT;
    $sxe = new SimpleXMLElement($xml);
    // This will remove the first user node
    unset($sxe->user[0]);
    // This will remove all user nodes
    unset($sxe->user);
    echo $sxe->asXML();
?>
Patanjali 15-Oct-2020 02:20
Further to rmirabelle's comment, to compare two SimpleXML elements, do the comparison between the objects returned by the dom_import_simplexml function, as per:

<?php
if(dom_import_simplexml($simplexml_element_1)===dom_import_simplexml($simplexml_element_2)){
  ...
 }
?>

You must ensure that both are SimpleXML elements before conversion to DOM objects.
guilhermeasn at yahoo dot com dot br 15-Jan-2020 08:09
Class with a method to transform array or object to XML:

class MakeXML {

    public static function array_obj_to_xml($data, \SimpleXMLElement &$xmlObj) {
        foreach((array) $data as $key => $value) {
            if(is_numeric($key)) {
                $key = "n" . $key;
            }
            if(is_array($value) or is_object($value)) {
                $subnode = $xmlObj->addChild($key);
                self::array_obj_to_xml($value, $subnode);
            } else {
                $xmlObj->addChild($key, htmlspecialchars($value));
            }
        }
    }

}

Example:

$object = new \stdClass();
$object->example = "Try this class";

$objxml = new \SimpleXMLElement('<API/>');
MakeXML::array_obj_to_xml($objxml, $objxml);
echo $objxml->asXML();
Budu 13-May-2018 07:17
public function crearXml(){
        $pruebaXml = <<<XML
<?xml version="1.0" encoding="UTF-8" ?>
<Root></Root>
XML;
$example = new SimpleXMLElement($pruebaXml); //Crea un nuevo objeto SimpleXMLElement
        $example->addAttribute('id', '1');//Añade un elemento hijo al nodo XML

        while( $nodo = $this->iteraciones->iterate()){
            $nodos = $example->addChild('Nodo');
            $nodos->addAttribute('id',$nodo->getId());
            $acierto = $nodos->addChild('nuevoHijo', $nodo->getX());
        }
        $miFichero = $example->asXML();//Retorna un string XML correcto basado en un elemento SimpleXML
        $miArchivo = fopen("xml/example.xml", "w+");//Abre un fichero o un URL
        fwrite($miArchivo, $miFichero);//Escritura archivo
    }
CameronXie 11-Dec-2017 10:48
Map xml to array (with attributes)

<?php declare(strict_types=1);

/**
 * @param SimpleXMLElement $xml
 * @return array
 */
function xmlToArray(SimpleXMLElement $xml): array
{
    $parser = function (SimpleXMLElement $xml, array $collection = []) use (&$parser) {
        $nodes = $xml->children();
        $attributes = $xml->attributes();

        if (0 !== count($attributes)) {
            foreach ($attributes as $attrName => $attrValue) {
                $collection['attributes'][$attrName] = strval($attrValue);
            }
        }

        if (0 === $nodes->count()) {
            $collection['value'] = strval($xml);
            return $collection;
        }

        foreach ($nodes as $nodeName => $nodeValue) {
            if (count($nodeValue->xpath('../' . $nodeName)) < 2) {
                $collection[$nodeName] = $parser($nodeValue);
                continue;
            }

            $collection[$nodeName][] = $parser($nodeValue);
        }

        return $collection;
    };

    return [
        $xml->getName() => $parser($xml)
    ];
}
kurtbr at gmail dot com 31-May-2017 02:58
Here is a helper class to convert a PHP array to XML
You would call it doing the following:

<?php
$xml = new Xml();
$xml-> generateXmlFromArray($array, 'entities', 'entity');
?>

<?php
class Xml
{
    public function getXmlFromArray($value, \SimpleXMLElement &$xmlElement, $entity, $starting = null)
    {

        $handleValue = function($value){
            if(is_string($value)){
                $value = htmlspecialchars($value);
            }
            return $value;
        };
        $addChild = function($name, $value, &$subNode = null)use(&$xmlElement, $handleValue, $entity){
            if(is_array($value)){
                if(!$subNode instanceof \SimpleXMLElement){
                    $currentKey = key($value);
                    $initialValue = null;
                    if(is_numeric($currentKey)){
                        if(!is_array($value[$currentKey])){
                            $initialValue = $value[$currentKey];
                            unset($value[$currentKey]);
                        }
                    }
                    $subNode = $xmlElement->addChild($name, $initialValue);
                }
                $this->getXmlFromArray($handleValue($value), $subNode, $name);
            } else {
                $xmlElement->addChild($name, $handleValue($value));
            }
        };

        if(is_array($value))
        {
            if(is_numeric(key($value))){
                $setSubNodePrimitiveValue = function($value)use(&$xmlElement, $entity, $handleValue){
                    $value = $handleValue($value);
                    $children = $xmlElement->children();
                    $children[] = $value;
                };
                foreach ($value as $item)
                {
                    if(!is_array($item)){
                        $setSubNodePrimitiveValue($item);
                    } else {
                        if($starting === true){
                            $addChild($entity, $item);
                        } else {
                            $addChild($entity, $item, $xmlElement);
                        }
                    }
                }
            } else {
                foreach ($value as $subEntity => $subEntityItem)
                {
                    $addChild($subEntity, $subEntityItem);
                }
            }
        } else {
            $xmlElement->addChild($entity, $handleValue($value));
        }
    }

    /**
     * @param array $array
     * @param string $openingTag
     * @param string $entity
     * @param string $nameSpace
     * @param bool $isPrefixed
     * @return \SimpleXMLElement
     */
    public function generateXmlFromArray(array $array, string $openingTag, string $entity, $nameSpace = '', $isPrefixed = false)
    {
        $xmlString = '<'.$openingTag.'></'.$openingTag.'>';
        $xml = new \SimpleXMLElement($xmlString, LIBXML_NOERROR, false, $nameSpace, $isPrefixed);
        $this->getXmlFromArray($array, $xml, $entity, true);
        return $xml;
    }

    /**
     * @param string $xml
     * @return bool
     */
    public function validateXml(string $xml)
    {
        $dom = new \DOMDocument();
        $dom->loadXML($xml);
        return $dom->validate();
    }

    public function loadXmlPathAsArray(string $xmlPath)
    {
        $xml   = simplexml_load_file($xmlPath);
        $array = json_decode(json_encode($xml), TRUE);
        return (array)$array;
    }

    /**
     * @param string $xmlString
     * @return array
     */
    public function loadXmlStringAsArray(string $xmlString)
    {
        $array = (array) @simplexml_load_string($xmlString);
        if(!$array){
            $array = (array) @json_decode($xmlString, true);
        } else{
            $array = (array)@json_decode(json_encode($array), true);
        }
        return $array;
    }

    /**
     * @param string $xmlString
     * @return \SimpleXMLElement
     */
    public function loadXmlString(string $xmlString)
    {
        return @simplexml_load_string($xmlString);
    }
}
?>
xxxargonxxx at gmail dot com 12-Jan-2017 06:54
See previous two parts to get better understanding of how these tricks works. Example shown here refers to part two. (Sorry, length limitation)

3. Tricks
<?php
        // The real profit is in combination of property and array accesses and unset($someNode->{0}) trick -
        // it allows you to remove whatever node you want:
        unset($rootNode->{'div'}[2]);   // remove node with * mark (text*)

        // Another trick is removing child node using child node object
        $newChildNode = $rootNode->addChild('div','text**');    // Create
        unset($newChildNode->{0});      // Remove, node removed from parent object too!

        echo "--2--\n".$rootNode->asXML();
        /*
        <xml_root>complex node
                <type_one>renewed node 1</type_one>
                <type_two>node 3</type_two>
                <type_one>node 2</type_one>
                <div>text</div>
                <div>text</div>
                <div>text</div>
        </xml_root>
        */
?>
xxxargonxxx at gmail dot com 12-Jan-2017 06:48
How to view, edit and remove elements.
Speaking in terms of CRUD style, there is no methods to read, edit and remove nodes. But it is possible.

2. How child nodes works (understanding)
<?php
        echo "Exercise 2 \n";

        $rootNode = new SimpleXMLElement('<xml_root>complex node</xml_root>');  // Create root node
        $childNode1 = $rootNode->addChild('type_one','node 1');                 // Create child node 1 with name 'type_one'
        $childNode2 = new SimpleXMLElement('<type_one>node 2</type_one>');      // Create child node 2 with name 'type_one'
        $childNode3 = new SimpleXMLElement('<type_two>node 3</type_two>');      // Create child node 3 with name 'type_two' (different!)
        // Now $rootNode has only one children because other child nodes was created separately
        // Lets paste child node to root node
        echo $childNode1;

        $rootNode->{'type_one'} = $childNode2;      // Note that the property name is 'type_one'
        $rootNode->{'type_two'} = $childNode3;      // Note that the property name is 'type_two'
        var_dump($rootNode);
        /*
        object(SimpleXMLElement)#68 (2) {
            ["type_one"]=>
            string(6) "node 2"
            ["type_two"]=>
            string(6) "node 3"
        }
        */
        // We see that "node 1" disappeared, that's because assigning one node to some property of another in not a magic.
        // To be clear, the real calls looks like:
        $rootNode->{'type_one'}[0] = (string) $childNode2;
        $rootNode->{'type_two'}[0] = (string) $childNode3;
        // Explanation:
        // A: (string)
        // It means that you can't assign node itself, only its string representation because assigned node will be casted to string anyway.
        // It also means that tag name of assigned node doesn't matter - its name will be whatever name you specified in {} braces.
        // B: [0]
        // The array access operator ([0]) means that each tag name (type_one and type_two) has its own collection with integer indexes.
        // If you want to add another tag with same name, you should increment index:
        $rootNode->{'type_one'}[1] = $childNode2;
        var_dump($rootNode);
        /*
        object(SimpleXMLElement)#68 (2) {
            ["type_one"]=>
            array(2) {
                [0]=>
                string(6) "node 2"
                [1]=>
                string(6) "node 2"
            }
            ["type_two"]=>
            string(6) "node 3"
        }
        */

        // Note 1. The value of $childNode1 has been changed to "node 1" - that's because the child node, returned from addChild() method
        // is referenced with parent node. If you change its content in one side - it changes in other side too:
        $childNode1->{0} = 'renewed node 1';
        // But it won't happen with $childNode2 - it is single and has no reference with parent node:
        $childNode2->{0} = 'renewed node 2';
        var_dump($rootNode);
        /*
        object(SimpleXMLElement)#68 (2) {
            ["type_one"]=>
            array(2) {
                [0]=>
                string(14) "renewed node 1"
                [1]=>
                string(6) "node 2"
            }
            ["type_two"]=>
            string(6) "node 3"
        }
        */

        // Note 2. When you added child nodes, the parent node's string content is still alive, var_dump doesn't show it,
        // but you can see through echoing XML:
        echo "--1--\n".$rootNode->asXML();
        /*
        <xml_root>complex node <--------- here!
                <type_one>renewed node 1</type_one>
                <type_two>node 3</type_two>
                <type_one>node 2</type_one>
        </xml_root>
        */
        // See 'complex node'? Bad news that you can't change string content anymore, if we try to call `$rootNode->{0} = 'something'` -
        // it overrides all content - both string and child nodes! I don't know how to write to string content only in that case.
        // But still you can read string content and remove entire node as described above.

        // So the following statements gives same result, except $result variable value:
        $someNode = new SimpleXMLElement('<div>text</div>');
        $result = $rootNode->addChild('div','text');                    // $result is SimpleXMLElement
        $result = $rootNode->addChild($someNode->getName(),$someNode);  // $result is SimpleXMLElement
        $result = $rootNode->{'div'}[] = 'text*';                       // $result is string 'text*'
        $result = $rootNode->{$someNode->getName()}[] = $someNode;      // $result is string 'text'
?>
xxxargonxxx at gmail dot com 12-Jan-2017 06:45
How to view, edit and remove elements.
Speaking in terms of CRUD style, there is no methods to read, edit and remove nodes. But it is possible.

1. How to work with single node and its value (basics)
<?php
        echo "Exercise 1 \n";
        // Create
        $someNode = new SimpleXMLElement('<xml_root>simple node</xml_root>');
        // Read
        echo $someNode->{0} ."\n";      // Echoes "simple node"
        echo $someNode ."\n";           // Echoes "simple node", might be used for read case too
        // Edit
        $someNode->{0} = 'new value';
        echo $someNode->{0} ."\n";      // Echoes "new value", value is changed!
        // Remove
        unset($someNode->{0});

        // Don't touch this node anymore otherwise it will throw a warning:
        // "Warning:  SimpleXMLElement::asXML(): Node no longer exists in <...> on line <...>"
        // echo $someNode ."\n";      // Throws the warning

        // Recap: property access to zero property ($someNode->{0}) is the way to read and edit string content of the node AND
        // to remove the node itself
?>
frame at dynamiccreated dot de 14-Jun-2013 01:36
Important note I miss here in the documentation:

SimpleXML supports Array/Iteration-Methods. Therefore it is possible to

add attributes
edit attributes
remove attributes

add nodes
edit nodes
remove nodes

This is the reason why SimpleXML provides only add-methods not deleting- or editing-methods. We also need this methods because SimpleXML acts as a normal class and
new member will not converted to a new node.

Deleting a node seems not to be possible within a foreach-loop. The reason is simple. To do that we need a valid key, but the Iterator only gives us a "understandable feedback" on which node we are working on: the tag name.

So this will not work:

<?php
foreach($doc->seg as $key => $seg)
{
    if((string)$seg['id'] === 'whatever')
    {
        unset($seg); // only clears local copy
        unset($seg[$key]); // wrong index "seg"
    }
}
?>

But this, eg. will work:
<?php
unset($doc->seg[2]);
?>

In case of doubt always do a print_r/var_dump(). It nicely shows the real linked indexes.
Yukull 15-Feb-2013 01:59
xml to object conversion function :
<?php
/**
    @param:
        $xml: SimpleXMLElement
        $force: set to true to always create 'text', 'attribute', and 'children' even if empty
    @return
        object with attributs:
            (string) name: XML tag name
            (string) text: text content of the attribut name
            (array) attributes: array witch keys are attribute key and values are attribute value
            (array) children: array of objects made with xml2obj() on each child
**/
function xml2obj($xml,$force = false){

    $obj = new StdClass();

    $obj->name = $xml->getName();

    $text = trim((string)$xml);
    $attributes = array();
    $children = array();

    foreach($xml->attributes() as $k => $v){
        $attributes[$k]  = (string)$v;
    }

    foreach($xml->children() as $k => $v){
        $children[] = xml2obj($v,$force);
    }

    if($force or $text !== '')
        $obj->text = $text;

    if($force or count($attributes) > 0)
        $obj->attributes = $attributes;

    if($force or count($children) > 0)
        $obj->children = $children;

    return $obj;
}
?>
heaver 31-May-2012 07:33
XML to JSON conversion without '@attributes'
<?php
function XML2JSON($xml) {

        function normalizeSimpleXML($obj, &$result) {
            $data = $obj;
            if (is_object($data)) {
                $data = get_object_vars($data);
            }
            if (is_array($data)) {
                foreach ($data as $key => $value) {
                    $res = null;
                    normalizeSimpleXML($value, $res);
                    if (($key == '@attributes') && ($key)) {
                        $result = $res;
                    } else {
                        $result[$key] = $res;
                    }
                }
            } else {
                $result = $data;
            }
        }
        normalizeSimpleXML(simplexml_load_string($xml), $result);
        return json_encode($result);
    }
?>
demian dot katz at villanova dot edu 29-Mar-2012 05:50
Here is a more namespace-aware version of the earlier function for attaching one SimpleXMLElement to another.  I'm sure it could still be further improved (right now it generates some redundant xmlns definitions), but it seems to be working well enough for my purposes so far.

function SimpleXMLElement_append($parent, $child)
{
    // get all namespaces for document
    $namespaces = $child->getNamespaces(true);

    // check if there is a default namespace for the current node
    $currentNs = $child->getNamespaces();
    $defaultNs = count($currentNs) > 0 ? current($currentNs) : null;
    $prefix = (count($currentNs) > 0) ? current(array_keys($currentNs)) : '';
    $childName = strlen($prefix) > 1
        ? $prefix . ':' . $child->getName() : $child->getName();

    // check if the value is string value / data
    if (trim((string) $child) == '') {
        $element = $parent->addChild($childName, null, $defaultNs);
    } else {
        $element = $parent->addChild(
            $childName, htmlspecialchars((string)$child), $defaultNs
        );
    }

    foreach ($child->attributes() as $attKey => $attValue) {
        $element->addAttribute($attKey, $attValue);
    }
    foreach ($namespaces as $nskey => $nsurl) {
        foreach ($child->attributes($nsurl) as $attKey => $attValue) {
            $element->addAttribute($nskey . ':' . $attKey, $attValue, $nsurl);
        }
    }

    // add children -- try with namespaces first, but default to all children
    // if no namespaced children are found.
    $children = 0;
    foreach ($namespaces as $nskey => $nsurl) {
        foreach ($child->children($nsurl) as $currChild) {
            SimpleXMLElement_append($element, $currChild);
            $children++;
        }
    }
    if ($children == 0) {
        foreach ($child->children() as $currChild) {
            SimpleXMLElement_append($element, $currChild);
        }
    }
}
saganmarketing.com 12-Mar-2012 12:27
Parsing an invalid XML string through SimpleXML causes the script to crash completely (usually) therefore it is best to make sure the XML is valid before parsing with something like this:

// Must be tested with ===, as in if(isXML($xml) === true){}
// Returns the error message on improper XML
function isXML($xml){
    libxml_use_internal_errors(true);

    $doc = new DOMDocument('1.0', 'utf-8');
    $doc->loadXML($xml);

    $errors = libxml_get_errors();

    if(empty($errors)){
        return true;
    }

    $error = $errors[0];
    if($error->level < 3){
        return true;
    }

    $explodedxml = explode("r", $xml);
    $badxml = $explodedxml[($error->line)-1];

    $message = $error->message . ' at line ' . $error->line . '. Bad XML: ' . htmlentities($badxml);
    return $message;
}
Anonymous 14-Nov-2011 12:34
Warning to anyone trying to parse XML with a key name that includes a hyphen ie.)
<subscribe>
    <callback-url>example url</callback-url>
</subscribe>

In order to access the callback-url you will need to do something like the following:
<?php
$xml = simplexml_load_string($input);
$callback = $xml->{"callback-url"};
?>
If you attempt to do it without the curly braces and quotes you will find out that you are returned a 0 instead of what you want.
juanfhj at gmail dot spam dot me dot not dot com 13-Aug-2011 11:01
To access the underlying element as a string, it's necessary to make the cast $x = (string)$my_xml_element.
dans at dansheps dot com 22-Apr-2011 12:06
I created a little function to parse the simple XML into a structure which is easier to iterate(I believe anyways) than the simpleXML node structure.

<?php
function parseSimpleXML($xmldata)
    {
        $childNames = array();
        $children = array();

        if( $xmldata->count() !== 0 )
        {
            foreach( $xmldata->children() AS $child )
            {
                $name = $child->getName();

                if( !isset($childNames[$name]) )
                {
                    $childNames[$name] = 0;
                }

                $childNames[$name]++;
                $children[$name][] = $this->parseSimpleXML($child);
            }
        }

        $returndata = new XMLNode();
        if( $xmldata->attributes()->count() > 0 )
        {
            $returndata->{'@attributes'} = new XMLAttribute();
            foreach( $xmldata->attributes() AS $name => $attrib )
            {
                $returndata->{'@attributes'}->{$name} = (string)$attrib;
            }
        }

        if( count($childNames) > 0 )
        {
            foreach( $childNames AS $name => $count )
            {
                if( $count === 1 )
                {
                    $returndata->{$name} = $children[$name][0];
                }
                else
                {
                    $returndata->{$name} = new XMLMultiNode();
                    $counter = 0;
                    foreach( $children[$name] AS $data )
                    {
                        $returndata->{$name}->{$counter} = $data;
                        $counter++;
                    }
                }
            }
        }
        else
        {
            if( (string)$xmldata !== '' )
            {
                $returndata->{'@innerXML'} = (string)$xmldata;
            }
        }
        return $returndata;
    }
?>
ms dot n at 163 dot com 11-Feb-2011 10:50
Adds a new function for SimpleXMLElement class, in order to output HTML code.

<?php
class CeiXML extends SimpleXMLElement{
public function asHTML(){
$ele=dom_import_simplexml($this);
$dom = new DOMDocument('1.0', 'utf-8');
$element=$dom->importNode($ele,true);
$dom->appendChild($element);
return $dom->saveHTML();
}
}
?>
Pavel Musil pavel dot musil at gmail dot com 10-Feb-2011 03:18
Simple recursive function to append XML object into SimpleXMLElement node:

<?php
// root: parent element - SimpleXMLElement instance
// append: XML object from simplexml_load_string

function xml_join($root, $append) {
    if ($append) {
        if (strlen(trim((string) $append))==0) {
            $xml = $root->addChild($append->getName());
            foreach($append->children() as $child) {
                xml_join($xml, $child);
            }
        } else {
            $xml = $root->addChild($append->getName(), (string) $append);
        }
        foreach($append->attributes() as $n => $v) {
            $xml->addAttribute($n, $v);
        }
    }
}

$xml_append = simplexml_load_string('<data><items><item id="1">value</item></items></data>');
$xml_root = new SimpleXMLElement('<result></result>');

$cxml = $xml_root->addChild('clone');
xml_join($cxml, $xml_append->items->item[0]);

print $xml_root->asXML();
?>

Result:
<?xml version="1.0"?>
<result>
    <clone>
        <item id="1">
            value
        </item>
    </clone>
</result>
rmirabelle 08-Nov-2010 09:42
To further previous comments and drive the point home:

What makes SimpleXMLElement tricky to work with is that it feels and behaves like an object, but is actually a system RESOURCE,  (specifically a libxml resource).

That's why you can't store a SimpleXMLElement to $_SESSION or perform straight comparison operations on node values without first casting them to some type of object.  $_SESSION expects to store 'an object' and comparison operators expect to compare 2 'objects' and SimpleXMLElements are not objects.

When you echo or print a node's value, PHP converts the value (a resource) into a string object for you.  It's a time saver for sure, but can fool you into thinking that your SimpleXMLElement is an object.

Hope this helps clarify
joshduck at gmail dot com 28-Sep-2010 05:00
You should cast elements to a float (or even string) if you plan on using them in addition, multiplication, etc. If you don't then PHP will incorrectly treat the node values as an integer.

<?php
$obj = new SimpleXMLElement('<root>
    <a>1.9</a>
    <b>1.9</b>
</root>');

var_dump($obj->a + $obj->b);
var_dump((float)$obj->a + (float)$obj->b);
var_dump((string)$obj->a + (string)$obj->b);
?>

The first line gives: int(2)
The second and third give the expected result: float(3.8)
francs at seznam dot cz 23-Sep-2010 05:28
Be aware when you trying to cast some attribute to boolean.

(boolean)$xml->attributes()->someAtt;

returns TRUE if attribute is array([0] => 0);

use (boolean)(int) instead.
kweij at lsg dot nl 26-Jul-2010 04:47
I'm using SimpleXML for, ofcourse, it's simplicity, however I did wanted to manipulate the xml and combining one SimpleXMLElement with any other, so I wrote this function to add a SimpleXMLElement-child.

<?php
function SimpleXMLElement_append($key, $value) {
    // check class
    if ((get_class($key) == 'SimpleXMLElement') && (get_class($value) == 'SimpleXMLElement')) {
        // check if the value is string value / data
        if (trim((string) $value) == '') {
            // add element and attributes
            $element = $key->addChild($value->getName());
            foreach ($value->attributes() as $attKey => $attValue) {
                $element->addAttribute($attKey, $attValue);
            }
            // add children
            foreach ($value->children() as $child) {
                SimpleXMLElement_append($element, $child);
            }
        } else {
            // set the value of this item
            $element = $key->addChild($value->getName(), trim((string) $value));
        }
    } else {
        // throw an error
        throw new Exception('Wrong type of input parameters, expected SimpleXMLElement');
    }
}
?>

I'd recommend SimpleXMLElement to extend it's addChild() function with the functionalitity above.
cherubangel at gmail dot com 02-Jul-2010 04:28
Note that changing attributes from within a foreach loop, especially namespaced attributes, can be very tricky.

For example, when trying to change the value of an existing xlink:href attribute:
<?php
foreach($xmlelement -> attributes('xlink', true) as $attribute => $attribvalue){
    $attribvalue[0] = 'value'; // Throws an error
    $attribvalue = 'value'; // Does not change your XML
    $xmlelement -> addAttribute($attribute, 'value', 'http://www.w3.org/1999/xlink'); // Adds an attribute, does not change existing one.
    $xmlelement[$attribute] = 'value'; // Adds an attribute, does not change existing one.
}
?>

Instead, you should access the array returned by the attributes() function directly, like this:
<?php
    $xmlelement -> attributes('xlink', true) -> href = 'value'; // Works!
?>
php at keith tyler dot com 19-Feb-2010 06:23
The root node element of your input XML string is not retrievable as a property.

<?php
$xml="<foo>bar</foo>";
$sxe=new SimpleXMLElement($xml);
print $sxe->foo;
?>

prints nothing. You can only get to the root element via the array index method ($sxe[0]).

Also, you may not have two (or more) root elements -- that is apparently not well-formed XML.

<?php
$xml="<foo/><bar/>";
$sxe=new SimpleXMLElement($xml);
?>

throws an exception. A Q&D is to append an arbitraty root node structure to both ends of the input:

<?php
$xml="<foo/><bar/>";
$sxe=new SimpleXMLElement("<z>".$xml."</z>");
?>

Doing this also solves the above problem of root node property accessibility. (It may not work if your XML string includes a declaration.)
triplepoint at gmail dot com 19-Dec-2009 04:19
It's occasionally useful to add an XML processing instruction to a SimpleXMLElement (treating it as if it were a full document).
<?php
class SimpleXMLElement_Plus extends SimpleXMLElement {

    public function addProcessingInstruction( $name, $value )
    {
        // Create a DomElement from this simpleXML object
        $dom_sxe = dom_import_simplexml($this);

        // Create a handle to the owner doc of this xml
        $dom_parent = $dom_sxe->ownerDocument;

        // Find the topmost element of the domDocument
        $xpath = new DOMXPath($dom_parent);
        $first_element = $xpath->evaluate('/*[1]')->item(0);

        // Add the processing instruction before the topmost element
        $pi = $dom_parent->createProcessingInstruction($name, $value);
        $dom_parent->insertBefore($pi, $first_element);
    }
}
?>

For example, if you had a simpleXMLElement_Plus object made out of the xml fragment:
<xml><content /></xml>

And you needed the output to be:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="xsl/xsl.xsl"?>
<xml><content/></xml>

you could do (using the class above):
<?php
$xml = new SimpleXMLElement_Plus('<xml><content /></xml>');
$xml->addProcessingInstruction('xml-stylesheet', 'type="text/xsl" href="xsl/xsl.xsl"');
echo $xml->asXML();
?>
ivandosreisandrade at gmail dot com 19-Nov-2009 06:55
Hello,

here goes my contribution for those whom are struggling to understand how SimpleXMLElement works.

After some time trying to figure out how this works, I've came up to this small example:

<?php
    $xmlstr = "<?xml version='1.0' ?>\n".
              // optionally you can specify a xml-stylesheet for presenting the results. just uncoment the following line and change the stylesheet name.
              /* "<?xml-stylesheet type='text/xsl' href='xml_style.xsl' ?>\n". */
              "<book></book>";

    // create the SimpleXMLElement object with an empty <book> element
    $xml = new SimpleXMLElement($xmlstr);

    // add some child nodes
    $xml->addChild("title", "Title of my book");
    $xml->addChild("abstract", "My book is about learning to work with SimpleXMLElement");

    // add some more child nodes
    $chapter1 = $xml->addChild("chapter_1");
    // add an attribute to child chapter_1
    $chapter1->addAttribute("chapter_title", "Introduction to my book");

    $chapter2 = $xml->addChild("chapter_2");
    $chapter2->addAttribute("chapter_title", "Development of my book");

    $chapter3 = $xml->addChild("chapter_3");
    $chapter3->addAttribute("chapter_title", "Another chapter of my book");

    $conclusion = $xml->addChild("conclusion", "The ending of my book");

    // insert the header to tell the browser how to read the document
    header("Content-type: text/xml");
    // print the SimpleXMLElement as a XML well-formed string
    echo $xml->asXML();
?>

With this script you can just copy-paste and try to understand how it works.
I hope it can help somebody :)
brett at brettbrewer dot com 27-Oct-2009 04:53
Figuring out how to access the properties of a SimpleXmlElement object was a little tricky for me. In particular, it took a while to discover that I needed to cast my SimpleXmlElement properties to be of type "string" to print them or do comparisons on them. For instance, assuming you already have a string of xml in $xmlstr...

<?php
$sxml= new SimpleXmlElement($xmlstr);

if ((string) $sxml->property== "somevalue") {
    echo (string) $sxml->property;
}
?>
The properties of a SimpleXmlElement object are objects themselves, so you need to put "(string)" before them, which casts their values to a string instead of an object. I assume if you were doing a numeric comparison you'd want to cast to an (int) or something numeric instead.


XML elemanına bir öznitelik ekler

  • « SimpleXMLElement
  • SimpleXMLElement::addChild »
  • PHP Manual
  • SimpleXMLElement
  • XML elemanına bir öznitelik ekler

SimpleXMLElement::addAttribute

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

SimpleXMLElement::addAttribute — XML elemanına bir öznitelik ekler

Açıklama

public SimpleXMLElement::addAttribute(string $isim, string $değer, ?string $isimalanı = null): void

SimpleXMLElement düğümüne bir öznitelik ekler.

Bağımsız Değişkenler

isim

Eklenecek özniteliğin ismi.

değer

Özniteliğin değeri.

isimalanı

Belirtilmişse, özniteliğin ait olduğu isim alanı.

Dönen Değerler

Hiçbir değer dönmez.

Örnekler

Bilginize:

Aşağıdaki örnekler, temel kullanım kılavuzunun ilk örneğinde bulunan XML dizesine atıfta bulunan example.php betiğini içerebilir.

Örnek 1 - Bir SimpleXMLElement nesnesine öznitelikler ve çocuk elemanlar eklemek

<?php

include 'example.php';

$sxe = new SimpleXMLElement($xmlstr);
$sxe->addAttribute('type', 'documentary');

$movie = $sxe->addChild('movie');
$movie->addChild('title', 'PHP2: More Parser Stories');
$movie->addChild('plot', 'This is all about the people who make it work.');

$characters = $movie->addChild('characters');
$character = $characters->addChild('character');
$character->addChild('name', 'Mr. Parser');
$character->addChild('actor', 'John Doe');

$rating = $movie->addChild('rating', '5');
$rating->addAttribute('type', 'stars');

echo $sxe->asXML();

?>

Yukarıdaki örnek şuna benzer bir çıktı üretir:

<?xml version="1.0" standalone="yes"?>
<movies type="documentary">
 <movie>
  <title>PHP: Behind the Parser</title>
  <characters>
   <character>
    <name>Ms. Coder</name>
    <actor>Onlivia Actora</actor>
   </character>
   <character>
    <name>Mr. Coder</name>
    <actor>El Act&#xD3;r</actor>
   </character>
  </characters>
  <plot>
   So, this language. It's like, a programming language. Or is it a
   scripting language? All is revealed in this thrilling horror spoof
   of a documentary.
  </plot>
  <great-lines>
   <line>PHP solves all my web problems</line>
  </great-lines>
  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
 </movie>
 <movie>
  <title>PHP2: More Parser Stories</title>
  <plot>This is all about the people who make it work.</plot>
  <characters>
   <character>
    <name>Mr. Parser</name>
    <actor>John Doe</actor>
   </character>
  </characters>
  <rating type="stars">5</rating>
 </movie>
</movies>

Ayrıca Bakınız

  • SimpleXMLElement::addChild() - XML düğümüne bir çocuk düğüm ekler
  • Temel SimpleXML kullanımı

User Contributed Notes

caffeinatedbits 09-Dec-2022 10:50
Just found another gem. Need to remove an attribute? That's simple too!

<?php

$xml = <<<EOF
<?xml version="1.0" encoding="utf-8" ?>
<Animals>
    <Dog breed="chihuahua"/>
</Animals>
EOF;

$animals = new SimpleXMLElement($xml);

echo $animals->Dog->asXML();
// <Dog breed="chihuahua"/>

unset($animals->Dog['breed']);

echo $animals->Dog->asXML();
// <Dog/>

?>
caffeinatedbits 09-Dec-2022 10:26
I needed a way to update an attribute, but I could not find any documented way to do this.

After much experimentation, here's my findings of what works - the answer was so simple it took me 8 tries to figure it out :-)

Given the following example:

<?php

$xml = <<<EOF
<?xml version="1.0" encoding="utf-8" ?>
<Animals>
    <Dog/>
</Animals>
EOF;

$animals = new SimpleXMLElement($xml);

echo $animals->Dog->asXML();
// <Dog/>

?>

Test #6 - maybe directly modifying the attributes() Iterator like an array will secretly call __set() magic method?

TL;DR: yep

<?php

...

$animals->Dog->addAttribute('breed', "chihuahua");

echo $animals->Dog->asXML();
// <Dog breed="chihuahua">

$dogAttrs = $animals->Dog->attributes();
// object(SimpleXMLElement)#4 (1) {
// ["@attributes"]=>
//   array(1) {
//     ["breed"]=>
//     string(9) "chihuahua"
//   }
// }

$dogAttrs['breed'] = "poodle";
// works!

echo $animals->Dog->asXML();
// <Dog breed="poodle">

?>

Test #7 - maybe I don't even need to call attributes() at all?

TL;DR: I sure don't!

<?php

...

$animals->Dog->addAttribute('breed', "chihuahua");

echo $animals->Dog->asXML();
// <Dog breed="chihuahua">

$animals->Dog['breed'] = "poodle";
// works!

echo $animals->Dog->asXML();
// <Dog breed="poodle">

?>

Test #8 - Maybe I never needed to call addAttribute() in the first place?

TL;DR: nope, I can skip that altogether!

<?php

...

$animals->Dog['breed'] = "chihuahua";
// works!

echo $animals->Dog->asXML();
// <Dog breed="chihuahua">

$animals->Dog['breed'] = "poodle";
// works!

echo $animals->Dog->asXML();
// <Dog breed="poodle">

?>

FYI: I also submitted another separate note with what does NOT work just in case you, like me, are curious and tempted to try another way.
caffeinatedbits 09-Dec-2022 10:25
I needed a way to update an attribute, but I could not find any documented way to do this.

TL;DR: It's not only possible, but unbelievably simple. See the other note I submitted for what actually works (sorry, I could not fit it all in a single note due to the 4095 character limit).

After much experimentation, here's my findings of what does NOT work; hopefully, it saves you the time and frustration it cost me.

Given the following example:

<?php

$xml = <<<EOF
<?xml version="1.0" encoding="utf-8" ?>
<Animals>
    <Dog/>
</Animals>
EOF;

$animals = new SimpleXMLElement($xml);

echo $animals->Dog->asXML();
// <Dog/>

?>

Test #1 - attempt to call addAttribute() twice

TL;DR: PHP Warning: SimpleXMLElement::addAttribute(): Attribute already exists

<?php

...

$animals->Dog->addAttribute('breed', "chihuahua");

echo $animals->Dog->asXML();
// <Dog breed="chihuahua"/>

$animals->Dog->addAttribute('breed', "poodle");
// PHP Warning: SimpleXMLElement::addAttribute(): Attribute already exists

echo $animals->Dog->asXML();
// <Dog breed="chihuahua"/>

?>

Test #2 - attempt to iterate attributes() (an Iterator) by reference

TL;DR: An iterator cannot be used with foreach by reference

<?php

...

$animals->Dog->addAttribute('breed', "chihuahua");

echo $animals->Dog->asXML();
// <Dog breed="chihuahua">

try {
    foreach ($animals->Dog->attributes() as $attr => &$value) {
        if ("breed" === $attr) {
            $value = "poodle";
        }
    }
} catch (Throwable $e) {
    echo $e->getMessage();
    // An iterator cannot be used with foreach by reference
}

echo $animals->Dog->asXML();
// <Dog breed="chihuahua">

?>

Test #3 - attempt to re-parse child element and then call addAttribute() on the newly parsed element, as suggested in a note I found here

TL;DR: PHP Warning: SimpleXMLElement::addAttribute(): Attribute already exists

<?php

...

$animals->Dog->addAttribute('breed', "chihuahua");

echo $animals->Dog->asXML();
// <Dog breed="chihuahua">

$animals->Dog = new SimpleXMLElement($animals->asXML());

$animals->Dog->addAttribute('breed', "poodle");
// PHP Warning: SimpleXMLElement::addAttribute(): Attribute already exists

echo $animals->Dog->asXML();
// <Dog breed="chihuahua">

?>

Test #4 - attempt to modify @attributes array element

TL;DR: PHP Notice:  Indirect modification of overloaded element of SimpleXMLElement has no effect

<?php

...

$animals->Dog->addAttribute('breed', "chihuahua");

echo $animals->Dog->asXML();
// <Dog breed="chihuahua">

$dogAttrs = $animals->Dog->attributes();
// object(SimpleXMLElement)#4 (1) {
// ["@attributes"]=>
//   array(1) {
//     ["breed"]=>
//     string(9) "chihuahua"
//   }
// }

$dogAttrs['@attributes']['breed'] = "poodle";
// PHP Notice:  Indirect modification of overloaded element of SimpleXMLElement has no effect

echo $animals->Dog->asXML();
// <Dog breed="chihuahua">

?>

Test #5 - cast attributes() to array and set value of 'breed' element

TL;DR: does not update value in original object

<?php

...

$animals->Dog->addAttribute('breed', "chihuahua");

echo $animals->Dog->asXML();
// <Dog breed="chihuahua">

$dogAttrs = (array) $animals->Dog->attributes();
// array(1) {
//     ["@attributes"]=>
//   array(1) {
//         ["breed"]=>
//     string(9) "chihuahua"
//   }
// }

$dogAttrs['@attributes']['breed'] = "poodle";

echo $animals->Dog->asXML();
// <Dog breed="chihuahua">

?>
Patanjali 10-Apr-2016 10:37
You cannot use this to update an existing attribute's value.

Instead, get a DOM version of the SimpleXMLElement and use setAttribute, as per:

$XML = '<element a="aa">Text</element>';
$snode = new simple_xml_element($XML);

$dnode = dom_import_simplexml($snode);
$dnode->setAttribute('a', 'bb');

Resulting XML for the node is:
<element a="bb">Text</element>
p.servus 18-Nov-2011 05:42
If you need an Namespace, you must write a Prefix of the Namespace + the Name of the Attribute ("prefix:name") as the first parameter AND the uri as the third one. (I don't know why?!)

Example code:
<?php
$xml = new SimpleXMLElement("<packagedElement></packagedElement>");
$xml->addAttribute("xmi:type", "uml:Class", "http://schema.omg.org/spec/XMI/2.1");
echo $xml->asXml();
?>

Output:
<packagedElement xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmi:type="uml:Class"></packagedElement>
sarlak 07-May-2011 07:49
You can access a node child with his name this way :

<?php
$root = new SimpleXMLElement($filePath);
echo $root->nodeName->attributes;

// It works recursivly so this will work too
echo $root->nodeName->subNodeName->attributes();
?>

But if you want to ADD an attribute to a children you MUST use the children() method to access and modfiy it or it will modify the parent's attributes.

<?php
// Add a subnode
$element->nodeName->addChild('subNodeName', "whatever you want");

// Get the pos in the childrens of the parent node
$lastNodePos = $element->nodeName->count()-1;

// Get the parents node childrens
$nodeChildrens = $element->nodeName->children();

// Add an attribute to the last created
$nodeChildrens[$lastNodePos]->addAttribute('attributeName', "The attribute value);
?>
booleer at yahoo dot it 16-Dec-2010 09:44
If the attribute already exists, addAttribute does nothing.

example:
<?php
$xml_string = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<root>
   <item id="foo">
<root>
XML;

$xml = simplexml_load_string($xml_string);
$xml->item->addAttribute('id', 'bar');
echo $xml->asXML();
?>

The above examples will output:
<?xml version="1.0" encoding="UTF-8"?>
<root>
   <item id="foo">
<root>


XML düğümüne bir çocuk düğüm ekler

  • « SimpleXMLElement::addAttribute
  • SimpleXMLElement::asXML »
  • PHP Manual
  • SimpleXMLElement
  • XML düğümüne bir çocuk düğüm ekler

SimpleXMLElement::addChild

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

SimpleXMLElement::addChild — XML düğümüne bir çocuk düğüm ekler

Açıklama

public SimpleXMLElement::addChild(string $isim, ?string $değer = null, ?string $isimalanı = null): ?SimpleXMLElement

XML düğümüne bir çocuk düğüm ekleyip çocuk elemanı bir SimpleXMLElement nesnesi olarak döndürür.

Bağımsız Değişkenler

isim

Eklenecek çocuk elemanın ismi.

değer

Belirtilmişse, çocuk elemanın değeri.

isimalanı

Belirtilmişse çocuk elemanın ait olduğu isim alanı.

Dönen Değerler

Eklenen çocuk elemanı bir SimpleXMLElement nesnesi olarak döndürür. Başarısızlık durumunda null döner.

Örnekler

Bilginize:

Aşağıdaki örnekler, temel kullanım kılavuzunun ilk örneğinde bulunan XML dizesine atıfta bulunan example.php betiğini içerebilir.

Örnek 1 - Bir SimpleXMLElement nesnesine öznitelikleriyle çocuk elemanlar eklemek

<?php

include 'example.php';

$sxe = new SimpleXMLElement($xmlstr);
$sxe->addAttribute('type', 'documentary');

$movie = $sxe->addChild('movie');
$movie->addChild('title', 'PHP2: More Parser Stories');
$movie->addChild('plot', 'This is all about the people who make it work.');

$characters = $movie->addChild('characters');
$character = $characters->addChild('character');
$character->addChild('name', 'Mr. Parser');
$character->addChild('actor', 'John Doe');

$rating = $movie->addChild('rating', '5');
$rating->addAttribute('type', 'stars');

echo $sxe->asXML();

?>

Yukarıdaki örnek şuna benzer bir çıktı üretir:

<?xml version="1.0" standalone="yes"?>
<movies type="documentary">
 <movie>
  <title>PHP: Behind the Parser</title>
  <characters>
   <character>
    <name>Ms. Coder</name>
    <actor>Onlivia Actora</actor>
   </character>
   <character>
    <name>Mr. Coder</name>
    <actor>El Act&#xD3;r</actor>
   </character>
  </characters>
  <plot>
   So, this language. It's like, a programming language. Or is it a
   scripting language? All is revealed in this thrilling horror spoof
   of a documentary.
  </plot>
  <great-lines>
   <line>PHP solves all my web problems</line>
  </great-lines>
  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
 </movie>
 <movie>
  <title>PHP2: More Parser Stories</title>
  <plot>This is all about the people who make it work.</plot>
  <characters>
   <character>
    <name>Mr. Parser</name>
    <actor>John Doe</actor>
   </character>
  </characters>
  <rating type="stars">5</rating>
 </movie>
</movies>

Ayrıca Bakınız

  • SimpleXMLElement::addAttribute() - XML elemanına bir öznitelik ekler
  • Temel SimpleXML kullanımı

User Contributed Notes

fluxlicious at gmail dot com 23-Jan-2023 11:18
The class below allows you to write CDATA and to add additional attributes.

<?php
class SimpleXMLElementExtended extends \SimpleXMLElement
{
    public function addChildWithCData($name, $value)
    {
        $child = parent::addChild($name);
        $element = dom_import_simplexml($child);
        $docOwner = $element->ownerDocument;
        $element->appendChild($docOwner->createCDATASection($value));
        return $child;
    }
}
?>

Example:
<?php
        $xml = new SimpleXMLElementExtended('<xml></xml>');
        $content = $xml->addChildWithCData('content', 'Title of the page');
        $content->addAttribute('id', 1);
        $content->addAttribute('enabled', 'true');

        // Output:
        // <xml>
        //   <content id="1" enabled="true"><![CDATA[Title of the page]]></content>
        // </xml>
?>
caffeinatedbits 09-Dec-2022 11:31
Just in case anyone else, like me, was trying to figure out a way to remove child elements...

<?php

$xml = <<<EOF
<?xml version="1.0" encoding="utf-8" ?>
<Animals>
    <Dog breed="chihuahua"/>
    <Dog breed="poodle"/>
    <Dog breed="invalid"/>
</Animals>
EOF;

$animals = new SimpleXMLElement($xml);

unset($animals->Dog[2]);

echo $animals->asXML();

// <?xml version="1.0" encoding="utf-8"?>
// <Animals>
//         <Dog breed="chihuahua"/>
//         <Dog breed="poodle"/>
//
// </Animals>

?>

Note: you cannot remove elements while iterating children, otherwise it will break the Iterator. Example:

<?php

$xml = <<<EOF
<?xml version="1.0" encoding="utf-8" ?>
<Animals>
    <Dog breed="chihuahua"/>
    <Dog breed="poodle"/>
    <Dog breed="invalid"/>
</Animals>
EOF;

$animals = new SimpleXMLElement($xml);

$allowed_breeds = [
    'chihuahua',
    'poodle'
];

try {
    $index = 0;
    foreach ($animals->Dog as $dog) {
        if (!in_array($dog['breed'], $allowed_breeds)) {
            unset($animals->Dog[$index]);
        }
        $index++;
    }
} catch (Throwable $e) {
    echo $e->getMessage();
    // SimpleXMLElement is not properly initialized
}

?>
carlos dot eduardo dot debiasi at gmail dot com 22-Apr-2021 01:23
I create this function so you can through and array build the XML, this allows multiple keys with the same value.
The structure must follow

[
    'key' => 'nameOfTheKey',
    'attributes' => ['id' => '1'],
    'fields' => [
        ['key' => 'fieldSamName', 'value' => '1'],
        ['key' => 'fieldSamName', 'value' => '1'],
        ['key' => 'fieldSamName', 'value' => '2'],
        ['key' => 'fieldWithChild', 'fields' => [
            ['key' => 'car', 'value' => '2'],
            ['key' => 'human', 'value' => '3'],
        ]],
    ]
];

Function:
 function toXml(\SimpleXMLElement $node, array $data)
    {
        foreach ($data as $key => $value) {
            $key = $value['key'];
            if (isset($value['value'])) {
                    $newNode = $node->addChild($key, $value['value']);
                if (isset($value['attributes'])) {
                    foreach ($value['attributes'] as $keyAttr => $valueAttr) {
                        $newNode->addAttribute($keyAttr, $valueAttr);
                    }
                }
            } else {
                $newNode = $node->addChild($key);
                if (isset($value['attributes'])) {
                    foreach ($value['attributes'] as $keyAttr => $valueAttr) {
                        $newNode->addAttribute($keyAttr, $valueAttr);
                    }
                }
            }
            if (isset($value['fields'])) {
                foreach ($value['fields'] as $keyField => $valueField) {
                    $this->toXml($newNode, [$keyField => $valueField]);
                }
            }
        }
    }
nwarap 07-Nov-2017 02:46
Want to continue the ampersand (&) chain problem.

Sometimes, you would want to assign  (=) addChild.
This trick will helps you to do this.

<?php
$webOrders = new SimpleXMLElement('<?xml version="1.0"?><WebOrders></WebOrders>');
$webOrder = $webOrders->addChild('WebOrder');
$product = $webOrder->addChild('Product');
$product[0] = 'T&M';
$product->addAttribute('price', 19.99);
$product->addAttribute('qty', 2);
var_dump($webOrders->asXML());
?>

OUTPUT would be:

<?xml version="1.0" encoding="UTF-8"?>
<WebOrders>
    <WebOrder>
        <Product price="19.99" qty="2">T&amp;M</Product>
    </WebOrder>
</WebOrders>
johninen at gmail dot com 14-Sep-2015 01:27
In the docs for google sitemaps it is required an element for mobile sitemaps that looks like this: <mobile:mobile/>

I used some time to figure out how to make it, but it is quite simple when understood.

$mobile_schema = 'http://www.google.com/schemas/sitemap-mobile/1.0';

//Create root element
$xml_mobile = new SimpleXMLElement('
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:mobile="'.$mobile_schema.'"></urlset>
');

//Add required children
$url_mobile = $xml_b_list_mobile->addChild('url');
$url_mobile->addChild('loc', 'your-mobile-site-url');
$url_mobile->addChild('mobile:mobile', null, $mobile_schema);

For this to work properly the attribute xmlns:mobile must be set in the root node, and then used as namespace(third argument) when creating the mobile:mobile child with null as value.
thallisphp at gmail dot com 07-May-2014 07:35
<?php
class MySimpleXMLElement extends SimpleXMLElement
{
    /**
     * Add SimpleXMLElement code into a SimpleXMLElement
     *
     * @param SimpleXMLElement $append
     */
    public function appendXML($append)
    {
        if ($append) {
            if (strlen(trim((string)$append)) == 0) {
                $xml = $this->addChild($append->getName());
            } else {
                $xml = $this->addChild($append->getName(), (string)$append);
            }

            foreach ($append->children() as $child) {
                $xml->appendXML($child);
            }

            foreach ($append->attributes() as $n => $v) {
                $xml->addAttribute($n, $v);
            }
        }
    }
}
?>
frosty dot z at freesbee dot fr 16-May-2013 02:31
To complete Volker Grabsch's comment, stating :
"Note that although addChild() escapes "<" and ">", it does not escape the ampersand "&"."

To work around that problem, you can use direct property assignment such as :

<?php
$xmlelement->value = 'my value < > &';
// results in <value>my value &lt; &gt; &amp;</value>
?>

instead of doing :

<?php
$xmlelement->addChild('value', 'my value < > &');
// results in <value>my value &lt; &gt; &</value> (invalid XML)
?>

See also: http://stackoverflow.com/questions/552957 (Rationale behind SimpleXMLElement's handling of text values in addChild and addAttribute)

HTH
passerbyxp at gmail dot com 27-Mar-2013 03:59
Be aware that simply because you can <?php $dom->addChild();?> doesn't mean your XML is valid under simple XML itself:

<?php
$dom=simplexml_load_string("<test></test>");
$dom->addChild("3D","1,2,3");
$xml=$dom->asXML();
echo $xml;
/* echos:
<?xml version="1.0"?>
<test><3D>1,2,3</3D></test>
*/

$dom=simplexml_load_string($xml);
/*
generates a whole lots of warnings,
and refuses to create an object.
*/
?>

Same in PHP 5.3 and 5.4
ivan dot kakurov at gmail dot com 13-Jan-2013 04:09
Here's my solution for creating XML from Multidimensional Array.
<?php
//DATA
        $xmlDAta = array(
            array(
                "name"  => "nameVal",
                "value" => "valVal",
                "css"   => "cssVal"
            ),
            array(
                "name"  => "name1Val",
                "value" => "val1Val",
                "css"   => "css1Val"
            ),
            "tname" => array(
                array(
                    "iTname"   => "iTname",
                    "iTname2"  => "iTname1",
                    "iTname2"  => "iTname2",
                    "iTbname3" => array(
                        "iiTbname"  => "tbName",
                        "iiTbname1" => "tbName1",
                    ),
                ),
            ),
            "tdata" => "otheerDAta"
        );

   /**
     * Create XML using string or array
     *
     * @param mixed $data input data
     * @param SimpleXMLElement $xml
     * @param string $child name of first level child
     *
     * @return adding Xml formated data into SimpleXmlElement
     */

function data2XML(array $data, SimpleXMLElement $xml, $child = "items")
    {

        foreach($data as $key => $val) {
            if(is_array($val)) {

                if(is_numeric($key)) {
                    $node  = $xml->addChild($child);
                    $nodes = $node->getName($child);
                } else {

                    $node  = $xml->addChild($key);
                    $nodes = $node->getName($key);
                }

                $node->addChild($nodes, self::data2Xml($val, $node));
            } else {
                $xml->addChild($key, $val);
            }
        }

    }

//Use

        $xml    = new SimpleXMLElement("<root/>");
        Util::data2XML($xmlDAta, $xml, "Items");

?>
jerikojerk 31-Jul-2011 07:32
If you're looking for a way to append children you may be interested in this:

<?php
$x = new SimpleXMLElement('<root name="toplevel"></root>');
$f1 = new SimpleXMLElement('<child pos="1">alpha</child>');
$f2 = new SimpleXMLElement('<child pos="2">beta</child>');
$f3 = new SimpleXMLElement('<child pos="3">gamma</child>');

$x->{$f1->getName()} = $f1;
$x->{$f2->getName()}[] = $f2;
$x->{$f3->getName()}[] = $f3;

echo 'count child=',$x->count(),"\n";
echo $x->asXML();

foreach ( $x->children() as $foo )
{
    var_dump($foo);
}

?>
alex dot feraud at gmail dot com 16-Jun-2011 02:52
Here is a class with more functions for SimpleXMLElement :

<?php
/**
 *
 * Extension for SimpleXMLElement
 * @author Alexandre FERAUD
 *
 */
class ExSimpleXMLElement extends SimpleXMLElement
{
    /**
     * Add CDATA text in a node
     * @param string $cdata_text The CDATA value  to add
     */
  private function addCData($cdata_text)
  {
   $node= dom_import_simplexml($this);
   $no = $node->ownerDocument;
   $node->appendChild($no->createCDATASection($cdata_text));
  }

  /**
   * Create a child with CDATA value
   * @param string $name The name of the child element to add.
   * @param string $cdata_text The CDATA value of the child element.
   */
    public function addChildCData($name,$cdata_text)
    {
        $child = $this->addChild($name);
        $child->addCData($cdata_text);
    }

    /**
     * Add SimpleXMLElement code into a SimpleXMLElement
     * @param SimpleXMLElement $append
     */
    public function appendXML($append)
    {
        if ($append) {
            if (strlen(trim((string) $append))==0) {
                $xml = $this->addChild($append->getName());
                foreach($append->children() as $child) {
                    $xml->appendXML($child);
                }
            } else {
                $xml = $this->addChild($append->getName(), (string) $append);
            }
            foreach($append->attributes() as $n => $v) {
                $xml->addAttribute($n, $v);
            }
        }
    }
}
?>
Volker Grabsch 21-Apr-2011 06:17
Note that although addChild() escapes "<" and ">", it does not escape the ampersand "&".

So addChild() is unsuited to handle user-defined input!

Instead, you will have to replace all "&" with "&amp;" before calling addChild().

Or, use htmlspecialchars() which also replaces other characters, but won't do any harm as addChild() won't replace those again.
felipenmoura at gmail dot com 11-Apr-2011 06:06
This method returns a reference to the specific SimpleXMLElement.
If you use:
<?php
    $xml= new SimpleXMLElement('<root></root>');
    $xml->father['name']= 'Fathers name'; // creates automatically a father tag with attribute name
    $son= $xml->father->addChild('son'); // uses the first father tag
    $son['name']= 'first son';
    $otherSon= $xml->father->addChild('son'); // uses the first father tag but now, in a second son tag
    $otherSon['name']= 'second son';

    echo htmlentities($xml->asXML());
?>

The result will be
<root>
    <father>
        <son name='first son' />
        <son name='second son' />
    </father>
</root>

So, once you change something to the just added child, you are actually accessing the element inside the SimpleXMLElement as a reference.


Nesnenin içerdiği belgeyi iyi biçemli bir XML dizge olarak döndürür

  • « SimpleXMLElement::addChild
  • SimpleXMLElement::attributes »
  • PHP Manual
  • SimpleXMLElement
  • Nesnenin içerdiği belgeyi iyi biçemli bir XML dizge olarak döndürür

SimpleXMLElement::asXML

(PHP 5, PHP 7, PHP 8)

SimpleXMLElement::asXML — Nesnenin içerdiği belgeyi iyi biçemli bir XML dizge olarak döndürür

Açıklama

public SimpleXMLElement::asXML(?string $dosya = null): string|bool

Nesnenin içerdiği belgeyi iyi biçemli bir XML 1.0 dizgesi olarak döndürür.

Bağımsız Değişkenler

dosya

Dizge değer belirtildiği takdirde, sonuç döndürülmeyip bu dosyaya yazılır.

Dönen Değerler

Eğer dosya belirtilmezse fakat bir hata oluşursa false aksi takdirde bir dizge döner. Eğer dosya belirtilir ve dosyaya başarıyla yazılırsa true aksi takdirde false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | dosya artık null olabiliyor.

Örnekler

Örnek 1 - XML belgenin döndürülmesi

<?php
$string = <<<XML
<a>
<b>
<c>text</c>
<c>stuff</c>
</b>
<d>
<c>code</c>
</d>
</a>
XML;

$xml = new SimpleXMLElement($string);

echo $xml->asXML();

?>

Yukarıdaki örneğin çıktısı:

<?xml version="1.0"?>
<a>
 <b>
  <c>text</c>
  <c>stuff</c>
 </b>
 <d>
  <c>code</c>
 </d>
</a>

asXML Xpath sonuçları üzerinde de çalışır:

Örnek 2 - SimpleXMLElement::xpath() sonucundan bir XML belge döndürmek

<?php
// Yukarıdaki örneğin devamıdır.

/* <a><b><c>'yi arayalım */
$result = $xml->xpath('/a/b/c');

foreach ($result as $node) {
echo $node->asXML();
}
?>

Yukarıdaki örneğin çıktısı:

<c>text</c><c>stuff</c>

Ayrıca Bakınız

  • SimpleXMLElement::__toString() - Returns the string content
  • Temel SimpleXML kullanımı

User Contributed Notes

andreas dot theissen at t-online dot de 27-Oct-2012 12:37
To prevent asXML from encoding vowels unwantedly, simply use an approriate XML header with encoding in advance.

If you do so, asXML will happily leave your vowels (and the header) entirely untouched.

<?php

$xmlstr =
'<?xml version="1.0" encoding="UTF-8"?>
<keys>
  <key lang="en">&lt;Insert&gt;</key>
  <key lang="de">&lt;Einfügen&gt;</key>
</keys>';

$sxe = new SimpleXMLElement($xmlstr);

$output = $sxe->asXML();

?>

$xmlstr and $output are identical now.

The subsequent use of html_entity_decode() (as proposed in the very beginning in another post) has several drawbacks:

1. It is slow
2. It is expensive
3. If there are already encoded arrow brackets or double quotes in your source for instance (as shown in the above example), markup will be broken.
oleg dot pavlin at gmail dot com 10-Jan-2012 04:17
Function asXML decodes special chars like ø, æ and others to &#xE6;, &#xF8;

To get normal output use without quoting:

$xml = html_entity_decode($xml, ENT_NOQUOTES, 'UTF-8');


Bir elemanın özniteliklerine erişim sağlar

  • « SimpleXMLElement::asXML
  • SimpleXMLElement::children »
  • PHP Manual
  • SimpleXMLElement
  • Bir elemanın özniteliklerine erişim sağlar

SimpleXMLElement::attributes

(PHP 5, PHP 7, PHP 8)

SimpleXMLElement::attributes — Bir elemanın özniteliklerine erişim sağlar

Açıklama

public SimpleXMLElement::attributes(?string $isimalanı_veya_önek = null, bool $önek_var = false): ?SimpleXMLElement

Bir XML etiketinin içerdiği özniteliklere ve değerlerine erişim sağlar.

Bilginize: SimpleXML iç içe nesnelerden (XML düğümlerinden) oluşur. Bu nedenle nesne içeriğini görmek için var_dump() ve benzerleri kullanılamaz.

Bağımsız Değişkenler

isimalanı_veya_önek

Özniteliklerin alınabilmesi için gerekebilecek isim alanı.

önek_var

false öntanımlıdır.

Dönen Değerler

Etiketteki öznitelikler arasında dolaşmak için yinelenebilen SimpleXMLElement nesnesi döndürür.

Etiket değil de öznitelik temsil eden SimpleXMLElement nesnesinde çağrılırsa null döndürür.

Örnekler

Örnek 1 - Bir XML dizgenin yorumlanması

<?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";
}
?>

Yukarıdaki örneğin çıktısı:

name="one"
game="lonely"

Ayrıca Bakınız

  • Temel SimpleXML kullanımı

User Contributed Notes

jurchiks101 at gmail dot com 23-May-2018 12:38
An undocumented way - and, IMO, a hack - of getting an element's value OR attributes
(but not both) without type-casting is to use the function `current()`:

<?php
$xml = new SimpleXMLElement(<<<'XML'
<foo>
    <bar>1</bar>
    <baz name="baz" />
    <qux name="qux">3</qux>
</foo>
XML
);

var_dump([
    'bar' => [
        $xml->bar,
        current($xml->bar),
    ],
    'baz' => [
        $xml->baz->attributes(),
        current($xml->baz->attributes()),
    ],
    'qux' => [
        // won't work here correctly
        $xml->qux,
        current($xml->qux),
        $xml->qux->attributes(),
        current($xml->qux->attributes()),
    ],
]);
?>

Results in the following output (re-formatted to shorten it):
```
array(3) {
  'bar' => array(2) {
    [0] => class SimpleXMLElement#2 (1) {
      public ${0} => string(1) "1"
    }
    [1] => string(1) "1"
  }
  'baz' => array(2) {
    [0] => class SimpleXMLElement#5 (1) {
      public $@attributes => array(1) {
        ...
      }
    }
    [1] => array(1) {
      'name' => string(3) "baz"
    }
  }
  'qux' => array(4) {
    [0] => class SimpleXMLElement#6 (2) {
      public $@attributes => array(1) {
        ...
      }
      public ${0} => string(1) "3"
    }
    [1] => array(1) {
      'name' => string(3) "qux"
    }
    [2] => class SimpleXMLElement#7 (1) {
      public $@attributes => array(1) {
        ...
      }
    }
    [3] => array(1) {
      'name' => string(3) "qux"
    }
  }
}
```

This apparently reads the element as an array and just returns the value of the first property, whether it be the attributes or the value. As seen in the third example, this is unreliable, especially if you're parsing XML from an outside source that may or may not have attributes on an element that you want the value of.

I certainly do NOT advise anyone to use this since it is undocumented and it is just a coincidence that it works, so it might break in the future without prior notice.
andy dot locologic+101 at gmail dot com 14-Aug-2015 10:00
Easiest and safest way to get attributes as an array is to use the iterator_to_array function (see http://php.net/manual/en/function.iterator-to-array.php):

<?php
      $x = new SimpleXMLElement('<div class="myclass" id="myid"/>');
      $attributes = iterator_to_array($x->attributes());
?>
zevnikrok 18-Dec-2014 11:01
If you wish to get attributes as an associative array of key value pairs, you don't need to iterate through them, you can get it with this one liner:

  reset($element->attributes())
webfelipemaia at gmail dot com 07-Sep-2013 05:11
Use attributes to display when it meets certain condition defined attribute / value in xml tags.

Use atributos para exibir quando atende determinada condição definida atributo / valor em tags XML.

Consider the following example:
Considere o seguinte exemplo:

(file.xml)

<?xml version="1.0" encoding="UTF-8"?>

<list>
    <item type="Language">
        <name>PHP</name>
        <link>www.php.net</link>
    </item>
    <item type="Database">
        <name>Java</name>
        <link>www.oracle.com/br/technologies/java/?</link>
    </item>
</list>

Checks if the attribute value equals "Language", if equal prints everything that is related to "Language".

Verifica se o valor do atributo é igual a "Language", se for, imprime tudo o que for relativo ao mesmo.

<?php

$xml = simplexml_load_file("file.xml");

foreach($xml->children() as $child) {

        $role = $child->attributes();

        foreach($child as $key => $value) {

            if($role == "Language")
            echo("[".$key ."] ".$value . "<br />");

        }
}
?>

output:
saída:

[name] PHP
[link] www.php.net
adrian at foeder dot de 14-Jun-2013 10:15
in order to get a possibly present xml:space attribute, use the following construct:

<?php
$simpleXmlElement->element->attributes('http://www.w3.org/XML/1998/namespace')->space;
?>

This will, for example, return 'preserve' if set.

Just passing by 'xml' as namespace argument of the attribute() method didn't work out for me. Passing by the complete namespace URI works also if it is not explicitly defined in the underlying XML document.

Also, $simpleXmlElement->getNamespaces() does not return anything of use.
totalwipeout at gmail dot com 08-Nov-2012 05:21
Tip to get a real array of all attributes of a node (not SimpleXML's object acting like an array)

<?php
//- $node is a SimpleXMLElement object

$atts_object = $node->attributes(); //- get all attributes, this is not a real array
$atts_array = (array) $atts_object; //- typecast to an array

//- grab the value of '@attributes' key, which contains the array your after
$atts_array = $atts_array['@attributes'];

var_dump($atts_object); //- outputs object(SimpleXMLElement)[19]
                        //-             public '@attributes' => ...

var_dump($atts_array); //- outputs array (size=11) ...

?>
Hope this helps!
chris at chlab dot ch 23-Mar-2012 10:16
Note that you must provide the namespace if you want to access an attribute of a non-default namespace:

Consider the following example:

<?php
$xml = <<<XML
<?xml version="1.0"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
 <Table Foo="Bar" ss:ExpandedColumnCount="7">
 </Table>
</Workbook>
XML;

$sxml = new SimpleXMLElement($xml);

/**
 * Access attribute of default namespace
 */
var_dump((string) $sxml->Table[0]['Foo']);
// outputs: 'Bar'

/**
 * Access attribute of non-default namespace
 */
var_dump((int) $sxml->Table[0]['ExpandedColumnCount']);
// outputs: 0

var_dump((int) $sxml->Table[0]->attributes('ss', TRUE)->ExpandedColumnCount);
// outputs: '7'
?>
Andrei 16-May-2011 04:46
Reading the attributes of the root element with name space prefixes as in an Atom feed

<feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:gd="http://schemas.google.com/g/2005" gd:etag="W/&quot;Ck4EQXYzeCp7ImA9WhZWFE4.&quot;">

<?php
$xml =  @simplexml_load_file($feed);
$att_gd = $xml->attributes("gd",1);
$Etag = $att_gd["etag"];
?>
sarlak 27-Apr-2011 01:12
<?php
$att = 'attribueName';

// You can access an element's attribute just like this :
$attribute = $element->attributes()->$att;

// This will save the value of the attribute, and not the objet
$attribute = (string)$element->attributes()->$att;

// You also can edit it this way :
$element->attributes()->$att = 'New value of the attribute';
?>
leap 02-Apr-2011 09:07
If you want to save the value of an attribute into an array, typecast it to a string.

<?php
// stores an xml-element-object
$dataStore['value'] = $attributes->myValue

// stores the value of the attribute
$dataStore['value'] = (string)$attributes->myValue
?>
alan at performantsystems dot com 23-May-2010 10:26
So lets say you have database type data in an XML string called $xmlstring with the key or item ID as an XML Attribute and all content data as regular XML Elements, as above. SimpleXML processes the Attributes as an array, so we can play along and push the Attributes into an array. Then we can get the value of any specific Attribute we want by addressing it by name, such as "ID".

Considering this data:

<?xml version="1.0" encoding="utf-8"?>
<data>
   <item ID="30001">
      <Company>Navarro Corp.</Company>
   </item>
   <item ID="30002">
      <Company>Performant Systems</Company>
   </item>
   <item ID="30003">
      <Company>Digital Showcase</Company>
   </item>
</data>

Example of listing both the ID Attribute and Company Element values:

<?php
$xmlObject = new SimpleXMLElement($xmlstring);
foreach ($xmlObject->children() as $node) {
        $arr = $node->attributes();   // returns an array
        print ("ID=".$arr["ID"]);     // get the value of this attribute
        print ("  Company=".$node->Company);
        print ("<p><hr>");
}
?>
Xeoncross 10-Apr-2010 07:46
It is really simple to access attributes using array form. However, you must convert them to strings or ints if you plan on passing the values to functions.

<?php
SimpleXMLElement Object
(
    [@attributes] => Array
        (
            [id] => 55555
        )

    [text] => "hello world"
)
?>

Then using a function

<?php
function xml_attribute($object, $attribute)
{
    if(isset($object[$attribute]))
        return (string) $object[$attribute];
}
?>

I can get the "id" like this

<?php
print xml_attribute($xml, 'id'); //prints "55555"
?>
gillllberg at gmail dot com 04-Nov-2009 02:21
To get an attribute in the node, use node->attributes()->attributeName
skerr at mojavi dot org 09-Dec-2004 10:55
You can also access the node as an array to get attributes:

<?php

$xml = simplexml_load_file('file.xml');

echo 'Attribute: ' . $xml['attribute'];

?>
inge at elektronaut dot no 26-May-2004 10:53
here's a simple function to get an attribute by name, based on the example

<?php
function findAttribute($object, $attribute) {
  foreach($object->attributes() as $a => $b) {
    if ($a == $attribute) {
      $return = $b;
    }
  }
  if($return) {
    return $return;
  }
}
?>


Belirtilen düğümün çocuklarını bulur

  • « SimpleXMLElement::attributes
  • SimpleXMLElement::__construct »
  • PHP Manual
  • SimpleXMLElement
  • Belirtilen düğümün çocuklarını bulur

SimpleXMLElement::children

(PHP 5, PHP 7, PHP 8)

SimpleXMLElement::children — Belirtilen düğümün çocuklarını bulur

Açıklama

public SimpleXMLElement::children(?string $isimalanı_veya_önek = null, bool $önek_var = false): ?SimpleXMLElement

Bu yöntem nesnenin içerdiği alt düğümleri bulur. Sonuçlara foreach döngüleri üzerinden erişilebilir.

Bilginize: SimpleXML iç içe nesnelerden (XML düğümlerinden) oluşur. Bu nedenle nesne içeriğini görmek için var_dump() ve benzerleri kullanılamaz.

Bağımsız Değişkenler

isimalanı_veya_önek

Bir XML isimalanı.

önek_var

true ise isimalanı_veya_önek bağımsız değişkeninin bir önek, false ise bir isimalanı içerdiği kabul edilir.

Dönen Değerler

Düğüm bir öznitelik için ise null, aksi takdirde SimpleXMLElement nesnesi döner.

Örnekler

Örnek 1 - children() dizimsisi

<?php
$xml = new SimpleXMLElement(
'<person>
<child role="son">
<child role="daughter"/>
</child>
<child role="daughter">
<child role="son">
<child role="son"/>
</child>
</child>
</person>');

foreach ($xml->children() as $second_gen) {
echo ' The person begot a ' . $second_gen['role'];

foreach ($second_gen->children() as $third_gen) {
echo ' who begot a ' . $third_gen['role'] . ';';

foreach ($third_gen->children() as $fourth_gen) {
echo ' and that ' . $third_gen['role'] .
' begot a ' . $fourth_gen['role'];
}
}
}
?>

Yukarıdaki örneğin çıktısı:

The person begot a son who begot a daughter; The person
begot a daughter who begot a son; and that son begot a son

Örnek 2 - İsimalanlarının kullanımı

<?php
$xml = '<example xmlns:foo="my.foo.urn">
<foo:a>Apple</foo:a>
<foo:b>Banana</foo:b>
<c>Cherry</c>
</example>';

$sxe = new SimpleXMLElement($xml);

$kids = $sxe->children('foo');
var_dump(count($kids));

$kids = $sxe->children('foo', TRUE);
var_dump(count($kids));

$kids = $sxe->children('my.foo.urn');
var_dump(count($kids));

$kids = $sxe->children('my.foo.urn', TRUE);
var_dump(count($kids));

$kids = $sxe->children();
var_dump(count($kids));
?>
int(0)
int(2)
int(2)
int(0)
int(1)

Ayrıca Bakınız

  • SimpleXMLElement::count() - Counts the children of an element
  • count() - Bir dizideki veya bir Countable nesnesindeki eleman sayısını döndürür

User Contributed Notes

boan dot web at outlook dot com 15-Mar-2019 07:09
SimpleXMLElement::children can return null in this case:

<?php
$xml = '
<root attr="Hello"/>
';

$sxe = new SimpleXMLElement($xml);

$sxe_xpath = $sxe->xpath('/root/@attr')[0];

$children = $sxe_xpath->children();

var_export($children); // Is null
?>
thetazzbot at gmail dot com 08-Sep-2011 06:56
Ok so say you have this xml:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE nitf
PUBLIC "-//IPTC-NAA//DTD NITF 3.1//EN"
       "http://www.nitf.org/site/nitf-documentation/nitf-3-1.dtd">
<nitf>
  <head>
    <docdata management-status="embargoed">
      <!--data/2011/08/23/parties/doc4e53aa5783cca930694817.txt-->
      <doc-id id-string="doc4e53aa5783cca930694817"/>
      <date.release norm="20110823T000000"/>
      <key-list/>
    </docdata>
    <pubdata type="web" position.section="parties" position.sequence="0"/>
  </head>

-- snip --

If you need to access the nodes named "like.this" such as the date.release above, here is how I did it:

$xml = new SimpleXMLElement($xhtml);
 echo (string)$xml->head->docdata->{"date.release"}["norm"];

Took me a while to figure that one out ;)
coldshine1 at rambler dot ru 10-Dec-2010 02:37
This is my recursive simple function to parse XML with attributes.

<?php
function ParseXML($node, &$parent=array(), $only_child=true) {

        //Current node name
        $node_name = $node->getName();

        //Let's count children
        $only_child = true;
        if($node->count() > 1 ) $only_child = false;

        //If there is no child, then there may be text data
        if($only_child){
            $content="$node";
            if (strlen($content)>0) $parent['content']=$content;
        }

        //Get attributes of current node
        foreach ($node->attributes() as $k=>$v) {
            $parent['@attributes'][$k]="$v";
        }

        //Get children
        $count = 0;
        foreach ($node->children() as $child_name=>$child_node) {
            if(!$only_child) //If there are siblings then we'll add node to the end of the array
                LGServerPVR::ParseXML($child_node, $parent[$node_name][$child_name][$count], $only_child);
            else
                LGServerPVR::ParseXML($child_node, $parent[$node_name][$child_name], $only_child);
            $count++;
        }

        return $parent;
        //(c) c01d[s]h!nE 10.12.2010
    }

?>
Anonymous 26-Oct-2010 05:19
Here's my xml-to-array routine. Unlike many of the other comments here, this one takes namespaces into account.

<?php

class XmlArray {

  public function load_dom ($xml) {
    $node=simplexml_import_dom($xml);
    return $this->add_node($node);
  }

  public function load_string ($s) {
    $node=simplexml_load_string($s);
    return $this->add_node($node);
  }

  private function add_node ($node, &$parent=null, $namespace='', $recursive=false) {

    $namespaces = $node->getNameSpaces(true);
    $content="$node";

    $r['name']=$node->getName();
    if (!$recursive) {
      $tmp=array_keys($node->getNameSpaces(false));
      $r['namespace']=$tmp[0];
      $r['namespaces']=$namespaces;
    }
    if ($namespace) $r['namespace']=$namespace;
    if ($content) $r['content']=$content;

    foreach ($namespaces as $pre=>$ns) {
      foreach ($node->children($ns) as $k=>$v) {
        $this->add_node($v, $r['children'], $pre, true);
      }
      foreach ($node->attributes($ns) as $k=>$v) {
        $r['attributes'][$k]="$pre:$v";
      }
    }
    foreach ($node->children() as $k=>$v) {
      $this->add_node($v, $r['children'], '', true);
    }
    foreach ($node->attributes() as $k=>$v) {
      $r['attributes'][$k]="$v";
    }

    $parent[]=&$r;
    return $parent[0];

  }

}

?>
mrdaniellee at live dot com 10-Jan-2010 09:11
use this If you want to view the HTML as well as data.

normal dumps display the parsed versions of HTML.
This code displays the HTML as Text in a Text Area, and also display all other a data along side as an array

perfect for debugging (xml with html).

Try This Code:

<?php
$xml  = simplexml_load_file($url);

function xml2array_parse($xml){
     foreach ($xml->children() as $parent => $child){
         $return["$parent"] = xml2array_parse($child)?xml2array_parse($child):"$child";
     }
     return $return;
 }

 print "<pre><textarea style=\"width:200%;height:100%;\">";
 print_r(xml2array_parse($xml));
 print "</textarea></pre>";
?>
rodmen at gmail dot com 21-May-2009 08:32
Transform xml to array php

<?php
function xml2phpArray($xml,$arr){
    $iter = 0;
        foreach($xml->children() as $b){
                $a = $b->getName();
                if(!$b->children()){
                        $arr[$a] = trim($b[0]);
                }
                else{
                        $arr[$a][$iter] = array();
                        $arr[$a][$iter] = xml2phpArray($b,$arr[$a][$iter]);
                }
        $iter++;
        }
        return $arr;
}

$Array = simplexml_load_string(file_get_contents('myfile.xml'));
print_r(xml2phpArray($Array,array()));
?>
Anonymous 06-Sep-2008 05:39
for XML namespaces such as <dc:creator> in RSS feeds use

<?php
    $xml = new SimpleXMLElement($string);
    $item = $xml->channel[0]->item[0];
    $dc = $item->children("http://purl.org/dc/elements/1.1/");
    echo $dc->creator;
?>
transglobe at gmx dot de 19-Mar-2008 02:37
I made a slightly differnt approch towards the RecurseXML function. Beeing hungry I had problems with the code, as it did just overwrite two <maincourse>s. So here is what I did:

<?php

$xml = new SimpleXMLElement(
'<meal>
   <type>Lunch</type>
   <time>12:30</time>
   <menu>
     <entree>salad</entree>
     <maincourse>
        <part>ships</part>
        <part>steak</part>
     </maincourse>
     <maincourse>
        <part>fisch</part>
        <part>rice</part>
     </maincourse>
     <maincourse>
        <part>wine</part>
        <part>cheese</part>
     </maincourse>
   </menu>
</meal>');

$vals = array();
RecurseXML($xml,$vals);

foreach($vals as $key=>$value)
  print("{$key} = {$value}<BR>\n");

function RecurseXML($xml,&$vals,$parent="") {

  $childs=0;
  $child_count=-1; # Not realy needed.
  $arr=array();
        foreach ($xml->children() as $key=>$value) {
                if (in_array($key,$arr)) {
                        $child_count++;
                } else {
                        $child_count=0;
                }
                $arr[]=$key;
                $k=($parent == "") ? "$key.$child_count" : "$parent.$key.$child_count";
                $childs=RecurseXML($value,$vals,$k);
                if ($childs==0) {
                        $vals[$k]= (string)$value;
                }
        }

  return $childs;
}

?>
Output is like this:
type.0 = Lunch
time.0 = 12:30
menu.0.entree.0 = salad
menu.0.maincourse.0.part.0 = ships
menu.0.maincourse.0.part.1 = steak
menu.0.maincourse.0 =
menu.0.maincourse.1.part.0 = fisch
menu.0.maincourse.1.part.1 = rice
menu.0.maincourse.1 =
menu.0.maincourse.2.part.0 = wine
menu.0.maincourse.2.part.1 = cheese
menu.0.maincourse.2 =
menu.0 =

(Not beautiful, but it solved my case...)
crescentfreshpot at yahoo dot com 10-Dec-2007 08:16
Just a warning that the iterable returned from children() contains the '@attributes' key, which is "invisible" during a foreach but can be seen if using a different construct, such as list()=each() or casting to an array before iterating w/ foreach.
aero 23-May-2007 08:07
Here's a simple, recursive, function to transform XML data into pseudo E4X syntax ie. root.child.value = foobar

<?php
error_reporting(E_ALL);

$xml = new SimpleXMLElement(
'<Patriarch>
   <name>Bill</name>
   <wife>
     <name>Vi</name>
   </wife>
   <son>
     <name>Bill</name>
   </son>
   <daughter>
     <name>Jeri</name>
     <husband>
       <name>Mark</name>
     </husband>
     <son>
       <name>Greg</name>
     </son>
     <son>
       <name>Tim</name>
     </son>
     <son>
       <name>Mark</name>
     </son>
     <son>
       <name>Josh</name>
         <wife>
           <name>Kristine</name>
         </wife>
         <son>
           <name>Blake</name>
         </son>
         <daughter>
           <name>Liah</name>
         </daughter>
     </son>
   </daughter>
</Patriarch>');

RecurseXML($xml);

function RecurseXML($xml,$parent="")
{
   $child_count = 0;
   foreach($xml as $key=>$value)
   {
      $child_count++;
      if(RecurseXML($value,$parent.".".$key) == 0)  // no childern, aka "leaf node"
      {
         print($parent . "." . (string)$key . " = " . (string)$value . "<BR>\n");
      }
   }
   return $child_count;
}

?>

The output....

.name = Bill
.wife.name = Vi
.son.name = Bill
.daughter.name = Jeri
.daughter.husband.name = Mark
.daughter.son.name = Greg
.daughter.son.name = Tim
.daughter.son.name = Mark
.daughter.son.name = Josh
.daughter.son.wife.name = Kristine
.daughter.son.son.name = Blake
.daughter.son.daughter.name = Liah
taylorbarstow at that google mail thingy 21-Apr-2006 07:38
Sometimes you actually want an array, not a pseudo array.   This is especially true when you aren't dealing with attributes (i.e., you just want the array of child nodes).

Do like this:

<?php
$children = $sxml->xpath('child::node()');
?>

The reason you might want this is to be able to use array functions like array_shift, array_pop, etc.  This is especially true when you are writing recursive functions.  Simplexml works really well in iterative programming, but if you try to implement recursion it gets ugly.
Sebastian 27-Oct-2005 03:45
Just a quick addition:

If you need to access a child node which contains a dash, you need to encapsulate it with {""}.

For example:
<?php
foreach ($domain->domain-listing as $product) {
}
?>

The example above doesn't work because of the dash. But instead you need to use:
<?php
foreach ($domain->{"domain-listing"} as $product) {
}
?>

At least for me the second example works perfectly fine.
no-one 31-May-2005 06:05
For anyone who hasn't read Sterling Hughe's article (http://www.zend.com/php5/articles/php5-simplexml.php):

<?php
$xml_document =<<<EOT
<?xml version="1.0"?>
<root xmlns:foo="http://example.com">
  <foo:bar>baz</foo:bar>
</root>
EOT;

$xml_document = simplexml_load_xml($xml_document);

$foo_ns_bar = $xml_document->children('http://example.com');

echo $foo_ns_bar->bar[0]; // prints 'baz'
?>
Andrew Rose (rose dot andrew at gmail dot com) 16-Mar-2005 04:48
The example below shows the basic use of depth-first recursion to span the xml tree.

This is coded for the command line, and it prints out the original sentance above and then the copy cat sentence it creates itself for comparison, which as you will see; this example is slightly off from, I'll leave it upto you to resolve this issue.

All in all I personaly think xml and recursion go hand in hand, so if you don't understand recursion but know xml and want to use php to manipulate xml you will need to learn about recursion at some point.

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

function recurse($child)
 {
   foreach($child->children() as $children) {
     echo ' who begot a '.$children['role'];
     recurse($children);
   }
    return;
 }

foreach($xml->children() as $children) {
 echo 'The person begot a '.$children['role'];
  recurse($children, 0);
 echo '; ';
}

echo "\n";
echo 'The person begot a son who begot a daughter; The person begot a daughter who begot a son; and that son begot a son'."\n";

?>
zyxwvu at users dot sourceforge dot net 15-Feb-2004 10:32
File:

<category>
  <item>text</item>
  <bold>text</bold>
  <item>text</item>
  <item>text</item>
  <mark>text</mark>
  <bold>text</bold>
</category>

If you want to get also names of the tags, you can use this loop layout:

<?php
foreach($category -> children() as $name => $node){
  echo $name.'<br/>';
}
?>


Yeni bir SimpleXMLElement nesnesi oluşturur

  • « SimpleXMLElement::children
  • SimpleXMLElement::count »
  • PHP Manual
  • SimpleXMLElement
  • Yeni bir SimpleXMLElement nesnesi oluşturur

SimpleXMLElement::__construct

(PHP 5, PHP 7, PHP 8)

SimpleXMLElement::__construct — Yeni bir SimpleXMLElement nesnesi oluşturur

Açıklama

public SimpleXMLElement::__construct(
string $veri,
int $seçenekler = 0,
bool $veri_bir_url = false,
string $isimalanı_veya_önek = "",
bool $önek_var = false
)

Yeni bir SimpleXMLElement nesnesi oluşturur

Bağımsız Değişkenler

veri

İyi biçemli bir XML dizgesi veya veri_bir_url ile true belirtilmişse bir XML belge adresi ya da dosya yolu.

seçenekler

XML belgelerin okunmasını etkileyen Ek Libxml bağımsız değişkenlerini belirtmek için isteğe bağlı bir bağımsız değişken. XML belgelerin çıktısını etkileyen seçenekler (örneğin, LIBXML_NOEMPTYTAG) sessizce yok sayılır.

Bilginize:

Derince iç içe çok büyük metin düğümlerini içeren XML belgeleri işleyebilmek için LIBXML_PARSEHUGE sabitini aktarmak gerekebilir.

veri_bir_url

Öntanımlı olarak değeri false'tır. veri bağımsız değişkeninde dizge veri değil de XML belge adresi ya da dosya yolu belirtilecekse true olmalıdır.

isimalanı_veya_önek

İsim alanı öneki veya URI.

önek_var

true ise isimalanı_veya_önek bağımsız değişkeninin bir önek, false ise bir isim alanı içerdiği varsayılır.

İpucu

Tüm XML hatalarını bastırmak için libxml_use_internal_errors() kullanıp daha sonra bu hataları libxml_get_errors() ile tek tek ele alabilirsiniz.

Hatalar/İstisnalar

XML veride saptanan her hata için bir E_WARNING üretilir ve ek olarak XML veri çözümlenemezse bir Exception yavrulanır.

Örnekler

Bilginize:

Aşağıdaki örnekler, temel kullanım kılavuzunun ilk örneğinde bulunan XML dizesine atıfta bulunan example.php betiğini içerebilir.

Örnek 1 - Bir dizgeden bir SimpleXMLElement nesnesi oluşturmak

<?php

include 'example.php';

$sxe = new SimpleXMLElement($xmlstr);
echo $sxe->movie[0]->title;

?>

Yukarıdaki örneğin çıktısı:

PHP: Behind the Parser

Örnek 2 - Bir dosyadan bir SimpleXMLElement nesnesi oluşturmak

<?php

$sxe = new SimpleXMLElement('http://example.org/document.xml', 0, true);
echo $sxe->asXML();

?>

Ayrıca Bakınız

  • Temel SimpleXML kullanımı
  • simplexml_load_string() - Bir XML dizgesini bir nesne haline getirir
  • simplexml_load_file() - Bir XML dosyasının içeriğini bir nesne haline getirir
  • XML hatalarıya ilgilenmek
  • libxml_use_internal_errors() - libxml hatalarını kapatarak kullanıcı tanımlı hataları mümkün kılar
  • libxml_set_streams_context() - Yüklenecek veya yazılacak sonraki libxml belgesinin akım bağlamını belirler

User Contributed Notes

info at ensostudio dot ru 20-Aug-2021 04:22
Extended SimpleXMLElement:
<?php
class XmlElement extends \SimpleXMLElement
{
    public static function factory(string $root): self
    {
        return new static('<?xml version="1.0" encoding="UTF-8"?><'.$root.'/>', LIBXML_BIGLINES | LIBXML_COMPACT);
    }

    /**
      * @param iterable $attributes An array of element attributes as name/value pairs
      * @return $this
      */
    public function addAttributes(iterable $attributes)
    {
        foreach ($attributes as $name => $value) {
            $this->addAttribute($name, $value);
        }

        return $this;
    }

    /**
      * @param string $name The sub-element name
      * @param string|array|null $valueOrAttributes The sub-element value or an array of attributes
      * @param string|null $namespace The sub-element namespace
      * @return static|null
      */
    public function addChild($name, $valueOrAttributes = null, $namespace = null)
    {
        if (is_array($valueOrAttributes)) {
            $child = parent::addChild($name, null, $namespace);
            foreach ($valueOrAttributes as $name => $value) {
                $child->addAttribute($name, $value);
            }
        } else {
            $child = parent::addChild($name, $valueOrAttributes, $namespace);
        }

        return $child;
    }

    /**
      * @param iterable $childs An array of sub-elements as name/value(or attributes) pairs
      * @return $this
      */
    public function addChilds(iterable $childs)
    {
        foreach ($childs as $name => $value) {
            $this->addChild($name, $value);
        }

        return $this;
    }
}
?>
rowan dot collins at gmail dot com 22-Apr-2017 03:23
The manual doesn't really explain what the $ns argument (and the accompanying $is_prefix) are for.

What they do is similar to the ->children() method: they set the context of the returned object to that namespace, so that access via ->elementName and ['attributeName'] refer to elements and attributes in that namespace.

In particular, they do *not* change the namespaces which exist on the document.

See this example:

<?php
// This XML contains two elements called <child>
// One is in the namespace http://example.com, with local prefix 'ws'
// The other has no namespace (no prefix, and no default namespace declared)
$xml = '<ws:example xmlns:ws="http://example.com"><child>Not in namespace</child><ws:child>In example namespace</ws:child></ws:example>';

$sx0 = new SimpleXMLElement($xml, 0, false);
$sx1 = new SimpleXMLElement($xml, 0, false, 'http://example.com');
$sx2 = new SimpleXMLElement($xml, 0, false, 'ws', true);

echo "
    Without: {$sx0->child}
    By namespace: {$sx1->child}
    By prefix: {$sx2->child}
";
?>

Output:

 Without: Not in namespace
 By namespace: In example namespace
 By prefix: In example namespace
ahmad dot mayahi at gmail dot com 07-Jun-2016 09:36
You won't be able to load an XML file without root element:

//This will throw an exception
$xml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?>', null, false);

//Here is the solution
$xml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><root></root>', null, false);
Phil Cross 01-Sep-2014 11:39
It's worth noting, that you need to typecast dynamic property names to string in order to retrieve there value, for example:

<?php
    $xml = new SimpleXMLElement('records.xml', 0, true);

    // This will work as expected because its a hard coded property value
    foreach($xml as $record){
        echo $record->id;    // Will output the ID fine
    }

    // Dynamic properties require typecasting to string
    $xml_field = 'id';
    foreach($xml as $record){

        // This will dump a SimpleXMLElement object
        var_dump($record->$xml_field);

        // This will output the value as expected
        echo (string)$record->$xml_field;
    }
?>
bertolini dot cedric at me dot com 16-Jun-2014 11:07
It's worth noting that the behavior of SimpleXmlElement::__construct is not exactly the same as simplexml_load_string, regarding libxml_use_internal_errors().

In my case,

<?php
libxml_use_internal_errors(true);
new \SimpleXmlElement($data);
?>

was still throwing error. But as soon as I switched to

<?php
libxml_use_internal_errors(true);
simplexml_load_string($data);
?>

everything worked fine and I stopped getting an error.
kumarldh at gmail dot com 22-Mar-2011 10:50
Using libxml_use_internal_errors() may suppress errors but Exception still requires decent handling. I used following code snippet.

<?php
libxml_use_internal_errors(true);
try{
    $xmlToObject = new SimpleXMLElement($notSoWellFormedXML);
} catch (Exception $e){
    echo 'Please try again later...';
    exit();
}
?>
uramihsayibok, gmail, com 16-Aug-2009 06:52
As I was filling out a bug report, I realized why (speculation here) the constructor is final: so that functions like simplexml_load_file and simplexml_load_string can work. I imagine the PHP-ized code looks something like

<?php

function simplexml_load_file($filename, $class_name = "SimpleXMLElement", $options = 0, $ns = "", $is_prefix = false) {
    return new $class_name($filename, $options, true, $ns, $is_prefix);
}

?>

If we were to use a different $class_name and change the constructor's definition these functions wouldn't work.

There's no easy, sensible solution that keeps simplexml_load_file and simplexml_load_string.
tudor at culise dot net 20-Nov-2007 03:35
This class is extendable, but it's too bad that its constructor cannot be overriden (PHP says it's a final method). Thus the class should be wrapped using the delegation principle rather that extended.


Counts the children of an element

  • « SimpleXMLElement::__construct
  • SimpleXMLElement::current »
  • PHP Manual
  • SimpleXMLElement
  • Counts the children of an element

SimpleXMLElement::count

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SimpleXMLElement::count — Counts the children of an element

Açıklama

public SimpleXMLElement::count(): int

This method counts the number of children of an element.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

Returns the number of elements of an element.

Örnekler

Örnek 1 Counting the number of children

<?php
$xml = <<<EOF
<people>
<person name="Person 1">
<child/>
<child/>
<child/>
</person>
<person name="Person 2">
<child/>
<child/>
<child/>
<child/>
<child/>
</person>
</people>
EOF;

$elem = new SimpleXMLElement($xml);

foreach ($elem as $person) {
printf("%s has got %d children.\n", $person['name'], $person->count());
}
?>

Yukarıdaki örneğin çıktısı:

Person 1 has got 3 children.
Person 2 has got 5 children.

Ayrıca Bakınız

  • SimpleXMLElement::children() - Belirtilen düğümün çocuklarını bulur

User Contributed Notes

daniel dot erni at focusedpublishing dot com 22-Mar-2011 08:37
Alternative code for PHP < 5.3:
<?php
$count = $node->count(); // PHP > 5.3
$count = count($node->children()); // PHP < 5.3
?>


Returns the current element

  • « SimpleXMLElement::count
  • SimpleXMLElement::getDocNamespaces »
  • PHP Manual
  • SimpleXMLElement
  • Returns the current element

SimpleXMLElement::current

(Bir sürüm bilgisi bulunamadı; sadece Git'te olabilir.)

SimpleXMLElement::current — Returns the current element

Açıklama

public SimpleXMLElement::current(): SimpleXMLElement
Uyarı

Prior to PHP 8.0, SimpleXMLElement::current() was only declared on the subclass SimpleXMLIterator.

This method returns the current element as a SimpleXMLElement object.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

Returns the current element as a SimpleXMLElement object.

Hatalar/İstisnalar

Throws an Error on failure.

Sürüm Bilgisi

Sürüm: | Açıklama
8.1.0 | An Error is now thrown if SimpleXMLElement::current() is called on an invalid iterator. Previously, null was returned.

Örnekler

Örnek 1 Return the current element

<?php
$xmlElement = new SimpleXMLElement('<books><book>PHP basics</book><book>XML basics</book></books>');

$xmlElement->rewind(); // rewind to first element, otherwise current() won't work
var_dump($xmlElement->current());
?>

Yukarıdaki örneğin çıktısı:

object(SimpleXMLElement)#2 (1) {
  [0]=>
  string(10) "PHP basics"
}

Ayrıca Bakınız

  • SimpleXMLElement::key() - Return current key
  • SimpleXMLElement::next() - Move to next element
  • SimpleXMLElement::rewind() - Rewind to the first element
  • SimpleXMLElement::valid() - Check whether the current element is valid
  • SimpleXMLElement

User Contributed Notes

There are no user contributed notes for this page.


Belgede bildirilmiş isim alanlarını döndürür

  • « SimpleXMLElement::current
  • SimpleXMLElement::getName »
  • PHP Manual
  • SimpleXMLElement
  • Belgede bildirilmiş isim alanlarını döndürür

SimpleXMLElement::getDocNamespaces

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SimpleXMLElement::getDocNamespaces — Belgede bildirilmiş isim alanlarını döndürür

Açıklama

public SimpleXMLElement::getDocNamespaces(bool $ardışık = false, bool $kökten = true): array|false

Belgede bildirilmiş isim alanlarını döndürür.

Bağımsız Değişkenler

ardışık

true belirtilirse kök düğüm ve tüm çocuk ve torun düğümlerin isim alanlarını, aksi takdirde sadece kök düğümde kullanılan isim alanlarını döndürür.

kökten

XML belgesinin kökü yerine bir çocuk düğüm altındaki isim alanlarını yinelemeli olarak sınamanızı sağlar.

Dönen Değerler

İsim alanlarını ve betimleyicilerini içeren bir dizi döndürür.

Örnekler

Örnek 1 - Belge isim alanlarının döndürülmesi

<?php

$xml = <<<XML
<?xml version="1.0" standalone="yes"?>
<people xmlns:p="http://example.org/ns">
<p:person id="1">John Doe</p:person>
<p:person id="2">Susie Q. Public</p:person>
</people>
XML;

$sxe = new SimpleXMLElement($xml);

$namespaces = $sxe->getDocNamespaces();
var_dump($namespaces);

?>

Yukarıdaki örneğin çıktısı:

array(1) {
   ["p"]=>
   string(21) "http://example.org/ns"
}

Örnek 2 - Çok sayıda isim alanı ile çalışma

<?php

$xml = <<<XML
<?xml version="1.0" standalone="yes"?>
<people xmlns:p="http://example.org/ns" xmlns:t="http://example.org/test">
<p:person t:id="1">John Doe</p:person>
<p:person t:id="2" a:addr="123 Street" xmlns:a="http://example.org/addr">
Susie Q. Public
</p:person>
</people>
XML;

$sxe = new SimpleXMLElement($xml);

$namespaces = $sxe->getDocNamespaces(TRUE);
var_dump($namespaces);

?>

Yukarıdaki örneğin çıktısı:

array(3) {
  ["p"]=>
  string(21) "http://example.org/ns"
  ["t"]=>
  string(23) "http://example.org/test"
  ["a"]=>
  string(23) "http://example.org/addr"
}

Ayrıca Bakınız

  • SimpleXMLElement::getNamespaces() - Belgede kullanılan isim alanlarını döndürür
  • SimpleXMLElement::registerXPathNamespace() - Sonraki XPath ifadesi için bir önek/isim alanı bağlamı oluşturur

User Contributed Notes

There are no user contributed notes for this page.


XML eleman ismi döndürür

  • « SimpleXMLElement::getDocNamespaces
  • SimpleXMLElement::getNamespaces »
  • PHP Manual
  • SimpleXMLElement
  • XML eleman ismi döndürür

SimpleXMLElement::getName

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

SimpleXMLElement::getName — XML eleman ismi döndürür

Açıklama

public SimpleXMLElement::getName(): string

XML eleman ismi döndürür.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

SimpleXMLElement nesnesindeki bir XML etiketinin ismini bir dizge olarak döndürür.

Örnekler

Bilginize:

Aşağıdaki örnekler, temel kullanım kılavuzunun ilk örneğinde bulunan XML dizesine atıfta bulunan example.php betiğini içerebilir.

Örnek 1 - XML eleman isimlerinin döndürülmesi

<?php

include 'example.php';
$sxe = new SimpleXMLElement($xmlstr);

echo $sxe->getName() . "\n";

foreach ($sxe->children() as $child)
{
echo $child->getName() . "\n";
}

?>

Yukarıdaki örneğin çıktısı:

movies
movie

User Contributed Notes

There are no user contributed notes for this page.


Belgede kullanılan isim alanlarını döndürür

  • « SimpleXMLElement::getName
  • SimpleXMLElement::getChildren »
  • PHP Manual
  • SimpleXMLElement
  • Belgede kullanılan isim alanlarını döndürür

SimpleXMLElement::getNamespaces

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SimpleXMLElement::getNamespaces — Belgede kullanılan isim alanlarını döndürür

Açıklama

public SimpleXMLElement::getNamespaces(bool $ardışık = false): array

Belgede kullanılan isim alanlarını döndürür.

Bağımsız Değişkenler

ardışık

true belirtilirse kök düğüm ve tüm çocuk ve torun düğümlerin isim alanlarını, aksi takdirde sadece kök düğümde kullanılan isim alanlarını döndürür.

Dönen Değerler

İsim alanlarını ve betimleyicilerini içeren bir dizi döndürür.

Örnekler

Örnek 1 - Kullanılan belge isim alanlarının döndürülmesi

<?php

$xml = <<<XML
<?xml version="1.0" standalone="yes"?>
<people xmlns:p="http://example.org/ns" xmlns:t="http://example.org/test">
<p:person id="1">John Doe</p:person>
<p:person id="2">Susie Q. Public</p:person>
</people>
XML;

$sxe = new SimpleXMLElement($xml);

$namespaces = $sxe->getNamespaces(true);
var_dump($namespaces);

?>

Yukarıdaki örneğin çıktısı:

array(1) {
  ["p"]=>
  string(21) "http://example.org/ns"
}

Ayrıca Bakınız

  • SimpleXMLElement::getDocNamespaces() - Belgede bildirilmiş isim alanlarını döndürür
  • SimpleXMLElement::registerXPathNamespace() - Sonraki XPath ifadesi için bir önek/isim alanı bağlamı oluşturur

User Contributed Notes

thiago at osfeio dot com 29-Oct-2013 04:23
this article has more info : http://www.sitepoint.com/parsing-xml-with-simplexml/
harry at nospam dot thestorm dot plus dot com 17-Feb-2012 02:21
If the namespace is nested in the xml, then you will have to loop over the nodes.

<?php

$xml = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
  <people xmlns:p="http://example.org/ns" xmlns:t="http://example.org/test">
      <items>
            <title>This is a test of namespaces and my patience</title>
            <p:person id="1">John Doe</p:person>
            <p:person id="2">Susie Q. Public</p:person>
            <p:person id="1">Fish Man</p:person>
      </items>
  </people>
XML;

$sxe = new SimpleXMLElement($xml);

foreach ($sxe as $out_ns)
{
    $ns = $out_ns->getNamespaces(true);

    $child = $out_ns->children($ns['p']);

    foreach ($child as $out)
    {
        echo $out . "<br />";
    }
}
?>
harry at nospam dot thestorm dot plus dot com 16-Feb-2012 12:50
To read a namespace node you have to use the children method.

<?php

$xml = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<people xmlns:p="http://example.org/ns" xmlns:t="http://example.org/test">
    <p:person id="1">John Doe</p:person>
    <p:person id="2">Susie Q. Public</p:person>
</people>
XML;

$sxe = new SimpleXMLElement($xml);

$ns = $sxe->getNamespaces(true);

$child = $sxe->children($ns['p']);

foreach ($child->person as $out_ns)
{
    echo $out_ns;
}

?>


Returns the sub-elements of the current element

  • « SimpleXMLElement::getNamespaces
  • SimpleXMLElement::hasChildren »
  • PHP Manual
  • SimpleXMLElement
  • Returns the sub-elements of the current element

SimpleXMLElement::getChildren

(Bir sürüm bilgisi bulunamadı; sadece Git'te olabilir.)

SimpleXMLElement::getChildren — Returns the sub-elements of the current element

Açıklama

public SimpleXMLElement::getChildren(): ?SimpleXMLElement
Uyarı

Prior to PHP 8.0, SimpleXMLElement::getChildren() was only declared on the subclass SimpleXMLIterator.

This method returns a SimpleXMLElement object containing sub-elements of the current SimpleXMLElement element.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

Returns a SimpleXMLElement object containing the sub-elements of the current element.

Örnekler

Örnek 1 Return the sub-elements of the current element

<?php
$xml = <<<XML
<books>
<book>
<title>PHP Basics</title>
<author>Jim Smith</author>
</book>
<book>XML basics</book>
</books>
XML;

$xmlElement = new SimpleXMLElement($xml);
for ($xmlElement->rewind(); $xmlElement->valid(); $xmlElement->next()) {
foreach($xmlElement->getChildren() as $name => $data) {
echo "The $name is '$data' from the class " . get_class($data) . "\n";
}
}
?>

Yukarıdaki örneğin çıktısı:

The title is 'PHP Basics' from the class SimpleXMLElement
The author is 'Jim Smith' from the class SimpleXMLElement

User Contributed Notes

There are no user contributed notes for this page.


Checks whether the current element has sub elements

  • « SimpleXMLElement::getChildren
  • SimpleXMLElement::key »
  • PHP Manual
  • SimpleXMLElement
  • Checks whether the current element has sub elements

SimpleXMLElement::hasChildren

(Bir sürüm bilgisi bulunamadı; sadece Git'te olabilir.)

SimpleXMLElement::hasChildren — Checks whether the current element has sub elements

Açıklama

public SimpleXMLElement::hasChildren(): bool
Uyarı

Prior to PHP 8.0, SimpleXMLElement::hasChildren() was only declared on the subclass SimpleXMLIterator.

This method checks whether the current SimpleXMLElement element has sub-elements.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

true if the current element has sub-elements, otherwise false

Örnekler

Örnek 1 Check whether the current element has sub-elements

<?php
$xml = <<<XML
<books>
<book>
<title>PHP Basics</title>
<author>Jim Smith</author>
</book>
<book>XML basics</book>
</books>
XML;

$xmlElement = new SimpleXMLElement($xml);
for ($xmlElement->rewind(); $xmlElement->valid(); $xmlElement->next()) {
if ($xmlElement->hasChildren()) {
var_dump($xmlElement->current());
}
}
?>

Yukarıdaki örneğin çıktısı:

object(SimpleXMLElement)#2 (2) {
  ["title"]=>
  string(10) "PHP Basics"
  ["author"]=>
  string(9) "Jim Smith"
}

User Contributed Notes

There are no user contributed notes for this page.


Return current key

  • « SimpleXMLElement::hasChildren
  • SimpleXMLElement::next »
  • PHP Manual
  • SimpleXMLElement
  • Return current key

SimpleXMLElement::key

(Bir sürüm bilgisi bulunamadı; sadece Git'te olabilir.)

SimpleXMLElement::key — Return current key

Açıklama

public SimpleXMLElement::key(): string
Uyarı

Prior to PHP 8.0, SimpleXMLElement::key() was only declared on the subclass SimpleXMLIterator.

This method gets the XML tag name of the current element.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

Returns the XML tag name of the element referenced by the current SimpleXMLElement object.

Hatalar/İstisnalar

Throws an Error on failure.

Sürüm Bilgisi

Sürüm: | Açıklama
8.1.0 | An Error is now thrown if SimpleXMLElement::key() is called on an invalid iterator. Previously, false was returned.

Örnekler

Örnek 1 Get the current XML tag key

<?php
$xmlElement = new SimpleXMLElement('<books><book>PHP basics</book><book>XML basics</book></books>');

echo var_dump($xmlElement->key());
$xmlElement->rewind(); // rewind to the first element
echo var_dump($xmlElement->key());

?>

Yukarıdaki örneğin çıktısı:

bool(false)
string(4) "book"

User Contributed Notes

There are no user contributed notes for this page.


Move to next element

  • « SimpleXMLElement::key
  • SimpleXMLElement::registerXPathNamespace »
  • PHP Manual
  • SimpleXMLElement
  • Move to next element

SimpleXMLElement::next

(Bir sürüm bilgisi bulunamadı; sadece Git'te olabilir.)

SimpleXMLElement::next — Move to next element

Açıklama

public SimpleXMLElement::next(): void
Uyarı

Prior to PHP 8.0, SimpleXMLElement::next() was only declared on the subclass SimpleXMLIterator.

This method moves the SimpleXMLElement to the next element.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

Hiçbir değer dönmez.

Örnekler

Örnek 1 Move to the next element

<?php
$xmlElement = new SimpleXMLElement('<books><book>PHP Basics</book><book>XML basics</book></books>');
$xmlElement->rewind(); // rewind to the first element
$xmlElement->next();

var_dump($xmlElement->current());
?>

Yukarıdaki örneğin çıktısı:

object(SimpleXMLElement)#2 (1) {
  [0]=>
  string(10) "XML basics"
}

User Contributed Notes

There are no user contributed notes for this page.


Sonraki XPath ifadesi için bir önek/isim alanı bağlamı oluşturur

  • « SimpleXMLElement::next
  • SimpleXMLElement::rewind »
  • PHP Manual
  • SimpleXMLElement
  • Sonraki XPath ifadesi için bir önek/isim alanı bağlamı oluşturur

SimpleXMLElement::registerXPathNamespace

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SimpleXMLElement::registerXPathNamespace — Sonraki XPath ifadesi için bir önek/isim alanı bağlamı oluşturur

Açıklama

public SimpleXMLElement::registerXPathNamespace(string $önek, string $isimalanı): bool

Sonraki XPath ifadesi için bir önek/isim alanı bağlamı oluşturur. Özellikle, XML belgenin, isim alanı öneklerinin değiştirilmesi durumunda kullanışlıdır. Bu yöntem, isim alanındaki düğümlere kodda değişiklik yapmadan erişmek amacıyla ilişkili isim alanı için bir önek oluşturur.

Bağımsız Değişkenler

önek

isimalanı ile belirtilen isim alanı için Xpath ifadesinde kullanılacak isim alanı öneki.

isimalanı

Xpath ifadesi için kullanılacak isim alanı. Belirtilen önek'in kullanıldığı XPath ifadeleri veya XML belgelerinin bir sonuç üretmesi için kullanılacak isim alanı.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Örnekler

Örnek 1 - Bir XPath ifadesinde kullanılacak isim alanı önekinin belirtilmesi

<?php

$xml = <<<EOD
<book xmlns:chap="http://example.org/chapter-title">
<title>XPath Kitabı</title>
<chapter id="1">
<chap:title>1. Fasıl</chap:title>
<para>Önemli ifade çeşitlerinden biri konumsal yoldur. Bir konumsal
yol bağlamsal düğüme göreli olarak bir düğüm kümesini seçer. İfadenin
konumsal yol olduğu durumda değerlendirme sonucu, konumsal yol
tarafından seçilen düğümleri içeren düğüm kümesidir. Konumsal yollar
düğüm kümelerini süzmekte kullanılan ifadeleri dönüşümlü olarak
içerebilir. İki çeşit konumsal yol vardır: Göreli konumsal yollar ve
mutlak konumsal yollar.</para>
</chapter>
<chapter id="2">
<chap:title>2. Fasıl</chap:title>
<para>Bir göreli konumsal yol, / imleriyle birbirlerinden ayrılmış bir
veya daha fazla konumdan oluşur. Göreli konumsal yoldaki bu konumlar
soldan sağa birlikte bir bütün oluştururlar. Her konumda bağlamsal
düğüme göreli bir düğüm kümesi seçilir ve kümedeki her düğüm sonraki
konumun bağlamsal düğümü olur. Bir mutlak konumsal yol / iminden sonra
gelen bir göreli konumsal yoldan oluşur. Tek başına / imi, bağlamsal
düğümü içeren belgenin kök düğümünü seçer. Kök düğüm, bu imden sonra
gelen göreli konumsal yolun ilk konumunun bağlamsal düğümü olur.</para>
</chapter>
</book>
EOD;

$sxe = new SimpleXMLElement($xml);

$sxe->registerXPathNamespace('c', 'http://example.org/chapter-title');
$result = $sxe->xpath('//c:title');

foreach ($result as $title) {
echo $title . "\n";
}

?>

Yukarıdaki örneğin çıktısı:

Chapter 1
Chapter 2

Örnekte, bir isim alanının chap önekiyle bir XML belgede nasıl gösterildiğine dikkat edin. Bu belgenin (veya bir benzerinin) geçmişte, aynı isim alanı için c önekini kullanmış olduğunu varsayalım. Önek değiştiğinden XPath ifadesi beklenen sonucu vermeyecek ve ifadenin değiştirilmesi gerekecektir. İşte bu noktada registerXPathNamespace ile bu gibi önek değişikliklerinde ifadenin değiştirilmesi gereğini ortadan kaldırmak mümkün olur.

Ayrıca Bakınız

  • SimpleXMLElement::xpath() - Bir XML veri üzerinde bir XPath sorgusu çalıştırır
  • SimpleXMLElement::getDocNamespaces() - Belgede bildirilmiş isim alanlarını döndürür
  • SimpleXMLElement::getNamespaces() - Belgede kullanılan isim alanlarını döndürür

User Contributed Notes

Lea Hayes 12-Jan-2011 09:56
Looks like you have to use registerXPathNamespace for each node when using XPath:

<?php
$xml = simplexml_load_file($filename);

$xml->registerXPathNamespace('test', 'http://example.com');

$shopping_element = $xml->xpath('test:shopping-list');

// Breaks with out the following line:

$shopping_element->registerXPathNamespace('test', 'http://example.com');

$fruit = $shopping_element->xpath('test:fruit');
?>


Rewind to the first element

  • « SimpleXMLElement::registerXPathNamespace
  • SimpleXMLElement::saveXML »
  • PHP Manual
  • SimpleXMLElement
  • Rewind to the first element

SimpleXMLElement::rewind

(Bir sürüm bilgisi bulunamadı; sadece Git'te olabilir.)

SimpleXMLElement::rewind — Rewind to the first element

Açıklama

public SimpleXMLElement::rewind(): void
Uyarı

Prior to PHP 8.0, SimpleXMLElement::rewind() was only declared on the subclass SimpleXMLIterator.

This method rewinds the SimpleXMLElement to the first element.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

Hiçbir değer dönmez.

Örnekler

Örnek 1 Rewind to the first element

<?php
$xmlElement = new SimpleXMLElement('<books><book>PHP Basics</book><book>XML Basics</book></books>');
$xmlElement->rewind();

var_dump($xmlElement->current());
?>

Yukarıdaki örneğin çıktısı:

object(SimpleXMLElement)#2 (1) {
  [0]=>
  string(10) "PHP Basics"
}

User Contributed Notes

There are no user contributed notes for this page.


Takma Adı: SimpleXMLElement::asXML

  • « SimpleXMLElement::rewind
  • SimpleXMLElement::__toString »
  • PHP Manual
  • SimpleXMLElement
  • Takma Adı: SimpleXMLElement::asXML

SimpleXMLElement::saveXML

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

SimpleXMLElement::saveXML — Takma Adı: SimpleXMLElement::asXML()

Açıklama

Bu yöntem şu yöntemin takma adıdır: SimpleXMLElement::asXML()

User Contributed Notes

There are no user contributed notes for this page.


Returns the string content

  • « SimpleXMLElement::saveXML
  • SimpleXMLElement::valid »
  • PHP Manual
  • SimpleXMLElement
  • Returns the string content

SimpleXMLElement::__toString

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SimpleXMLElement::__toString — Returns the string content

Açıklama

public SimpleXMLElement::__toString(): string

Returns text content that is directly in this element. Does not return text content that is inside this element's children.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

Returns the string content on success or an empty string on failure.

Örnekler

Örnek 1 Get string content

<?php
$xml = new SimpleXMLElement('<a>1 <b>2 </b>3</a>');
echo $xml;
?>

Yukarıdaki örneğin çıktısı:

1 3

Ayrıca Bakınız

  • SimpleXMLElement::asXML() - Nesnenin içerdiği belgeyi iyi biçemli bir XML dizge olarak döndürür

User Contributed Notes

mmj at example dot net 02-Oct-2017 03:22
__toString() is not intended to be called directly.

Instead, it defines what is returned when the object is cast to string, either explicitly with:

(string)$element

Or implicitly, when used in certain contexts which would cause a conversion to string.
Patanjali 27-Mar-2016 10:55
[Someone remove that other Patanjali's note, because it has errors! :-(]

For those for whom it may not be immediately obvious from the example, the echo is what is forcing __toString() to be used.

However, to assign the text of a node (but not its children) to a variable:

$XML = new SimpleXMLElement('<p>Hello<span> world</span>.<span> Good day!</span></p>');

$Text = $XML->__toString();

is effectively:
$Text = 'Hello.'; // The <span>s are ignored.

Either of:
$Text = $XML->span->__toString();
$Text = $XML->span[0]->__toString();

is effectively:
$Text = ' world'; // Only the first <span> is used.

$Text = $XML->span[1]->__toString();

is effectively:
$Text = ' Good day!'; // Only the second <span> is used.
Patanjali 27-Mar-2016 10:36
For those for whom it may not be immediately obvious from the example, to assign the text of a node (but not its children) to a variable:

$XML = new SimpleXMLElement('<p>Hello<span> world</span>.<span> Good day!</span></p>');

Either:
$Text = $XML;
$Text = $XML->__String();

is effectively:
$Text = 'Hello.'; // The <span>s are ignored.

Either of:
$Text = $XML->span;
$Text = $XML->span[0];

is effectively:
$Text = ' world'; // Only the first <span> is used.

$Text = $XML->span[1];

is effectively:
$Text = ' Good day!'; // Only the second <span> is used.


Check whether the current element is valid

  • « SimpleXMLElement::__toString
  • SimpleXMLElement::xpath »
  • PHP Manual
  • SimpleXMLElement
  • Check whether the current element is valid

SimpleXMLElement::valid

(Bir sürüm bilgisi bulunamadı; sadece Git'te olabilir.)

SimpleXMLElement::valid — Check whether the current element is valid

Açıklama

public SimpleXMLElement::valid(): bool
Uyarı

Prior to PHP 8.0, SimpleXMLElement::valid() was only declared on the subclass SimpleXMLIterator.

This method checks if the current element is valid after calls to SimpleXMLElement::rewind() or SimpleXMLElement::next().

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

Returns true if the current element is valid, otherwise false

Örnekler

Örnek 1 Check whether the current element is valid

<?php
$xmlElement = new SimpleXMLElement('<books><book>SQL Basics</book></books>');

$xmlElement->rewind(); // rewind to the first element
echo var_dump($xmlElement->valid()); // bool(true)

$xmlElement->next(); // advance to the next element
echo var_dump($xmlElement->valid()); // bool(false) because there is only one element
?>

User Contributed Notes

There are no user contributed notes for this page.


Bir XML veri üzerinde bir XPath sorgusu çalıştırır

  • « SimpleXMLElement::valid
  • SimpleXMLIterator »
  • PHP Manual
  • SimpleXMLElement
  • Bir XML veri üzerinde bir XPath sorgusu çalıştırır

SimpleXMLElement::xpath

(PHP 5, PHP 7, PHP 8)

SimpleXMLElement::xpath — Bir XML veri üzerinde bir XPath sorgusu çalıştırır

Açıklama

public SimpleXMLElement::xpath(string $ifade): array|null|false

ifade ile belirtilen XPath yoluyla eşleşen SimpleXMLElement düğümlerini döndürür.

Bağımsız Değişkenler

ifade

Bir XPath yolu.

Dönen Değerler

Başarısız olursa false yoksa SimpleXMLElement nesnelerinden oluşan bir dizi veya null döndürür.

Örnekler

Örnek 1 - Xpath örneği

<?php
$string = <<<XML
<a>
<b>
<c>text</c>
<c>stuff</c>
</b>
<d>
<c>code</c>
</d>
</a>
XML;

$xml = new SimpleXMLElement($string);

/* Search for <a><b><c> */
$result = $xml->xpath('/a/b/c');

foreach ($result as $node) {
echo '/a/b/c: ',$node,"\n";
}

/* Göreli yollar da çalışır... */
$result = $xml->xpath('b/c');

foreach ($result as $node) {
echo 'b/c: ',$node,"\n";
}
?>

Yukarıdaki örneğin çıktısı:

/a/b/c: text
/a/b/c: stuff
b/c: text
b/c: stuff

İki sonucun da aynı oluşuna dikkat edin.

Ayrıca Bakınız

  • SimpleXMLElement::registerXPathNamespace() - Sonraki XPath ifadesi için bir önek/isim alanı bağlamı oluşturur
  • SimpleXMLElement::getDocNamespaces() - Belgede bildirilmiş isim alanlarını döndürür
  • SimpleXMLElement::getNamespaces() - Belgede kullanılan isim alanlarını döndürür
  • Temel SimpleXML kullanımı

User Contributed Notes

Filippo Vicari 28-Sep-2022 09:56
You can also search for siblings with a condition. For example immagine to need the title for a desidered language which with the two siblings tags in this XML file

<?xml version="1.0" encoding="UTF-8"?>
<IDOC BEGIN="1">
...
<PRODUCT SEGMENT="1">
    <PRODUCTCODE>005</PRODUCTCODE>
    <LANG>E</LANG>
    <TITLE>Name</TITLE>
    <LANG_ISO>EN</LANG_ISO>
</PRODUCT>
<PRODUCT SEGMENT="1">
    <PRODUCTCODE>005</PRODUCTCODE>
    <LANG>I</LANG>
    <TITLE>Name I</TITLE>
    <LANG_ISO>IT</LANG_ISO>
</PRODUCT>
...
</IDOC>

Let's break it down
<?php
"//PRODUCT" // find product tag
"//PRODUCT/LANG[.='E']" // whithin it find lang == "E"
"//PRODUCT/LANG[.='E']/../"  // go up one step
"//PRODUCT/LANG[.='E']/../TITLE" // get the title Tag content

// Combined search and find siblings ----------------------------
$xml = simplexml_load_file("fname.xml");

// Search for the TITLE field which sibling is == "E" ----------
$title_E_array = $xml->xpath("//PRODUCT/LANG[.='E']/../TITLE"); // By default gives back an array of  SimpleXmlElement
$title = (string) $xml->xpath("//PRODUCT/LANG[.='E']/../TITLE")[0]; // in this way saves only the value as a string
?>
awoerl at contentserv dot com 31-Jan-2017 12:43
I tried to use string functions in the xpath statements I'm passing, like

$oXml->xpath('substring(/foo/bar/text(), 0, 4)');

But no matter which syntax I'm trying I never the string functions to work.

Is it possible, that the xpath method does not support function calls?
Alexis Peters 11-Oct-2016 09:11
If you want this behavior for an multidimensional array you can use this:

<?php
function apath(&$a, $path, $value = NULL) {
    $pathes = explode('/',$path);

    if(count($pathes) > 1) {
        $firstPart = array_shift($pathes);
        if(!isset($a[$firstPart])) {
            $a[$firstPart] = array();
        }
        return apath($a[$firstPart], implode('/', $pathes), $value);
    } else {
        if($value){
            $a[$path] = $value;
        } else {
            return $a[$path];
        }
    }
}

apath($a, 'user/name', array('prename' => 'foo', 'lastname' => 'bar'));

$a = array();
var_dump($a);
var_dump(apath($a, 'user/name/lastname'));

?>
Gives you this:

array(1) {
  ["user"]=>
  array(1) {
    ["name"]=>
    array(2) {
      ["prename"]=>
      string(5) "foo"
      ["lastname"]=>
      string(8) "bar"
    }
  }
}
string(8) "bar"
Anonymous 30-Jan-2015 05:30
As mentioned already xpath will fail is the default namespace 'xmlns' is used like in:

<?php

$xmlstring = $string = <<<XML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
    <fileVersion appName="xl" />
</workbook>
XML;
?>

xpath cannot search through the xml without explicitly specifying a namespace.
There are 2 options :
1. rename the 'xmlns' into something else to trick xpath into believing that no default namespace is defined.
2. register a string as the default namespace and use that string in all your queries. Unfortunatly, an empty space will not work.
No other option currently exist until XPath2.0 becomes the default library.
leonjanzen at gmail dot com 19-Oct-2014 07:48
To run an xpath query on an XML document that has a namespace, the namespace must be registered with SimpleXMLElement::registerXPathNamespace() before running the query. If the XML document namespace does not include a prefix, you must make up an arbitrary one, and then use it in your query.

<?php
$strXml= <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<mydoc xmlns="http://www.url.com/myns">
    <message>Test message</message>
</mydoc>
XML;

$xmlDoc=new \SimpleXMLElement($strXml);

foreach($xmlDoc->getDocNamespaces() as $strPrefix => $strNamespace) {
    if(strlen($strPrefix)==0) {
        $strPrefix="a"; //Assign an arbitrary namespace prefix.
    }
    $xmlDoc->registerXPathNamespace($strPrefix,$strNamespace);
}

print($xmlDoc->xpath("//a:message")[0]); //Use the arbitrary namespace prefix in the query.
?>

This will output:

Test message
BenjaminBeck at gmx dot de 13-Sep-2014 01:36
If you want to search multiple values from xml on the behalf or one value then this code can be helpfull to you.

if there is:
<Record>
  <country>Pakistan</country>
  <code>+92</code>
  <Value>100<Value>
</Record>

then try this one:
<?php
$sxe =  simplexml_load_file("countries.XML");
foreach($sxe->xpath('//RECORD') as $item) {

    $v = $row->xpath('./country[. ="Pakistan"]');
    if($v[0]){
        print $item->country;
        print $item->code;
        print $item->value;
    }

}
?>
yetihehe at yetihehe dot com 12-Jan-2011 02:21
Xpath actually knows which element is root regardless of element on which you execute it. Example:

<?php

$string = <<<XML
<a>
 <b>
  <c>text</c>
  <c>stuff</c>
 </b>
 <b>
  <c>code</c>
 </b>
</a>
XML;

header('content-type: text/plain');

$xml = new SimpleXMLElement($string);

//relative to root
$b0=$xml->b[0]->xpath('//c');
while(list( , $node) = each($b0)) {
    echo 'b[0]: //c: ',$node,"\n";
}

$b1=$xml->b[1]->xpath('//c');
while(list( , $node) = each($b1)) {
    echo 'b[1]: //c: ',$node,"\n";
}

echo "\n";

//relative to current element
$b0=$xml->b[0]->xpath('.//c');
while(list( , $node) = each($b0)) {
    echo 'b[0]: .//c: ',$node,"\n";
}

$b1=$xml->b[1]->xpath('.//c');
while(list( , $node) = each($b1)) {
    echo 'b[1]: .//c: ',$node,"\n";
}

?>

Will return:
b[0]: //c: text
b[0]: //c: stuff
b[0]: //c: code
b[1]: //c: text
b[1]: //c: stuff
b[1]: //c: code

b[0]: .//c: text
b[0]: .//c: stuff
b[1]: .//c: code
stefan at efectos dot nl 09-Nov-2010 02:33
Having problems selecting information through xpath when there are namespaces in the XML?

Try this quick and dirty solution, but it works:

<?php
$objImageXml = new SimpleXMLElement($objImageXml->asXML());
?>
grummfy at gmail dot com 11-Feb-2010 04:08
On a xml that have namespace you need to do this before your xpath request (or empty array will be return) :

<?php
$string = str_replace('xmlns=', 'ns=', $string); //$string is a string that contains xml...
?>
DrupalFocus at earthlink dot net 02-Dec-2009 12:27
Looks like the relative path is relative to the SimpleXMLElement object that you call the Xpath() method on.  Basically chopping off the root element.

<?php
$string = <<<XML
<foo>
  <bar>
    <a>
     <b>
      <c>text</c>
      <c>stuff</c>
     </b>
     <d>
      <c>code</c>
     </d>
    </a>
  </bar>
</foo>
XML;

$xml = new SimpleXMLElement($string);
/* Search for children using 2nds level relative <bar><a><b><c> */
$result = $xml->xpath('a/b/c');
if ($result)
foreach($result as $node) {
    drupal_set_message(t('a/b/c: @node.', array('@node' => $node)));
}
else
  drupal_set_message(t('a/b/c: failed.'));

/* it relative to the SimpleXMLElement Search for 2nds level relative <bar><a><b><c> but where is foo */
$bar = $xml->bar;
$result = $bar->xpath('a/b/c');
foreach($result as $node) {
    drupal_set_message(t('bar->a/b/c: @node.', array('@node' => $node)));
}
?>

results in :
#
# a/b/c: failed.
# bar->a/b/c: text.
# bar->a/b/c: stuff.
behnam@zwnj 24-Sep-2009 01:34
Seems like this function cannot return the result of XPath string() [1] function.  For example if you query xpath("string(a/@b)") you will get bool(false) although the node "a" may have the attribute "b" set to a non-empty string.

[1] http://www.w3.org/TR/xpath#section-String-Functions
Anti Veeranna 17-Jun-2009 03:50
Whether it returns a false or empty array for a non-existing path seems to depend on libxml version.

I tried the following code:

<?php
$data = '<foo><bar></bar></foo>';
$xml = simplexml_load_string($data);
print gettype($xml->xpath('/first/second'));
?>

On a machine with libxml 2.6.16 and PHP 5.2.8 I got back boolean. On a different machine with libxml 2.7.3 and PHP 5.2.8/5.2.9 I got back empty array.

You can check the libxml version from command line by executing: php --ri libxml

or simply look at phpinfo() output
arealzone-czernobyl at yahoo dot de 11-Jun-2009 03:23
The simplest way to count nodes in a XML doc:

<?php
$xml = new SimpleXMLElement($xmlstr);

$xmlNode = $xml->xpath('root/yourNodeName');
$nodeCount = count($xmlNode);

echo $nodeCount;
?>
anemik 02-Jul-2008 03:46
If you want to find easly all records satisfying some condition in XML data like

....
   <book id="bk101">
      <author>Gambardella, Matthew</author>
      <title>XML Developer's Guide</title>
      <genre>Computer</genre>
      <price>44.95</price>
   </book>
   <book id="bk102">
      <author>Ralls, Kim</author>
      <title>Midnight Rain</title>
      <genre>Fantasy</genre>
      <price>5.95</price>
   </book>
...

try example below

<?php

$xmlStr = file_get_contents('data/books.xml');
$xml = new SimpleXMLElement($xmlStr);
// seach records by tag value:
// find all book records with price higher than 40$
$res = $xml->xpath("book/price[.>'40']/parent::*");
print_r($res);

?>

You will see response like:
Array (
[0] => SimpleXMLElement Object
        (
            [@attributes] => Array
                (
                    [id] => bk101
                )

            [author] => Gambardella, Matthew
            [title] => XML Developer's Guide
            [genre] => Computer
            [price] => 44.95
            [publish_date] => 2000-10-01
            [description] => An in-depth look at creating applications
      with XML.
        )
...
paul at pmtlogic dot com 18-Jun-2008 12:17
xpath doesn't seem to be able to handle single quotes embedded in the query itself. For instance, I want to find geo coordinates in an xml file based on country name.

xml snippet:

<zones>
<zone country="Cote d'Ivoire" fullName="Yamoussoukro" geo="6.82,-5.28" id="1050"><url prefix="1001" value="fiji.html" /><url prefix="1002" value="C" /></zone>
</zones>

The following code does not work:

<?php
$xml = simplexml_load_file("my.xml");
$result = $xml->xpath("//zone[@country='Cote d\'Ivoire']");

foreach ( $result[0]->attributes() as $key => $val ) {
    print "<div class='coords'>$key: $val</div>\n";
}
?>

I have tried many variations on the embedded single quote (i.e. escape codes) but with no result. W3C offers no explanation either.

In addition, there doesn't seem to be any way of embedding wildcards in the attribute value (you can embed wildcards in the attribute name). Otherwise the following might be a reasonable substitute in this context:

<?php $result = $xml->xpath("//zone[@country='Cote d*Ivoire']"); ?>
canuemail at gmail dot com 05-May-2008 05:05
If you want to search multiple values from xml on the behalf or one value then this code can be helpfull to you.

if there is:
<Record>
  <country>Pakistan</country>
  <code>+92</code>
  <Value>100<Value>
</Record>

then try this one:
<?php
$sxe =  simplexml_load_file("countries.XML");
foreach($sxe->xpath('//RECORD') as $item) {

    $row = simplexml_load_string($item->asXML());
    $v = $row->xpath('//country[. ="Pakistan"]');
    if($v[0]){
        print $item->country;
        print $item->code;
        print $item->value;
    }

}
?>
Hugh 18-Dec-2005 03:23
Note that this function does not ALWAYS return an array. It seems that if the specified path is not found in the document, it will return false. You need to check for the false value before using foreach, if you wish to avoid a warning (and often to handle errors or control program flow in this situation).
drewish at katherinehouse dot com 10-Jul-2005 06:16
xpath() can also be used to select elements by their attributes. For a good XPath reference check out: http://www.w3schools.com/xpath/xpath_syntax.asp

<?php
$string = <<<XML
<sizes>
    <size label="Square" width="75" height="75" />
    <size label="Thumbnail" width="100" height="62" />
    <size label="Small" width="112" height="69" />
    <size label="Large" width="112" height="69" />
</sizes>
XML;

$xml = simplexml_load_string($string);
$result = $xml->xpath("//size[@label='Large']");

// print the first (and only) member of the array
echo $result[0]->asXml();
?>

The script would print:
<size label="Large" width="112" height="69"/>


The SimpleXMLIterator class

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

Giriş

The SimpleXMLIterator provides recursive iteration over all nodes of a SimpleXMLElement object.

Sınıf Sözdizimi

class SimpleXMLIterator extends SimpleXMLElement {
/* Miras alınan yöntemler */
public SimpleXMLElement::__construct(
string $veri,
int $seçenekler = 0,
bool $veri_bir_url = false,
string $isimalanı_veya_önek = "",
bool $önek_var = false
)
public SimpleXMLElement::addAttribute(string $isim, string $değer, ?string $isimalanı = null): void
public SimpleXMLElement::addChild(string $isim, ?string $değer = null, ?string $isimalanı = null): ?SimpleXMLElement
public SimpleXMLElement::asXML(?string $dosya = null): string|bool
public SimpleXMLElement::attributes(?string $isimalanı_veya_önek = null, bool $önek_var = false): ?SimpleXMLElement
public SimpleXMLElement::children(?string $isimalanı_veya_önek = null, bool $önek_var = false): ?SimpleXMLElement
public SimpleXMLElement::count(): int
public SimpleXMLElement::current(): SimpleXMLElement
public SimpleXMLElement::getDocNamespaces(bool $ardışık = false, bool $kökten = true): array|false
public SimpleXMLElement::getName(): string
public SimpleXMLElement::getNamespaces(bool $ardışık = false): array
public SimpleXMLElement::getChildren(): ?SimpleXMLElement
public SimpleXMLElement::hasChildren(): bool
public SimpleXMLElement::key(): string
public SimpleXMLElement::next(): void
public SimpleXMLElement::registerXPathNamespace(string $önek, string $isimalanı): bool
public SimpleXMLElement::rewind(): void
public SimpleXMLElement::__toString(): string
public SimpleXMLElement::valid(): bool
public SimpleXMLElement::xpath(string $ifade): array|null|false
}

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | Iterator methods (SimpleXMLIterator::hasChildren(), SimpleXMLIterator::getChildren(), SimpleXMLIterator::current(), SimpleXMLIterator::key(), SimpleXMLIterator::next(),SimpleXMLIterator::rewind(), SimpleXMLIterator::valid()) were moved to SimpleXMLElement.
8.0.0 | SimpleXMLIterator implements Stringable now.

User Contributed Notes

prouchetvincent at free dot fr 10-Oct-2020 12:47
<?php
=======================================================
$index =
<?xml version="1.0" encoding="UTF-8"?>
<root>
    <article id="8" visibility="true" filename="2020-10-08" fileExtension="xml">
            <tag>xml</tag>
            <tag>php</tag>
            <tag>experiment</tag>
    </article>
    <article id="7" visibility="true" filename="2020-10-07" fileExtension="xml">
            <tag>xml</tag>
            <tag>php</tag>
            <tag>experiment</tag>
    </article>
    <article id="6" visibility="true" filename="2020-10-02" fileExtension="xml">
            <tag>xml</tag>
            <tag>php</tag>
            <tag>experiment</tag>
    </article>
    <article id="5" visibility="true" filename="2020-09-30" fileExtension="xml">
            <tag>xml</tag>
            <tag>php</tag>
            <tag>experiment</tag>
    </article>
    <article id="4" visibility="true" filename="2020-09-26" fileExtension="xml">
            <tag>xml</tag>
            <tag>php</tag>
            <tag>experiment</tag>
    </article>
    <article id="3" visibility="true" filename="2020-09-22"     fileExtension="xml">
            <tag>xml</tag>
            <tag>php</tag>
            <tag>experiment</tag>
    </article>
    <article id="2" visibility="true" filename="2020-09-20"     fileExtension="xml">
            <tag>xml</tag>
            <tag>php</tag>
            <tag>experiment</tag>
    </article>
        <article id="1" visibility="true" filename="hello world" fileExtension="xml">
            Hello World
            <tag>xml</tag>
            <tag>php</tag>
            <tag>experiment</tag>
    </article>
</root>
====================================================================
?>
If you have to use an iterator to parse your XML
and need tu get an attribute of tags of this iterator then
use the fonction
->current()
of simpleXMLIterator on your object before
->attributes()->{attibute name}
<?php
$file="";
try{
     $index = new SimpleXMLIterator ( file_get_contents ( FILEDIRECTORY. 'index.xml' ) );}
catch(Exception $e) {whatever you want to do on error}}

for( $index->rewind(); $index->valid(); $index->next() ) {
    try {
          $file = file_get_contents(FILESDIRECTORY.$index->current()->attributes()->{'fileName'}. '.xml' );
    } catch (Exception $e) {whatever you want to do on error}
    $article = new Article ();
    $article->setXMLArticle ($file);
    array_push( $this->articles, $article );
    $file ="";
    }
}
?>
This exemple use a custom made Article object that itself parse the file given to him to initialise its properties .
Here we open a file (Yes I use constant for my directories)
make it a simpleXMLIterator and parse article elements to get the filename attribute to use it to open another XML file for data collection.
don't forget !!! In PHP Object created by new ClassName() are ALWAYS given by reference that is why new Article() in inside the loop and not outside
(yhea, I did that mistake)
XMLIterator are powerfull yet harder to understand in themselves but once passed that one point.
They are very more easier to use than plain arrays.
rukkykf at gmail dot com 16-Dec-2018 06:54
I think it's worth mentioning that you need to call the rewind() method on the SimpleXMLIterator object immediately after initialization before you can start doing any other operations on the object. An example:

<?php
$xml = new SimpleXMLIterator('file.xml', null, true);

// $x here will be set to null because the rewind() method has not been called
$x = $xml->current();

$xml->rewind();

// $x here will be set to the first element
$x = $xml->current();

?>
php-lover at live dot com 05-Oct-2015 09:50
Function to extract SimpleXMLElement data to array.

function extract($sxe = null) {
    if (!$sxe instanceOf SimpleXMLElement)
        return array();

    $extract = array();

    foreach ($sxe->children() as $key => $value) {
        if (array_key_exists($key, $extract)) {
            if (!isset($extract[$key][0])) {
                $tmp_extract = $extract[$key];
                $extract[$key] = array();
                $extract[$key][0] = $tmp_extract;
            } else
                $extract[$key] = (array) $extract[$key];
        }

        if ($value->count()) {
            if (isset($extract[$key]) && is_array($extract[$key]))
                $extract[$key][] = $this->extract($value);
            else
                $extract[$key] = $this->extract($value);
        } else {
            if (isset($extract[$key]) && is_array($extract[$key]))
                $extract[$key][] = empty(strval($value)) ? null : strval($value);
            else
                $extract[$key] = empty(strval($value)) ? null : strval($value);
        }
    }

    return $extract;
}
centy2010 at hotmail dot com 16-Jul-2014 03:22
I filled my database from an XML file about 1260 Kb.
I made my process less than a second. Simply by using SimpleXML.

I give you a little example of the usage to fill a database.
Given the table universe.
With 4 columns Coords, Planet_Name, Player_id, Moon_Size.

Now You have a XML file named universe.xml with this kind of data.
I enclose the data within php tags but it's a file :p
<?php
$xml = <<<EOT
<?xml version="1.0" encoding="UTF-8"?>
<universe xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" -
xsi:noNamespaceSchemaLocation="http://s127-fr.ogame.gameforge.com/api/xsd/universe.xsd" -
timestamp="1405413350" serverId="fr127">
    <planet id="1" player="1" name="Arakis" coords="1:1:2">
        <moon id="2" name="Mond" size="4998"/>
    </planet>
    <planet id="33620176" player="100000" name="GameAdmin" coords="1:1:3"/>
    <planet id="33620179" player="100003" name="Heimatplanet" coords="1:1:1"/>
    <planet id="33620186" player="100004" name="OGame Team" coords="6:250:1"/>
    <planet id="33620242" player="100058" name="KnS" coords="9:1:6">
        <moon id="33668391" name="Lune" size="8831"/>
    </planet>
</universe>
EOT;
?>

Now how to bring these data in my 4 columns table :

<?php
$newfname = $path."Universe.XML";
$mydata = new SimpleXmlIterator($newfname, 0, true);
$myquery = "INSERT INTO `".$tablename."` (`coords`,`planet_name`, `player_id`, `moon_size`) VALUES ";
for ($mydata->rewind();$mydata->valid();$mydata->next()) {
    $myquery.= " ('".$mydata->current()->attributes()['coords']
_."','".utf8_decode($mydata->current()->attributes()['name'])
_."','".utf8_decode($mydata->current()->attributes()['player'])
_."','";
    if ($mydata->haschildren()) {
        $myquery.= $mydate->current()->children()->attributes()['size']."'),";
    } else {
        $myquery.= "'),";
    }
}
$myquery = rtrim($myquery, ",");
$datatosql = mysql_query($myquery);
?>
hezll at msn dot com 11-Apr-2013 04:34
Most of the time we need to convert the XML to array or JSON , but now I have to completed the requirement of converting XML to XPath which make our template easily geting the data from XML data source due to the Xpath mapping .Here is the function:

<?php

function sxiToXpath($sxi, $key = null, &$tmp = null)
{
    $keys_arr = array();
    //get the keys count array
    for ($sxi->rewind(); $sxi->valid(); $sxi->next())
    {
        $sk = $sxi->key();
        if (array_key_exists($sk, $keys_arr))
        {
            $keys_arr[$sk]+=1;
            $keys_arr[$sk] = $keys_arr[$sk];
        }
        else
        {
            $keys_arr[$sk] = 1;
        }
    }
    //create the xpath
    for ($sxi->rewind(); $sxi->valid(); $sxi->next())
    {
        $sk = $sxi->key();
        if (!isset($$sk))
        {
            $$sk = 1;
        }
        if ($keys_arr[$sk] >= 1)
        {
            $spk = $sk . '[' . $$sk . ']';
            $keys_arr[$sk] = $keys_arr[$sk] - 1;
            $$sk++;
        }
        else
        {
            $spk = $sk;
        }
        $kp = $key ? $key . '/' . $spk : '/' . $sxi->getName() . '/' . $spk;
        if ($sxi->hasChildren())
        {
            sxiToXpath($sxi->getChildren(), $kp, $tmp);
        }
        else
        {
            $tmp[$kp] = strval($sxi->current());
        }
        $at = $sxi->current()->attributes();
        if ($at)
        {
            $tmp_kp = $kp;
            foreach ($at as $k => $v)
            {
                $kp .= '/@' . $k;
                $tmp[$kp] = $v;
                $kp = $tmp_kp;
            }
        }
    }
    return $tmp;
}

function xmlToXpath($xml)
{
    $sxi = new SimpleXmlIterator($xml);
    return sxiToXpath($sxi);
}

/**
 *  How to use the function
 */
$xml = <<<EOT
<?xml version="1.0" encoding="utf8" ?>
<data>
   <item ID="30001">
      <Company>Navarro Corp.</Company>
   </item>
   <item ID="30002" IDd="30002">
      <Company>Performant Systems</Company>
   </item>
   <item ID="30003">
      <Company id='id_test'><g id='id_g'>glove</g></Company>
   </item>
    <item>
    </item>
</data>
EOT;

$rs = xmlToXpath($xml);
print_r($rs);

/**
 * the results may lkie this:
Array
(
    [/data/item[1]/Company[1]] => Navarro Corp.
    [/data/item[1]/@ID] => SimpleXMLIterator Object
        (
            [0] => 30001
        )
    [/data/item[2]/Company[1]] => Performant Systems
    [/data/item[2]/@ID] => SimpleXMLIterator Object
        (
            [0] => 30002
        )

    [/data/item[2]/@IDd] => SimpleXMLIterator Object
        (
            [0] => 30002
        )

    [/data/item[3]/Company[1]/g[1]] => glove
    [/data/item[3]/Company[1]/g[1]/@id] => SimpleXMLIterator Object
        (
            [0] => id_g
        )

    [/data/item[3]/Company[1]/@id] => SimpleXMLIterator Object
        (
            [0] => id_test
        )

    [/data/item[3]/@ID] => SimpleXMLIterator Object
        (
            [0] => 30003
        )

    [/data/item[4]] =>

)
 */

echo "Total:" . count($rs);

echo "<hr>";
/* You can check the xpath result like this */
$xml = new SimpleXMLElement($xml);
foreach ($rs as $k => $v)
{
    echo "Xpath:" . $k . " |Value:" . $v . " ";
    var_dump($xml->xpath($k));
    echo "<br>";
}
ajnsit dot NOSPAM at gmail dot com 17-Mar-2011 10:14
Here's a simple function to convert an XML string to an array -

<?php
// PHP5.3 and above only
function parse($str) {
    $f = function($iter) {
      foreach($iter as $key=>$val)
        $arr[$key][] = ($iter->hasChildren())?
          call_user_func (__FUNCTION__, $val)
          : strval($val);
      return $arr;
    };
    return $f(new SimpleXmlIterator($str, null));
}
?>

PHP 5.2 and below do not have anonymous functions.
But you can create a helper function to achieve the same thing -

<?php
  function parse($str) {
    return parseHelper(new SimpleXmlIterator($str, null));
  }
  function parseHelper($iter) {
    foreach($iter as $key=>$val)
      $arr[$key][] = ($iter->hasChildren())?
        call_user_func (__FUNCTION__, $val)
        : strval($val);
    return $arr;
  }
?>

Using it is straightforward enough -

<?php

$xml = '
<movies>
  <movie>abcd</movie>
  <movie>efgh</movie>
  <movie>hijk</movie>
</movies>';
var_dump(parse($xml));

?>

This will output -

array
  'movie' =>
    array
      0 => string 'abcd' (length=4)
      1 => string 'efgh' (length=4)
      2 => string 'hijk' (length=4)
ratfactor at gmail dot com 19-Jul-2009 05:08
The documentation is a bit sparse for SimpleXmlIterator.  Here is an example showing the use of its methods. xml2Array and sxiToArray work together to convert an XML document to an associative array structure.

The contents of cats.xml:
======================================
<cats>
  <cat>
      <name>Jack</name>
      <age>2</age>
      <color>grey</color>
      <color>white</color>
  </cat>
  <cat>
      <name>Maxwell</name>
      <age>12</age>
      <color>orange</color>
      <color>black</color>
  </cat>
</cats>
======================================

<?php
function xml2array($fname){
  $sxi = new SimpleXmlIterator($fname, null, true);
  return sxiToArray($sxi);
}

function sxiToArray($sxi){
  $a = array();
  for( $sxi->rewind(); $sxi->valid(); $sxi->next() ) {
    if(!array_key_exists($sxi->key(), $a)){
      $a[$sxi->key()] = array();
    }
    if($sxi->hasChildren()){
      $a[$sxi->key()][] = sxiToArray($sxi->current());
    }
    else{
      $a[$sxi->key()][] = strval($sxi->current());
    }
  }
  return $a;
}

// Read cats.xml and print the results:
$catArray = xml2array('cats.xml');
print_r($catArray);
?>

Results (reformatted a bit for compactness and clarity):
======================================
Array(
  [cat] => Array(
    [0] => Array(
      [name] => Array(  [0] => Jack    )
      [age] => Array(   [0] => 2       )
      [color] => Array( [0] => grey,
                        [1] => white   )
    )
    [1] => Array(
      [name] => Array(  [0] => Maxwell )
      [age] => Array(   [0] => 12      )
      [color] => Array( [0] => orange
                        [1] => black   )
    )
  )
)


Basit XML İşlevleri

İçindekiler

  • simplexml_import_dom — Bir DOM düğümü alıp bir SimpleXMLElement nesnesi döndürür
  • simplexml_load_file — Bir XML dosyasının içeriğini bir nesne haline getirir
  • simplexml_load_string — Bir XML dizgesini bir nesne haline getirir

User Contributed Notes

Pyetro Costa [pyetrosafe at gmail dot com] 07-Dec-2018 08:48
After viewing the xml2array function of "http://www.php.net/manual/en/ref.simplexml.php#103617" and the "http://php.net/manual/en/ref.simplexml.php # 112038 "and still have made a change to convert empty tags to null ... I felt the need to work with the result as an object, keeping arrays like arrays. Arriving at this function:
<?php

    private function xml2Object($xmlObject, $out = null) {
        $out = (is_object($xmlObject) ? new \stdClass : array());
        foreach ((array) $xmlObject as $index => $node )
            if (is_array($out)) {
                $out[$index] = (is_object($node) || is_array($node)) ? (($node instanceof \SimpleXMLElement) && count((array) $node)==0 ? null : $this->xml2Object($node)) : $node;
            } else
                $out->{$index} = (is_object($node) || is_array($node)) ? (($node instanceof \SimpleXMLElement) && count((array) $node)==0 ? null : $this->xml2Object($node)) : $node;
        return $out;
    }
?>

And the results of function can be seen below:
<?php
    $xml = simplexml_load_string('<?xml version="1.0" encoding="UTF-8" standalone="no"?><results><l1_elm1><l2_elm1>Some Text</l2_elm1><l2_elm2/></l1_elm1><l1_elm2><l2_elm1><l3_elm1>Array Index[0] - First property</l3_elm1><l3_elm2>Array Index[0] - Second property</l3_elm2><l3_elm3>Array Index[0] - Third property</l3_elm3></l2_elm1><l2_elm1><l3_elm1>Array Index[1] - First property</l3_elm1><l3_elm2>Array Index[1] - Second property</l3_elm2><l3_elm3>Array Index[1] - Third property</l3_elm3></l2_elm1></l1_elm2><l1_elm3/></results>');

    var_dump( $this->xml2Object($xml) );

    // var_dump xml2Object results
    object(stdClass)#339 (3) {
      ["l1_elm1"]=>object(stdClass)#344 (2) {
        ["l2_elm1"]=>string(9) "Some Text"
        ["l2_elm2"]=>NULL
      }
      ["l1_elm2"]=>object(stdClass)#347 (1) {
        ["l2_elm1"]=>array(2) {
          [0]=>object(stdClass)#348 (3) {
            ["l3_elm1"]=>string(31) "Array Index[0] - First property"
            ["l3_elm2"]=>string(32) "Array Index[0] - Second property"
            ["l3_elm3"]=>string(31) "Array Index[0] - Third property"
          }
          [1]=>object(stdClass)#349 (3) {
            ["l3_elm1"]=>string(31) "Array Index[1] - First property"
            ["l3_elm2"]=>string(32) "Array Index[1] - Second property"
            ["l3_elm3"]=>string(31) "Array Index[1] - Third property"
          }
        }
      }
      ["l1_elm3"]=>NULL
    }

    // VarDump Symphony xml2Object results something like
    object (#345) {
      +"l1_elm1": object (#339) {
        +"l2_elm1": "Some Text"
        +"l2_elm2": null
      }
      +"l1_elm2": object (#347) {
        +"l2_elm1": array(2) {
          [0] => object (#348) {
            +"l3_elm1": "Array Index[0] - First property"
            +"l3_elm2": "Array Index[0] - Second property"
            +"l3_elm3": "Array Index[0] - Third property"
          }
          [1] => object (#349) {
            +"l3_elm1": "Array Index[1] - First property"
            +"l3_elm2": "Array Index[1] - Second property"
            +"l3_elm3": "Array Index[1] - Third property"
          }
        ]
      }
      +"l1_elm3": null
    }
?>
Pyetro Costa [pyetrosafe at gmail dot com] 07-Dec-2018 02:55
This is just a new adjustment to the http://php.net/manual/en/ref.simplexml.php#112038 's function.

Adding the check by is_array has increased the conversion to lower levels by at least 3 levels, however empty Tags are converted to SimpleXMLElement class objects, adding a type and size check, convert these empty Tags to null.

See example:
<?php
    // The http://php.net/manual/en/ref.simplexml.php#112038 's function
    function xml2array($xmlObject, $out = array ()) {
        foreach ((array) $xmlObject as $index => $node )
            $out[$index] = (is_object($node) || is_array($node)) ? xml2array($node) : $node;
        return $out;
    }

    $xml = simplexml_load_string('<?xml version="1.0" encoding="UTF-8" standalone="no"?><results><level1><l1_elm1><level2><l2_elm1>Some Text</l2_elm1><l2_elm2/></level2></l1_elm1><l1_elm2>Other String</l1_elm2><l1_elm3/></level1></results>');
    $XML2Array = xml2array($xml);
    var_dump($xml);
    var_dump($XML2Array);

    // The result is like bellow
    // simplexml_load_string results
    object(SimpleXMLElement)#227 (1) {
      ["level1"]=>object(SimpleXMLElement)#226 (3) {
        ["l1_elm1"]=>object(SimpleXMLElement)#236 (1) {
          ["level2"]=>object(SimpleXMLElement)#238 (2) {
            ["l2_elm1"]=>string(9) "Some Text"
            ["l2_elm2"]=>object(SimpleXMLElement)#239 (0) {}
          }
        }
        ["l1_elm2"]=>string(12) "Other String"
        ["l1_elm3"]=>object(SimpleXMLElement)#237 (0) {}
      }
    }

    // xml2array function results
    array(1) {
      ["level1"]=>array(3) {
        ["l1_elm1"]=>array(1) {
          ["level2"]=>array(2) {
            ["l2_elm1"]=>string(9) "Some Text"
            ["l2_elm2"]=>array(0) {}
          }
        }
        ["l1_elm2"]=>string(12) "Other String"
        ["l1_elm3"]=>array(0) {}
      }
    }
?>

Now, check node type and size, if node instanceof SimpleXMLElement and count == 0, set null to value (or empty string "" as you prefer);
<?php
    function xml2array($xmlObject, $out = array ()) {
        foreach ((array) $xmlObject as $index => $node )
            $out[$index] = (is_object($node) || is_array($node)) ? (($node instanceof \SimpleXMLElement) && count((array) $node)==0 ? null : xml2array($node)) : $node;
        return $out;
    }

    $xml = simplexml_load_string('<?xml version="1.0" encoding="UTF-8" standalone="no"?><results><level1><l1_elm1><level2><l2_elm1>Some Text</l2_elm1><l2_elm2/></level2></l1_elm1><l1_elm2>Other String</l1_elm2><l1_elm3/></level1></results>');
    var_dump(xml2array($xml));

    // And now the result is like bellow
    array(1) {
      ["level1"]=>array(3) {
        ["l1_elm1"]=>array(1) {
          ["level2"]=>array(2) {
            ["l2_elm1"]=>string(9) "Some Text"
            ["l2_elm2"]=>NULL
          }
        }
        ["l1_elm2"]=>string(12) "Other String"
        ["l1_elm3"]=>NULL
      }
    }
?>
brandonkirsch at gmail dot com 09-Sep-2013 07:41
Contrary to other notes posted here, SimpleXML *DOES NOT* properly handle non-UTF8 encoded XML documents.

A proper "iso-8859-1" declared and encoded XML document will not parse with SimpleXML for PHP 5.2.17 or 5.5.1 when using extended characters (that is, byte values greater than 127)

DOMDocument, on the other hand, will correctly parse incoming iso-8859-1 XML documents and can also be used to perform character translation to UTF8:

$dom = new DOMDocument();

if($dom->loadXML($fileContents)){ // $fileContents is an XML document with iso-8859-1 encoding specified in the declaration
            $dom->encoding = 'utf-8'; // convert document encoding to UTF8
            return $dom->saveXML(); // return valid, utf8-encoded XML
William Fahria 15-Jul-2013 07:34
A simple implementation:
You can inform a direct XML in text format to the function.

function eoXML2Array($xmlContent, $out = array()){
    $xmlObject = is_object($xmlContent) ? $xmlContent : simplexml_load_string($xmlContent);
    foreach((array) $xmlObject as $index => $node)
        $out[$index] = ( is_object($node) || is_array($node) ) ? eoXML2Array( $node ) : $node;
    return $out;
}

Usage: $your_array = eoXML2Array(your xml text);
r dot m dot 0100101 at gmail dot com 25-Apr-2013 03:00
This is a slight adjustment to http://www.php.net/manual/en/ref.simplexml.php#103617 's function.
The function given by them would convert a simpleXML to an array but only at the highest level. Once you add the is_array check with the is_object it should convert each level to an array (well it did for me through 3 levels).

function simpleXmlObjectToArray ( $xmlObject, $out = array () )
{
    foreach ( (array) $xmlObject as $index => $node )
        $out[$index] = ( is_object ( $node ) || is_array($node) )
        ? simpleXmlObjectToArray ( $node )
        : $node;

    return $out;
}
Happy Coding!
Eric 29-Jan-2013 03:00
If the SimpleXMLObject contains an array, adding is_array() allows the function to keep digging for Objects.

<?php
function xml2array ( $xmlObject, $out = array () )
{
        foreach ( (array) $xmlObject as $index => $node )
            $out[$index] = ( is_object ( $node ) ||  is_array ( $node ) ) ? xml2array ( $node ) : $node;

        return $out;
}
?>
thomas at guenneguez dot com 14-Dec-2011 02:36
Merge two xml only with SimpleXML :
Function corrected if note containe only value.

<?php
function mergeXML(&$base, $add)
{
    if ( $add->count() != 0 )
        $new = $base->addChild($add->getName());
    else
        $new = $base->addChild($add->getName(), $add);
    foreach ($add->attributes() as $a => $b)
    {
        $new->addAttribute($a, $b);
    }
    if ( $add->count() != 0 )
    {
        foreach ($add->children() as $child)
        {
            mergeXML($new, $child);
        }
    }
}
?>

Use : <?php mergeXML($xmlElement, simplexml_load_string($toMerge)) ?>
julien dot breiner at laposte dot net 09-Dec-2011 10:31
Merge two xml only with SimpleXML :

<?php
private function mergeXML(&$base, $add)
{
    $new = $base->addChild($add->getName());
    foreach ($add->attributes() as $a => $b) {
        $new[$a] = $b;
    }
    foreach ($add->children() as $child) {
        $this->mergeXML($new, $child);
    }
}?>

Use : <?php mergeXML($xmlElement, simplexml_load_string($toMerge)) ?>
k dot antczak at livedata dot pl 22-Apr-2011 01:08
A quick snippet which converts XML Object into array:

<?php
function xml2array ( $xmlObject, $out = array () )
{
        foreach ( (array) $xmlObject as $index => $node )
            $out[$index] = ( is_object ( $node ) ) ? xml2array ( $node ) : $node;

        return $out;
}
?>

Have fun! ;-)
help :-) @ theapotek :-) com 08-Apr-2011 12:54
If you are having trouble accessing CDATA in your simplexml document, you don't need to str_replace/preg_replace the CDATA out before loading it with simplexml.

You can do this instead, and all your CDATA contents will be merged into the element contents as strings.

$xml = simplexml_load_file($xmlfile,
'SimpleXMLElement', LIBXML_NOCDATA);
Andrez zenarter at hotmail dot com 16-Jul-2009 10:56
I just wanna add an additional to
"Append/combine/merge one simplexml to another"
The parent should has attributes too.

<?php

function append_simplexml(&$simplexml_to, &$simplexml_from)
{

static $firstLoop=true;

//Here adding attributes to parent
if( $firstLoop )
            {
                foreach( $simplexml_from->attributes() as $attr_key => $attr_value )
                {
                    $simplexml_to->addAttribute($attr_key, $attr_value);
                }
            }

foreach ($simplexml_from->children() as $simplexml_child)
    {
        $simplexml_temp = $simplexml_to->addChild($simplexml_child->getName(), (string) $simplexml_child);
        foreach ($simplexml_child->attributes() as $attr_key => $attr_value)
        {
            $simplexml_temp->addAttribute($attr_key, $attr_value);
        }

       $firstLoop=false;

        append_simplexml($simplexml_temp, $simplexml_child);
    }

unset( $firstLoop=false );
}

?>

I have aproblem to assign an object into a variable used as an object later, Then i found the code above, it solve half of my problem. I have it should have the parent name assign too but it didnt. Any better code?
Douglas Marsh 06-Jul-2009 08:53
SimpleXML is really nice for loading/converting XML data into native PHP data structures. I was considering crude searching of SVG for the width/height and since it really is an XML file... I found a SUPER easy method for parsing out the information I wanted:

<?php
// putting incomplete SVG data inline for readability
$RawXML = <<< XML
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
   xmlns:dc="http://www.example.com/dc"
   xmlns:cc="http://www.example.com/cc"
   xmlns:rdf="http://www.example.com/rdf"
   xmlns:svg="http://www.example.com/svg"
   xmlns="http://www.example.com/"
   xmlns:sodipodi="http://www.example.com/sodipodi"
   xmlns:inkscape="http://www.example.com/inkscape"
   id="svg2"
   sodipodi:version="0.32"
   inkscape:version="0.46"
   width="586.25"
   height="743.75"
   xml:space="preserve"
   sodipodi:docname="some_svg_file.svg"
   inkscape:output_extension="org.inkscape.output.svg.inkscape">
 <!-- portions removed to keep this short -->
</svg>
XML;

$svg = new SimpleXMLElement($RawXML);

$height = $svg['height'];
$width = $svg['width'];

echo "The width x height is: ${width} x ${height} \n";

?>
info at ajaxforum dot ru 17-Jun-2009 12:32
Append/combine/merge one simplexml to another:

<?php
include 'example.php';
$el1 = new SimpleXMLElement($xmlstr);
$el2 = new SimpleXMLElement($xmlstr);

// wrong way!
// php convert $el2->movie[0] to string silently
$el1->addChild('movie', $el2->movie[0]);

// wrong way!
// php 5.1 convert $el2->movie[0] to string and generate Warning: It is not yet possible to assign complex types to properties. It is not possible to assign complex types to nodes
// php 5.2 convert $el2->movie[0] to string silently
$el1->addChild('movie');
$el1->movie[2] = $el2->movie[0];

// right way!
$el1_movie = $el1->addChild('movie');
append_simplexml($el1_movie, $el2->movie[0]);

echo "<pre>"; print_r($el1); echo "</pre>";

/**
 * Add one simplexml to another
 *
 * @param object $simplexml_to
 * @param object $simplexml_from
 * @author Boris Korobkov
 * @link http://www.ajaxforum.ru/
 */
function append_simplexml(&$simplexml_to, &$simplexml_from)
{
    foreach ($simplexml_from->children() as $simplexml_child)
    {
        $simplexml_temp = $simplexml_to->addChild($simplexml_child->getName(), (string) $simplexml_child);
        foreach ($simplexml_child->attributes() as $attr_key => $attr_value)
        {
            $simplexml_temp->addAttribute($attr_key, $attr_value);
        }

        append_simplexml($simplexml_temp, $simplexml_child);
    }
}
?>
codejunky32 at NOSPAM dot com 22-May-2009 08:45
Just wanted to add a post as to how you can extract the value from a SimpleXMLElement. Its not as straightforward as you think. Because its a complex object you can't just access the element directly. Here is a sample of data that represents a var_dump of a SimpleXmlElement

array(1) {
  [0]=>
  object(SimpleXMLElement)#13 (2) {
    ["@attributes"]=>
    array(1) {
      ["name"]=>
      string(5) "title"
    }
    [0]=>
    string(19) "PHP Tech Book"
  }
}

If you want to extract the title of the book you have to cast the specified element to a string like so.
$newTitle = (string) $title[0];

The $title variable is the SimpleXMLElement that you have extracted from the xml document using simplexml_load_string for instance.  To initially access the title element from the xml document you can do like so, using xpath.
$title = $doc->xpath('str[@name="title"]');

Hope this helps someone out there.
james dot ellis at gmail dot com 28-Aug-2008 06:55
While SimpleXML is a powerful tool, developers using it to process and handle large XML documents & strings should take into careful consideration its memory usage requirements.
SimpleXML requires the entire XML tree to be available prior to any processing actions on that tree -- this requires the entire tree to be in memory. Ok for a 40kb XML file but when dealing with > 100MB files you will see performance degradation, especially if you have a busy server.

An alternative to processing large XML files is the XMLReader class, which operates in streaming mode, of which an excellent tutorial is presented here:
http://www.ibm.com/developerworks/library/x-pullparsingphp.html

XML is an incredibly verbose format. If you are dealing with large data structures, especially in web services, do you you actually need to represent the data as an XML tree? - other serialisation formats such as JSON, Serialised PHP, Google Protocol Buffers (http://code.google.com/p/protobuf/) and even CSV can remarkably reduce processing time, bandwidth and load  when dealing with large files. A 110MB XML file can become a 65MB CSV file, with the same data in it, simply because the data identifiers (tags) are only represented once in the entire document.
m0sh3 at hotmail dot com 22-May-2008 03:24
Be aware of quirks like this one:

<?php

$a = new SimpleXMLElement('<a><b/></a>');

$a->b = 'test &amp; test';
$a->c = 'test &amp; test';

print_r($a);
/*
OUTPUT:

SimpleXMLElement Object
(
    [b] => test & test
    [c] => test &amp; test
)
*/
nathan at gimpstraw dot com 05-Apr-2008 09:43
I'm using SimpleXML to process data sent back from an API request, and I ran into the CDATA problem and the error you get from html entities, and here is a solution i came up with, don't know if it's the most practical, but it's working.

<?php
$str = <<< XML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<menu>
    <item>
        <title><![CDATA[Caf&eacute;]]></title>
        <description><![CDATA[Some description.]]></description>
    </item>
</menu>
XML;

$str = preg_replace("/\<\!\[CDATA\[(.*?)\]\]\>/ies", "'[CDATA]'.base64_encode('$1').'[/CDATA]'", $str);
$xml = new SimpleXMLElement($str);

// Return item title's
foreach ($xml->item as $item) {
    $tmp = (string) $item->title;
    $tmp = preg_replace("/\[CDATA\](.*?)\[\/CDATA\]/ies", "base64_decode('$1')", $tmp);
    echo $tmp;
}
?>
ngkongs at gmail dot com 19-Mar-2008 10:44
fix the function i posted before, have a wrong quote placement

function implode2($glue="", $var){
    if ($var){
        foreach ($var as $value){
            $array[]=strval($value);
        }
        return implode($glue, $array);
    }
    else return false;
}
philippe_marc_--a---t--_novartis_com 12-Feb-2008 09:46
TIP: if you run into memory issue using simpleXML.
You may want to use PHP>5.2.5 in order to avoid that: http://bugs.php.net/bug.php?id=38604
If not possible, avoid "foreach ( $xmldata->node as $node )" like calls.
andrvm 02-Jan-2008 03:01
<?php
/**
    * Remove node/nodes xml with xpath
    *
    * @param SimpleXMLElement                 $xml
    * @param string XPath                     $path
    * @param string ('one'|'child'|'all')     $multi
    *
    * Use:
    *
    * Example xml file - http://ru2.php.net/manual/ru/ref.simplexml.php
    *
    * $xml = simplexml_load_file($xmlfile);
    *
    * //1. remove only 1 node (without child nodes)
    * //   $path must return only 1 (unique) node without child nodes
    * removeNode($xml, '//movie/rating[@type="thumbs"]');
    *
    * //2. remove 1 node (with 1 child nodes)
    * //    $path can return any nodes - will be removed only first node
    * //   with all child nodes
    * removeNode($xml, '//characters', 'child')
    *
    * //3. remove all nodes (with child nodes)
    * //   $path can return any nodes - will be removed all
    * //   with child nodes
    * removeNode($xml, '//rating', 'all')
    *
    * $xml->asXML($xmlfile);
    *
    */
   function removeNode($xml, $path, $multi='one')
   {
       $result = $xml->xpath($path);

          # for wrong $path
          if (!isset($result[0])) return false;

          switch ($multi) {
              case 'all':
                    $errlevel = error_reporting(E_ALL & ~E_WARNING);
                    foreach ($result as $r) unset ($r[0]);
                    error_reporting($errlevel);
                    return true;

                case 'child':
                   unset($result[0][0]);
                   return true;

                case 'one':
                   if (count($result[0]->children())==0 && count($result)==1) {
                       unset($result[0][0]);
                       return true;
                   }

                default:
                      return false;
          }
 }
?>

p.s. after use (if deleted all nodes):
<?php

   function trimXml($xmlfile)
   {
       $dom = new DOMDocument();

          $dom->preserveWhiteSpace = false;

         if (!$dom->load($xmlfile)) return false;

         $dom->formatOutput = true;

         if (!$dom->save($xmlfile)) return false;

         return true;
   }
?>
onPHP5.com 17-Nov-2007 04:37
It does not say in the docs, but SimpleXML will convert all text into UTF-8, if the source XML declaration has another encoding. Eg, if the source has the following XML decl:

<?xml version="1.0" encoding="windows-1251" ?>

all the text in the resulting SimpleXMLElement will be in UTF-8 automatically.
lordi at msdi dot ca 23-Oct-2007 05:35
If you need to do math calculations on values extracted from simplexml document, you might need to cast the value as float to prevent precision loss. Here is an example:

<?php
    $objXML = new SimpleXMLElement('<test x="-123.45"></test>');

    //Shows correctly
    echo $objXML['x']."\n";

    //We loose the decimals
    echo $objXML['x'] + $objXML['x']."\n";

    $x = $objXML['x'];

    //This works if we cast the amounts
    echo (float)$objXML['x'] + (float)$objXML['x']."\n";

    //Calculated on a string, no problem
    echo "-123.45" + "-123.45";

?>

This is due to the fact that $objXML['x'] is not a string (php would cast it automatically) neither a float, but a SimpleXMLElement object.

"echo var_dump($x);" will output this
~~
object(SimpleXMLElement)#3 (1) {
  [0]=>
  string(7) "-123.45"
}
~~

I opened a bug request on php but here is the answer they gave me:

~~
Status: Won't fix

The behavior is defined by the engine not the extension. When performing mathematical operations on objects, they are treated as integers. It is up to the user to cast the object to the appropriate type to maintain proper precision.
~~
cmsa at gmx dot de 27-Aug-2007 05:07
I had a problem with entities.

My first solution:
I saved Data that way:
$ENTRY_->
addchild('Nachricht',htmlentities($_POST["blog"]));

Had Entities in the XML-File like:
<!ENTITY auml "&amp;auml">

And I loaded the Data that way:
html_entity_decode($ENTRY->Nachname);

But after saving and
loading the xml-file the entity-entry
<!ENTITY auml "&amp;auml">
disappeared. strange...

My second solution:
With saving the Data this way:
$ENTRY_->
addchild('Nachricht',htmlentities(htmlentities($_POST["blog"])));

I can now load it with html_entity_decode without the
 entity-entry in the XML-file!
I tested it with äöü.

Hope it helpes.
karsten dot bruch at bms-verlage dot de 16-Aug-2007 08:28
When creating a new XML document and adding text with umlauts and such

<?php $SimpleXMLElement->asXML(); ?>

will silently NOT output any content with umlauts.

Use htmlentities () while adding Umlauts & co to solve the "problem"
anthony dot parsons at manx dot net 03-Aug-2007 07:40
If you're handling lots of HTML or mixed-content XML you'll probably want to use the DOM functions instead of SimpleXML. Take this for example:
<?php
$html = new SimpleXMLElement('<div><p>Some text, <a href="#">a link,</a> more text</p></div>');

echo $html->p->a,"<br>\n"; // "a link,"
echo $html->p;             // "Some text, more text" (!)
?>
In the above example reconstructing the original markup is impossible because of the way SimpleXML represents the data.
php at werner dash ott dot de 28-Mar-2007 06:03
Concerning SimpleXML and sessions:

When creating a SimpleXML object (to be precise: a SimpleXMLElement object) in the context of a session and storing it in $_SESSION['XMLobject'], this object does not "survive" the session!

By the time re-entering the session, print_r($_SESSION['XMLobject']) says:

['XMLobject'] => SimpleXMLElement Object
Warning:  Node no longer exists in /your_php_file.php on line xyz
   (
   )

(Message simplified for the sake of better readability.)
codje2 at lboro dot ac dot uk 11-Mar-2007 01:46
Sometimes it's nice to mix up data storage types. This is a very simple SQL to XML converter. Feed it a SQL query and it outputs the result in XML.

The first paramater should be a mysql_query result
(optional)The second is the xml name for each row (i.e the second depth of XML)
(optional)The third is the name of the XML document, the root name

<?php
$result=mysql_query("SELECT * FROM users");
sql_to_xml($result,"users","members");

function sql_to_xml($mysql_result,$row_name="row",$doc_name="root")
{

    $xml= new SimpleXMLElement("<$doc_name></$doc_name>");
    while($line=mysql_fetch_assoc($mysql_result))
    {
        $row=$xml->addChild($row_name);
        foreach($line as $column => $value)
        {
            $row->$column="$value";
        }
    }
    return $xml->asXML();
}

?>
php at NOSPAM dot coutch dot com 21-Feb-2007 02:04
Memory leak when setting attributes as in example (#Example 2134. Setting values)

This probably goes unnoticed in web scripts (unless you do a LOT of xml manipulations), but I ran into this in my standalone script that processes a large number of XML files.

The following code will eat up memory quite fast:

<?php
include 'example.php';

while (true) {
  $xml = new SimpleXMLElement($xmlstr);
  $xml->movie[0]->characters->character[0]->name = 'Miss Coder';
}
?>

while this seems to behave correctly:

<?php
include 'example.php';

while (true) {
  $xml = new SimpleXMLElement($xmlstr);
  $c = $xml->xpath("//character");
  $c[0]->name = 'Miss Coder';
}
?>

This looks like bug #38604, and I just confirmed that in 6.0.0-dev (on Windows at least) it is fixed.  It is NOT fixed in 5.2.1 or  5.2.2-dev (2/21 build), so for 5.2 users, use the second form to avoid leaks.
joel [from the website] purerave.com 19-Feb-2007 05:57
It doesn't mention this anywhere, but creationg a new SimpleXMLElement object from a non-valid string throws an exception. It looks ugly in the php log as it dumps the stack in multiple lines.

The correct way to create a new SimpleXMLElement object is like so:
<?php
$xmlstr = ''; // empty to throw an exception
try {
   $xml = new SimpleXMLElement($xmlstr);
} catch (Exception $e) {
   // handle the error
   echo '$xmlstr is not a valid xml string';
}
?>
matt at mattbostock dot com 05-Nov-2006 11:40
Be careful when using var_export to debug element attributes - it won't work! Always use print() or similar for checking the contents of element attributes.
Arnaud Bienvenu 19-Oct-2006 07:35
As of PHP 5.1.4, trying to iterate on a non-existent node will actually create that node.

<?
$xml = simplexml_load_string('<root></root>');
foreach($xml->b as $dummy);
echo $xml->asXML();
?>

Gives :

<?xml version="1.0"?>
<root><b/></root>

You might think it is a bug, but PHP developers seam to consider it as a feature : http://bugs.php.net/bug.php?id=39164
Jason Sheets <jsheets at shadonet dot com> 31-May-2006 10:31
Here is my Simple XML to array function, it is recursive and has the benefit of maintaining key value relationships and has worked well for me.

<?php
function XMLToArray($xml)
{
  if ($xml instanceof SimpleXMLElement) {
    $children = $xml->children();
    $return = null;
  }

  foreach ($children as $element => $value) {
    if ($value instanceof SimpleXMLElement) {
      $values = (array)$value->children();

      if (count($values) > 0) {
        $return[$element] = XMLToArray($value);
      } else {
        if (!isset($return[$element])) {
          $return[$element] = (string)$value;
        } else {
          if (!is_array($return[$element])) {
            $return[$element] = array($return[$element], (string)$value);
          } else {
            $return[$element][] = (string)$value;
          }
        }
      }
    }
  }

  if (is_array($return)) {
    return $return;
  } else {
    return $false;
  }
}
?>
daniel dot oconnor at gmail dot com 17-May-2006 06:21
SimpleXML handles namespaces, but it's not documented very well here at all.

If you wanted to parse, say, an open office manifest file or a piece of RDF/XML, you have to get elements and attributes by the namespace url.

Example:
<?php
function display($in) {
    if (file_exists($in)) {
        $xml = simplexml_load_file($in);
    } else {
        throw new Exception($in . " does not exist");
    }

    $manifest = $xml->children('http://openoffice.org/2001/manifest');

    foreach ($manifest->xpath('//manifest:file-entry') as $file) {
        foreach ($file->attributes('http://openoffice.org/2001/manifest') as $key => $value) {
            print "Key:" . $key . "\n";
            print "Value:" . $value . "\n";
        }
    }

}
?>

File: manifest.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE manifest:manifest PUBLIC "-//OpenOffice.org//DTD Manifest 1.0//EN" "Manifest.dtd">
<manifest:manifest xmlns:manifest="http://openoffice.org/2001/manifest">
 <manifest:file-entry manifest:media-type="application/vnd.sun.xml.writer" manifest:full-path="/"/>
 <manifest:file-entry manifest:media-type="application/vnd.sun.xml.ui.configuration" manifest:full-path="Configurations2/"/>
 <manifest:file-entry manifest:media-type="application/binary" manifest:full-path="layout-cache"/>
 <manifest:file-entry manifest:media-type="text/xml" manifest:full-path="content.xml"/>
 <manifest:file-entry manifest:media-type="text/xml" manifest:full-path="styles.xml"/>
 <manifest:file-entry manifest:media-type="text/xml" manifest:full-path="meta.xml"/>
 <manifest:file-entry manifest:media-type="" manifest:full-path="Thumbnails/thumbnail.png"/>
 <manifest:file-entry manifest:media-type="" manifest:full-path="Thumbnails/"/>
 <manifest:file-entry manifest:media-type="text/xml" manifest:full-path="settings.xml"/>
</manifest:manifest>
paul at preinheimer dot com 06-May-2005 05:11
Hi,

If you want to access an element that has a dash in its name, (as is common with the XML documents provided by the Library of Congress, as well as the NWS) you will need to handle it a little bit differently.

You can either use XPATH, which works fine, but will return an array of results every time, even if there is a single result.
eg.

<?php
$xml->xpath('/data/time-layout/start-valid-time');
?>

You can also choose just to encapsulate the element names containing a dash:
<?php $xml->data->{'time-layout'}->{'start-valid-time'} ?>

--

On a only partially related note, dealing with SimpleXML is one of the only times I have employed casting with PHP. While iterating (foreach) through the valid times, echo'ing the element worked great (it merely echo'ed the apropriate time), assigning it to another variable resulted in a SimpleXML object containing the time to be assigned, rather than just the time itself. This was resolved by casting the time to a string:

<?php
foreach($xml->data->{'time-layout'}->{'start-valid-time'} AS $time)
{
 $weatherDates[] = (string) $time;
}
?>
T CHASSAGNETTE t_chassagnette at yahoo dot fr 04-May-2005 01:57
Another method to parse an XML Document into a PHP array with SIMPLEXML inspired from Daniel FAIVRE !

<?php
function xml2php($xml)
{
    $fils = 0;
    $tab = false;
    $array = array();
    foreach($xml->children() as $key => $value)
    {
        $child = xml2php($value);

        //To deal with the attributes
        foreach($node->attributes() as $ak=>$av)
        {
            $child[$ak] = (string)$av;

        }

        //Let see if the new child is not in the array
        if($tab==false && in_array($key,array_keys($array)))
        {
            //If this element is already in the array we will create an indexed array
            $tmp = $array[$key];
            $array[$key] = NULL;
            $array[$key][] = $tmp;
            $array[$key][] = $child;
            $tab = true;
        }
        elseif($tab == true)
        {
            //Add an element in an existing array
            $array[$key][] = $child;
        }
        else
        {
            //Add a simple element
            $array[$key] = $child;
        }

        $fils++;
      }

    if($fils==0)
    {
        return (string)$xml;
    }

    return $array;

}
?>
nelson_menezes at yahoo dot co dot uk 01-Mar-2005 05:05
Note that SimpleXML expects to both read and output XML in UTF-8 encoding. You'll need to add a line such as this at the top of your input XML file if it isn't saved in UTF-8 (adjust to whatever encoding used):

<?xml version="1.0" encoding="ISO-8859-1" ?>

On the output side of things, if you're not serving/handling UTF-8, you'll need to use utf8_decode() [red. but that will only work for ISO-8859-1, not other encodings]. Common mistake: http://bugs.php.net/bug.php?id=28154
brcavanagh AT NO SPAM hotmail.com 02-Jan-2005 09:18
If you are looking to use SimpleXML for anything but reading XML documents, you should really reconsider, and use the XML DOM library.  By the time you get enough utilities implemented in DOM to handle all the set backs in SimpleXML, you will have defeated the purpose of using SimpleXML.  There are a few reasons for this, and there are already many workrounds, but the primairy issues are this

1) No complex node assignment.  You cannot switch nodes or replace them.

2) No appending new child nodes

3) Whenever you do something like $new_node = $xml_doc->node you will always get a reference even if you use a clone method, which will crash the script.

Other than that, its a great tool for reading docs.


Bir DOM düğümü alıp bir SimpleXMLElement nesnesi döndürür

  • « Basit XML İşlevleri
  • simplexml_load_file »
  • PHP Manual
  • Basit XML İşlevleri
  • Bir DOM düğümü alıp bir SimpleXMLElement nesnesi döndürür

simplexml_import_dom

(PHP 5, PHP 7, PHP 8)

simplexml_import_dom — Bir DOM düğümü alıp bir SimpleXMLElement nesnesi döndürür

Açıklama

simplexml_import_dom(object $düğüm, ?string $sınıfAdı = SimpleXMLElement::class): ?SimpleXMLElement

Bir DOM düğümü alıp bir SimpleXMLElement düğümü oluşturur. Bu yeni nesne yeni bir Basit XML elemanı olarak kullanılabilir.

Bağımsız Değişkenler

düğüm

Bir DOM Eleman düğümü

sınıfAdı

İsteğe bağlı bu bağımsız değişken ile bir nesne döndürmek üzere SimpleXMLElement sınıfından türetilmiş bir sınıf ismi belirtilebilir.

Dönen Değerler

Başarısız olursa null yoksa bir SimpleXMLElement nesnesi döndürür.

Örnekler

Örnek 1 - DOM ithali

<?php
$dom = new DOMDocument;
$dom->loadXML('<books><book><title>blah</title></book></books>');
if (!$dom) {
echo 'Belge çözümlenemedi';
exit;
}

$s = simplexml_import_dom($dom);

echo $s->book[0]->title;
?>

Yukarıdaki örneğin çıktısı:

blah

Ayrıca Bakınız

  • dom_import_simplexml() - Bir SimpleXMLElement düğümü alıp bir DOMElement düğümü döndürür
  • Temel SimpleXML kullanımı

User Contributed Notes

paul dot allsopp at digital-pig dot com 06-Jun-2023 12:07
Why not just:
simplexml_import_dom(dom_import_simplexml($SimpleXmlNode))
shirkaen at gmail dot com 10-Nov-2016 06:58
/*If tags in DOM have text and some part of this text is surrounded by other tag, simple_import_dom object doesn't contain position of child tag, so rendering it back to html/xml can be a problem. Printing such a node is also peculiar. Eg.*/

//////////////////////
$text = "<body><p>Some text before <em>italic </em>and after text.</p></body>";
$dom = new DOMDocument;
$dom->loadHTML($text);
$result = simplexml_import_dom($dom);
echo $result->p;

//////////////////////
//Prints :
//Some text before and after text.

print_r($result->p);
//Prints:
//SimpleXMLElement Object ( [em] => italic )

print_r($result->p->em)
//does more or less the same:
//SimpleXMLElement Object ( [0] => italic )

var_dump($result->p);
//Prints:
//object(SimpleXMLElement)#8 (1) { ["em"]=> string(7) "italic " }

var_dump($result->p->em)
//object(SimpleXMLElement)#9 (1) { [0]=> string(7) "italic " }

//but
echo $result->p->em;
//prints:
//italic
brandonkirsch at perceptionilluminates dot com 14-Aug-2013 03:38
simplexml_import_dom() will accept DOMNodes or other SimpleXMLElements.  This has a useful purpose if you are extending the SimpleXMLElement class and would prefer the xpath() method to return your class extension instead of basic SimpleXMLElements.  For example:

class MySimpleXML extends SimpleXMLElement{
    public function xpath($xpath){
        $return = array();
        $simpleXmls = parent::xpath($xpath); // run SimpleXMLElement xpath, returning an array of SimpleXMLElements
        foreach($simpleXmls as $xml){
            $return[] = simplexml_import_dom($xml,'MySimpleXML'); // copy SimpleXMLElement, returning as MySimpleXML instance
        }
        return $return;
    }
}

Now I can create an instance of MySimpleXML, run an xpath, and get my results back as an array of MySimpleXML elements instead of the native SimpleXMLElement:

$mySimpleXml = new mySimpleXml('<root><node/></root>');

$array = $mySimpleXml->xpath('/root/node'); // returns array with a single MySimpleXml object


Bir XML dosyasının içeriğini bir nesne haline getirir

  • « simplexml_import_dom
  • simplexml_load_string »
  • PHP Manual
  • Basit XML İşlevleri
  • Bir XML dosyasının içeriğini bir nesne haline getirir

simplexml_load_file

(PHP 5, PHP 7, PHP 8)

simplexml_load_file — Bir XML dosyasının içeriğini bir nesne haline getirir

Açıklama

simplexml_load_file(
string $dosya,
?string $sınıfAdı = SimpleXMLElement::class,
int $seçenekler = 0,
string $isimalanı_veya_önek = "",
bool $önek_var = false
): SimpleXMLElement|false

Dosya ismi belirtilen iyi biçemli bir XML belgeyi bir nesneye dönüştürür.

Bağımsız Değişkenler

dosya

XML dosyanın yolu.

sınıfAdı

İsteğe bağlı bu bağımsız değişken ile bir nesne döndürmek üzere SimpleXMLElement sınıfından türetilmiş bir sınıf ismi belirtilebilir.

seçenekler

libxml seçenek sabitlerinin bitsel VEYAsı.

isimalanı_veya_önek

İsimalanı öneki veya URI.

önek_var

isimalanı_veya_önek bir önek ise true, bir URI ise false öntanımlıdır.

Dönen Değerler

XML belgedeki veriyi içeren, SimpleXMLElement sınıfından türetilmiş bir nesne döndürür, başarısızlık durumunda false döner.

Uyarı

Bu işlev mantıksal false değeriyle dönebileceği gibi false olarak değerlendirilebilecek mantıksal olmayan bir değerle de dönebilir. Bu konuda daha fazla bilgi Mantıksal Değerler bölümünde bulunabilir. Bu işlevden dönen değeri sınamak için === işleci kullanılabilir.

Hatalar/İstisnalar

XML verisinde bulunan her hata için bir E_WARNING hatası üretilir.

İpucu

Tüm XML hatalarını bastırmak için libxml_use_internal_errors() kullanıp daha sonra bu hataları libxml_get_errors() ile tek tek ele alabilirsiniz.

Örnekler

Örnek 1 - Bir XML belgenin yorumlanması

<?php
// test.xml dosyası en azından bir <title> elemanına
// sahip bir XML belge içermektedir.

if (file_exists('test.xml')) {
$xml = simplexml_load_file('test.xml');

print_r($xml);
} else {
exit('test.xml açılamadı.');
}
?>

Betik sorunsuz çalışırsa şunu çıktılar:

SimpleXMLElement Object
(
  [title] => Example Title
  ...
)

Ayrıca, echo $xml->title gibi çıktılamalar da yapabilirdiniz.

Ayrıca Bakınız

  • simplexml_load_string() - Bir XML dizgesini bir nesne haline getirir
  • SimpleXMLElement::__construct() - Yeni bir SimpleXMLElement nesnesi oluşturur
  • XML hatalarıya ilgilenmek
  • libxml_use_internal_errors() - libxml hatalarını kapatarak kullanıcı tanımlı hataları mümkün kılar
  • Temel SimpleXML kullanımı
  • libxml_set_streams_context() - Yüklenecek veya yazılacak sonraki libxml belgesinin akım bağlamını belirler

User Contributed Notes

siraic at gmail dot com 20-Jun-2023 08:47
LibXML typically uses ten times the file size in memory to read a file, and this memory usage falls largely outside the memory limit guarded by PHP.
tg at debian dot org 20-Feb-2022 09:36
This function does not accept all pathnames, in spite of its documentation.

$ php -r 'print_r( simplexml_load_file("%25.xml"));'
PHP Warning:  simplexml_load_file(): I/O warning : failed to load external entity "%25.xml" in Command line code on line 1
visualmind at nospam dot php dot net 18-Jan-2022 02:49
This may sometimes get missed, but if your xml nodes are in the format:
<prefix:element />

You need to make sure to set the [namespace or prefix] argument and the [isPrefix] argument to true. Also when recalling elements you need to avoid adding the prefix if that is already set, so in the above example "prefix:element" should be added as "element" but when saved the prefix will be added automatically.

If prefix is not set during load or object construction, load will fail to get the nodes correctly and you will not be able to recall elements directly so $xml->{'prefix:element'} will not work either.
sirgrayjn at gmail dot com 22-Sep-2016 09:51
// Be carefull if you migrate or use local machine
// for test/development.

// Windows directory separators: "\" and "/"
// You may mix separators "C:\somedir\www/img/bg.jpg".

// Mixed separators path work fine in other functions
// But simplexml_load_file() failed with mixed separators.

// Examples:
include("C:\dir\my.php");    // work (windows)
include("C:\dir/my.php");    // work (windows) with mixed
include("C:/dir/my.php");    // work (windows, linux)
simplexml_load_file("C:\dir\my.php");    // work
simplexml_load_file("C:\dir/my.php");    // failed with mixed
simplexml_load_file("C:/dir/my.php");    // work
rex111 at bigmir dot net 08-Sep-2016 03:02
Get all tags and their values. (recursive)

<?php
$xml = simplexml_load_file('settings.xml');

function all_tag($xml){
    $i=0; $name = "";
    foreach ($xml as $k){
        $tag = $k->getName();
        $tag_value = $xml->$tag;
        if ($name == $tag){ $i++;    }
                $name = $tag;
            echo $tag .' '.$tag_value[$i].'<br />';
        // recursive
           all_tag($xml->$tag->children());
    }
}

all_tag($xml);
?>
Rich 24-Nov-2015 02:51
I stumbled on this: a single element with a simple string in it becomes a string, but a single element with a *space* in it becomes an Array, with one element, the string space.

I'm sure to XML mystics this is wise and wonderful but it really confused me,  and I thought it might confuse others.

<?php
$parsed = simplexml_load_string('<container><space> </space><blank></blank><string>hello</string></container>');
$content = json_decode(json_encode($parsed),TRUE);
var_dump($content);
/* Output is:
array(3) {
  'space' => array(1) {           ‹ did NOT expect this!
    [0] => string(1) " "
  }
  'blank' => array(0) { }
  'string' => string(5) "hello"
}
 */
tuxedobob 30-Jun-2015 01:25
Occasionally you may try to load a file and have it complain about an entity and throw a parser error.

If this is the case, check to make sure that the file in question does not contain an ampersand (&) without a corresponding entity reference.

If it does, or if you want to err on the side of caution, then instead of using simplexml_load_file, try this:

$file = file_get_contents('stuff.xml');
$temp = preg_replace('/&(?!(quot|amp|pos|lt|gt);)/', '&amp;', $file);
$xml = simplexml_load_string($temp) or die("xml not loading");

Read the file into a string, add 'amp;' after any '&' that is not part of a character entity, then parse the string as xml.
kannan at 99deals dot in 04-Sep-2012 06:27
If you have some nodes which are having special characters, it would not load properly

for an instance see the nodes below
<node:number>1538-7445</node:number>
<node:coverDisplayDate>Sep  1 2012 12:00:00:000AM</node:coverDisplayDate>

either you have to change the : to other special characters like '-' in order to convert it properly

Correct Node
<node-number>1538-7445</node-number>
<node-coverDisplayDate>Sep  1 2012 12:00:00:000AM</node-coverDisplayDate>

I have wasted my precious time while debugging this. Please aware about this. ?
ricardo at ricardomartins dot info 21-Aug-2012 05:49
Sometimes we have xml's with hyphens nodes, like

<my_xml>
 <some-node>value</some-node>
</my_xml>

You'll need to use
<?php
$simpleXmlObj->{'some-node'}
?>

instead of
<?php
$simpleXmlObj->some-node;
?>
fusionstream at gmail dot com 05-Apr-2012 04:15
If you are loading many files, this may slow down your page load time.

To set a timeout, use file_get_context and then simplexml_load_string

<?php

$fp = fopen('http://www.example.com/rss', false, stream_create_context(array('http' => array('timeout', '1.5'))));

if ($fp) {
    print_r( simplexml_load_string($fp) );
} else {
    echo "The request timed out";
}
?>
sean at aliencreations dot com 17-Mar-2011 10:59
If you find that you are receiving 500 errors with simplexml_load_file() but you can access the xml/rss feed manually through a browser, your script is probably being blocked by a user agent sniffer.

Add this code before your xml call to remedy this issue

<?php

ini_set("user_agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");
ini_set("max_execution_time", 0);
ini_set("memory_limit", "10000M");

$rss = simplexml_load_file($feed_url);

?>
Nanuit at ossi dot at 08-Feb-2011 01:51
A little function very helpfull in using simplexml_load_file behind a proxy

<?php
function getXMLfromURL($url) {
      $Proxy = getenv("HTTP_PROXY");

      if (strlen($Proxy) > 1) {
        $r_default_context = stream_context_get_default ( array
                    ('http' => array(
                        'proxy' => $Proxy,
                        'request_fulluri' => True,
                    ),
                )
            );
        libxml_set_streams_context($r_default_context);
      }
      $daten = simplexml_load_file($url);
      return ($daten);
    }
?>

where HTTP_PROXY is set to e.g.: tcp://proxy:8080
guego dot ol at ig dot com dot br 12-Nov-2010 03:26
Analyze fully XML.

<?php
$xml = simplexml_load_file('file.xml');

foreach($xml as $key0 => $value){
echo "..1..[$key0] => $value";
foreach($value->attributes() as $attributeskey0 => $attributesvalue1){
echo "________[$attributeskey0] = $attributesvalue1";
}
echo '<br />';
////////////////////////////////////////////////
foreach($value as $key => $value2){
echo "....2.....[$key] => $value2";
foreach($value2->attributes() as $attributeskey => $attributesvalue2){
echo "________[$attributeskey] = $attributesvalue2";
}
echo '<br />';
////////////////////////////////////////////////
foreach($value2 as $key2 => $value3){
echo ".........3..........[$key2] => $value3";
foreach($value3->attributes() as $attributeskey2 => $attributesvalue3){
echo "________[$attributeskey2] = $attributesvalue3";
}
echo '<br />';
////////////////////////////////////////////////
foreach($value3 as $key3 => $value4){
echo "...................4....................[$key3] => $value4";
foreach($value4->attributes() as $attributeskey3 => $attributesvalue4){
echo "________[$attributeskey3] = $attributesvalue4";
}
echo '<br />';
////////////////////////////////////////////////
foreach($value4 as $key4 => $value5){
echo ".....................5......................[$key4] => $value5";
foreach($value5->attributes() as $attributeskey4 => $attributesvalue5){
echo "________[$attributeskey4] = $attributesvalue5";
}
echo '<br />';
////////////////////////////////////////////////
foreach($value5 as $key5 => $value6){
echo "......................6.......................[$key5] => $value6";
foreach($value6->attributes() as $attributeskey5 => $attributesvalue6){
echo "________[$attributeskey5] = $attributesvalue6";
}
echo '<br />';
}}}}}
echo '<br />';
}
?>
raduispas at gmail dot com 21-Oct-2010 06:12
if you want to check when this function fails,make sure to compare the return value with ===  instead of == :

<?php
$url = 'http://www.example.com';
$xml = simpleXML_load_file($url,"SimpleXMLElement",LIBXML_NOCDATA);
if($xml ===  FALSE)
{
   //deal with error
}
else { //do stuff }
?>

Otherwise you may end up with FALSE all the time even if the document is ok. Hope this helps someone ;)
jamie at splooshmedia dot co dot uk 31-Mar-2010 06:17
A wrapper around simplexml_load_file to circumvent nasty error messages when the xml server times out or gives a 500 error etc.

<?php
function loadXML2($domain, $path, $timeout = 30) {

    /*
        Usage:

        $xml = loadXML2("127.0.0.1", "/path/to/xml/server.php?code=do_something");
        if($xml) {
            // xml doc loaded
        } else {
            // failed. show friendly error message.
        }
    */

    $fp = fsockopen($domain, 80, $errno, $errstr, $timeout);
    if($fp) {
        // make request
        $out = "GET $path HTTP/1.1\r\n";
        $out .= "Host: $domain\r\n";
        $out .= "Connection: Close\r\n\r\n";
        fwrite($fp, $out);

        // get response
        $resp = "";
        while (!feof($fp)) {
            $resp .= fgets($fp, 128);
        }
        fclose($fp);
        // check status is 200
        $status_regex = "/HTTP\/1\.\d\s(\d+)/";
        if(preg_match($status_regex, $resp, $matches) && $matches[1] == 200) {
            // load xml as object
            $parts = explode("\r\n\r\n", $resp);
            return simplexml_load_string($parts[1]);
        }
    }
    return false;

}
?>
Smokey 14-Mar-2010 10:16
for nested and same name values i'v made up this little bit for getting and displaying multiable values from google's geocode when a exact match is not found it returns all close matches in the following format(this is an abriged version of there output)

<Response>
  <Placemark id="1">
    <address> New York 24, NY, USA</address>
    <AddressDetails>
      ..................
    </AddressDetails>
    <Point>
      <coordinates>-73.5850086,40.7207442,0</coordinates>
    </Point>
  </Placemark>
  <Placemark id="2">
    <address>New York 27, NY, USA</address>
    <AddressDetails>
      ...................
    </AddressDetails>
    <Point>
      <coordinates>-72.8987835,40.8003588,0</coordinates>
    </Point>
  </Placemark>
  <Placemark id="3">
    <address>Cedar Place School, 20 Cedar Pl, Yonkers, NY 10705, USA</address>
    <AddressDetails>
      ..................
    </AddressDetails>
    <Point>
      <coordinates>-73.8966320,40.9256520,0</coordinates>
    </Point>
  </Placemark>
</Response>

<?php
// get and breakdown the results then store them in $var's
$Address = "99999 parkplace, new york, NY";
$urladdress = urlencode($Address);
$Base_url = "http://maps.google.com/maps/geo?q=";
$urlParts = "&output=xml";
$urlrequest = $Base_url . $urladdress . $urlParts;
$xml = simplexml_load_file($urlrequest);
$num = "0";
foreach ($xml->Response->Placemark as $value){
    $num++;
    $GeoFindAdd{$num} = $value->address;
    $GeoFindCords{$num} = $value->Point->coordinates;
}

// a simple display for the results
echo "Found ",$num," Possable Geo Data Sets <br>";
$CountNumResults = "0";
for ( ; $num > 0; $num--){
    $CountNumResults++;
    echo $countnum,"<br> Address = ",$GeoFindAdd{$num},"<br> Coordinates = ",$GeoFindCords{$num},"<br>";
}
echo "END";
?>
knl at bitflop dot com 11-Sep-2009 12:02
If you need to parse the data from SimpleXML into a session variable remember to define the data as a string first.

If you don't you will get warnings of "Node no longer exists" pointing to your session_start() function.

This will work:

<?php

    $new_version = simplexml_load_file('http://example.com/version.xml');
    $_SESSION['current_version'] = (string)$new_version->version;

?>
neil art neilanddeb dort com 17-Aug-2009 06:00
Because the encoding of my XML file is UTF-8 and the
encoding of my web page is iso-8859-1 I was getting strange characters such as â€™ instead of a right single quote.

The solution to this turned out to be hard to find, but really easy to implement.

http://uk3.php.net/manual/en/function.iconv.php

Using the iconv() function you can convert from one encodign to another, the TRANSLIT option seems to work best for what I needed.  Here's my example:

<?php
// convert string from utf-8 to iso8859-1
$horoscope = iconv( "UTF-8", "ISO-8859-1//TRANSLIT", $horoscope );
?>

I found the solution on this page...
http://tinyurl.com/lm39xc
Hope this helps
cryonyx at cerebrate dot ru 21-Oct-2008 03:34
In case you have a XML file with a series of equally named elements on one level simplexml incorrectly processes them and doesn't allow to walk through the array using foreach(). As far as I'm concerned, it is the problem caused by PHP xml_parser (see: http://ru2.php.net/manual/ru/function.xml-parser-create.php#53188).

To avoid this, just use count() and walk through the array using for().

Example:

<params>
  <param>
    <name>version.shell</name>
    <value>1.0</value>
  </param>
  <param>
      <name>version.core</name>
      <value>1.0</value>
  </param>
  <param>
      <name>file.lang</name>
      <value>vc.lang</value>
  </param>
  ...
</params>

<?php
$filename = '...';
$xml = simplexml_load_file($filename);
$p_cnt = count($xml->param);
for($i = 0; $i < $p_cnt; $i++) {
  $param = $xml->param[$i];
  ...;
}
?>
mario 02-Sep-2008 02:08
If you want CDATA in your object you should use LIBXML_NOCDATA

<?php
$xml = simplexml_load_file($file_xml, 'SimpleXMLElement',LIBXML_NOCDATA);

    print_r($xml);
?>
l [DOT] anzinger [AT] gmail [DOT] com 26-Mar-2008 09:03
If you don't want that the CDATA values get escaped, just load the XML with LIBXML_NOCDATA as an 3rd argument.

Note: A PHP version >= 5.1.0 is required for this to work.

Example:

<?php simplexml_load_file('xmldatei.xml', null, LIBXML_NOCDATA); ?>
php at werner dash ott dot de 29-Mar-2007 01:13
Making SimpleXMLElement objects session save.

Besides the effect of not surviving sessions, the SimpleXMLElement object may even crash the session_start() function when trying to re-enter the session!

To come up with a solution for this, I used a pattern as follows. The core idea is to transform the SimpleXMLElement between session calls to and from a string representation which of course is session save.

<?php
  //
  // session save handling of SimpleXMLElement objects
  // (applies to/ tested with PHP 5.1.5 and PHP 5.2.1)
  // The myClass pattern allows for conveniently accessing
  // XML structures while being session save
  //
  class myClass
  {
    private $o_XMLconfig = null;
    private $s_XMLconfig = '';

    public function __construct($args_configfile)
    {
      $this->o_XMLconfig = simplexml_load_file($args_configfile);
      $this->s_XMLconfig = $this->o_XMLconfig->asXML();
    } // __construct()

    public function __destruct()
    {
      $this->s_XMLconfig = $this->o_XMLconfig->asXML();
      unset($this->o_XMLconfig); // this object would otherwise crash
                                 // the subsequent call of
                                 // session_start()!
    } // __destruct()

    public function __wakeup()
    {
      $this->o_XMLconfig = simplexml_load_string($this->s_XMLconfig);
    } // __wakeup()

  } // class myClass
?>
wouter at code-b dot nl 20-Feb-2007 02:08
To correctly extract a value from a CDATA just make sure you cast the SimpleXML Element to a string value by using the cast operator:

<?php
$xml = '<?xml version="1.0" encoding="UTF-8" ?>
<rss>
    <channel>
        <item>
            <title><![CDATA[Tom & Jerry]]></title>
        </item>
    </channel>
</rss>';

$xml = simplexml_load_string($xml);

// echo does the casting for you
echo $xml->channel->item->title;

// but vardump (or print_r) not!
var_dump($xml->channel->item->title);

// so cast the SimpleXML Element to 'string' solve this issue
var_dump((string) $xml->channel->item->title);
?>

Above will output:

Tom & Jerry

object(SimpleXMLElement)#4 (0) {}

string(11) "Tom & Jerry"
Kyle 10-Dec-2006 02:35
In regards to Anonymous on 7th April 2006

There is a way to get back HTML tags. For example:

<?xml version="1.0"?>
<intro>
    Welcome to <b>Example.com</b>!
</intro>

<?php
// I use @ so that it doesn't spit out content of my XML in an error message if the load fails. The content could be passwords so this is just to be safe.
$xml = @simplexml_load_file('content_intro.xml');
if ($xml) {
    // asXML() will keep the HTML tags but it will also keep the parent tag <intro> so I strip them out with a str_replace. You could obviously also use a preg_replace if you have lots of tags.
    $intro = str_replace(array('<intro>', '</intro>'), '', $xml->asXML());
} else {
    $error = "Could not load intro XML file.";
}
?>

With this method someone can change the intro in content_intro.xml and ensure that the HTML is well formed and not ruin the whole site design.
Anonymous 06-Apr-2006 09:21
What has been found when using the script is that simplexml_load_file() will remove any HTML formating inside the XML file, and will also only load so many layers deep. If your XML file is to deap, it will return a boolean false.
fdouteaud at gmail dot com 09-Mar-2006 05:21
Be careful if you are using simplexml data directly to feed your MySQL database using MYSQLi and bind parameters.

The data coming from simplexml are Objects and the bind parameters functions of MySQLi do NOT like that! (it causes some memory leak and can crash Apache/PHP)

In order to do this properly you MUST cast your values to the right type (string, integer...) before passing them to the binding methods of MySQLi.
I did not find that in the documentation and it caused me a lot of headache.
info at evasion dot cc 06-Feb-2006 08:26
Sorry there's a mistake in the previous function :
<?php
   function &getXMLnode($object, $param) {
       foreach($object as $key => $value) {
           if(isset($object->$key->$param)) {
               return $object->$key->$param;
           }
           if(is_object($object->$key)&&!empty($object->$key)) {
               $new_obj = $object->$key;
               // Must use getXMLnode function there (recursive)
               $ret = getXMLnode($new_obj, $param);

           }
       }
       if($ret) return (string) $ret;
       return false;
   }
?>
skutter at imprecision dot net 03-Feb-2006 09:11
So it seems SimpleXML doesn't support CDATA... I bashed together this little regex function to sort out the CDATA before trying to parse XML with the likes of simplexml_load_file / simplexml_load_string. Hope it might help somebody and would be very interested to hear of better solutions. (Other than *not* using SimpleXML of course! ;)

It looks for any <![CDATA [Text and HTML etc in here]]> elements, htmlspecialchar()'s the encapsulated data and then strips the "<![CDATA [" and "]]>" tags out.

<?php
function simplexml_unCDATAise($xml) {
    $new_xml = NULL;
    preg_match_all("/\<\!\[CDATA \[(.*)\]\]\>/U", $xml, $args);

    if (is_array($args)) {
        if (isset($args[0]) && isset($args[1])) {
            $new_xml = $xml;
            for ($i=0; $i<count($args[0]); $i++) {
                $old_text = $args[0][$i];
                $new_text = htmlspecialchars($args[1][$i]);
                $new_xml = str_replace($old_text, $new_text, $new_xml);
            }
        }
    }

    return $new_xml;
}

//Usage:
$xml = 'Your XML with CDATA...';
$xml = simplexml_unCDATAise($xml);
$xml_object = simplexml_load_string($xml);
?>
info at evasion dot cc 03-Feb-2006 03:37
Suppose you have loaded a XML file into $simpleXML_obj.
The structure is like below :

SimpleXMLElement Object
(

    [node1] => SimpleXMLElement Object
        (
            [subnode1] => value1
            [subnode2] => value2
            [subnode3] => value3
        )

    [node2] => SimpleXMLElement Object
        (
            [subnode4] => value4
            [subnode5] => value5
            [subnode6] => value6
        )

)

When searching a specific node in the object, you may use this function :

<?php

    function &getXMLnode($object, $param) {
        foreach($object as $key => $value) {
            if(isset($object->$key->$param)) {
                return $object->$key->$param;
            }
            if(is_object($object->$key)&&!empty($object->$key)) {
                $new_obj = $object->$key;
                $ret = getCfgParam($new_obj, $param);
            }
        }
        if($ret) return (string) $ret;
        return false;
    }
?>

So if you want to get subnode4 value you may use this function like this :

<?php
$result = getXMLnode($simpleXML_obj, 'subnode4');
echo $result;
?>

It display "value4"
genialbrainmachine at NOSPAM dot tiscali dot it 30-Sep-2005 08:52
Micro$oft Word uses non-standard characters and they create problems in using simplexml_load_file.
Many systems include non-standard Word character in their implementation of ISO-8859-1. So an XML document containing that characters can appear well-formed (i.e.) to many browsers. But if you try to load this kind of documents with simplexml_load_file you'll have a little bunch of troubles..
I believe that this is exactly the same question discussed in htmlentites. Following notes to htmlentitles are interesting here too (given in the reverse order, to grant the history):
http://it.php.net/manual/en/function.htmlentities.php#26379
http://it.php.net/manual/en/function.htmlentities.php#41152
http://it.php.net/manual/en/function.htmlentities.php#42126
http://it.php.net/manual/en/function.htmlentities.php#42511
mark 12-Sep-2005 11:06
If the property of an object is empty the array is not created. Here is a version object2array that transfers properly.

<?php
function object2array($object)
{
    $return = NULL;

    if(is_array($object))
    {
        foreach($object as $key => $value)
            $return[$key] = object2array($value);
    }
    else
    {
        $var = get_object_vars($object);

        if($var)
        {
            foreach($var as $key => $value)
                $return[$key] = ($key && !$value) ? NULL : object2array($value);
        }
        else return $object;
    }

    return $return;
}
?>


Bir XML dizgesini bir nesne haline getirir

  • « simplexml_load_file
  • WDDX »
  • PHP Manual
  • Basit XML İşlevleri
  • Bir XML dizgesini bir nesne haline getirir

simplexml_load_string

(PHP 5, PHP 7, PHP 8)

simplexml_load_string — Bir XML dizgesini bir nesne haline getirir

Açıklama

simplexml_load_string(
string $veri,
?string $sınıfAdı = SimpleXMLElement::class,
int $seçenekler = 0,
string $isimalanı_veya_önek = "",
bool $önek_var = false
): SimpleXMLElement|false

İyi biçemli bir XML dizgesi alır ve bir nesne olarak döndürür.

Bağımsız Değişkenler

veri

İyi biçemli bir XML dizgesi.

sınıfAdı

İsteğe bağlı bu bağımsız değişken ile bir nesne döndürmek üzere SimpleXMLElement sınıfından türetilmiş bir sınıf ismi belirtilebilir.

seçenekler

libxml seçenek sabitlerinin bitsel VEYAsı.

isimalanı_veya_önek

İsimalanı öneki veya URI.

önek_var

isimalanı_veya_önek bir önek ise true, bir URI ise false öntanımlıdır.

Dönen Değerler

XML belgedeki veriyi içeren, SimpleXMLElement sınıfından türetilmiş bir nesne döndürür, başarısızlık durumunda false döner.

Hatalar/İstisnalar

XML verisinde bulunan her hata için bir E_WARNING hatası üretilir.

İpucu

Tüm XML hatalarını bastırmak için libxml_use_internal_errors() kullanıp daha sonra bu hataları libxml_get_errors() ile tek tek ele alabilirsiniz.

Örnekler

Örnek 1 - Bir XML belgenin yorumlanması

<?php
$string = <<<XML
<?xml version='1.0'?>
<document>
<title>Soru Ne?</title>
<from>Can</from>
<to>Canan</to>
<body>
Cevabı anladık da sonu neydi?
</body>
</document>
XML;

$xml = simplexml_load_string($string);

var_dump($xml);
?>

Yukarıdaki örneğin çıktısı:

SimpleXMLElement Object
(
  [title] => Soru Ne?
  [from] => Can
  [to] => Canan
  [body] =>
   Cevabı anladık da sonu neydi?
)

Ayrıca, echo $xml->body gibi çıktılamalar da yapabilirdiniz.

Ayrıca Bakınız

  • simplexml_load_file() - Bir XML dosyasının içeriğini bir nesne haline getirir
  • SimpleXMLElement::__construct() - Yeni bir SimpleXMLElement nesnesi oluşturur
  • XML hatalarıya ilgilenmek
  • libxml_use_internal_errors() - libxml hatalarını kapatarak kullanıcı tanımlı hataları mümkün kılar
  • Temel SimpleXML kullanımı

User Contributed Notes

erguven dot m at gmail dot com 11-May-2017 03:14
if you want to use a class which exists in a name space, use it full name. simple_load_string did not recognize short one.

class.new.php
<?php
namespace foo\bar;

class new extends SimpleXMLElement
{
    public function do()
    {
        echo "done";
    }
}
?>

false.php
<?php
use \foo\bar\new;

$result = simplexml_load_string($xml, 'new'); // it gives warning
$result->do(); // fatal error
?>

true.php
<?php
use \foo\bar\new;
$result = simplexml_load_string($xml, '\foo\bar\new');

$result->do(); // prints done
?>
artistan at gmail dot com 11-Jun-2015 12:32
Here is my update to Bob's simple SimpleXML wrapper function.
I noticed his version would turn an empty SimpleXMLElement into an empty array.

<?php
    /**
     * http://php.net/manual/en/function.simplexml-load-string.php#91564
     *
     * bool/array unserialize_xml ( string $input [ , callback $callback ] )
     * Unserializes an XML string, returning a multi-dimensional associative array, optionally runs a callback on all non-array data
     * Returns false on all failure
     * Notes:
     * Root XML tags are stripped
     * Due to its recursive nature, unserialize_xml() will also support SimpleXMLElement objects and arrays as input
     * Uses simplexml_load_string() for XML parsing, see SimpleXML documentation for more info
     *
     * @param $input
     * @param null $callback
     * @param bool $recurse
     * @return array|mixed
     *
     */
    function unserialize_xml($input, $callback = null, $recurse = false)
    {
        // Get input, loading an xml string with simplexml if its the top level of recursion
        $data = ((!$recurse) && is_string($input))? simplexml_load_string($input): $input;
        // Convert SimpleXMLElements to array
        if ($data instanceof SimpleXMLElement){
            if(!empty($data)){
                $data = (array) $data;
            } else {
                $data = '';
            }
        }
        // Recurse into arrays
        if (is_array($data)) foreach ($data as &$item) $item = unserialize_xml($item, $callback, true);
        // Run callback and return
        return (!is_array($data) && is_callable($callback))? call_user_func($callback, $data): $data;
    }
?>
meustrus 07-May-2015 03:38
Be careful checking for parse errors. An empty SimpleXMLElement may resolve to FALSE, and if your XML contains no text or only contains namespaced elements your error check may be wrong. Always use `=== FALSE` when checking for parse errors.

<?php

$xml = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<ns1:Root xmlns:ns1="http://example.com/custom">
<ns1:Node>There's stuff here</ns1:Node>
</ns1:Root>
XML;

$simplexml = simplexml_load_string($xml);

// This prints "Parse Error".
echo ($simplexml ? 'Valid XML' : 'Parse Error'), PHP_EOL;

// But this prints "There's stuff here", proving that
// the SimpleXML object was created successfully.
echo $simplexml->children('http://example.com/custom')->Node, PHP_EOL;

// Use this instead:
echo ($simplexml !== FALSE ? 'Valid XML' : 'Parse Error'), PHP_EOL;

?>

See:

https://bugs.php.net/bug.php?id=31045
https://bugs.php.net/bug.php?id=30972
https://bugs.php.net/bug.php?id=69596
dkrnl at yandex dot ru 30-Sep-2013 02:58
Wrapper XMLReader class, for simple SAX-reading huge xml:
https://github.com/dkrnl/SimpleXMLReader

Usage example: http://github.com/dkrnl/SimpleXMLReader/blob/master/examples/example1.php
AllenJB 12-Oct-2012 08:09
<?php
$xml = json_decode(json_encode((array) simplexml_load_string($string)), 1);
?>

A reminder that json_encode attempts to convert data to UTF-8 without specific knowledge of the source encoding. This method can cause encoding issues if you're not working in UTF-8.
Anonymous 29-Feb-2012 08:54
Use libxml_disable_entity_loader() to restrict loading of external files.  See http://www.idontplaydarts.com/2011/02/scanning-the-internal-network-using-simplexml/
Diego Araos, diego at klapmedia dot com 05-Feb-2011 12:57
A simpler way to transform the result into an array (requires json module).

<?php
function object2array($object) { return @json_decode(@json_encode($object),1); }
?>

Example:
<?php
$xml_object=simplexml_load_string('<SOME XML DATA');
$xml_array=object2array($xml_object);
?>
ascammon at hotmail dot com 28-Dec-2010 01:04
I had a hard time finding this documented, so posting it here in case it helps someone:

If you want to use multiple libxml options, separate them with a pipe, like so:

<?php
$xml = simplexml_load_string($string, 'SimpleXMLElement', LIBXML_NOCDATA | LIBXML_NOBLANKS);
?>
jeff at creabilis dot com 17-Nov-2009 02:28
If you want to set the charset of the outputed xml, simply set the encoding attribute like this :

<?php simplexml_load_string('<?xml version="1.0" encoding="utf-8"?><xml/>'); ?>

The generated xml outputed by $xml->asXML will containt accentuated characters like 'é' instead of &#xE9;.

Hope this help
Bob 17-Jun-2009 02:16
Here is my simple SimpleXML wrapper function.
As far as I can tell, it does the same as Julio Cesar Oliveira's (above).
It parses an XML string into a multi-dimensional associative array.
The second argument is a callback that is run on all data (so for example, if you want all data trimmed, like Julio does in his function, just pass 'trim' as the second arg).
<?php
function unserialize_xml($input, $callback = null, $recurse = false)
/* bool/array unserialize_xml ( string $input [ , callback $callback ] )
 * Unserializes an XML string, returning a multi-dimensional associative array, optionally runs a callback on all non-array data
 * Returns false on all failure
 * Notes:
    * Root XML tags are stripped
    * Due to its recursive nature, unserialize_xml() will also support SimpleXMLElement objects and arrays as input
    * Uses simplexml_load_string() for XML parsing, see SimpleXML documentation for more info
 */
{
    // Get input, loading an xml string with simplexml if its the top level of recursion
    $data = ((!$recurse) && is_string($input))? simplexml_load_string($input): $input;
    // Convert SimpleXMLElements to array
    if ($data instanceof SimpleXMLElement) $data = (array) $data;
    // Recurse into arrays
    if (is_array($data)) foreach ($data as &$item) $item = unserialize_xml($item, $callback, true);
    // Run callback and return
    return (!is_array($data) && is_callable($callback))? call_user_func($callback, $data): $data;
}
?>
Julio Cesar Oliveira 30-Mar-2009 07:14
The XML2Array func now Recursive!

<?php
function XML2Array ( $xml , $recursive = false )
{
    if ( ! $recursive )
    {
        $array = simplexml_load_string ( $xml ) ;
    }
    else
    {
        $array = $xml ;
    }

    $newArray = array () ;
    $array = ( array ) $array ;
    foreach ( $array as $key => $value )
    {
        $value = ( array ) $value ;
        if ( isset ( $value [ 0 ] ) )
        {
            $newArray [ $key ] = trim ( $value [ 0 ] ) ;
        }
        else
        {
            $newArray [ $key ] = XML2Array ( $value , true ) ;
        }
    }
    return $newArray ;
}
?>
javalc6 at gmail dot com 18-Oct-2008 06:25
I wanted to convert an array containing strings and other arrays of the same type into a simplexml object.

Here is the code of the function array2xml that I've developed to perform this conversion. Please note that this code is simple without any checks.

<?php
function array2xml($array, $tag) {

    function ia2xml($array) {
        $xml="";
        foreach ($array as $key=>$value) {
            if (is_array($value)) {
                $xml.="<$key>".ia2xml($value)."</$key>";
            } else {
                $xml.="<$key>".$value."</$key>";
            }
        }
        return $xml;
    }

    return simplexml_load_string("<$tag>".ia2xml($array)."</$tag>");
}

$test['type']='lunch';
$test['time']='12:30';
$test['menu']=array('entree'=>'salad', 'maincourse'=>'steak');

echo array2xml($test,"meal")->asXML();
?>
rowan dot collins at gmail dot com 10-Jul-2008 07:07
There seems to be a lot of talk about SimpleXML having a "problem" with CDATA, and writing functions to rip it out, etc. I thought so too, at first, but it's actually behaving just fine under PHP 5.2.6

The key is noted above example #6 here:
http://uk2.php.net/manual/en/simplexml.examples.php

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

If a tag contains CDATA, SimpleXML remembers that fact, by representing it separately from the string content of the element. So some functions, including print_r(), might not show what you expect. But if you explicitly cast to a string, you get the whole content.

<?php
$xml = simplexml_load_string('<foo>Text1 &amp; XML entities</foo>');
print_r($xml);
/*
SimpleXMLElement Object
(
    [0] => Text1 & XML entities
)
*/

$xml2 = simplexml_load_string('<foo><![CDATA[Text2 & raw data]]></foo>');
print_r($xml2);
/*
SimpleXMLElement Object
(
)
*/
// Where's my CDATA?

// Let's try explicit casts
print_r( (string)$xml );
print_r( (string)$xml2 );
/*
Text1 & XML entities
Text2 & raw data
*/
// Much better
?>
amir_abiri at ipcmedia dot com 08-Feb-2008 08:47
It doesn't seem to be documented anywhere, but you can refer to an element "value" for the purpose of changing it like so:

<?php
$xml = simplexml_load_string('<root><number>1</number></root>');
echo $xml->asXml(). "\n\n";

$xml->number->{0} = $xml->number->{0} + 1;

echo $xml->asXml();
?>

echos:
<?xml version="1.0"?>
<root><number>1</number></root>

<?xml version="1.0"?>
<root><number>2</number></root>

However, this only works with a direct assignment, not with any of the other operators:

<?php
$xml = simplexml_load_string('<root><number>1</number></root>');
echo $xml->asXml(). "\n\n";

$xml->number->{0} += 1;
// Or:
$xml->number->{0}++;

echo $xml->asXml();
?>

Both of the above cases would result in:

<?xml version="1.0"?>
<root><number>1</number></root>

<?xml version="1.0"?>
<root><number>1<0/></number></root>
bojan 04-Feb-2008 04:38
As was said before don't use var_dump() or print_r() to see SimpleXML object structure as they do not returns always what you expect.
Consider the following:

<?php

// data in xml
$xml_txt = '
<root>
  <folder ID="65" active="1" permission="1"><![CDATA[aaaa]]></folder>
  <folder ID="65" active="1" permission="1"><![CDATA[bbbb]]></folder>
</root>';

// load xml into SimpleXML object
$xml = simplexml_load_string($xml_txt, 'SimpleXMLElement', LIBXML_NOCDATA);//LIBXML_NOCDATA LIBXML_NOWARNING

// see object structure
print_r($xml);

/* this prints
SimpleXMLElement Object
(
    [folder] => Array
        (
            [0] => aaaa
            [1] => bbbb
        )

)
*/

// but...
foreach ($xml->folder as $value){
    print_r($value);
}
/* prints complete structure of each folder element:
SimpleXMLElement Object
(
    [@attributes] => Array
        (
            [ID] => 65
            [active] => 1
            [permission] => 1
        )

    [0] => aaaa
)

SimpleXMLElement Object
(
    [@attributes] => Array
        (
            [ID] => 65
            [active] => 1
            [permission] => 1
        )

    [0] => bbbb
)

*/
?>
hattori at hanso dot com 15-Oct-2007 03:19
Theres a problem with the below workaround when serializing fields containing html CDATA. For any other content type then HTML try to modfiy function parseCDATA.
Just add these lines before serializing.
This is also a workaround for this bug http://bugs.php.net/bug.php?id=42001

<?PHP
if(strpos($content, '<![CDATA[')) {
   function parseCDATA($data) {
      return htmlentities($data[1]);
   }
   $content = preg_replace_callback(
      '#<!\[CDATA\[(.*)\]\]>#',
      'parseCDATA',
      str_replace("\n", " ", $content)
   );
}
?>
nbijnens at servs dot eu 10-Sep-2007 05:17
Please note that not all LIBXML options are supported with the options argument.

For instance LIBXML_XINCLUDE does not work. But there is however a work around:

<?php
$xml = new DOMDocument();
$xml->loadXML ($XMLString);

$xml->xinclude();
$xml = simplexml_import_dom($xml);

?>
Pedro 06-Jul-2007 01:28
Attention:

simplexml_load_string has a problem with entities other than (&lt;, &gt;, &amp;, &quot; and &apos;).

Use numeric character references instead!
m dot ament at mailcity dot com 06-Mar-2007 06:51
Warning:

The parsing of XML-data will stop when reaching character 0.
Please avoid this character in your XML-data.
mindpower 30-Jan-2007 03:03
A simple extension that adds a method for retrieving a specific attribute:

<?php
class simple_xml_extended extends SimpleXMLElement
{
    public    function    Attribute($name)
    {
        foreach($this->Attributes() as $key=>$val)
        {
            if($key == $name)
                return (string)$val;
        }
    }

}

$xml = simplexml_load_string('
<xml>
  <dog type="poodle" owner="Mrs Smith">Rover</dog>
</xml>', 'simple_xml_extended');

echo $xml->dog->Attribute('type');

?>

outputs 'poodle'

I prefer to use this technique rather than typecasting attributes.
Maciek Ruckgaber <maciekrb at gmai dot com> 07-Jun-2005 05:07
after wondering around some time, i just realized something (maybe obvious, not very much for me). Hope helps someone to not waste time as i did :-P

when you have something like:

<?php
$xmlstr = <<<XML
<?xml version="1.0" encoding="utf-8"?>
<double xmlns="http://foosite.foo/">2328</double>
XML;
?>

you will have the simpleXML object "transformed" to the text() content:

<?php
$xml = simplexml_load_string($xmlstr);
echo $xml; // this will echo 2328  (string)
?>
cellog at php dot net 31-Aug-2004 04:11
simplexml does not simply handle CDATA sections in a foreach loop.

<?php
$sx = simplexml_load_string('
<test>
 <one>hi</one>
 <two><![CDATA[stuff]]></two>
 <t>
  <for>two</for>
 </t>
 <multi>one</multi>
 <multi>two</multi>
</test>');
foreach((array) $sx as $tagname => $val) {
    if (is_string($val)) {
       // <one> will go here
    } elseif (is_array($val)) {
       // <multi> will go here because it happens multiple times
    } elseif (is_object($val)) {
      // <t> will go here because it contains tags
      // <two> will go here because it contains CDATA!
    }
}
?>

To test in the loop, do this

<?php
if (count((array) $val) == 0) {
    // this is not a tag that contains other tags
    $val = '' . $val;
    // now the CDATA is revealed magically.
}
?>


WDDX

  • Giriş
  • Yapılandırma/Kurulum
    • Gereksinimler
    • Kurulum
    • Çalışma Anı Yapılandırması
    • Özkaynak Türleri
  • Öntanımlı Sabitler
  • Örnekler
    • WDDX örnekleri
  • WDDX İşlevleri
    • wddx_add_vars — Tanıtıcısı belirtilen WDDX paketine değişken ekler
    • wddx_deserialize — WDDX paketini nesneleştirir
    • wddx_packet_end — Tanıtıcısı belirtilen WDDX paketini kapatır
    • wddx_packet_start — Bir veri yapısı içeren yeni bir WDDX paketi başlatır
    • wddx_serialize_value — Tek bir değeri bir WDDX paketi içinde dizgeleştirir
    • wddx_serialize_vars — Değişkenleri bir WDDX paketi olarak dizgeleştirir

User Contributed Notes

There are no user contributed notes for this page.


Giriş

Uyarı

Bu eklentinin KULLANIMI ÖNERİLMEMEKTEDİR ve PHP 7.4.0 itibariyle PHP paketinde dağıtılmamaktadır.

Bu işlevler » WDDX ile çalışmak üzere tasarlanmıştır.

Uyarı

Güvenilmeyen kullanıcı girdisini wddx_deserialize() işlevine aktarmayın. Nesneleştirme, nesnenin ilklendirmesi ve otomatik yüklenmesi nedeniyle kodun yüklenmesine ve çalıştırılmasına sebep olabilir ve kötü niyetli bir kullanıcı bundan yararlanabilir. Dizeleştirilmiş verileri kullanıcıya iletmeniz gerekiyorsa, JSON gibi güvenli, standart bir veri değişim biçemi (json_decode() ve json_encode() aracılığıyla) kullanın.

User Contributed Notes

alvaro at demogracia dot com 29-Sep-2008 08:49
From OpenWDDX.Org:

"The Web Distributed Data Exchange, or WDDX, is a free, open XML-based technology that allows Web applications created with any platform to easily exchange data with one another over the Web."

"WDDX is an XML-based technology that enables the exchange of complex data between Web programming languages, creating what some refer to as 'Web syndicate networks'. WDDX consists of a language-independent representation of data based on an XML 1.0 DTD, and a set of modules for a wide variety of languages that use WDDX. WDDX can be used with HTTP, SMTP, POP, FTP and other Internet protocols that support transferring textual data."


Gereksinimler

Bu eklenti PHP'nin libxml eklentsini gerektirir. Libxml öntanımlı olarak etkin olduğundan bu örtük olarak sağlansa da derleme sırasında ayrıca bir --with-libxml veya PHP 7.4 öncesinde --enable-libxml gerekir.

WDDX eklentisini kullanmak için sisteminizde expat kütüphanesinin kurulu olması gerekir. Expat kütüphanesi Apache 1.3.7 ve üstü sürümlerle gelir.

User Contributed Notes

There are no user contributed notes for this page.


Kurulum

PHP 7.4

itibariyle, bu eklenti » PECL deposuna taşınmış olup artık PHP kaynak paketinde dağıtılmamaktatır.7.4.0

Bu PECL eklentisini kurma bilgisi kılavuzun PECL eklentisinin kurulması başlıklı faslında bulunabilir. Yeni dağıtımlar, indirmeler, kaynak dosyaları, sürdürücü bilgileri ve CHANGELOG gibi ek bilgiler şu adreste bulunabilir: » https://pecl.php.net/package/wddx.

PHP < 7.4

Gerekli expat kütüphanesi kurulduktan sonra, PHP --enable-wddx ve --with-libexpat-dir seçenekleri ile derlenmelidir.

PHP'nin Windows sürümünde bu eklenti yerleşik olarak gelmektedir. Bu işlevleri Windows'ta kullanmak için herhangi bir eklenti kurulmasına gerek yoktur.

User Contributed Notes

There are no user contributed notes for this page.


Özkaynak Türleri

Bu eklenti, wddx_packet_start() işlevi tarafından döndürülen bir WDDX paket tanıtıcısına sahiptir.

User Contributed Notes

There are no user contributed notes for this page.


Örnekler

İçindekiler

  • WDDX örnekleri

User Contributed Notes

There are no user contributed notes for this page.


WDDX örnekleri

Değişkenleri dizgeleştiren tüm işlevler, dizinin bir dizi olarak mı yoksa bir yapı olarak mı dizgeleştirileceğini saptamak için bir dizinin ilk elemanını kullanır. Eğer ilk eleman dizgesel bir anahtara sahipse bir yapı olarak aksi takdirde bir dizi olarak dizgeleştirilir.

Örnek 1 - WDDX ile tek bir değerin dizgeleştirilmesi

<?php
echo wddx_serialize_value("PHP'den WDDX paketi elde etme örneği", "PHP paketi");
?>

Bu örnek şunu üretir:

<wddxPacket version='1.0'><header comment='PHP paketi'/><data>
<string>PHP'den WDDX paketi elde etme örneği</string></data></wddxPacket>

Örnek 2 - WDDX ile artırımsal paketlerin kullanımı

<?php
$pi = 3.1415926;
$packet_id = wddx_packet_start("PHP");
wddx_add_vars($packet_id, "pi");

/* $cities veritabanından geliyor olsun */
$cities = array("Austin", "Novato", "Seattle");
wddx_add_vars($packet_id, "cities");

$packet = wddx_packet_end($packet_id);
echo $packet;
?>

Bu örnek şunu üretir:

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

Bilginize:

Dizgelerin kodlaması UTF-8 olmalıdır. Diğer kodlamalar mb_convert_encoding(), iconv() veya UConverter::transcode() kullanılarak önce UTF-8'e dönüştürülmelidir.

User Contributed Notes

There are no user contributed notes for this page.


WDDX İşlevleri

İçindekiler

  • wddx_add_vars — Tanıtıcısı belirtilen WDDX paketine değişken ekler
  • wddx_deserialize — WDDX paketini nesneleştirir
  • wddx_packet_end — Tanıtıcısı belirtilen WDDX paketini kapatır
  • wddx_packet_start — Bir veri yapısı içeren yeni bir WDDX paketi başlatır
  • wddx_serialize_value — Tek bir değeri bir WDDX paketi içinde dizgeleştirir
  • wddx_serialize_vars — Değişkenleri bir WDDX paketi olarak dizgeleştirir

User Contributed Notes

There are no user contributed notes for this page.


Tanıtıcısı belirtilen WDDX paketine değişken ekler

  • « WDDX İşlevleri
  • wddx_deserialize »
  • PHP Manual
  • WDDX İşlevleri
  • Tanıtıcısı belirtilen WDDX paketine değişken ekler

wddx_add_vars

(PHP 4, PHP 5, PHP 7)

wddx_add_vars — Tanıtıcısı belirtilen WDDX paketine değişken ekler

Uyarı

Bu işlev PHP 7.4.0'da tamamen KALDIRILMIŞTIR.

Açıklama

wddx_add_vars(resource $pt, mixed $isim, mixed ...$isimler): bool

İsimleri aktarılan değişkenleri dizgeleştirip tanıtıcısı belirtilen WDDX paketine ekler.

Bağımsız Değişkenler

Bu işlevin alabileceği bağımsız değişken sayısı değişkendir.

pt

wddx_packet_start() tarafından döndürülmüş bir WDDX paket tanıtıcısı.

isim

Bir değişken ismi veya değişken isimlerini veya diğer dizileri ve benzerlerini içeren bir dizi olabilir.

isimler

Değişken isimleri.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

User Contributed Notes

There are no user contributed notes for this page.


WDDX paketini nesneleştirir

  • « wddx_add_vars
  • wddx_packet_end »
  • PHP Manual
  • WDDX İşlevleri
  • WDDX paketini nesneleştirir

wddx_deserialize

(PHP 4, PHP 5, PHP 7)

wddx_deserialize — WDDX paketini nesneleştirir

Uyarı

Bu işlev PHP 7.4.0'da tamamen KALDIRILMIŞTIR.

Açıklama

wddx_deserialize(string $paket): mixed

Belirtilen WDDX paketini nesneleştirir.

Uyarı

Güvenilmeyen kullanıcı girdisini wddx_deserialize() işlevine aktarmayın. Nesneleştirme, nesnenin ilklendirmesi ve otomatik yüklenmesi nedeniyle kodun yüklenmesine ve çalıştırılmasına sebep olabilir ve kötü niyetli bir kullanıcı bundan yararlanabilir. Dizeleştirilmiş verileri kullanıcıya iletmeniz gerekiyorsa, JSON gibi güvenli, standart bir veri değişim biçemi (json_decode() ve json_encode() aracılığıyla) kullanın.

Bağımsız Değişkenler

paket

Dizge veya akım olarak bir WDDX paketi.

Dönen Değerler

Bir dizge, sayı veya dizi olabilen dizgeleşmiş durumdan çıkarılan değeri döndürür. Yapıların ilişkisel diziler halinde dizgeleştirildikleri unutulmamalıdır.

User Contributed Notes

There are no user contributed notes for this page.


Tanıtıcısı belirtilen WDDX paketini kapatır

  • « wddx_deserialize
  • wddx_packet_start »
  • PHP Manual
  • WDDX İşlevleri
  • Tanıtıcısı belirtilen WDDX paketini kapatır

wddx_packet_end

(PHP 4, PHP 5, PHP 7)

wddx_packet_end — Tanıtıcısı belirtilen WDDX paketini kapatır

Uyarı

Bu işlev PHP 7.4.0'da tamamen KALDIRILMIŞTIR.

Açıklama

wddx_packet_end(resource $pt): string

Tanıtıcısı belirtilen WDDX paketini kapatır ve döndürür.

Bağımsız Değişkenler

pt

wddx_packet_start() tarafından döndürülmüş bir WDDX paket tanıtıcısı.

Dönen Değerler

WDDX paketini içeren bir dizge döner.

User Contributed Notes

There are no user contributed notes for this page.


Bir veri yapısı içeren yeni bir WDDX paketi başlatır

  • « wddx_packet_end
  • wddx_serialize_value »
  • PHP Manual
  • WDDX İşlevleri
  • Bir veri yapısı içeren yeni bir WDDX paketi başlatır

wddx_packet_start

(PHP 4, PHP 5, PHP 7)

wddx_packet_start — Bir veri yapısı içeren yeni bir WDDX paketi başlatır

Uyarı

Bu işlev PHP 7.4.0'da tamamen KALDIRILMIŞTIR.

Açıklama

wddx_packet_start(string $azıklama = ?): resource

Değişken eklemek üzere yeni bir WDDX paketi başlatır. Otomatik olarak paket içinde değişkenleri içerecek bir veri yapısı oluşturulur.

Bağımsız Değişkenler

açıklama

Belirtilmesi isteğe bağlı bir açıklama dizgesi.

Dönen Değerler

Bir hata oluşursa false yoksa daha sonra işlevlerde kullanılmak üzere bir paket tanıtıcısı döner.

User Contributed Notes

There are no user contributed notes for this page.


Tek bir değeri bir WDDX paketi içinde dizgeleştirir

  • « wddx_packet_start
  • wddx_serialize_vars »
  • PHP Manual
  • WDDX İşlevleri
  • Tek bir değeri bir WDDX paketi içinde dizgeleştirir

wddx_serialize_value

(PHP 4, PHP 5, PHP 7)

wddx_serialize_value — Tek bir değeri bir WDDX paketi içinde dizgeleştirir

Uyarı

Bu işlev PHP 7.4.0'da tamamen KALDIRILMIŞTIR.

Açıklama

wddx_serialize_value(mixed $değer, string $açıkama = ?): string

Belirtilen değerden bir WDDX paketi oluşturur.

Bağımsız Değişkenler

değer

Dizgeleştirilecek değer.

açıkama

Paket başlığında görünmek üzere belirtilmesi isteğe bağlı açıklama dizgesi.

Dönen Değerler

Bir hata oluşursa false yoksa bir WDDX paketi döner.

User Contributed Notes

There are no user contributed notes for this page.


Değişkenleri bir WDDX paketi olarak dizgeleştirir

  • « wddx_serialize_value
  • XMLDiff »
  • PHP Manual
  • WDDX İşlevleri
  • Değişkenleri bir WDDX paketi olarak dizgeleştirir

wddx_serialize_vars

(PHP 4, PHP 5, PHP 7)

wddx_serialize_vars — Değişkenleri bir WDDX paketi olarak dizgeleştirir

Uyarı

Bu işlev PHP 7.4.0'da tamamen KALDIRILMIŞTIR.

Açıklama

wddx_serialize_vars(mixed $isim, mixed ...$isimler): string

İsimleri aktarılan değişkenlerin dizgeleştirilmiş gösterimlerini içeren bir yapı olarak bir WDDX paketi oluşturur.

Bağımsız Değişkenler

Bu işlevin alabileceği bağımsız değişken sayısı değişkendir.

isim

Bir değişken ismi veya değişken isimlerini veya diğer dizileri ve benzerlerini içeren bir dizi olabilir.

isimler

Değişken isimleri.

Dönen Değerler

Bir hata oluşursa false yoksa bir WDDX paketi döner.

Örnekler

Örnek 1 - wddx_serialize_vars() örneği

<?php
$a = 1;
$b = 5.5;
$c = array("blue", "orange", "violet");
$d = "colors";

$clvars = array("c", "d");
echo wddx_serialize_vars("a", "b", $clvars);
?>

Yukarıdaki örneğin çıktısı:

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

User Contributed Notes

There are no user contributed notes for this page.


XML diff and merge

  • Giriş
  • Yapılandırma/Kurulum
    • Gereksinimler
    • Kurulum
  • XMLDiff\Base — The XMLDiff\Base class
    • XMLDiff\Base::__construct — Constructor
    • XMLDiff\Base::diff — Produce diff of two XML documents
    • XMLDiff\Base::merge — Produce new XML document based on diff
  • XMLDiff\DOM — The XMLDiff\DOM class
    • XMLDiff\DOM::diff — Diff two DOMDocument objects
    • XMLDiff\DOM::merge — Produce merged DOMDocument
  • XMLDiff\Memory — The XMLDiff\Memory class
    • XMLDiff\Memory::diff — Diff two XML documents
    • XMLDiff\Memory::merge — Produce merged XML document
  • XMLDiff\File — The XMLDiff\File class
    • XMLDiff\File::diff — Diff two XML files
    • XMLDiff\File::merge — Produce merged XML document

User Contributed Notes

There are no user contributed notes for this page.


Giriş

The extension is able to produce diffs of two XML documents and then to apply the difference to the source document. The diff is a XML document containing copy/insert/delete instruction nodes in human readable format. DOMDocument objects, local files and strings in memory can be processed.

User Contributed Notes

There are no user contributed notes for this page.


Gereksinimler

libdiffmark - version 0.10 is bundled with the extension. If diffmark is available from your system packages, its usage is strongly encouraged.

libxml extension

DOM extension

User Contributed Notes

There are no user contributed notes for this page.


Kurulum

Bu » PECL eklentisi PHP ile gelmez.

Bu PECL eklentisini kurma bilgisi kılavuzun PECL eklentisinin kurulması başlıklı faslında bulunabilir. Yeni dağıtımlar, indirmeler, kaynak dosyaları, sürdürücü bilgileri ve CHANGELOG gibi ek bilgiler şu adreste bulunabilir: » https://pecl.php.net/package/xmldiff.

A DLL for this PECL extension is available under » http://windows.php.net/downloads/pecl/releases/xmldiff/.

User Contributed Notes

There are no user contributed notes for this page.


The XMLDiff\Base class

(PECL xmldiff >= 0.8.0)

Giriş

Base abstract class for all the comparsion classes in the extension.

Sınıf Sözdizimi

class XMLDiff\Base {
/* Yöntemler */
public __construct(string $nsname)
abstract public diff(mixed $from, mixed $to): mixed
abstract public merge(mixed $src, mixed $diff): mixed
}

İçindekiler

  • XMLDiff\Base::__construct — Constructor
  • XMLDiff\Base::diff — Produce diff of two XML documents
  • XMLDiff\Base::merge — Produce new XML document based on diff

User Contributed Notes

There are no user contributed notes for this page.


Constructor

  • « XMLDiff\Base
  • XMLDiff\Base::diff »
  • PHP Manual
  • XMLDiff\Base
  • Constructor

XMLDiff\Base::__construct

(PECL xmldiff >= 0.8.0)

XMLDiff\Base::__construct — Constructor

Açıklama

public XMLDiff\Base::__construct(string $nsname)

Base constructor for all the worker classes in the xmldiff extension.

Bağımsız Değişkenler

nsname

Custom namespace name for the diff document. The default namespace is http://www.locus.cz/diffmark and that's enough to avoid namespace conflicts. Use this parameter if you want to change it for some reason.

User Contributed Notes

There are no user contributed notes for this page.


Produce diff of two XML documents

  • « XMLDiff\Base::__construct
  • XMLDiff\Base::merge »
  • PHP Manual
  • XMLDiff\Base
  • Produce diff of two XML documents

XMLDiff\Base::diff

(PECL xmldiff >= 0.8.0)

XMLDiff\Base::diff — Produce diff of two XML documents

Açıklama

abstract public XMLDiff\Base::diff(mixed $from, mixed $to): mixed

Abstract diff method to be implemented by inheriting classes.

The basic purpose of this method is to produce diff of the two documents. The param order matters and will produce different output.

Bağımsız Değişkenler

from

Source XML document.

to

Target XML document.

Dönen Değerler

Implementation dependent.

User Contributed Notes

There are no user contributed notes for this page.


Produce new XML document based on diff

  • « XMLDiff\Base::diff
  • XMLDiff\DOM »
  • PHP Manual
  • XMLDiff\Base
  • Produce new XML document based on diff

XMLDiff\Base::merge

(PECL xmldiff >= 0.8.0)

XMLDiff\Base::merge — Produce new XML document based on diff

Açıklama

abstract public XMLDiff\Base::merge(mixed $src, mixed $diff): mixed

Abstract merge method to be implemented by inheriting classes.

Basically the method purpose is to produce a new XML document based on the diff information.

Bağımsız Değişkenler

src

Source XML document.

diff

Document produced by the diff method.

Dönen Değerler

Implementation dependent.

User Contributed Notes

There are no user contributed notes for this page.


The XMLDiff\DOM class

(PECL xmldiff >= 0.8.0)

Giriş

Sınıf Sözdizimi

class XMLDiff\DOM extends XMLDiff\Base {
/* Yöntemler */
public diff(DOMDocument $from, DOMDocument $to): DOMDocument
public merge(DOMDocument $src, DOMDocument $diff): DOMDocument
/* Miras alınan yöntemler */
abstract public XMLDiff\Base::diff(mixed $from, mixed $to): mixed
abstract public XMLDiff\Base::merge(mixed $src, mixed $diff): mixed
}

İçindekiler

  • XMLDiff\DOM::diff — Diff two DOMDocument objects
  • XMLDiff\DOM::merge — Produce merged DOMDocument

User Contributed Notes

There are no user contributed notes for this page.


Diff two DOMDocument objects

  • « XMLDiff\DOM
  • XMLDiff\DOM::merge »
  • PHP Manual
  • XMLDiff\DOM
  • Diff two DOMDocument objects

XMLDiff\DOM::diff

(PECL xmldiff >= 0.8.0)

XMLDiff\DOM::diff — Diff two DOMDocument objects

Açıklama

public XMLDiff\DOM::diff(DOMDocument $from, DOMDocument $to): DOMDocument

Diff two DOMDocument instances and produce the new one containing the diff information.

Bağımsız Değişkenler

from

Source DOMDocument object.

to

Target DOMDocument object.

Dönen Değerler

DOMDocument with the diff information or NULL.

User Contributed Notes

jeewiya at gmail dot com 28-Mar-2018 10:43
XMLDiff\DOM can be use like this, for compare xml files changes.

<?php

function getChangeElements($currentContent, $oldContent) {
        try {
            $currentDoc = new DOMDocument();
            $currentDoc->loadXML($currentContent);

            $oldDoc = new DOMDocument();
            $oldDoc->loadXML($oldContent);
            $xmldiff = new XMLDiff\DOM();
            return $xmldiff->diff($oldDoc, $currentDoc);
        } catch (Exception $ex) {
            throw $ex;
        }
    }

getChangeElements('updated.xml', 'old.xml');

?>


Produce merged DOMDocument

  • « XMLDiff\DOM::diff
  • XMLDiff\Memory »
  • PHP Manual
  • XMLDiff\DOM
  • Produce merged DOMDocument

XMLDiff\DOM::merge

(PECL xmldiff >= 0.8.0)

XMLDiff\DOM::merge — Produce merged DOMDocument

Açıklama

public XMLDiff\DOM::merge(DOMDocument $src, DOMDocument $diff): DOMDocument

Create new DOMDocument based on the diff.

Bağımsız Değişkenler

src

Source DOMDocument object.

diff

DOMDocument object containing the diff information.

Dönen Değerler

Merged DOMDocument or NULL.

User Contributed Notes

There are no user contributed notes for this page.


The XMLDiff\Memory class

(PECL xmldiff >= 0.8.0)

Giriş

Sınıf Sözdizimi

class XMLDiff\Memory extends XMLDiff\Base {
/* Yöntemler */
public diff(string $from, string $to): string
public merge(string $src, string $diff): string
/* Miras alınan yöntemler */
abstract public XMLDiff\Base::diff(mixed $from, mixed $to): mixed
abstract public XMLDiff\Base::merge(mixed $src, mixed $diff): mixed
}

İçindekiler

  • XMLDiff\Memory::diff — Diff two XML documents
  • XMLDiff\Memory::merge — Produce merged XML document

User Contributed Notes

There are no user contributed notes for this page.


Diff two XML documents

  • « XMLDiff\Memory
  • XMLDiff\Memory::merge »
  • PHP Manual
  • XMLDiff\Memory
  • Diff two XML documents

XMLDiff\Memory::diff

(PECL xmldiff >= 0.8.0)

XMLDiff\Memory::diff — Diff two XML documents

Açıklama

public XMLDiff\Memory::diff(string $from, string $to): string

Diff two strings containing XML documents and produce the diff information.

Bağımsız Değişkenler

from

Source XML document.

to

Target XML document.

Dönen Değerler

String with the XML document containing the diff information or NULL.

User Contributed Notes

There are no user contributed notes for this page.


Produce merged XML document

  • « XMLDiff\Memory::diff
  • XMLDiff\File »
  • PHP Manual
  • XMLDiff\Memory
  • Produce merged XML document

XMLDiff\Memory::merge

(PECL xmldiff >= 0.8.0)

XMLDiff\Memory::merge — Produce merged XML document

Açıklama

public XMLDiff\Memory::merge(string $src, string $diff): string

Create new XML document based on diffs and source document.

Bağımsız Değişkenler

src

Source XML document.

diff

XML document containing diff information.

Dönen Değerler

String with the new XML document or NULL.

User Contributed Notes

There are no user contributed notes for this page.


The XMLDiff\File class

(PECL xmldiff >= 0.8.0)

Giriş

Sınıf Sözdizimi

class XMLDiff\File extends XMLDiff\Base {
/* Yöntemler */
public diff(string $from, string $to): string
public merge(string $src, string $diff): string
/* Miras alınan yöntemler */
abstract public XMLDiff\Base::diff(mixed $from, mixed $to): mixed
abstract public XMLDiff\Base::merge(mixed $src, mixed $diff): mixed
}

İçindekiler

  • XMLDiff\File::diff — Diff two XML files
  • XMLDiff\File::merge — Produce merged XML document

User Contributed Notes

ngbabu at gmail dot com 21-Nov-2015 08:45
The following snippet will show the use case of XMLDiff\File.

<?php
$dxml=new XMLDiff\File;
$diff = $dxml->diff("file1.xml", "file2.xml");
$difffile = 'difference.xml';
file_put_contents($difffile, $diff);
?>


Diff two XML files

  • « XMLDiff\File
  • XMLDiff\File::merge »
  • PHP Manual
  • XMLDiff\File
  • Diff two XML files

XMLDiff\File::diff

(PECL xmldiff >= 0.8.0)

XMLDiff\File::diff — Diff two XML files

Açıklama

public XMLDiff\File::diff(string $from, string $to): string

Diff two local XML files and produce string with the diff information.

Bağımsız Değişkenler

from

Path to the source document.

to

Path to the target document.

Dönen Değerler

String with the XML document containing the diff information or NULL.

User Contributed Notes

There are no user contributed notes for this page.


Produce merged XML document

  • « XMLDiff\File::diff
  • XML Çözümleyici »
  • PHP Manual
  • XMLDiff\File
  • Produce merged XML document

XMLDiff\File::merge

(PECL xmldiff >= 0.8.0)

XMLDiff\File::merge — Produce merged XML document

Açıklama

public XMLDiff\File::merge(string $src, string $diff): string

Create new XML document based on diffs and source document.

Bağımsız Değişkenler

src

Path to the source XML document.

diff

Path to the XML document with the diff information.

Dönen Değerler

String with the new XML document or NULL.

User Contributed Notes

There are no user contributed notes for this page.


XML Çözümleyici

  • Giriş
  • Yapılandırma/Kurulum
    • Gereksinimler
    • Kurulum
    • Çalışma Anı Yapılandırması
    • Özkaynak Türleri
  • Öntanımlı Sabitler
  • Geriçağırım İşlevleri
  • Büyük Harfe Dönüşüm
  • Hata Kodları
  • Karakter Kodlaması
  • Örnekler
    • XML Eleman Yapısı Örneği
    • XML Etiket Eşleme Örneği
    • XML Harici Öğe Örneği
  • XML Çözümleyici İşlevleri
    • xml_error_string — XML çözümleyici hata iletisini döndürür
    • xml_get_current_byte_index — XML çözümleyicinin geçerli bayt indisini döndürür
    • xml_get_current_column_number — XML çözümleyicide hatanın oluştuğu satırdaki sütun numarasını döndürür
    • xml_get_current_line_number — XML çözümleyicide hatanın oluştuğu satırı döndürür
    • xml_get_error_code — XML çözümleyici hata kodunu döndürür
    • xml_parse — Bir XML belgeyi çözümler
    • xml_parse_into_struct — XML veriyi çözümleyip sonucu bir dizi içinde döndürür
    • xml_parser_create — Bir XML çözümleyici oluşturur
    • xml_parser_create_ns — İsim alanı destekli bir XML çözümleyici oluşturur
    • xml_parser_free — XML çözümleyiciyi serbest bırakır
    • xml_parser_get_option — XML ayrıştırıcı seçeneklerini döndürür
    • xml_parser_set_option — XML ayrıştırıcı seçeneklerini belirler
    • xml_set_character_data_handler — Karakter verisi işleyiciyi belirler
    • xml_set_default_handler — Öntanımlı işleyiciyi belirler
    • xml_set_element_handler — Açılış ve kapanış etiketi işleyicileri belirler
    • xml_set_end_namespace_decl_handler — İsim alanı bildirimi sonlandırma işleyiciyi belirler
    • xml_set_external_entity_ref_handler — Harici öğe gönderimi işleyiciyi belirler
    • xml_set_notation_decl_handler — Gösterim bildirimi işleyiciyi belirler
    • xml_set_object — XML ayrıştırıcı, nesne içinde kullanılır
    • xml_set_processing_instruction_handler — İşlem komutu (PI) işleyicisini belirler
    • xml_set_start_namespace_decl_handler — İsim alanı bildirimi başlatma işleyicisini belirler
    • xml_set_unparsed_entity_decl_handler — Ayrıştırılmayan öğe bildirimi işleyicisini belirler
  • XMLParser — XMLParser sınıfı

User Contributed Notes

There are no user contributed notes for this page.


Giriş

XML, Genişletilebilir İmlenim Dili, XML belgeleri denen veri nesneleri sınıfını ve kısmen de bunlar üzerinde işlem yapacak bilgisayar programlarının davranışını açıklar. W3C tarafından bir standart olarak yayınlanmıştır. » http://www.w3.org/XML/ adresinde XML ve ilgili teknolojiler hakkında bilgi edinebilirsiniz. Standardın » Türkçe çevirisi mevcuttur.

Bu eklenti James Clark'ın expat kütüphanesini gerektirir. Bu işlevlerle bir XML belgeyi çözümleyebilirsiniz ancak belgenin geçerliliğini doğrulatamazsınız. Eklenti, üç karakter kodlamasını destekler: US-ASCII, ISO-8859-1 ve UTF-8. UTF-16 desteklenmemektedir.

Bu eklentiyle XML çözümleyiciler oluşturabilir ve farklı XML olayları için eylemciler tanımlayabilirsiniz. Ayrıca, her XML çözümleyicinin ayarlanabilen bir kaç bağımsız değişkeni de vardır.

User Contributed Notes

There are no user contributed notes for this page.


Gereksinimler

Bu eklenti PHP'nin libxml eklentsini gerektirir. Libxml öntanımlı olarak etkin olduğundan bu örtük olarak sağlansa da derleme sırasında ayrıca bir --with-libxml veya PHP 7.4 öncesinde --enable-libxml gerekir.

Bu eklenti öntanımlı olarak expat uyumlu bir katman kullanır. Ayrıca, » https://libexpat.github.io/ adresinde bulunan expat da kullanılabilir. expat ile gelen Makefile, öntanımlı olarak kütüphaneyi derlemez. Kütüphanenin derlenmesi için Makefile dosyanızda şu kuralı kullanın:

libexpat.a: $(OBJS)
    ar -rc $@ $(OBJS)
    ranlib $@
expat kaynak RPM paketi » https://sourceforge.net/projects/expat/ adresinden edinilebilir.

User Contributed Notes

There are no user contributed notes for this page.


Kurulum

Bu eklenti öntanımlı olarak etkindir. Derleme sırasında bu seçenekle iptal edilebilir: --disable-xml

Kaynak paketiyle birlikte gelen expat kütüphanesi kullanılarak bu eklenti öntanımlı olarak etkin kılınmıştır. XML desteğini PHP'yi derlerken --disable-xml seçeneğini kullanarak iptal edebilirsiniz. PHP'yi Apache 1.3.9 ve sonrası için bir modül olarak derliyorsanız, PHP öntanımlı olarak Apache'nin kullandığı expat kütüphanesini kullanır. PHP ile gelen kütüphaneyi kullanmak istemiyorsanız bunu derleme sırasında --with-expat-dir=DiZiN seçeneğiyle belirtebilirsiniz. Burada DiZiN expat kütüphanesinin kurulu olduğu temel dizindir.

PHP'nin Windows sürümünde bu eklenti yerleşik olarak gelmektedir. Bu işlevleri Windows'ta kullanmak için herhangi bir eklenti kurulmasına gerek yoktur.

User Contributed Notes

There are no user contributed notes for this page.


Özkaynak Türleri

PHP 8.0.0 öncesinde xml_parser_create() ve xml_parser_create_ns() işlevleri tarafından döndürülen xml özkaynağı, bu eklentinin işlevleri tarafından bir XML çözümleyici nesnesinin tanıtıcısı olarak kullanılırdı.

User Contributed Notes

There are no user contributed notes for this page.


Öntanımlı Sabitler

Buradaki sabitler bu eklenti için tanımlanmış olup, sadece eklentinin PHP içinde derlenmiş olması veya çalışma anında dinamik olarak yüklenmesi halinde kullanılabilir.

XML_ERROR_NONE (int)
XML_ERROR_NO_MEMORY (int)
XML_ERROR_SYNTAX (int)
XML_ERROR_NO_ELEMENTS (int)
XML_ERROR_INVALID_TOKEN (int)
XML_ERROR_UNCLOSED_TOKEN (int)
XML_ERROR_PARTIAL_CHAR (int)
XML_ERROR_TAG_MISMATCH (int)
XML_ERROR_DUPLICATE_ATTRIBUTE (int)
XML_ERROR_JUNK_AFTER_DOC_ELEMENT (int)
XML_ERROR_PARAM_ENTITY_REF (int)
XML_ERROR_UNDEFINED_ENTITY (int)
XML_ERROR_RECURSIVE_ENTITY_REF (int)
XML_ERROR_ASYNC_ENTITY (int)
XML_ERROR_BAD_CHAR_REF (int)
XML_ERROR_BINARY_ENTITY_REF (int)
XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF (int)
XML_ERROR_MISPLACED_XML_PI (int)
XML_ERROR_UNKNOWN_ENCODING (int)
XML_ERROR_INCORRECT_ENCODING (int)
XML_ERROR_UNCLOSED_CDATA_SECTION (int)
XML_ERROR_EXTERNAL_ENTITY_HANDLING (int)
XML_OPTION_CASE_FOLDING (int)
XML_OPTION_TARGET_ENCODING (int)
XML_OPTION_SKIP_TAGSTART (int)
XML_OPTION_SKIP_WHITE (int)
XML_SAX_IMPL (string)
Yöntemin SAX gerçeklenimi. libxml veya expat olabilir.

User Contributed Notes

There are no user contributed notes for this page.


Geriçağırım İşlevleri

XML geriçağırım işlevlerinin tanımlayan işlevler:

Desteklenen XML eylemcileri
Eylemciyi belirleyen PHP işlevi | Olay açıklaması
xml_set_element_handler() | XML çözümleyicinin her başlangıç veya bitiş etiketine rastlayışında oluşan eleman olayları. Başlangıç ve bitiş etiketlerinin eylemcileri ayrı ayrıdır.
xml_set_character_data_handler() | Kabaca, etiketler arasındaki boşluklar dahil, XML belgelerin imlenim dışında kalan tüm içeriği karakter verisini oluşturur. XML çözümleyicinin boşluk eklemeye ve kaldırmaya karar veremeyeceğine dikkat ediniz. Boşlukların önem derecelerine karar vermek uygulamaya (yani, size) bırakılmıştır.
xml_set_processing_instruction_handler() | PHP ile yazılım geliştirenlerin işlem komutları (PI - processing instruction) hakkında bilgi sahibi oldukları varsayılır. <?php ?> bir işlem komutu olup php dizgesine PI hedefi adı verilir. "XML" ile başlayan PI hedefleri hariç, tüm PI hedefleri uygulamaya özgü ele alınır.
xml_set_default_handler() | Diğer eylemciler tarafından ele alınmayan herşey öntanımlı eylemci tarafından ele alınır. XML ve belge türü bildirimleri gibi şeyleri öntanımlı eylemcilere bırakabilirsiniz.
xml_set_unparsed_entity_decl_handler() | Çözümlenmeyen öğe bildirimleri (NDATA) için bu eylemci çağrılır.
xml_set_notation_decl_handler() | Gösterim bildirimleri için bu eylemci çağrılır.
xml_set_external_entity_ref_handler() | XML çözümleyici, harici olarak çözümlenecek bir genel öğeye bir gönderim bulduğunda bu eylemci çağrılır. Bu örneğin, bir dosyaya veya bir URL'ye bir atıf olabilir. Gerçekleme örneği olarak harici öğe örneğine bakınız.
xml_set_start_namespace_decl_handler() | Bu işleyici, bir isimalanı bildiriminin başlangıcı için çağrılır.
xml_set_end_namespace_decl_handler() | Bu işleyici, bir isimalanı bildiriminin sonu için çağrılır. Bu olay libXML tarafından tetiklenmez.

User Contributed Notes

There are no user contributed notes for this page.


Büyük Harfe Dönüşüm

Elemanları işlemekte kullanılan işlevler eleman isimlerini büyük harfe dönüştürerek ele alabilir. Büyük harfe dönüştürme işlemi eleman isminde bulunan küçük harflerin yerine büyük harfli eşdeğerlerini koymaktan ibarettir. Ancak, XML dilinin harf büyüklüğüne duyarlı bir dil olduğunu unutmayın.

Öntanımlı olarak, bu işlevlere aktarılan eleman isimleri tamamen büyük harfe dönüşürülür. Bu davranış xml_parser_get_option() işleviyle sorgulanıp xml_parser_set_option() işleviyle değiştirilebilir. (Ç.N.: Türkçe yerelinde i ve ı harfleriyle ilgili dönüşümlerde dikkatli olun. Bu dönüşümün yapılmasına izin vermemek daha iyi olabilir.)

User Contributed Notes

There are no user contributed notes for this page.


Hata Kodları

Aşağıdaki sabitler XML hata kodları olarak tanımlanmıştır. (xml_parse() tarafından döndürülürler):

  • 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

User Contributed Notes

There are no user contributed notes for this page.


Karakter Kodlaması

PHP'nin XML eklentisi karakter kodlamaları arasında dönüşüm için » Evrenkod karakterlerini kullanır. İki tür karakter kodlaması vardır: kaynak kodlaması ve hedef kodlaması. PHP'nin dahili belge gösterimi daima UTF-8 ile kodlanır.

Kaynak kodlaması XML belge çözümlenirken yapılır. Kaynak kodlaması XML çözümleyici oluşturulurken belirtilebilir (bu kodlama XML çözümleyici işleme başladıktan sonra bir daha değiştirilemez). Desteklenen kaynak kodlamaları ISO-8859-1, US-ASCII ve UTF-8'dir. İlk ikisinde karakterler tek baytlıktır. UTF-8 karakterleri bir bayttan dört bayta kadar farklı sayıda bayttan oluşabilir. PHP'de kullanılan öntanımlı kaynak karakter kodlaması ISO-8859-1'dir.

Kaynak kodlaması, PHP veriyi XML eylemci işlevlerine aktarırken kullanılır. Bir XML çözümleyici oluşturulduğunda hedef kodlaması kaynak kodlaması ile aynı yapılır, fakat istenirse her an değiştirilebilir. Hedef kodlaması karakter verisinin yanında etiket isimleri ile işlem komutlarının hedeflerini de etkiler.

Eğer XML çözümleyici, kaynak karakter kodlamasında gösterimi mümkün olmayan karakterlere rastlarsa hata verir.

Eğer PHP, çözümlenen XML belgede seçilen hedef kodlamasıyla gösterilemeyen karakterler bulunduğunu saptarsa sorunlu karakterler "indirgenir". Şimdilik bunu gerçeklemek için bu karaterlerin yerine soru imleri konmaktadır.

User Contributed Notes

There are no user contributed notes for this page.


Örnekler

İçindekiler

  • XML Eleman Yapısı Örneği
  • XML Etiket Eşleme Örneği
  • XML Harici Öğe Örneği

User Contributed Notes

There are no user contributed notes for this page.


XML Eleman Yapısı Örneği

İlk örnekte, bir belgedeki girintili başlangıç elemanlarının yapısı gösterilmiştir.

Örnek 1 - XML Eleman yapısının gösterimi

<?php
$file = "data.xml";
$depth = 0;

function startElement($parser, $name, $attrs)
{
global $depth;

for ($i = 0; $i < $depth; $i++) {
echo " ";
}
echo "$name\n";
$depth++;
}

function endElement($parser, $name)
{
global $depth;
$depth--;
}

$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
if (!($fp = fopen($file, "r"))) {
die("XML belge açılamadı");
}

while ($data = fread($fp, 4096)) {
if (!xml_parse($xml_parser, $data, feof($fp))) {
die(sprintf("XML hatası: %d. satırda %s",
xml_get_current_line_number($xml_parser)),
xml_error_string(xml_get_error_code($xml_parser)));
}
}
xml_parser_free($xml_parser);
?>

User Contributed Notes

There are no user contributed notes for this page.


XML Etiket Eşleme Örneği

Örnek 1 - XML etiketlerini HTML etiketlerine eşleme

Bu örnekte bir XML belgedeki etiketler doğrudan HTML etiketlerine eşlenmektedir. $map_array içinde bulunmayan etiketler yok sayılmaktadır. Elbette, bu örnek belli bir XML belgeye özgüdür.

<?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();
// Etiketin $map_array içinde bulunduğundan emin olmak için
// büyük harfe dönüşüm uyguluyoruz
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("XML belge açılamadı");
}

while ($data = fread($fp, 4096)) {
if (!xml_parse($xml_parser, $data, feof($fp))) {
die(sprintf("XML hatası: %d. satırda %s",
xml_get_current_line_number($xml_parser)),
xml_error_string(xml_get_error_code($xml_parser)));
}
}
xml_parser_free($xml_parser);
?>

User Contributed Notes

There are no user contributed notes for this page.


XML Harici Öğe Örneği

Bu örnekte XML kodu renklendirilmektedir. Bir harici öğe gönderimi eylemcisinin diğer belgeleri içermek ve çözümlemek amacıyla nasıl kullanıldığı gösterilmiştir. Bunun yanında, PI hedeflerinin ve bunları içeren kodun nasıl ele alınacağı da gösterilmiştir.

Bu örnek için kullanılan XML belgeler:

Örnek 1 - Harici Öğe Örneği

<?php
$file = "xmltest.xml";

function trustedFile($file)
{
// sadece sahibi olduğumuz yerel dosyalara güveniyoruz
if (!preg_match("@^([a-z][a-z0-9+.-]*)\:\/\/@i", $file)
&& fileowner($file) == getmyuid()) {
return true;
}
return false;
}

function startElement($parser, $name, $attribs)
{
echo "&lt;<font color=\"#0000cc\">$name</font>";
if (count($attribs)) {
foreach ($attribs as $k => $v) {
echo " <font color=\"#009900\">$k</font>=\"<font
color=\"#990000\">$v</font>\"";
}
}
echo "&gt;";
}

function endElement($parser, $name)
{
echo "&lt;/<font color=\"#0000cc\">$name</font>&gt;";
}

function characterData($parser, $data)
{
echo "<b>$data</b>";
}

function PIHandler($parser, $target, $data)
{
switch (strtolower($target)) {
case "php":
global $parser_file;
// Çözümlenen belge "güvenilir" ise içerdiği PHP kodu da
// güvenilirdir diyebiliriz. Değilse, kodu göstermekle
// yetineceğiz.
if (trustedFile($parser_file[$parser])) {
eval($data);
} else {
printf("Güvenilmez PHP kodu: <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("%s dosyasındaki %s öğesi açılamadı\n", $systemId,
$openEntityNames);
return false;
}
while ($data = fread($fp, 4096)) {
if (!xml_parse($parser, $data, feof($fp))) {
printf("XML hatası: %s öğesi çözümlenirken %d. satırda %s\n",
$openEntityNames,
xml_get_current_line_number($parser),
xml_error_string(xml_get_error_code($parser));
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("XML girdi açılamadı");
}

echo "<pre>";
while ($data = fread($fp, 4096)) {
if (!xml_parse($xml_parser, $data, feof($fp))) {
die(sprintf("XML hatası: %d. satırda %s",
xml_get_current_line_number($xml_parser)),
xml_error_string(xml_get_error_code($xml_parser)));
}
}
echo "</pre>";
echo "Çözümleme bitti\n";
xml_parser_free($xml_parser);

?>

Örnek 2 xmltest.xml

<?xml version='1.0'?>
<!DOCTYPE chapter SYSTEM "/sadece/bir/test.dtd" [
<!ENTITY plainEntity "DNM öğesi">
<!ENTITY systemEntity SYSTEM "xmltest2.xml">
]>
<chapter>
 <TITLE>&plainEntity; başlığı</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>Belge hakkında/title>
  <para>
   <!-- Bu bir açıklama -->
   <?php echo 'Merhaba!  PHP sürümü: ' . phpversion(); ?>
  </para>
 </section>
</chapter>

xmltest.xml dosyasında içerilen dosya:

Örnek 3 xmltest2.xml

<?xml version="1.0"?>
<!DOCTYPE foo [
<!ENTITY testEnt "deneme öğesi">
]>
<foo>
   <element attrib="value"/>
   &testEnt;
   <?php echo "Burada çalıştırılacak bir PHP kodu var."; ?>
</foo>

User Contributed Notes

There are no user contributed notes for this page.


XML Çözümleyici İşlevleri

İçindekiler

  • xml_error_string — XML çözümleyici hata iletisini döndürür
  • xml_get_current_byte_index — XML çözümleyicinin geçerli bayt indisini döndürür
  • xml_get_current_column_number — XML çözümleyicide hatanın oluştuğu satırdaki sütun numarasını döndürür
  • xml_get_current_line_number — XML çözümleyicide hatanın oluştuğu satırı döndürür
  • xml_get_error_code — XML çözümleyici hata kodunu döndürür
  • xml_parse — Bir XML belgeyi çözümler
  • xml_parse_into_struct — XML veriyi çözümleyip sonucu bir dizi içinde döndürür
  • xml_parser_create — Bir XML çözümleyici oluşturur
  • xml_parser_create_ns — İsim alanı destekli bir XML çözümleyici oluşturur
  • xml_parser_free — XML çözümleyiciyi serbest bırakır
  • xml_parser_get_option — XML ayrıştırıcı seçeneklerini döndürür
  • xml_parser_set_option — XML ayrıştırıcı seçeneklerini belirler
  • xml_set_character_data_handler — Karakter verisi işleyiciyi belirler
  • xml_set_default_handler — Öntanımlı işleyiciyi belirler
  • xml_set_element_handler — Açılış ve kapanış etiketi işleyicileri belirler
  • xml_set_end_namespace_decl_handler — İsim alanı bildirimi sonlandırma işleyiciyi belirler
  • xml_set_external_entity_ref_handler — Harici öğe gönderimi işleyiciyi belirler
  • xml_set_notation_decl_handler — Gösterim bildirimi işleyiciyi belirler
  • xml_set_object — XML ayrıştırıcı, nesne içinde kullanılır
  • xml_set_processing_instruction_handler — İşlem komutu (PI) işleyicisini belirler
  • xml_set_start_namespace_decl_handler — İsim alanı bildirimi başlatma işleyicisini belirler
  • xml_set_unparsed_entity_decl_handler — Ayrıştırılmayan öğe bildirimi işleyicisini belirler

User Contributed Notes

There are no user contributed notes for this page.


XML çözümleyici hata iletisini döndürür

  • « XML Çözümleyici İşlevleri
  • xml_get_current_byte_index »
  • PHP Manual
  • XML Çözümleyici İşlevleri
  • XML çözümleyici hata iletisini döndürür

xml_error_string

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_error_string — XML çözümleyici hata iletisini döndürür

Açıklama

xml_error_string(int $hata_kodu): ?string

Belirtilen hata_kodu ile ilgili hatanın açıklamasını döndürür.

Bağımsız Değişkenler

hata_kodu

xml_get_error_code() işlevinden dönen hata kodu.

Dönen Değerler

Belirtilen hata_kodu ile ilgili bir açıklama yoksa null, aksi takdirde açıklama dizgesini döndürür.

Ayrıca Bakınız

  • xml_get_error_code() - XML çözümleyici hata kodunu döndürür

User Contributed Notes

There are no user contributed notes for this page.


XML çözümleyicinin geçerli bayt indisini döndürür

  • « xml_error_string
  • xml_get_current_column_number »
  • PHP Manual
  • XML Çözümleyici İşlevleri
  • XML çözümleyicinin geçerli bayt indisini döndürür

xml_get_current_byte_index

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_get_current_byte_index — XML çözümleyicinin geçerli bayt indisini döndürür

Açıklama

xml_get_current_byte_index(XMLParser $çözümleyici): int

Belirtilen XML çözümleyicinin geçerli bayt indisini döndürür.

Bağımsız Değişkenler

çözümleyici

xml_parser_create() ve xml_parser_create_ns() işlevleri tarafından döndürülen bir XML özkaynağı.

Dönen Değerler

çözümleyici veri tamponundaki geçerli baytın indisini döndürür (ilk baytın indisi 0'dır).

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | ayrıştırıcı artık bir XMLParser örneği olabiliyor; evvelce resource türünde geçerli bir xml değeri kabul ederdi.

Notlar

Uyarı

İşlev, karakter kodlamasından bağımsız olarak metnin UTF-8 kodlamasına göre bayt indisini döndürür.

Ayrıca Bakınız

  • xml_get_current_column_number() - XML çözümleyicide hatanın oluştuğu satırdaki sütun numarasını döndürür
  • xml_get_current_line_number() - XML çözümleyicide hatanın oluştuğu satırı döndürür

User Contributed Notes

turan dot yuksel at tcmb dot gov dot tr 20-Sep-2005 03:38
The outcome of this function is heavily dependent on the parser implementation used. For example, at the point where the start_element_ callback is called, libxml2 parser consumes the entire element name and attributes, however expat does not.


XML çözümleyicide hatanın oluştuğu satırdaki sütun numarasını döndürür

  • « xml_get_current_byte_index
  • xml_get_current_line_number »
  • PHP Manual
  • XML Çözümleyici İşlevleri
  • XML çözümleyicide hatanın oluştuğu satırdaki sütun numarasını döndürür

xml_get_current_column_number

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_get_current_column_number — XML çözümleyicide hatanın oluştuğu satırdaki sütun numarasını döndürür

Açıklama

xml_get_current_column_number(XMLParser $parser): int

Belirtilen XML çözümleyicinin veri tamponunda hatanın oluştuğu satırdaki sütun numarasını döndürür.

Bağımsız Değişkenler

çözümleyici

xml_parser_create() ve xml_parser_create_ns() işlevleri tarafından döndürülen bir XML özkaynağı.

Dönen Değerler

çözümleyici veri tamponunda hatanın oluştuğu (xml_get_current_line_number() ile döndürülen) satırdaki hatalı yerin sütun numarasını döndürür.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | ayrıştırıcı artık bir XMLParser örneği olabiliyor; evvelce resource türünde geçerli bir xml değeri kabul ederdi.

Ayrıca Bakınız

  • xml_get_current_byte_index() - XML çözümleyicinin geçerli bayt indisini döndürür
  • xml_get_current_line_number() - XML çözümleyicide hatanın oluştuğu satırı döndürür

User Contributed Notes

There are no user contributed notes for this page.


XML çözümleyicide hatanın oluştuğu satırı döndürür

  • « xml_get_current_column_number
  • xml_get_error_code »
  • PHP Manual
  • XML Çözümleyici İşlevleri
  • XML çözümleyicide hatanın oluştuğu satırı döndürür

xml_get_current_line_number

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_get_current_line_number — XML çözümleyicide hatanın oluştuğu satırı döndürür

Açıklama

xml_get_current_line_number(XMLParser $parser): int

Belirtilen XML çözümleyicinin veri tamponunda hatanın oluştuğu satırın numarasını döndürür.

Bağımsız Değişkenler

çözümleyici

xml_parser_create() ve xml_parser_create_ns() işlevleri tarafından döndürülen bir XML özkaynağı.

Dönen Değerler

çözümleyici veri tamponunda hatanın oluştuğu satırın numarasını döndürür.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | ayrıştırıcı artık bir XMLParser örneği olabiliyor; evvelce resource türünde geçerli bir xml değeri kabul ederdi.

Ayrıca Bakınız

  • xml_get_current_column_number() - XML çözümleyicide hatanın oluştuğu satırdaki sütun numarasını döndürür
  • xml_get_current_byte_index() - XML çözümleyicinin geçerli bayt indisini döndürür

User Contributed Notes

There are no user contributed notes for this page.


XML çözümleyici hata kodunu döndürür

  • « xml_get_current_line_number
  • xml_parse »
  • PHP Manual
  • XML Çözümleyici İşlevleri
  • XML çözümleyici hata kodunu döndürür

xml_get_error_code

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_get_error_code — XML çözümleyici hata kodunu döndürür

Açıklama

xml_get_error_code(XMLParser $çözümleyici): int

XML çözümleyici hata kodunu döndürür.

Bağımsız Değişkenler

çözümleyici

xml_parser_create() ve xml_parser_create_ns() işlevleri tarafından döndürülen bir XML özkaynağı.

Dönen Değerler

Hata Kodları sayfasında listelenen hata kodlarından biri döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | ayrıştırıcı artık bir XMLParser örneği olabiliyor; evvelce resource türünde geçerli bir xml değeri kabul ederdi.

Ayrıca Bakınız

  • xml_error_string() - XML çözümleyici hata iletisini döndürür

User Contributed Notes

There are no user contributed notes for this page.


Bir XML belgeyi çözümler

  • « xml_get_error_code
  • xml_parse_into_struct »
  • PHP Manual
  • XML Çözümleyici İşlevleri
  • Bir XML belgeyi çözümler

xml_parse

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_parse — Bir XML belgeyi çözümler

Açıklama

xml_parse(XMLParser $çözümleyici, string $veri, bool $son = false): int

xml_parse() işlevi bir XML belgeyi çözümler. Yapılandırılmış olaylar için tanımlanmış eylemci işlevler gerektiği yerlerde defalarca çağrılabilir.

Bağımsız Değişkenler

çözümleyici

XMLParser nesnesi.

veri

Çözümlenecek veri parçası. Bir belge, çeşitli parçalara bölünerek bu parçalar xml_parse() işleviyle işlenerek çok sayıda adımda çözümlenebilir. Son parça çözümleneceği zaman son bağımsız değişkenine true atanmalıdır.

son

true belirtilirse, çözümleyiciye aktarılan veri son veri olarak ele alınır.

Dönen Değerler

Başarı durumunda 1, aksi takdirde 0 döndürür.

Başarısız bir çözümlemede hata bilgisi
xml_get_error_code(),
xml_error_string(),
xml_get_current_line_number(),
xml_get_current_column_number() ve
xml_get_current_byte_index() işlevleri ile alınabilir.

Bilginize:

Öğe hataları gibi bazı hatalar sadece son bağımsız değişkenine true atandığı takdirde veri sonunda raporlanır.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | ayrıştırıcı artık bir XMLParser örneği olabiliyor; evvelce resource türünde geçerli bir xml değeri kabul ederdi.

Örnekler

Örnek 1 - Büyük bir XML belgenin bölümlerine çözümlenmesi

Bu örnekte, tüm belgenin bellekte tutulmasına gerek kalmaması için büyük XML belgelerin bölümler halinde nasıl okunabileceği ve çözümlenebileceği gösterilmiştir. Kısa olması için hata işleme atlanmıştır.

<?php
$stream = fopen('large.xml', 'r');
$parser = xml_parser_create();
// işleyici burada
while (($data = fread($stream, 16384))) {
xml_parse($parser, $data); // geçerli bölümü çözümle
}
xml_parse($parser, '', true); // çözümlemeyi bitir
xml_parser_free($parser);
fclose($stream);

User Contributed Notes

lz_speedy at web dot de 30-Dec-2008 10:20
Best seen xml2array function ever
<?php
function xml2array($url, $get_attributes = 1, $priority = 'tag')
{
    $contents = "";
    if (!function_exists('xml_parser_create'))
    {
        return array ();
    }
    $parser = xml_parser_create('');
    if (!($fp = @ fopen($url, 'rb')))
    {
        return array ();
    }
    while (!feof($fp))
    {
        $contents .= fread($fp, 8192);
    }
    fclose($fp);
    xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, "UTF-8");
    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, trim($contents), $xml_values);
    xml_parser_free($parser);
    if (!$xml_values)
        return; //Hmm...
    $xml_array = array ();
    $parents = array ();
    $opened_tags = array ();
    $arr = array ();
    $current = & $xml_array;
    $repeated_tag_index = array ();
    foreach ($xml_values as $data)
    {
        unset ($attributes, $value);
        extract($data);
        $result = array ();
        $attributes_data = array ();
        if (isset ($value))
        {
            if ($priority == 'tag')
                $result = $value;
            else
                $result['value'] = $value;
        }
        if (isset ($attributes) and $get_attributes)
        {
            foreach ($attributes as $attr => $val)
            {
                if ($priority == 'tag')
                    $attributes_data[$attr] = $val;
                else
                    $result['attr'][$attr] = $val; //Set all the attributes in a array called 'attr'
            }
        }
        if ($type == "open")
        {
            $parent[$level -1] = & $current;
            if (!is_array($current) or (!in_array($tag, array_keys($current))))
            {
                $current[$tag] = $result;
                if ($attributes_data)
                    $current[$tag . '_attr'] = $attributes_data;
                $repeated_tag_index[$tag . '_' . $level] = 1;
                $current = & $current[$tag];
            }
            else
            {
                if (isset ($current[$tag][0]))
                {
                    $current[$tag][$repeated_tag_index[$tag . '_' . $level]] = $result;
                    $repeated_tag_index[$tag . '_' . $level]++;
                }
                else
                {
                    $current[$tag] = array (
                        $current[$tag],
                        $result
                    );
                    $repeated_tag_index[$tag . '_' . $level] = 2;
                    if (isset ($current[$tag . '_attr']))
                    {
                        $current[$tag]['0_attr'] = $current[$tag . '_attr'];
                        unset ($current[$tag . '_attr']);
                    }
                }
                $last_item_index = $repeated_tag_index[$tag . '_' . $level] - 1;
                $current = & $current[$tag][$last_item_index];
            }
        }
        elseif ($type == "complete")
        {
            if (!isset ($current[$tag]))
            {
                $current[$tag] = $result;
                $repeated_tag_index[$tag . '_' . $level] = 1;
                if ($priority == 'tag' and $attributes_data)
                    $current[$tag . '_attr'] = $attributes_data;
            }
            else
            {
                if (isset ($current[$tag][0]) and is_array($current[$tag]))
                {
                    $current[$tag][$repeated_tag_index[$tag . '_' . $level]] = $result;
                    if ($priority == 'tag' and $get_attributes and $attributes_data)
                    {
                        $current[$tag][$repeated_tag_index[$tag . '_' . $level] . '_attr'] = $attributes_data;
                    }
                    $repeated_tag_index[$tag . '_' . $level]++;
                }
                else
                {
                    $current[$tag] = array (
                        $current[$tag],
                        $result
                    );
                    $repeated_tag_index[$tag . '_' . $level] = 1;
                    if ($priority == 'tag' and $get_attributes)
                    {
                        if (isset ($current[$tag . '_attr']))
                        {
                            $current[$tag]['0_attr'] = $current[$tag . '_attr'];
                            unset ($current[$tag . '_attr']);
                        }
                        if ($attributes_data)
                        {
                            $current[$tag][$repeated_tag_index[$tag . '_' . $level] . '_attr'] = $attributes_data;
                        }
                    }
                    $repeated_tag_index[$tag . '_' . $level]++; //0 and 1 index is already taken
                }
            }
        }
        elseif ($type == 'close')
        {
            $current = & $parent[$level -1];
        }
    }
    return ($xml_array);
}
?>

Returns a well formed array like the structure of the xml-document

<root>
 <child1>
  <child1child1/>
 </child1>
</root>

create an array like
array[root][child1][child1child1]

lg
neoyahuu at yahoo dot com 12-Dec-2007 08:18
Instead of passing a URL, we can pass the XML content to this class (either you
 want to use CURL, Socks or fopen to retrieve it first) and instead of using
 array, I'm using separator '|' to identify which data to get (in order to make
 it short to retrieve a complex XML data). Here is my class with built-in fopen
 which you can pass URL or you can pass the content instead :

p/s : thanks to this great help page.

<?php

class xx_xml {

    // XML parser variables
    var $parser;
    var $name;
    var $attr;
    var $data  = array();
    var $stack = array();
    var $keys;
    var $path;

    // either you pass url atau contents.
    // Use 'url' or 'contents' for the parameter
    var $type;

    // function with the default parameter value
    function xx_xml($url='http://www.example.com', $type='url') {
        $this->type = $type;
        $this->url  = $url;
        $this->parse();
    }

    // parse XML data
    function parse()
    {
        $data = '';
        $this->parser = xml_parser_create();
        xml_set_object($this->parser, $this);
        xml_set_element_handler($this->parser, 'startXML', 'endXML');
        xml_set_character_data_handler($this->parser, 'charXML');

        xml_parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, false);

        if ($this->type == 'url') {
            // if use type = 'url' now we open the XML with fopen

            if (!($fp = @fopen($this->url, 'rb'))) {
                $this->error("Cannot open {$this->url}");
            }

            while (($data = fread($fp, 8192))) {
                if (!xml_parse($this->parser, $data, feof($fp))) {
                    $this->error(sprintf('XML error at line %d column %d',
                    xml_get_current_line_number($this->parser),
                    xml_get_current_column_number($this->parser)));
                }
            }
        } else if ($this->type == 'contents') {
            // Now we can pass the contents, maybe if you want
            // to use CURL, SOCK or other method.
            $lines = explode("\n",$this->url);
            foreach ($lines as $val) {
                if (trim($val) == '')
                    continue;
                $data = $val . "\n";
                if (!xml_parse($this->parser, $data)) {
                    $this->error(sprintf('XML error at line %d column %d',
                    xml_get_current_line_number($this->parser),
                    xml_get_current_column_number($this->parser)));
                }
            }
        }
    }

    function startXML($parser, $name, $attr)    {
        $this->stack[$name] = array();
        $keys = '';
        $total = count($this->stack)-1;
        $i=0;
        foreach ($this->stack as $key => $val)    {
            if (count($this->stack) > 1) {
                if ($total == $i)
                    $keys .= $key;
                else
                    $keys .= $key . '|'; // The saparator
            }
            else
                $keys .= $key;
            $i++;
        }
        if (array_key_exists($keys, $this->data))    {
            $this->data[$keys][] = $attr;
        }    else
            $this->data[$keys] = $attr;
        $this->keys = $keys;
    }

    function endXML($parser, $name)    {
        end($this->stack);
        if (key($this->stack) == $name)
            array_pop($this->stack);
    }

    function charXML($parser, $data)    {
        if (trim($data) != '')
            $this->data[$this->keys]['data'][] = trim(str_replace("\n", '', $data));
    }

    function error($msg)    {
        echo "<div align=\"center\">
            <font color=\"red\"><b>Error: $msg</b></font>
            </div>";
        exit();
    }
}

?>

And example of retrieving XML data:
p/s: example use to retrieve weather

<?php
include_once "xx_xml.class.php";

// Im using simple curl (the original is in class) to get the contents

$pageurl = "http://xml.weather.yahoo.com/forecastrss?p=MYXX0008&u=c";
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_URL, $pageurl );
$thecontents = curl_exec ( $ch );
curl_close($ch);

// We want to pass only a ready XML content instead of URL
// But if you want to use URL , skip the curl functions above and use this
// $xx4 = new xx_xml("url here",'url');

$xx4 = new xx_xml($thecontents,'contents');
// As you can see, we use saparator '|' instead of long array
$Code = $xx4->data ['rss|channel|item|yweather:condition']['code'] ;
$Celcius = $xx4->data ['rss|channel|item|yweather:condition']['temp'] ;
$Text = $xx4->data ['rss|channel|item|yweather:condition']['text'] ;
$Cityname = $xx4->data ['rss|channel|yweather:location']['city'] ;

?>

Hope this helps.


XML veriyi çözümleyip sonucu bir dizi içinde döndürür

  • « xml_parse
  • xml_parser_create »
  • PHP Manual
  • XML Çözümleyici İşlevleri
  • XML veriyi çözümleyip sonucu bir dizi içinde döndürür

xml_parse_into_struct

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_parse_into_struct — XML veriyi çözümleyip sonucu bir dizi içinde döndürür

Açıklama

xml_parse_into_struct(
XMLParser $çözümleyici,
string $veri,
array &$değerler,
array &$indis = null
): int

Bu işlev bir XML belgeyi iki diziye çözümler. indis dizisi, değerler dizisindeki değerlerin konumlarına birer gösterici içerir. Bu dizilerin işleve gönderimli aktarılmaları gerekir.

Bağımsız Değişkenler

çözümleyici

XMLParser nesnesi.

veri

XML veriyi içeren dizi.

değerler

XML verinin değerlerini içeren dizi.

indis

$değerler içindeki uygun değerlerin konumlarına göstericiler içeren bir dizi.

Dönen Değerler

Başarısızlık durumunda 0, başarı durumunda 1 döner. Bu, false ve true olarak ele alınmamalıdır. Dönen değeri === işleci ile karşılaştırın.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | ayrıştırıcı artık bir XMLParser örneği olabiliyor; evvelce resource türünde geçerli bir xml değeri kabul ederdi.

Örnekler

Aşağıdaki örnekte dönen dizilerin iç yapısı gösterilmiştir. Basit olarak, para etiketi içine note etiketini gömüp, bunu çözümledikten sonra üretilen dizileri dökümlüyoruz.

Örnek 1 - xml_parse_into_struct() örneği

<?php
$simple = "<para><note>basit örnek</note></para>";
$p = xml_parser_create();
xml_parse_into_struct($p, $simple, $vals, $index);
xml_parser_free($p);
echo "İndis dizisi\n";
print_r($index);
echo "\nDeğerler dizisi\n";
print_r($vals);
?>

Çıktı şöyle olur:

İndis dizisi
Array
(
    [PARA] => Array
        (
            [0] => 0
            [1] => 2
        )

    [NOTE] => Array
        (
            [0] => 1
        )

)

Değerler dizisi
Array
(
    [0] => Array
        (
            [tag] => PARA
            [type] => open
            [level] => 1
        )

    [1] => Array
        (
            [tag] => NOTE
            [type] => complete
            [level] => 2
            [value] => basit örnek
        )

    [2] => Array
        (
            [tag] => PARA
            [type] => close
            [level] => 1
        )

)

Olaylarla tetiklenen çözümleme (expat kütüphanesine dayalı olarak) XML belgenin karmaşıklığına bağlı olarak karmaşıklaşabilir. Bu işlev DOM tarzı bir nesne üretmez fakat bir ağaç halinde uygun bir yapı üretir. Bu bakımdan, XML belge içindeki veriyi gösteren nesneler kolayca oluşturulabilir. Amino asitlerden oluşan küçük bir veritabanı olarak aşağıdaki XML belgeyi ele alalım:

Örnek 2 - moldb.xml - küçük bir moleküler bilgi veritabanı

<?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>
Bu belgeyi çözümleyip uygun nesneleri üretecek kod:

Örnek 3 - parsemoldb.php - moldb.xml dosyasını bir moleküler nesne dizisine çözümler

<?php

class AminoAcid {
var $name; // amino asidin ismi
var $symbol; // üç harfli simge
var $code; // tek harflik kod
var $type; // hydrophobic, charged veya neutral

function __construct ($aa)
{
foreach ($aa as $k=>$v)
$this->$k = $aa[$k];
}
}

function readDatabase($filename)
{
// amino asit veritabanını okuyalım
$data = file_get_contents($filename);
$parser = xml_parser_create();
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
xml_parse_into_struct($parser, $data, $values, $tags);
xml_parser_free($parser);

// dizileri açalım
foreach ($tags as $key=>$val) {
if ($key == "molecule") {
$molranges = $val;
// Dizi girdilerindeki her devamlı dizi çifti
// bir molekülün alt ve üst aralıklarını tanımlar
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 "** Amino Asit Nesneleri Veritabanı:\n";
print_r($db);

?>
parsemoldb.php betiği çalıştırılınca, $db dizisi Amino asit nesnelerinden oluşturulmuş olur. Betiğin çıktısı şöyle olur:
** Amino Asit Nesneleri Veritabanı:
Array
(
    [0] => aminoacid Object
        (
            [name] => Alanine
            [symbol] => ala
            [code] => A
            [type] => hydrophobic
        )

    [1] => aminoacid Object
        (
            [name] => Lysine
            [symbol] => lys
            [code] => K
            [type] => charged
        )

)

User Contributed Notes

There are no user contributed notes for this page.


Bir XML çözümleyici oluşturur

  • « xml_parse_into_struct
  • xml_parser_create_ns »
  • PHP Manual
  • XML Çözümleyici İşlevleri
  • Bir XML çözümleyici oluşturur

xml_parser_create

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_parser_create — Bir XML çözümleyici oluşturur

Açıklama

xml_parser_create(?string $kodlama = null): XMLParser

xml_parser_create() işlevi, yeni bir XML çözümleyici oluşturup diğer XML işlevleri tarafından kullanılmak üzere bir XMLParser örneği döndürür.

Bağımsız Değişkenler

kodlama

İsteğe bağlı kodlama bağımsız değişkeni ile PHP4'te girdi/çıktı için karakter kodlaması belirtilir. Girdi kodlaması otomatik olarak algılanmakta olduğundan bu bağımsız değişken ile sadece çıktı karakter kodlaması belirtilebilmektedir. Bağımsız değişkene boş bir dizge atanmışsa çözümleyici belgenin ilk 3 veya 4 baytına bakarak kodlamayı belirlemeye çalışır. Öntanımlı çıktı karakter kodlaması UTF-8'dir. Desteklenen karakter kodlamaları: ISO-8859-1, UTF-8 ve US-ASCII.

Dönen Değerler

Yeni bir XMLParser örneği ile döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | Bu işlev artık bir XMLParser örneği döndürüyor; evvelce, resource türünde bir değer dönerdi, başarısızlık durumunda false döner.
8.0.0 | kodlama artık boş olabiliyor.

Ayrıca Bakınız

  • xml_parser_create_ns() - İsim alanı destekli bir XML çözümleyici oluşturur
  • xml_parser_free() - XML çözümleyiciyi serbest bırakır

User Contributed Notes

bishop at php dot net 17-Feb-2019 04:23
Internals has proposed[1] changing this extension from resource-based to object-based. When this change is made, xml_parser_create will return an object, not a resource. Application developers are encouraged to replace any checks for explicit success, like:

<?php
$res = xml_parser_create(/*...*/);
if (! is_resource($res)) {
    // ...
}
?>

With a check for explicit failure:
<?php
$res = xml_parser_create(/*...*/);
if (false === $res) {
    // ...
}

[1]: https://marc.info/?l=php-internals&m=154998365013373&w=2
marek995 at seznam dot cz 24-Sep-2010 11:46
I created a function, which combines xml_paresr_create and all functions around.

<?php
function html_parse($file)
     {
      $array = str_split($file, 1);
      $count = false;
      $text = "";
      $end = false;
      foreach($array as $temp)
       {
        switch($temp)
         {
          case "<":
           between($text);
           $text = "";
           $count = true;
           $end = false;
           break;
          case ">":
           if($end == true) {end_tag($text);}
           else {start_tag($text);}
           $text = "";
           break;
          case "/":
           if($count == true) {$end = true;}
           else {$text = $text . "/";}
           break;
          default:
           $count = false;
           $text = $text . $temp;
         }
       }
     }
?>
The input value is a string.
It calls functions start_tag() , between() and end_tag() just like the original xml parser.

But it has a few differences:
  - It does NOT check the code. Just resends values to that three functions, no matter, if they are right
  - It works with parameters. For example: from tag <sth b="42"> sends sth b="42"
  - It works wit diacritics. The original parser sometimes wrapped the text before the first diacritics appearance.
  - Works with all encoding. If the input is UTF-8, the output will be UTF-8 too
  - It works with strings. Not with file pointers.
  - No "Reserved XML name" error
  - No doctype needed
  - It does not work with commentaries, notes, programming instructions etc. Just the tags

definition of the handling functions is:

<?php
function between($stuff) {}
?>

No other attributes
juanhdv at NOSPAM dot divvol dot org 05-Dec-2007 12:08
In PHP 5, when including in your xml file the definition '<?xml version="1.0" encoding="ISO-8859-1" ?>',   I'd also recommend adding the option below:

xml_parser_set_option($xml_parser,XML_OPTION_TARGET_ENCODING, "ISO-8859-1").

It works fine!

If your enconding is 'UTF-8', just replace 'ISO-8859-1'.
19-Apr-2006 07:42
I'd also recommend adding the option below
xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);
Tobbe 25-May-2005 06:01
The above "XML to array" code does not work properly if you have several tags on the same level and with the same name, example:

<currenterrors>
<error>
<description>This is a real error...</description>
</error>
<error>
<description>This is a second error...</description>
</error>
<error>
<description>Lots of errors today...</description>
</error>
<error>
<description>This is the last error...</description>
</error>
</currenterrors>

It will then only display the first <error>-tag.
In this case you will need to number the tags automatically or maybe have several arrays for each new element.
php at stock-consulting dot com 21-Feb-2005 02:47
Even though I passed "UTF-8" as encoding type PHP (Version 4.3.3) did *not* treat the input file as UTF-8. The input file was missing the BOM header bytes (which may indeed be omitted, according to RFC3629...but things are a bit unclear there. The RFC seems to make mere recommendations concering the BOM header). If you want to sure that PHP treats an UTF-8 encoded file correctly, make sure that it begins with the corresponding 3 byte BOM header (0xEF 0xBB 0xBF)
jcalvert at gmx dot net 03-Apr-2004 10:39
To maintain compatibility between PHP4 and PHP5 you should always pass a string argument to this function. PHP4 autodetects the format of the input if you leave it out whereas PHP5 will assume the format to be ISO-8859-1 (and choke on the byte order marker of UTF-8 files).

Calling the function as <?php $res = xml_parser_create('') ?> will cause both versions of PHP to autodetect the format.


İsim alanı destekli bir XML çözümleyici oluşturur

  • « xml_parser_create
  • xml_parser_free »
  • PHP Manual
  • XML Çözümleyici İşlevleri
  • İsim alanı destekli bir XML çözümleyici oluşturur

xml_parser_create_ns

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

xml_parser_create_ns — İsim alanı destekli bir XML çözümleyici oluşturur

Açıklama

xml_parser_create_ns(?string $kodlama = null, string $ayraç = ":"): XMLParser

xml_parser_create_ns() işlevi, isim alanı destekli yeni bir XML çözümleyici oluşturup diğer XML işlevleri tarafından kullanılmak üzere bir XMLParser örneği döndürür.

Bağımsız Değişkenler

kodlama

Girdi kodlaması otomatik olarak algılanmakta olduğundan bu bağımsız değişken ile sadece çıktı karakter kodlaması belirtilebilmektedir. Öntanımlı karakter kümesi UTF-8'dir. Desteklenen karakter kodlamaları: ISO-8859-1, UTF-8 ve US-ASCII.

ayraç

İsim alanı içeren etiket ve öznitelik isimlerinde isim alanı önekinden sonra kullanılacak ayraç.

Dönen Değerler

Yeni bir XMLParser örneği ile döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | Bu işlev artık bir XMLParser örneği döndürüyor; evvelce, resource türünde bir değer dönerdi, başarısızlık durumunda false döner.
8.0.0 | kodlama artık boş olabiliyor.

Ayrıca Bakınız

  • xml_parser_create() - Bir XML çözümleyici oluşturur
  • xml_parser_free() - XML çözümleyiciyi serbest bırakır

User Contributed Notes

bishop at php dot net 17-Feb-2019 04:24
Internals has proposed[1] changing this extension from resource-based to object-based. When this change is made, xml_parser_create_ns will return an object, not a resource. Application developers are encouraged to replace any checks for explicit success, like:

<?php
$res = xml_parser_create_ns(/*...*/);
if (! is_resource($res)) {
    // ...
}
?>

With a check for explicit failure:
<?php
$res = xml_parser_create_ns(/*...*/);
if (false === $res) {
    // ...
}

[1]: https://marc.info/?l=php-internals&m=154998365013373&w=2
jonnyNO at SPAM dot sanriowasteland dot net 11-Jun-2002 05:49
This is from the Expat Function Reference by Clark Cooper, which is a reference to the C api.

"XML_Parser XML_ParserCreateNS(const XML_Char*encoding, XML_Char sep)
Constructs a new parser that has namespace processing in effect. Namespace expanded element names and attribute names are returned as a concatenation of the namespace URI, sep, and the local part of the name. This means that you should pick a character for sep that can't be part of a legal URI."

(from http://www.xml.com/pub/a/1999/09/expat/reference.html)

So thats what this function is for.  Now you know.


XML çözümleyiciyi serbest bırakır

  • « xml_parser_create_ns
  • xml_parser_get_option »
  • PHP Manual
  • XML Çözümleyici İşlevleri
  • XML çözümleyiciyi serbest bırakır

xml_parser_free

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_parser_free — XML çözümleyiciyi serbest bırakır

Açıklama

xml_parser_free(XMLParser $çözümleyici): bool

Bilginize:

Bu işlevin bir etkisi yoktur. PHP 8.0.0 öncesinde, bu işev özkaynağı kapatmak için kullanılırdı.

Belirtilen XML çözümleyici için ayrılan kaynakları serbest bırakır.

Dikkat

PHP 8.0.0'dan önce, ayrıştırma bittiğinde xml_parser_free() çağrısına ek olarak, çözümleyici kaynağına bir nesneden başvuruluyorsa bellek sızıntılarını önlemek için ayrıştırıcı başvurusunu açıkça kaldırmak gerekiyordu.

Bağımsız Değişkenler

çözümleyici

XMLParser nesnesi.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | ayrıştırıcı artık bir XMLParser örneği olabiliyor; evvelce resource türünde geçerli bir xml değeri kabul ederdi.

User Contributed Notes

There are no user contributed notes for this page.


XML ayrıştırıcı seçeneklerini döndürür

  • « xml_parser_free
  • xml_parser_set_option »
  • PHP Manual
  • XML Çözümleyici İşlevleri
  • XML ayrıştırıcı seçeneklerini döndürür

xml_parser_get_option

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_parser_get_option — XML ayrıştırıcı seçeneklerini döndürür

Açıklama

xml_parser_get_option(XMLParser $ayrıştırıcı, int $seçenek): string|int|bool

Belirtilen XML ayrıştırıcı seçeneğinin değerini döndürür.

Bağımsız Değişkenler

ayrıştırıcı

XMLParser nesnesi.

seçenek
Değeri öğrenilecek seçenek. XML_OPTION_CASE_FOLDING XML_OPTION_SKIP_TAGSTART, XML_OPTION_SKIP_WHITE veya XML_OPTION_TARGET_ENCODING belirtilebilir. Bu seçeneklerin açıklamaları için xml_parser_set_option() işlevine bakınız.

Dönen Değerler

Seçeneğin değeri döner.

Hatalar/İstisnalar

seçenek ile geçersiz bir değer aktarıldığında ValueError istisnası oluşur.

PHP 8.0.0 öncesinde, böyle bir durumda işlev false döndürürken bir E_WARNING üretilirdi.

Sürüm Bilgisi

Sürüm: | Açıklama
8.3.0 | İşlev ikilik seçenekler için artık ikilik sonuç döndürüyor.
8.0.0 | ayrıştırıcı artık bir XMLParser örneği olabiliyor; evvelce resource türünde geçerli bir xml değeri kabul ederdi.
8.0.0 | seçenek ile geçersiz bir değer aktarıldığında artık ValueError istisnası oluşuyor.
7.1.24, 7.2.12, 7.3.0 | seçenek artık XML_OPTION_SKIP_TAGSTART ve XML_OPTION_SKIP_WHITE sabitini de destekliyor.

User Contributed Notes

There are no user contributed notes for this page.


XML ayrıştırıcı seçeneklerini belirler

  • « xml_parser_get_option
  • xml_set_character_data_handler »
  • PHP Manual
  • XML Çözümleyici İşlevleri
  • XML ayrıştırıcı seçeneklerini belirler

xml_parser_set_option

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_parser_set_option — XML ayrıştırıcı seçeneklerini belirler

Açıklama

xml_parser_set_option(XMLParser $ayrıştırıcı, int $seçenek, string|int $değer): bool

XML ayrıştırıcı seçeneklerinden birine değer atar.

Bağımsız Değişkenler

ayrıştırıcı

XMLParser nesnesi.

seçenek

Değer atanacak seçenek.

Kullanılabilecek seçenekler:

XML ayrıştırıcı seçenekleri
Seçenek sabiti | Veri türü | Açıklama
XML_OPTION_CASE_FOLDING | bool | Büyük harfe dönüşüm yapılıp yapılmayacağını belirler. Öntanımlı olarak büyük harfe dönüşüm yapılır.
XML_OPTION_SKIP_TAGSTART | integer | Bir etiket isminin başlangıcından itibaren kaç karakter atlanacağını belirler.
XML_OPTION_SKIP_WHITE | bool | Boşluk karakterlerinden oluşan değerlerin atlanıp atlanmayacağı belirtilir.
XML_OPTION_TARGET_ENCODING | string | XML ayrıştırıcı tarafından kullanılacak hedef kodlamayı belirler. Öntanımlı olarak, xml_parser_create() tarafından kullanılan kaynak kodlamasıyla aynıdır. Desteklenen hedef kodlamalar: ISO-8859-1, US-ASCII ve UTF-8.

değer

Seçeneğin değeri.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Hatalar/İstisnalar

seçenek ile geçersiz bir değer aktarıldığında ValueError istisnası oluşur.

PHP 8.0.0 öncesinde, böyle bir durumda işlev false döndürürken bir E_WARNING üretilirdi.

Sürüm Bilgisi

Sürüm: | Açıklama
8.3.0 | değer bağımsız değişkeni artık ikilik değerleri de kabul ediyor. XML_OPTION_CASE_FOLDING ve XML_OPTION_SKIP_WHITE seçenekleri artık ikil seçeneklerdir.
8.0.0 | ayrıştırıcı artık bir XMLParser örneği olabiliyor; evvelce resource türünde geçerli bir xml değeri kabul ederdi.

User Contributed Notes

www.thomaskoch.it 31-Jul-2008 02:22
The option XML_OPTION_SKIP_WHITE has no effect in my PHP 5.2.6 (with expat-1.95.8-5). To skip cdata composed of white space only, simply check for that at the beginning of your cdata callback function:

<?php
function callback_cdata($parser, $cdata)
{
 if(!trim($cdata))
  return;

 // ... continue processing ...
}
?>
j[no_spam_please] at [thx]jessepearson dot net 08-Mar-2007 08:08
In the function below, you need to update two lines if you don't want php to throw warnings.

change these two:
           $elements[$index]['attributes'] = $tag['attributes'];
           $elements[$index]['content'] = $tag['value'];

to this:
      $elements[$index]['attributes'] = empty($tag['attributes']) ? "" : $tag['attributes'];
      $elements[$index]['content']    = empty($tag['value']) ? "" : $tag['value'];
pupeno at pupeno dot com 16-Nov-2002 01:14
XML is case sensitive, then, from my point of view, disabling case folding doesn't goes against xml 1.0 specifications but the contrary, disabling case folding allow us to distiguish between diferent cases of the same letter ('a' and 'A') which of XML are two diferent things.
From my point of view, disabling case folding is a good practice and I think it should be disabled by default.
More information on:
http://www.isacat.net/2001/xml/case.htm
and
http://www.w3.org/TR/REC-xml
Thank you.


Karakter verisi işleyiciyi belirler

  • « xml_parser_set_option
  • xml_set_default_handler »
  • PHP Manual
  • XML Çözümleyici İşlevleri
  • Karakter verisi işleyiciyi belirler

xml_set_character_data_handler

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_set_character_data_handler — Karakter verisi işleyiciyi belirler

Açıklama

xml_set_character_data_handler(XMLParser $ayrıştırıcı, callable $işleyici): true

ayrıştırıcı ile belirtilen XML ayrıştırıcı için karakter verisi işleyici belirler.

Bağımsız Değişkenler

ayrıştırıcı

XML ayrıştırıcı.

işleyici

null veya boş dizge belirtilirse işleyici bunu varsayılan duruma getirir.

işleyici callable türündeyse, işleyici işlev olarak kullanılır.

işleyici string türündeyse, xml_set_object() ile atanmış bir nesnenin yöntem ismi olabilir.

İsmi işleyici ile belirtilen işlev şuna benzemelidir:

işleyici(XMLParser $ayrıştırıcı, string $veri): void
ayrıştırıcı
İşleyiciyi çağıran XML ayrıştırıcı.
veri
Karakter verisini dizge olarak içerir.

Karakter verisi işleyici, XML belgedeki her metin parçası için ayrı ayrı çağrılır. Her bölümde defalarca çağrılabilir (örneğin, ascii olmayan dizgelerde).

Dönen Değerler

Daima true döndürür.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | ayrıştırıcı artık bir XMLParser örneği olabiliyor; evvelce resource türünde geçerli bir xml değeri kabul ederdi.

User Contributed Notes

jhill at live dot com 28-Aug-2008 07:11
To detect that concatenation of data is taking place, you can keep track of whether the last function call was to the data processing function.
e.g. using $this->inside_data variable below:

<?php
xml_set_element_handler($this->parser, "start_tag", "end_tag");
xml_set_character_data_handler($this->parser, "contents");

protected function contents($parser, $data)
{
    switch ($this->current_tag) {
            case "name":
                if ($this->inside_data)
                    $this->name .= $data; // need to concatenate data
                else
                    $this->name = $data;
                break;
         ...
    }
    $this->inside_data = true;
}

protected function start_tag($parser, $name)
{
    $this->current_tag = $name;
    $this->inside_data = false;
}

protected function end_tag() {
    $this->current_tag = '';
    $this->inside_data = false;
}
?>
unspammable-iain at iaindooley dot com 03-Jan-2006 01:41
re: jason at omegavortex dot com below, another way to deal with whitespace issues is:

        function charData($parser,$data)
        {
            $char_data = trim($data);

            if($char_data)
                $char_data = preg_replace('/  */',' ',$data);

            $this->cdata .= $char_data;
        }

This means that:

    <p>here is my text <a href="something">my text</a>
    and here is some more after some spaces at the
    beginning of the line</p>

comes out properly. You could do further replacements if you want to deal with tabs in your files. i only ever use spaces. if you only use trim() then you would lose the space before the <a> tag above, but trim() is a good way to check for completely empty char data, then just replace more than one space with a single space. this will preserve a single space at the beginning and end of the cdata.
ben at removethis emediastudios dotcom 05-Aug-2005 03:53
I too love the undocumented "splitting" functionality :-p.

Rather than concatinating the data based on whether or not the current tag name has changed from the previous tag name I suggest always concatinating like the following with the $catData variable being unset in the endElement function:

<?php

function endElement ($parser, $data) {
  global $catData;

  // Because we are at an element end we know any splitting is finished
  unset($GLOBALS['catData']);
}

function characterData ($parser, $data) {
  global $catData;

  // Concatinate data in case splitting is taking place
  $catData.=$data;

}

?>

This got me around a problem with data like the following where, because characterData is not called for empty tags, the previous and current tag names were the same even though splitting was not taking place.

<companydept>
<companydeptID></companydeptID>
<companyID>1</companyID>
<companydeptName></companydeptName>
</companydept>
<companydept>
<companydeptID></companydeptID>
<companyID>2</companyID>
<companydeptName></companydeptName>
</companydept>
<companydept>
<companydeptID></companydeptID>
<companyID>3</companyID>
<companydeptName></companydeptName>
</companydept>
yaroukh at email dot cz 25-Apr-2005 08:51
It would be nice if someone could complete documentation of this function. I think that the "splitting" behaviour should (at least) be mentioned within the documentation, if not explained (please!). I'm not quite sure whether the cut comes after each 1024bytes/chars of data.

My experience looks as follows:
[xmlFile]
...
    <label>slo|?ka</label>
    <comment>koment|?&#345; slo?ky</comment>
...
[/xmlFile]
(Places where the character-data got splitted are marked with pipes. Plus there was latin small letter 'r' with caron instead of &#345;.)

Since the splitting is not mentioned in documentation one could assume that it is a bug; especially when you work with UTF-8 and the cuts come right before some special characters.
(Should the concatenating of $cData be considered to be the proper & 'final' way of processing character-data?)

Also I'd suggest to add another line in "Description" when fc has an alternate usage (instead of hiding it within the "Note" :o); in this particular case I'd prefer this:

Description:
bool xml_set_character_data_handler ( resource parser, callback handler )
bool xml_set_character_data_handler ( resource parser, object reference, method name )

... there are dozens of functions ofcourse where documentation works this way (I mean not mentioning the alternate usage in the "Description" part).

Have a nice day
  Yaroukh
flobee 12-Feb-2005 09:53
re. to Philippe Marc , and  karuna_gadde examples

i found out that the xml_set_character_data_handler call back  function can be called more often for the same element in particular the content is just a few chars long (happen on windows)

so a check up can give you the answer an may be for long strings too.
eg:
<?php
xml_set_character_data_handler($this->parser, "cdata");
//...
function cdata($parser, $cdata) {
// ...
if(isset($this->data[$this->currentItem][$this->currentField])) {
    $this->data[$this->currentItem][$this->currentField] .= $cdata;
} else {
    $this->data[$this->currentItem][$this->currentField] = $cdata;
}
?>
Philippe Marc 28-Oct-2004 07:21
How to overide the 1024 characters limitation of xml_set_character_data_handler.
Took me some time to find out how to deal with that!

When calling a basic XML parser:
$parseurXML = xml_parser_create();
xml_set_element_handler($parseurXML, "opentagfunction", "closetagfunction");
xml_set_character_data_handler($parseurXML, "textfunction");

The textfunction only receive 1024 characters at once, even if the text is 4000 characters long. In facts, the parser seems to split the data in pieces of 1024 characters. The way to handle that is to concatenate them.

example:
If you have an XML tag called UNIPROT_ABSTRACT containing a 4000 characters protein description:
function textfunction($parser, $text)
    {
     if ($last_tag_read=='UNIPROT_ABSTRACT') $uniprot.=$text;
    }
The function is called 4 times and receives 1024+1024+1024+928 characters that will be concatenated in the $uniprot variable using the ".=" concatenation fonction.

Easy to do, but not documented!
Brad dot Harrison at griffith dot edu dot au 11-Jul-2004 10:23
If you need to trim the white space for HTML code and don't rely on spaces for formatting text (if you are then it is time to use Style Sheets) then this code will come in very useful.

 $data=eregi_replace(">"."[[:space:]]+"."<","><",$data);
 $data=eregi_replace(">"."[[:space:]]+",">",$data);
 $data=eregi_replace("[[:space:]]+"."<","<",$data);
dan30odd08 at hotmail dot com 01-Dec-2003 04:38
I just want to mention that i ran into a problem when parsing an xml file using the character data handler. If you happen to have a string which is also an internal php function stored in your xml data file and you want to output it as a string the parser dosent seem to recognize it.
   I found a way around this problem. In my case i was storing a string with the value read. This would not allow me to output the data so to work around this problem i added a backslash for every character in the data element.

   e.g.      <xml>
    from    <element>read</element>
    to       <element>////read</element>

i dont know if anyone has ran into this problem or not but i thought i would just put it here just so in case someone is getting stuck with this.
ken at positive-edge dot com 29-Jan-2002 08:20
the function handler is called several times when it parses the character data.  It doesn't return the entire string as it suggests.  There are special exceptions that will always force the parser to stop scanning and call the character data handler.  This is when:

- The parser runs into an Entity Declaration, such as &amp; (&) or &apos; (?)
- The parser finishes parsing an entity
- The parser runs into the new-line character (\n)
- The parser runs into a series of tab characters (\t)

And perhaps others.

For instance, if we have this xml content:

<mytag name=?Ken Egervari? title=?Chief Technology Officer?>
    Ken has been Positive Edge&apos;s Chief Technology Officer for 2 years.
</mytag>

The parser will call the character data handler 6 times.  This is what will happen:

1    \n
2    \t
3    Ken has been Positive Edge
4    ?
5    s Chief Technology Officer for 2 years.
6    \n

I hope that helps people out.


Öntanımlı işleyiciyi belirler

  • « xml_set_character_data_handler
  • xml_set_element_handler »
  • PHP Manual
  • XML Çözümleyici İşlevleri
  • Öntanımlı işleyiciyi belirler

xml_set_default_handler

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_set_default_handler — Öntanımlı işleyiciyi belirler

Açıklama

xml_set_default_handler(XMLParser $ayrıştırıcı, callable $işleyici): true

ayrıştırıcı ile belirtilen XML ayrıştırıcı için öntanımlı işleyici belirler.

Bağımsız Değişkenler

ayrıştırıcı

XML ayrıştırıcı.

işleyici

null veya boş dizge belirtilirse işleyici bunu varsayılan duruma getirir.

işleyici callable türündeyse, işleyici işlev olarak kullanılır.

işleyici string türündeyse, xml_set_object() ile atanmış bir nesnenin yöntem ismi olabilir.

İsmi işleyici ile belirtilen işlevin şuna benzemesi gerekir:

işleyici(XMLParser $ayrıştırıcı, string $veri): void
ayrıştırıcı
İşleyiciyi çağıran XML ayrıştırıcı.
veri
veri, karakter verisini içerir. Dizge, XML bildirimi, belge türü bildirimi veya diğer işleyiciler tarafından ele alınmayan başka bir verileri içerebilir.

Dönen Değerler

Daima true döndürür.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | ayrıştırıcı artık bir XMLParser örneği olabiliyor; evvelce resource türünde geçerli bir xml değeri kabul ederdi.

User Contributed Notes

jp dot amarok at email dot cz 22-Apr-2024 04:00
For anyone who was also wondering what kind of events this function actually handles:

it's used in cases when an XML comment is found or an additional declaration like an xml-stylesheet. In such cases the data argument contains the whole string as it is, for example:

<!-- this is a comment -->
<?xml-stylesheet title="mystyle" type="text/xsl" href="style.xsl" ?>
anoril at anoril dot com 13-Jul-2006 07:54
I have the same issue using two installation of PHP5: on accepts to use the default handler while the other only uses the character_data one.

Maybe a configuration problem...

;) Nonor.
phillip 26-Apr-2005 02:13
it seems to me that in PHP5 the function defined as default-handler (using xml_set_default_handler()) doesen't get passed the cdata anymore:

i.e.:
xml_set_element_handler($this->parser, 'parseSTART', 'parseEND');
xml_set_default_handler($this->parser, 'parseDEFAULT');
function parseSTART() { ... }
function parseEND() { ... }
function parseDEFAULT() { ... }

under PHP5, parseDEFAULT will NOT get passed any cdata, but unter PHP4 it will. at least that's my take on the strange stuff (not) happening after migrating to PHP5.

my solution was to add a xml_set_character_data_handler($parser, 'parseDEFAULT'). it worked for me.


Açılış ve kapanış etiketi işleyicileri belirler

  • « xml_set_default_handler
  • xml_set_end_namespace_decl_handler »
  • PHP Manual
  • XML Çözümleyici İşlevleri
  • Açılış ve kapanış etiketi işleyicileri belirler

xml_set_element_handler

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_set_element_handler — Açılış ve kapanış etiketi işleyicileri belirler

Açıklama

xml_set_element_handler(XMLParser $ayrıştırıcı, callable $açılış_işleyici, callable $kapanış_işleyici): true

ayrıştırıcı ile belirtilen XML ayrıştırıcı için açılış ve kapanış etiketi işleyicileri belirler.

açılış_işleyici XML elemanı açılırken, kapanış_işleyici ise kapanırken çağrılır.

Bağımsız Değişkenler

ayrıştırıcı

XML ayrıştırıcı.

açılış_işleyici

null veya boş dizge belirtilirse işleyici bunu varsayılan duruma getirir.

işleyici callable türündeyse, işleyici işlev olarak kullanılır.

işleyici string türündeyse, xml_set_object() ile atanmış bir nesnenin yöntem ismi olabilir.

İşleyici işlevin şuna benzemesi gerekir:

açılış_işleyici(XMLParser $ayrıştırıcı, string $isim, array $öznitelikler)
ayrıştırıcı
İşleyiciyi çağıran XML ayrıştırıcı.
isim
İşleyicinin çağrılacağı elemanın ismidir. Eğer ayrıştırıcıda büyük harfe dönüşüm etkinse eleman isminin harfleri büyük harfe dönüştürülür.
öznitelikler
Eleman özniteliklerini içeren ilişkisel bir dizidir. Elemanın öznitelikleri yoksa dizi boştur. Dizi elemanlarının anahtarları özniteliklerin isimleri, değerleri ise özniteliklerin değerleridir. Eğer ayrıştırıcıda büyük harfe dönüşüm etkinse eleman isimlerine uygulanan işlem öznitelik isimlerine de uygulanır. Değerlere ise bu işlem uygulanmaz. öznitelikler, özniteliklerin belirtildiği sırada olmalıdır.

kapanış_işleyici

İşlevin şuna benzemesi gerekir:

kapanış_işleyici(XMLParser $ayrıştırıcı, string $isim): void
ayrıştırıcı
İşleyiciyi çağıran XML ayrıştırıcı.
isim
İşleyicinin çağrılacağı elemanın ismidir. Eğer ayrıştırıcıda büyük harfe dönüşüm etkinse eleman isminin harfleri büyük harfe dönüştürülür.

Dönen Değerler

Daima true döndürür.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | ayrıştırıcı artık bir XMLParser örneği olabiliyor; evvelce resource türünde geçerli bir xml değeri kabul ederdi.

User Contributed Notes

kok at nachon dot nl 26-Sep-2008 06:44
Here is another example of detecting empty elements. I works with libxml2. Note that it handles buffer boundaries.

<?php

$depth = 0; //current depth, used for pretty printing
$empty = false; //whether the tag is empty
$offset = 0; //the index of the start of the current buffer within the stream

function tagStart($parser, $name, array $attribs) {
    global $depth, $empty, $data, $offset, $lastchar;
    $idx = xml_get_current_byte_index($parser);
    /* xml_get_current_byte_index returns index within the streams and not
       within the buffer.*/

    /* Check if the index is within the buffer. */
    if (isset($data[$idx - $offset])) {
        $c = $data[$idx - $offset];
    } else {
        /* If it isn't simple use the last character of the buffer. */
        $c = $lastchar;
    }
    $empty = $c == '/';
    echo str_repeat("\t", $depth), "<$name", ($empty ? '/>' : '>'), "\n";
    if (!$empty) ++$depth;
}

function tagEnd($parser, $name) {
    global $depth, $empty;
    if (!$empty) {
        --$depth;
        echo str_repeat("\t", $depth), "</$name>\n";
    } else {
        $empty = false;
    }
}

$parser = xml_parser_create();
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, false);
xml_set_element_handler($parser, 'tagStart', 'tagEnd');

$data1 = '
<test>
    <empty att="3" />
    <nocontent></nocontent>
    <content>
        <empty/>
        <empty/>
    </content>
    <empty/';

$data2 = '>
    <empty att="5" />
</test>
';

$data = &$data1;
$length = strlen($data1);
$lastchar = $data[$length-1];
xml_parse($parser, $data1);
$offset .= $length;
$data = &$data2;
xml_parse($parser, $data2);
darien at etelos dot com 12-Feb-2007 10:48
This documentation is somewhat awry. I know it's been said many times before, but it bears repeating...

If using PHP4, you may be required to use xml_set_object() instead of calling any of the xml_set_*_handler() functions with a two-item array. It will work fine on PHP5, but move the same code to PHP4 and it will create one copie of $this (even if you use &$this) for each handler you set!

<?php
// This code will fail mysteriously on PHP4.
$this->parser = xml_parser_create();
xml_set_element_handler(
            $this->parser,
            array(&$this,"start_tag"),
            array(&$this,"end_tag")
        );
        xml_set_character_data_handler(
            $this->parser,
            array(&$this,"tag_data")
        );
?>

<?php
// This code will work on PHP4.
$this->parser = xml_parser_create();
xml_set_object($this->parser,&$this);
xml_set_element_handler(
            $this->parser,
            "start_tag",
            "end_tag"
        );
        xml_set_character_data_handler(
            $this->parser,
            "tag_data"
        );
?>
lloeki at gmail dot com 31-Oct-2006 03:07
I modified the previous script, so that it is associative. I find it more useful that way. BTW I prefer strtolower() things, but that's not mandatory at all.

<?php

$file = "data.xml";
$depth = 0;
$tree = array();
$tree['name'] = "root";
$stack[] = &$tree;

function startElement($parser, $name, $attrs) {
   global $depth;
   global $stack;
   global $tree;

   $element = array();
   foreach ($attrs as $key => $value) {
       $element[strtolower($key)]=$value;
   }

   end($stack);
   $stack[key($stack)][strtolower($name)] = &$element;
   $stack[strtolower($name)] = &$element;

   $depth++;
}

function endElement($parser, $name) {
   global $depth;
   global $stack;

   array_pop($stack);
   $depth--;
}

$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
if (!($fp = fopen($file, "r"))) {
   die("could not open XML input");
}

while ($data = fread($fp, 4096)) {
   if (!xml_parse($xml_parser, $data, feof($fp))) {
       die(sprintf("XML error: %s at line %d",
                   xml_error_string(xml_get_error_code($xml_parser)),
                   xml_get_current_line_number($xml_parser)));
   }
}
xml_parser_free($xml_parser);
$tree = end(end($stack));
echo "<pre>";
print_r($tree);
echo "</pre>";

?>
rubentrancoso at gmail dot com 29-Aug-2006 01:44
My 25 cents. This example show how to parse a XML in a associative array tree.

<?php

$file = "flow/flow.xml";
$depth = 0;
$tree = array();
$tree['name'] = "root";
$stack[count($stack)] = &$tree;

function startElement($parser, $name, $attrs) {
   global $depth;
   global $stack;
   global $tree;

   $element = array();
   $element['name'] = $name;
   foreach ($attrs as $key => $value) {
        //echo $key."=".$value;
        $element[$key]=$value;
    }

   $last = &$stack[count($stack)-1];
   $last[count($last)-1] = &$element;
   $stack[count($stack)] = &$element;

   $depth++;
}

function endElement($parser, $name) {
   global $depth;
   global $stack;

   array_pop($stack);
   $depth--;
}

$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
if (!($fp = fopen($file, "r"))) {
   die("could not open XML input");
}

while ($data = fread($fp, 4096)) {
   if (!xml_parse($xml_parser, $data, feof($fp))) {
       die(sprintf("XML error: %s at line %d",
                   xml_error_string(xml_get_error_code($xml_parser)),
                   xml_get_current_line_number($xml_parser)));
   }
}
xml_parser_free($xml_parser);
$tree = $stack[0][0];
echo "<pre>";
print_r($tree);
echo "</pre>";
redb 15-May-2006 05:48
Example below (BadParser) works fine with some changes.

xml_set_element_handler ( $parser, array ( &$this, 'tagStart' ), array ( &$this, 'tagEnd' ) );
xml_set_character_data_handler ( $parser, array ( &$this, 'tagContent' ) );
vladimir-leontiev at uiowa dot edu 13-Dec-2005 09:44
It seems that characterData() gets characters in chuncks of 1024; therefore if you have string of characters between you tags that is longer than 1024 then characterData() will be called more that once for single pair of tags. I don't know if this feature(bug?) is documented anywhere, I just wanted to warn everyone about this; it had tripped me. I use php 4.3.10 on Linux.
hendra_g at hotmail dot com 19-Nov-2005 08:10
I ran into the same problem with 'ibjoel at hotmail dot com' in regards to self-closing tags, and found that the script that he/she wrote did not work as I expected.
I played around with some of php's functions and examples and compiled something, which may not be the neatest solution, but it works for the data that 'ibjoel at hotmail dot com' provided.
The data needs to be read from a file though, so the fp can be utilised. It still uses the xml_get_current_byte_index(resource parser) trick, but this time, I check for the last 2 character before the index and test if it's "/>".

<?php
/* myxmltest.xml:
<normal_tag>
  <self_close_tag />
     data
  <normal_tag>data
     <self_close_tag attr="value" />
  </normal_tag>
     data
  <normal_tag></normal_tag>
</normal_tag>
*/

//## Global Variables ##//
$file = "myxmltest.xml";
$character_data_on = false;
$tag_complete = true;

function startElement($parser, $name, $attrs)
{
    global $character_data_on;
    global $tag_complete;

    echo "&lt;<font color=\"#0000cc\">$name</font>";
    //## Print the attributes ##//
    if (sizeof($attrs)) {
        while (list($k, $v) = each($attrs)) {
            echo " <font color=\"#009900\">$k</font>=\"<font
                   color=\"#990000\">$v</font>\"";
        }
    }
    //## Tag is still still incomplete,
    //## will be completed at either endElement or characterData ##//
    $tag_complete = false;
    $character_data_on = false;
}

function endElement($parser, $name)
{
    global $fp;
    global $character_data_on;
    global $tag_complete;

    //#### Test for self-closing tag ####//
    //## xml_get_current_byte_index(resource parser) when run in this
    //## function, gives the index at (indicated by *):
    //##   for self closing tag: <br />*
    //##   for individual closing tag: <div>character data*</div>
    //## So to test for self-closing tag, we can just test for the last 2
    //## characters from the index
    //###################################//

    if (!$character_data_on) {
        //## Record current fp position ##//
        $temp_fp = ftell($fp);

        //## Point fp to 2 bytes before the end element byte index ##//
        $end_element_byte_index = xml_get_current_byte_index($parser);
        fseek($fp,$end_element_byte_index-2);

        //## Gets the last 2 characters before the end element byte index ##//
        $validator = fgets($fp, 3);

        //## Restore fp position ##//
        fseek($fp,$temp_fp);

        //## If the last 2 character is "/>" ##//
        if ($validator=="/>") {
            //// Complete the self-closing tag ////
            echo " /&gt";
            //// Otherwise it is an individual closing tag ////
        } else echo "&gt&lt/<font color=\"#0000cc\">$name</font>&gt";
        $tag_complete = true;
    } else echo "&lt/<font color=\"#0000cc\">$name</font>&gt";

    $character_data_on = false;
}

function characterData($parser, $data)
{
    global $character_data_on;
    global $tag_complete;

    if ((!$character_data_on)&&(!$tag_complete)) {
        echo "&gt";
        $tag_complete = true;
    }
    echo "<b>$data</b>";
    $character_data_on = true;
}

$xml_parser = xml_parser_create();
xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, false);
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");
}

echo "<pre>";
while ($file_content = fread($fp, 4096)) {
    if (!xml_parse($xml_parser, $file_content, 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)));
    }
}
echo "</pre>";
xml_parser_free($xml_parser);
?>
turan dot yuksel at tcmb dot gov dot tr 20-Sep-2005 03:41
The method that 'ibjoel at hotmail dot com' have described requires libxml2 as the xml parser, it does not work with expat. For a brief explanation, see xml_get_current_byte_index.
ibjoel at hotmail dot com 01-Aug-2005 03:49
I noticed that in the example below, and all the examples I've seen on this site for viewing xml in html, the look of self closing tags such as <br /> are not preserved. The parser cannot distinguish between <tag /> and <tag></tag>, and if your start and end element functions are like these examples, both instances will be output with both an indvidual start and end tag.  I needed to preserve self-closing tags and it took me a while to figure out this work around. Hope this helps someone...

The start tag is left open, and then completed by it's first child, the next start tag or its end tag.  The end tag will complete with " />", or </tag> depending on the number of bytes between the start and end tags in the parsed data.
<?php
//$data=filepath or string
$data=<<<DATA
<normal_tag>
  <self_close_tag />
      data
  <normal_tag>data
     <self_close_tag attr="value" />
  </normal_tag>
      data
  <normal_tag></normal_tag>
</normal_tag>
DATA;

function startElement($parser, $name, $attrs)
{
        xml_set_character_data_handler($parser, "characterData");
        global $first_child, $start_byte;
        if($first_child)          //close start tag if neccessary
                echo "><br />";
        $first_child=true;
        $start_byte=xml_get_current_byte_index ($parser);
        if(count($attrs)>=1){
                foreach($attrs as $x=>$y){
                        $attr_string .= " $x=\"$y\"";
                }
        }
        echo htmlentities("<{$name}{$attr_string}"); //unclosed starttag
}

function endElement($parser, $name)
{
        global $first_child, $start_byte;
        $byte=xml_get_current_byte_index ($parser);
        if($byte-$start_byte>2){           //if end tag is more than 2 bytes from start tag
                if($first_child)          //close start tag if neccessary
                        echo "><br />";
                echo htmlentities("</{$name}>")."<br />";  //individual end tag
        }else
                echo " /><br />";  // self closing tag
        $first_child=false;

}

function characterData($parser, $data)
{
        global $first_child;
        if($first_child)  //if $data is first child, close start tag
                echo "><br />";
        if($data=trim($data))
                echo "<font color='blue'>$data</font><br />";
        $first_child=false;
}

function ParseData($data)
{
        $xml_parser = xml_parser_create();
        xml_set_element_handler($xml_parser, "startElement", "endElement");
        xml_parser_set_option($xml_parser,XML_OPTION_CASE_FOLDING,0);
        if(is_file($data))
        {
                if (!($fp = fopen($file, "r"))) {
                        die("could not open XML input");
                }

                while ($data = fread($fp, 4096)) {
                        if (!xml_parse($xml_parser, $data, feof($fp))) {
                                $error=xml_error_string(xml_get_error_code($xml_parser));
                               $line=xml_get_current_line_number($xml_parser);
                                die(sprintf("XML error: %s at line %d",$error,$line));
                        }
                }
        }else{
                if (!xml_parse($xml_parser, $data, 1)) {
                                $error=xml_error_string(xml_get_error_code($xml_parser));
                                $line=xml_get_current_line_number($xml_parser);
                                die(sprintf("XML error: %s at line %d",$error,$line));
                }
        }

        xml_parser_free($xml_parser);
}

ParseData($data);
?>
youniforever at naver dot com 30-Apr-2005 03:41
<html>
  <head>
    <title>SAX Demonstration</title>
   <META HTTP-EQUIV='Content-type' CONTENT='text/html; charset=euc-kr'>
  </head>
  <body>
    <h1>RSS ??????</h1>

      <?php

     $file = "data.xml";

      $currentTag = "";
      $currentAttribs = "";

      function startElement($parser, $name, $attribs)
      {
          global $currentTag, $currentAttribs;
          $currentTag = $name;

          $currentAttribs = $attribs;
          switch ($name) {

          default:
              echo("<b>&lt$name&gt</b><br>");
              break;
          }
      }

      function endElement($parser, $name)
      {
          global $currentTag;
          switch ($name) {
          default:
              echo("<br><b>&lt/$name&gt</b><br><br>");
              break;
          }
          $currentTag = "";
          $currentAttribs = "";
      }

      function characterData($parser, $data)
      {
          global $currentTag;
          switch ($currentTag) {
          case "link":
              echo("<a href=\"$data\">$data</a>\n");
              break;
          case "title":
              echo("title : $data");
              break;
          default:
              echo($data);
              break;
          }
      }

     $xmlParser = xml_parser_create();

      $caseFold = xml_parser_get_option($xmlParser,
                                        XML_OPTION_CASE_FOLDING);

      $targetEncoding = xml_parser_get_option($xmlParser,
                                              XML_OPTION_TARGET_ENCODING);

      if ($caseFold == 1) {
          xml_parser_set_option($xmlParser, XML_OPTION_CASE_FOLDING, false);
      }

      xml_set_element_handler($xmlParser, "startElement", "endElement");
      xml_set_character_data_handler($xmlParser, "characterData");

      if (!($fp = fopen($file, "r"))) {
          die("Cannot open XML data file: $file");
      }

     while ($data = fread($fp, 4096)) {
          if (!xml_parse($xmlParser, $data, feof($fp))) {
              die(sprintf("XML error: %s at line %d",
                          xml_error_string(xml_get_error_code($xmlParser)),
                          xml_get_current_line_number($xmlParser)));
              xml_parser_free($xmlParser);
          }
      }
      xml_parser_free($xmlParser);
      ?>
    </table>
  </body>
</html>
13-Mar-2005 01:34
In response to aw at avatartechnology dot com...
In response to landb at mail dot net...

When your functions are in an object:
Careful ! Don't forget to add: & (reference) to your parameters.

xml_set_element_handler($parser, array(&$this,"_startElement"), array(&$this,"_endElement"));
--> xmlparse will work on your object (good).

instead of:
xml_set_element_handler($parser, array($this,"_startElement"), array($this,"_endElement"));
---> xmlparse will work on a COPY of your object (often bad)

Vin-s
(sorry for my english)
aw at avatartechnology dot com 21-Oct-2004 08:40
In response to landb at mail dot net...

As the notes mention, you can pass an array that contains the reference to an object and a method name when you need... so you can call methods in your own class as handlers like this:

xml_set_element_handler($parser, array($this,"_startElement"), array($this,"_endElement"));

Hope it helps...
tj at tobyjoe dot com 31-Jan-2003 11:22
It seems that the tag handlers don't block on one another (the end handler is called whether or not the begin handler has finished). this can put you in a tight spot if you don't realize it while planning your app.
11-Oct-2001 04:09
You CAN use classes to parse XML. Just take a look at the following function:

xml_set_object
jg at jmkg dot net 07-May-2001 11:08
If you are using a class for xml parsing, and want to check the return value of xml_set_element_handler in case it  fails, you must do this outside of the class's constructor. Inside the constructor, PHP-4.0.5 will die.

Basically, put all your xml initialisation code in another function of the class, and keep it out of the constructor.


İsim alanı bildirimi sonlandırma işleyiciyi belirler

  • « xml_set_element_handler
  • xml_set_external_entity_ref_handler »
  • PHP Manual
  • XML Çözümleyici İşlevleri
  • İsim alanı bildirimi sonlandırma işleyiciyi belirler

xml_set_end_namespace_decl_handler

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

xml_set_end_namespace_decl_handler — İsim alanı bildirimi sonlandırma işleyiciyi belirler

Açıklama

xml_set_end_namespace_decl_handler(XMLParser $ayrıştırıcı, callable $işleyici): true

İsim alanı bildirimi etki alanından çıkılırken çağrılacak işleyici işlevi belirler. İsim alanı bildirimi sonlandırma işleyicisi, her isim alanlı başlangıç etiketinin karşılığı olan kapama etiketinin işleyicisinden sonra çağrılır.

Dikkat

Bu yöntem libXML tarafından desteklenmemektedir, bu bakımdan kayıtlı işleyici çağrılamaz.

Bağımsız Değişkenler

ayrıştırıcı

XML ayrıştırıcı.

işleyici

null veya boş dizge belirtilirse işleyici bunu varsayılan duruma getirir.

işleyici callable türündeyse, işleyici işlev olarak kullanılır.

işleyici string türündeyse, xml_set_object() ile atanmış bir nesnenin yöntem ismi olabilir.

İşleyici işlev sözdizimi:

işleyici(XMLParser $ayrıştırıcı, string|false $önek)
ayrıştırıcı
İşleyiciyi çağıran XML ayrıştırıcı.
önek
Önek yoksa false.

Dönen Değerler

Daima true döndürür.

Ayrıca Bakınız

  • xml_set_start_namespace_decl_handler() - İsim alanı bildirimi başlatma işleyicisini belirler

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | ayrıştırıcı artık bir XMLParser örneği olabiliyor; evvelce resource türünde geçerli bir xml değeri kabul ederdi.

User Contributed Notes

There are no user contributed notes for this page.


Harici öğe gönderimi işleyiciyi belirler

  • « xml_set_end_namespace_decl_handler
  • xml_set_notation_decl_handler »
  • PHP Manual
  • XML Çözümleyici İşlevleri
  • Harici öğe gönderimi işleyiciyi belirler

xml_set_external_entity_ref_handler

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_set_external_entity_ref_handler — Harici öğe gönderimi işleyiciyi belirler

Açıklama

xml_set_external_entity_ref_handler(XMLParser $ayrıştırıcı, callable $işleyici): true

ayrıştırıcı ile belirtilen XML ayrıştırıcı için harici öğe gönderimi işleyiciyi belirler.

Bağımsız Değişkenler

ayrıştırıcı

XML ayrıştırıcı.

işleyici

null veya boş dizge belirtilirse işleyici bunu varsayılan duruma getirir.

işleyici callable türündeyse, işleyici işlev olarak kullanılır.

işleyici string türündeyse, xml_set_object() ile atanmış bir nesnenin yöntem ismi olabilir.

İşleyici işlev sözdizimi:

işleyici(
XMLParser $ayrıştırıcı,
string $açık_öğe_isimleri,
string|false $taban,
string $sistem_id,
string|false $genel_id
): bool
ayrıştırıcı
İşleyiciyi çağıran XML ayrıştırıcı.
açık_öğe_isimleri
Öğenin ayrıştırılması için açılan öğe isimlerinin boşluk ayraçlı listesidir (belirtilen öğenin ismi dahil).
taban
Harici öğenin sistem betimleyicisini (sistem_id) ayrıştırmak için kullanılacak dizge.
system_id
Öğe bildiriminde belirtilen sistem betimleyicisi.
public_id
Öğe bildiriminde belirtilen genel betimleyicisi. Belirtilmediği takdirde boş dizgedir. Betimleyici içindeki boşluklar XML belirtiminde belirtildiği gibi normalleştirilir.

İşleyici, öğe işlenmişse true yoksa false döndürmelidir. false döndüğü durumda, XML ayrıştırıcı ayrıştırmayı durdurur ve xml_get_error_code() işlevinin XML_ERROR_EXTERNAL_ENTITY_HANDLING döndürmesini sağlar.

Dönen Değerler

Daima true döndürür.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | ayrıştırıcı artık bir XMLParser örneği olabiliyor; evvelce resource türünde geçerli bir xml değeri kabul ederdi.
7.3.0 | Eklenti libxml'e dayalı oluşturulmuşsa işleyici dönüş değeri artık yoksayılmıyor. Evvelce dönüş değeri yoksayılır ve ayrıştırma hiç bitmezdi.

User Contributed Notes

There are no user contributed notes for this page.


Gösterim bildirimi işleyiciyi belirler

  • « xml_set_external_entity_ref_handler
  • xml_set_object »
  • PHP Manual
  • XML Çözümleyici İşlevleri
  • Gösterim bildirimi işleyiciyi belirler

xml_set_notation_decl_handler

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_set_notation_decl_handler — Gösterim bildirimi işleyiciyi belirler

Açıklama

xml_set_notation_decl_handler(XMLParser $ayrıştırıcı, callable $eylemci): true

ayrıştırıcı ile belirtilen XML ayrıştırıcı için gösterim bildirimi işleyiciyi belirler.

Bir gösterim bildirimi belge DTD'sinin bir parçası olup sözdizimi şöyledir:

<!NOTATION isim
{
sistem_id
|
genel_id
?>
Gösterim bildirimi tanımı için » XML 1.0 belirtiminin ilgili bölümüne bakınız.

Bağımsız Değişkenler

ayrıştırıcı

XML ayrıştırıcı.

işleyici

null veya boş dizge belirtilirse işleyici bunu varsayılan duruma getirir.

işleyici callable türündeyse, işleyici işlev olarak kullanılır.

işleyici string türündeyse, xml_set_object() ile atanmış bir nesnenin yöntem ismi olabilir.

İşleyici işlev sözdizimi:

işleyici(
XMLParser $ayrıştırıcı,
string $gösterim_adı,
string|false $taban,
string $sistem_id,
string|false $genel_id
): void
ayrıştırıcı
İşleyiciyi çağıran XML ayrıştırıcı.
gösterim_adı
Yukarıdaki gösterim bildirimi sözdiziminde isim bağımsız değişkeninin değeri.
taban
Harici öğenin sistem betimleyicisini (sistem_id) ayrıştırmak için kullanılacak dizge.
system_id
Öğe bildiriminde belirtilen sistem betimleyicisi.
public_id
Öğe bildiriminde belirtilen genel betimleyicisi. Belirtilmediği takdirde boş dizgedir. Betimleyici içindeki boşluklar XML belirtiminde belirtildiği gibi normalleştirilir.

Dönen Değerler

Daima true döndürür.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | ayrıştırıcı artık bir XMLParser örneği olabiliyor; evvelce resource türünde geçerli bir xml değeri kabul ederdi.

User Contributed Notes

There are no user contributed notes for this page.


XML ayrıştırıcı, nesne içinde kullanılır

  • « xml_set_notation_decl_handler
  • xml_set_processing_instruction_handler »
  • PHP Manual
  • XML Çözümleyici İşlevleri
  • XML ayrıştırıcı, nesne içinde kullanılır

xml_set_object

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_set_object — XML ayrıştırıcı, nesne içinde kullanılır

Açıklama

xml_set_object(XMLParser $ayrıştırıcı, object $nesne): true

Bu işlev, ayrıştırıcı ile belirtilen XML ayrıştırıcının belirtilen nesne nesnesi içinde kullanılmasını mümkün kılar. Bu durumda, xml_set_element_handler() benzeri işlevlerle belirtilen eylemci işlevlerin nesne nesnesinin yöntemleri olarak belirtilmesi gerekir.

Bağımsız Değişkenler

ayrıştırıcı

nesne içinde kullanılacak XML ayrıştırıcı nesnesi.

nesne

XML ayrıştırıcının içinde kullanılacağı nesne.

Dönen Değerler

Daima true döndürür.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | ayrıştırıcı artık bir XMLParser örneği olabiliyor; evvelce resource türünde geçerli bir xml değeri kabul ederdi.

Örnekler

Örnek 1 - xml_set_object() örneği

<?php
class CustomXMLParser
{
private $parser;

function __construct()
{
$this->ayrıştırıcı = xml_parser_create();

xml_set_object($this->ayrıştırıcı, $this);
xml_set_element_handler($this->ayrıştırıcı, "etiketAç", "etiketKapa");
xml_set_character_data_handler($this->ayrıştırıcı, "cdata");
}

function ayrıştır($veri)
{
xml_parse($this->ayrıştırıcı, $veri);
}

function etiketAç(ayrıştırıcı, $etiket, $bağımsız değişkenler)
{
var_dump($etiket, $bağımsız değişkenler);
}

function cdata(ayrıştırıcı, $cdata)
{
var_dump($cdata);
}

function etiketKapa(ayrıştırıcı, $etiket)
{
var_dump($etiket);
}

}

ayrıştırıcı = new CustomXMLParser();
$xml_ayrıştırıcı->ayrıştır("<A ID='alo'>PHP</A>");
?>

Yukarıdaki örneğin çıktısı:

string(1) "A"
array(1) {
  ["ID"]=>
  string(5) "hallo"
}
string(3) "PHP"
string(1) "A"

User Contributed Notes

joey at gimo dot co dot uk 10-Aug-2016 10:32
This function seems to be of very limited use when [$object_instance, "method_name"] is a callable.
wake dot shinigami at gmail dot com 23-Nov-2005 08:28
I finally managed to get xml_set_object() to work, after much documentation searching.  As the solution I found has been hinted at, the focus has been wrong.

There have been many problems getting class contained XML parsers to make changes to the members of an instance.  This is because, from what I'm guessing, the functions are using a either a new annonymous instance of the class or an uninstanced version of the class.

What we want to make sure it does it that the parser is accessing its handlers as member methods of a particular instance of a class.  This can be done using the array method for passing a callback, setting the object as a reference to this instance.  This way, you know that the parser is going to call the function properly.

Ex:
<?php
class Parser {

 private $parser;
 private $data;

 public function __construct() {
  $this->parser = NULL;
  $this->data = '';
 }

 private function ParseElementStart($parser, $name, $attrs) {
  // Code
 }
 private function ParseElementEnd($parser, $name) {
  // Code
 }

 public function Parse($XMLdata) {
  $this->parser = xml_parser_create();
  xml_set_object($this->parser, $this);
  xml_set_element_handler($this->parser,
                          array(&$this, 'ParseElementStart'),
                          array(&$this, 'ParseElementEnd'));
  xml_parse($this->parser, $XMLdata);
  xml_parser_free($this->parser);
 }
}
?>

With this, when you call the Parse method, the data in that instance can be modified.  I'm not sure if xml_set_object becomes unneccissary when using the array callbacks, but I leave it in just to make sure that the xml_parse function knows it's in the object.

As above, I'd recommend for memory sake, that the XML parser be created, used, and freed all in the same function, to ensure that everything is cleaned up correctly.
bettmenn at gmx dot de 16-Oct-2004 02:03
Adding to 'lmfe at mega dot ist dot utl dot pt' contribution below, I have to say that this behaviour is very usual for PHP if MemberVars of an Object arent initialized from the constructor.
What worked best for me so far was something like this:
<?php
class foo {
  var $bar
  // the constructor
  function foo() {
    unset($this->bar);  // with every instanciation, the variable is cleared for the object
  }
}
?>
lmfe at mega dot ist dot utl dot pt 29-Sep-2004 10:51
Using PHP 4.3.0, I got this strange behaviour:

<?php
class xml  {

     /* (as specified in the documentation above) */

} // end of class xml

/* This code works */
$xml_parser = new xml();
$xml_parser->parse("<A ID='hallo'>PHP</A>");

/* This code works */
$xml_parser2 = new xml();
$xml_parser2->parse("<A ID='hallo2'>PHP2</A>");

/* This code DON'T work */
$xml_parser = new xml();
$xml_parser->parse("<A ID='hallo3'>PHP3</A>");
?>

In the third block of code, php complains it can't find the handlers it needs.
It seems this problem only happens if the variable is used more than once.
Calling xml_parser_free doesn't help
hwheinzen at t-online dot de 14-Aug-2004 03:38
(Adding to zitan's note)
It seems easy enough to provide output functions for callback handler classes too.

Example:

<?php
class CallBack {
    var $name = 'Callback';
    var $info = 'Information!';
    function toString() {
        return $this->name.': '.$this->info;
    }
}
class Main {
    var $name = 'Main';
    var $callBackObject;
    function setCallBack(&$cBIn) { $this->callBackObject = $cBIn; }
    function toString() {
        return $this->name.': '.$this->callBackObject->toString();
    }
}

$cb = & new CallBack;
$m = & new Main;
$m->setCallBack(&$cb);
echo $cb->toString();
echo $m->toString();
?>

So, after collecting information during the parse operation within the callback handler class, e.g. in tag_close(), retrieving them is possible.
zitan at mediasculpt dot net 01-Sep-2003 09:05
Just a note about creating abstract "call back handlers" as mentioned in some of the other notes.  In this case I recommend extending the base XML class and overwritting the handler methods.  The reason I wanted to do this, is that if you have a separate callback method class it causes problems, for example if you want to collect information out of the XML file and store it in an array.  You can get around it with global variables, but I prefer to use them only when required ;)

Example:

<?php
class xml_output extends xml{

  var $output = array();

   function xml_output(){
    $this->xml();
   }

    //overwrite base methods
    function tag_open($parser, $tag, $attributes)
    {
        array_push($this->output, "<$tag, attributes>");
    }

    function cdata($parser, $cdata)
    {
         array_push($this->output, "$cdata");
    }

    function tag_close($parser, $tag)
    {
         array_push($this->output, "</$tag>");
    }

}

$xml_parser = & new xml_output();
$xml_parser->parse("<A ID='hallo'>PHP</A>");
echo("$xml_parser->output");
?>
sbeam at syxyz dot net 12-Nov-2002 09:34
passing the object as a call-time ref (&$this) as in the example will create a warning in php 4.1+. Pass xml_set_object($xp,$this); instead. This does not seem to break anything - but I dont know for sure.
chiefgeek at ecodedesign.com 04-Aug-2002 10:37
Just adding a little note about my above written example.  It needs some improvements.

Because PHP passes by VALUE by default, when you pass an array like this:
array($callback_handler, 'handler_method')
PHP makes a copy of the callback_handler object and uses the handler_method in the copy.

This is not an ideal situation for many reasons...which I will not get into here...but you should have an idea by now.

The best way to fix this is to change a few things. In the function declaration change the parameter from $callback_handler to &$callback_handler. So now your declaration should look like this

function set_callback_handler(&$callback_handler)
{
  ...
}

Now each time you reference $callback_handler change it to &$callback_handler.  For example:

xml_set_element_handler(
          $this->xml_parser,
          array(&$callback_handler, 'start_element'),
          array(&$callback_handler, 'close_Element' ));

This ensures that PHP will always use the same object.
chiefgeek at ecodedesign.com 03-Aug-2002 08:25
xml_set_object is great, if you want to hard code your start_element, end_element, etc functions within your xml class.

But what if you want to increase the modularity of your application?

Solution, create one generic XMLParser class that handles everything *except* the callback funtions.  Then create an abstract XMLCallbackHandler class which you can extend to provide any customization you want.

So how do you tell the php's xml_parser that you want to use this other class to handle the callback functions.

xml_set_object?  This only works if the functions are *within* the object you called this method from.

The solution lies in the xml_set_element_handler() function.
Take a look at this sample source...

class XMLParser
{

  ...

  function set_callback_handler($callback_handler)
  {
    // Assign the startElement endElement functions
    xml_set_element_handler(
          $this->xml_parser,
          array($callback_handler, 'start_element'),
          array($callback_handler, 'close_Element' ));

    /* By passing an array with this ($object, 'function_name') structure
       to the 2nd and 3rd parameters.  We are able to tell the parser to
       look in another object for these callback functions.
    */

    // Assign the character data function
    xml_set_character_data_handler(
          $this->xml_parser,
          array($callback_handler, 'character_data'));
    }
}

class myCallBackHandler
{
  function start_element(...)
  {
    //code goes here
  }

  function end_element(...)
  {
    //code goes here
  }

  function character_data(...)
  {
    //code goes here
  }
}

Now all thats left to do is use these classes..

$parser = new XMLParser();
$parser->set_callback_handler(new myCallbackHandler());
dfoesch at cs dot nmsu dot edu 12-Apr-2002 05:38
English explaination of why you do: $xml = & new xml();

Ok, when PHP executes "new xml()" it creates an anonymous variable (one that you can't reference with any name) which it then runs the constructor function on.  Ok, now once that's done, it then assigns by VALUE in the example above.  This means that that lovely pointer to your parser is pointing to the anonymous instance of your class, and not the used instance of your class... thus making a "shadow" of all your variables, where assignments inside the parser access different variables than outside the parser.  What PHP _SHOULD_ be doing (similar to C++) is have this statement execute such that the assignment is done by REFERENCE, so that you assign the new name to the class that actually got constructed, and not just a copy of the class that you constructed.

If they did it right, this code wouldn't be broken.
14-Feb-2002 11:10
Call-time pass-by-reference has been deprecated, so the example is buggy as was already mentionned. However since 4.04 (I think) "new" can return objects by reference. So the clean way to have both the parser initialised in the constructor, and to save the result in your object is to do

$xml_parser = & new xml();

see http://www.php.net/manual/en/language.oop.newref.php

Ivan
pete dot nelson at serverSXPYAZMsolved dot com 27-Aug-2001 10:15
<p>in reply to jon9mm's question, I have found the same problem (function 'startElement' does not exist).  I finally found the way around this, by re-reading this doc for xml_set_object.  You HAVE to use the xml_set_object($this->parser, &$this) within your parser function.</p> <p>When that function is called, your object temporarily becomes the parser object and shares scope (so it can see 'startElement', etc).   Once that function is done, the xml_set_object(...) call goes out of scope, and your object is no longer bound to the parser.  So the simplist solution is to call xml_set_object(...), do any parsing, and then call xml_parser_free(...) all within the same function.</p>
<p>And remember, don't call xml_set_object(...) in your object's constructor - your object will be forever bound to the parser object and you'll loose all access to your object's member functions.</p>
<p>This is all explained in the examples above, but it took me reading it a couple of times to grok how it all works.</p>
nick at category4 dot com 14-May-2001 01:45
If you're using the XML parser within an object, be careful not to accidentally call any methods that don't exist within the object. Instead of complaining that the missing method doesn't exist, PHP will say it's not able to find the handler routines, even if you've indicated them correctly. (PHP version 4.0.5 on FreeBSD).
williams at cse dot unl dot edu 06-Dec-2000 12:42
If xml_set_object is not called in the constructor of an object, the values that the parser modifies will be saved. Else, the values do not seem to be saved as stated by "i_sofer" above.
--- Start Example Code ---
class foo {
var xmlparser;
function foo() { \\the constructor
$this->xmlparser=xmlparser_create();
}
function parse() {
xml_set_object($this->xmlparser,&$this);
\\also include data handler
\\and element handlers here
}
}
--- End Example Code ---
i_sofer at yahoo dot com 18-Nov-2000 04:15
Using xml parser in objects seem to have a problem that values modified(even of the object itself) get lost as soon as parsing ends...
malcontent at msgto dot com 20-Aug-2000 12:11
The example will generate a warning unless allow_call_time_pass_reference is set to true in your INI file. It also will not accept a call by value.
robert at webmotion dot com 18-Apr-2000 10:58
While true that there is no automatic destructor for PHP class objects, it is quite simple to create a method called destroy and perform the destruction manually. In the example above it may not be necessary to free the xml parser immediately... it would appear from the example that the object is re-useable.


İşlem komutu (PI) işleyicisini belirler

  • « xml_set_object
  • xml_set_start_namespace_decl_handler »
  • PHP Manual
  • XML Çözümleyici İşlevleri
  • İşlem komutu (PI) işleyicisini belirler

xml_set_processing_instruction_handler

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_set_processing_instruction_handler — İşlem komutu (PI) işleyicisini belirler

Açıklama

xml_set_processing_instruction_handler(XMLParser $ayrıştırıcı, callable $işleyici): true

ayrıştırıcı ile belirtilen XML ayrıştırıcı için işlem komutu (PI) işleyicisini belirler.

Bir işlem komutunun biçemi şöyledir:

<?hedef
veri
?>

Dikkat

PHP kodu <?php işlem komutu içine konabilir. Böylece bir XML belgesisi PHP kodu içerebilir. Ancak, XML işlem komutunda kapama etiketi (?>) verinin bir parçası olmamalıdır. İşlem komutunun kapama etiketi gömülü PHP kodunun içinde yer alırsa, PHP kodu ve işlem komutunun "asıl" kapama etiketi karakter verisi olarak ele alınır.

Bağımsız Değişkenler

ayrıştırıcı

XML ayrıştırıcı.

işleyici

null veya boş dizge belirtilirse işleyici bunu varsayılan duruma getirir.

işleyici callable türündeyse, işleyici işlev olarak kullanılır.

işleyici string türündeyse, xml_set_object() ile atanmış bir nesnenin yöntem ismi olabilir.

İşleyici işlev sözdizimi:

işleyici(XMLParser $ayrıştırıcı, string $hedef, string $veri): void
ayrıştırıcı
İşleyiciyi çağıran XML ayrıştırıcı.
hedef
İşlem komutu hedefini içermelidir.
veri
İşlem komutu verisini içermelidir.

Dönen Değerler

Daima true döndürür.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | ayrıştırıcı artık bir XMLParser örneği olabiliyor; evvelce resource türünde geçerli bir xml değeri kabul ederdi.

User Contributed Notes

There are no user contributed notes for this page.


İsim alanı bildirimi başlatma işleyicisini belirler

  • « xml_set_processing_instruction_handler
  • xml_set_unparsed_entity_decl_handler »
  • PHP Manual
  • XML Çözümleyici İşlevleri
  • İsim alanı bildirimi başlatma işleyicisini belirler

xml_set_start_namespace_decl_handler

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

xml_set_start_namespace_decl_handler — İsim alanı bildirimi başlatma işleyicisini belirler

Açıklama

xml_set_start_namespace_decl_handler(XMLParser $ayrıştırıcı, callable $işleyici): true

İsim alanı bildirimi yapıldığında bu işlev çağrılır. İsim alanı bildirimleri başlangıç etiketinde bulunur. Fakat, isim alanı bildirim işleyici, her isim alanlı etiket için başlangıç etiketi işleyiciden önce çağrılır.

Bağımsız Değişkenler

ayrıştırıcı

XML ayrıştırıcı.

işleyici

null veya boş dizge belirtilirse işleyici bunu varsayılan duruma getirir.

işleyici callable türündeyse, işleyici işlev olarak kullanılır.

işleyici string türündeyse, xml_set_object() ile atanmış bir nesnenin yöntem ismi olabilir.

İşleyici işlev sözdizimi:

işleyici(resource $ayrıştırıcı, string|false $önek, string $uri): void
ayrıştırıcı
İşleyiciyi çağıran XML ayrıştırıcı.
önek
Önek yoksa false
uri
İsimalanı için URI.

Dönen Değerler

Daima true döndürür.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | ayrıştırıcı artık bir XMLParser örneği olabiliyor; evvelce resource türünde geçerli bir xml değeri kabul ederdi.

Ayrıca Bakınız

  • xml_set_end_namespace_decl_handler() - İsim alanı bildirimi sonlandırma işleyiciyi belirler

User Contributed Notes

There are no user contributed notes for this page.


Ayrıştırılmayan öğe bildirimi işleyicisini belirler

  • « xml_set_start_namespace_decl_handler
  • XMLParser »
  • PHP Manual
  • XML Çözümleyici İşlevleri
  • Ayrıştırılmayan öğe bildirimi işleyicisini belirler

xml_set_unparsed_entity_decl_handler

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_set_unparsed_entity_decl_handler — Ayrıştırılmayan öğe bildirimi işleyicisini belirler

Açıklama

xml_set_unparsed_entity_decl_handler(XMLParser $ayrıştırıcı, callable $işleyici): true

ayrıştırıcı ile belirtilen XML ayrıştırıcı için ayrıştırılmayan öğe bildirimi (NDATA) işleyicisini belirler.

XML ayrıştırıcı, aşağıdaki gibi bir NDATA bildirimli bir harici öğe bildirimi saptarsa ismi işleyici bağımsız değişkeninde belirtilen işlev çağrılır:

<!ENTITY <parameter>isim</parameter> {<parameter>genel_id</parameter> | <parameter>sistem_id</parameter>}
        NDATA <parameter>notationName</parameter>

<!ENTITY isim {genel_id | sistem_id}

        NDATA gösterim_adı

Harici öğe olarak bildirilen gösterim tanımı için » XML 1.0 belirtiminin ilgili bölümüne bakınız.

Bağımsız Değişkenler

ayrıştırıcı

XML ayrıştırıcı.

işleyici

null veya boş dizge belirtilirse işleyici bunu varsayılan duruma getirir.

işleyici callable türündeyse, işleyici işlev olarak kullanılır.

işleyici string türündeyse, xml_set_object() ile atanmış bir nesnenin yöntem ismi olabilir.

İşleyici işlev sözdizimi:

işleyici(
resource $ayrıştırıcı,
string $öğe_adı,
string|false $taban,
string $sistem_id,
string|false $genel_id,
string|false $gösterim_adı
): void
ayrıştırıcı
İşleyiciyi çağıran XML ayrıştırıcı.
öğe_adı
Tanımlanmaya hazırlanılan öğenin ismi.
taban
Harici öğenin sistem betimleyicisini (sistem_id) ayrıştırmak için kullanılacak dizge. Şimdilik bu bağımsız değişken daima boş bir dizgedir.
sistem_id
Öğe bildiriminde belirtilen sistem betimleyicisi.
genel_id
Öğe bildiriminde belirtilen genel betimleyicisi. Belirtilmediği takdirde boş dizgedir. Betimleyici içindeki boşluklar XML belirtiminde belirtildiği gibi normalleştirilir.
gösterim_adı
Bu öğenin gösterim ismi; (xml_set_notation_decl_handler() işlevine bakınız).

Dönen Değerler

Daima true döndürür.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | ayrıştırıcı artık bir XMLParser örneği olabiliyor; evvelce resource türünde geçerli bir xml değeri kabul ederdi.

User Contributed Notes

There are no user contributed notes for this page.


XMLParser sınıfı

(PHP 8)

Giriş

PHP 8.0.0 ve sonrasında xml özkaynaklarının yerini alan etkileşimsiz sınıf.

Sınıf Sözdizimi

final class XmlParser {
}

User Contributed Notes

There are no user contributed notes for this page.


XMLReader

  • Giriş
  • Yapılandırma/Kurulum
    • Gereksinimler
    • Kurulum
    • Çalışma Anı Yapılandırması
    • Özkaynak Türleri
  • XMLReader — XMLReader sınıfı
    • XMLReader::close — XMLReader girdisini kapatır
    • XMLReader::expand — Geçerli düğümün bir kopyasını bir DOM nesnesi olarak döndürür
    • XMLReader::getAttribute — İsmi belirtilen özniteliğin değerini döndürür
    • XMLReader::getAttributeNo — İndisi belirtilen özniteliğin değerini döndürür
    • XMLReader::getAttributeNs — İsmi ve isim alanı belirtilen özniteliğin değerini döndürür
    • XMLReader::getParserProperty — Belirtilen özelliğin tanımlı olup olmadığına bakar
    • XMLReader::isValid — Çözümlenen düğümün geçerliliğini sınar
    • XMLReader::lookupNamespace — Bir önek için isim alanına bakar
    • XMLReader::moveToAttribute — İmleci ismi belirtilen özniteliğe konumlar
    • XMLReader::moveToAttributeNo — İmleci indisi belirtilen özniteliğe götürür
    • XMLReader::moveToAttributeNs — İmleci isimli özniteliğe götürür
    • XMLReader::moveToElement — İmleci geçerli özniteliğin ebeveyn elemanına konumlar
    • XMLReader::moveToFirstAttribute — İmleci ilk özniteliğe konumlar
    • XMLReader::moveToNextAttribute — İmleci sonraki özniteliğe konumlar
    • XMLReader::next — Alt ağaçların tümünü atlayıp sonraki düğüme gider
    • XMLReader::open — Çözemlenecek XML belgeyi içeren adresi belirler
    • XMLReader::read — Belgedeki sonraki düğüme gidilir
    • XMLReader::readInnerXml — Geçerli düğümün içeriğini okur
    • XMLReader::readOuterXml — Geçerli düğümün içeriğini düğümün kendisiyle birlikte okur
    • XMLReader::readString — Geçerli düğümün içeriğini bir dizge olarak okur
    • XMLReader::setParserProperty — Çözümleyici seçeneklerini tanımlar
    • XMLReader::setRelaxNGSchema — Belgeyi RelaxNG şemasına göre doğrular
    • XMLReader::setRelaxNGSchemaSource — Belgeyi dizge olarak belirtilen RelaxNG şemasına göre doğrular
    • XMLReader::setSchema — Belgeyi XSD şemasına göre doğrular
    • XMLReader::XML — Çözümlenecek XML belge içeriği belirtilir

User Contributed Notes

Anonymous 10-May-2024 01:26
Allright, I'll do it myself:

$xmlreader = XMLReader::open('xml_file.xml');
$indent = 0;
while ($xmlreader->read() !== FALSE)
{
    switch ($xmlreader->nodeType)
    {
        case XMLReader::ELEMENT:
            echo str_repeat("\t", ($xmlreader->isEmptyElement ? $indent : $indent++)), '[element]: ', $xmlreader->name, "\n";
            break;
        case XMLReader::TEXT:
            echo str_repeat("\t", $indent), $xmlreader->value, "\n";
            break;
        case XMLReader::END_ELEMENT:
            echo str_repeat("\t", --$indent), '[end element]: ', $xmlreader->name, "\n";
            break;
    }
}


Giriş

XMLReader eklentisi bir XML çözümleyicisidir. Belge akımı üzerinde her düğümde durarak bir imleç gibi hareket eder.

Kodlama

libxml dahili olarak UTF-8 kullandığından alınan içeriğin daima UTF-8 kodlanmış olması gerekir.

User Contributed Notes

There are no user contributed notes for this page.


Kurulum

XMLReader eklentisi PHP paketinde gelir ve öntanımlı olarak etkindir. Bu eklenti öntanımlı olarak etkindir. Derleme sırasında bu seçenekle iptal edilebilir: --disable-xmlreader

User Contributed Notes

Miguel Cruz 11-Jun-2012 01:06
If you are having trouble loading this extension (perhaps with a log message like 'Undefined symbol "dom_node_class_entry"'), make sure that you have xmlreader.so listed AFTER dom.so in php.ini.
alvaro at digdib dot com 02-Jan-2009 02:33
Gentoo users: emerge does not compile dev-lang/php with --enable-xmlreader by default. To enable this option, add the flag xmlreader to your USE variable and recompile php.


XMLReader sınıfı

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Giriş

XMLReader eklentisi bir XML çözümleyicisidir. Belge akımı üzerinde her düğümde durarak bir imleç gibi hareket eder.

Sınıf Sözdizimi

class XMLReader {
/* Sabitler */
public const int NONE;
public const int ELEMENT;
public const int ATTRIBUTE;
public const int TEXT;
public const int CDATA;
public const int ENTITY_REF;
public const int ENTITY;
public const int PI;
public const int COMMENT;
public const int DOC;
public const int DOC_TYPE;
public const int DOC_FRAGMENT;
public const int NOTATION;
public const int WHITESPACE;
public const int SIGNIFICANT_WHITESPACE;
public const int END_ELEMENT;
public const int END_ENTITY;
public const int XML_DECLARATION;
public const int LOADDTD;
public const int DEFAULTATTRS;
public const int VALIDATE;
public const int SUBST_ENTITIES;
/* Özellikler */
public int $attributeCount;
public string $baseURI;
public int $depth;
public bool $hasAttributes;
public bool $hasValue;
public bool $isDefault;
public bool $isEmptyElement;
public string $localName;
public string $name;
public string $namespaceURI;
public int $nodeType;
public string $prefix;
public string $value;
public string $xmlLang;
/* Yöntemler */
public close(): true
public expand(?DOMNode $düğüm = null): DOMNode|false
public getAttribute(string $isim): ?string
public getAttributeNo(int $indis): ?string
public getAttributeNs(string $isim, string $isimalanı): ?string
public getParserProperty(int $özellik): bool
public isValid(): bool
public lookupNamespace(string $önek): ?string
public moveToAttribute(string $isim): bool
public moveToAttributeNo(int $indis): bool
public moveToAttributeNs(string $isim, string $isim_alanı): bool
public moveToElement(): bool
public moveToFirstAttribute(): bool
public moveToNextAttribute(): bool
public next(?string $isim = null): bool
public static open(string $uri, ?string $kodlama = null, int $seçenekler = 0): XMLReader
public open(string $uri, ?string $kodlama = null, int $seçenekler = 0): bool
public read(): bool
public readInnerXml(): string
public readOuterXml(): string
public readString(): string
public setParserProperty(int $seçenek, bool $etkin): bool
public setRelaxNGSchema(?string $dosya): bool
public setRelaxNGSchemaSource(?string $kaynak): bool
public setSchema(?string $dosya): bool
public static XML(string $kaynak, ?string $kodlama = null, int $seçenekler = 0): XMLReader
public XML(string $kaynak, ?string $kodlama = null, int $seçenekler = 0): bool
}

Özellikler

attributeCount

Düğümdeki özniteliklerin sayısı.

baseURI

Düğümün taban adresi.

depth

Düğümün ağaçtaki derinliği; 0'dan başlar.

hasAttributes

Düğümün öznitelikleri varsa true.

hasValue

Düğüm bir metin değerine sahipse true.

isDefault

Özniteliğin DTD'de öntanımlısı varsa true.

isEmptyElement

Düğüm boş bir elemansa true

localName

Düğümün yerel ismi.

name

Düğümün nitelenmiş ismi.

namespaceURI

Düğüm ile ilişkili isim alanını betimleyen adres.

nodeType

Düğümün düğüm türü.

önek

Düğüm ile ilişkili isim alanı öneki.

value

Düğümün metin değeri.

xmlLang

Düğümün ait olduğu xml:lang etki alanı

Öntanımlı Sabitler

XMLReader Düğüm Türleri

XMLReader::NONE

Düğüm türü yok

XMLReader::ELEMENT

Eleman başlatır

XMLReader::ATTRIBUTE

Öznitelik düğümü

XMLReader::TEXT

Metin düğümü

XMLReader::CDATA

CDATA düğümü

XMLReader::ENTITY_REF

Öğe gönderimi düğümü

XMLReader::ENTITY

Öğe bildirimi düğümü

XMLReader::PI

İşlem komutu düğümü

XMLReader::COMMENT

Açıklama düğümü

XMLReader::DOC

Belge düğümü

XMLReader::DOC_TYPE

Belge türü düğümü

XMLReader::DOC_FRAGMENT

Belge bölümü düğümü

XMLReader::NOTATION

Gösterim düğümü

XMLReader::WHITESPACE

Boşluk düğümü

XMLReader::SIGNIFICANT_WHITESPACE

Anlamlı boşluk düğümü

XMLReader::END_ELEMENT

Elemanı kapatır

XMLReader::END_ENTITY

Öğeyi kapatır

XMLReader::XML_DECLARATION

XML Bildirimi düğümü

XMLReader Çözümleyici Seçenekleri

XMLReader::LOADDTD

DTD'yi yükler fakat doğrulama yapmaz.

XMLReader::DEFAULTATTRS

DTD'yi ve öntanımlı öznitelikleri yükler fakat doğrulama yapmaz.

XMLReader::VALIDATE

DTD'yi yükler ve çözümleme sırasında doğrulama yapar.

XMLReader::SUBST_ENTITIES

Öğe ikamelelerini yapar ve gönderimleri genişletir.

İçindekiler

  • XMLReader::close — XMLReader girdisini kapatır
  • XMLReader::expand — Geçerli düğümün bir kopyasını bir DOM nesnesi olarak döndürür
  • XMLReader::getAttribute — İsmi belirtilen özniteliğin değerini döndürür
  • XMLReader::getAttributeNo — İndisi belirtilen özniteliğin değerini döndürür
  • XMLReader::getAttributeNs — İsmi ve isim alanı belirtilen özniteliğin değerini döndürür
  • XMLReader::getParserProperty — Belirtilen özelliğin tanımlı olup olmadığına bakar
  • XMLReader::isValid — Çözümlenen düğümün geçerliliğini sınar
  • XMLReader::lookupNamespace — Bir önek için isim alanına bakar
  • XMLReader::moveToAttribute — İmleci ismi belirtilen özniteliğe konumlar
  • XMLReader::moveToAttributeNo — İmleci indisi belirtilen özniteliğe götürür
  • XMLReader::moveToAttributeNs — İmleci isimli özniteliğe götürür
  • XMLReader::moveToElement — İmleci geçerli özniteliğin ebeveyn elemanına konumlar
  • XMLReader::moveToFirstAttribute — İmleci ilk özniteliğe konumlar
  • XMLReader::moveToNextAttribute — İmleci sonraki özniteliğe konumlar
  • XMLReader::next — Alt ağaçların tümünü atlayıp sonraki düğüme gider
  • XMLReader::open — Çözemlenecek XML belgeyi içeren adresi belirler
  • XMLReader::read — Belgedeki sonraki düğüme gidilir
  • XMLReader::readInnerXml — Geçerli düğümün içeriğini okur
  • XMLReader::readOuterXml — Geçerli düğümün içeriğini düğümün kendisiyle birlikte okur
  • XMLReader::readString — Geçerli düğümün içeriğini bir dizge olarak okur
  • XMLReader::setParserProperty — Çözümleyici seçeneklerini tanımlar
  • XMLReader::setRelaxNGSchema — Belgeyi RelaxNG şemasına göre doğrular
  • XMLReader::setRelaxNGSchemaSource — Belgeyi dizge olarak belirtilen RelaxNG şemasına göre doğrular
  • XMLReader::setSchema — Belgeyi XSD şemasına göre doğrular
  • XMLReader::XML — Çözümlenecek XML belge içeriği belirtilir

User Contributed Notes

eef dot vreeland at gmail dot com 10-Aug-2017 05:43
Please discard my previous note; I pressed 'Add Note' too quickly

About (non-)self-closing tags:

 A) <tag></tag>
    $xmlRdr->isEmptyElement => false
    $xmlRdr->hasValue       => false
    $xmlRdr->value          => ''
    $xmlRdr->hasAttributes  => false

 B) <tag />
    $xmlRdr->isEmptyElement => true
    $xmlRdr->hasValue       => false
    $xmlRdr->value          => ''
    $xmlRdr->hasAttributes  => false

 C) <tag attribute="value"></tag>
    $xmlRdr->isEmptyElement => false
    $xmlRdr->hasValue       => false
    $xmlRdr->value          => ''
    $xmlRdr->hasAttributes  => true

 D) <tag attribute="value" />
    $xmlRdr->isEmptyElement => true
    $xmlRdr->hasValue       => false
    $xmlRdr->value          => ''
    $xmlRdr->hasAttributes  => true

... and always use the '===' operator when testing properties
eef dot vreeland at gmail dot com 10-Aug-2017 05:08
Note that when:

A) <tag></tag>
   $xmlRdr->isEmptyElement => false
   $xmlRdr->hasValue       => true
   $xmlRdr->value          => ''
   $xmlRdr->hasAttributes  => false

B) <tag />
   $xmlRdr->isEmptyElement => true
   $xmlRdr->hasValue       => false
   $xmlRdr->value          => ''
   $xmlRdr->hasAttributes  => false

C) <tag attribute="value"></tag>
   $xmlRdr->isEmptyElement => false
   $xmlRdr->hasValue       => false
   $xmlRdr->value          => ''
   $xmlRdr->hasAttributes  => true

D) <tag attribute="value" />
   $xmlRdr->isEmptyElement => true
   $xmlRdr->hasValue       => false
   $xmlRdr->value          => ''
   $xmlRdr->hasAttributes  => true
Sean Colin Ruiz 08-Jan-2017 03:11
As japos mentioned. Take care how you use isEmptyElement. After you are done looping through the attributes: isEmptyElement will be false.  You can use moveToElement() to move the cursor back to the element and then you can use isEmptyElement like normal again.
dkrnl at yandex dot ru 04-Oct-2013 04:10
Wrapper XMLReader class, for simple SAX-reading huge xml:
https://github.com/dkrnl/SimpleXMLReader

Usage example: http://github.com/dkrnl/SimpleXMLReader/blob/master/examples/example1.php

<?php

/**
 * Simple XML Reader
 *
 * @license Public Domain
 * @author Dmitry Pyatkov(aka dkrnl) <dkrnl@yandex.ru>
 * @url http://github.com/dkrnl/SimpleXMLReader
 */
class SimpleXMLReader extends XMLReader
{

    /**
     * Callbacks
     *
     * @var array
     */
    protected $callback = array();

    /**
     * Add node callback
     *
     * @param  string   $name
     * @param  callback $callback
     * @param  integer  $nodeType
     * @return SimpleXMLReader
     */
    public function registerCallback($name, $callback, $nodeType = XMLREADER::ELEMENT)
    {
        if (isset($this->callback[$nodeType][$name])) {
            throw new Exception("Already exists callback $name($nodeType).");
        }
        if (!is_callable($callback)) {
            throw new Exception("Already exists parser callback $name($nodeType).");
        }
        $this->callback[$nodeType][$name] = $callback;
        return $this;
    }

    /**
     * Remove node callback
     *
     * @param  string  $name
     * @param  integer $nodeType
     * @return SimpleXMLReader
     */
    public function unRegisterCallback($name, $nodeType = XMLREADER::ELEMENT)
    {
        if (!isset($this->callback[$nodeType][$name])) {
            throw new Exception("Unknow parser callback $name($nodeType).");
        }
        unset($this->callback[$nodeType][$name]);
        return $this;
    }

    /**
     * Run parser
     *
     * @return void
     */
    public function parse()
    {
        if (empty($this->callback)) {
            throw new Exception("Empty parser callback.");
        }
        $continue = true;
        while ($continue && $this->read()) {
            if (isset($this->callback[$this->nodeType][$this->name])) {
                $continue = call_user_func($this->callback[$this->nodeType][$this->name], $this);
            }
        }
    }

    /**
     * Run XPath query on current node
     *
     * @param  string $path
     * @param  string $version
     * @param  string $encoding
     * @return array(SimpleXMLElement)
     */
    public function expandXpath($path, $version = "1.0", $encoding = "UTF-8")
    {
        return $this->expandSimpleXml($version, $encoding)->xpath($path);
    }

    /**
     * Expand current node to string
     *
     * @param  string $version
     * @param  string $encoding
     * @return SimpleXMLElement
     */
    public function expandString($version = "1.0", $encoding = "UTF-8")
    {
        return $this->expandSimpleXml($version, $encoding)->asXML();
    }

    /**
     * Expand current node to SimpleXMLElement
     *
     * @param  string $version
     * @param  string $encoding
     * @param  string $className
     * @return SimpleXMLElement
     */
    public function expandSimpleXml($version = "1.0", $encoding = "UTF-8", $className = null)
    {
        $element = $this->expand();
        $document = new DomDocument($version, $encoding);
        $node = $document->importNode($element, true);
        $document->appendChild($node);
        return simplexml_import_dom($node, $className);
    }

    /**
     * Expand current node to DomDocument
     *
     * @param  string $version
     * @param  string $encoding
     * @return DomDocument
     */
    public function expandDomDocument($version = "1.0", $encoding = "UTF-8")
    {
        $element = $this->expand();
        $document = new DomDocument($version, $encoding);
        $node = $document->importNode($element, true);
        $document->appendChild($node);
        return $document;
    }

}
?>
kula_shakerz 03-Apr-2013 02:27
Found this in the IXmlReader docs at msdn but it's also valid for XMLReader in PHP.

You should save the value of $isEmptyElement before processing attributes, or call moveToElement to make $isEmptyElement valid after processing attributes.

$isEmptyElement returns FALSE when XMLReader is positioned on an attribute node, even if attribute's parent element is empty.
casella dot email at google dot mail dot com 22-Sep-2012 03:59
To verify that all nodes are read without error/warning you can use this code:
<?php
$endofxml = false;
$xml_url = "example.xml";
$reader = new XMLReader();
if(!$reader->open($xml_url)){
    print "Error to open XML: $xml_url\n";
} else {
    while ($reader->read()) {
        $firstnode = (!isset($firstnode)) ? $reader->name : $firstnode;
/*
DO SOMETHING
*/
        if ($reader->nodeType == XMLReader::END_ELEMENT && $reader->name == $firstnode) {
            $endofxml = true;
        }
    }
}
if($endofxml) {
    print "no error found";
} else {
    print "error found";
}
?>

This code is useful to trap $reader->read() error/warning.
lee8oi at gmail dot com 21-Mar-2012 01:54
Sometimes you have an unusual URL that doesn't actually point to an xml file but still returns xml as output (Like the Battlefield Heroes generated syndication urls). Using get_file_contents(url) you can retrieve the xml data from these urls and pass it as a variable for processing as an XML String.

Unfortunately simpleXML or xml DOM cannot process all xml strings. Some have error boxes added to the end of them (such as Battlefield Heroes syndicated news). These boxes cause an end of file sort of error and closes out the script. XMLReader grabs data from these strings without error.
japos dot trash at googlemail dot com 09-Oct-2010 02:17
Take care about how to use XMLReader::$isElementEmpty. I don't know if it is a bug or not, but $isElementEmpty is set for the current context and NOT just for the element. If you move your cursor to an attribute, $isElementEmpty will ALWAYS be false.

<?php
 $xml = new XMLReader();
 $xml->XML('<tag attr="value" />');
 $xml->read();
 var_dump($xml->isEmptyElement);
 $xml->moveToNextAttribute();
 var_dump($xml->isEmptyElement);
?>

will output

(bool) true
(bool) false

So be sure to store $isEmptyElement before moving the cursor.
jart (at) mail.ru 23-Sep-2010 06:59
Guys, I hope this example will help
you can erase prints showing the process-
and it will be a piece of nice code.

<?php
function xml2assoc($xml, $name)
{
    print "<ul>";

    $tree = null;
    print("I'm inside " . $name . "<br>");

    while($xml->read())
    {
        if($xml->nodeType == XMLReader::END_ELEMENT)
        {
            print "</ul>";
            return $tree;
        }

        else if($xml->nodeType == XMLReader::ELEMENT)
        {
            $node = array();

            print("Adding " . $xml->name ."<br>");
            $node['tag'] = $xml->name;

            if($xml->hasAttributes)
            {
                $attributes = array();
                while($xml->moveToNextAttribute())
                {
                    print("Adding attr " . $xml->name ." = " . $xml->value . "<br>");
                    $attributes[$xml->name] = $xml->value;
                }
                $node['attr'] = $attributes;
            }

            if(!$xml->isEmptyElement)
            {
                $childs = xml2assoc($xml, $node['tag']);
                $node['childs'] = $childs;
            }

            print($node['tag'] . " added <br>");
            $tree[] = $node;
        }

        else if($xml->nodeType == XMLReader::TEXT)
        {
            $node = array();
            $node['text'] = $xml->value;
            $tree[] = $node;
            print "text added = " . $node['text'] . "<br>";
        }
    }

    print "returning " . count($tree) . " childs<br>";
    print "</ul>";

    return $tree;
}

echo "<PRE>";

$xml = new XMLReader();
$xml->open('test.xml');
$assoc = xml2assoc($xml, "root");
$xml->close();

print_r($assoc);
echo "</PRE>";

?>

It reads this xml:

<test>
    <hallo volume="loud"> me <br/> lala </hallo>
    <hallo> me </hallo>
</test>
james dot ellis at example dot com 25-Mar-2009 03:16
The "XML2Assoc" functions noted here should be used with caution... basically they are duplicating the functionality already present in SimpleXML. They may work but they won't scale.

Their are two main uses cases for parsing XML, each suited to either XMLReader or SimpleXML.

1. SimpleXML is an excellent tool for easy access to an XML document tree using native PHP data types. It starts to flounder with massive (> 50M or so) XML documents, as it reads the entire document into memory before it can be processed. SimpleXML will just laugh at you then die when your server runs out of memory (or it will cause a load spike).

2. Aside from the reasoning behind massive XML documents, if you have to deal with massive XML documents, use XMLReader to process them. Don't try and gather an entire XML document into a PHP data structure using XMLReader and a PHP xml2assoc() function, you are reinventing the SimpleXML wheel.
When parsing massive XML documents using XMLReader, gather the data you need to perform an operation then perform it before skipping to the next node. Do not build massive data structures from a massive XML document, your server (and it's admins) will not like you.
PxL 23-Jan-2009 03:36
A basic parser

<?php
function xml2assoc($xml) {
    $arr = array();
    if (!preg_match_all('|\<\s*?(\w+).*?\>(.*)\<\/\s*\\1.*?\>|s', $xml, $m)) return $xml;
    if (is_array($m[1]))
        for ($i = 0;$i < sizeof($m[1]); $i++) $arr[$m[1][$i]] = xml2assoc($m[2][$i]);
    else $arr[$m[1]] = xml2assoc($m[2]);

    return $arr;
}
?>
boukeversteegh at gmail dot com 18-Jan-2009 02:06
XML to ASSOCIATIVE ARRAY

Improved algorithm based on Sergey Aikinkulov's. The problem was that it would overwrite nodes if they had the same tag name. Because of that <a><b/><b/><a> would be read as if <a><b/><a/>. This algorithm handles it better and outputs an easy to understand array:

<?php
function xml2assoc($xml) {
    $tree = null;
    while($xml->read())
        switch ($xml->nodeType) {
            case XMLReader::END_ELEMENT: return $tree;
            case XMLReader::ELEMENT:
                $node = array('tag' => $xml->name, 'value' => $xml->isEmptyElement ? '' : xml2assoc($xml));
                if($xml->hasAttributes)
                    while($xml->moveToNextAttribute())
                        $node['attributes'][$xml->name] = $xml->value;
                $tree[] = $node;
            break;
            case XMLReader::TEXT:
            case XMLReader::CDATA:
                $tree .= $xml->value;
        }
    return $tree;
}

?>

Usage:

myxml.xml:
------
<PERSON>
    <NAME>John</NAME>
    <PHONE type="home">555-555-555</PHONE>
</PERSON>
----

<?
    $xml = new XMLReader();
    $xml->open('myxml.xml');
    $assoc = xml2assoc($xml);
    $xml->close();
    print_r($assoc);
?>

Outputs:
Array
(
    [0] => Array
        (
            [tag] => PERSON
            [value] => Array
                (
                    [0] => Array
                        (
                            [tag] => NAME
                            [value] => John
                        )

                    [1] => Array
                        (
                            [tag] => PHONE
                            [value] => 555-555-555
                            [attributes] => Array
                                (
                                    [type] => home
                                )

                        )

                )

        )

)

For reasons that have to do with recursion, it returns an array with the ROOT xml node as the first childNode, rather than to return only the ROOT node.
andrei_antal at yahoo dot com 08-Jan-2009 08:25
<?php
//Pull certain elements
 $reader = new XMLReader();
  $reader->open($xmlfile);
while ($reader->read()) {
 switch ($reader->nodeType) {
   case (XMLREADER::ELEMENT):

if ($reader->name == "Code")
     {
       $reader->read();
       $code = trim($reader->value);
       echo "$code\n";
       break;
     }

 if ($reader->name == "Name")
     {
       $reader->read();
       $customername = trim( $reader->value );
       echo "$name\n";
       break;
     }

 if ($reader->name == "Camp")
    {
      $camp = trim($reader->getAttribute("ID"));
       echo "$camp\n";
      break;
    }
  }
}
?>
godseth at o2 dot pl 28-Nov-2008 02:34
Thanks rein_baarsma33 AT hotmail DOT com for bugfixes.

This is my new child of XML parsing method  based on my and yours modification.

XML2ASSOC Is a complete solution for parsing ordinary XML

<?php
/**
 * XML2Assoc Class to creating
 * PHP Assoc Array from XML File
 *
 * @author godseth (AT) o2.pl & rein_baarsma33 (AT) hotmail.com (Bugfixes in parseXml Method)
 * @uses XMLReader
 *
 */

class Xml2Assoc {

    /**
     * Optimization Enabled / Disabled
     *
     * @var bool
     */
    protected $bOptimize = false;

    /**
     * Method for loading XML Data from String
     *
     * @param string $sXml
     * @param bool $bOptimize
     */

    public function parseString( $sXml , $bOptimize = false) {
        $oXml = new XMLReader();
        $this -> bOptimize = (bool) $bOptimize;
        try {

            // Set String Containing XML data
            $oXml->XML($sXml);

            // Parse Xml and return result
            return $this->parseXml($oXml);

        } catch (Exception $e) {
            echo $e->getMessage();
        }
    }

    /**
     * Method for loading Xml Data from file
     *
     * @param string $sXmlFilePath
     * @param bool $bOptimize
     */
    public function parseFile( $sXmlFilePath , $bOptimize = false ) {
        $oXml = new XMLReader();
        $this -> bOptimize = (bool) $bOptimize;
        try {
            // Open XML file
            $oXml->open($sXmlFilePath);

            // // Parse Xml and return result
            return $this->parseXml($oXml);

        } catch (Exception $e) {
            echo $e->getMessage(). ' | Try open file: '.$sXmlFilePath;
        }
    }

    /**
     * XML Parser
     *
     * @param XMLReader $oXml
     * @return array
     */
    protected function parseXml( XMLReader $oXml ) {

        $aAssocXML = null;
        $iDc = -1;

        while($oXml->read()){
            switch ($oXml->nodeType) {

                case XMLReader::END_ELEMENT:

                    if ($this->bOptimize) {
                        $this->optXml($aAssocXML);
                    }
                    return $aAssocXML;

                case XMLReader::ELEMENT:

                    if(!isset($aAssocXML[$oXml->name])) {
                        if($oXml->hasAttributes) {
                            $aAssocXML[$oXml->name][] = $oXml->isEmptyElement ? '' : $this->parseXML($oXml);
                        } else {
                            if($oXml->isEmptyElement) {
                                $aAssocXML[$oXml->name] = '';
                            } else {
                                $aAssocXML[$oXml->name] = $this->parseXML($oXml);
                            }
                        }
                    } elseif (is_array($aAssocXML[$oXml->name])) {
                        if (!isset($aAssocXML[$oXml->name][0]))
                        {
                            $temp = $aAssocXML[$oXml->name];
                            foreach ($temp as $sKey=>$sValue)
                            unset($aAssocXML[$oXml->name][$sKey]);
                            $aAssocXML[$oXml->name][] = $temp;
                        }

                        if($oXml->hasAttributes) {
                            $aAssocXML[$oXml->name][] = $oXml->isEmptyElement ? '' : $this->parseXML($oXml);
                        } else {
                            if($oXml->isEmptyElement) {
                                $aAssocXML[$oXml->name][] = '';
                            } else {
                                $aAssocXML[$oXml->name][] = $this->parseXML($oXml);
                            }
                        }
                    } else {
                        $mOldVar = $aAssocXML[$oXml->name];
                        $aAssocXML[$oXml->name] = array($mOldVar);
                        if($oXml->hasAttributes) {
                            $aAssocXML[$oXml->name][] = $oXml->isEmptyElement ? '' : $this->parseXML($oXml);
                        } else {
                            if($oXml->isEmptyElement) {
                                $aAssocXML[$oXml->name][] = '';
                            } else {
                                $aAssocXML[$oXml->name][] = $this->parseXML($oXml);
                            }
                        }
                    }

                    if($oXml->hasAttributes) {
                        $mElement =& $aAssocXML[$oXml->name][count($aAssocXML[$oXml->name]) - 1];
                        while($oXml->moveToNextAttribute()) {
                            $mElement[$oXml->name] = $oXml->value;
                        }
                    }
                    break;
                case XMLReader::TEXT:
                case XMLReader::CDATA:

                    $aAssocXML[++$iDc] = $oXml->value;

            }
        }

        return $aAssocXML;
    }

    /**
     * Method to optimize assoc tree.
     * ( Deleting 0 index when element
     *  have one attribute / value )
     *
     * @param array $mData
     */
    public function optXml(&$mData) {
        if (is_array($mData)) {
            if (isset($mData[0]) && count($mData) == 1 ) {
                $mData = $mData[0];
                if (is_array($mData)) {
                    foreach ($mData as &$aSub) {
                        $this->optXml($aSub);
                    }
                }
            } else {
                foreach ($mData as &$aSub) {
                    $this->optXml($aSub);
                }
            }
        }
    }

}

?>

[EDIT BY danbrown AT php DOT net:  Fixes were also provided by "Alex" and (qdog AT qview DOT org) in user notes on this page (since removed).]
Sergey Aikinkulov 19-Jun-2008 03:51
Next version xml2assoc with some improve fixes:
 - no doubled data
 - no buffer arrays

<?php
/*
    Read XML structure to associative array
    --
    Using:
    $xml = new XMLReader();
    $xml->open([XML file]);
    $assoc = xml2assoc($xml);
    $xml->close();
*/
    function xml2assoc($xml) {
      $assoc = null;
      while($xml->read()){
        switch ($xml->nodeType) {
          case XMLReader::END_ELEMENT: return $assoc;
          case XMLReader::ELEMENT:
            $assoc[$xml->name][] = array('value' => $xml->isEmptyElement ? '' : xml2assoc($xml));
            if($xml->hasAttributes){
              $el =& $assoc[$xml->name][count($assoc[$xml->name]) - 1];
              while($xml->moveToNextAttribute()) $el['attributes'][$xml->name] = $xml->value;
            }
            break;
          case XMLReader::TEXT:
          case XMLReader::CDATA: $assoc .= $xml->value;
        }
      }
      return $assoc;
    }
?>
desk_ocean at msn dot com 16-Mar-2008 10:03
make some modify from Sergey Aikinkulov's note

<?php
function xml2assoc(&$xml){
    $assoc = NULL;
    $n = 0;
    while($xml->read()){
        if($xml->nodeType == XMLReader::END_ELEMENT) break;
        if($xml->nodeType == XMLReader::ELEMENT and !$xml->isEmptyElement){
            $assoc[$n]['name'] = $xml->name;
            if($xml->hasAttributes) while($xml->moveToNextAttribute()) $assoc[$n]['atr'][$xml->name] = $xml->value;
            $assoc[$n]['val'] = xml2assoc($xml);
            $n++;
        }
        else if($xml->isEmptyElement){
            $assoc[$n]['name'] = $xml->name;
            if($xml->hasAttributes) while($xml->moveToNextAttribute()) $assoc[$n]['atr'][$xml->name] = $xml->value;
            $assoc[$n]['val'] = "";
            $n++;
        }
        else if($xml->nodeType == XMLReader::TEXT) $assoc = $xml->value;
    }
    return $assoc;
}
?>

add else if($xml->isEmptyElement)
may be some xml has emptyelement
itari 15-Feb-2008 08:30
<?php
function parseXML($node,$seq,$path) {
global $oldpath;
    if (!$node->read())
      return;
    if ($node->nodeType != 15) {
      print '<br/>'.$node->depth;
      print '-'.$seq++;
      print '  '.$path.'/'.($node->nodeType==3?'text() = ':$node->name);
      print $node->value;
      if ($node->hasAttributes) {
        print ' [hasAttributes: ';
        while ($node->moveToNextAttribute()) print '@'.$node->name.' = '.$node->value.' ';
        print ']';
        }
      if ($node->nodeType == 1) {
        $oldpath=$path;
        $path.='/'.$node->name;
        }
      parseXML($node,$seq,$path);
      }
    else parseXML($node,$seq,$oldpath);
}

$source = "<tag1>this<tag2 id='4' name='foo'>is</tag2>a<tag2 id='5'>common</tag2>record</tag1>";
$xml = new XMLReader();
$xml->XML($source);
print htmlspecialchars($source).'<br/>';
parseXML($xml,0,'');
?>

Output:

<tag1>this<tag2 id='4' name='foo'>is</tag2>a<tag2 id='5'>common</tag2>record</tag1>

0-0 /tag1
1-1 /tag1/text() = this
1-2 /tag1/tag2 [hasAttributes: @id = 4 @name = foo ]
2-3 /tag1/text() = is
1-4 /text() = a
1-5 /tag2 [hasAttributes: @id = 5 ]
2-6 /text() = common
1-7 /text() = record


XMLReader girdisini kapatır

  • « XMLReader
  • XMLReader::expand »
  • PHP Manual
  • XMLReader
  • XMLReader girdisini kapatır

XMLReader::close

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::close — XMLReader girdisini kapatır

Açıklama

public XMLReader::close(): true

Çözümlenmekte olan XMLReader nesnesini kapatır.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

Daima true döndürür.

Ayrıca Bakınız

  • XMLReader::open() - Çözemlenecek XML belgeyi içeren adresi belirler
  • XMLReader::xml() - Çözümlenecek XML belge içeriği belirtilir

User Contributed Notes

There are no user contributed notes for this page.


Geçerli düğümün bir kopyasını bir DOM nesnesi olarak döndürür

  • « XMLReader::close
  • XMLReader::getAttribute »
  • PHP Manual
  • XMLReader
  • Geçerli düğümün bir kopyasını bir DOM nesnesi olarak döndürür

XMLReader::expand

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::expand — Geçerli düğümün bir kopyasını bir DOM nesnesi olarak döndürür

Açıklama

public XMLReader::expand(?DOMNode $düğüm = null): DOMNode|false

Geçerli düğümü kopyalar ve kopyayı bir DOM nesnesi olarak döndürür.

Bağımsız Değişkenler

düğüm

Oluşturulan DOM nesnesi için hedef DOMDocument nesnesini tanımlayan DOMNode nesnesi.

Dönen Değerler

Hata durumunda false, aksi takdirde elde edilen DOMNode nesnesi döner.

User Contributed Notes

Sbastien 02-Jan-2022 01:29
XMLReader::expand() expands the current subtree to DOM. SimpleXML is good too. To avoid a warning like "Imported Node must have associated Document" when using simplexml_import_dom(), we can do :

<?php

// Huge XML compressed file
$xml = XMLReader::open('compress.zlib:///path/to/my-data.xml.gz');

// Targeting a tiny subtree
while ($xml->name !== 'my-targeted-element') {
    $xml->read();
}

// The trick is here...
// Subtree is expanded in an empty document...
$dom = $xml->expand(new DOMDocument());

// ... which can be imported by SimpleXML
$sx = simplexml_import_dom($dom);

// We can now process our tiny subtree with SimpleXML $sx


İsmi belirtilen özniteliğin değerini döndürür

  • « XMLReader::expand
  • XMLReader::getAttributeNo »
  • PHP Manual
  • XMLReader
  • İsmi belirtilen özniteliğin değerini döndürür

XMLReader::getAttribute

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::getAttribute — İsmi belirtilen özniteliğin değerini döndürür

Açıklama

public XMLReader::getAttribute(string $isim): ?string

İsmi belirtilen özniteliğin değerini döndürür. Öznitelik yoksa veya eleman düğümünde özniteliğe konumlanamıyorsa null döner.

Bağımsız Değişkenler

isim

Özniteliğin ismi.

Dönen Değerler

İsmi belirtilen özniteliğin değerini bir dizge olarak döndürür. Öznitelik yoksa veya eleman düğümünde özniteliğe konumlanamıyorsa null döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | Bu işlev artık false döndürmüyor.

Ayrıca Bakınız

  • XMLReader::getAttributeNo() - İndisi belirtilen özniteliğin değerini döndürür
  • XMLReader::getAttributeNs() - İsmi ve isim alanı belirtilen özniteliğin değerini döndürür

User Contributed Notes

sven at e7o dot de 08-Nov-2023 02:44
To get all attributes and their names, use something like this:

<?php
function getAttributes($reader)
{
    $attributes = [];
    for ($i = 0; $i < $reader->attributeCount; $i++) {
        $reader->moveToAttributeNo($i);
        $attributes[$reader->name] = $reader->value;
    }
    return $attributes;
}
?>
Anonymous 16-Feb-2011 09:02
Or use XMLReader::ELEMENT and XMLReader::END_ELEMENT rather than the numbers 1 and 15.
Gabi 02-Jul-2007 08:15
might be obvious, but not to everyone ;-) ... when reading attributes from a node that has sub-nodes (and creating an output from this node), the output will be issued twice, once on the <ELEMENT> tag and once on the end tag </ELEMENT>. To avoid this, you can test on which part of the node you are using the property nodeType.
It'll be 1 for the element, 15 for the end element.


İndisi belirtilen özniteliğin değerini döndürür

  • « XMLReader::getAttribute
  • XMLReader::getAttributeNs »
  • PHP Manual
  • XMLReader
  • İndisi belirtilen özniteliğin değerini döndürür

XMLReader::getAttributeNo

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::getAttributeNo — İndisi belirtilen özniteliğin değerini döndürür

Açıklama

public XMLReader::getAttributeNo(int $indis): ?string

İndisi belirtilen özniteliğin değerini döndürür. Öznitelik yoksa veya eleman düğümünde özniteliğe konumlanamıyorsa null döner.

Bağımsız Değişkenler

indis

Özniteliğin konumu.

Dönen Değerler

İndisi belirtilen özniteliğin değerini bir dizge olarak döndürür. Öznitelik yoksa veya eleman düğümünde özniteliğe konumlanamıyorsa null döner.

Ayrıca Bakınız

  • XMLReader::getAttribute() - İsmi belirtilen özniteliğin değerini döndürür
  • XMLReader::getAttributeNs() - İsmi ve isim alanı belirtilen özniteliğin değerini döndürür

User Contributed Notes

There are no user contributed notes for this page.


İsmi ve isim alanı belirtilen özniteliğin değerini döndürür

  • « XMLReader::getAttributeNo
  • XMLReader::getParserProperty »
  • PHP Manual
  • XMLReader
  • İsmi ve isim alanı belirtilen özniteliğin değerini döndürür

XMLReader::getAttributeNs

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::getAttributeNs — İsmi ve isim alanı belirtilen özniteliğin değerini döndürür

Açıklama

public XMLReader::getAttributeNs(string $isim, string $isimalanı): ?string

İsmi ve isim alanı belirtilen özniteliğin değerini döndürür. Öznitelik yoksa veya eleman düğümünde özniteliğe konumlanamıyorsa null döner.

Bağımsız Değişkenler

isim

Özniteliğin yerel ismi.

isimalanı

İsim alanını betimleyen adres.

Dönen Değerler

İsmi ve isim alanı belirtilen özniteliğin değerini bir dizge olarak döndürür. Öznitelik yoksa veya eleman düğümünde özniteliğe konumlanamıyorsa null döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | Bu işlev artık false döndürmüyor.

Ayrıca Bakınız

  • XMLReader::getAttribute() - İsmi belirtilen özniteliğin değerini döndürür
  • XMLReader::getAttributeNo() - İndisi belirtilen özniteliğin değerini döndürür

User Contributed Notes

There are no user contributed notes for this page.


Belirtilen özelliğin tanımlı olup olmadığına bakar

  • « XMLReader::getAttributeNs
  • XMLReader::isValid »
  • PHP Manual
  • XMLReader
  • Belirtilen özelliğin tanımlı olup olmadığına bakar

XMLReader::getParserProperty

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::getParserProperty — Belirtilen özelliğin tanımlı olup olmadığına bakar

Açıklama

public XMLReader::getParserProperty(int $özellik): bool

Belirtilen özelliğin tanımlı olup olmadığına bakar.

Bağımsız Değişkenler

özellik

Çözümleyici seçeneği sabitlerinden biri.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Ayrıca Bakınız

  • XMLReader::setParserProperty() - Çözümleyici seçeneklerini tanımlar

User Contributed Notes

There are no user contributed notes for this page.


Çözümlenen düğümün geçerliliğini sınar

  • « XMLReader::getParserProperty
  • XMLReader::lookupNamespace »
  • PHP Manual
  • XMLReader
  • Çözümlenen düğümün geçerliliğini sınar

XMLReader::isValid

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::isValid — Çözümlenen düğümün geçerliliğini sınar

Açıklama

public XMLReader::isValid(): bool

Çözümlenen düğüm geçerli ise true döner.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Örnekler

Örnek 1 - XML belgenin doğrulanması

<?php
$xml = XMLReader::open('test.xml');

// Doğrulamanın gerekliliğini belirt
$xml->setParserProperty(XMLReader::VALIDATE, true);

var_dump($xml->isValid());
?>

Notlar

Bilginize: Belgenin tamamını değil, sadece geçerli düğümü sınar.

Ayrıca Bakınız

  • XMLReader::setParserProperty() - Çözümleyici seçeneklerini tanımlar
  • XMLReader::setRelaxNGSchema() - Belgeyi RelaxNG şemasına göre doğrular
  • XMLReader::setRelaxNGSchemaSource() - Belgeyi dizge olarak belirtilen RelaxNG şemasına göre doğrular
  • XMLReader::setSchema() - Belgeyi XSD şemasına göre doğrular

User Contributed Notes

me at lubu dot ch 31-May-2022 09:54
Be aware that $xml->isValid() will return validity only for currently active node, so you have to loop trough the nodes.

Here is a example how to validate a entire XML file against a XSD schema:

<?php

$xmlReader = new \XMLReader();
$xmlReader->open('./example.xml');
$xmlReader->setParserProperty(\XMLReader::VALIDATE, true);
$xmlReader->setSchema('./schema.xsd');

\libxml_use_internal_errors(true);

$msgs = [];

while ($xmlReader->read()) {
    if (!$xmlReader->isValid()) {
        $err = \libxml_get_last_error();
        if ($err && $err instanceof \libXMLError) {
            $msgs[] = \trim($err->message) . ' on line ' . $err->line;
        }
    }
}

if ($msgs) {
    throw new \Exception("XML schema validation errors:\n - " . implode("\n - ", array_unique($msgs)));
}
?>
zubin at trattonuovo dot com 20-Jan-2010 03:00
I encountered some problems to use isValid method with xml2assoc function.
I use this way to validate the entire xml file and put it into an associative array.

$xml = new XMLReader();
if (!$xml->xml($xml_string, NULL, LIBXML_DTDVALID)) {
  echo "XML not valid: load error";
  exit();
}

libxml_use_internal_errors(TRUE);

$xml_array = xml2assoc($xml);

$arErrors = libxml_get_errors();
$xml_errors = "";
foreach ($arErrors AS $xmlError) $xml_errors .= $xmlError->message;
if ($xml_errors != "") {
  echo "XML not valid: ".$xml_errors;
  exit();
}

//all ok
remy dot damour at laposte dot net 31-Dec-2008 03:27
1. If you validate against relax-ng, no need to call $xml->setParserProperty(XMLReader::VALIDATE, true);

2. Be aware that $xml->isValid() will return validity for currently active node (ie. node currently positioned using $xml->read()). It won't check validity of your entire tree at once, but rather on a step by step basis
anzenews at volja dot net 22-Jan-2008 10:50
This comment is only partially correct:
"isValid() always returns false unless you enable checking for validity by $reader->setParserProperty(XMLReader::VALIDATE, true);"
This enables DTD checking, but you can also check by using RelaxNG (see setRelaxNGSchema() and setRelaxNGSchemaSource()).

And also, this is NOT correct:
"If you just need to check if XML file is well formed, successful loading into XMLReader object is usually enough."
It is not enough. Pull parsers operate on stream and if you have a large enough file they will not know it is well formed until it is read to the end. If you need to know if it is well formed or/and valid, read it till the end or validation error (you can use next() for fast reading if you don't care about contents).


Bir önek için isim alanına bakar

  • « XMLReader::isValid
  • XMLReader::moveToAttribute »
  • PHP Manual
  • XMLReader
  • Bir önek için isim alanına bakar

XMLReader::lookupNamespace

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::lookupNamespace — Bir önek için isim alanına bakar

Açıklama

public XMLReader::lookupNamespace(string $önek): ?string

Belirtilen önek için isim alanına bakar.

Bağımsız Değişkenler

önek

Önek olarak kullanılan dizge.

Dönen Değerler

İsimalanının değerini döndürür, böyle bir isimalanı yoksa null döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | Bu işlev artık false döndürmüyor.

User Contributed Notes

There are no user contributed notes for this page.


İmleci ismi belirtilen özniteliğe konumlar

  • « XMLReader::lookupNamespace
  • XMLReader::moveToAttributeNo »
  • PHP Manual
  • XMLReader
  • İmleci ismi belirtilen özniteliğe konumlar

XMLReader::moveToAttribute

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::moveToAttribute — İmleci ismi belirtilen özniteliğe konumlar

Açıklama

public XMLReader::moveToAttribute(string $isim): bool

İmleci ismi belirtilen özniteliğe konumlar.

Bağımsız Değişkenler

isim

Özniteliğin ismi.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Ayrıca Bakınız

  • XMLReader::moveToElement() - İmleci geçerli özniteliğin ebeveyn elemanına konumlar
  • XMLReader::moveToAttributeNo() - İmleci indisi belirtilen özniteliğe götürür
  • XMLReader::moveToAttributeNs() - İmleci isimli özniteliğe götürür
  • XMLReader::moveToFirstAttribute() - İmleci ilk özniteliğe konumlar

User Contributed Notes

There are no user contributed notes for this page.


İmleci indisi belirtilen özniteliğe götürür

  • « XMLReader::moveToAttribute
  • XMLReader::moveToAttributeNs »
  • PHP Manual
  • XMLReader
  • İmleci indisi belirtilen özniteliğe götürür

XMLReader::moveToAttributeNo

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::moveToAttributeNo — İmleci indisi belirtilen özniteliğe götürür

Açıklama

public XMLReader::moveToAttributeNo(int $indis): bool

İmleci, konumuna göre öznitelik üzerine konumlandırır.

Bağımsız Değişkenler

indis

Özniteliğin konumu.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Ayrıca Bakınız

  • XMLReader::moveToElement() - İmleci geçerli özniteliğin ebeveyn elemanına konumlar
  • XMLReader::moveToAttribute() - İmleci ismi belirtilen özniteliğe konumlar
  • XMLReader::moveToAttributeNs() - İmleci isimli özniteliğe götürür
  • XMLReader::moveToFirstAttribute() - İmleci ilk özniteliğe konumlar

User Contributed Notes

There are no user contributed notes for this page.


İmleci isimli özniteliğe götürür

  • « XMLReader::moveToAttributeNo
  • XMLReader::moveToElement »
  • PHP Manual
  • XMLReader
  • İmleci isimli özniteliğe götürür

XMLReader::moveToAttributeNs

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::moveToAttributeNs — İmleci isimli özniteliğe götürür

Açıklama

public XMLReader::moveToAttributeNs(string $isim, string $isim_alanı): bool

Positions cursor on the named attribute in specified namespace.

Bağımsız Değişkenler

isim

Yerel ad.

isim_alanı

İsim alanı için URI.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Ayrıca Bakınız

  • XMLReader::moveToElement() - İmleci geçerli özniteliğin ebeveyn elemanına konumlar
  • XMLReader::moveToAttribute() - İmleci ismi belirtilen özniteliğe konumlar
  • XMLReader::moveToAttributeNo() - İmleci indisi belirtilen özniteliğe götürür
  • XMLReader::moveToFirstAttribute() - İmleci ilk özniteliğe konumlar

User Contributed Notes

There are no user contributed notes for this page.


İmleci geçerli özniteliğin ebeveyn elemanına konumlar

  • « XMLReader::moveToAttributeNs
  • XMLReader::moveToFirstAttribute »
  • PHP Manual
  • XMLReader
  • İmleci geçerli özniteliğin ebeveyn elemanına konumlar

XMLReader::moveToElement

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::moveToElement — İmleci geçerli özniteliğin ebeveyn elemanına konumlar

Açıklama

public XMLReader::moveToElement(): bool

İmleci geçerli özniteliğin ebeveyn elemanına konumlar.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

İmleç bir özniteliğin üzerinde değilse veya işlem başarısız olursa false, yoksa true döner.

Ayrıca Bakınız

  • XMLReader::moveToAttribute() - İmleci ismi belirtilen özniteliğe konumlar
  • XMLReader::moveToAttributeNo() - İmleci indisi belirtilen özniteliğe götürür
  • XMLReader::moveToAttributeNs() - İmleci isimli özniteliğe götürür
  • XMLReader::moveToFirstAttribute() - İmleci ilk özniteliğe konumlar

User Contributed Notes

Sean Colin Ruiz 08-Jan-2017 08:54
On an element like this: <self_closing attribute="1" /> isEmptyElement will return FALSE after you have iterated through the attributes.  So you need to use implicitly call moveToElement(), in order to move the cursor back to the parent element and use isEmptyElement again.


İmleci ilk özniteliğe konumlar

  • « XMLReader::moveToElement
  • XMLReader::moveToNextAttribute »
  • PHP Manual
  • XMLReader
  • İmleci ilk özniteliğe konumlar

XMLReader::moveToFirstAttribute

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::moveToFirstAttribute — İmleci ilk özniteliğe konumlar

Açıklama

public XMLReader::moveToFirstAttribute(): bool

İmleci ilk özniteliğe konumlar.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Ayrıca Bakınız

  • XMLReader::moveToElement() - İmleci geçerli özniteliğin ebeveyn elemanına konumlar
  • XMLReader::moveToAttribute() - İmleci ismi belirtilen özniteliğe konumlar
  • XMLReader::moveToAttributeNo() - İmleci indisi belirtilen özniteliğe götürür
  • XMLReader::moveToAttributeNs() - İmleci isimli özniteliğe götürür
  • XMLReader::moveToNextAttribute() - İmleci sonraki özniteliğe konumlar

User Contributed Notes

There are no user contributed notes for this page.


İmleci sonraki özniteliğe konumlar

  • « XMLReader::moveToFirstAttribute
  • XMLReader::next »
  • PHP Manual
  • XMLReader
  • İmleci sonraki özniteliğe konumlar

XMLReader::moveToNextAttribute

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::moveToNextAttribute — İmleci sonraki özniteliğe konumlar

Açıklama

public XMLReader::moveToNextAttribute(): bool

İmleç bir özniteliğin üzerindeyse bir sonraki özniteliğe geçer, elemanın üzerindeyse elemanın ilk özniteliğine gider.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Ayrıca Bakınız

  • XMLReader::moveToElement() - İmleci geçerli özniteliğin ebeveyn elemanına konumlar
  • XMLReader::moveToAttribute() - İmleci ismi belirtilen özniteliğe konumlar
  • XMLReader::moveToAttributeNo() - İmleci indisi belirtilen özniteliğe götürür
  • XMLReader::moveToAttributeNs() - İmleci isimli özniteliğe götürür
  • XMLReader::moveToFirstAttribute() - İmleci ilk özniteliğe konumlar

User Contributed Notes

There are no user contributed notes for this page.


Alt ağaçların tümünü atlayıp sonraki düğüme gider

  • « XMLReader::moveToNextAttribute
  • XMLReader::open »
  • PHP Manual
  • XMLReader
  • Alt ağaçların tümünü atlayıp sonraki düğüme gider

XMLReader::next

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::next — Alt ağaçların tümünü atlayıp sonraki düğüme gider

Açıklama

public XMLReader::next(?string $isim = null): bool

Alt ağaçların tümünü atlayıp imleci sonraki düğüme konumlandırır. Böyle bir düğüm yoksa imleç belge sonuna gider.

Bağımsız Değişkenler

isim

Gidilecek sonraki düğümün yerel ismi.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | isim artık null olabiliyor.

Ayrıca Bakınız

  • XMLReader::moveToNextAttribute() - İmleci sonraki özniteliğe konumlar
  • XMLReader::moveToAttribute() - İmleci ismi belirtilen özniteliğe konumlar
  • XMLReader::moveToElement() - İmleci geçerli özniteliğin ebeveyn elemanına konumlar

User Contributed Notes

Quiet Noise 13-Apr-2019 01:39
next() without parameters will bring you to the next sibling node on the same depth as the depth where the current cursor is.
Examples:
1. If you are on an opening ELEMENT node next() will bring you to the new line node next to the closing tag of that element (i.e. if you have each tag in separate line) or it will bring you to the opening tag of next node on the same depth.
2. If you are on a TEXT node next() will bring you to the opening tag if there is one next to it.

If there are no more nodes on the given depth next() will bring you to the closing tag (END_ELEMENT) of the wrapping parent.
ppp dot BOTSNEEDNOTAPPLY at salesfloor dot net 08-Sep-2015 09:48
This method appears to follow these rules:

 - if $localName names a sibling node, the cursor is moved to that node;
 - if $localName names an ancestor node, the cursor is moved to the end of that node;
 - if $localName names a node that is a sibling of any of the current node's ancestors, the cursor is moved to that node;
 - otherwise the cursor is moved outside the document.

Note especially that this method never moves the cursor to child nodes.

For example, given this XML document

<?xml version="1.0" encoding="UTF-8"?>
<root id="root" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <aaa id="1">
    <bbb id="1.1"></bbb>
    <bbb id="1.2"></bbb>
  </aaa>
  <ccc id="2" />
  <aaa id="3">
    <ddd id="3.1">
      <aaa id="3.1.1"></aaa>
    </ddd>
    <aaa id="3.2"></aaa>
  </aaa>
  <aaa id="4">
    <eee id="4.1"></eee>
  </aaa>
</root>

going from <root id="root"> to "bbb" places the cursor outside the document;
going from <aaa id="1"> to "bbb" places the cursor outside the document;
going from <aaa id="1"> to "aaa" places the cursor on <aaa id="3">;
going from <bbb id="1.1"> to "bbb" places the cursor on <bbb id="1.2">;
going from <bbb id="1.2"> to "bbb" places the cursor outside the document;
going from <bbb id="1.1"> to "ddd" places the cursor outside the document;
going from <bbb id="1.1"> to "aaa" places the cursor on </aaa>;
going from <bbb id="1.1"> to "ccc" places the cursor on <ccc id="2">;
going from <bbb id="1.1"> to "nonsuch" places the cursor outside the document;
going from <bbb id="1.1"> to "root" places the cursor on </root>;
going from <ddd id="3.1"> to "aaa" places the cursor on <aaa id="3.2">;
going from <ddd id="3.1"> to "eee" places the cursor outside the document;

Try it yourself:

<?php

$document = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<root id="root" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <aaa id="1">
    <bbb id="1.1"></bbb>
    <bbb id="1.2"></bbb>
  </aaa>
  <ccc id="2" />
  <aaa id="3">
    <ddd id="3.1">
      <aaa id="3.1.1"></aaa>
    </ddd>
    <aaa id="3.2"></aaa>
  </aaa>
  <aaa id="4">
    <eee id="4.1"></eee>
  </aaa>
</root>
XML;

$filename = "/tmp/xmlreader.php.xml";
file_put_contents($filename, $document);

echo "given this XML document\n\n$document\n\n";

showNext("root", "bbb");
showNext("1", "bbb");
showNext("1", "aaa");
showNext("1.1", "bbb");
showNext("1.2", "bbb");
showNext("1.1", "ddd");
showNext("1.1", "aaa");
showNext("1.1", "ccc");
showNext("1.1", "nonsuch");
showNext("1.1", "root");
showNext("3.1", "aaa");
showNext("3.1", "eee");

function showNext($from, $to) {
  global $filename;

  $xml = new \XmlReader();
  $xml->open("file://$filename");
  while ($xml->read()) {
    if ($xml->nodeType === \XmlReader::ELEMENT) {
      if ($xml->getAttribute("id") == $from) {
        echo "going from <$xml->name id=\"$from\">";
        break;
      }
    }
  }

  $xml->next($to);
  $destination = "";
  if($xml->nodeType === \XmlReader::NONE) {
    if(!$xml->read()) {
      $destination = "outside the document";
    }
  }

  if(!$destination) {
    if ($xml->nodeType === \XmlReader::END_ELEMENT) {
      $destination = "on </$xml->name>";
    } else if ($xml->nodeType === \XmlReader::ELEMENT) {
      $destination = "on <$xml->name id=\"" . $xml->getAttribute("id") . "\">";
    }
  }

  echo " to \"$to\" places the cursor $destination;\n";

  $xml->close();
}
?>
gholson19 at gmail dot com 13-May-2015 09:21
To skip over deletion nodes in the xml extracted from a word document, do something like this:

if ($paragraph->nodeType == XMLREADER::ELEMENT && $paragraph->name === 'w:del'){$paragraph->next();}


Çözemlenecek XML belgeyi içeren adresi belirler

  • « XMLReader::next
  • XMLReader::read »
  • PHP Manual
  • XMLReader
  • Çözemlenecek XML belgeyi içeren adresi belirler

XMLReader::open

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::open — Çözemlenecek XML belgeyi içeren adresi belirler

Açıklama

public static XMLReader::open(string $uri, ?string $kodlama = null, int $seçenekler = 0): XMLReader
public XMLReader::open(string $uri, ?string $kodlama = null, int $seçenekler = 0): bool

Çözemlenecek XML belgeyi içeren adresi belirler.

Bağımsız Değişkenler

uri

Belgenin adresi.

kodlama

Belgenin karakter kodlaması veya null.

seçenekler

LIBXML_* sabitlerinden oluşan bir bit maskesi.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner. Statik olarak çağrılmışsa XMLReader, başarısızlık durumunda false döner.

Hatalar/İstisnalar

Bu yöntem statik olarak çağrılabilir, fakat PHP 8.0.0 öncesinde, böyle bir durumda bir E_DEPRECATED hatası çıktılıyordu.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | XMLReader::open() statik yöntem olarak bildirildi, fakat hala XMLReader örneği olarak çağrılabiliyor.

Ayrıca Bakınız

  • XMLReader::xml() - Çözümlenecek XML belge içeriği belirtilir
  • XMLReader::close() - XMLReader girdisini kapatır

User Contributed Notes

den at nurfuerspam dot de 29-Apr-2017 10:08
If you like to read the XML from HTTP whit a POST request, you can use libxml_set_streams_context.
Example:

<?php

$param = array('http' => array(
    'method' => 'POST',
    'header' => "Content-type: application/x-www-form-urlencoded\r\n",
    'content' => http_build_query(array(
        'post_param1' => 'value1',
        'post_param2' => 'value2',
    )),
));
libxml_set_streams_context(stream_context_create($param));
$reader = XMLReader::open('https://example.com/get.php?get_param=value3');

?>
dave at sophoservices dot com 02-Dec-2016 07:43
When using the XmlReader to read local XML files, remember it the open function requests a URI. Add 'file://' to the front of the FULL path to the XML. Otherwise you may get:

PHP Warning:  XMLReader::open(): Unable to open source data in ...
mood(_a_)twolate.com 14-Oct-2016 11:03
For some reasons, the open() method keep throwing me this error :

PHP Warning:  XMLReader::open(): Unable to open source data in /var/www/nota/ethamap/fat_xml.php

It doesn't make sense as the xml file target hosted on my server is perfectly reachable. Adding this line before invoking open() fixed it :

libxml_disable_entity_loader(false);

Please view https://bugs.php.net/bug.php?id=62577
It is somehow related.
alvaro at demogracia dot com 14-Nov-2014 12:35
XML can optionally declare its own encoding:

    <?xml version="1.0" encoding="UTF-8"?>

You can use the $encoding parameter to provide this information (if missing) or override it (if wrong).

Output is always UTF-8 (that's how libxml works).
crungmungus at gmail dot com 15-Sep-2008 05:11
Windows users remember to enable php_openssl.dll in your php.ini if you want to be able to use this function (and others) with a HTTPS URL.


Belgedeki sonraki düğüme gidilir

  • « XMLReader::open
  • XMLReader::readInnerXml »
  • PHP Manual
  • XMLReader
  • Belgedeki sonraki düğüme gidilir

XMLReader::read

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::read — Belgedeki sonraki düğüme gidilir

Açıklama

public XMLReader::read(): bool

İmleci belgede sonraki düğüme konumlandırır.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Ayrıca Bakınız

  • XMLReader::moveToElement() - İmleci geçerli özniteliğin ebeveyn elemanına konumlar
  • XMLReader::moveToAttribute() - İmleci ismi belirtilen özniteliğe konumlar
  • XMLReader::next() - Alt ağaçların tümünü atlayıp sonraki düğüme gider

User Contributed Notes

peter at 3xe dot co dot uk 13-Oct-2016 12:08
Another approach to the 'also reads closing tags' gotcha:

<?php
$reader = new XMLReader();
$reader->open('users.xml');

while ($reader->read()) {
  if ($reader->nodeType == XMLReader::END_ELEMENT) {
    continue; //skips the rest of the code in this iteration
  }
  //do something with desired node type
  if($reader->name == 'user') {
    //...
  }
}
?>
Anonymous 20-Mar-2015 09:49
> I would have liked to use the next() function instead, but as I needed to parse 2 different subtrees, I couldn't figure out how to find all the columns, reset the pointer, and then find all the rows.

I just use:

$reader->close();
$reader->open($url);

to reset the pointer.
ecziegler at gmail 29-Jan-2014 12:27
If like myself you have been turning the interwebz upside down looking for a solution for this issue:
PHP Warning:  XMLReader::read(): /tmp/xml_feed.xml:4183934: parser error : Input is not proper UTF-8, indicate encoding !

For some reason, this warning breaks the execution - is it a fatal error in disguise?

After days of frustration I found it!!!!
tidy -xml -o output.xml -utf8 -f error.log input.xml

You can invoque tidy using exec, It takes several seconds to convert a 250Mb feed, but it worthy the time.

In my case the issue was with latin1 charset, and for some reason I had to pass the xml through tidy 2 times - first time around creates new errors, second time it fixes everything.

I know invalid xml should be fixed by xml creators, but it works differently in the real world.
Nate 27-Jun-2011 10:49
It is interesting to note that this function will stop on closing tags as well.  I have an XML document similar to the following:

<root>
  <columns>
    <column>columnX</column>
    <column>columnY</column>
  </columns>
  <table>
    <row>
      <columnX>38</columnX>
      <columnY>50</columnY>
    </row>
    <row>
      <columnX>82</columnY>
      <columnY>28</columnY>
    </row>
    ...
  </table>
</root>

I need to parse the <columns> object to know what attributes to check for from each <row> node.  Therefore I was doing the following:

<?php
while ($xml->read()) {
  if ($xml->name === 'column') {
   //parse column node to into $columns array
  }
  elseif ($xml->name === 'row') {
    //parse row node, using constructed $columns array
  }
}
?>

This kind of worked in that I ended up with an array of all the data I wanted, but the array I constructed was twice as large as I expected and every other entry was empty.  Took me a while to debug, but finally figured out that checking <?php $xml->name === 'row' ?> matches both <row> and </row>, so the check should really be something more like:

<?php

if ($xml->name === 'row' && $xml->nodeType == XMLReader::ELEMENT) {
  // parse row node
}

?>

I would have liked to use the next() function instead, but as I needed to parse 2 different subtrees, I couldn't figure out how to find all the columns, reset the pointer, and then find all the rows.
andy at siliconrockstar dot com 16-May-2011 01:01
A very simple way to avoid typing $reader->read() multiple times when you want to skip some nodes:

<?php
class smartXMLReader extends XMLReader {
    public function readTimes($count) {
        $i = 0;
        while($i < $count){
            $this->read();
            $i++;
        }
    }
}
?>

Using this smartXMLReader,

<?php
$reader->readTimes(3);
?>

is equivalent to

<?php
$reader->read();
$reader->read();
$reader->read();
?>

Makes getting around in your XML document a bit easier :)
jirka at kosek dot cz 08-Feb-2006 01:01
libxml2 contains much more useful method readString() that will read and return whole text content of element. You can call it after receiving start tag (XMLReader::ELEMENT). You can use this PHP code to emulate this method until PHP will directly call underlying libxml2 implementation.

<?php
class XMLReader2 extends XMLReader
{
  function readString()
  {
        $depth = 1;
        $text = "";

        while ($this->read() && $depth != 0)
        {
            if (in_array($this->nodeType, array(XMLReader::TEXT, XMLReader::CDATA, XMLReader::WHITESPACE, XMLReader::SIGNIFICANT_WHITESPACE)))
                $text .= $this->value;
            if ($this->nodeType == XMLReader::ELEMENT) $depth++;
            if ($this->nodeType == XMLReader::END_ELEMENT) $depth--;
        }
        return $text;
    }
}
?>

Just use XMLReader2 instead of XMLReader.


Geçerli düğümün içeriğini okur

  • « XMLReader::read
  • XMLReader::readOuterXml »
  • PHP Manual
  • XMLReader
  • Geçerli düğümün içeriğini okur

XMLReader::readInnerXml

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

XMLReader::readInnerXml — Geçerli düğümün içeriğini okur

Açıklama

public XMLReader::readInnerXml(): string

Geçerli düğümün içeriğini, çocuk düğümler ve imlenimle birlikte okur.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

Geçerli düğümün içeriğini bir dizge olarak döndürür. Başarısızlık durumunda boş dizge döner.

Notlar

Dikkat

Bu işlev sadece PHP, libxml 20620 veya sonraki bir sürüm kullanılarak derlendiği takdirde kullanılabilir.

Ayrıca Bakınız

  • XMLReader::readString() - Geçerli düğümün içeriğini bir dizge olarak okur
  • XMLReader::readOuterXml() - Geçerli düğümün içeriğini düğümün kendisiyle birlikte okur
  • XMLReader::expand() - Geçerli düğümün bir kopyasını bir DOM nesnesi olarak döndürür

User Contributed Notes

There are no user contributed notes for this page.


Geçerli düğümün içeriğini düğümün kendisiyle birlikte okur

  • « XMLReader::readInnerXml
  • XMLReader::readString »
  • PHP Manual
  • XMLReader
  • Geçerli düğümün içeriğini düğümün kendisiyle birlikte okur

XMLReader::readOuterXml

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

XMLReader::readOuterXml — Geçerli düğümün içeriğini düğümün kendisiyle birlikte okur

Açıklama

public XMLReader::readOuterXml(): string

Geçerli düğümün içeriğini düğümün kendisiyle birlikte okur.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

Geçerli düğümün içeriğini düğümün kendisiyle birlikte bir dizge olarak döndürür. Başarısızlık durumunda boş dizge döner.

Notlar

Dikkat

Bu işlev sadece PHP, libxml 20620 veya sonraki bir sürüm kullanılarak derlendiği takdirde kullanılabilir.

Ayrıca Bakınız

  • XMLReader::readString() - Geçerli düğümün içeriğini bir dizge olarak okur
  • XMLReader::readInnerXml() - Geçerli düğümün içeriğini okur
  • XMLReader::expand() - Geçerli düğümün bir kopyasını bir DOM nesnesi olarak döndürür

User Contributed Notes

ralf dot horlebein at web dot de 21-Jul-2014 10:57
Please note that empty tags like <span></span> will be automatically converted to the short notation <span />.  This could cause trouble in some cases.
simon at avalon dot net dot nz 16-Mar-2011 04:35
Be aware that when you extract a piece of XML from a larger XML document using the readOuterXML() function, it tries to determine the namespaces (as defined in the original XML document) that apply to the new piece, and inserts them into the appropriate tags as xmlns attributes. This can be disconcerting, but it should be a benign alteration in most cases, and I understand that it causes the new chunk of XML to be correctly formatted so it is valid in it's own right.

As far as I'm aware it's not possible to change this behaviour.


Geçerli düğümün içeriğini bir dizge olarak okur

  • « XMLReader::readOuterXml
  • XMLReader::setParserProperty »
  • PHP Manual
  • XMLReader
  • Geçerli düğümün içeriğini bir dizge olarak okur

XMLReader::readString

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

XMLReader::readString — Geçerli düğümün içeriğini bir dizge olarak okur

Açıklama

public XMLReader::readString(): string

Geçerli düğümün içeriğini bir dizge olarak okur.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

Geçerli düğümün içeriğini bir dizge olarak döndürür. Başarısızlık durumunda boş dizge döner.

Notlar

Dikkat

Bu işlev sadece PHP, libxml 20620 veya sonraki bir sürüm kullanılarak derlendiği takdirde kullanılabilir.

Ayrıca Bakınız

  • XMLReader::readOuterXml() - Geçerli düğümün içeriğini düğümün kendisiyle birlikte okur
  • XMLReader::readInnerXml() - Geçerli düğümün içeriğini okur
  • XMLReader::expand() - Geçerli düğümün bir kopyasını bir DOM nesnesi olarak döndürür

User Contributed Notes

alexander_behling at web dot de 25-Jan-2018 03:37
Important:
When using it use -> instead of ::.
You have to use :: only on static functions and then you have not to create a class object.
Lea Hayes 07-Jun-2011 01:51
I would like to reiterate that this does not work when compiled with versions of libxml lower than 20620. I found that it just presents a blank page.

<?php $string = $reader->readString(); ?>

I worked around this issue by adding the following helper function:

<?php
function read_string($reader) {
    $node = $reader->expand();
    return $node->textContent;
}
?>

And then using:

<?php $string = read_string($reader); ?>
Michael Rusch 18-May-2009 10:27
For those who, like me, are having trouble figuring out the difference between getString() an getInnerXML(), the difference is that getString() does NOT include markup.  So, for:

<foo>bar<baz>Hello, world!</baz></foo>

getString() on the <foo> node would return

bar Hello, world!

whereas getInnerXML() would return

bar<baz>Hello, world!</baz>


Çözümleyici seçeneklerini tanımlar

  • « XMLReader::readString
  • XMLReader::setRelaxNGSchema »
  • PHP Manual
  • XMLReader
  • Çözümleyici seçeneklerini tanımlar

XMLReader::setParserProperty

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::setParserProperty — Çözümleyici seçeneklerini tanımlar

Açıklama

public XMLReader::setParserProperty(int $seçenek, bool $etkin): bool

Çözümleyici seçeneklerini etkin veya etkisiz kılar. Seçeneklerin
XMLReader-open() veya
XMLReader-xml() çağrıldıktan sonra
XMLReader-read() çağrılmadan önce belirlenmesi gerekir.

Bağımsız Değişkenler

seçenek

Çözümleyici seçeneği sabitlerinden biri.

etkin

true atanırsa seçenek etkin olur, aksi takdirde seçenek etkisiz olur.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

User Contributed Notes

There are no user contributed notes for this page.


Belgeyi RelaxNG şemasına göre doğrular

  • « XMLReader::setParserProperty
  • XMLReader::setRelaxNGSchemaSource »
  • PHP Manual
  • XMLReader
  • Belgeyi RelaxNG şemasına göre doğrular

XMLReader::setRelaxNGSchema

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::setRelaxNGSchema — Belgeyi RelaxNG şemasına göre doğrular

Açıklama

public XMLReader::setRelaxNGSchema(?string $dosya): bool

XML belgeyi doğrulamak için dosya ile belirtilen RelaxNG şeması kullanılır.

Bağımsız Değişkenler

dosya

RelaxNG şemasının dosya yolu veya adresi.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Ayrıca Bakınız

  • XMLReader::setRelaxNGSchemaSource() - Belgeyi dizge olarak belirtilen RelaxNG şemasına göre doğrular
  • XMLReader::setSchema() - Belgeyi XSD şemasına göre doğrular
  • XMLReader::isValid() - Çözümlenen düğümün geçerliliğini sınar

User Contributed Notes

remy dot damour at laposte dot net 30-Dec-2008 04:40
Make sure to load your data prior to calling ->setRelaxNGSchema() otherwise you will get an error.

<?php
$xml_reader = new XMLReader();
$xml_reader->setRelaxNGSchema($rng_schema);
$xml_reader->xml($xml_data);
?>
Above code generates the following warning: "Warning: XMLReader::setRelaxNGSchemaSource()
[xmlreader.setrelaxngschemasource]: Unable to set schema. This must be
set prior to reading or schema contains errors."

whereas the following does not generate a warning:
<?php
$xml_reader = new XMLReader();
$xml_reader->xml($xml_data); // or $xml_reader->xml($xml_file);
$xml_reader->setRelaxNGSchema($rng_schema);
?>

cf. http://bugs.php.net/bug.php?id=46978


Belgeyi dizge olarak belirtilen RelaxNG şemasına göre doğrular

  • « XMLReader::setRelaxNGSchema
  • XMLReader::setSchema »
  • PHP Manual
  • XMLReader
  • Belgeyi dizge olarak belirtilen RelaxNG şemasına göre doğrular

XMLReader::setRelaxNGSchemaSource

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::setRelaxNGSchemaSource — Belgeyi dizge olarak belirtilen RelaxNG şemasına göre doğrular

Açıklama

public XMLReader::setRelaxNGSchemaSource(?string $kaynak): bool

XML belgeyi doğrulamak için kaynak dizgesi ile belirtilen RelaxNG şeması kullanılır.

Bağımsız Değişkenler

kaynak

RelaxNG şemasını içeren dizge.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Ayrıca Bakınız

  • XMLReader::setRelaxNGSchema() - Belgeyi RelaxNG şemasına göre doğrular
  • XMLReader::setSchema() - Belgeyi XSD şemasına göre doğrular
  • XMLReader::isValid() - Çözümlenen düğümün geçerliliğini sınar

User Contributed Notes

remy dot damour at laposte dot net 30-Dec-2008 04:43
If you get the following warning message when calling ->setRelaxNGSchemaSource(): "Warning: XMLReader::setRelaxNGSchemaSource()
[xmlreader.setrelaxngschemasource]: Unable to set schema. This must be
set prior to reading or schema contains errors."

Make sure to load data using XMLReader::open() or XMLReader::xml() prior to calling XMLReader::setRelaxNGSchemaSource().

Cf. comment on XMLReader::setRelaxNGSchema for more details.
anzenews at volja dot net 21-Jan-2008 12:18
This function and setRelaxNGSchema() seem picky about when they are called - right after the call to open(). For example:

<?php
  $schema="/path/to/schema.rng";
  $xmlfile="/path/to/xml.xml";

  $xml = new XMLReader();
  $xml->open($xmlfile);
  $xml->setRelaxNGSchemaSource(file_get_contents($schema));

  while ($xml->read()) {
   // ...
  }

  $xml->close();
?>


Belgeyi XSD şemasına göre doğrular

  • « XMLReader::setRelaxNGSchemaSource
  • XMLReader::XML »
  • PHP Manual
  • XMLReader
  • Belgeyi XSD şemasına göre doğrular

XMLReader::setSchema

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

XMLReader::setSchema — Belgeyi XSD şemasına göre doğrular

Açıklama

public XMLReader::setSchema(?string $dosya): bool

XML belgeyi doğrulamak için dosya ile belirtilen W3C XSD şeması kullanılır. Etkinleştirme sadece ilk XMLReader::read() öncesi mümkündür.

Bağımsız Değişkenler

dosya

XSD şemasının dosya yolu.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Hatalar/İstisnalar

libxml şema desteği olmaksızın derlenmişse, şema hatalıysa veya daha önce bir XMLReader::read() çağrısı yapılmışsa bir E_WARNING çıktılanır.

Notlar

Dikkat

Bu işlev sadece PHP, libxml 20620 veya sonraki bir sürüm kullanılarak derlendiği takdirde kullanılabilir.

Ayrıca Bakınız

  • XMLReader::setRelaxNGSchema() - Belgeyi RelaxNG şemasına göre doğrular
  • XMLReader::setRelaxNGSchemaSource() - Belgeyi dizge olarak belirtilen RelaxNG şemasına göre doğrular
  • XMLReader::isValid() - Çözümlenen düğümün geçerliliğini sınar

User Contributed Notes

There are no user contributed notes for this page.


Çözümlenecek XML belge içeriği belirtilir

  • « XMLReader::setSchema
  • XMLWriter »
  • PHP Manual
  • XMLReader
  • Çözümlenecek XML belge içeriği belirtilir

XMLReader::XML

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::XML — Çözümlenecek XML belge içeriği belirtilir

Açıklama

public static XMLReader::XML(string $kaynak, ?string $kodlama = null, int $seçenekler = 0): XMLReader
public XMLReader::XML(string $kaynak, ?string $kodlama = null, int $seçenekler = 0): bool

Çözümlenecek XML belge içeriğini belirtmek için kullanılır.

Bağımsız Değişkenler

kaynak

Çözümlenecek XML belgeyi içeren dizge.

kodlama

Belgenin karakter kodlaması veya null.

seçenekler

LIBXML_* sabitlerinden oluşan bir bit maskesi.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner. Statik olarak çağrılmışsa XMLReader, başarısızlık durumunda false döner.

Hatalar/İstisnalar

Bu yöntem statik olarak çağrılabilir, fakat PHP 8.0.0 öncesinde, böyle bir durumda bir E_DEPRECATED hatası çıktılıyordu.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | XMLReader::XML() statik yöntem olarak bildirildi, fakat hala XMLReader örneği olarak çağrılabiliyor.

Ayrıca Bakınız

  • XMLReader::open() - Çözemlenecek XML belgeyi içeren adresi belirler
  • XMLReader::close() - XMLReader girdisini kapatır

User Contributed Notes

There are no user contributed notes for this page.


XMLWriter

  • Giriş
  • Yapılandırma/Kurulum
    • Gereksinimler
    • Kurulum
    • Çalışma Anı Yapılandırması
    • Özkaynak Türleri
  • Öntanımlı Sabitler
  • Örnekler
    • Basit bir XML Belgenin Oluşturulması
    • XML isim alanları ile çalışma
    • Nesne yönelimli arayüz ile çalışma
  • XMLWriter — XMLWriter sınıfı
    • XMLWriter::endAttribute — Geçerli özniteliği sonlandırır
    • XMLWriter::endCdata — Geçerli CDATA bölümünü kapatır
    • XMLWriter::endComment — Geçerli açıklamayı kapatır
    • XMLWriter::endDocument — Geçerli belgeyi sonlandırır
    • XMLWriter::endDtd — Geçerli DTD'yi kapatır
    • XMLWriter::endDtdAttlist — Geçerli DTD öznitelik listesi bildirimini kapatır
    • XMLWriter::endDtdElement — Geçerli DTD eleman bildirimini kapatır
    • XMLWriter::endDtdEntity — Geçerli DTD öğe bildirimini kapatır
    • XMLWriter::endElement — Geçerli elemanı kapatır
    • XMLWriter::endPi — Geçerli işlem komutunu kapatır
    • XMLWriter::flush — Geçerli tamponu boşaltır
    • XMLWriter::fullEndElement — Geçerli elemanı kapatır
    • XMLWriter::openMemory — Dizge çıktılamak için belleği kullanmak üzere yeni bir XMLWriter nesnesi oluşturur
    • XMLWriter::openUri — Çıktı için kaynak adresini kullanarak yeni bir XMLWriter nesnesi oluşturur
    • XMLWriter::outputMemory — Geçerli tamponu döndürür
    • XMLWriter::setIndent — Girintilemeyi açıp kapar
    • XMLWriter::setIndentString — Girintileme için kullanılacak dizgeyi belirler
    • XMLWriter::startAttribute — Bir öznitelik başlatır
    • XMLWriter::startAttributeNs — İsim alanlı bir öznitelik başlatır
    • XMLWriter::startCdata — Bir CDATA bölümü başlatır
    • XMLWriter::startComment — Bir açıklama başlatır
    • XMLWriter::startDocument — Belgenin XML bildirimini yazar
    • XMLWriter::startDtd — Bir DTD başlangıç etiketi oluşturur
    • XMLWriter::startDtdAttlist — Bir DTD öznitelik listesi bildirimini başlatır
    • XMLWriter::startDtdElement — Bir DTD eleman bildirimini başlatır
    • XMLWriter::startDtdEntity — Bir DTD öğe bildirimini başlatır
    • XMLWriter::startElement — Bir eleman başlangıç etiketi oluşturur
    • XMLWriter::startElementNs — Bir isim alanlı eleman başlangıç etiketi oluşturur
    • XMLWriter::startPi — Bir işlem komutu başlangıç etiketi oluşturur
    • XMLWriter::text — Bir metni yazar
    • XMLWriter::writeAttribute — Öznitelik yazar
    • XMLWriter::writeAttributeNs — İsim alanlı öznitelik yazar
    • XMLWriter::writeCdata — CDATA yazar
    • XMLWriter::writeComment — Açıklama yazar
    • XMLWriter::writeDtd — DTD'yi' yazar
    • XMLWriter::writeDtdAttlist — DTD öznitelik listesi yazar
    • XMLWriter::writeDtdElement — DTD elemanını yazar
    • XMLWriter::writeDtdEntity — DTD öğesini yazar
    • XMLWriter::writeElement — Elemanı içeriğiyle birlikte yazar
    • XMLWriter::writeElementNs — İsim alanlı elemanı içeriğiyle birlikte yazar
    • XMLWriter::writePi — Bir işlem komutu (PI) yazar
    • XMLWriter::writeRaw — Ham XML metni yazar

User Contributed Notes

lingtalfi 08-Oct-2015 08:35
The single quote predefined entity is not escaped.
The other predefined entities are but not the single quote, so you will have to do it yourself.

That's what you would expect:

Ampersand     &     &amp;
Single Quote     '     &apos;
Double Quote     "     &quot;
Greater Than     >     &gt;
Less Than     <     &lt;

That's what you get with \XmlWriter:

Ampersand     &     &amp;
Single Quote     '     '
Double Quote     "     &quot;
Greater Than     >     &gt;
Less Than     <     &lt;
Alexey Zakhlestin 09-Jun-2008 03:47
important: XMLWriter expects UTF-8 data from you. It can output xml in various encodings, but input should be strictly utf-8!


Giriş

Bu eklenti, libxml kütüphanesinin xmlWriter arayüzünün sarmalayıcısıdır.

Bu eklenti, XML veri içeren dosyalar veya akımlar üretmek anlamında tek yönlü ve önbelleklemesiz olarak bir XML yazıcı gerçekler.

Eklenti, nesne yönelimli kullanılabileceği gibi yordamsal olarak da kullanılabilir, Her yöntemin belgesinde yordamsal kullanım da açıklanmıştır.

User Contributed Notes

There are no user contributed notes for this page.


Kurulum

XMLWriter eklentisi PHP paketinde gelir.

Bu eklenti öntanımlı olarak etkindir. Derleme sırasında bu seçenekle iptal edilebilir: --disable-xmlwriter

User Contributed Notes

There are no user contributed notes for this page.


Özkaynak Türleri

PHP 8.0.0 öncesinde XMLWriter eklentisinin yordamsal sürümü tarafından kullanılan tek bir özkaynağı vardı ve bu özkaynak xmlwriter_open_memory() veya xmlwriter_open_uri() işlevi tarafından döndürülürdü.

User Contributed Notes

There are no user contributed notes for this page.


Örnekler

İçindekiler

  • Basit bir XML Belgenin Oluşturulması
  • XML isim alanları ile çalışma
  • Nesne yönelimli arayüz ile çalışma

User Contributed Notes

There are no user contributed notes for this page.


Basit bir XML Belgenin Oluşturulması

Bu örnekte bir XML belgenin XMLWriter kullanılarak bellekte nasıl oluşturulacağı gösterilmiştir.

Örnek 1 - Basit bir XML Belgenin Oluşturulması

<?php

$xw = xmlwriter_open_memory();
xmlwriter_set_indent($xw, 1);
$res = xmlwriter_set_indent_string($xw, ' ');

xmlwriter_start_document($xw, '1.0', 'UTF-8');

// İlk eleman
xmlwriter_start_element($xw, 'tag1');

// 'tag1' elemanının 'att1' özniterliği
xmlwriter_start_attribute($xw, 'att1');
xmlwriter_text($xw, 'valueofatt1');
xmlwriter_end_attribute($xw);

xmlwriter_write_comment($xw, 'Bu bir açıklamadır.');

// Çocuk eleman
xmlwriter_start_element($xw, 'tag11');
xmlwriter_text($xw, 'Bu örnek bir metindir, ğ');
xmlwriter_end_element($xw); // tag11

xmlwriter_end_element($xw); // tag1

// CDATA
xmlwriter_start_element($xw, 'testc');
xmlwriter_write_cdata($xw, "cdata içeriği burada");
xmlwriter_end_element($xw); // testc

xmlwriter_start_element($xw, 'testc');
xmlwriter_start_cdata($xw);
xmlwriter_text($xw, "cdata2 denemesi");
xmlwriter_end_cdata($xw);
xmlwriter_end_element($xw); // testc

// İşlem komutu
xmlwriter_start_pi($xw, 'php');
xmlwriter_text($xw, '$foo=2;echo $foo;');
xmlwriter_end_pi($xw);

xmlwriter_end_document($xw);

echo xmlwriter_output_memory($xw);

Yukarıdaki örneğin çıktısı:

<?xml version="1.0" encoding="UTF-8"?>
<tag1 att1="valueofatt1">
 <!--Bu bir açıklamadır.-->
 <tag11>Bu örnek bir metindir, ğ</tag11>
</tag1>
<testc><![CDATA[cdata içeriği burada]]></testc>
<testc><![CDATA[cdata2 denemesi]]></testc>
<?php $foo=2;echo $foo;?>

User Contributed Notes

There are no user contributed notes for this page.


XML isim alanları ile çalışma

Bu örnekte isim alanlı XML elemanlarının nasıl oluşturulacağı gösterilmiştir.

Örnek 1 - XML isim alanları ile çalışma

<?php

$xw = xmlwriter_open_memory();
xmlwriter_set_indent($xw, 1);
$res = xmlwriter_set_indent_string($xw, ' ');

xmlwriter_start_document($xw, '1.0', 'UTF-8');
// A first element
xmlwriter_start_element_ns($xw,'prefix', 'books', 'uri');
xmlwriter_start_attribute($xw, 'isbn');

xmlwriter_start_attribute_ns($xw, 'prefix', 'isbn', 'uri');
xmlwriter_end_attribute($xw);

xmlwriter_end_attribute($xw);

xmlwriter_text($xw, 'book1');
xmlwriter_end_element($xw);

xmlwriter_end_document($xw);

echo xmlwriter_output_memory($xw);

Yukarıdaki örneğin çıktısı:

<?xml version="1.0" encoding="UTF-8"?>
<prefix:books isbn="" prefix:isbn="" xmlns:prefix="uri">book1</prefix:books>

User Contributed Notes

There are no user contributed notes for this page.


Nesne yönelimli arayüz ile çalışma

Bu örnekte XMLWriter'ın nesne yönelimli arayüzü ile nasıl çalışılacağı gösterilmiştir.

Örnek 1 - Nesne yönelimli arayüz ile çalışma

<?php

$xw = new XMLWriter();
$xw->openMemory();
$xw->startDocument("1.0");
$xw->startElement("kitap");
$xw->text("örnek");
$xw->endElement();
$xw->endDocument();
echo $xw->outputMemory();

Yukarıdaki örneğin çıktısı:

<?xml version="1.0"?>
<kitap>örnek</kitap>

User Contributed Notes

There are no user contributed notes for this page.


XMLWriter sınıfı

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

Giriş

Sınıf Sözdizimi

class XMLWriter {
/* Yöntemler */
public endAttribute(): bool
public endCdata(): bool
public endComment(): bool
public endDocument(): bool
public endDtd(): bool
public endDtdAttlist(): bool
public endDtdElement(): bool
public endDtdEntity(): bool
public endElement(): bool
public endPi(): bool
public flush(bool $empty = true): string|int
public fullEndElement(): bool
public openMemory(): bool
public openUri(string $uri): bool
public outputMemory(bool $boşalt = true): string
public setIndent(bool $girintile): bool
public setIndentString(string $girinti): bool
public startAttribute(string $isim): bool
public startAttributeNs(?string $önek, string $isim, ?string $uri): bool
public startCdata(): bool
public startComment(): bool
public startDocument(?string $version = "1.0", ?string $encoding = null, ?string $standalone = null): bool
public startDtd(string $kök_eleman, ?string $publicId = null, ?string $systemId = null): bool
public startDtdAttlist(string $isim): bool
public startDtdElement(string $isim): bool
public startDtdEntity(string $isim, bool $değiştige_var): bool
public startElement(string $isim): bool
public startElementNs(?string $önek, string $isim, ?string $uri): bool
public startPi(string $hedef): bool
public text(string $içerik): bool
public writeAttribute(string $isim, string $değer): bool
public writeAttributeNs(
?string $önek,
string $isim,
?string $uri,
string $değer
): bool
public writeCdata(string $içerik): bool
public writeComment(string $içerik): bool
public writeDtd(
string $isim,
?string $publicId = null,
?string $systemId = null,
?string $altküme = null
): bool
public writeDtdAttlist(string $isim, string $içerik): bool
public writeDtdElement(string $name, string $içerik): bool
public writeDtdEntity(
string $isim,
string $içerik,
bool $isParam = false,
?string $publicId = null,
?string $systemId = null,
?string $notationData = null
): bool
public writeElement(string $etiket, ?string $içerik = null): bool
public writeElementNs(
?string $önek,
string $eleman,
?string $uri,
?string $içerik = null
): bool
public writePi(string $hedef, string $içerik): bool
public writeRaw(string $içerik): bool
}

İçindekiler

  • XMLWriter::endAttribute — Geçerli özniteliği sonlandırır
  • XMLWriter::endCdata — Geçerli CDATA bölümünü kapatır
  • XMLWriter::endComment — Geçerli açıklamayı kapatır
  • XMLWriter::endDocument — Geçerli belgeyi sonlandırır
  • XMLWriter::endDtd — Geçerli DTD'yi kapatır
  • XMLWriter::endDtdAttlist — Geçerli DTD öznitelik listesi bildirimini kapatır
  • XMLWriter::endDtdElement — Geçerli DTD eleman bildirimini kapatır
  • XMLWriter::endDtdEntity — Geçerli DTD öğe bildirimini kapatır
  • XMLWriter::endElement — Geçerli elemanı kapatır
  • XMLWriter::endPi — Geçerli işlem komutunu kapatır
  • XMLWriter::flush — Geçerli tamponu boşaltır
  • XMLWriter::fullEndElement — Geçerli elemanı kapatır
  • XMLWriter::openMemory — Dizge çıktılamak için belleği kullanmak üzere yeni bir XMLWriter nesnesi oluşturur
  • XMLWriter::openUri — Çıktı için kaynak adresini kullanarak yeni bir XMLWriter nesnesi oluşturur
  • XMLWriter::outputMemory — Geçerli tamponu döndürür
  • XMLWriter::setIndent — Girintilemeyi açıp kapar
  • XMLWriter::setIndentString — Girintileme için kullanılacak dizgeyi belirler
  • XMLWriter::startAttribute — Bir öznitelik başlatır
  • XMLWriter::startAttributeNs — İsim alanlı bir öznitelik başlatır
  • XMLWriter::startCdata — Bir CDATA bölümü başlatır
  • XMLWriter::startComment — Bir açıklama başlatır
  • XMLWriter::startDocument — Belgenin XML bildirimini yazar
  • XMLWriter::startDtd — Bir DTD başlangıç etiketi oluşturur
  • XMLWriter::startDtdAttlist — Bir DTD öznitelik listesi bildirimini başlatır
  • XMLWriter::startDtdElement — Bir DTD eleman bildirimini başlatır
  • XMLWriter::startDtdEntity — Bir DTD öğe bildirimini başlatır
  • XMLWriter::startElement — Bir eleman başlangıç etiketi oluşturur
  • XMLWriter::startElementNs — Bir isim alanlı eleman başlangıç etiketi oluşturur
  • XMLWriter::startPi — Bir işlem komutu başlangıç etiketi oluşturur
  • XMLWriter::text — Bir metni yazar
  • XMLWriter::writeAttribute — Öznitelik yazar
  • XMLWriter::writeAttributeNs — İsim alanlı öznitelik yazar
  • XMLWriter::writeCdata — CDATA yazar
  • XMLWriter::writeComment — Açıklama yazar
  • XMLWriter::writeDtd — DTD'yi' yazar
  • XMLWriter::writeDtdAttlist — DTD öznitelik listesi yazar
  • XMLWriter::writeDtdElement — DTD elemanını yazar
  • XMLWriter::writeDtdEntity — DTD öğesini yazar
  • XMLWriter::writeElement — Elemanı içeriğiyle birlikte yazar
  • XMLWriter::writeElementNs — İsim alanlı elemanı içeriğiyle birlikte yazar
  • XMLWriter::writePi — Bir işlem komutu (PI) yazar
  • XMLWriter::writeRaw — Ham XML metni yazar

User Contributed Notes

There are no user contributed notes for this page.


Geçerli özniteliği sonlandırır

  • « XMLWriter
  • XMLWriter::endCdata »
  • PHP Manual
  • XMLWriter
  • Geçerli özniteliği sonlandırır

XMLWriter::endAttribute

xmlwriter_end_attribute

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endAttribute -- xmlwriter_end_attribute — Geçerli özniteliği sonlandırır

Açıklama

Nesne yönelimli kullanım

public XMLWriter::endAttribute(): bool

Yordamsal kullanım

xmlwriter_end_attribute(XMLWriter $nesne): bool

Geçerli özniteliği sonlandırır.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.

Ayrıca Bakınız

  • XMLWriter::startAttribute() - Bir öznitelik başlatır
  • XMLWriter::startAttributeNS() - İsim alanlı bir öznitelik başlatır
  • XMLWriter::writeAttribute() - Öznitelik yazar
  • XMLWriter::writeAttributeNS() - İsim alanlı öznitelik yazar

User Contributed Notes

There are no user contributed notes for this page.


Geçerli CDATA bölümünü kapatır

  • « XMLWriter::endAttribute
  • XMLWriter::endComment »
  • PHP Manual
  • XMLWriter
  • Geçerli CDATA bölümünü kapatır

XMLWriter::endCdata

xmlwriter_end_cdata

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endCdata -- xmlwriter_end_cdata — Geçerli CDATA bölümünü kapatır

Açıklama

Nesne yönelimli kullanım

public XMLWriter::endCdata(): bool

Yordamsal kullanım

xmlwriter_end_cdata(XMLWriter $nesne): bool

Geçerli CDATA bölümünü kapatır.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.

Ayrıca Bakınız

  • XMLWriter::startCData() - Bir CDATA bölümü başlatır
  • XMLWriter::writeCData() - CDATA yazar

User Contributed Notes

There are no user contributed notes for this page.


Geçerli açıklamayı kapatır

  • « XMLWriter::endCdata
  • XMLWriter::endDocument »
  • PHP Manual
  • XMLWriter
  • Geçerli açıklamayı kapatır

XMLWriter::endComment

xmlwriter_end_comment

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 1.0.0)

XMLWriter::endComment -- xmlwriter_end_comment — Geçerli açıklamayı kapatır

Açıklama

Nesne yönelimli kullanım

public XMLWriter::endComment(): bool

Yordamsal kullanım

xmlwriter_end_comment(XMLWriter $nesne): bool

Geçerli açıklamayı kapatır.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.

Ayrıca Bakınız

  • XMLWriter::startComment() - Bir açıklama başlatır
  • XMLWriter::writeComment() - Açıklama yazar

User Contributed Notes

There are no user contributed notes for this page.


Geçerli belgeyi sonlandırır

  • « XMLWriter::endComment
  • XMLWriter::endDtd »
  • PHP Manual
  • XMLWriter
  • Geçerli belgeyi sonlandırır

XMLWriter::endDocument

xmlwriter_end_document

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endDocument -- xmlwriter_end_document — Geçerli belgeyi sonlandırır

Açıklama

Nesne yönelimli kullanım

public XMLWriter::endDocument(): bool

Yordamsal kullanım

xmlwriter_end_document(XMLWriter $nesne): bool

Geçerli belgeyi sonlandırır.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.

Ayrıca Bakınız

  • XMLWriter::startDocument() - Belgenin XML bildirimini yazar

User Contributed Notes

Sbastien 13-Mar-2022 09:44
XMLWriter::endDocument() closes properly all remaining elements not yet closed.

Without XMLWriter::endDocument() :

<?php
$xml = new XMLWriter();
$xml->openUri('php://stdout');
$xml->startDocument();
$xml->startElement('a');
$xml->startElement('b');
$xml->startElement('c');
$xml->startAttribute('foo');
exit;

/*
Outputs :
<?xml version="1.0"?>
<a><b><c foo="
*/
?>

With XMLWriter::endDocument() :

<?php
$xml = new XMLWriter();
$xml->openUri('php://stdout');
$xml->startDocument();
$xml->startElement('a');
$xml->startElement('b');
$xml->startElement('c');
$xml->startAttribute('foo');
$xml->endDocument();
exit;

/*
Outputs :
<?xml version="1.0"?>
<a><b><c foo=""/></b></a>
*/
?>


Geçerli DTD'yi kapatır

  • « XMLWriter::endDocument
  • XMLWriter::endDtdAttlist »
  • PHP Manual
  • XMLWriter
  • Geçerli DTD'yi kapatır

XMLWriter::endDtd

xmlwriter_end_dtd

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endDtd -- xmlwriter_end_dtd — Geçerli DTD'yi kapatır

Açıklama

Nesne yönelimli kullanım

public XMLWriter::endDtd(): bool

Yordamsal kullanım

xmlwriter_end_dtd(XMLWriter $nesne): bool

Belgenin DTD bölümünü kapatır.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.

Ayrıca Bakınız

  • XMLWriter::startDTD() - Bir DTD başlangıç etiketi oluşturur
  • XMLWriter::writeDTD() - DTD'yi' yazar

User Contributed Notes

There are no user contributed notes for this page.


Geçerli DTD öznitelik listesi bildirimini kapatır

  • « XMLWriter::endDtd
  • XMLWriter::endDtdElement »
  • PHP Manual
  • XMLWriter
  • Geçerli DTD öznitelik listesi bildirimini kapatır

XMLWriter::endDtdAttlist

xmlwriter_end_dtd_attlist

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endDtdAttlist -- xmlwriter_end_dtd_attlist — Geçerli DTD öznitelik listesi bildirimini kapatır

Açıklama

Nesne yönelimli kullanım

public XMLWriter::endDtdAttlist(): bool

Yordamsal kullanım

xmlwriter_end_dtd_attlist(XMLWriter $nesne): bool

Geçerli DTD öznitelik listesi bildirimini kapatır.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.

Ayrıca Bakınız

  • XMLWriter::startDTDAttlist() - Bir DTD öznitelik listesi bildirimini başlatır
  • XMLWriter::writeDTDAttlist() - DTD öznitelik listesi yazar

User Contributed Notes

There are no user contributed notes for this page.


Geçerli DTD eleman bildirimini kapatır

  • « XMLWriter::endDtdAttlist
  • XMLWriter::endDtdEntity »
  • PHP Manual
  • XMLWriter
  • Geçerli DTD eleman bildirimini kapatır

XMLWriter::endDtdElement

xmlwriter_end_dtd_element

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endDtdElement -- xmlwriter_end_dtd_element — Geçerli DTD eleman bildirimini kapatır

Açıklama

Nesne yönelimli kullanım

public XMLWriter::endDtdElement(): bool

Yordamsal kullanım

xmlwriter_end_dtd_element(XMLWriter $nesne): bool

Geçerli DTD eleman bildirimini kapatır.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.

Ayrıca Bakınız

  • XMLWriter::startDTDElement() - Bir DTD eleman bildirimini başlatır
  • XMLWriter::writeDTDElement() - DTD elemanını yazar

User Contributed Notes

There are no user contributed notes for this page.


Geçerli DTD öğe bildirimini kapatır

  • « XMLWriter::endDtdElement
  • XMLWriter::endElement »
  • PHP Manual
  • XMLWriter
  • Geçerli DTD öğe bildirimini kapatır

XMLWriter::endDtdEntity

xmlwriter_end_dtd_entity

(PHP 5 >= 5.2.1, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endDtdEntity -- xmlwriter_end_dtd_entity — Geçerli DTD öğe bildirimini kapatır

Açıklama

Nesne yönelimli kullanım

public XMLWriter::endDtdEntity(): bool

Yordamsal kullanım

xmlwriter_end_dtd_entity(XMLWriter $writer): bool

Geçerli DTD öğe bildirimini kapatır.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.

Ayrıca Bakınız

  • XMLWriter::startDTDEntity() - Bir DTD öğe bildirimini başlatır
  • XMLWriter::writeDTDEntity() - DTD öğesini yazar

User Contributed Notes

There are no user contributed notes for this page.


Geçerli elemanı kapatır

  • « XMLWriter::endDtdEntity
  • XMLWriter::endPi »
  • PHP Manual
  • XMLWriter
  • Geçerli elemanı kapatır

XMLWriter::endElement

xmlwriter_end_element

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endElement -- xmlwriter_end_element — Geçerli elemanı kapatır

Açıklama

Nesne yönelimli kullanım

public XMLWriter::endElement(): bool

Yordamsal kullanım

xmlwriter_end_element(XMLWriter $nesne): bool

Geçerli elemanı kapatır.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.

Ayrıca Bakınız

  • XMLWriter::startElement() - Bir eleman başlangıç etiketi oluşturur
  • XMLWriter::writeElement() - Elemanı içeriğiyle birlikte yazar

User Contributed Notes

There are no user contributed notes for this page.


Geçerli işlem komutunu kapatır

  • « XMLWriter::endElement
  • XMLWriter::flush »
  • PHP Manual
  • XMLWriter
  • Geçerli işlem komutunu kapatır

XMLWriter::endPi

xmlwriter_end_pi

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endPi -- xmlwriter_end_pi — Geçerli işlem komutunu kapatır

Açıklama

Nesne yönelimli kullanım

public XMLWriter::endPi(): bool

Yordamsal kullanım

xmlwriter_end_pi(XMLWriter $nesne): bool

Geçerli işlem komutunu kapatır.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.

Ayrıca Bakınız

  • XMLWriter::startPI() - Bir işlem komutu başlangıç etiketi oluşturur
  • XMLWriter::writePI() - Bir işlem komutu (PI) yazar

User Contributed Notes

There are no user contributed notes for this page.


Geçerli tamponu boşaltır

  • « XMLWriter::endPi
  • XMLWriter::fullEndElement »
  • PHP Manual
  • XMLWriter
  • Geçerli tamponu boşaltır

XMLWriter::flush

xmlwriter_flush

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 1.0.0)

XMLWriter::flush -- xmlwriter_flush — Geçerli tamponu boşaltır

Açıklama

Nesne yönelimli kullanım

public XMLWriter::flush(bool $empty = true): string|int

Yordamsal kullanım

xmlwriter_flush(XMLWriter $nesne, bool $boşalt = true): string|int

Geçerli tamponu boşaltır.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

boşalt

Tamponun içeriği boşaltılmayacaksa false belirtilir. true öntanımlıdır.

Dönen Değerler

Nesneyi bellekte oluşturmuşsanız bu işlev üretilen XML tamponunu döndürür. Çıktı için bir adres kullanıyorsanız bu işlev tampona yazar ve yazılan baytların sayısını döndürür.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.
8.0.0 | Bu işlev artık false döndürmüyor.

User Contributed Notes

Sbastien 13-Mar-2022 09:29
XMLWriter::flush() basic usage with XMLWriter::openMemory() :

<?php
$xml = new XMLWriter();
$xml->openMemory();
$xml->startDocument();
$xml->writeElement('message', 'Hello World!');
$xml->endDocument();
echo $xml->flush();

/*
Produces :

<?xml version="1.0"?>
<message>Hello World!</message>
*/
?>


Geçerli elemanı kapatır

  • « XMLWriter::flush
  • XMLWriter::openMemory »
  • PHP Manual
  • XMLWriter
  • Geçerli elemanı kapatır

XMLWriter::fullEndElement

xmlwriter_full_end_element

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL xmlwriter >= 2.0.4)

XMLWriter::fullEndElement -- xmlwriter_full_end_element — Geçerli elemanı kapatır

Açıklama

Nesne yönelimli kullanım

public XMLWriter::fullEndElement(): bool

Yordamsal kullanım

xmlwriter_full_end_element(XMLWriter $nesne): bool

Geçerli elemanı kapatır. Eleman boş olsa bile kapama etiketini yazar.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.

Ayrıca Bakınız

  • XMLWriter::endElement() - Geçerli elemanı kapatır

User Contributed Notes

There are no user contributed notes for this page.


Dizge çıktılamak için belleği kullanmak üzere yeni bir XMLWriter nesnesi oluşturur

  • « XMLWriter::fullEndElement
  • XMLWriter::openUri »
  • PHP Manual
  • XMLWriter
  • Dizge çıktılamak için belleği kullanmak üzere yeni bir XMLWriter nesnesi oluşturur

XMLWriter::openMemory

xmlwriter_open_memory

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::openMemory -- xmlwriter_open_memory — Dizge çıktılamak için belleği kullanmak üzere yeni bir XMLWriter nesnesi oluşturur

Açıklama

Nesne yönelimli kullanım

public XMLWriter::openMemory(): bool

Yordamsal kullanım

xmlwriter_open_memory(): XMLWriter|false

Dizge çıktılamak için belleği kullanmak üzere yeni bir XMLWriter nesnesi oluşturur.

Bağımsız Değişkenler

Dönen Değerler

Nesne yönelimli kullanım: Başarı durumunda true, başarısızlık durumunda false döner.

Yordamsal kullanım: Başarı durumunda XMLWriter işlevleri ile kullanılmak üzere yeni bir XMLWriter özkaynağı, aksi takdirde false döndürür.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | İşlev artık başarı durumunda yeni bir XMLWriter örneği döndürüyor, evvelce resource türünde bir değer dönerdi.

Ayrıca Bakınız

  • XMLWriter::openURI() - Çıktı için kaynak adresini kullanarak yeni bir XMLWriter nesnesi oluşturur

User Contributed Notes

There are no user contributed notes for this page.


Çıktı için kaynak adresini kullanarak yeni bir XMLWriter nesnesi oluşturur

  • « XMLWriter::openMemory
  • XMLWriter::outputMemory »
  • PHP Manual
  • XMLWriter
  • Çıktı için kaynak adresini kullanarak yeni bir XMLWriter nesnesi oluşturur

XMLWriter::openUri

xmlwriter_open_uri

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::openUri -- xmlwriter_open_uri — Çıktı için kaynak adresini kullanarak yeni bir XMLWriter nesnesi oluşturur

Açıklama

Nesne yönelimli kullanım

public XMLWriter::openUri(string $uri): bool

Yordamsal kullanım

xmlwriter_open_uri(string $uri): XMLWriter|false

Çıktı için uri ile belirtilen kaynak adresini kullanarak yeni bir XMLWriter nesnesi oluşturur.

Bağımsız Değişkenler

uri

Çıktı için özkaynak adresi.

Dönen Değerler

Nesne yönelimli kullanım: Başarı durumunda true, başarısızlık durumunda false döner.

Yordamsal kullanım: Başarı durumunda XMLWriter işlevleri ile kullanılmak üzere yeni bir XMLWriter özkaynağı, aksi takdirde false döndürür.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | İşlev artık başarı durumunda yeni bir XMLWriter örneği döndürüyor, evvelce resource türünde bir değer dönerdi.

Örnekler

Örnek 1 - Doğrudan XML çıktılamak

php://output sarmalayıcı kullanarak doğrudan XML çıktılamak mümkündür.

<?php
$out =new XMLWriter();
$out->openURI('php://output');
?>

Notlar

Bilginize:

Windows üzerinde, bu işlevle açılmış dosyalar nesne serbest bırakılıncaya kadar kilitlenir.

Ayrıca Bakınız

  • XMLWriter::openMemory() - Dizge çıktılamak için belleği kullanmak üzere yeni bir XMLWriter nesnesi oluşturur

User Contributed Notes

There are no user contributed notes for this page.


Geçerli tamponu döndürür

  • « XMLWriter::openUri
  • XMLWriter::setIndent »
  • PHP Manual
  • XMLWriter
  • Geçerli tamponu döndürür

XMLWriter::outputMemory

xmlwriter_output_memory

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::outputMemory -- xmlwriter_output_memory — Geçerli tamponu döndürür

Açıklama

Nesne yönelimli kullanım

public XMLWriter::outputMemory(bool $boşalt = true): string

Yordamsal kullanım

xmlwriter_output_memory(XMLWriter $nesne, bool $boşalt = true): string

Geçerli tamponu döndürür.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

boşalt

Çıktı tamponu boşaltılmayacaksa false belirtilir. true öntanımlıdır.

Dönen Değerler

Geçerli tamponun içeriğini bir dizge olarak döndürür.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.

Ayrıca Bakınız

  • XMLWriter::flush() - Geçerli tamponu boşaltır

User Contributed Notes

There are no user contributed notes for this page.


Girintilemeyi açıp kapar

  • « XMLWriter::outputMemory
  • XMLWriter::setIndentString »
  • PHP Manual
  • XMLWriter
  • Girintilemeyi açıp kapar

XMLWriter::setIndent

xmlwriter_set_indent

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::setIndent -- xmlwriter_set_indent — Girintilemeyi açıp kapar

Açıklama

Nesne yönelimli kullanım

public XMLWriter::setIndent(bool $girintile): bool

Yordamsal kullanım

xmlwriter_set_indent(XMLWriter $nesne, bool $girintile): bool

Girintilemeyi açıp kapar.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

girintile

Girintileme etkin olacaksa true belirtilir.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.

Örnekler

Örnek 1 - XMLWriter::setIndent() ve karışık içerik

İçerik karışık olduğunda girintilemeyi etkinleştirmek uygun olmaz. Çünkü girinti dizesi satır içi elemanlara da uygulanır.

<?php
$writer = new XMLWriter();
$writer->openMemory();
$writer->setIndent(2);
$writer->startDocument();
$writer->startElement('p');
$writer->text('before');
$writer->writeElement('a', 'element');
$writer->text('after');
$writer->endElement();
$writer->endDocument();
echo $writer->outputMemory();
?>

Yukarıdaki örneğin çıktısı:

<?xml version="1.0"?>
<p>before <a>element</a>
after</p>

Notlar

Bilginize:

Bir xmlwriter açılınca girinti sıfırlanır.

Ayrıca Bakınız

  • XMLWriter::setIndentString() - Girintileme için kullanılacak dizgeyi belirler

User Contributed Notes

info at ensostudio dot ru 04-Apr-2021 01:04
NOTE: $enable can be integer as in example, or boolean.


Girintileme için kullanılacak dizgeyi belirler

  • « XMLWriter::setIndent
  • XMLWriter::startAttribute »
  • PHP Manual
  • XMLWriter
  • Girintileme için kullanılacak dizgeyi belirler

XMLWriter::setIndentString

xmlwriter_set_indent_string

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::setIndentString -- xmlwriter_set_indent_string — Girintileme için kullanılacak dizgeyi belirler

Açıklama

Nesne yönelimli kullanım

public XMLWriter::setIndentString(string $girinti): bool

Yordamsal kullanım

xmlwriter_set_indent_string(XMLWriter $nesne, string $girinti): bool

XML belgedeki her elemanı girintilemekte kullanılacak dizgeyi belirler.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

girinti

Girintileme dizgesi.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.

Notlar

Bilginize:

Bir xmlwriter açılınca girinti sıfırlanır.

Ayrıca Bakınız

  • XMLWriter::setIndent() - Girintilemeyi açıp kapar

User Contributed Notes

There are no user contributed notes for this page.


Bir öznitelik başlatır

  • « XMLWriter::setIndentString
  • XMLWriter::startAttributeNs »
  • PHP Manual
  • XMLWriter
  • Bir öznitelik başlatır

XMLWriter::startAttribute

xmlwriter_start_attribute

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startAttribute -- xmlwriter_start_attribute — Bir öznitelik başlatır

Açıklama

Nesne yönelimli kullanım

public XMLWriter::startAttribute(string $isim): bool

Yordamsal kullanım

xmlwriter_start_attribute(XMLWriter $nesne, string $isim): bool

Bir öznitelik başlatır.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

isim

Özniteliğin ismi.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.

Örnekler

Örnek 1 - XMLWriter::startAttribute() temel kullanım örneği

<?php
$writer = new XMLWriter;
$writer->openURI('php://output');
$writer->startDocument('1.0', 'UTF-8');
$writer->startElement('eleman');
$writer->startAttribute('öznitelik');
$writer->text('değer');
$writer->endAttribute();
$writer->endElement();
$writer->endDocument();

Yukarıdaki örnek şuna benzer bir çıktı üretir:

<?xml version="1.0" encoding="UTF-8"?>
<eleman öznitelik="değer"/>

Ayrıca Bakınız

  • XMLWriter::startAttributeNS() - İsim alanlı bir öznitelik başlatır
  • XMLWriter::endAttribute() - Geçerli özniteliği sonlandırır
  • XMLWriter::writeAttribute() - Öznitelik yazar
  • XMLWriter::writeAttributeNS() - İsim alanlı öznitelik yazar

User Contributed Notes

There are no user contributed notes for this page.


İsim alanlı bir öznitelik başlatır

  • « XMLWriter::startAttribute
  • XMLWriter::startCdata »
  • PHP Manual
  • XMLWriter
  • İsim alanlı bir öznitelik başlatır

XMLWriter::startAttributeNs

xmlwriter_start_attribute_ns

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startAttributeNs -- xmlwriter_start_attribute_ns — İsim alanlı bir öznitelik başlatır

Açıklama

Nesne yönelimli kullanım

public XMLWriter::startAttributeNs(?string $önek, string $isim, ?string $uri): bool

Yordamsal kullanım

xmlwriter_start_attribute_ns(
XMLWriter $writer,
?string $önek,
string $isim,
?string $uri
): bool

İsim alanlı bir öznitelik başlatır.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

önek

İsim alanı öneki.

isim

Özniteliğin ismi.

uri

İsim alanını betimleyen adres; null ise isim alanı bildirimi atlanır.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.
8.0.0 | önek artık null olabiliyor.

Ayrıca Bakınız

  • XMLWriter::startAttribute() - Bir öznitelik başlatır
  • XMLWriter::endAttribute() - Geçerli özniteliği sonlandırır
  • XMLWriter::writeAttribute() - Öznitelik yazar
  • XMLWriter::writeAttributeNS() - İsim alanlı öznitelik yazar

User Contributed Notes

There are no user contributed notes for this page.


Bir CDATA bölümü başlatır

  • « XMLWriter::startAttributeNs
  • XMLWriter::startComment »
  • PHP Manual
  • XMLWriter
  • Bir CDATA bölümü başlatır

XMLWriter::startCdata

xmlwriter_start_cdata

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startCdata -- xmlwriter_start_cdata — Bir CDATA bölümü başlatır

Açıklama

Nesne yönelimli kullanım

public XMLWriter::startCdata(): bool

Yordamsal kullanım

xmlwriter_start_cdata(XMLWriter $nesne): bool

Bir CDATA bölümü başlatır.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.

Ayrıca Bakınız

  • XMLWriter::endCData() - Geçerli CDATA bölümünü kapatır
  • XMLWriter::writeCData() - CDATA yazar

User Contributed Notes

There are no user contributed notes for this page.


Bir açıklama başlatır

  • « XMLWriter::startCdata
  • XMLWriter::startDocument »
  • PHP Manual
  • XMLWriter
  • Bir açıklama başlatır

XMLWriter::startComment

xmlwriter_start_comment

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 1.0.0)

XMLWriter::startComment -- xmlwriter_start_comment — Bir açıklama başlatır

Açıklama

Nesne yönelimli kullanım

public XMLWriter::startComment(): bool

Yordamsal kullanım

xmlwriter_start_comment(XMLWriter $nesne): bool

Bir açıklama başlatır.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.

Ayrıca Bakınız

  • XMLWriter::endComment() - Geçerli açıklamayı kapatır
  • XMLWriter::writeComment() - Açıklama yazar

User Contributed Notes

There are no user contributed notes for this page.


Belgenin XML bildirimini yazar

  • « XMLWriter::startComment
  • XMLWriter::startDtd »
  • PHP Manual
  • XMLWriter
  • Belgenin XML bildirimini yazar

XMLWriter::startDocument

xmlwriter_start_document

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startDocument -- xmlwriter_start_document — Belgenin XML bildirimini yazar

Açıklama

Nesne yönelimli kullanım

public XMLWriter::startDocument(?string $version = "1.0", ?string $encoding = null, ?string $standalone = null): bool

Yordamsal kullanım

xmlwriter_start_document(
XMLWriter $writer,
?string $version = "1.0",
?string $encoding = null,
?string $standalone = null
): bool

Belgenin XML bildirimini yazar.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

version

XML bildirimindeki version özniteliğinin değeri. 1.0 öntanımlıdır.

encoding

XML bildirimindeki encoding özniteliğinin değeri.

standalone

XML bildirimindeki standalone özniteliğinin değeri. yes veya no olabilir.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.

Ayrıca Bakınız

  • XMLWriter::endDocument() - Geçerli belgeyi sonlandırır

User Contributed Notes

Sbastien 13-Mar-2022 09:52
XMLWriter::startDocument() writes the XML declaration.

Without XMLWriter::startDocument() :

<?php

$xml = new XMLWriter();
$xml->openUri('php://stdout');
$xml->writeElement('message', 'Hello World!');
exit;

/*
Outputs :
<message>Hello World!</message>
*/
?>

With XMLWriter::startDocument() :

<?php

$xml = new XMLWriter();
$xml->openUri('php://stdout');
$xml->startDocument();
$xml->writeElement('message', 'Hello World!');
exit;

/*
Outputs :
<?xml version="1.0"?>
<message>Hello World!</message>
*/
?>


Bir DTD başlangıç etiketi oluşturur

  • « XMLWriter::startDocument
  • XMLWriter::startDtdAttlist »
  • PHP Manual
  • XMLWriter
  • Bir DTD başlangıç etiketi oluşturur

XMLWriter::startDtd

xmlwriter_start_dtd

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startDtd -- xmlwriter_start_dtd — Bir DTD başlangıç etiketi oluşturur

Açıklama

Nesne yönelimli kullanım

public XMLWriter::startDtd(string $kök_eleman, ?string $publicId = null, ?string $systemId = null): bool

Yordamsal kullanım

xmlwriter_start_dtd(
XMLWriter $writer,
string $kök_eleman,
?string $publicId = null,
?string $systemId = null
): bool

Bir DTD bölümünü başlatır.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

kök_eleman

Oluşturulacak belgenin kök elemanının nitelikli ismi.

publicId

Harici alt kümenin genel betimleyicisi.

systemId

Harici alt kümenin sistem betimleyicisi.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.

Ayrıca Bakınız

  • XMLWriter::endDTD() - Geçerli DTD'yi kapatır
  • XMLWriter::writeDTD() - DTD'yi' yazar

User Contributed Notes

There are no user contributed notes for this page.


Bir DTD öznitelik listesi bildirimini başlatır

  • « XMLWriter::startDtd
  • XMLWriter::startDtdElement »
  • PHP Manual
  • XMLWriter
  • Bir DTD öznitelik listesi bildirimini başlatır

XMLWriter::startDtdAttlist

xmlwriter_start_dtd_attlist

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startDtdAttlist -- xmlwriter_start_dtd_attlist — Bir DTD öznitelik listesi bildirimini başlatır

Açıklama

Nesne yönelimli kullanım

public XMLWriter::startDtdAttlist(string $isim): bool

Yordamsal kullanım

xmlwriter_start_dtd_attlist(XMLWriter $nesne, string $isim): bool

Bir DTD öznitelik listesi bildirimini başlatır.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

isim

Öznitelik listesinin ismi.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.

Ayrıca Bakınız

  • XMLWriter::endDTDAttlist() - Geçerli DTD öznitelik listesi bildirimini kapatır
  • XMLWriter::writeDTDAttlist() - DTD öznitelik listesi yazar

User Contributed Notes

There are no user contributed notes for this page.


Bir DTD eleman bildirimini başlatır

  • « XMLWriter::startDtdAttlist
  • XMLWriter::startDtdEntity »
  • PHP Manual
  • XMLWriter
  • Bir DTD eleman bildirimini başlatır

XMLWriter::startDtdElement

xmlwriter_start_dtd_element

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startDtdElement -- xmlwriter_start_dtd_element — Bir DTD eleman bildirimini başlatır

Açıklama

Nesne yönelimli kullanım

public XMLWriter::startDtdElement(string $isim): bool

Yordamsal kullanım

xmlwriter_start_dtd_element(XMLWriter $nesne, string $isim): bool

Bir DTD eleman bildirimini başlatır.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

isim

Oluşturulacak belge türünün nitelikli ismi.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.

Ayrıca Bakınız

  • XMLWriter::endDTDElement() - Geçerli DTD eleman bildirimini kapatır
  • XMLWriter::writeDTDElement() - DTD elemanını yazar

User Contributed Notes

There are no user contributed notes for this page.


Bir DTD öğe bildirimini başlatır

  • « XMLWriter::startDtdElement
  • XMLWriter::startElement »
  • PHP Manual
  • XMLWriter
  • Bir DTD öğe bildirimini başlatır

XMLWriter::startDtdEntity

xmlwriter_start_dtd_entity

(PHP 5 >= 5.2.1, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startDtdEntity -- xmlwriter_start_dtd_entity — Bir DTD öğe bildirimini başlatır

Açıklama

Nesne yönelimli kullanım

public XMLWriter::startDtdEntity(string $isim, bool $değiştige_var): bool

Yordamsal kullanım

xmlwriter_start_dtd_entity(XMLWriter $nesne, string $isim, bool $değiştige_var): bool

Bir DTD öğe bildirimini başlatır.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

isim

Öğe ismi.

değiştige_var

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.

Ayrıca Bakınız

  • XMLWriter::endDTDEntity() - Geçerli DTD öğe bildirimini kapatır
  • XMLWriter::writeDTDEntity() - DTD öğesini yazar

User Contributed Notes

There are no user contributed notes for this page.


Bir eleman başlangıç etiketi oluşturur

  • « XMLWriter::startDtdEntity
  • XMLWriter::startElementNs »
  • PHP Manual
  • XMLWriter
  • Bir eleman başlangıç etiketi oluşturur

XMLWriter::startElement

xmlwriter_start_element

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startElement -- xmlwriter_start_element — Bir eleman başlangıç etiketi oluşturur

Açıklama

Nesne yönelimli kullanım

public XMLWriter::startElement(string $isim): bool

Yordamsal kullanım

xmlwriter_start_element(XMLWriter $nesne, string $isim): bool

Bir elemanı başlatır.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

isim

Elemanın ismi.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.

Ayrıca Bakınız

  • XMLWriter::endElement() - Geçerli elemanı kapatır
  • XMLWriter::writeElement() - Elemanı içeriğiyle birlikte yazar

User Contributed Notes

There are no user contributed notes for this page.


Bir isim alanlı eleman başlangıç etiketi oluşturur

  • « XMLWriter::startElement
  • XMLWriter::startPi »
  • PHP Manual
  • XMLWriter
  • Bir isim alanlı eleman başlangıç etiketi oluşturur

XMLWriter::startElementNs

xmlwriter_start_element_ns

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startElementNs -- xmlwriter_start_element_ns — Bir isim alanlı eleman başlangıç etiketi oluşturur

Açıklama

Nesne yönelimli kullanım

public XMLWriter::startElementNs(?string $önek, string $isim, ?string $uri): bool

Yordamsal kullanım

xmlwriter_start_element_ns(
XMLWriter $nesne,
?string $önek,
string $isim,
?string $uri
): bool

İsim alanlı bir etiket başlatır.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

önek

İsim alanı öneki; null ise isim alanı atlanır.

isim

Elemanın ismi.

uri

İsim alanını betimleyen adres; null ise isim alanı bildirimi atlanır.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.

Ayrıca Bakınız

  • XMLWriter::endElement() - Geçerli elemanı kapatır
  • XMLWriter::writeElementNS() - İsim alanlı elemanı içeriğiyle birlikte yazar

User Contributed Notes

There are no user contributed notes for this page.


Bir işlem komutu başlangıç etiketi oluşturur

  • « XMLWriter::startElementNs
  • XMLWriter::text »
  • PHP Manual
  • XMLWriter
  • Bir işlem komutu başlangıç etiketi oluşturur

XMLWriter::startPi

xmlwriter_start_pi

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startPi -- xmlwriter_start_pi — Bir işlem komutu başlangıç etiketi oluşturur

Açıklama

Nesne yönelimli kullanım

public XMLWriter::startPi(string $hedef): bool

Yordamsal kullanım

xmlwriter_start_pi(XMLWriter $nesne, string $hedef): bool

Bir işlem komutu başlangıç etiketi oluşturur.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

hedef

İşlem komutunun hedefi.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.

Ayrıca Bakınız

  • XMLWriter::endPI() - Geçerli işlem komutunu kapatır
  • XMLWriter::writePI() - Bir işlem komutu (PI) yazar

User Contributed Notes

There are no user contributed notes for this page.


Bir metni yazar

  • « XMLWriter::startPi
  • XMLWriter::writeAttribute »
  • PHP Manual
  • XMLWriter
  • Bir metni yazar

XMLWriter::text

xmlwriter_text

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::text -- xmlwriter_text — Bir metni yazar

Açıklama

Nesne yönelimli kullanım

public XMLWriter::text(string $içerik): bool

Yordamsal kullanım

xmlwriter_text(XMLWriter $nesne, string $içerik): bool

Bir metni yazar.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

içerik

Metnin içeriği. <, >, & ve " karakterleri öğe gönderimleri olarak yazılır (yani sırasıyla, &lt;, &gt;, &amp; ve &quot;). ' dahil diğer tüm karakterler harfi harfine yazılır. Özel XML karakterlerini harfi harfine yazmak için veya değişmez öğe gönderimlerini yazmak için, xmlwriter_write_raw() kullanılmalıdır.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.

User Contributed Notes

There are no user contributed notes for this page.


Öznitelik yazar

  • « XMLWriter::text
  • XMLWriter::writeAttributeNs »
  • PHP Manual
  • XMLWriter
  • Öznitelik yazar

XMLWriter::writeAttribute

xmlwriter_write_attribute

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeAttribute -- xmlwriter_write_attribute — Öznitelik yazar

Açıklama

Nesne yönelimli kullanım

public XMLWriter::writeAttribute(string $isim, string $değer): bool

Yordamsal kullanım

xmlwriter_write_attribute(XMLWriter $writer, string $isim, string $değer): bool

Bir özniteliği değeriyle birlikte yazar.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

isim

Özniteliğin ismi.

değer

Özniteliğin değeri.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.

Örnekler

Örnek 1 - Alt Öğeleri ve Öznitelikleri Karıştırmak

Alt öğeler ve özniteliklerin yazılması karıştırılırsa, ilk alt öğeden sonraki öznitelik yazma girişimleri başarısız olur ve false döndürür.

<?php
$xml = new XMLWriter();
$xml->openMemory();

$xml->startElement('element');
$xml->writeAttribute('attr1', '0');
$xml->writeElement('subelem', '0');
var_dump($xml->writeAttribute('attr2', '0'));
$xml->endElement();

echo $xml->flush();
?>

Yukarıdaki örneğin çıktısı:

bool(false)
<element attr1="0"><subelem>0</subelem></element>

Ayrıca Bakınız

  • XMLWriter::writeAttributeNS() - İsim alanlı öznitelik yazar
  • XMLWriter::startAttribute() - Bir öznitelik başlatır
  • XMLWriter::startAttributeNS() - İsim alanlı bir öznitelik başlatır
  • XMLWriter::endAttribute() - Geçerli özniteliği sonlandırır

User Contributed Notes

There are no user contributed notes for this page.


İsim alanlı öznitelik yazar

  • « XMLWriter::writeAttribute
  • XMLWriter::writeCdata »
  • PHP Manual
  • XMLWriter
  • İsim alanlı öznitelik yazar

XMLWriter::writeAttributeNs

xmlwriter_write_attribute_ns

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeAttributeNs -- xmlwriter_write_attribute_ns — İsim alanlı öznitelik yazar

Açıklama

Nesne yönelimli kullanım

public XMLWriter::writeAttributeNs(
?string $önek,
string $isim,
?string $uri,
string $değer
): bool

Yordamsal kullanım

xmlwriter_write_attribute_ns(
XMLWriter $writer,
?string $önek,
string $isim,
?string $uri,
string $değer
): bool

Bir isim alanlı özniteliği değeriyle birlikte yazar.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

önek

İsim alanı öneki; null ise isim alanı atlanır.

isim

Özniteliğin ismi.

uri

İsim alanını betimleyen adres; null ise isim alanı bildirimi atlanır.

değer

Özniteliğin değeri.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.

Ayrıca Bakınız

  • XMLWriter::writeAttribute() - Öznitelik yazar
  • XMLWriter::startAttribute() - Bir öznitelik başlatır
  • XMLWriter::startAttributeNS() - İsim alanlı bir öznitelik başlatır
  • XMLWriter::endAttribute() - Geçerli özniteliği sonlandırır

User Contributed Notes

There are no user contributed notes for this page.


CDATA yazar

  • « XMLWriter::writeAttributeNs
  • XMLWriter::writeComment »
  • PHP Manual
  • XMLWriter
  • CDATA yazar

XMLWriter::writeCdata

xmlwriter_write_cdata

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeCdata -- xmlwriter_write_cdata — CDATA yazar

Açıklama

Nesne yönelimli kullanım

public XMLWriter::writeCdata(string $içerik): bool

Yordamsal kullanım

xmlwriter_write_cdata(XMLWriter $nesne, string $içerik): bool

İçeriğiyle birlikte CDATA yazar.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

içerik

CDATA içeriği.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.

Örnekler

Örnek 1 - xmlwriter_write_cdata() temel kullanım örneği

<?php
// Belgeyi başlatalım
$xml = new XmlWriter();
$xml->openMemory();
$xml->setIndent(true);
$xml->startDocument('1.0', 'UTF-8');
$xml->startElement('belgem');
$xml->startElement('elemanım');

// CData çıktıla
$xml->startElement('cdataelemanım');
$xml->writeCData("text for inclusion as CData");
$xml->endElement();

// Belgeyi sonlandır ve çıktıla
$xml->endElement();
$xml->endElement();
echo $xml->outputMemory(true);
?>

Yukarıdaki örneğin çıktısı:

<belgem>
 <elemanım>
  <cdataelemanım><![CDATA[text for inclusion as CData]?]></cdataelemanım>
 </elemanım>
</belgem>

Ayrıca Bakınız

  • XMLWriter::startCData() - Bir CDATA bölümü başlatır
  • XMLWriter::endCData() - Geçerli CDATA bölümünü kapatır

User Contributed Notes

There are no user contributed notes for this page.


Açıklama yazar

  • « XMLWriter::writeCdata
  • XMLWriter::writeDtd »
  • PHP Manual
  • XMLWriter
  • Açıklama yazar

XMLWriter::writeComment

xmlwriter_write_comment

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeComment -- xmlwriter_write_comment — Açıklama yazar

Açıklama

Nesne yönelimli kullanım

public XMLWriter::writeComment(string $içerik): bool

Yordamsal kullanım

xmlwriter_write_comment(XMLWriter $nesne, string $içerik): bool

Açıklama yazar.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

içerik

Açıklama içeriği.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.

Ayrıca Bakınız

  • XMLWriter::startComment() - Bir açıklama başlatır
  • XMLWriter::endComment() - Geçerli açıklamayı kapatır

User Contributed Notes

There are no user contributed notes for this page.


DTD'yi' yazar

  • « XMLWriter::writeComment
  • XMLWriter::writeDtdAttlist »
  • PHP Manual
  • XMLWriter
  • DTD'yi' yazar

XMLWriter::writeDtd

xmlwriter_write_dtd

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDtd -- xmlwriter_write_dtd — DTD'yi' yazar

Açıklama

Nesne yönelimli kullanım

public XMLWriter::writeDtd(
string $isim,
?string $publicId = null,
?string $systemId = null,
?string $altküme = null
): bool

Yordamsal kullanım

xmlwriter_write_dtd(
XMLWriter $writer,
string $isim,
?string $publicId = null,
?string $systemId = null,
?string $altküme = null
): bool

DTD'yi yazar.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

isim

DTD ismi.

publicId

Harici alt kümenin genel betimleyicisi.

systemId

Harici alt kümenin sistem betimleyicisi.

altküme

DTD içeriği.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.

Ayrıca Bakınız

  • XMLWriter::startDTD() - Bir DTD başlangıç etiketi oluşturur
  • XMLWriter::endDTD() - Geçerli DTD'yi kapatır

User Contributed Notes

There are no user contributed notes for this page.


DTD öznitelik listesi yazar

  • « XMLWriter::writeDtd
  • XMLWriter::writeDtdElement »
  • PHP Manual
  • XMLWriter
  • DTD öznitelik listesi yazar

XMLWriter::writeDtdAttlist

xmlwriter_write_dtd_attlist

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDtdAttlist -- xmlwriter_write_dtd_attlist — DTD öznitelik listesi yazar

Açıklama

Nesne yönelimli kullanım

public XMLWriter::writeDtdAttlist(string $isim, string $içerik): bool

Yordamsal kullanım

xmlwriter_write_dtd_attlist(XMLWriter $nesne, string $isim, string $içerik): bool

Bir DTD öznitelik listesini yazar.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

isim

DTD öznitelik listesinin ismi.

içerik

DTD öznitelik listesinin içeriği.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.

Ayrıca Bakınız

  • XMLWriter::startDTDAttlist() - Bir DTD öznitelik listesi bildirimini başlatır
  • XMLWriter::endDTDAttlist() - Geçerli DTD öznitelik listesi bildirimini kapatır

User Contributed Notes

There are no user contributed notes for this page.


DTD elemanını yazar

  • « XMLWriter::writeDtdAttlist
  • XMLWriter::writeDtdEntity »
  • PHP Manual
  • XMLWriter
  • DTD elemanını yazar

XMLWriter::writeDtdElement

xmlwriter_write_dtd_element

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDtdElement -- xmlwriter_write_dtd_element — DTD elemanını yazar

Açıklama

Nesne yönelimli kullanım

public XMLWriter::writeDtdElement(string $name, string $içerik): bool

Yordamsal kullanım

xmlwriter_write_dtd_element(XMLWriter $nesne, string $isim, string $içerik): bool

Bir DTD elemanını yazar.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

isim

DTD elemanının ismi.

içerik

Elemanın içeriği.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.

Ayrıca Bakınız

  • XMLWriter::startDTDElement() - Bir DTD eleman bildirimini başlatır
  • XMLWriter::endDTDElement() - Geçerli DTD eleman bildirimini kapatır

User Contributed Notes

There are no user contributed notes for this page.


DTD öğesini yazar

  • « XMLWriter::writeDtdElement
  • XMLWriter::writeElement »
  • PHP Manual
  • XMLWriter
  • DTD öğesini yazar

XMLWriter::writeDtdEntity

xmlwriter_write_dtd_entity

(PHP 5 >= 5.2.1, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDtdEntity -- xmlwriter_write_dtd_entity — DTD öğesini yazar

Açıklama

Nesne yönelimli kullanım

public XMLWriter::writeDtdEntity(
string $isim,
string $içerik,
bool $isParam = false,
?string $publicId = null,
?string $systemId = null,
?string $notationData = null
): bool

Yordamsal kullanım

xmlwriter_write_dtd_entity(
XMLWriter $nesne,
string $isim,
string $içerik,
bool $isParam = false,
?string $publicId = null,
?string $systemId = null,
?string $notationData = null
): bool

Bir DTD öğesini yazar.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

isim

Öğe ismi.

içerik

Öğe içeriği.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.
8.0.0 | publicId, systemId vr notationData artık null olabiliyor.

Ayrıca Bakınız

  • XMLWriter::startDTDEntity() - Bir DTD öğe bildirimini başlatır
  • XMLWriter::endDTDEntity() - Geçerli DTD öğe bildirimini kapatır

User Contributed Notes

There are no user contributed notes for this page.


Elemanı içeriğiyle birlikte yazar

  • « XMLWriter::writeDtdEntity
  • XMLWriter::writeElementNs »
  • PHP Manual
  • XMLWriter
  • Elemanı içeriğiyle birlikte yazar

XMLWriter::writeElement

xmlwriter_write_element

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeElement -- xmlwriter_write_element — Elemanı içeriğiyle birlikte yazar

Açıklama

Nesne yönelimli kullanım

public XMLWriter::writeElement(string $etiket, ?string $içerik = null): bool

Yordamsal kullanım

xmlwriter_write_element(XMLWriter $nesne, string $etiket, ?string $içerik = null): bool

Elemanı içeriğiyle birlikte yazar.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

etiket

Elemanın ismi.

içerik

Elemanın içeriği.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.

Ayrıca Bakınız

  • XMLWriter::startElement() - Bir eleman başlangıç etiketi oluşturur
  • XMLWriter::endElement() - Geçerli elemanı kapatır
  • XMLWriter::writeElementNS() - İsim alanlı elemanı içeriğiyle birlikte yazar

User Contributed Notes

There are no user contributed notes for this page.


İsim alanlı elemanı içeriğiyle birlikte yazar

  • « XMLWriter::writeElement
  • XMLWriter::writePi »
  • PHP Manual
  • XMLWriter
  • İsim alanlı elemanı içeriğiyle birlikte yazar

XMLWriter::writeElementNs

xmlwriter_write_element_ns

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeElementNs -- xmlwriter_write_element_ns — İsim alanlı elemanı içeriğiyle birlikte yazar

Açıklama

Nesne yönelimli kullanım

public XMLWriter::writeElementNs(
?string $önek,
string $eleman,
?string $uri,
?string $içerik = null
): bool

Yordamsal kullanım

xmlwriter_write_element_ns(
XMLWriter $nesne,
?string $önek,
string $eleman,
?string $uri,
?string $içerik = null
): bool

İsim alanlı elemanı içeriğiyle birlikte yazar.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

önek

İsim alanı öneki; null ise isim alanı atlanır.

eleman

Elemanın ismi.

uri

İsim alanını betimleyen adres; null ise isim alanı bildirimi atlanır.

içerik

Elemanın içeriği.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.

Ayrıca Bakınız

  • XMLWriter::startElementNS() - Bir isim alanlı eleman başlangıç etiketi oluşturur
  • XMLWriter::endElement() - Geçerli elemanı kapatır
  • XMLWriter::writeElement() - Elemanı içeriğiyle birlikte yazar

User Contributed Notes

There are no user contributed notes for this page.


Bir işlem komutu (PI) yazar

  • « XMLWriter::writeElementNs
  • XMLWriter::writeRaw »
  • PHP Manual
  • XMLWriter
  • Bir işlem komutu (PI) yazar

XMLWriter::writePi

xmlwriter_write_pi

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writePi -- xmlwriter_write_pi — Bir işlem komutu (PI) yazar

Açıklama

Nesne yönelimli kullanım

public XMLWriter::writePi(string $hedef, string $içerik): bool

Yordamsal kullanım

xmlwriter_write_pi(XMLWriter $nesne, string $hedef, string $içerik): bool

Bir işlem komutu (PI) yazar.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

hedef

İşlem komutunun hedefi.

içerik

İşlem komutunun içeriği.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.

Ayrıca Bakınız

  • XMLWriter::startPI() - Bir işlem komutu başlangıç etiketi oluşturur
  • XMLWriter::endPI() - Geçerli işlem komutunu kapatır

User Contributed Notes

There are no user contributed notes for this page.


Ham XML metni yazar

  • « XMLWriter::writePi
  • XSL »
  • PHP Manual
  • XMLWriter
  • Ham XML metni yazar

XMLWriter::writeRaw

xmlwriter_write_raw

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL xmlwriter >= 2.0.4)

XMLWriter::writeRaw -- xmlwriter_write_raw — Ham XML metni yazar

Açıklama

Nesne yönelimli kullanım

public XMLWriter::writeRaw(string $içerik): bool

Yordamsal kullanım

xmlwriter_write_raw(XMLWriter $nesne, string $içerik): bool

Ham XML metni yazar.

Bağımsız Değişkenler

nesne

Sadece yordamsal çağrılar için. Değiştirilecek XMLWriter örneği. Nesne xmlwriter_open_uri() veya xmlwriter_open_memory() işlevinden döndürülür.

içerik

Yazılacak metin.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: | Açıklama
8.0.0 | nesne için artık XMLWriter örneği gerekiyor, evvelce resource türünde bir değer gerekirdi.

Ayrıca Bakınız

  • XMLWriter::text() - Bir metni yazar

User Contributed Notes

There are no user contributed notes for this page.


XSL

  • Giriş
  • Yapılandırma/Kurulum
    • Gereksinimler
    • Kurulum
    • Çalışma Anı Yapılandırması
    • Özkaynak Türleri
  • Öntanımlı Sabitler
  • Örnekler
    • Örnek collection.xml ve collection.xsl dosyaları
    • libxml hata işleme işlevleri ile hataların işlenmesi
  • XSLTProcessor — XSLTProcessor sınıfı
    • XSLTProcessor::__construct — Yeni bir XSLTProcessor nesnesi oluşturur
    • XSLTProcessor::getParameter — Bir bağımsız değişkenin değerini döndürür
    • XSLTProcessor::getSecurityPrefs — Güvenlik tercihlerini döndürür
    • XSLTProcessor::hasExsltSupport — PHP, EXSLT desteğine sahip mi diye bakar
    • XSLTProcessor::importStylesheet — Biçembent ithal eder
    • XSLTProcessor::registerPHPFunctions — XSLT işlevleri olarak PHP işlevlerinin kullanılması yeteneğini etkin kılar
    • XSLTProcessor::removeParameter — Bağımsız değişken siler
    • XSLTProcessor::setParameter — Bir bağımsız değişkene bir değer atar
    • XSLTProcessor::setProfiling — Profil çıktı dosyasını belirler
    • XSLTProcessor::setSecurityPrefs — Güvenlik tercihlerini tanımlar
    • XSLTProcessor::transformToDoc — Belgeyi dönüştürür
    • XSLTProcessor::transformToUri — Dönüşüm sonucunu bir dosyaya yazar
    • XSLTProcessor::transformToXML — Dönüşümü bir dizge olarak döndürür

User Contributed Notes

Jaroslaw Zabiello 23-Jun-2011 07:10
This is more usefull, no files needed, it just takes XML and XSL strings as input parameters and returns transformed XML

<?php
/**
 * @param  $xml
 * @param  $xsl
 * @return string xml
 */
function transform($xml, $xsl) {
   $xslt = new XSLTProcessor();
   $xslt->importStylesheet(new  SimpleXMLElement($xsl));
   return $xslt->transformToXml(new SimpleXMLElement($xml));
}
?>
sudhir dot vis at gmail dot com 25-Apr-2009 11:40
Here is a simplest way to transform the xml from php

<?php
$sXml  = "<xml>";
$sXml .= "<sudhir>hello sudhir</sudhir>";
$sXml .= "</xml>";

# LOAD XML FILE
$XML = new DOMDocument();
$XML->loadXML( $sXml );

# START XSLT
$xslt = new XSLTProcessor();
$XSL = new DOMDocument();
$XSL->load( 'xsl/index.xsl', LIBXML_NOCDATA);
$xslt->importStylesheet( $XSL );
#PRINT
print $xslt->transformToXML( $XML );
?>
allens at nospam dot com 19-Apr-2009 08:45
Problem:
Getting Netbeans error message:
Fatal error: Class 'xsltprocessor' not found

Solution:
place copy of php.ini in the c:\windows directory!

by default the php.ini file has xsl disabled......search for the line

;extension=php_xsl.dll

to enable XSL....remove ; so that the extension gets included

Then if Netbeans gives you the following message:
PHP Startup: Unable to load dynamic library './php_xsl.dll'

then you need to run the php-5.2.9-1-win32-installer.msi again
this time selecting the XSL extension!
visual77 at gmail dot com 20-Sep-2008 04:35
The XSLTProcessor is kind of a pain to use to generate an entire website, mostly due to the tedious process of building an XML tree through DOMDocument's createElement and appendChild functions.

To get an entire website out of nothing but XML and XSL (which really is a superior system to just echoing out the HTML), you could use an object that does all the PHP data structure to XML data tree conversion, and combines with the XSLTProcessor for rendering. A good object like this is DOMi, which you can find at http://domi.sourceforge.net.
emilise dot victor at gmail dot com 12-Mar-2008 08:10
Here is a way to get an output without using <xml:message> : use the var_dump function of php :
- First bind the php functions with
<? $xslt->registerPHPFunctions() ?>
and xmlns:php="http://php.net/xsl" in the stylesheet
- Then you can call the var_dump function like this : <xsl:variable name="a" select="php:function('var_dump', $return)" />

I couldn't find a way to call the function and have it really print the result without creating a variable, but well, it's just for debugging...
shangxiao at php dot net 10-Jan-2008 05:38
When using the DOM api to add xsl commands to your stylesheet dynamically, be sure to use createElementNS() rather than createElement() otherwise the XSLTProcessor will not recognise these DOM nodes.

Eg:
$xsl->createElementNS('http://www.w3.org/1999/XSL/Transform', 'xsl:element');
pb at online-magazin dot at 11-Oct-2007 03:13
Calling the Saxon XSLT Processor is a very esay task to do!

You just need to do some simple task

1. Install the JavaBridge for PHP

2. Download the freeware (B) Saxon distribution from http://saxon.sourceforge.net/

3. Put the jar files in a directory whre you have access

4. Use this sample of code

// Directory where the jar files are located
define("SAXON_DIR", $_SERVER['DOCUMENT_ROOT']."/saxonb8.9.0/");

// include the jars
java_require(SAXON_DIR."saxon8.jar;".SAXON_DIR."saxon8-dom.jar");

$sXslFile = $_SERVER['DOCUMENT_ROOT']."/myfirst.xsl"; // The xsl file
$sXmlFile = $_SERVER['DOCUMENT_ROOT']."/myfirst.xml"; // The xml file

try
{
  $oXslSource = new java("javax.xml.transform.stream.StreamSource", "file://".$sXslFile);
  $oXmlSource = new java("javax.xml.transform.stream.StreamSource", "file://".$sXmlFile);

  $oFeatureKeys = new JavaClass("net.sf.saxon.FeatureKeys");

  // Create the Factory
  $oTransformerFactory = new java("net.sf.saxon.TransformerFactoryImpl");

  //Disable source document validation
  $oTransformerFactory->setAttribute($oFeatureKeys->SCHEMA_VALIDATION, 4);

  // Create a new Transformer
  $oTransFormer = $oTransformerFactory->newTransformer($oXslSource);

  // Create a StreamResult to store the output
  $oResultStringWriter = new java("java.io.StringWriter");
  $oResultStream = new java("javax.xml.transform.stream.StreamResult", $oResultStringWriter);

  // Transform
  $oTransFormer->transform($oXmlSource, $oResultStream);

  // Echo the output from the transformation
  echo java_cast($oResultStringWriter->toString(), "string");

}
catch(JavaException $e){
   echo java_cast($e->getCause()->toString(), "string");
   exit;
}

5. Enjoy

This is working quite well.
Vasil Rangelov 21-Aug-2007 07:31
@basslines at gmail dot com
"
As far as I can tell, the most recent stable versions of LibXML/LibXSLT/LibEXSLT do NOT support xPath 2.0 / XSLT 2.0 transformations. The only support for XSLT 2.0 that I've found is in Java's SAXON processor (http://saxon.sourceforge.net/).
"

Using SAXON or AltovaXML by using their JAVA bindings could prove to be a difficult task to do, and .NET seems to be buggy (at least for me). However, I've made a class that uses SAXON or AltovaXML from the command line. AltovaXML could also be used with COM, provided it's registered as a COM component.

You can download my wrapper from:
http://xslt2processor.sourceforge.net/

I still need to implement a more graceful error handling (the way the XSL extension uses the Libxml functions), and once the bug
http://bugs.php.net/bug.php?id=41577
is fixed, I'll implement the .NET interfaces too.

I'll appreciate any feedback.
geoffreyj dot lee at gmail dot com 01-Jul-2007 11:02
Here are a couple useful tips for those who care about cross-browser compatibility.

Given:

<script type="text/javascript" src="test.js"></script>

XSLT will automatically condense it to:

<script type="text/javascript" src="test.js"/>

While this is good, Internet Explorer breaks on empty script tags. So, the simple solution is to add something to prevent an empty tag. For example:

<script type="text/javascript" src="test.js"><xsl:comment/></script>

Produces:

<script type="text/javascript" src="test.js">

</script>

------------------------

Also, here is a way to use IE's conditional comments:

<xsl:comment>[if gte IE 5]&#62;
&#60;link rel="stylesheet" type="text/css" href="ie.css" /&#62;
&#60;![endif]</xsl:comment>

Produces:

<!--[if gte IE 5]>
<link rel="stylesheet" type="text/css" href="ie.css" />
<![endif]-->

This will let you isolate IE-related CSS without needing to use ugly CSS hacks.
gabriel dot birke at web dot de 10-May-2007 03:19
Each <xsl:message> tag will generate a PHP error (level Warning). If you want to collect and pretty-print them, you could use a custom error handling function that collects the warnings in a static variable.
mnot at mnot dot net 08-May-2007 08:59
You can set an HTTP proxy for the XSLT document() function to use (as well as DTD external references) by setting http_proxy in the environment.

E.g., in Apache configuration;

SetEnv http_proxy http://127.0.0.1:3128/
Ryan D. Hatch 02-May-2007 01:14
Looking for php_xsl.dll?

If you installed on Windows using the MSI Installer - you may not have it.

1.) Add/Remove Programs and Change PHP Installation.  Select XSL Extension.

OR

2.) Download complete .zip file of PHP and you can copy php_xsl.dll into your PHP/etc directory.

Just a note.

Ryan D. Hatch
adrian at foeder dot de 14-Sep-2006 02:45
If you want to use the document()-function inside your XSL stylesheet, please note that you have to use an absolute path there.
Important for windows users: the absolute path *has* to be with forward slashes, so subsitute windows-path-backslashes to forward slashes before you transform the document.

Examples:
This will NOT work:
<xsl:copy-of select="document('test.xml')" />

This will also NOT work:
<xsl:copy-of select="document('c:\temp\test.xml')" />

But this WILL work:
<xsl:copy-of select="document('c:/temp/test.xml')" />
27-Apr-2006 06:26
Enable libxslt library, PHP 5, under windows:

To Enable:
In your php.ini
1. Uncomment ;extension=php_xsl.dll
2. Change extension_dir to
     extension_dir = "./ext"

To Confirm:
1. In a test.php page:
<?php phpinfo() ?>
2. Run test.php
3. Search for "libxslt Version". It should return a version number in a XSL headed table.

Further info Google
"Configuring and Testing PHP Servers for XSL Support"
Fabrice Bonny 30-Mar-2006 01:34
In response to how to use entities from DTD (internal or external) in XSLT. It works if you do this way:

$xsl = new DOMDocument;
$xsl->resolveExternals = TRUE;
$xsl->substituteEntities = TRUE;
$xsl->load(...);

Hope this helps! ;-)
basslines at gmail dot com 29-Mar-2006 10:07
As far as I can tell, the most recent stable versions of LibXML/LibXSLT/LibEXSLT do NOT support xPath 2.0 / XSLT 2.0 transformations. The only support for XSLT 2.0 that I've found is in Java's SAXON processor (http://saxon.sourceforge.net/).
17-Mar-2006 09:14
In response to appletalk at gmail dot com
<snip>
As many of you may have noticed, DOM parser gives errors if the '&nbsp;' entity is present. The E_WARN message looks like:
Warning: DOMDocument::load() [function.load]: Entity 'nbsp' not defined in ...
There're many ways to solve this:
.....
b) Defining &nbsp;
At the top of the document, after the <?xml?> definition, add:
   <!DOCTYPE xsl:stylesheet [
   <!ENTITY nbsp "&#160;" >
   ]>
.......</snip>
Just wanted to let people know that option b does NOT work. I'm not sure why this isn't implemented correctly, but it isn't, so don't waste your time. It's unfortunate the DOMXSL transform is so much less capable than the old xslt function.
venkatesh at lammersmedical dot com 01-Mar-2005 06:17
Here is function to read from the XSL sheet which is saved as a text file.

function ReadExcelSheet($filename){
             $test=file($filename);
             $ar1=str_replace("~[^\t]*\t","\t",$test);
             $ar2=str_replace("~","",$ar1);
             $ar=str_replace("?","",$ar2);
             $temp=array();
             for ($i=0; $i<count($ar); $i++) {
                       if((substr($ar[$i],0,1)!= "\t")){
                           if($ar[$i]!=="\r\n"){
                           array_push($temp,$ar[$i]);
            }
        }
    }
    $name=split("\t",$temp[0]);
    $ExcelList=array();
    for($i=1;$i<count($temp);$i++){
        $split_result=split("\t",$temp[$i]);
        array_push($ExcelList,$split_result);
    }
    $result=insert_into_array($ExcelList,0,$name);
    return($result);
}
appletalk at gmail dot com 04-Feb-2005 10:32
As many of you may have noticed, DOM parser gives errors if the '&nbsp;' entity is present. The E_WARN message looks like:

Warning: DOMDocument::load() [function.load]: Entity 'nbsp' not defined in ...

There're many ways to solve this:
a) The hard way
<xsl:text disable-output-escaping="yes"> &amp;nbsp;</xsl:text>

b) Defining &nbsp;
At the top of the document, after the <?xml?> definition, add:
   <!DOCTYPE xsl:stylesheet [
    <!ENTITY nbsp "&#160;" >
    ]>

c) External Doctype
Just in case you want need other HTML entities, you can call an external doctype with the proper definitions

<!DOCTYPE page SYSTEM "http://gv.ca/dtd/character-entities.dtd">

Of course, you can download the file and place it in your server.
kekoajs at yahoo dot com 22-Dec-2004 02:07
Wow, I spent the better part of a day looking for how one could pass an entire test expression to an XSL stylesheet.  It seems that the XSLT 1.0 specification doesn't support it but PHP 5 (and maybe 4s) inclusion of  EXSLT allows one to do exactly that...

simply add these lines...

xmlns:dyn="http://exslt.org/dynamic"
extension-element-prefixes="dyn"

to the <xsl:stylesheet> element and when using an expression stored in a <xsl:param> element write

<xsl:if test="dyn:evaluate($param-name)">

and viola!  you can now use expressions generated externally in your stylesheet!

EXSLT adds many useful functions that can be integrated into your XSL in a similar fashion.  You can go to http://exslt.org/ to learn more...
rd at jerntorget dot se 24-Sep-2004 03:58
If you get the following warning message:

xsltApplyOneTemplate: _if_ was not compiled in (if can for example be apply-template or some other method), i've found that the problem seems to be an &nbsp; directly before the <xsl:if> or what ever is causing the problem.

One way to get thru the problem is to use span tags around &nbsp;  like : <span>&nbsp;</span>
jw at jwscripts dot com 06-Sep-2004 02:23
The following code is a wrapper to support calls to some of the old xslt_* functions:

<?

if (PHP_VERSION >= 5) {
    // Emulate the old xslt library functions
    function xslt_create() {
        return new XsltProcessor();
    }

    function xslt_process($xsltproc,
                          $xml_arg,
                          $xsl_arg,
                          $xslcontainer = null,
                          $args = null,
                          $params = null) {
        // Start with preparing the arguments
        $xml_arg = str_replace('arg:', '', $xml_arg);
        $xsl_arg = str_replace('arg:', '', $xsl_arg);

        // Create instances of the DomDocument class
        $xml = new DomDocument;
        $xsl = new DomDocument;

        // Load the xml document and the xsl template
        $xml->loadXML($args[$xml_arg]);
        $xsl->loadXML($args[$xsl_arg]);

        // Load the xsl template
        $xsltproc->importStyleSheet($xsl);

        // Set parameters when defined
        if ($params) {
            foreach ($params as $param => $value) {
                $xsltproc->setParameter("", $param, $value);
            }
        }

        // Start the transformation
        $processed = $xsltproc->transformToXML($xml);

        // Put the result in a file when specified
        if ($xslcontainer) {
            return @file_put_contents($xslcontainer, $processed);
        } else {
            return $processed;
        }

    }

    function xslt_free($xsltproc) {
        unset($xsltproc);
    }
}

$arguments = array(
    '/_xml' => file_get_contents("newxslt.xml"),
    '/_xsl' => file_get_contents("newxslt.xslt")
);

$xsltproc = xslt_create();
$html = xslt_process(
    $xsltproc,
    'arg:/_xml',
    'arg:/_xsl',
    null,
    $arguments
);

xslt_free($xsltproc);
print $html;

?>
rojaro 23-Jun-2004 07:43
If you're want to use XML from a variable e.g. $xmldata but the XSLT-StyleSheet from a file, you can do it also the following way:

<?php
$xslt = new xsltProcessor;
$xslt->importStyleSheet(DomDocument::load('filename.xsl'));
print $xslt->transformToXML(DomDocument::loadXML($xmldata));
?>


Giriş

XSL eklentisi, » XSLT dönüşümleri yapmak için » libxslt kütüphanesini kullanarak XSL standardını gerçekler.

User Contributed Notes

There are no user contributed notes for this page.


Gereksinimler

Bu eklenti PHP'nin libxml eklentsini gerektirir. Libxml öntanımlı olarak etkin olduğundan bu örtük olarak sağlansa da derleme sırasında ayrıca bir --with-libxml veya PHP 7.4 öncesinde --enable-libxml gerekir.

Bu eklenti, libxslt kütüphanesinin 1.1.0 veya üstü sürümlerini kullanır. Kütüphane » http://xmlsoft.org/XSLT/ adresinden edinilebilir.

User Contributed Notes

There are no user contributed notes for this page.


Kurulum

PHP XSL eklentisini öntanımlı olarak içerir ve derleme sırasında --with-xsl[=DiZiN] seçeneği ile destek etkin kılınabilir (Buradaki DiZiN libxslt kütüphanesinin kurulu olduğu dizindir).

User Contributed Notes

There are no user contributed notes for this page.


Öntanımlı Sabitler

Buradaki sabitler bu eklenti için tanımlanmış olup, sadece eklentinin PHP içinde derlenmiş olması veya çalışma anında dinamik olarak yüklenmesi halinde kullanılabilir.

XSL_CLONE_AUTO (int)
XSL_CLONE_NEVER (int)
XSL_CLONE_ALWAYS (int)
LIBXSLT_VERSION (int)
10117 gibi bir libxslt sürümü.
LIBXSLT_DOTTED_VERSION (string)
1.1.17 gibi bir libxslt sürümü.
LIBEXSLT_VERSION (int)
813 gibi bir libexslt sürümü.
LIBEXSLT_DOTTED_VERSION (string)
1.1.17 gibi bir libexslt sürümü.
XSL_SECPREF_NONE (int)
Tüm güvenlik kısıtlamalarını devre dışı bırakır.
XSL_SECPREF_READ_FILE (int)
Dosyaları okumaya izin vermez.
XSL_SECPREF_WRITE_FILE (int)
Dosyalara yazmaya izin vermez
XSL_SECPREF_CREATE_DIRECTORY (int)
Dizin oluşturmaya izin vermez.
XSL_SECPREF_READ_NETWORK (int)
Ağ dosyalarının okunmasına izin vermez.
XSL_SECPREF_WRITE_NETWORK (int)
Ağ dosyalarına yazılmasına izin vermez.
XSL_SECPREF_DEFAULT (int)
Hiçbir yazma erişimine izin vermez. Yani, XSL_SECPREF_WRITE_NETWORK | XSL_SECPREF_CREATE_DIRECTORY | XSL_SECPREF_WRITE_FILE sabitlerinin bit maskesidir.

User Contributed Notes

There are no user contributed notes for this page.


Örnekler

İçindekiler

  • Örnek collection.xml ve collection.xsl dosyaları
  • libxml hata işleme işlevleri ile hataların işlenmesi

User Contributed Notes

There are no user contributed notes for this page.


Örnek collection.xml ve collection.xsl dosyaları

Bu eklentideki örneklerin çoğu hem bir XML hem de bir XSL dosyası gerektirir. Örneklerde kullanacağımız collection.xml ve collection.xsl dosyalarının içerikleri:

Örnek 1 - collection.xml

<collection>
 <cd>
  <title>Fight for your mind</title>
  <artist>Ben Harper</artist>
  <year>1995</year>
 </cd>
 <cd>
  <title>Electric Ladyland</title>
  <artist>Jimi Hendrix</artist>
  <year>1997</year>
 </cd>
</collection>

Örnek 2 - collection.xsl

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:param name="owner" select="'Nicolas Eliaszewicz'"/>
 <xsl:output method="html" encoding="utf-8" indent="no"/>
 <xsl:template match="collection">
  Hey! Welcome to <xsl:value-of select="$owner"/>'s sweet CD collection!
  <xsl:apply-templates/>
 </xsl:template>
 <xsl:template match="cd">
  <h1><xsl:value-of select="title"/></h1>
  <h2>by <xsl:value-of select="artist"/> - <xsl:value-of select="year"/></h2>
  <hr />
 </xsl:template>
</xsl:stylesheet>

User Contributed Notes

There are no user contributed notes for this page.


libxml hata işleme işlevleri ile hataların işlenmesi

libxml, hataları işlemek için XSLT işlemedeki hataları yakalamak ve bunlarla başa çıkmak için kullanılabilecek bir dizi işlev sunar.

Örnek 1 fruits.xml

Geçerli bir XML dosyası.

<fruits>
 <fruit>Apple</fruit>
 <fruit>Banana</fruit>
 <fruit>Cherry</fruit>
</fruits>

Örnek 2 fruits.xsl

Geçersiz bir seçim ifadesi içeriyor.

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="html" encoding="utf-8" indent="no"/>
 <xsl:template match="fruits">
  <ul>
   <xsl:apply-templates/>
  </ul>
 </xsl:template>
 <xsl:template match="fruit">
  <li><xsl:value-of select="BU KASITLI BİR HATADIR!"/></li>
 </xsl:template>
</xsl:stylesheet>

Örnek 3 Hataları karşılaştırma ve çıktılama

Aşağıdaki örnek, XSLTProcessor::importStyleSheet() hata içeren bir XSLT betiğiyle çağrılırken ortaya çıkan libxml hatalarını yakalar ve görüntüler.

<?php

$xmldoc = new DOMDocument();
$xsldoc = new DOMDocument();
$xsl = new XSLTProcessor();

$xmldoc->loadXML('fruits.xml');
$xsldoc->loadXML('fruits.xsl');

libxml_use_internal_errors(true);
$result = $xsl->importStyleSheet($xsldoc);
if (!$result) {
foreach (libxml_get_errors() as $error) {
echo "Libxml error: {$error->message}\n";
}
}
libxml_use_internal_errors(false);

if ($result) {
echo $xsl->transformToXML($xmldoc);
}

?>

Yukarıdaki örnek şuna benzer bir çıktı üretir:

Libxml error: Invalid expression

Libxml error: compilation error: file fruits.xsl line 9 element value-of
Libxml error: xsl:value-of : could not compile select expression 'BU KASITLI BİR HATADIR!'

User Contributed Notes

There are no user contributed notes for this page.


XSLTProcessor sınıfı

(PHP 5, PHP 7, PHP 8)

Giriş

Sınıf Sözdizimi

class XSLTProcessor {
/* Yöntemler */
public getParameter(string $isimalanı, string $isim): string|false
public getSecurityPrefs(): int
public hasExsltSupport(): bool
public importStylesheet(object $biçembent): bool
public registerPHPFunctions(array|string|null $işlevler = null): void
public removeParameter(string $isimalanı, string $isim): bool
public setParameter(string $isimalanı, string $isim, string $değer): bool
public setParameter(string $isimalanı, array $seçenekler): bool
public setProfiling(?string $dosya): true
public setSecurityPrefs(int $tercihler): int
public transformToDoc(object $belge, ?string $dönenSınıf = null): object|false
public transformToUri(object $belge, string $dosya): int
public transformToXml(object $belge): string|null|false
}

İçindekiler

  • XSLTProcessor::__construct — Yeni bir XSLTProcessor nesnesi oluşturur
  • XSLTProcessor::getParameter — Bir bağımsız değişkenin değerini döndürür
  • XSLTProcessor::getSecurityPrefs — Güvenlik tercihlerini döndürür
  • XSLTProcessor::hasExsltSupport — PHP, EXSLT desteğine sahip mi diye bakar
  • XSLTProcessor::importStylesheet — Biçembent ithal eder
  • XSLTProcessor::registerPHPFunctions — XSLT işlevleri olarak PHP işlevlerinin kullanılması yeteneğini etkin kılar
  • XSLTProcessor::removeParameter — Bağımsız değişken siler
  • XSLTProcessor::setParameter — Bir bağımsız değişkene bir değer atar
  • XSLTProcessor::setProfiling — Profil çıktı dosyasını belirler
  • XSLTProcessor::setSecurityPrefs — Güvenlik tercihlerini tanımlar
  • XSLTProcessor::transformToDoc — Belgeyi dönüştürür
  • XSLTProcessor::transformToUri — Dönüşüm sonucunu bir dosyaya yazar
  • XSLTProcessor::transformToXML — Dönüşümü bir dizge olarak döndürür

User Contributed Notes

joandres52725lm at gmail dot com 29-Apr-2020 07:29
[Update] PHP version /.3.15 and Windows Uncomment `extension=xsl` to activate it in your php.ini. Then restart your webserver to refresh php.
tschallacka 29-Feb-2016 09:58
uncomment extension=php_xsl.dll on windows to activate it in your php.ini. Then restart your webserver to refresh php.
flavius 13-Nov-2015 05:49
It requires PHP5 XSL extension. On linux:

sudo apt-get install php5-xsl


Yeni bir XSLTProcessor nesnesi oluşturur

  • « XSLTProcessor
  • XSLTProcessor::getParameter »
  • PHP Manual
  • XSLTProcessor
  • Yeni bir XSLTProcessor nesnesi oluşturur

XSLTProcessor::__construct

(PHP 5, PHP 7, PHP 8)

XSLTProcessor::__construct — Yeni bir XSLTProcessor nesnesi oluşturur

Açıklama

XSLTProcessor::__construct()

Yeni bir XSLTProcessor nesnesi oluşturur.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Örnekler

Örnek 1 - Bir XSLTProcessor oluşturmak

<?php

$xsldoc = new DOMDocument();
$xsldoc->load($xsl_filename);

$xmldoc = new DOMDocument();
$xmldoc->load($xml_filename);

$xsl = new XSLTProcessor();
$xsl->importStyleSheet($xsldoc);
echo $xsl->transformToXML($xmldoc);

?>

User Contributed Notes

There are no user contributed notes for this page.


Bir bağımsız değişkenin değerini döndürür

  • « XSLTProcessor::__construct
  • XSLTProcessor::getSecurityPrefs »
  • PHP Manual
  • XSLTProcessor
  • Bir bağımsız değişkenin değerini döndürür

XSLTProcessor::getParameter

(PHP 5, PHP 7, PHP 8)

XSLTProcessor::getParameter — Bir bağımsız değişkenin değerini döndürür

Açıklama

public XSLTProcessor::getParameter(string $isimalanı, string $isim): string|false

Evvelce XSLTProcessor::setParameter() tarafından atanmış bir bağımsız değişkenin değerini döndürür.

Bağımsız Değişkenler

isimalanı

XSLT bağımsız değişkeninin ait olduğu isim alanının adresi.

isim

XSLT bağımsız değişkeninin yerel adı.

Dönen Değerler

Bağımsız değişkene değer atanmamışsa false yoksa değeri döndürür.

Ayrıca Bakınız

  • XSLTProcessor::setParameter() - Bir bağımsız değişkene bir değer atar
  • XSLTProcessor::removeParameter() - Bağımsız değişken siler

User Contributed Notes

There are no user contributed notes for this page.


Güvenlik tercihlerini döndürür

  • « XSLTProcessor::getParameter
  • XSLTProcessor::hasExsltSupport »
  • PHP Manual
  • XSLTProcessor
  • Güvenlik tercihlerini döndürür

XSLTProcessor::getSecurityPrefs

(PHP >= 5.4.0, PHP 7, PHP 8)

XSLTProcessor::getSecurityPrefs — Güvenlik tercihlerini döndürür

Açıklama

public XSLTProcessor::getSecurityPrefs(): int

Güvenlik tercihlerini döndürür.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

XSL_SECPREF_READ_FILE, XSL_SECPREF_WRITE_FILE, XSL_SECPREF_CREATE_DIRECTORY, XSL_SECPREF_READ_NETWORK, XSL_SECPREF_WRITE_NETWORK sabitlerinin bit maskesi.

User Contributed Notes

There are no user contributed notes for this page.


PHP, EXSLT desteğine sahip mi diye bakar

  • « XSLTProcessor::getSecurityPrefs
  • XSLTProcessor::importStylesheet »
  • PHP Manual
  • XSLTProcessor
  • PHP, EXSLT desteğine sahip mi diye bakar

XSLTProcessor::hasExsltSupport

(PHP 5 >= 5.0.4, PHP 7, PHP 8)

XSLTProcessor::hasExsltSupport — PHP, EXSLT desteğine sahip mi diye bakar

Açıklama

public XSLTProcessor::hasExsltSupport(): bool

PHP, yerleşik » EXSLT kütüphanesi ile derlenmiş mi diye bakar.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Örnekler

Örnek 1 - EXSLT desteğinin sınanması

<?php

$proc = new XSLTProcessor;
if (!$proc->hasExsltSupport()) {
die('EXSLT desteği yok');
}

// EXSLT işlemleri yapabiliriz ..

?>

User Contributed Notes

There are no user contributed notes for this page.


Biçembent ithal eder

  • « XSLTProcessor::hasExsltSupport
  • XSLTProcessor::registerPHPFunctions »
  • PHP Manual
  • XSLTProcessor
  • Biçembent ithal eder

XSLTProcessor::importStylesheet

(PHP 5, PHP 7, PHP 8)

XSLTProcessor::importStylesheet — Biçembent ithal eder

Açıklama

public XSLTProcessor::importStylesheet(object $biçembent): bool

Dönüşüm için kullanılmak üzere XSLTProcessor nesnesine biçembent dahil eder.

Bağımsız Değişkenler

biçembent

Bir DOMDocument veya bir SimpleXMLElement nesnesi olarak dahil edilecek biçembent.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

User Contributed Notes

rbmeo at yahoo dot com 12-Jul-2012 09:52
To make your import dynamic, try this code:

<?php
$dom = new DOMDocument();
$dom->load('main.xsl');
$xpath = new DomXPath($dom);
$importnode= $questionsXsl->createElement('xsl:include');
$attr= $questionsXsl->createAttribute('href');
$attr->value = 'import.xsl';
$importnode->appendChild($attr);
$dom->documentElement->insertBefore($importnode,$ref);
$dom->loadXml($dom->saveXml());
?>

this code basically loads the main stylesheet, prepend the import xsl code then reload as xml string so the imported stylesheet will be loaded at dom.
kevin at metalaxe dot com 17-Nov-2007 03:26
Just for reference, as of this writing, this function does not support importing multiple stylesheets. The following will output only the stylesheet transformation of the second imported sheet:

<?php

# LOAD XML FILE
$XML = new DOMDocument();
$XML->load( 'data.xml' );

# START XSLT
$xslt = new XSLTProcessor();

# IMPORT STYLESHEET 1
$XSL = new DOMDocument();
$XSL->load( 'template1.xsl' );
$xslt->importStylesheet( $XSL );

#IMPORT STYLESHEET 2
$XSL = new DOMDocument();
$XSL->load( 'template2.xsl' );
$xslt->importStylesheet( $XSL );

#PRINT
print $xslt->transformToXML( $XML );
?>

This wasn't documented and quite dissapointing.
fcartegnie 21-Jul-2007 06:11
PHP5 xsl processor has a different behaviour than PHP4's one with CDATA sections. (see http://bugs.php.net/bug.php?id=29837)
Loaded XSL sheet CDATA sections does not allow, by default, output-escaping handling (everything in the CDATA is escaped by default).

So in this case you can't build your XSL Dom the usual way:
    $xsldom = DomDocument::loadXML(file_get_contents('sheet.xsl'));

and must go through this one (allowing LIBXML_NOCDATA parameter):
    $xsldom = new DomDocument;
    $xsldom->load('sheet.xsl', LIBXML_NOCDATA);

Then the CDATA output-escaping behaviour will be correct.
diesel at spbnet dot ru 19-Mar-2007 09:07
This is not a problem. You may set DOMDocument's documentURI property.
Something like this

<?php
$xsl = new DOMDocument('1.0','UTF-8');

$xsl->loadXML(file_get_contents('/foo/bar/somefile.xsl');
$xsl->documentURI = '/foo/bar/somefile.xsl';

$xslProc = new XSLTProcessor();
$xslProc->importStylesheet($xsl);
?>

and document('other.xsl') will work fine!
bbrosseau at gmail 01-Mar-2005 08:46
For those who wants to use external documents, it is important not to use the DomDocument::loadXML because the processor will not have the path to look for other files

So if you want to transform some xml with a pre-generated stylesheet $f:

<?php
$f = 'somestylesheet.xsl';
$xsl = DomDocument::loadXML(file_get_contents($f));
?>

document('other.xml') will not work with relative path and <?php $xsl = DomDocument::load($f); ?> will!


XSLT işlevleri olarak PHP işlevlerinin kullanılması yeteneğini etkin kılar

  • « XSLTProcessor::importStylesheet
  • XSLTProcessor::removeParameter »
  • PHP Manual
  • XSLTProcessor
  • XSLT işlevleri olarak PHP işlevlerinin kullanılması yeteneğini etkin kılar

XSLTProcessor::registerPHPFunctions

(PHP 5 >= 5.0.4, PHP 7, PHP 8)

XSLTProcessor::registerPHPFunctions — XSLT işlevleri olarak PHP işlevlerinin kullanılması yeteneğini etkin kılar

Açıklama

public XSLTProcessor::registerPHPFunctions(array|string|null $işlevler = null): void

XSL biçembentlerinde XSLT işlevleri olarak PHP işlevlerinin kullanılabilmesini etkin kılar.

Bağımsız Değişkenler

işlevler

XSLT'den çağrılacak işlevleri belli işlev isimleriyle sınırlamak için kullanılır.

Dizge olarak tek bir işlevin ismi veya dizi olarak işlev isimleri.

Dönen Değerler

Hiçbir değer dönmez.

Örnekler

Örnek 1 - Bir biçembentten bir PHP işlevinin çağrılması

<?php

$xml = <<<EOB
<allusers>
<user>
<uid>bob</uid>
</user>
<user>
<uid>joe</uid>
</user>
</allusers>
EOB;
$xsl = <<<EOB
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:php="http://php.net/xsl">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
<xsl:template match="allusers">
<html><body>
<h2>Users</h2>
<table>
<xsl:for-each select="user">
<tr><td>
<xsl:value-of
select="php:function('ucfirst',string(uid))"/>
</td></tr>
</xsl:for-each>
</table>
</body></html>
</xsl:template>
</xsl:stylesheet>
EOB;
$xmldoc = new DOMDocument();
$xmldoc->loadXML($xml);
$xsldoc = new DOMDocument();
$xsldoc->loadXML($xsl);

$proc = new XSLTProcessor();
$proc->registerPHPFunctions();
$proc->importStyleSheet($xsldoc);
echo $proc->transformToXML($xmldoc);
?>

User Contributed Notes

Matthew, info at mathias-schaefer dot de 25-Nov-2010 08:34
=> there is no instance of your class needed, you have to take care about the namespace (using 5.3).

<!-- xsl:
<xsl:value-of select="php:function ('My\Name\Space\MyClassName::methodName',1+2)"/>
--->

<?php
namespace My\Name\Space;

   class MyClassName
   {
      static public function methodName($someArgument)
      {
         return "resultis:".$someArgument;
      }
   }
?>

<!-- result:
resultis:3
-->

=> no to-string conversion of the argument needed
=> returning numbers is also possible (maybe DOM nodes too)

Keep on hackin'
Demerit 10-Aug-2010 07:58
Let's get the terminology correct here, folks.

If you are calling a function that is residing within a class, reference it by its INSTANCE name, NOT its class name.

class.my_class.php:

<?php
class class_name {
static function function_name($in){
return ($out);
}
}
?>

calling_document.php:

<?php
require_once('class.my_class.php');
$instance_name=new class_name();
?>

my_xslt.xsl:

<xsl:value-of select="php:function ('instance_name::function_name','garbage')" />

BTW, in 5.1.6 double-colon (::) is the only thing that works when calling a function that resides within a class. However, you must declare your function as static. Using -> as some have suggested (e.g., php:function ('instance_name->function_name','garbage')) doesn't work at all, no matter how you declare your function.
Nic Luciano 22-Jul-2009 11:09
Ritch said "If you wish to use a function from inside a class use the double colon (::) notation..."

Also note that the class function must be declared as static.
Ariz Jacinto 08-Jul-2008 02:21
If you want to use replace() function similar to XPath 2.0[1]  and you want to avoid a long XSLT function similar to this one[2], you can use PHP's str_replace() instead:

   <xsl:value-of select="php:functionString('str_replace','pattern', 'replacement' , . )">

Links:
  [1] http://www.w3.org/TR/2004/WD-xpath-functions-20041029/#func-replace
  [2] http://aspn.activestate.com/ASPN/Cookbook/XSLT/Recipe/65426

_
thsoft at vipmail dot hu 27-Dec-2007 02:22
Unfortunately, you can't pass arrays to PHP from XLST.
But you can pass an arbitrary number of arguments to a PHP function and then get them with func_get_args() as an array.
[There's no sense writing a function that is identical to the array() construct, because a function's return value is converted to a string when passed as an argument to another function. This means deep arrays cannot be handled this way.]
thsoft at vipmail dot hu 31-Jan-2007 03:20
The correct way to receive DOM nodes (let it be element, document, document fragment etc.) returned from PHP is to use <xsl:copy-of select="php:function...

I found the idea and an example here: http://bugs.php.net/bug.php?id=29409

For the technical details about the reason, see http://www.w3.org/TR/xslt#copy-of
phil at worldpoolfederation dot com 01-Dec-2006 03:22
Not true

Use :: to call static functions
Use -> to call non static functions

You must define a function as static in php 5.1 to be able to call it statically.
mark at thirst dot org 10-Oct-2006 07:25
Ritch said "If you wish to use a function from inside a class use the double colon (::) notation..."   This worked in 5.0.4 but no longer works in 5.1.6.
franp at free dot fr 02-Sep-2006 01:45
Note that if you want your output to validate against some xhtml dtd, you must add the following attribute to the xsl:stylesheet element of the xslt stylesheet :
exclude-result-prefixes="php".

Otherwise, you get an "invalid attribute xmlns:php" error.
taylorbarstow at that google mail thingy 26-May-2006 05:33
Add-on to my previous note (below) about returning nodesets to XSLT from PHP functions:

You don't have to return a DOMDocument, DOMElement works just as well.  Plus, retuning a DOMElement gets around the problem of discarding the root node which I discuss below and which is also touched on by "Ingram".
heinemann dot juergen at hjcms dot de 08-Mar-2006 02:23
You can find mor Examples at PHP Sources php-5.*/ext/xsl/tests
<?php

$xform = <<<EOT
<?xml version = '1.0' encoding = 'utf-8' ?>
<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:php="http://php.net/xsl"
    xsl:extension-element-prefixes="php"
>
<xsl:output method="xml" indent="yes" encoding="utf-8" />
<xsl:namespace-alias stylesheet-prefix="php" result-prefix="xsl" />
<xsl:template match="root">
<html>
<head>
    <title>Dateformat</title>
</head>
<body>
<xsl:for-each select="datenode">
    <li>
        <xsl:value-of select="php:functionString('convertDate', . )" />
    </li>
    </xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
EOT;

function convertDate( $i )
{
    setlocale( LC_TIME, 'de_DE' );
    return utf8_encode( strftime( '%B %d %A %Y %H:%M:%S CET', $i ) );
}

$xsl = new XSLTProcessor;
$xsl->registerPHPFunctions();
$xsl->setParameter( 'DOCTYPE', 'PUBLIC', 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd' );
$xsl->setParameter( 'html', 'xmlns', 'http://www.w3.org/1999/xhtml' );

$xdom = new DomDocument( '1.0', 'utf-8' );
$xdom->loadXML( $xform );

$xsl->importStyleSheet( $xdom );
unset( $xdom );

$dom = new DomDocument( '1.0', 'utf-8' );
$r = $dom->appendChild( $dom->createElement( 'root' ) );
foreach ( range( 1, 12 ) AS $i ) {
    $r->appendChild( $dom->createElement( 'datenode', mktime( date('G'), date('i'), date('s'), $i, date('d'), date('Y') ) ) );
}

header( "Content-Type: text/html; CHARSET=Windows-1254;" );
header( "Content-Encoding: utf-8" );
echo $xsl->transformToXML( $dom );

?>
Ingram 28-Feb-2006 12:33
Upon testing returning of a nodeset contributed by

taylorbarstow at that google mail thingy

(which works excellently, TY!)

I found that with using:

===
"Presumably, it's worth creating a template to do the discard:

<xsl:template select="*" mode="discardRoot">
   <xsl:apply-templates select="./*" />
</xsl:template>

Which you can call like so:

<xsl:apply-templates select="php:function('getNodeSet')" mode="discardRoot" /> "
===

I could only output the text and not any of the tags after applying templates - i.e. it stripped all elements around text.

Instead using:

===
<xsl:template match="/">
   <xsl:for-each select="php:function('getNodeSet')" />
     <xsl:apply-templates />
   </xsl:for-each>
</xsl:template>

which effectively discards the root node.
===

Worked fine and allowed me to apply-templates without problem on the returned nodeset.
hopeseekr at gmail dot com 01-Feb-2006 12:17
One of the peskiest things I had problems with was encoding URL parameters.  I mean, pretend you want to populate a link with "search+terms" instead of just "search terms".  I was including two seperate URLs in the XML and that was ludicrous.

Below is a far more elegant PHP+XSLT solution.  You will also see it uses two *undocumented* features of registerPHPFunctions(), namely php:functionString() and the passing of parameters to the function.  I figured this out by trial and error; I really hope this note helps you as it *greatly* expands the power of php functions in XSLT!

<?php
/* --- XML input --- */
<search_results>
   <query>concert tickets</query>
</search_results>

/* --- XSL code --- */
<!-- Display query -->
<xsl:template match="search_results">
   <!-- Get URL-encoded string via PHP -->
   <xsl:variable name="safeurl" as="xs:string" select="php:functionString('urlencode', query)" />
   <p>Your search for <em><xsl:value-of select="query"/></em> can be continued at <a href="http://www.tixtix.com/search.php?q={$safeurl}">our search engine</a></p>
</xsl:template>

/* --- XHTML output --- */
<p>Your search for <em>concert tickets</em> can be continued at <a href="http://www.tixtix.com/search.php?q=space+cowboy">our search engine</a></p>
?>

Cool, huh?
taylorbarstow at that google mail thingy 01-Dec-2005 07:14
From a PHP function, you can pass a nodeset back to XSL using a DOMDocument.  For example:

<?php

function getNodeSet() {
   $xml =
       "<test>" .
       "<a-node>This is a node</a-node>" .
       "<a-node>This is another node</a-node>" .
       "</test>";
   $doc = new DOMDocument;
   $doc->loadXml($xml);
   return $doc;
}

?>

The only problem I've found is that the root level node in your returned DOM document acts like the root level node of your original.   SO, it's easy to introduce an infinite loop like so:

<xsl:template match="/">
   <xsl:apply-templates select="php:function('getNodeSet')" />
</xsl:template>

To avoid this, I've been using a construct like:

<xsl:template match="/">
   <xsl:for-each select="php:function('getNodeSet')" />
      <xsl:apply-templates />
   </xsl:for-each>
</xsl:template>

which effectively discards the root node.  Presumably, it's worth creating a template to do the discard:

<xsl:template select="*" mode="discardRoot">
   <xsl:apply-templates select="./*" />
</xsl:template>

Which you can call like so:

<xsl:apply-templates select="php:function('getNodeSet')" mode="discardRoot" />
Ritch at Bugsoftware dot co dot uk 22-Jun-2005 03:18
If you wish to use a function from inside a class use the double colon (::) notation, for example;

php:functionString('classname::function')

The funtion is fired off as a static and as such acts like a function in the global namespace.
benbarnett 04-Mar-2005 04:34
You can use the php:functionString() in the XSL, which will automatically convert output to a string!
zac at zacbowling dot com 27-Oct-2004 01:48
One thing I have told a lot of people to do if they are having
issues with this function is to check for any 'xmlns' attributes
that get generated and added to your xml pages by some
types of popular software.

<?php
$file = "http://data.map***.net/m***ck.asmx/GetMessages?IMEI=$id";

$docxml = file_get_contents($file);

//You may have to do something like this where
//I remove any instance of xmlns tags that get
//returned by my ASP.NET SOAP responses.

$docxml =
 str_replace("xmlns=\"http://data.map***.net/m***ck.asmx?WSDL\"",
  "",$docxml);

$xslt = new xsltProcessor;

//You don't remove them then this function will blow up.
$xslt->registerPHPFunctions();
$xslt->importStyleSheet(DomDocument::load('../xsl/message.xsl'));
print $xslt->transformToXML(DomDocument::loadXML($docxml));

?>

Also a few cool tricks with this function is that you can call
built in PHP functions. For example:

<xsl:value-of
  select="php:function('nl2br',string(MessageContent/Message))"
  disable-output-escaping="yes"/>

That XSL value will now return your normal string but replace
all your new line charactors in your xml with '<br />'s.

Also note the 'disable-output-escaping="yes"' statement. If
you don't call this, then the output of that bind will be ran
thru basicly a "htmlencode()" type function.

Last but not least, take a look at the 'string()' function I
called in XSL before passing it back. That is because without
calling that, when it runs it will try and pass the node object,
and not its value (which is what you most likely only want).

This function is very awsome and could lead to some very
interesting code development. Skins could be loaded
remotely. You could write an RSS viewer in PHP without much
code. You could parse XHTML pages into another view (either
localy or remotely). Then you can take that same XML
content and throw it against ASP.NET, Java, or even a
command line processing tool using that same exact XSL
style sheet and generate the front ends for you page without
much change. I'm very excited.

Happy codding.
junkmail at eighteyes dot com 08-Oct-2004 02:52
When writing a stylesheet that uses a callback function be sure to include a namespace declaration for php, as follows:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:php="http://php.net/xsl" version='1.0'>
begemot at php dot com dot ua 28-Sep-2004 06:24
I think it help  your.
<?php

function dateLang () {
        return strftime("%A");
}

$xsl = new DomDocument();
$xsl->load("datetime.xsl");
$inputdom = new DomDocument();
$inputdom->load("today.xml");

$proc = new XsltProcessor();
$proc->registerPhpFunctions();

// Load the documents and process using $xslt
$xsl = $proc->importStylesheet($xsl);

/* transform and output the xml document */
$newdom = $proc->transformToDoc($inputdom);

print $newdom->saveXML();

?>

Here's the XSLT stylesheet, datetime.xsl, that will call that function:

<?xml version="1.0" encoding="iso-8859-1" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:php="http://php.net/xsl">
<xsl:template match="/">
  <xsl:value-of select="php:function('dateLang')" />
</xsl:template>
</xsl:stylesheet>

And here's an absolute minimal XML file, today.xml, to pass through the stylesheet (although articles.xml would achieve the same result):

<?xml version="1.0" encoding="iso-8859-1" ?>
<today></today>
zac at zacbowling dot com 26-Aug-2004 09:48
One thing to note about this function. A lot of values need to be converted to a XSLT string using the "string()" function in XLS before you pass them to your functions, and when you return them make sure that if they are strings that you call the "strval()" in php before doing so. This saved me hours.

Hope that helps.

Zac Bowling


Bağımsız değişken siler

  • « XSLTProcessor::registerPHPFunctions
  • XSLTProcessor::setParameter »
  • PHP Manual
  • XSLTProcessor
  • Bağımsız değişken siler

XSLTProcessor::removeParameter

(PHP 5, PHP 7, PHP 8)

XSLTProcessor::removeParameter — Bağımsız değişken siler

Açıklama

public XSLTProcessor::removeParameter(string $isimalanı, string $isim): bool

Atanmış bir bağımsız değişkeni siler. Böylece bağımsız değişkenin biçembentteki öntanımlı değerinin kullanılması sağlanır.

Bağımsız Değişkenler

isimalanı

XSLT bağımsız değişkeninin ait olduğu isim alanının adresi.

isim

XSLT bağımsız değişkeninin yerel adı.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Ayrıca Bakınız

  • XSLTProcessor::setParameter() - Bir bağımsız değişkene bir değer atar
  • XSLTProcessor::getParameter() - Bir bağımsız değişkenin değerini döndürür

User Contributed Notes

There are no user contributed notes for this page.


Bir bağımsız değişkene bir değer atar

  • « XSLTProcessor::removeParameter
  • XSLTProcessor::setProfiling »
  • PHP Manual
  • XSLTProcessor
  • Bir bağımsız değişkene bir değer atar

XSLTProcessor::setParameter

(PHP 5, PHP 7, PHP 8)

XSLTProcessor::setParameter — Bir bağımsız değişkene bir değer atar

Açıklama

public XSLTProcessor::setParameter(string $isimalanı, string $isim, string $değer): bool
public XSLTProcessor::setParameter(string $isimalanı, array $seçenekler): bool

XSLTProcessor tarafından dönüşüm sırasında kullanılmak üzere bir veya daha fazla bağımsız değişkene değer atar. Biçembentte mevcut olmayan bağımsız değişkenler yok sayılır.

Bağımsız Değişkenler

isimalanı

XSLT bağımsız değişkeninin ait olduğu isim alanının adresi.

isim

XSLT bağımsız değişkeninin yerel adı.

değer

XSLT bağımsız değişkeninin değeri.

seçenekler

isim => değer çiftlerinden oluşan bir dizi.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Örnekler

Örnek 1 - Dönüşüm öncesi sahip değişimi

<?php

$collections = array(
'Marc Rutkowski' => 'marc',
'Olivier Parmentier' => 'olivier'
);

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Dönüştürücüyü yapılandıralım
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // XSL kuralları

foreach ($collections as $name => $file) {
// XML belgeyi yükleyelim
$xml = new DOMDocument;
$xml->load('collection_' . $file . '.xml');

$proc->setParameter('', 'owner', $name);
$proc->transformToURI($xml, 'file:///tmp/' . $file . '.html');
}

?>

Ayrıca Bakınız

  • XSLTProcessor::getParameter() - Bir bağımsız değişkenin değerini döndürür
  • XSLTProcessor::removeParameter() - Bağımsız değişken siler

User Contributed Notes

richard at aggmedia dot net 04-Mar-2009 07:47
Note that there is no way to remove a parameter from an XSLTProcessor unless you know its name, and there is no way (that I can find) to get a list of the current parameters.

This means that you cannot reuse an XSLTProcessor with different parameters unless you call XSLTProcessor->removeParameter() on every parameter, and to do that you need to know the names of all the currently set parameters.

I bumped into this because we were caching XSLTProcessors for reuse, and they were spitting out content based on phantom parameters (they were still there from previous uses).
Lennaert van der Linden 13-Feb-2008 06:28
The parameter will not be set if the value contains both single and double quotes. Instead a warning will be shown when transforming the document:

PHP Warning:  XSLTProcessor::transformToXml(): Cannot create XPath expression (string contains both quote and double-quotes)
brettz9 08-May-2007 08:27
It seems heinemann's usage is not correct and does not achieve the intended result.

This method's purpose is to change a global <xsl:param> value in the XSL stylesheet--not to change an attribute of any other element.  <xsl:param> basically lets you set up a stylesheet which can be customized (as from PHP) externally (without needing to tamper with the original XSL file).

Here's an example of usage (that will work):

Stylesheet:

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:param name="print_something" select="defaultstring"/>
    <xsl:template match="/mydoc">
        <p style="color:red;">Printed parameter: <xsl:value-of select="$print_something"/></p>
    </xsl:template>
</xsl:stylesheet>

Script:

<?php
$dom = new DOMDocument();
$xsl = new XSLTProcessor;
$xsl->setParameter( '', 'print_something', "Now I've overridden the default!");
$style = realpath( "./my_stylesheet.xslt" );
$dom->load($style);
$xsl->importStyleSheet($dom);
$dom->loadXML('<mydoc></mydoc>');

$out = $xsl->transformToXML( $dom );

var_dump( '<pre>',
    htmlentities( $out, ENT_QUOTES, 'utf-8' ),
    $xsl->getParameter('', 'print_something'),
'</pre>' );
?>

gives:

string(5) "

"
string(143) "<?xml version="1.0"?>
<p style="color:red;">Printed parameter: Now I've overridden the default!</p>
"
string(32) "Now I've overridden the default!"
string(6) "

"

Notice that at present adding a namespace will not work. The only option at present is to set the first parameter for namespace to an empty string (though you can add the prefix with colon to the second argument for name in order to set the parameter for a namespace-prefixed parameter name).

See http://bugs.php.net/bug.php?id=30622
OrionI 01-May-2007 07:19
After looking at this a little further (see http://bugs.php.net/bug.php?id=41248), it appears that it's a shortcoming of libxslt, not PHP, that prevents passing in DOMDocuments or DOMNodes as parameters.
Orion I 30-Apr-2007 08:46
I've been trying to pass in a DOMDocument object as a parameter so I can stuff a bunch of data into XML nodes, but it appears that this function is not capable of it. I was hoping to get it to work like it does in the .NET 2.0 framework. (See http://msdn2.microsoft.com/en-us/library/
system.xml.xsl.xsltargumentlist.addparam.aspx)
But after looking at the PHP 5.2.1 source code, /php-5.2.1/ext/xsl/xsltprocessor.c line 604-650, it appears that it's not possible to do so in PHP even though it appears that libxslt supports it (see http://xmlsoft.org/XSLT/html/libxslt-variables.html
#xsltParseGlobalParam)

In fact, if the parameters aren't exactly what's expected, you'll always get a warning like this:

Wrong parameter count for XSLTProcessor::setParameter()
heinemann dot juergen at hjcms dot de 07-Mar-2006 03:39
Example for how it works.

<?xml version = '1.0' encoding = 'utf-8' ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml"
    indent="yes"
    encoding="ISO-8859-15"
    doctype-system = "-//W3C//DTD XHTML 1.0 Transitional//EN"
    doctype-public = "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
/>
<xsl:template match="docs">
<html>
<head>
    <title>
        <xsl:text>Example</xsl:text>
    </title>
</head>
<body>
    <xsl:for-each select="block">
        <div>
            <xsl:value-of select="." />
        </div>
    </xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

------------------

<?php
$dom = new DomDocument( '1.0', 'utf-8' );
$xsl = new XSLTProcessor;
$xsl->setParameter( 'block', 'xmlns', 'http://www.w3.org/1999/xhtml' );

$style = realpath( "./my_stylesheet.xslt" );
$dom->load( $style );
$xsl->importStyleSheet( $dom );

$dom->loadXML( '<docs>
    <block>Howto set xhtml Transitional Namespaces width php</block>
    <block>see http://www.php.net</block>
</docs>' );

$out = $xsl->transformToXML( $dom );

var_dump( '<pre>',
    htmlentities( $out, ENT_QUOTES, 'utf-8' ),
    $xsl->getParameter( 'block', 'xmlns' ),
    $xsl->getParameter( 'docs', 'xmlns' ),
'</pre>' );

?>
Stoke A 11-Aug-2005 03:40
XSLTProcessor::removeParameter() won't work on parameters set via XSLTProcessor::setParameter(string namespace, array options) in 5.1+ -- they need to be set and removed one by one.


Profil çıktı dosyasını belirler

  • « XSLTProcessor::setParameter
  • XSLTProcessor::setSecurityPrefs »
  • PHP Manual
  • XSLTProcessor
  • Profil çıktı dosyasını belirler

XSLTProcessor::setProfiling

(PHP >= 5.3.0, PHP 7, PHP 8)

XSLTProcessor::setProfiling — Profil çıktı dosyasını belirler

Açıklama

public XSLTProcessor::setProfiling(?string $dosya): true

Bir biçembent uygulanırken oluşan profil bilgisini belirtilen dosyaya çıktılar.

Bağımsız Değişkenler

dosya

Profil bilgisinin döküleceği dosyanın yolu.

Dönen Değerler

Daima true döndürür.

Örnekler

Örnek 1 - Profil bilgisi çıktılama örneği

<?php
// XML belgeyi yükleyelim
$xml = new DOMDocument;
$xml->load('collection.xml');

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Dönüştürücüyü yapılandıralım
$proc = new XSLTProcessor;
$proc->setProfiling('profiling.txt');
$proc->importStyleSheet($xsl); // XSL kuralları

echo trim($proc->transformToDoc($xml)->firstChild->wholeText);
?>

Üretilen profil bilgisi:

number               match                name      mode  Calls Tot 100us Avg

    0                   cd                                    2      3      1
    1           collection                                    1      1      1

                         Total                                3      4

User Contributed Notes

There are no user contributed notes for this page.


Güvenlik tercihlerini tanımlar

  • « XSLTProcessor::setProfiling
  • XSLTProcessor::transformToDoc »
  • PHP Manual
  • XSLTProcessor
  • Güvenlik tercihlerini tanımlar

XSLTProcessor::setSecurityPrefs

(PHP >= 5.4.0, PHP 7, PHP 8)

XSLTProcessor::setSecurityPrefs — Güvenlik tercihlerini tanımlar

Açıklama

public XSLTProcessor::setSecurityPrefs(int $tercihler): int

Güvenlik tercihlerini tanımlar.

Bağımsız Değişkenler

tercihler

Yeni güvenlik tercihleri. Aşağıdaki sabitler VEYAlanabilir: XSL_SECPREF_READ_FILE, XSL_SECPREF_WRITE_FILE, XSL_SECPREF_CREATE_DIRECTORY, XSL_SECPREF_READ_NETWORK, XSL_SECPREF_WRITE_NETWORK. Bunların yerine XSL_SECPREF_NONE veya XSL_SECPREF_DEFAULT aktarılabilir.

Dönen Değerler

Evvelki güvenlik tercihlerini döndürür.

User Contributed Notes

There are no user contributed notes for this page.


Belgeyi dönüştürür

  • « XSLTProcessor::setSecurityPrefs
  • XSLTProcessor::transformToUri »
  • PHP Manual
  • XSLTProcessor
  • Belgeyi dönüştürür

XSLTProcessor::transformToDoc

(PHP 5, PHP 7, PHP 8)

XSLTProcessor::transformToDoc — Belgeyi dönüştürür

Açıklama

public XSLTProcessor::transformToDoc(object $belge, ?string $dönenSınıf = null): object|false

xsltprocessor::importStylesheet() yöntemi ile belirtilen biçembendi belirtilen belgeye uygulayarak kaynak düğümünü bir belgeye (örn, DOMDocument nesnesine) dönüştürür.

Bağımsız Değişkenler

belge

Dönüştürülecek DOMDocument veya SimpleXMLElement nesnesi ya da libxml uyumlu nesne.

dönenSınıf

Bu isteğe bağlı bağımsız değişken XSLTProcessor::transformToDoc() işlevinin belirtilen sınıfın nesnesini döndürmekte kullanılabilir. Bu sınıf ya belge sınıfı ile aynı olmalı ya da belge sınıfına bir genişletme olmalıdır.

Dönen Değerler

Bir hata oluşursa false aksi takdirde sonuçlanan belge döner.

Örnekler

Örnek 1 - Bir DOMDocument nesnesine dönüşüm

<?php

// XML belgeyi yükleyelim
$xml = new DOMDocument;
$xml->load('collection.xml');

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Dönüştürücüyü yapılandıralım
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // XSL kuralları

echo trim($proc->transformToDoc($xml)->firstChild->wholeText);

?>

Yukarıdaki örneğin çıktısı:

Hey! Welcome to Nicolas Eliaszewicz's sweet CD collection!

Ayrıca Bakınız

  • XSLTProcessor::transformToUri() - Dönüşüm sonucunu bir dosyaya yazar
  • XSLTProcessor::transformToXml() - Dönüşümü bir dizge olarak döndürür

User Contributed Notes

franp at free dot fr 30-Aug-2006 05:16
In most cases if you expect XML (or XHTML) as output you better use transformToXML() directly. You gain better control over xsl:output attributes, notably omit-xml-declaration.

Instead of :
$proc = new XSLTProcessor();
$proc->importStylesheet($xsl);
$dom = $proc->transformToDoc($xml);
echo $dom->saveXML();

do use :
$proc = new XSLTProcessor();
$proc->importStylesheet($xsl);
$newXml = $proc->transformToXML($xml);
echo $newXml;

In the first case, <?xml version="1.0" encoding="utf-8"?> is added whatever you set the omit-xml-declaration while transformToXML() take the attribute into account.


Dönüşüm sonucunu bir dosyaya yazar

  • « XSLTProcessor::transformToDoc
  • XSLTProcessor::transformToXML »
  • PHP Manual
  • XSLTProcessor
  • Dönüşüm sonucunu bir dosyaya yazar

XSLTProcessor::transformToUri

(PHP 5, PHP 7, PHP 8)

XSLTProcessor::transformToUri — Dönüşüm sonucunu bir dosyaya yazar

Açıklama

public XSLTProcessor::transformToUri(object $belge, string $dosya): int

xsltprocessor::importStylesheet() yöntemi ile belirtilen biçembendi belirtilen belgeye uygulayarak kaynak düğümünü bir dizgeye dönüştürüp belirtilen dosyaya yazar.

Bağımsız Değişkenler

belge

Dönüştürülecek DOMDocument veya SimpleXMLElement nesnesi.

dosya

Dönüşüm sonucunun yazılacağı dosyanın yolu.

Dönen Değerler

Bir hata oluşmuşsa false aksi takdirde yazılan bayt sayısı döner.

Örnekler

Örnek 1 - Bir HTML dosyaya dönüşüm

<?php

// XML belgeyi yükleyelim
$xml = new DOMDocument;
$xml->load('collection.xml');

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Dönüştürücüyü yapılandıralım
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // XSL kodları

$proc->transformToURI($xml, 'file:///tmp/out.html');

?>

Ayrıca Bakınız

  • XSLTProcessor::transformToDoc() - Belgeyi dönüştürür
  • XSLTProcessor::transformToXml() - Dönüşümü bir dizge olarak döndürür

User Contributed Notes

jonbarnett at gmail dot com 13-Jul-2007 12:32
Sometimes you don't want to transform to a file, an XML string (because you're using text or html), or a DOMDocument.

To transform to standard output, you can use php://output

<?php
$proc->transformToURI($xml, 'php://output');
?>

To transform to a string (of HTML or text, instead of XML), you can use the above in conjunction with output buffering.
<?php
ob_start();
$proc->transformToURI($xml, 'php://output');
$outputString = ob_get_flush();
?>


Dönüşümü bir dizge olarak döndürür

  • « XSLTProcessor::transformToUri
  • GUI Eklentileri »
  • PHP Manual
  • XSLTProcessor
  • Dönüşümü bir dizge olarak döndürür

XSLTProcessor::transformToXML

(PHP 5, PHP 7, PHP 8)

XSLTProcessor::transformToXML — Dönüşümü bir dizge olarak döndürür

Açıklama

public XSLTProcessor::transformToXml(object $belge): string|null|false

xsltprocessor::importStylesheet() yöntemi ile belirtilen biçembendi belirtilen belgeye uygulayarak kaynak düğümünü bir dizgeye dönüştürüp döndürür.

Bağımsız Değişkenler

belge

Dönüştürülecek DOMDocument veya SimpleXMLElement nesnesi.

Dönen Değerler

Hata durumunda false, aksi takdirde dönüşüm sonucunu bir dizge olarak döndürür.

Örnekler

Örnek 1 - Bir dizgeye dönüşüm

<?php

// XML belgeyi yükleyelim
$xml = new DOMDocument;
$xml->load('collection.xml');

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Dönüştürücüyü yapılandıralım
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // XSL kurallarını ekliyoruz

echo $proc->transformToXML($xml);

?>

Yukarıdaki örneğin çıktısı:

Hey! Welcome to Nicolas Eliaszewicz's sweet CD collection!

<h1>Fight for your mind</h1><h2>by Ben Harper - 1995</h2><hr>
<h1>Electric Ladyland</h1><h2>by Jimi Hendrix - 1997</h2><hr>

Ayrıca Bakınız

  • XSLTProcessor::transformToDoc() - Belgeyi dönüştürür
  • XSLTProcessor::transformToUri() - Dönüşüm sonucunu bir dosyaya yazar

User Contributed Notes

Josef Hornych 04-Mar-2015 07:42
Note that the method's name is sort of deceiving, because it does not only output XML, but any string that is generated by the processor. It should rather be called transformToString. So if your output method is  "text/plain", for example, this is the way to receive the resulting string.
zweibieren at yahoo dot com 15-Sep-2010 11:15
Entities are omitted from the output with the code above.
The symptom was that &nbsp;
-- which should work with UTF-8 encoding --
did not even get to XSLTProcessor, let alone through it.
After too much hacking I discovered the simple fix:
set substituteEntities to true in the DOMDocument for the XSL file.
That is, replace the loading of the xsl document with

<?php
   $xsl = new DOMDocument;
   $xsl->substituteEntities = true;    // <===added line
   $xsl->load('collection.xsl');
?>

However, this fails when data entries have HTML entity references. (Some database entries may even contain user generated text.) libxml has the pedantic habit of throwing a FATAL error for any undefined entitiy. Solution: hide the entities so libxml doesn't see them.

<?php
function hideEntities($data) {
        return str_replace("&", "&amp;", $data);
}
?>

You could just add this to the example, but it is tidier to define a function to load data into a DOMDocument. This way you don't need entity declarations in catalog.xsl, either.

<?php
// Added function for  Example #1

/** Load an XML file and create a DOMDocument.
Handles arbitrary entities, even undefined ones.
*/
function fileToDOMDoc($filename) {
    $dom= new DOMDocument;
    $xmldata = file_get_contents($filename);
    $xmldata = str_replace("&", "&amp;", $xmldata);  // disguise &s going IN to loadXML()
    $dom->substituteEntities = true;  // collapse &s going OUT to transformToXML()
    $dom->loadXML($xmldata);
    return $dom;
}

// Compare with  Example #1 Transforming to a string

// Load the XML sources
$xml = fileToDOMDoc('collection.xml');
$xsl = fileToDOMDoc('collection.xsl');

// Configure the transformer
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl);

// transform $xml according to the stylesheet $xsl
echo $proc->transformToXML($xml); // transform the data
?>
michael dot weibel at tilllate dot com 03-Dec-2009 01:33
If you retrieve "false" from the transformToXML method, use libxml_get_last_error() or libxml_get_errors() to retrieve the errors.
Charlie Murder 29-Nov-2009 07:43
To prevent your xsl file from automatically prepending

<?xml version="1.0"?>

whilst keeping the output as xml, which is preferable for a validated strict xhtml file, rather specify output as

<xsl:output method="xml" omit-xml-declaration="yes" />
john 05-Feb-2008 11:09
If your xsl doesn't have <html> tags. The output will contain <?xml version="1.0"?>. To fix this you can add the following to your xsl stylesheet:

<xsl:output
method="html" />
smubldg4 at hotmail dot com 02-Oct-2007 08:58
How to fix:: *Fatal error: Call to undefined method domdocument::load()*

If you get this error, visit the php.ini file and try commenting out the following, like this:

;[PHP_DOMXML]
;extension=php_domxml.dll

Suddenly, the wonderfully simple example above works as advertised.
jeandenis dot boivin at gmail dot com 13-Mar-2007 04:59
$domTranObj = $xslProcessor->transformToDoc($domXmlObj);
$domHtmlText = $domTranObj->saveHTML();

Do fix the <meta> for valid XHTML but do not correctly end empty node like <br /> which ouput like this : <br></br>

Some browser note this as 2 different <br /> ...

To fix this use

$domTranObj = $xslProcessor->transformToDoc($domXmlObj);
$domHtmlText = $domTranObj->saveXML();
Thomas Praxl 22-Jan-2007 01:36
I noticed an incompatibility between libxslt (php4) and the transformation through XSLTProcessor.
Php5 and the XSLTProcessor seem to add implicit CDATA-Section-Elements.
If you have an xslt like

<script type="text/javascript">
foo('<xsl:value-of select="bar" />');
</script>

It will result in

<script type="text/javascript"><![CDATA[
foo('xpath-result-of-bar');
]]></script>

(at least for output method="xml" in order to produce strict xhtml with xslt1)

That brings up an error (at least) in Firefox 1.5 as it is no valid javascript.
It should look like that:

<script type="text/javascript">//<![CDATA[
foo('xpath-result-of-bar');
]]></script>

As the CDATA-Section is implicit, I was not able to disable the output or to put a '//' before it.

I tried everything about xsl:text disable-output-escaping="yes"

I also tried to disable implicit adding of CDATA with <output cdata-section-elements="" />
(I thought that would exclude script-tags. It didn't).

The solution:

<xsl:text disable-output-escaping="yes">&lt;script type="text/javascript"&gt;
  foo('</xsl:text><xsl:value-of select="bar" /><xsl:text disable-output-escaping="yes">');
            &lt;/script&gt;</xsl:text>

Simple, but it took me a while.
werner@mollentze 15-Aug-2006 01:53
The transformToXML function can produce valid XHTML output - it honours the <xsl:output> element's attributes, which defines the format of the output document.

For instance, if you want valid XHTML 1.0 Strict output, you can provide the following attribute values for the <xsl:output> element in your XSL stylesheet:

<xsl:output
method="xml"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" />
lsoethout at hotmail dot com 19-Feb-2006 02:35
The function transformToXML has a problem with the meta content type tag. It outputs it like this:

    <meta http-equiv="Content-Type" content="text/html; CHARSET=Windows-1254">

which is not correct X(HT)ML, because it closes with '>' instead of with '/>'.

A way to get the output correct is to use instead of transformToXML first transformToDoc anf then saveHTML:

    $domTranObj = $xslProcessor->transformToDoc($domXmlObj);
    $domHtmlText = $domTranObj->saveHTML();
jlipps at mac 06-Jan-2005 08:05
transformToXML, if you have registered PHP functions previously, does indeed attempt to execute these functions when it finds them in a php:function() pseudo-XSL function. It even finds static functions within classes, for instance:

<xsl:value-of select="php:function('MyClass::MyFunction', string(@attr), string(.))" disable-output-escaping="yes"/>

However, in this situation transformToXML does not try to execute "MyClass::MyFunction()". Instead, it executes "myclass:myfunction()". In PHP, since classes and functions are (I think) case-insensitive, this causes no problems.

A problem arises when you are combining these features with the __autoload() feature. So, say I have MyClass.php which contains the MyFunction definition. Generally, if I call MyClass::MyFunction, PHP will pass "MyClass" to __autoload(), and __autoload() will open up "MyClass.php".

What we have just seen, however, means that transformToXML will pass "myclass" to __autoload(), not "MyClass", with the consequence that PHP will try to open "myclass.php", which doesn't exist, instead of "MyClass.php", which does. On case-insensitive operating systems, this is not significant, but on my RedHat server, it is--PHP will give a file not found error.

The only solution I have found is to edit the __autoload() function to look for class names which are used in my XSL files, and manually change them to the correct casing.

Another solution, obviously, is to use all-lowercase class and file names.


GUI Eklentileri

  • UI
    • Giriş
    • Yapılandırma/Kurulum
    • UI\Point — Represents a position (x,y)
    • UI\Size — Represents dimensions (width, height)
    • UI\Window — Window
    • UI\Control — Control
    • UI\Menu — Menu
    • UI\MenuItem — Menu Item
    • UI\Area — Area
    • UI\Executor — Execution Scheduler
    • UI\Controls\Tab — Tab Control
    • UI\Controls\Check — Check Control
    • UI\Controls\Button — Button Control
    • UI\Controls\ColorButton — ColorButton Control
    • UI\Controls\Label — Label Control
    • UI\Controls\Entry — Entry Control
    • UI\Controls\MultilineEntry — MultilineEntry Control
    • UI\Controls\Spin — Spin Control
    • UI\Controls\Slider — Slider Control
    • UI\Controls\Progress — Progress Control
    • UI\Controls\Separator — Control Separator
    • UI\Controls\Combo — Combo Control
    • UI\Controls\EditableCombo — EdiableCombo Control
    • UI\Controls\Radio — Radio Control
    • UI\Controls\Picker — Picker Control
    • UI\Controls\Form — Control Form (Arrangement)
    • UI\Controls\Grid — Control Grid (Arrangement)
    • UI\Controls\Group — Control Group (Arrangement)
    • UI\Controls\Box — Control Box (Arrangement)
    • UI\Draw\Pen — Draw Pen
    • UI\Draw\Path — Draw Path
    • UI\Draw\Matrix — Draw Matrix
    • UI\Draw\Color — Color Representation
    • UI\Draw\Stroke — Draw Stroke
    • UI\Draw\Brush — Brushes
    • UI\Draw\Brush\Gradient — Gradient Brushes
    • UI\Draw\Brush\LinearGradient — Linear Gradient
    • UI\Draw\Brush\RadialGradient — Radial Gradient
    • UI\Draw\Text\Layout — Represents Text Layout
    • UI\Draw\Text\Font — Represents a Font
    • UI\Draw\Text\Font\Descriptor — Font Descriptor
    • UI İşlevleri
    • UI\Draw\Text\Font\Weight — Font Weight Settings
    • UI\Draw\Text\Font\Italic — Italic Font Settings
    • UI\Draw\Text\Font\Stretch — Font Stretch Settings
    • UI\Draw\Line\Cap — Line Cap Settings
    • UI\Draw\Line\Join — Line Join Settings
    • UI\Key — Key Identifiers
    • UI\Exception\InvalidArgumentException — InvalidArgumentException
    • UI\Exception\RuntimeException — RuntimeException

User Contributed Notes

There are no user contributed notes for this page.


UI

  • Giriş
  • Yapılandırma/Kurulum
    • Gereksinimler
    • Kurulum
  • UI\Point — Represents a position (x,y)
    • UI\Point::at — Size Coercion
    • UI\Point::__construct — Construct a new Point
    • UI\Point::getX — Retrieves X
    • UI\Point::getY — Retrieves Y
    • UI\Point::setX — Set X
    • UI\Point::setY — Set Y
  • UI\Size — Represents dimensions (width, height)
    • UI\Size::__construct — Construct a new Size
    • UI\Size::getHeight — Retrieves Height
    • UI\Size::getWidth — Retrives Width
    • UI\Size::of — Point Coercion
    • UI\Size::setHeight — Set Height
    • UI\Size::setWidth — Set Width
  • UI\Window — Window
    • UI\Window::add — Add a Control
    • UI\Window::__construct — Construct a new Window
    • UI\Window::error — Show Error Box
    • UI\Window::getSize — Get Window Size
    • UI\Window::getTitle — Get Title
    • UI\Window::hasBorders — Border Detection
    • UI\Window::hasMargin — Margin Detection
    • UI\Window::isFullScreen — Full Screen Detection
    • UI\Window::msg — Show Message Box
    • UI\Window::onClosing — Closing Callback
    • UI\Window::open — Open Dialog
    • UI\Window::save — Save Dialog
    • UI\Window::setBorders — Border Use
    • UI\Window::setFullScreen — Full Screen Use
    • UI\Window::setMargin — Margin Use
    • UI\Window::setSize — Set Size
    • UI\Window::setTitle — Window Title
  • UI\Control — Control
    • UI\Control::destroy — Destroy Control
    • UI\Control::disable — Disable Control
    • UI\Control::enable — Enable Control
    • UI\Control::getParent — Get Parent Control
    • UI\Control::getTopLevel — Get Top Level
    • UI\Control::hide — Hide Control
    • UI\Control::isEnabled — Determine if Control is enabled
    • UI\Control::isVisible — Determine if Control is visible
    • UI\Control::setParent — Set Parent Control
    • UI\Control::show — Control Show
  • UI\Menu — Menu
    • UI\Menu::append — Append Menu Item
    • UI\Menu::appendAbout — Append About Menu Item
    • UI\Menu::appendCheck — Append Checkable Menu Item
    • UI\Menu::appendPreferences — Append Preferences Menu Item
    • UI\Menu::appendQuit — Append Quit Menu Item
    • UI\Menu::appendSeparator — Append Menu Item Separator
    • UI\Menu::__construct — Construct a new Menu
  • UI\MenuItem — Menu Item
    • UI\MenuItem::disable — Disable Menu Item
    • UI\MenuItem::enable — Enable Menu Item
    • UI\MenuItem::isChecked — Detect Checked
    • UI\MenuItem::onClick — On Click Callback
    • UI\MenuItem::setChecked — Set Checked
  • UI\Area — Area
    • UI\Area::onDraw — Draw Callback
    • UI\Area::onKey — Key Callback
    • UI\Area::onMouse — Mouse Callback
    • UI\Area::redraw — Redraw Area
    • UI\Area::scrollTo — Area Scroll
    • UI\Area::setSize — Set Size
  • UI\Executor — Execution Scheduler
    • UI\Executor::__construct — Construct a new Executor
    • UI\Executor::kill — Stop Executor
    • UI\Executor::onExecute — Execution Callback
    • UI\Executor::setInterval — Interval Manipulation
  • UI\Controls\Tab — Tab Control
    • UI\Controls\Tab::append — Append Page
    • UI\Controls\Tab::delete — Delete Page
    • UI\Controls\Tab::hasMargin — Margin Detection
    • UI\Controls\Tab::insertAt — Insert Page
    • UI\Controls\Tab::pages — Page Count
    • UI\Controls\Tab::setMargin — Set Margin
  • UI\Controls\Check — Check Control
    • UI\Controls\Check::__construct — Construct a new Check
    • UI\Controls\Check::getText — Get Text
    • UI\Controls\Check::isChecked — Checked Detection
    • UI\Controls\Check::onToggle — Toggle Callback
    • UI\Controls\Check::setChecked — Set Checked
    • UI\Controls\Check::setText — Set Text
  • UI\Controls\Button — Button Control
    • UI\Controls\Button::__construct — Construct a new Button
    • UI\Controls\Button::getText — Get Text
    • UI\Controls\Button::onClick — Click Handler
    • UI\Controls\Button::setText — Set Text
  • UI\Controls\ColorButton — ColorButton Control
    • UI\Controls\ColorButton::getColor — Get Color
    • UI\Controls\ColorButton::onChange — Change Handler
    • UI\Controls\ColorButton::setColor — Set Color
  • UI\Controls\Label — Label Control
    • UI\Controls\Label::__construct — Construct a new Label
    • UI\Controls\Label::getText — Get Text
    • UI\Controls\Label::setText — Set Text
  • UI\Controls\Entry — Entry Control
    • UI\Controls\Entry::__construct — Construct a new Entry
    • UI\Controls\Entry::getText — Get Text
    • UI\Controls\Entry::isReadOnly — Detect Read Only
    • UI\Controls\Entry::onChange — Change Handler
    • UI\Controls\Entry::setReadOnly — Set Read Only
    • UI\Controls\Entry::setText — Set Text
  • UI\Controls\MultilineEntry — MultilineEntry Control
    • UI\Controls\MultilineEntry::append — Append Text
    • UI\Controls\MultilineEntry::__construct — Construct a new Multiline Entry
    • UI\Controls\MultilineEntry::getText — Get Text
    • UI\Controls\MultilineEntry::isReadOnly — Read Only Detection
    • UI\Controls\MultilineEntry::onChange — Change Handler
    • UI\Controls\MultilineEntry::setReadOnly — Set Read Only
    • UI\Controls\MultilineEntry::setText — Set Text
  • UI\Controls\Spin — Spin Control
    • UI\Controls\Spin::__construct — Construct a new Spin
    • UI\Controls\Spin::getValue — Get Value
    • UI\Controls\Spin::onChange — Change Handler
    • UI\Controls\Spin::setValue — Set Value
  • UI\Controls\Slider — Slider Control
    • UI\Controls\Slider::__construct — Construct a new Slider
    • UI\Controls\Slider::getValue — Get Value
    • UI\Controls\Slider::onChange — Change Handler
    • UI\Controls\Slider::setValue — Set Value
  • UI\Controls\Progress — Progress Control
    • UI\Controls\Progress::getValue — Get Value
    • UI\Controls\Progress::setValue — Set Value
  • UI\Controls\Separator — Control Separator
    • UI\Controls\Separator::__construct — Construct a new Separator
  • UI\Controls\Combo — Combo Control
    • UI\Controls\Combo::append — Append Option
    • UI\Controls\Combo::getSelected — Get Selected Option
    • UI\Controls\Combo::onSelected — Selected Handler
    • UI\Controls\Combo::setSelected — Set Selected Option
  • UI\Controls\EditableCombo — EdiableCombo Control
    • UI\Controls\EditableCombo::append — Append Option
    • UI\Controls\EditableCombo::getText — Get Text
    • UI\Controls\EditableCombo::onChange — Change Handler
    • UI\Controls\EditableCombo::setText — Set Text
  • UI\Controls\Radio — Radio Control
    • UI\Controls\Radio::append — Append Option
    • UI\Controls\Radio::getSelected — Get Selected Option
    • UI\Controls\Radio::onSelected — Selected Handler
    • UI\Controls\Radio::setSelected — Set Selected Option
  • UI\Controls\Picker — Picker Control
    • UI\Controls\Picker::__construct — Construct a new Picker
  • UI\Controls\Form — Control Form (Arrangement)
    • UI\Controls\Form::append — Append Control
    • UI\Controls\Form::delete — Delete Control
    • UI\Controls\Form::isPadded — Padding Detection
    • UI\Controls\Form::setPadded — Set Padding
  • UI\Controls\Grid — Control Grid (Arrangement)
    • UI\Controls\Grid::append — Append Control
    • UI\Controls\Grid::isPadded — Padding Detection
    • UI\Controls\Grid::setPadded — Set Padding
  • UI\Controls\Group — Control Group (Arrangement)
    • UI\Controls\Group::append — Append Control
    • UI\Controls\Group::__construct — Construct a new Group
    • UI\Controls\Group::getTitle — Get Title
    • UI\Controls\Group::hasMargin — Margin Detection
    • UI\Controls\Group::setMargin — Set Margin
    • UI\Controls\Group::setTitle — Set Title
  • UI\Controls\Box — Control Box (Arrangement)
    • UI\Controls\Box::append — Append Control
    • UI\Controls\Box::__construct — Construct a new Box
    • UI\Controls\Box::delete — Delete Control
    • UI\Controls\Box::getOrientation — Get Orientation
    • UI\Controls\Box::isPadded — Padding Detection
    • UI\Controls\Box::setPadded — Set Padding
  • UI\Draw\Pen — Draw Pen
    • UI\Draw\Pen::clip — Clip a Path
    • UI\Draw\Pen::fill — Fill a Path
    • UI\Draw\Pen::restore — Restore
    • UI\Draw\Pen::save — Save
    • UI\Draw\Pen::stroke — Stroke a Path
    • UI\Draw\Pen::transform — Matrix Transform
    • UI\Draw\Pen::write — Draw Text at Point
  • UI\Draw\Path — Draw Path
    • UI\Draw\Path::addRectangle — Draw a Rectangle
    • UI\Draw\Path::arcTo — Draw an Arc
    • UI\Draw\Path::bezierTo — Draw Bezier Curve
    • UI\Draw\Path::closeFigure — Close Figure
    • UI\Draw\Path::__construct — Construct a new Path
    • UI\Draw\Path::end — Finalize Path
    • UI\Draw\Path::lineTo — Draw a Line
    • UI\Draw\Path::newFigure — Draw Figure
    • UI\Draw\Path::newFigureWithArc — Draw Figure with Arc
  • UI\Draw\Matrix — Draw Matrix
    • UI\Draw\Matrix::invert — Invert Matrix
    • UI\Draw\Matrix::isInvertible — Invertible Detection
    • UI\Draw\Matrix::multiply — Multiply Matrix
    • UI\Draw\Matrix::rotate — Rotate Matrix
    • UI\Draw\Matrix::scale — Scale Matrix
    • UI\Draw\Matrix::skew — Skew Matrix
    • UI\Draw\Matrix::translate — Translate Matrix
  • UI\Draw\Color — Color Representation
    • UI\Draw\Color::__construct — Construct new Color
    • UI\Draw\Color::getChannel — Color Manipulation
    • UI\Draw\Color::setChannel — Color Manipulation
  • UI\Draw\Stroke — Draw Stroke
    • UI\Draw\Stroke::__construct — Construct a new Stroke
    • UI\Draw\Stroke::getCap — Get Line Cap
    • UI\Draw\Stroke::getJoin — Get Line Join
    • UI\Draw\Stroke::getMiterLimit — Get Miter Limit
    • UI\Draw\Stroke::getThickness — Get Thickness
    • UI\Draw\Stroke::setCap — Set Line Cap
    • UI\Draw\Stroke::setJoin — Set Line Join
    • UI\Draw\Stroke::setMiterLimit — Set Miter Limit
    • UI\Draw\Stroke::setThickness — Set Thickness
  • UI\Draw\Brush — Brushes
    • UI\Draw\Brush::__construct — Construct a new Brush
    • UI\Draw\Brush::getColor — Get Color
    • UI\Draw\Brush::setColor — Set Color
  • UI\Draw\Brush\Gradient — Gradient Brushes
    • UI\Draw\Brush\Gradient::addStop — Stop Manipulation
    • UI\Draw\Brush\Gradient::delStop — Stop Manipulation
    • UI\Draw\Brush\Gradient::setStop — Stop Manipulation
  • UI\Draw\Brush\LinearGradient — Linear Gradient
    • UI\Draw\Brush\LinearGradient::__construct — Construct a Linear Gradient
  • UI\Draw\Brush\RadialGradient — Radial Gradient
    • UI\Draw\Brush\RadialGradient::__construct — Construct a new Radial Gradient
  • UI\Draw\Text\Layout — Represents Text Layout
    • UI\Draw\Text\Layout::__construct — Construct a new Text Layout
    • UI\Draw\Text\Layout::setColor — Set Color
    • UI\Draw\Text\Layout::setWidth — Set Width
  • UI\Draw\Text\Font — Represents a Font
    • UI\Draw\Text\Font::__construct — Construct a new Font
    • UI\Draw\Text\Font::getAscent — Font Metrics
    • UI\Draw\Text\Font::getDescent — Font Metrics
    • UI\Draw\Text\Font::getLeading — Font Metrics
    • UI\Draw\Text\Font::getUnderlinePosition — Font Metrics
    • UI\Draw\Text\Font::getUnderlineThickness — Font Metrics
  • UI\Draw\Text\Font\Descriptor — Font Descriptor
    • UI\Draw\Text\Font\Descriptor::__construct — Construct a new Font Descriptor
    • UI\Draw\Text\Font\Descriptor::getFamily — Get Font Family
    • UI\Draw\Text\Font\Descriptor::getItalic — Style Detection
    • UI\Draw\Text\Font\Descriptor::getSize — Size Detection
    • UI\Draw\Text\Font\Descriptor::getStretch — Style Detection
    • UI\Draw\Text\Font\Descriptor::getWeight — Weight Detection
  • UI İşlevleri
    • UI\Draw\Text\Font\fontFamilies — Retrieve Font Families
    • UI\quit — Quit UI Loop
    • UI\run — Enter UI Loop
  • UI\Draw\Text\Font\Weight — Font Weight Settings
  • UI\Draw\Text\Font\Italic — Italic Font Settings
  • UI\Draw\Text\Font\Stretch — Font Stretch Settings
  • UI\Draw\Line\Cap — Line Cap Settings
  • UI\Draw\Line\Join — Line Join Settings
  • UI\Key — Key Identifiers
  • UI\Exception\InvalidArgumentException — InvalidArgumentException
  • UI\Exception\RuntimeException — RuntimeException

User Contributed Notes

There are no user contributed notes for this page.


Giriş

This extension wraps libui to provide an OO API for the cross platform development of native look-and-feel user interfaces .

User Contributed Notes

There are no user contributed notes for this page.


Yapılandırma/Kurulum

İçindekiler

  • Gereksinimler
  • Kurulum

User Contributed Notes

shevegen at gmail dot com 14-Feb-2021 09:01
I believe this example is not correct; for example it shows "cmake" in
use but after you git clone the above URL, there are no cmake files.

So this can not possibly have worked; and I actually don't think there
ever was cmake used in the above repository, which makes you wonder
why the above code used cmake to begin with. Did it ever work? I am not sure;
I tend to assume it did not work.
whirlwind110 at 163 dot com 18-Apr-2017 04:04
Requirements:
    PHP 7
    libui (use current master)
    Windows/MacOSX/Linux (GTK-3)

Install re2c:
    sudo apt install re2c

Install libui:

    git clone https://github.com/andlabs/libui.git
    cd libui
    sudo cp *.h /usr/local/include/
    cmake .
    cd out
    sudo cp * /usr/lib/

Install ui:

    Method one: use pecl:
        sudo pecl install channel://pecl.php.net/ui-2.0.0

    Method two:build source code:
        git clone https://github.com/krakjoe/ui.git
        cd ui
        phpize
        make
        sudo make install

Enable ui.so:
    sudo echo 'extension=ui.so' > /etc/php/7.0/mods-available/ui.ini
    sudo ln -s /etc/php/7.0/mods-available/ui.ini 20-ui.ini

Test:
    php -m
    git clone https://github.com/krakjoe/ui.git
    cd ui/examples/
    php snake.php


Gereksinimler

Installation requires the libui library, and PHP 7 or newer.

This extension requires the » libui library version 0.1.0 or higher to be installed. See the libui documentation for a list of prerequisites.

User Contributed Notes

There are no user contributed notes for this page.


Kurulum

Bu » PECL eklentisi PHP ile gelmez.

Bu PECL eklentisini kurma bilgisi kılavuzun PECL eklentisinin kurulması başlıklı faslında bulunabilir. Yeni dağıtımlar, indirmeler, kaynak dosyaları, sürdürücü bilgileri ve CHANGELOG gibi ek bilgiler şu adreste bulunabilir: » https://pecl.php.net/package/ui.

Bu PECL eklentisi için Windows kütüphaneleri (DLL dosyaları) PECL sitesinde mevcuttur.

User Contributed Notes

There are no user contributed notes for this page.


Represents a position (x,y)

(UI 0.9.9)

Giriş

Points are used throughout UI to represent co-ordinates on a screen, control, or area.

Sınıf Sözdizimi

final class UI\Point {
/* Özellikler */
public $x;
public $y;
/* Constructor */
public __construct(float $x, float $y)
/* Yöntemler */
public static at(float $point): UI\Point
public static at(UI\Size $size): UI\Point
public getX(): float
public getY(): float
public setX(float $point)
public setY(float $point)
}

Özellikler

x

Holds the X co-ordinate, can be read/written directly

y

Holds the Y co-ordinate, can be read/written directly

İçindekiler

  • UI\Point::at — Size Coercion
  • UI\Point::__construct — Construct a new Point
  • UI\Point::getX — Retrieves X
  • UI\Point::getY — Retrieves Y
  • UI\Point::setX — Set X
  • UI\Point::setY — Set Y

User Contributed Notes

There are no user contributed notes for this page.


Size Coercion

  • « UI\Point
  • UI\Point::__construct »
  • PHP Manual
  • UI\Point
  • Size Coercion

UI\Point::at

(UI 1.0.2)

UI\Point::at — Size Coercion

Açıklama

public static UI\Point::at(float $point): UI\Point
public static UI\Point::at(UI\Size $size): UI\Point

Shall return a UI\Point object where x and y are equal to those supplied, either in float or UI\Size form

Bağımsız Değişkenler

point

The value for x and y

size

The Size to convert

Dönen Değerler

The resulting Point

User Contributed Notes

There are no user contributed notes for this page.


Construct a new Point

  • « UI\Point::at
  • UI\Point::getX »
  • PHP Manual
  • UI\Point
  • Construct a new Point

UI\Point::__construct

(UI 0.9.9)

UI\Point::__construct — Construct a new Point

Açıklama

public UI\Point::__construct(float $x, float $y)

Construct a new Point using new co-ordinates

Bağımsız Değişkenler

x

The new X co-ordinate

y

The new Y co-ordinate

User Contributed Notes

There are no user contributed notes for this page.


Retrieves X

  • « UI\Point::__construct
  • UI\Point::getY »
  • PHP Manual
  • UI\Point
  • Retrieves X

UI\Point::getX

(UI 0.9.9)

UI\Point::getX — Retrieves X

Açıklama

public UI\Point::getX(): float

Retrieves the X co-ordinate

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

The current X co-ordinate

User Contributed Notes

There are no user contributed notes for this page.


Retrieves Y

  • « UI\Point::getX
  • UI\Point::setX »
  • PHP Manual
  • UI\Point
  • Retrieves Y

UI\Point::getY

(UI 0.9.9)

UI\Point::getY — Retrieves Y

Açıklama

public UI\Point::getY(): float

Retrieves the Y co-ordinate

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

The current Y co-ordinate

User Contributed Notes

There are no user contributed notes for this page.


Set X

  • « UI\Point::getY
  • UI\Point::setY »
  • PHP Manual
  • UI\Point
  • Set X

UI\Point::setX

(UI 0.9.9)

UI\Point::setX — Set X

Açıklama

public UI\Point::setX(float $point)

Set the X co-ordinate

Bağımsız Değişkenler

point

The new X co-ordinate

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Set Y

  • « UI\Point::setX
  • UI\Size »
  • PHP Manual
  • UI\Point
  • Set Y

UI\Point::setY

(UI 0.9.9)

UI\Point::setY — Set Y

Açıklama

public UI\Point::setY(float $point)

Set the Y co-ordinate

Bağımsız Değişkenler

point

The new Y co-ordinate

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Represents dimensions (width, height)

(UI 0.9.9)

Giriş

Sizes are used throughout UI to represent the size of a screen, control, or area.

Sınıf Sözdizimi

final class UI\Size {
/* Özellikler */
public $width;
public $height;
/* Constructor */
public __construct(float $width, float $height)
/* Yöntemler */
public getHeight(): float
public getWidth(): float
public static of(float $size): UI\Size
public static of(UI\Point $point): UI\Size
public setHeight(float $size)
public setWidth(float $size)
}

Özellikler

width

Holds the width, can be read/written directly

height

Holds the height, can be read/written directly

İçindekiler

  • UI\Size::__construct — Construct a new Size
  • UI\Size::getHeight — Retrieves Height
  • UI\Size::getWidth — Retrives Width
  • UI\Size::of — Point Coercion
  • UI\Size::setHeight — Set Height
  • UI\Size::setWidth — Set Width

User Contributed Notes

There are no user contributed notes for this page.


Construct a new Size

  • « UI\Size
  • UI\Size::getHeight »
  • PHP Manual
  • UI\Size
  • Construct a new Size

UI\Size::__construct

(UI 0.9.9)

UI\Size::__construct — Construct a new Size

Açıklama

public UI\Size::__construct(float $width, float $height)

Construct a new Size using new width and height

Bağımsız Değişkenler

width

The new width

height

The new height

User Contributed Notes

There are no user contributed notes for this page.


Retrieves Height

  • « UI\Size::__construct
  • UI\Size::getWidth »
  • PHP Manual
  • UI\Size
  • Retrieves Height

UI\Size::getHeight

(UI 0.9.9)

UI\Size::getHeight — Retrieves Height

Açıklama

public UI\Size::getHeight(): float

Retrieves the Height

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

The current Height

User Contributed Notes

There are no user contributed notes for this page.


Retrives Width

  • « UI\Size::getHeight
  • UI\Size::of »
  • PHP Manual
  • UI\Size
  • Retrives Width

UI\Size::getWidth

(UI 0.9.9)

UI\Size::getWidth — Retrives Width

Açıklama

public UI\Size::getWidth(): float

Retrieves the Width

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

The current Width

User Contributed Notes

There are no user contributed notes for this page.


Point Coercion

  • « UI\Size::getWidth
  • UI\Size::setHeight »
  • PHP Manual
  • UI\Size
  • Point Coercion

UI\Size::of

(UI 1.0.2)

UI\Size::of — Point Coercion

Açıklama

public static UI\Size::of(float $size): UI\Size
public static UI\Size::of(UI\Point $point): UI\Size

Shall return a UI\Size object where width and height are equal to those supplied, either in float or UI\Point form

Bağımsız Değişkenler

size

The value for width and height

point

The Point to convert

Dönen Değerler

The resulting Size

User Contributed Notes

There are no user contributed notes for this page.


Set Height

  • « UI\Size::of
  • UI\Size::setWidth »
  • PHP Manual
  • UI\Size
  • Set Height

UI\Size::setHeight

(UI 0.9.9)

UI\Size::setHeight — Set Height

Açıklama

public UI\Size::setHeight(float $size)

Set new Height

Bağımsız Değişkenler

size

The new Height

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Set Width

  • « UI\Size::setHeight
  • UI\Window »
  • PHP Manual
  • UI\Size
  • Set Width

UI\Size::setWidth

(UI 0.9.9)

UI\Size::setWidth — Set Width

Açıklama

public UI\Size::setWidth(float $size)

Set new Width

Bağımsız Değişkenler

size

The new Width

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Window

(UI 0.9.9)

Giriş

Represents a UI Window

Sınıf Sözdizimi

class UI\Window extends UI\Control {
/* Özellikler */
protected $controls;
/* Constructor */
public __construct(string $title, Size $size, bool $menu = false)
/* Yöntemler */
public add(UI\Control $control)
public error(string $title, string $msg)
public getSize(): UI\Size
public getTitle(): string
public hasBorders(): bool
public hasMargin(): bool
public isFullScreen(): bool
public msg(string $title, string $msg)
protected onClosing(): int
public open(): string
public save(): string
public setBorders(bool $borders)
public setFullScreen(bool $full)
public setMargin(bool $margin)
public setSize(UI\Size $size)
public setTitle(string $title)
/* Miras alınan yöntemler */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Özellikler

controls

Contains controls, should not be manipulated directly

İçindekiler

  • UI\Window::add — Add a Control
  • UI\Window::__construct — Construct a new Window
  • UI\Window::error — Show Error Box
  • UI\Window::getSize — Get Window Size
  • UI\Window::getTitle — Get Title
  • UI\Window::hasBorders — Border Detection
  • UI\Window::hasMargin — Margin Detection
  • UI\Window::isFullScreen — Full Screen Detection
  • UI\Window::msg — Show Message Box
  • UI\Window::onClosing — Closing Callback
  • UI\Window::open — Open Dialog
  • UI\Window::save — Save Dialog
  • UI\Window::setBorders — Border Use
  • UI\Window::setFullScreen — Full Screen Use
  • UI\Window::setMargin — Margin Use
  • UI\Window::setSize — Set Size
  • UI\Window::setTitle — Window Title

User Contributed Notes

everton3x at gmail dot com 03-Feb-2017 12:58
This is a example to wizard layout in UI library:

<?php

/*
 * Wizard sample layout builded with PHP UI
 */

use UI\Window;
use UI\Size;
use UI\Controls\Button;
use UI\Controls\Grid;
use UI\Controls\Box;
use UI\Controls\Form;
use UI\Controls\Entry;
use UI\Controls\Label;

/*
 * The window
 */
$window = new Window('Wizard Sample Layout', new Size(640, 480), TRUE);
$window->setMargin(true);

/*
 * Wizard content (sample)
 */
$content = new Form();
$content->setPadded(true);
$content->append('User:', new Entry());
$content->append('Password:', new Entry(Entry::Password));

/*
 * Layout to title, content and buttons
 */
$grid = new Grid();
$grid->setPadded(false);

/*
 * Title
 */
$grid->append(new Label('Wizard Sample'), 0, 0, 6, 1, true, Grid::Fill, false, Grid::Fill);

/*
 * Append content
 */
$grid->append($content, 0, 1, 6, 1, false, Grid::Fill, true, Grid::Fill);

/*
 * Left buttons
 */
$left_box = new Box(Box::Horizontal);
$left_box->append(new Button('&About'));
$left_box->append(new Button('&Help'));

/*
 * Right buttons
 */
$right_box = new Box(Box::Horizontal);
$right_box->append(new Button('&Back'));
$right_box->append(new Button('&Forward'));
$right_box->append(new Button('&Close'));

/**
 * Append buttons
 */
$grid->append($left_box, 0, 2, 1, 1, true, Grid::Start, false, Grid::Fill);
$grid->append($right_box, 5, 2, 1, 1, true, Grid::End, false, Grid::Fill);

/*
 * Append layout and show.
 */
$window->add($grid);

$window->show();

UI\run();

?>


Add a Control

  • « UI\Window
  • UI\Window::__construct »
  • PHP Manual
  • UI\Window
  • Add a Control

UI\Window::add

(UI 0.9.9)

UI\Window::add — Add a Control

Açıklama

public UI\Window::add(UI\Control $control)

Shall add a Control to this Window

Bağımsız Değişkenler

control

The Control to add

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Construct a new Window

  • « UI\Window::add
  • UI\Window::error »
  • PHP Manual
  • UI\Window
  • Construct a new Window

UI\Window::__construct

(UI 0.9.9)

UI\Window::__construct — Construct a new Window

Açıklama

public UI\Window::__construct(string $title, Size $size, bool $menu = false)

Shall construct a new Window

Bağımsız Değişkenler

title

The title of the Window

size

The size of the Window

menu

Menu switch

User Contributed Notes

There are no user contributed notes for this page.


Show Error Box

  • « UI\Window::__construct
  • UI\Window::getSize »
  • PHP Manual
  • UI\Window
  • Show Error Box

UI\Window::error

(UI 0.9.9)

UI\Window::error — Show Error Box

Açıklama

public UI\Window::error(string $title, string $msg)

Shall show an error box

Bağımsız Değişkenler

title

The title of the error box

msg

The message for the error box

User Contributed Notes

There are no user contributed notes for this page.


Get Window Size

  • « UI\Window::error
  • UI\Window::getTitle »
  • PHP Manual
  • UI\Window
  • Get Window Size

UI\Window::getSize

(UI 0.9.9)

UI\Window::getSize — Get Window Size

Açıklama

public UI\Window::getSize(): UI\Size

Shall return the size of this Window

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Get Title

  • « UI\Window::getSize
  • UI\Window::hasBorders »
  • PHP Manual
  • UI\Window
  • Get Title

UI\Window::getTitle

(UI 0.9.9)

UI\Window::getTitle — Get Title

Açıklama

public UI\Window::getTitle(): string

Shall retrieve the title of this Window

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Border Detection

  • « UI\Window::getTitle
  • UI\Window::hasMargin »
  • PHP Manual
  • UI\Window
  • Border Detection

UI\Window::hasBorders

(UI 0.9.9)

UI\Window::hasBorders — Border Detection

Açıklama

public UI\Window::hasBorders(): bool

Shall detect if borders are used on this Window

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Margin Detection

  • « UI\Window::hasBorders
  • UI\Window::isFullScreen »
  • PHP Manual
  • UI\Window
  • Margin Detection

UI\Window::hasMargin

(UI 0.9.9)

UI\Window::hasMargin — Margin Detection

Açıklama

public UI\Window::hasMargin(): bool

Shall detect if margins are used on this Window

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Full Screen Detection

  • « UI\Window::hasMargin
  • UI\Window::msg »
  • PHP Manual
  • UI\Window
  • Full Screen Detection

UI\Window::isFullScreen

(UI 0.9.9)

UI\Window::isFullScreen — Full Screen Detection

Açıklama

public UI\Window::isFullScreen(): bool

Shall detect if this Window us using the whole screen

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Show Message Box

  • « UI\Window::isFullScreen
  • UI\Window::onClosing »
  • PHP Manual
  • UI\Window
  • Show Message Box

UI\Window::msg

(UI 0.9.9)

UI\Window::msg — Show Message Box

Açıklama

public UI\Window::msg(string $title, string $msg)

Shall show a message box

Bağımsız Değişkenler

title

The title of the message box

msg

The message

User Contributed Notes

There are no user contributed notes for this page.


Closing Callback

  • « UI\Window::msg
  • UI\Window::open »
  • PHP Manual
  • UI\Window
  • Closing Callback

UI\Window::onClosing

(UI 0.9.9)

UI\Window::onClosing — Closing Callback

Açıklama

protected UI\Window::onClosing(): int

Should gracefully destroy this Window

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Open Dialog

  • « UI\Window::onClosing
  • UI\Window::save »
  • PHP Manual
  • UI\Window
  • Open Dialog

UI\Window::open

(UI 0.9.9)

UI\Window::open — Open Dialog

Açıklama

public UI\Window::open(): string

Shall show an open file dialog

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

Returns the name of the file selected for opening

User Contributed Notes

There are no user contributed notes for this page.


Save Dialog

  • « UI\Window::open
  • UI\Window::setBorders »
  • PHP Manual
  • UI\Window
  • Save Dialog

UI\Window::save

(UI 0.9.9)

UI\Window::save — Save Dialog

Açıklama

public UI\Window::save(): string

Shall show a save dialog

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

Returns the file name selecting for saving

User Contributed Notes

There are no user contributed notes for this page.


Border Use

  • « UI\Window::save
  • UI\Window::setFullScreen »
  • PHP Manual
  • UI\Window
  • Border Use

UI\Window::setBorders

(UI 0.9.9)

UI\Window::setBorders — Border Use

Açıklama

public UI\Window::setBorders(bool $borders)

Shall enable or disable the use of borders on this Window

Bağımsız Değişkenler

borders

User Contributed Notes

There are no user contributed notes for this page.


Full Screen Use

  • « UI\Window::setBorders
  • UI\Window::setMargin »
  • PHP Manual
  • UI\Window
  • Full Screen Use

UI\Window::setFullScreen

(UI 0.9.9)

UI\Window::setFullScreen — Full Screen Use

Açıklama

public UI\Window::setFullScreen(bool $full)

Shall enable or disable the use of the full screen for this Window

Uyarı

Bu işlev hala belgelendirilmemiştir; sadece bağımsız değişken listesi mevcuttur.

Bağımsız Değişkenler

full

User Contributed Notes

There are no user contributed notes for this page.


Margin Use

  • « UI\Window::setFullScreen
  • UI\Window::setSize »
  • PHP Manual
  • UI\Window
  • Margin Use

UI\Window::setMargin

(UI 0.9.9)

UI\Window::setMargin — Margin Use

Açıklama

public UI\Window::setMargin(bool $margin)

Shall enable or disable the use of margins for this Window

Bağımsız Değişkenler

margin

User Contributed Notes

There are no user contributed notes for this page.


Set Size

  • « UI\Window::setMargin
  • UI\Window::setTitle »
  • PHP Manual
  • UI\Window
  • Set Size

UI\Window::setSize

(UI 0.9.9)

UI\Window::setSize — Set Size

Açıklama

public UI\Window::setSize(UI\Size $size)

Shall set the size of this Window

Bağımsız Değişkenler

size

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Window Title

  • « UI\Window::setSize
  • UI\Control »
  • PHP Manual
  • UI\Window
  • Window Title

UI\Window::setTitle

(UI 0.9.9)

UI\Window::setTitle — Window Title

Açıklama

public UI\Window::setTitle(string $title)

Shall set the title for this Window

Bağımsız Değişkenler

title

The new title

User Contributed Notes

There are no user contributed notes for this page.


Control

(UI 0.9.9)

Giriş

This is the closed base class for all UI Controls.

Sınıf Sözdizimi

final class UI\Control {
/* Yöntemler */
public destroy()
public disable()
public enable()
public getParent(): UI\Control
public getTopLevel(): int
public hide()
public isEnabled(): bool
public isVisible(): bool
public setParent(UI\Control $parent)
public show()
}

İçindekiler

  • UI\Control::destroy — Destroy Control
  • UI\Control::disable — Disable Control
  • UI\Control::enable — Enable Control
  • UI\Control::getParent — Get Parent Control
  • UI\Control::getTopLevel — Get Top Level
  • UI\Control::hide — Hide Control
  • UI\Control::isEnabled — Determine if Control is enabled
  • UI\Control::isVisible — Determine if Control is visible
  • UI\Control::setParent — Set Parent Control
  • UI\Control::show — Control Show

User Contributed Notes

There are no user contributed notes for this page.


Destroy Control

  • « UI\Control
  • UI\Control::disable »
  • PHP Manual
  • UI\Control
  • Destroy Control

UI\Control::destroy

(UI 0.9.9)

UI\Control::destroy — Destroy Control

Açıklama

public UI\Control::destroy()

Shall destroy this Control

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Disable Control

  • « UI\Control::destroy
  • UI\Control::enable »
  • PHP Manual
  • UI\Control
  • Disable Control

UI\Control::disable

(UI 0.9.9)

UI\Control::disable — Disable Control

Açıklama

public UI\Control::disable()

Shall disable this Control

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Enable Control

  • « UI\Control::disable
  • UI\Control::getParent »
  • PHP Manual
  • UI\Control
  • Enable Control

UI\Control::enable

(UI 0.9.9)

UI\Control::enable — Enable Control

Açıklama

public UI\Control::enable()

Shall enable this Control

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Get Parent Control

  • « UI\Control::enable
  • UI\Control::getTopLevel »
  • PHP Manual
  • UI\Control
  • Get Parent Control

UI\Control::getParent

(UI 0.9.9)

UI\Control::getParent — Get Parent Control

Açıklama

public UI\Control::getParent(): UI\Control

Shall return the parent Control

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Get Top Level

  • « UI\Control::getParent
  • UI\Control::hide »
  • PHP Manual
  • UI\Control
  • Get Top Level

UI\Control::getTopLevel

(UI 0.9.9)

UI\Control::getTopLevel — Get Top Level

Açıklama

public UI\Control::getTopLevel(): int

Uyarı

Bu işlev hala belgelendirilmemiştir; sadece bağımsız değişken listesi mevcuttur.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Hide Control

  • « UI\Control::getTopLevel
  • UI\Control::isEnabled »
  • PHP Manual
  • UI\Control
  • Hide Control

UI\Control::hide

(UI 0.9.9)

UI\Control::hide — Hide Control

Açıklama

public UI\Control::hide()

Shall hide this Control

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Determine if Control is enabled

  • « UI\Control::hide
  • UI\Control::isVisible »
  • PHP Manual
  • UI\Control
  • Determine if Control is enabled

UI\Control::isEnabled

(UI 0.9.9)

UI\Control::isEnabled — Determine if Control is enabled

Açıklama

public UI\Control::isEnabled(): bool

Shall detect if this Control is enabled

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Determine if Control is visible

  • « UI\Control::isEnabled
  • UI\Control::setParent »
  • PHP Manual
  • UI\Control
  • Determine if Control is visible

UI\Control::isVisible

(UI 0.9.9)

UI\Control::isVisible — Determine if Control is visible

Açıklama

public UI\Control::isVisible(): bool

Shall detect if this Control is visible

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Set Parent Control

  • « UI\Control::isVisible
  • UI\Control::show »
  • PHP Manual
  • UI\Control
  • Set Parent Control

UI\Control::setParent

(UI 0.9.9)

UI\Control::setParent — Set Parent Control

Açıklama

public UI\Control::setParent(UI\Control $parent)

Shall set the parent Control of this Control

Bağımsız Değişkenler

parent

The parent Control

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Control Show

  • « UI\Control::setParent
  • UI\Menu »
  • PHP Manual
  • UI\Control
  • Control Show

UI\Control::show

(UI 0.9.9)

UI\Control::show — Control Show

Açıklama

public UI\Control::show()

Shall show this Control

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Menu

(UI 0.9.9)

Giriş

Menus must be constructed before the first Window, and can be shown on any Window

Sınıf Sözdizimi

class UI\Menu {
/* Constructor */
public __construct(string $name)
/* Yöntemler */
public append(string $name, string $type = UI\MenuItem::class): UI\MenuItem
public appendAbout(string $type = UI\MenuItem::class): UI\MenuItem
public appendCheck(string $name, string $type = UI\MenuItem::class): UI\MenuItem
public appendPreferences(string $type = UI\MenuItem::class): UI\MenuItem
public appendQuit(string $type = UI\MenuItem::class): UI\MenuItem
public appendSeparator()
}

İçindekiler

  • UI\Menu::append — Append Menu Item
  • UI\Menu::appendAbout — Append About Menu Item
  • UI\Menu::appendCheck — Append Checkable Menu Item
  • UI\Menu::appendPreferences — Append Preferences Menu Item
  • UI\Menu::appendQuit — Append Quit Menu Item
  • UI\Menu::appendSeparator — Append Menu Item Separator
  • UI\Menu::__construct — Construct a new Menu

User Contributed Notes

There are no user contributed notes for this page.


Append Menu Item

  • « UI\Menu
  • UI\Menu::appendAbout »
  • PHP Manual
  • UI\Menu
  • Append Menu Item

UI\Menu::append

(UI 0.9.9)

UI\Menu::append — Append Menu Item

Açıklama

public UI\Menu::append(string $name, string $type = UI\MenuItem::class): UI\MenuItem

Shall append a new Menu Item

Bağımsız Değişkenler

name

The name (text) for the new item

type

The type for the new item

Dönen Değerler

A constructed object of the given type

User Contributed Notes

There are no user contributed notes for this page.


Append About Menu Item

  • « UI\Menu::append
  • UI\Menu::appendCheck »
  • PHP Manual
  • UI\Menu
  • Append About Menu Item

UI\Menu::appendAbout

(UI 0.9.9)

UI\Menu::appendAbout — Append About Menu Item

Açıklama

public UI\Menu::appendAbout(string $type = UI\MenuItem::class): UI\MenuItem

Shall append an About menu item

Bağımsız Değişkenler

type

The type for the new item

Dönen Değerler

A constructed About menu item of the given type

User Contributed Notes

There are no user contributed notes for this page.


Append Checkable Menu Item

  • « UI\Menu::appendAbout
  • UI\Menu::appendPreferences »
  • PHP Manual
  • UI\Menu
  • Append Checkable Menu Item

UI\Menu::appendCheck

(UI 0.9.9)

UI\Menu::appendCheck — Append Checkable Menu Item

Açıklama

public UI\Menu::appendCheck(string $name, string $type = UI\MenuItem::class): UI\MenuItem

Shall append a checkable menu item

Bağımsız Değişkenler

name

The name (text) for the new item

type

The type for the new item

Dönen Değerler

A constructed checkable menu item of the given type

User Contributed Notes

There are no user contributed notes for this page.


Append Preferences Menu Item

  • « UI\Menu::appendCheck
  • UI\Menu::appendQuit »
  • PHP Manual
  • UI\Menu
  • Append Preferences Menu Item

UI\Menu::appendPreferences

(UI 0.9.9)

UI\Menu::appendPreferences — Append Preferences Menu Item

Açıklama

public UI\Menu::appendPreferences(string $type = UI\MenuItem::class): UI\MenuItem

Shall append a Preferences menu item

Bağımsız Değişkenler

type

The type for the new item

Dönen Değerler

A constructed Preferences menu item of the given type

User Contributed Notes

There are no user contributed notes for this page.


Append Quit Menu Item

  • « UI\Menu::appendPreferences
  • UI\Menu::appendSeparator »
  • PHP Manual
  • UI\Menu
  • Append Quit Menu Item

UI\Menu::appendQuit

(UI 0.9.9)

UI\Menu::appendQuit — Append Quit Menu Item

Açıklama

public UI\Menu::appendQuit(string $type = UI\MenuItem::class): UI\MenuItem

Shall append a Quit menu item

Bağımsız Değişkenler

type

The type for the new item

Dönen Değerler

A constructed Quit menu item of the given type

User Contributed Notes

There are no user contributed notes for this page.


Append Menu Item Separator

  • « UI\Menu::appendQuit
  • UI\Menu::__construct »
  • PHP Manual
  • UI\Menu
  • Append Menu Item Separator

UI\Menu::appendSeparator

(UI 0.9.9)

UI\Menu::appendSeparator — Append Menu Item Separator

Açıklama

public UI\Menu::appendSeparator()

Shall append a separator

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

User Contributed Notes

There are no user contributed notes for this page.


Construct a new Menu

  • « UI\Menu::appendSeparator
  • UI\MenuItem »
  • PHP Manual
  • UI\Menu
  • Construct a new Menu

UI\Menu::__construct

(UI 0.9.9)

UI\Menu::__construct — Construct a new Menu

Açıklama

public UI\Menu::__construct(string $name)

Shall construct a new Menu

Bağımsız Değişkenler

name

The name (text) for the menu

User Contributed Notes

There are no user contributed notes for this page.


Menu Item

(UI 0.9.9)

Giriş

Menu Items should only be created by the Menu

Sınıf Sözdizimi

class UI\MenuItem {
/* Yöntemler */
public disable()
public enable()
public isChecked(): bool
protected onClick()
public setChecked(bool $checked)
}

İçindekiler

  • UI\MenuItem::disable — Disable Menu Item
  • UI\MenuItem::enable — Enable Menu Item
  • UI\MenuItem::isChecked — Detect Checked
  • UI\MenuItem::onClick — On Click Callback
  • UI\MenuItem::setChecked — Set Checked

User Contributed Notes

There are no user contributed notes for this page.


Disable Menu Item

  • « UI\MenuItem
  • UI\MenuItem::enable »
  • PHP Manual
  • UI\MenuItem
  • Disable Menu Item

UI\MenuItem::disable

(UI 0.9.9)

UI\MenuItem::disable — Disable Menu Item

Açıklama

public UI\MenuItem::disable()

Shall disable this Menu Item

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

User Contributed Notes

There are no user contributed notes for this page.


Enable Menu Item

  • « UI\MenuItem::disable
  • UI\MenuItem::isChecked »
  • PHP Manual
  • UI\MenuItem
  • Enable Menu Item

UI\MenuItem::enable

(UI 0.9.9)

UI\MenuItem::enable — Enable Menu Item

Açıklama

public UI\MenuItem::enable()

Shall enable this Menu Item

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

User Contributed Notes

There are no user contributed notes for this page.


Detect Checked

  • « UI\MenuItem::enable
  • UI\MenuItem::onClick »
  • PHP Manual
  • UI\MenuItem
  • Detect Checked

UI\MenuItem::isChecked

(UI 0.9.9)

UI\MenuItem::isChecked — Detect Checked

Açıklama

public UI\MenuItem::isChecked(): bool

Shall detect if this Menu Item is checked

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

User Contributed Notes

There are no user contributed notes for this page.


On Click Callback

  • « UI\MenuItem::isChecked
  • UI\MenuItem::setChecked »
  • PHP Manual
  • UI\MenuItem
  • On Click Callback

UI\MenuItem::onClick

(UI 0.9.9)

UI\MenuItem::onClick — On Click Callback

Açıklama

protected UI\MenuItem::onClick()

Shall be executed when this Menu Item is clicked

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

User Contributed Notes

There are no user contributed notes for this page.


Set Checked

  • « UI\MenuItem::onClick
  • UI\Area »
  • PHP Manual
  • UI\MenuItem
  • Set Checked

UI\MenuItem::setChecked

(UI 0.9.9)

UI\MenuItem::setChecked — Set Checked

Açıklama

public UI\MenuItem::setChecked(bool $checked)

Shall set the checked status of this Menu Item

Bağımsız Değişkenler

checked

The new status

User Contributed Notes

There are no user contributed notes for this page.


Area

(UI 0.9.9)

Giriş

An Area represents a canvas which can be used to draw, and respond to mouse and key events.

Sınıf Sözdizimi

class UI\Area extends UI\Control {
/* Sabitler */
const int Ctrl;
const int Alt;
const int Shift;
const int Super;
const int Down;
const int Up;
/* Yöntemler */
protected onDraw(
UI\Draw\Pen $pen,
UI\Size $areaSize,
UI\Point $clipPoint,
UI\Size $clipSize
)
protected onKey(string $key, int $ext, int $flags)
protected onMouse(UI\Point $areaPoint, UI\Size $areaSize, int $flags)
public redraw()
public scrollTo(UI\Point $point, UI\Size $size)
public setSize(UI\Size $size)
/* Miras alınan yöntemler */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Öntanımlı Sabitler

UI\Area::Ctrl

Shall be set in the modifiers passed to key and mouse events when the CTRL key is active

UI\Area::Alt

Shall be set in the modifiers passed to key and mouse events when the ALT key is active

UI\Area::Shift

Shall be set in the modifiers passed to key and mouse events when the SHIFT key is active

UI\Area::Super

UI\Area::Down

Shall be set in the modifiers passed to key and mouse events

UI\Area::Up

Shall be set in the modifiers passed to key and mouse events

İçindekiler

  • UI\Area::onDraw — Draw Callback
  • UI\Area::onKey — Key Callback
  • UI\Area::onMouse — Mouse Callback
  • UI\Area::redraw — Redraw Area
  • UI\Area::scrollTo — Area Scroll
  • UI\Area::setSize — Set Size

User Contributed Notes

There are no user contributed notes for this page.


Draw Callback

  • « UI\Area
  • UI\Area::onKey »
  • PHP Manual
  • UI\Area
  • Draw Callback

UI\Area::onDraw

(UI 0.9.9)

UI\Area::onDraw — Draw Callback

Açıklama

protected UI\Area::onDraw(
UI\Draw\Pen $pen,
UI\Size $areaSize,
UI\Point $clipPoint,
UI\Size $clipSize
)

Shall be invoked when this Area requires redrawing

Bağımsız Değişkenler

pen

A Pen suitable for drawing in this Area

areaSize

The size of the Area

clipPoint

The clip point of the Area

clipSize

The clip size of the Area

User Contributed Notes

There are no user contributed notes for this page.


Key Callback

  • « UI\Area::onDraw
  • UI\Area::onMouse »
  • PHP Manual
  • UI\Area
  • Key Callback

UI\Area::onKey

(UI 0.9.9)

UI\Area::onKey — Key Callback

Açıklama

protected UI\Area::onKey(string $key, int $ext, int $flags)

Shall be executed on key events

Bağımsız Değişkenler

key

The key pressed

ext

The extended key pressed

flags

Event modifiers

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Mouse Callback

  • « UI\Area::onKey
  • UI\Area::redraw »
  • PHP Manual
  • UI\Area
  • Mouse Callback

UI\Area::onMouse

(UI 0.9.9)

UI\Area::onMouse — Mouse Callback

Açıklama

protected UI\Area::onMouse(UI\Point $areaPoint, UI\Size $areaSize, int $flags)

Shall be executed on mouse events

Bağımsız Değişkenler

areaPoint

The co-ordinates of the event

areaSize

The size of the area of the event

flags

Event modifiers

User Contributed Notes

There are no user contributed notes for this page.


Redraw Area

  • « UI\Area::onMouse
  • UI\Area::scrollTo »
  • PHP Manual
  • UI\Area
  • Redraw Area

UI\Area::redraw

(UI 0.9.9)

UI\Area::redraw — Redraw Area

Açıklama

public UI\Area::redraw()

Requests that this Area is redrawn

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Area Scroll

  • « UI\Area::redraw
  • UI\Area::setSize »
  • PHP Manual
  • UI\Area
  • Area Scroll

UI\Area::scrollTo

(UI 0.9.9)

UI\Area::scrollTo — Area Scroll

Açıklama

public UI\Area::scrollTo(UI\Point $point, UI\Size $size)

Scroll this Area

Bağımsız Değişkenler

point

The point to scroll to

size

The size of the scroll pane

User Contributed Notes

There are no user contributed notes for this page.


Set Size

  • « UI\Area::scrollTo
  • UI\Executor »
  • PHP Manual
  • UI\Area
  • Set Size

UI\Area::setSize

(UI 0.9.9)

UI\Area::setSize — Set Size

Açıklama

public UI\Area::setSize(UI\Size $size)

Sets the size of this Area

Bağımsız Değişkenler

size

The new size

User Contributed Notes

There are no user contributed notes for this page.


Execution Scheduler

(UI 2.0.0)

Giriş

This facility schedules repetitive execution of a callback, useful for animations and other such activities.

Sınıf Sözdizimi

abstract class UI\Executor {
/* Constructor */
public __construct()
public __construct(int $microseconds)
public __construct(int $seconds, int $microseconds)
/* Yöntemler */
public kill(): void
abstract protected onExecute(): void
public setInterval(int $microseconds): bool
public setInterval(int $seconds, int $microseconds): bool
}

İçindekiler

  • UI\Executor::__construct — Construct a new Executor
  • UI\Executor::kill — Stop Executor
  • UI\Executor::onExecute — Execution Callback
  • UI\Executor::setInterval — Interval Manipulation

User Contributed Notes

There are no user contributed notes for this page.


Construct a new Executor

  • « UI\Executor
  • UI\Executor::kill »
  • PHP Manual
  • UI\Executor
  • Construct a new Executor

UI\Executor::__construct

(UI 2.0.0)

UI\Executor::__construct — Construct a new Executor

Açıklama

public UI\Executor::__construct()
public UI\Executor::__construct(int $microseconds)
public UI\Executor::__construct(int $seconds, int $microseconds)

Shall construct an executor with the given interval, will not start executing until main loop is entered

Bağımsız Değişkenler

seconds

Seconds between executions

microseconds

Microseconds between executions

User Contributed Notes

There are no user contributed notes for this page.


Stop Executor

  • « UI\Executor::__construct
  • UI\Executor::onExecute »
  • PHP Manual
  • UI\Executor
  • Stop Executor

UI\Executor::kill

(UI 2.0.0)

UI\Executor::kill — Stop Executor

Açıklama

public UI\Executor::kill(): void

Shall stop an executor, the executor cannot be restarted

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Execution Callback

  • « UI\Executor::kill
  • UI\Executor::setInterval »
  • PHP Manual
  • UI\Executor
  • Execution Callback

UI\Executor::onExecute

(UI 2.0.0)

UI\Executor::onExecute — Execution Callback

Açıklama

abstract protected UI\Executor::onExecute(): void

Shall be repetitively queued for execution in the main thread

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Interval Manipulation

  • « UI\Executor::onExecute
  • UI\Controls\Tab »
  • PHP Manual
  • UI\Executor
  • Interval Manipulation

UI\Executor::setInterval

(UI 2.0.0)

UI\Executor::setInterval — Interval Manipulation

Açıklama

public UI\Executor::setInterval(int $microseconds): bool
public UI\Executor::setInterval(int $seconds, int $microseconds): bool

Shall set the new interval. An interval of 0 will pause the executor until a new interval has been set

Bağımsız Değişkenler

seconds

microseconds

Dönen Değerler

Indication of success

User Contributed Notes

There are no user contributed notes for this page.


Tab Control

(UI 0.9.9)

Giriş

A Tab can contain many pages of Controls, each with a title, each selectable by the user.

Sınıf Sözdizimi

class UI\Controls\Tab extends UI\Control {
/* Özellikler */
protected $controls;
/* Yöntemler */
public append(string $name, UI\Control $control): int
public delete(int $index): bool
public hasMargin(int $page): bool
public insertAt(string $name, int $page, UI\Control $control)
public pages(): int
public setMargin(int $page, bool $margin)
/* Miras alınan yöntemler */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Özellikler

controls

Contains controls, should not be manipulated directly

İçindekiler

  • UI\Controls\Tab::append — Append Page
  • UI\Controls\Tab::delete — Delete Page
  • UI\Controls\Tab::hasMargin — Margin Detection
  • UI\Controls\Tab::insertAt — Insert Page
  • UI\Controls\Tab::pages — Page Count
  • UI\Controls\Tab::setMargin — Set Margin

User Contributed Notes

There are no user contributed notes for this page.


Append Page

  • « UI\Controls\Tab
  • UI\Controls\Tab::delete »
  • PHP Manual
  • UI\Controls\Tab
  • Append Page

UI\Controls\Tab::append

(UI 0.9.9)

UI\Controls\Tab::append — Append Page

Açıklama

public UI\Controls\Tab::append(string $name, UI\Control $control): int

Append a new page to this Tab

Bağımsız Değişkenler

name

The name for the new page

control

The control for the new page

Dönen Değerler

Shall return the index of the appended control, may be 0

User Contributed Notes

There are no user contributed notes for this page.


Delete Page

  • « UI\Controls\Tab::append
  • UI\Controls\Tab::hasMargin »
  • PHP Manual
  • UI\Controls\Tab
  • Delete Page

UI\Controls\Tab::delete

(UI 0.9.9)

UI\Controls\Tab::delete — Delete Page

Açıklama

public UI\Controls\Tab::delete(int $index): bool

Shall remove the selected page from this Tab

Bağımsız Değişkenler

index

The index of the page to remove

Dönen Değerler

Indication of success

User Contributed Notes

There are no user contributed notes for this page.


Margin Detection

  • « UI\Controls\Tab::delete
  • UI\Controls\Tab::insertAt »
  • PHP Manual
  • UI\Controls\Tab
  • Margin Detection

UI\Controls\Tab::hasMargin

(UI 0.9.9)

UI\Controls\Tab::hasMargin — Margin Detection

Açıklama

public UI\Controls\Tab::hasMargin(int $page): bool

Shall detect if the given page has a margin.

Bağımsız Değişkenler

page

The index of the page

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Insert Page

  • « UI\Controls\Tab::hasMargin
  • UI\Controls\Tab::pages »
  • PHP Manual
  • UI\Controls\Tab
  • Insert Page

UI\Controls\Tab::insertAt

(UI 0.9.9)

UI\Controls\Tab::insertAt — Insert Page

Açıklama

public UI\Controls\Tab::insertAt(string $name, int $page, UI\Control $control)

Shall insert a new page into this Tab

Bağımsız Değişkenler

name

The name for the new page

page

The index to perform the insertion before

control

The control for the new page

User Contributed Notes

There are no user contributed notes for this page.


Page Count

  • « UI\Controls\Tab::insertAt
  • UI\Controls\Tab::setMargin »
  • PHP Manual
  • UI\Controls\Tab
  • Page Count

UI\Controls\Tab::pages

(UI 0.9.9)

UI\Controls\Tab::pages — Page Count

Açıklama

public UI\Controls\Tab::pages(): int

Shall return the number of pages in this Tab

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

The number of pages in this Tab

User Contributed Notes

There are no user contributed notes for this page.


Set Margin

  • « UI\Controls\Tab::pages
  • UI\Controls\Check »
  • PHP Manual
  • UI\Controls\Tab
  • Set Margin

UI\Controls\Tab::setMargin

(UI 0.9.9)

UI\Controls\Tab::setMargin — Set Margin

Açıklama

public UI\Controls\Tab::setMargin(int $page, bool $margin)

Shall enable or disable margins on the selected page

Bağımsız Değişkenler

page

The page to select

margin

Margin switch

User Contributed Notes

There are no user contributed notes for this page.


Check Control

(UI 0.9.9)

Giriş

A Check is a labelled checkable box

Sınıf Sözdizimi

class UI\Controls\Check extends UI\Control {
/* Constructor */
public __construct(string $text)
/* Yöntemler */
public getText(): string
public isChecked(): bool
protected onToggle()
public setChecked(bool $checked)
public setText(string $text)
/* Miras alınan yöntemler */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

İçindekiler

  • UI\Controls\Check::__construct — Construct a new Check
  • UI\Controls\Check::getText — Get Text
  • UI\Controls\Check::isChecked — Checked Detection
  • UI\Controls\Check::onToggle — Toggle Callback
  • UI\Controls\Check::setChecked — Set Checked
  • UI\Controls\Check::setText — Set Text

User Contributed Notes

There are no user contributed notes for this page.


Construct a new Check

  • « UI\Controls\Check
  • UI\Controls\Check::getText »
  • PHP Manual
  • UI\Controls\Check
  • Construct a new Check

UI\Controls\Check::__construct

(UI 0.9.9)

UI\Controls\Check::__construct — Construct a new Check

Açıklama

public UI\Controls\Check::__construct(string $text)

Shall construct a new Check

Bağımsız Değişkenler

text

The text (label) for the Check box

User Contributed Notes

There are no user contributed notes for this page.


Get Text

  • « UI\Controls\Check::__construct
  • UI\Controls\Check::isChecked »
  • PHP Manual
  • UI\Controls\Check
  • Get Text

UI\Controls\Check::getText

(UI 0.9.9)

UI\Controls\Check::getText — Get Text

Açıklama

public UI\Controls\Check::getText(): string

Shall return the text (label) for this Check

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

The current text (label)

User Contributed Notes

There are no user contributed notes for this page.


Checked Detection

  • « UI\Controls\Check::getText
  • UI\Controls\Check::onToggle »
  • PHP Manual
  • UI\Controls\Check
  • Checked Detection

UI\Controls\Check::isChecked

(UI 0.9.9)

UI\Controls\Check::isChecked — Checked Detection

Açıklama

public UI\Controls\Check::isChecked(): bool

Shall detect the status of this Check

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

User Contributed Notes

There are no user contributed notes for this page.


Toggle Callback

  • « UI\Controls\Check::isChecked
  • UI\Controls\Check::setChecked »
  • PHP Manual
  • UI\Controls\Check
  • Toggle Callback

UI\Controls\Check::onToggle

(UI 0.9.9)

UI\Controls\Check::onToggle — Toggle Callback

Açıklama

protected UI\Controls\Check::onToggle()

Shall be executed when the status of this Check is changed

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

User Contributed Notes

There are no user contributed notes for this page.


Set Checked

  • « UI\Controls\Check::onToggle
  • UI\Controls\Check::setText »
  • PHP Manual
  • UI\Controls\Check
  • Set Checked

UI\Controls\Check::setChecked

(UI 0.9.9)

UI\Controls\Check::setChecked — Set Checked

Açıklama

public UI\Controls\Check::setChecked(bool $checked)

Shall change the status of this Check

Bağımsız Değişkenler

checked

The new status

User Contributed Notes

There are no user contributed notes for this page.


Set Text

  • « UI\Controls\Check::setChecked
  • UI\Controls\Button »
  • PHP Manual
  • UI\Controls\Check
  • Set Text

UI\Controls\Check::setText

(UI 0.9.9)

UI\Controls\Check::setText — Set Text

Açıklama

public UI\Controls\Check::setText(string $text)

Shall set the text (label) for this Check

Bağımsız Değişkenler

text

The new text (label)

User Contributed Notes

There are no user contributed notes for this page.


Button Control

(UI 0.9.9)

Giriş

Represents a labelled clickable button

Sınıf Sözdizimi

class UI\Controls\Button extends UI\Control {
/* Constructor */
public __construct(string $text)
/* Yöntemler */
public getText(): string
protected onClick()
public setText(string $text)
/* Miras alınan yöntemler */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

İçindekiler

  • UI\Controls\Button::__construct — Construct a new Button
  • UI\Controls\Button::getText — Get Text
  • UI\Controls\Button::onClick — Click Handler
  • UI\Controls\Button::setText — Set Text

User Contributed Notes

There are no user contributed notes for this page.


Construct a new Button

  • « UI\Controls\Button
  • UI\Controls\Button::getText »
  • PHP Manual
  • UI\Controls\Button
  • Construct a new Button

UI\Controls\Button::__construct

(UI 0.9.9)

UI\Controls\Button::__construct — Construct a new Button

Açıklama

public UI\Controls\Button::__construct(string $text)

Shall construct a new Button

Bağımsız Değişkenler

text

The text (label) for this Button

User Contributed Notes

There are no user contributed notes for this page.


Get Text

  • « UI\Controls\Button::__construct
  • UI\Controls\Button::onClick »
  • PHP Manual
  • UI\Controls\Button
  • Get Text

UI\Controls\Button::getText

(UI 0.9.9)

UI\Controls\Button::getText — Get Text

Açıklama

public UI\Controls\Button::getText(): string

Shall retrieve the text (label) for this Button

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

The current text (label)

User Contributed Notes

There are no user contributed notes for this page.


Click Handler

  • « UI\Controls\Button::getText
  • UI\Controls\Button::setText »
  • PHP Manual
  • UI\Controls\Button
  • Click Handler

UI\Controls\Button::onClick

(UI 0.9.9)

UI\Controls\Button::onClick — Click Handler

Açıklama

protected UI\Controls\Button::onClick()

Shall be executed when this Button is clicked

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

User Contributed Notes

There are no user contributed notes for this page.


Set Text

  • « UI\Controls\Button::onClick
  • UI\Controls\ColorButton »
  • PHP Manual
  • UI\Controls\Button
  • Set Text

UI\Controls\Button::setText

(UI 0.9.9)

UI\Controls\Button::setText — Set Text

Açıklama

public UI\Controls\Button::setText(string $text)

Shall set the text (label) for this Button

Bağımsız Değişkenler

text

The new text (label)

User Contributed Notes

There are no user contributed notes for this page.


ColorButton Control

(UI 0.9.9)

Giriş

A Color Button is a button which displays a color picker when clicked

Sınıf Sözdizimi

class UI\Controls\ColorButton extends UI\Control {
/* Yöntemler */
public getColor(): UI\Color
protected onChange()
public setColor(UI\Draw\Color $color)
public setColor(int $color)
/* Miras alınan yöntemler */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

İçindekiler

  • UI\Controls\ColorButton::getColor — Get Color
  • UI\Controls\ColorButton::onChange — Change Handler
  • UI\Controls\ColorButton::setColor — Set Color

User Contributed Notes

There are no user contributed notes for this page.


Get Color

  • « UI\Controls\ColorButton
  • UI\Controls\ColorButton::onChange »
  • PHP Manual
  • UI\Controls\ColorButton
  • Get Color

UI\Controls\ColorButton::getColor

(UI 0.9.9)

UI\Controls\ColorButton::getColor — Get Color

Açıklama

public UI\Controls\ColorButton::getColor(): UI\Color

Shall retrieve the currently selected Color

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Change Handler

  • « UI\Controls\ColorButton::getColor
  • UI\Controls\ColorButton::setColor »
  • PHP Manual
  • UI\Controls\ColorButton
  • Change Handler

UI\Controls\ColorButton::onChange

(UI 0.9.9)

UI\Controls\ColorButton::onChange — Change Handler

Açıklama

protected UI\Controls\ColorButton::onChange()

Shall be executed when the selected Color is changed

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

User Contributed Notes

There are no user contributed notes for this page.


Set Color

  • « UI\Controls\ColorButton::onChange
  • UI\Controls\Label »
  • PHP Manual
  • UI\Controls\ColorButton
  • Set Color

UI\Controls\ColorButton::setColor

(UI 0.9.9)

UI\Controls\ColorButton::setColor — Set Color

Açıklama

public UI\Controls\ColorButton::setColor(UI\Draw\Color $color)
public UI\Controls\ColorButton::setColor(int $color)

Shall set the currently selected Color

Bağımsız Değişkenler

color

The new color

User Contributed Notes

There are no user contributed notes for this page.


Label Control

(UI 0.9.9)

Giriş

A Label is a single line of text, meant to identify, for the user, some element of the interface.

Sınıf Sözdizimi

class UI\Controls\Label extends UI\Control {
/* Constructor */
public __construct(string $text)
/* Yöntemler */
public getText(): string
public setText(string $text)
/* Miras alınan yöntemler */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

İçindekiler

  • UI\Controls\Label::__construct — Construct a new Label
  • UI\Controls\Label::getText — Get Text
  • UI\Controls\Label::setText — Set Text

User Contributed Notes

There are no user contributed notes for this page.


Construct a new Label

  • « UI\Controls\Label
  • UI\Controls\Label::getText »
  • PHP Manual
  • UI\Controls\Label
  • Construct a new Label

UI\Controls\Label::__construct

(UI 0.9.9)

UI\Controls\Label::__construct — Construct a new Label

Açıklama

public UI\Controls\Label::__construct(string $text)

Shall construct a new Label

Bağımsız Değişkenler

text

The text for this label

User Contributed Notes

There are no user contributed notes for this page.


Get Text

  • « UI\Controls\Label::__construct
  • UI\Controls\Label::setText »
  • PHP Manual
  • UI\Controls\Label
  • Get Text

UI\Controls\Label::getText

(UI 0.9.9)

UI\Controls\Label::getText — Get Text

Açıklama

public UI\Controls\Label::getText(): string

Shall return the current text for this Label

Uyarı

Bu işlev hala belgelendirilmemiştir; sadece bağımsız değişken listesi mevcuttur.

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Set Text

  • « UI\Controls\Label::getText
  • UI\Controls\Entry »
  • PHP Manual
  • UI\Controls\Label
  • Set Text

UI\Controls\Label::setText

(UI 0.9.9)

UI\Controls\Label::setText — Set Text

Açıklama

public UI\Controls\Label::setText(string $text)

Shall set the text for this Label

Bağımsız Değişkenler

text

The new text

User Contributed Notes

There are no user contributed notes for this page.


Entry Control

(UI 0.9.9)

Giriş

An Entry is a text entry control, suitable for entering plain text, passwords, or search terms.

Sınıf Sözdizimi

class UI\Controls\Entry extends UI\Control {
/* Sabitler */
const int Normal;
const int Password;
const int Search;
/* Constructor */
public __construct(int $type = UI\Controls\Entry::Normal)
/* Yöntemler */
public getText(): string
public isReadOnly(): bool
protected onChange()
public setReadOnly(bool $readOnly)
public setText(string $text)
/* Miras alınan yöntemler */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Öntanımlı Sabitler

UI\Controls\Entry::Normal

A normal single line entry

UI\Controls\Entry::Password

A password entry

UI\Controls\Entry::Search

A search entry

İçindekiler

  • UI\Controls\Entry::__construct — Construct a new Entry
  • UI\Controls\Entry::getText — Get Text
  • UI\Controls\Entry::isReadOnly — Detect Read Only
  • UI\Controls\Entry::onChange — Change Handler
  • UI\Controls\Entry::setReadOnly — Set Read Only
  • UI\Controls\Entry::setText — Set Text

User Contributed Notes

There are no user contributed notes for this page.


Construct a new Entry

  • « UI\Controls\Entry
  • UI\Controls\Entry::getText »
  • PHP Manual
  • UI\Controls\Entry
  • Construct a new Entry

UI\Controls\Entry::__construct

(UI 0.9.9)

UI\Controls\Entry::__construct — Construct a new Entry

Açıklama

public UI\Controls\Entry::__construct(int $type = UI\Controls\Entry::Normal)

Construct a new entry of the given type

Bağımsız Değişkenler

type

Entry::Normal, Entry::Password, or Entry::Search

User Contributed Notes

There are no user contributed notes for this page.


Get Text

  • « UI\Controls\Entry::__construct
  • UI\Controls\Entry::isReadOnly »
  • PHP Manual
  • UI\Controls\Entry
  • Get Text

UI\Controls\Entry::getText

(UI 0.9.9)

UI\Controls\Entry::getText — Get Text

Açıklama

public UI\Controls\Entry::getText(): string

Shall return the current text from this Entry

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

The current text

User Contributed Notes

There are no user contributed notes for this page.


Detect Read Only

  • « UI\Controls\Entry::getText
  • UI\Controls\Entry::onChange »
  • PHP Manual
  • UI\Controls\Entry
  • Detect Read Only

UI\Controls\Entry::isReadOnly

(UI 0.9.9)

UI\Controls\Entry::isReadOnly — Detect Read Only

Açıklama

public UI\Controls\Entry::isReadOnly(): bool

Shall detect if this Entry is read only

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Change Handler

  • « UI\Controls\Entry::isReadOnly
  • UI\Controls\Entry::setReadOnly »
  • PHP Manual
  • UI\Controls\Entry
  • Change Handler

UI\Controls\Entry::onChange

(UI 0.9.9)

UI\Controls\Entry::onChange — Change Handler

Açıklama

protected UI\Controls\Entry::onChange()

Shall be executed when the text in this Entry changes

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

User Contributed Notes

There are no user contributed notes for this page.


Set Read Only

  • « UI\Controls\Entry::onChange
  • UI\Controls\Entry::setText »
  • PHP Manual
  • UI\Controls\Entry
  • Set Read Only

UI\Controls\Entry::setReadOnly

(UI 0.9.9)

UI\Controls\Entry::setReadOnly — Set Read Only

Açıklama

public UI\Controls\Entry::setReadOnly(bool $readOnly)

Shall enable or disable read only for this Entry

Bağımsız Değişkenler

readOnly

User Contributed Notes

There are no user contributed notes for this page.


Set Text

  • « UI\Controls\Entry::setReadOnly
  • UI\Controls\MultilineEntry »
  • PHP Manual
  • UI\Controls\Entry
  • Set Text

UI\Controls\Entry::setText

(UI 0.9.9)

UI\Controls\Entry::setText — Set Text

Açıklama

public UI\Controls\Entry::setText(string $text)

Shall set the text for this Entry

Bağımsız Değişkenler

text

The new text

User Contributed Notes

There are no user contributed notes for this page.


MultilineEntry Control

(UI 0.9.9)

Giriş

A Multiline Entry is a text entry control able to hold multiple lines of text, with or without wrapping.

Sınıf Sözdizimi

class UI\Controls\MultilineEntry extends UI\Control {
/* Sabitler */
const int Wrap;
const int NoWrap;
/* Constructor */
public __construct(int $type = ?)
/* Yöntemler */
public append(string $text)
public getText(): string
public isReadOnly(): bool
protected onChange()
public setReadOnly(bool $readOnly)
public setText(string $text)
/* Miras alınan yöntemler */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Öntanımlı Sabitler

UI\Controls\MultilineEntry::Wrap

Allow lines to wrap

UI\Controls\MultilineEntry::NoWrap

Do not allow lines to wrap

İçindekiler

  • UI\Controls\MultilineEntry::append — Append Text
  • UI\Controls\MultilineEntry::__construct — Construct a new Multiline Entry
  • UI\Controls\MultilineEntry::getText — Get Text
  • UI\Controls\MultilineEntry::isReadOnly — Read Only Detection
  • UI\Controls\MultilineEntry::onChange — Change Handler
  • UI\Controls\MultilineEntry::setReadOnly — Set Read Only
  • UI\Controls\MultilineEntry::setText — Set Text

User Contributed Notes

There are no user contributed notes for this page.


Append Text

  • « UI\Controls\MultilineEntry
  • UI\Controls\MultilineEntry::__construct »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Append Text

UI\Controls\MultilineEntry::append

(UI 0.9.9)

UI\Controls\MultilineEntry::append — Append Text

Açıklama

public UI\Controls\MultilineEntry::append(string $text)

Shall append the given text to the text in this Multiline Entry

Bağımsız Değişkenler

text

The text to append

User Contributed Notes

There are no user contributed notes for this page.


Construct a new Multiline Entry

  • « UI\Controls\MultilineEntry::append
  • UI\Controls\MultilineEntry::getText »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Construct a new Multiline Entry

UI\Controls\MultilineEntry::__construct

(UI 0.9.9)

UI\Controls\MultilineEntry::__construct — Construct a new Multiline Entry

Açıklama

public UI\Controls\MultilineEntry::__construct(int $type = ?)

Shall construct a new Multiline Entry of the given type

Bağımsız Değişkenler

type

MultilineEntry::Wrap or MultilineEntry::NoWrap

User Contributed Notes

There are no user contributed notes for this page.


Get Text

  • « UI\Controls\MultilineEntry::__construct
  • UI\Controls\MultilineEntry::isReadOnly »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Get Text

UI\Controls\MultilineEntry::getText

(UI 0.9.9)

UI\Controls\MultilineEntry::getText — Get Text

Açıklama

public UI\Controls\MultilineEntry::getText(): string

Shall return the text in this Multiline Entry

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

User Contributed Notes

There are no user contributed notes for this page.


Read Only Detection

  • « UI\Controls\MultilineEntry::getText
  • UI\Controls\MultilineEntry::onChange »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Read Only Detection

UI\Controls\MultilineEntry::isReadOnly

(UI 0.9.9)

UI\Controls\MultilineEntry::isReadOnly — Read Only Detection

Açıklama

public UI\Controls\MultilineEntry::isReadOnly(): bool

Shall detect if this Multiline Entry is read only

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

User Contributed Notes

There are no user contributed notes for this page.


Change Handler

  • « UI\Controls\MultilineEntry::isReadOnly
  • UI\Controls\MultilineEntry::setReadOnly »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Change Handler

UI\Controls\MultilineEntry::onChange

(UI 0.9.9)

UI\Controls\MultilineEntry::onChange — Change Handler

Açıklama

protected UI\Controls\MultilineEntry::onChange()

Shall be executed when the text in this Multiline Entry is changed

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

User Contributed Notes

There are no user contributed notes for this page.


Set Read Only

  • « UI\Controls\MultilineEntry::onChange
  • UI\Controls\MultilineEntry::setText »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Set Read Only

UI\Controls\MultilineEntry::setReadOnly

(UI 0.9.9)

UI\Controls\MultilineEntry::setReadOnly — Set Read Only

Açıklama

public UI\Controls\MultilineEntry::setReadOnly(bool $readOnly)

Shall enable or disable read only on this Multiline Entry

Bağımsız Değişkenler

readOnly

User Contributed Notes

There are no user contributed notes for this page.


Set Text

  • « UI\Controls\MultilineEntry::setReadOnly
  • UI\Controls\Spin »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Set Text

UI\Controls\MultilineEntry::setText

(UI 0.9.9)

UI\Controls\MultilineEntry::setText — Set Text

Açıklama

public UI\Controls\MultilineEntry::setText(string $text)

Shall set the text in this Multiline Entry

Bağımsız Değişkenler

text

The new text

User Contributed Notes

There are no user contributed notes for this page.


Spin Control

(UI 0.9.9)

Giriş

A Spin box is a text box with an up-down control which changes the integer value in the box, within a defined range

Sınıf Sözdizimi

class UI\Controls\Spin extends UI\Control {
/* Constructor */
public __construct(int $min, int $max)
/* Yöntemler */
public getValue(): int
protected onChange()
public setValue(int $value)
/* Miras alınan yöntemler */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

İçindekiler

  • UI\Controls\Spin::__construct — Construct a new Spin
  • UI\Controls\Spin::getValue — Get Value
  • UI\Controls\Spin::onChange — Change Handler
  • UI\Controls\Spin::setValue — Set Value

User Contributed Notes

There are no user contributed notes for this page.


Construct a new Spin

  • « UI\Controls\Spin
  • UI\Controls\Spin::getValue »
  • PHP Manual
  • UI\Controls\Spin
  • Construct a new Spin

UI\Controls\Spin::__construct

(UI 0.9.9)

UI\Controls\Spin::__construct — Construct a new Spin

Açıklama

public UI\Controls\Spin::__construct(int $min, int $max)

Constructs a new Spin with the given range

Bağımsız Değişkenler

min

The minimum value allowed

max

The maximum value allowed

User Contributed Notes

There are no user contributed notes for this page.


Get Value

  • « UI\Controls\Spin::__construct
  • UI\Controls\Spin::onChange »
  • PHP Manual
  • UI\Controls\Spin
  • Get Value

UI\Controls\Spin::getValue

(UI 0.9.9)

UI\Controls\Spin::getValue — Get Value

Açıklama

public UI\Controls\Spin::getValue(): int

Get the value in this Spin

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

User Contributed Notes

There are no user contributed notes for this page.


Change Handler

  • « UI\Controls\Spin::getValue
  • UI\Controls\Spin::setValue »
  • PHP Manual
  • UI\Controls\Spin
  • Change Handler

UI\Controls\Spin::onChange

(UI 0.9.9)

UI\Controls\Spin::onChange — Change Handler

Açıklama

protected UI\Controls\Spin::onChange()

Shall be executed when the value in this Spin changes

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

User Contributed Notes

There are no user contributed notes for this page.


Set Value

  • « UI\Controls\Spin::onChange
  • UI\Controls\Slider »
  • PHP Manual
  • UI\Controls\Spin
  • Set Value

UI\Controls\Spin::setValue

(UI 0.9.9)

UI\Controls\Spin::setValue — Set Value

Açıklama

public UI\Controls\Spin::setValue(int $value)

Set the value in this Spin

Bağımsız Değişkenler

value

The new value

User Contributed Notes

There are no user contributed notes for this page.


Slider Control

(UI 0.9.9)

Giriş

A Slider is a control which represents a range, and a current value in the range. The sliding element of the control (sometimes called the "thumb") reflects the value, and can be adjusted within the range.

Sınıf Sözdizimi

class UI\Controls\Slider extends UI\Control {
/* Constructor */
public __construct(int $min, int $max)
/* Yöntemler */
public getValue(): int
protected onChange()
public setValue(int $value)
/* Miras alınan yöntemler */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

İçindekiler

  • UI\Controls\Slider::__construct — Construct a new Slider
  • UI\Controls\Slider::getValue — Get Value
  • UI\Controls\Slider::onChange — Change Handler
  • UI\Controls\Slider::setValue — Set Value

User Contributed Notes

There are no user contributed notes for this page.


Construct a new Slider

  • « UI\Controls\Slider
  • UI\Controls\Slider::getValue »
  • PHP Manual
  • UI\Controls\Slider
  • Construct a new Slider

UI\Controls\Slider::__construct

(UI 0.9.9)

UI\Controls\Slider::__construct — Construct a new Slider

Açıklama

public UI\Controls\Slider::__construct(int $min, int $max)

Construct a new Slider with the given range

Bağımsız Değişkenler

min

The minimum allowed value

max

The maximum allowed value

User Contributed Notes

There are no user contributed notes for this page.


Get Value

  • « UI\Controls\Slider::__construct
  • UI\Controls\Slider::onChange »
  • PHP Manual
  • UI\Controls\Slider
  • Get Value

UI\Controls\Slider::getValue

(UI 0.9.9)

UI\Controls\Slider::getValue — Get Value

Açıklama

public UI\Controls\Slider::getValue(): int

Get the value from this Slider

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

User Contributed Notes

There are no user contributed notes for this page.


Change Handler

  • « UI\Controls\Slider::getValue
  • UI\Controls\Slider::setValue »
  • PHP Manual
  • UI\Controls\Slider
  • Change Handler

UI\Controls\Slider::onChange

(UI 0.9.9)

UI\Controls\Slider::onChange — Change Handler

Açıklama

protected UI\Controls\Slider::onChange()

Shall be executed when the value of this Slider changes

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

User Contributed Notes

There are no user contributed notes for this page.


Set Value

  • « UI\Controls\Slider::onChange
  • UI\Controls\Progress »
  • PHP Manual
  • UI\Controls\Slider
  • Set Value

UI\Controls\Slider::setValue

(UI 0.9.9)

UI\Controls\Slider::setValue — Set Value

Açıklama

public UI\Controls\Slider::setValue(int $value)

Shall set the value for this Slider

Bağımsız Değişkenler

value

The new value

User Contributed Notes

There are no user contributed notes for this page.


Progress Control

(UI 0.9.9)

Giriş

A Progress control is a familiar Progress bar: It represents progress as a percentage, with a possible range of 0 to 100 (inclusive).

Sınıf Sözdizimi

class UI\Controls\Progress extends UI\Control {
/* Yöntemler */
public getValue(): int
public setValue(int $value)
/* Miras alınan yöntemler */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

İçindekiler

  • UI\Controls\Progress::getValue — Get Value
  • UI\Controls\Progress::setValue — Set Value

User Contributed Notes

There are no user contributed notes for this page.


Get Value

  • « UI\Controls\Progress
  • UI\Controls\Progress::setValue »
  • PHP Manual
  • UI\Controls\Progress
  • Get Value

UI\Controls\Progress::getValue

(UI 0.9.9)

UI\Controls\Progress::getValue — Get Value

Açıklama

public UI\Controls\Progress::getValue(): int

Shall retrieve the current value of this Progress bar

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

User Contributed Notes

There are no user contributed notes for this page.


Set Value

  • « UI\Controls\Progress::getValue
  • UI\Controls\Separator »
  • PHP Manual
  • UI\Controls\Progress
  • Set Value

UI\Controls\Progress::setValue

(UI 0.9.9)

UI\Controls\Progress::setValue — Set Value

Açıklama

public UI\Controls\Progress::setValue(int $value)

Shall set the value for this Progress bar

Bağımsız Değişkenler

value

An integer between 0 and 100 (inclusive)

User Contributed Notes

There are no user contributed notes for this page.


Control Separator

(UI 0.9.9)

Giriş

A Separator represents a control separator, it has no other function.

Sınıf Sözdizimi

class UI\Controls\Separator extends UI\Control {
/* Sabitler */
const int Horizontal;
const int Vertical;
/* Constructor */
public __construct(int $type = UI\Controls\Separator::Horizontal)
/* Miras alınan yöntemler */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Öntanımlı Sabitler

UI\Controls\Separator::Horizontal

A Horizontal Separator

UI\Controls\Separator::Vertical

A Vertical Separator

İçindekiler

  • UI\Controls\Separator::__construct — Construct a new Separator

User Contributed Notes

There are no user contributed notes for this page.


Construct a new Separator

  • « UI\Controls\Separator
  • UI\Controls\Combo »
  • PHP Manual
  • UI\Controls\Separator
  • Construct a new Separator

UI\Controls\Separator::__construct

(UI 0.9.9)

UI\Controls\Separator::__construct — Construct a new Separator

Açıklama

public UI\Controls\Separator::__construct(int $type = UI\Controls\Separator::Horizontal)

Shall construct a new Separator of the given type

Bağımsız Değişkenler

type

Separator::Horizonal or Separator::Vertical

User Contributed Notes

There are no user contributed notes for this page.


Combo Control

(UI 0.9.9)

Giriş

A Combo control represents a list of options, like the familiar select HTML element.

Sınıf Sözdizimi

class UI\Controls\Combo extends UI\Control {
/* Yöntemler */
public append(string $text)
public getSelected(): int
protected onSelected()
public setSelected(int $index)
/* Miras alınan yöntemler */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

İçindekiler

  • UI\Controls\Combo::append — Append Option
  • UI\Controls\Combo::getSelected — Get Selected Option
  • UI\Controls\Combo::onSelected — Selected Handler
  • UI\Controls\Combo::setSelected — Set Selected Option

User Contributed Notes

There are no user contributed notes for this page.


Append Option

  • « UI\Controls\Combo
  • UI\Controls\Combo::getSelected »
  • PHP Manual
  • UI\Controls\Combo
  • Append Option

UI\Controls\Combo::append

(UI 0.9.9)

UI\Controls\Combo::append — Append Option

Açıklama

public UI\Controls\Combo::append(string $text)

Append an option to this Combo

Bağımsız Değişkenler

text

The text for the new option

User Contributed Notes

There are no user contributed notes for this page.


Get Selected Option

  • « UI\Controls\Combo::append
  • UI\Controls\Combo::onSelected »
  • PHP Manual
  • UI\Controls\Combo
  • Get Selected Option

UI\Controls\Combo::getSelected

(UI 0.9.9)

UI\Controls\Combo::getSelected — Get Selected Option

Açıklama

public UI\Controls\Combo::getSelected(): int

Shall retrieve the index of the option selected in this Combo

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

User Contributed Notes

There are no user contributed notes for this page.


Selected Handler

  • « UI\Controls\Combo::getSelected
  • UI\Controls\Combo::setSelected »
  • PHP Manual
  • UI\Controls\Combo
  • Selected Handler

UI\Controls\Combo::onSelected

(UI 0.9.9)

UI\Controls\Combo::onSelected — Selected Handler

Açıklama

protected UI\Controls\Combo::onSelected()

Shall be executed when an option is selected in this Combo

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

User Contributed Notes

There are no user contributed notes for this page.


Set Selected Option

  • « UI\Controls\Combo::onSelected
  • UI\Controls\EditableCombo »
  • PHP Manual
  • UI\Controls\Combo
  • Set Selected Option

UI\Controls\Combo::setSelected

(UI 0.9.9)

UI\Controls\Combo::setSelected — Set Selected Option

Açıklama

public UI\Controls\Combo::setSelected(int $index)

Shall set the currently selected option in this Combo

Bağımsız Değişkenler

index

The index of the option to select

User Contributed Notes

There are no user contributed notes for this page.


EdiableCombo Control

(UI 0.9.9)

Giriş

An Editable Combo is a Combo which allows the user to enter custom options

Sınıf Sözdizimi

class UI\Controls\EditableCombo extends UI\Control {
/* Yöntemler */
public append(string $text)
public getText(): string
protected onChange()
public setText(string $text)
/* Miras alınan yöntemler */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

İçindekiler

  • UI\Controls\EditableCombo::append — Append Option
  • UI\Controls\EditableCombo::getText — Get Text
  • UI\Controls\EditableCombo::onChange — Change Handler
  • UI\Controls\EditableCombo::setText — Set Text

User Contributed Notes

There are no user contributed notes for this page.


Append Option

  • « UI\Controls\EditableCombo
  • UI\Controls\EditableCombo::getText »
  • PHP Manual
  • UI\Controls\EditableCombo
  • Append Option

UI\Controls\EditableCombo::append

(UI 0.9.9)

UI\Controls\EditableCombo::append — Append Option

Açıklama

public UI\Controls\EditableCombo::append(string $text)

Shall append a new option to this Editable Combo

Bağımsız Değişkenler

text

The text for the new option

User Contributed Notes

There are no user contributed notes for this page.


Get Text

  • « UI\Controls\EditableCombo::append
  • UI\Controls\EditableCombo::onChange »
  • PHP Manual
  • UI\Controls\EditableCombo
  • Get Text

UI\Controls\EditableCombo::getText

(UI 0.9.9)

UI\Controls\EditableCombo::getText — Get Text

Açıklama

public UI\Controls\EditableCombo::getText(): string

Get the value of the currently selected option in this Editable Combo

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

User Contributed Notes

There are no user contributed notes for this page.


Change Handler

  • « UI\Controls\EditableCombo::getText
  • UI\Controls\EditableCombo::setText »
  • PHP Manual
  • UI\Controls\EditableCombo
  • Change Handler

UI\Controls\EditableCombo::onChange

(UI 0.9.9)

UI\Controls\EditableCombo::onChange — Change Handler

Açıklama

protected UI\Controls\EditableCombo::onChange()

Shall be executed when the value of this Editable Combobox changes

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

User Contributed Notes

There are no user contributed notes for this page.


Set Text

  • « UI\Controls\EditableCombo::onChange
  • UI\Controls\Radio »
  • PHP Manual
  • UI\Controls\EditableCombo
  • Set Text

UI\Controls\EditableCombo::setText

(UI 0.9.9)

UI\Controls\EditableCombo::setText — Set Text

Açıklama

public UI\Controls\EditableCombo::setText(string $text)

Shall set the text of the currently selected option in this Editable Combo

Bağımsız Değişkenler

text

The new text

User Contributed Notes

There are no user contributed notes for this page.


Radio Control

(UI 0.9.9)

Giriş

A Radio is similar to the radio input type familiar from HTML

Sınıf Sözdizimi

class UI\Controls\Radio extends UI\Control {
/* Yöntemler */
public append(string $text)
public getSelected(): int
protected onSelected()
public setSelected(int $index)
/* Miras alınan yöntemler */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

İçindekiler

  • UI\Controls\Radio::append — Append Option
  • UI\Controls\Radio::getSelected — Get Selected Option
  • UI\Controls\Radio::onSelected — Selected Handler
  • UI\Controls\Radio::setSelected — Set Selected Option

User Contributed Notes

There are no user contributed notes for this page.


Append Option

  • « UI\Controls\Radio
  • UI\Controls\Radio::getSelected »
  • PHP Manual
  • UI\Controls\Radio
  • Append Option

UI\Controls\Radio::append

(UI 0.9.9)

UI\Controls\Radio::append — Append Option

Açıklama

public UI\Controls\Radio::append(string $text)

Shall append a new option to this Radio

Bağımsız Değişkenler

text

The text (label) for the option

User Contributed Notes

There are no user contributed notes for this page.


Get Selected Option

  • « UI\Controls\Radio::append
  • UI\Controls\Radio::onSelected »
  • PHP Manual
  • UI\Controls\Radio
  • Get Selected Option

UI\Controls\Radio::getSelected

(UI 0.9.9)

UI\Controls\Radio::getSelected — Get Selected Option

Açıklama

public UI\Controls\Radio::getSelected(): int

Shall retrieve the index of the currently selected option in this Radio

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

User Contributed Notes

There are no user contributed notes for this page.


Selected Handler

  • « UI\Controls\Radio::getSelected
  • UI\Controls\Radio::setSelected »
  • PHP Manual
  • UI\Controls\Radio
  • Selected Handler

UI\Controls\Radio::onSelected

(UI 0.9.9)

UI\Controls\Radio::onSelected — Selected Handler

Açıklama

protected UI\Controls\Radio::onSelected()

Shall be executed when the option selected in this Radio changes

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

User Contributed Notes

There are no user contributed notes for this page.


Set Selected Option

  • « UI\Controls\Radio::onSelected
  • UI\Controls\Picker »
  • PHP Manual
  • UI\Controls\Radio
  • Set Selected Option

UI\Controls\Radio::setSelected

(UI 0.9.9)

UI\Controls\Radio::setSelected — Set Selected Option

Açıklama

public UI\Controls\Radio::setSelected(int $index)

Shall set the currently selected option in this Radio

Bağımsız Değişkenler

index

The index of the option to select

User Contributed Notes

There are no user contributed notes for this page.


Picker Control

(UI 0.9.9)

Giriş

A Picker represents a button which when clicked presents a native Date/Time/DateTime Picker interface to the user.

Sınıf Sözdizimi

class UI\Controls\Picker extends UI\Control {
/* Sabitler */
const int Date;
const int Time;
const int DateTime;
/* Constructor */
public __construct(int $type = UI\Controls\Picker::Date)
/* Miras alınan yöntemler */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Öntanımlı Sabitler

UI\Controls\Picker::Date

A Date Picker

UI\Controls\Picker::Time

A Time Picker

UI\Controls\Picker::DateTime

A Date and Time Picker

İçindekiler

  • UI\Controls\Picker::__construct — Construct a new Picker

User Contributed Notes

falcon560 at gmail dot com 05-Nov-2017 07:54
No getter method for the date/time


Construct a new Picker

  • « UI\Controls\Picker
  • UI\Controls\Form »
  • PHP Manual
  • UI\Controls\Picker
  • Construct a new Picker

UI\Controls\Picker::__construct

(UI 0.9.9)

UI\Controls\Picker::__construct — Construct a new Picker

Açıklama

public UI\Controls\Picker::__construct(int $type = UI\Controls\Picker::Date)

Construct a new Picker of the given type

Bağımsız Değişkenler

type

Picker::Date, Picker::Time, or Picker::DateTime

User Contributed Notes

There are no user contributed notes for this page.


Control Form (Arrangement)

(UI 0.9.9)

Giriş

A Form is a control which allows the arrangement of other controls into a familiar layout (the form).

Sınıf Sözdizimi

class UI\Controls\Form extends UI\Control {
/* Özellikler */
protected $controls;
/* Yöntemler */
public append(string $label, UI\Control $control, bool $stretchy = false): int
public delete(int $index): bool
public isPadded(): bool
public setPadded(bool $padded)
/* Miras alınan yöntemler */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Özellikler

controls

Contains controls, should not be manipulated directly

İçindekiler

  • UI\Controls\Form::append — Append Control
  • UI\Controls\Form::delete — Delete Control
  • UI\Controls\Form::isPadded — Padding Detection
  • UI\Controls\Form::setPadded — Set Padding

User Contributed Notes

There are no user contributed notes for this page.


Append Control

  • « UI\Controls\Form
  • UI\Controls\Form::delete »
  • PHP Manual
  • UI\Controls\Form
  • Append Control

UI\Controls\Form::append

(UI 0.9.9)

UI\Controls\Form::append — Append Control

Açıklama

public UI\Controls\Form::append(string $label, UI\Control $control, bool $stretchy = false): int

Shall append the control to the form, and set the label

Bağımsız Değişkenler

label

The text for the label

control

A control

stretchy

Should be set true to stretch the control

Dönen Değerler

Shall return the index of the appended control, may be 0

User Contributed Notes

There are no user contributed notes for this page.


Delete Control

  • « UI\Controls\Form::append
  • UI\Controls\Form::isPadded »
  • PHP Manual
  • UI\Controls\Form
  • Delete Control

UI\Controls\Form::delete

(UI 0.9.9)

UI\Controls\Form::delete — Delete Control

Açıklama

public UI\Controls\Form::delete(int $index): bool

Shall delete the control at the given index in this Form

Bağımsız Değişkenler

index

The index of the control to remove

Dönen Değerler

Indication of succcess

User Contributed Notes

There are no user contributed notes for this page.


Padding Detection

  • « UI\Controls\Form::delete
  • UI\Controls\Form::setPadded »
  • PHP Manual
  • UI\Controls\Form
  • Padding Detection

UI\Controls\Form::isPadded

(UI 0.9.9)

UI\Controls\Form::isPadded — Padding Detection

Açıklama

public UI\Controls\Form::isPadded(): bool

Shall detect if padding is enabled on this Form

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

User Contributed Notes

There are no user contributed notes for this page.


Set Padding

  • « UI\Controls\Form::isPadded
  • UI\Controls\Grid »
  • PHP Manual
  • UI\Controls\Form
  • Set Padding

UI\Controls\Form::setPadded

(UI 0.9.9)

UI\Controls\Form::setPadded — Set Padding

Açıklama

public UI\Controls\Form::setPadded(bool $padded)

Shall enable or disable padding on this Form

Bağımsız Değişkenler

padded

User Contributed Notes

There are no user contributed notes for this page.


Control Grid (Arrangement)

(UI 0.9.9)

Giriş

A Grid is a control which is allows the arrangement of children into a grid

Sınıf Sözdizimi

class UI\Controls\Grid extends UI\Control {
/* Sabitler */
const int Fill;
const int Start;
const int Center;
const int End;
const int Leading;
const int Top;
const int Trailing;
const int Bottom;
/* Özellikler */
protected $controls;
/* Yöntemler */
public append(
UI\Control $control,
int $left,
int $top,
int $xspan,
int $yspan,
bool $hexpand,
int $halign,
bool $vexpand,
int $valign
)
public isPadded(): bool
public setPadded(bool $padding)
/* Miras alınan yöntemler */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Öntanımlı Sabitler

UI\Controls\Grid::Fill

UI\Controls\Grid::Start

UI\Controls\Grid::Center

UI\Controls\Grid::End

UI\Controls\Grid::Leading

UI\Controls\Grid::Top

UI\Controls\Grid::Trailing

UI\Controls\Grid::Bottom

Özellikler

controls

Contains controls, should not be manipulated directly

İçindekiler

  • UI\Controls\Grid::append — Append Control
  • UI\Controls\Grid::isPadded — Padding Detection
  • UI\Controls\Grid::setPadded — Set Padding

User Contributed Notes

There are no user contributed notes for this page.


Append Control

  • « UI\Controls\Grid
  • UI\Controls\Grid::isPadded »
  • PHP Manual
  • UI\Controls\Grid
  • Append Control

UI\Controls\Grid::append

(UI 0.9.9)

UI\Controls\Grid::append — Append Control

Açıklama

public UI\Controls\Grid::append(
UI\Control $control,
int $left,
int $top,
int $xspan,
int $yspan,
bool $hexpand,
int $halign,
bool $vexpand,
int $valign
)

Uyarı

Bu işlev hala belgelendirilmemiştir; sadece bağımsız değişken listesi mevcuttur.

Bağımsız Değişkenler

control

The Control to append

left

top

xspan

yspan

hexpand

halign

vexpand

valign

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Padding Detection

  • « UI\Controls\Grid::append
  • UI\Controls\Grid::setPadded »
  • PHP Manual
  • UI\Controls\Grid
  • Padding Detection

UI\Controls\Grid::isPadded

(UI 0.9.9)

UI\Controls\Grid::isPadded — Padding Detection

Açıklama

public UI\Controls\Grid::isPadded(): bool

Shall detect if padding is enabled on this Grid

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

User Contributed Notes

There are no user contributed notes for this page.


Set Padding

  • « UI\Controls\Grid::isPadded
  • UI\Controls\Group »
  • PHP Manual
  • UI\Controls\Grid
  • Set Padding

UI\Controls\Grid::setPadded

(UI 0.9.9)

UI\Controls\Grid::setPadded — Set Padding

Açıklama

public UI\Controls\Grid::setPadded(bool $padding)

Shall enable or disable padding for this Grid

Bağımsız Değişkenler

padding

User Contributed Notes

There are no user contributed notes for this page.


Control Group (Arrangement)

(UI 0.9.9)

Giriş

A Group is a titled container for child controls

Sınıf Sözdizimi

class UI\Controls\Group extends UI\Control {
/* Özellikler */
protected $controls;
/* Constructor */
public __construct(string $title)
/* Yöntemler */
public append(UI\Control $control)
public getTitle(): string
public hasMargin(): bool
public setMargin(bool $margin)
public setTitle(string $title)
/* Miras alınan yöntemler */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Özellikler

controls

Contains controls, should not be manipulated directly

İçindekiler

  • UI\Controls\Group::append — Append Control
  • UI\Controls\Group::__construct — Construct a new Group
  • UI\Controls\Group::getTitle — Get Title
  • UI\Controls\Group::hasMargin — Margin Detection
  • UI\Controls\Group::setMargin — Set Margin
  • UI\Controls\Group::setTitle — Set Title

User Contributed Notes

There are no user contributed notes for this page.


Append Control

  • « UI\Controls\Group
  • UI\Controls\Group::__construct »
  • PHP Manual
  • UI\Controls\Group
  • Append Control

UI\Controls\Group::append

(Bir sürüm bilgisi bulunamadı; sadece Git'te olabilir.)

UI\Controls\Group::append — Append Control

Açıklama

public UI\Controls\Group::append(UI\Control $control)

Shall append a control to this Group

Bağımsız Değişkenler

control

The control to append

User Contributed Notes

There are no user contributed notes for this page.


Construct a new Group

  • « UI\Controls\Group::append
  • UI\Controls\Group::getTitle »
  • PHP Manual
  • UI\Controls\Group
  • Construct a new Group

UI\Controls\Group::__construct

(UI 0.9.9)

UI\Controls\Group::__construct — Construct a new Group

Açıklama

public UI\Controls\Group::__construct(string $title)

Shall construct a new Group with the given title

Bağımsız Değişkenler

title

The text for the title label

User Contributed Notes

There are no user contributed notes for this page.


Get Title

  • « UI\Controls\Group::__construct
  • UI\Controls\Group::hasMargin »
  • PHP Manual
  • UI\Controls\Group
  • Get Title

UI\Controls\Group::getTitle

(UI 0.9.9)

UI\Controls\Group::getTitle — Get Title

Açıklama

public UI\Controls\Group::getTitle(): string

Shall return the current title for this Group

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

The current title

User Contributed Notes

There are no user contributed notes for this page.


Margin Detection

  • « UI\Controls\Group::getTitle
  • UI\Controls\Group::setMargin »
  • PHP Manual
  • UI\Controls\Group
  • Margin Detection

UI\Controls\Group::hasMargin

(UI 0.9.9)

UI\Controls\Group::hasMargin — Margin Detection

Açıklama

public UI\Controls\Group::hasMargin(): bool

Shall detect if this Group has a margin

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

User Contributed Notes

There are no user contributed notes for this page.


Set Margin

  • « UI\Controls\Group::hasMargin
  • UI\Controls\Group::setTitle »
  • PHP Manual
  • UI\Controls\Group
  • Set Margin

UI\Controls\Group::setMargin

(UI 0.9.9)

UI\Controls\Group::setMargin — Set Margin

Açıklama

public UI\Controls\Group::setMargin(bool $margin)

Shall enable or disable margins for this Group

Bağımsız Değişkenler

margin

User Contributed Notes

There are no user contributed notes for this page.


Set Title

  • « UI\Controls\Group::setMargin
  • UI\Controls\Box »
  • PHP Manual
  • UI\Controls\Group
  • Set Title

UI\Controls\Group::setTitle

(UI 0.9.9)

UI\Controls\Group::setTitle — Set Title

Açıklama

public UI\Controls\Group::setTitle(string $title)

Shall set the title for this Group

Bağımsız Değişkenler

title

The text for the new title

User Contributed Notes

There are no user contributed notes for this page.


Control Box (Arrangement)

(UI 0.9.9)

Giriş

A Box allows the arrangement of other controls

Sınıf Sözdizimi

class UI\Controls\Box extends UI\Control {
/* Sabitler */
const int Vertical;
const int Horizontal;
/* Özellikler */
protected $controls;
/* Constructor */
public __construct(int $orientation = UI\Controls\Box::Horizontal)
/* Yöntemler */
public append(Control $control, bool $stretchy = false): int
public delete(int $index): bool
public getOrientation(): int
public isPadded(): bool
public setPadded(bool $padded)
/* Miras alınan yöntemler */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

Özellikler

controls

Contains controls, should not be manipulated directly

Öntanımlı Sabitler

UI\Controls\Box::Vertical

UI\Controls\Box::Horizontal

İçindekiler

  • UI\Controls\Box::append — Append Control
  • UI\Controls\Box::__construct — Construct a new Box
  • UI\Controls\Box::delete — Delete Control
  • UI\Controls\Box::getOrientation — Get Orientation
  • UI\Controls\Box::isPadded — Padding Detection
  • UI\Controls\Box::setPadded — Set Padding

User Contributed Notes

There are no user contributed notes for this page.


Append Control

  • « UI\Controls\Box
  • UI\Controls\Box::__construct »
  • PHP Manual
  • UI\Controls\Box
  • Append Control

UI\Controls\Box::append

(UI 0.9.9)

UI\Controls\Box::append — Append Control

Açıklama

public UI\Controls\Box::append(Control $control, bool $stretchy = false): int

Shall append the given control to this Box

Bağımsız Değişkenler

control

The control to append

stretchy

Set true to stretch the control

Dönen Değerler

Shall return the index of the appended control, may be 0

User Contributed Notes

There are no user contributed notes for this page.


Construct a new Box

  • « UI\Controls\Box::append
  • UI\Controls\Box::delete »
  • PHP Manual
  • UI\Controls\Box
  • Construct a new Box

UI\Controls\Box::__construct

(UI 0.9.9)

UI\Controls\Box::__construct — Construct a new Box

Açıklama

public UI\Controls\Box::__construct(int $orientation = UI\Controls\Box::Horizontal)

Shall construct a new box

Bağımsız Değişkenler

orientation

Box::Horizontal or Box::Vertical

User Contributed Notes

There are no user contributed notes for this page.


Delete Control

  • « UI\Controls\Box::__construct
  • UI\Controls\Box::getOrientation »
  • PHP Manual
  • UI\Controls\Box
  • Delete Control

UI\Controls\Box::delete

(UI 0.9.9)

UI\Controls\Box::delete — Delete Control

Açıklama

public UI\Controls\Box::delete(int $index): bool

Shall delete the control at the given index from this Box

Bağımsız Değişkenler

index

The index of the control to delete

Dönen Değerler

Indication of success

User Contributed Notes

There are no user contributed notes for this page.


Get Orientation

  • « UI\Controls\Box::delete
  • UI\Controls\Box::isPadded »
  • PHP Manual
  • UI\Controls\Box
  • Get Orientation

UI\Controls\Box::getOrientation

(UI 0.9.9)

UI\Controls\Box::getOrientation — Get Orientation

Açıklama

public UI\Controls\Box::getOrientation(): int

Shall retrieve the orientation of this Box

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

User Contributed Notes

There are no user contributed notes for this page.


Padding Detection

  • « UI\Controls\Box::getOrientation
  • UI\Controls\Box::setPadded »
  • PHP Manual
  • UI\Controls\Box
  • Padding Detection

UI\Controls\Box::isPadded

(UI 0.9.9)

UI\Controls\Box::isPadded — Padding Detection

Açıklama

public UI\Controls\Box::isPadded(): bool

Shall detect if padding is enabled on this Box

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

User Contributed Notes

There are no user contributed notes for this page.


Set Padding

  • « UI\Controls\Box::isPadded
  • UI\Draw\Pen »
  • PHP Manual
  • UI\Controls\Box
  • Set Padding

UI\Controls\Box::setPadded

(UI 0.9.9)

UI\Controls\Box::setPadded — Set Padding

Açıklama

public UI\Controls\Box::setPadded(bool $padded)

Shall enable or disable padding on this Box

Bağımsız Değişkenler

padded

User Contributed Notes

There are no user contributed notes for this page.


Draw Pen

(UI 0.9.9)

Giriş

The Pen is passed to the Area Draw event handler, it is used for clipping, filling, stroking, and writing to Draw Paths.

Sınıf Sözdizimi

final class UI\Draw\Pen {
/* Yöntemler */
public clip(UI\Draw\Path $path)
public fill(UI\Draw\Path $path, UI\Draw\Brush $with)
public fill(UI\Draw\Path $path, UI\Draw\Color $with)
public fill(UI\Draw\Path $path, int $with)
public restore()
public save()
public stroke(UI\Draw\Path $path, UI\Draw\Brush $with, UI\Draw\Stroke $stroke)
public stroke(UI\Draw\Path $path, UI\Draw\Color $with, UI\Draw\Stroke $stroke)
public stroke(UI\Draw\Path $path, int $with, UI\Draw\Stroke $stroke)
public transform(UI\Draw\Matrix $matrix)
public write(UI\Point $point, UI\Draw\Text\Layout $layout)
}

İçindekiler

  • UI\Draw\Pen::clip — Clip a Path
  • UI\Draw\Pen::fill — Fill a Path
  • UI\Draw\Pen::restore — Restore
  • UI\Draw\Pen::save — Save
  • UI\Draw\Pen::stroke — Stroke a Path
  • UI\Draw\Pen::transform — Matrix Transform
  • UI\Draw\Pen::write — Draw Text at Point

User Contributed Notes

There are no user contributed notes for this page.


Clip a Path

  • « UI\Draw\Pen
  • UI\Draw\Pen::fill »
  • PHP Manual
  • UI\Draw\Pen
  • Clip a Path

UI\Draw\Pen::clip

(UI 0.9.9)

UI\Draw\Pen::clip — Clip a Path

Açıklama

public UI\Draw\Pen::clip(UI\Draw\Path $path)

Shall clip the given Path

Bağımsız Değişkenler

path

The path to clip

User Contributed Notes

There are no user contributed notes for this page.


Fill a Path

  • « UI\Draw\Pen::clip
  • UI\Draw\Pen::restore »
  • PHP Manual
  • UI\Draw\Pen
  • Fill a Path

UI\Draw\Pen::fill

(UI 0.9.9)

UI\Draw\Pen::fill — Fill a Path

Açıklama

public UI\Draw\Pen::fill(UI\Draw\Path $path, UI\Draw\Brush $with)
public UI\Draw\Pen::fill(UI\Draw\Path $path, UI\Draw\Color $with)
public UI\Draw\Pen::fill(UI\Draw\Path $path, int $with)

Shall fill the given path

Bağımsız Değişkenler

path

The path to fill

with

The color or brush to fill with

User Contributed Notes

There are no user contributed notes for this page.


Restore

  • « UI\Draw\Pen::fill
  • UI\Draw\Pen::save »
  • PHP Manual
  • UI\Draw\Pen
  • Restore

UI\Draw\Pen::restore

(UI 0.9.9)

UI\Draw\Pen::restore — Restore

Açıklama

public UI\Draw\Pen::restore()

Shall restore a previously saved Pen

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

User Contributed Notes

There are no user contributed notes for this page.


Save

  • « UI\Draw\Pen::restore
  • UI\Draw\Pen::stroke »
  • PHP Manual
  • UI\Draw\Pen
  • Save

UI\Draw\Pen::save

(UI 0.9.9)

UI\Draw\Pen::save — Save

Açıklama

public UI\Draw\Pen::save()

Shall save the Pen

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

User Contributed Notes

There are no user contributed notes for this page.


Stroke a Path

  • « UI\Draw\Pen::save
  • UI\Draw\Pen::transform »
  • PHP Manual
  • UI\Draw\Pen
  • Stroke a Path

UI\Draw\Pen::stroke

(UI 0.9.9)

UI\Draw\Pen::stroke — Stroke a Path

Açıklama

public UI\Draw\Pen::stroke(UI\Draw\Path $path, UI\Draw\Brush $with, UI\Draw\Stroke $stroke)
public UI\Draw\Pen::stroke(UI\Draw\Path $path, UI\Draw\Color $with, UI\Draw\Stroke $stroke)
public UI\Draw\Pen::stroke(UI\Draw\Path $path, int $with, UI\Draw\Stroke $stroke)

Shall stroke the given path

Bağımsız Değişkenler

path

The path to stroke

with

The color or brush to stroke with

stroke

The configuration of the stroke

User Contributed Notes

There are no user contributed notes for this page.


Matrix Transform

  • « UI\Draw\Pen::stroke
  • UI\Draw\Pen::write »
  • PHP Manual
  • UI\Draw\Pen
  • Matrix Transform

UI\Draw\Pen::transform

(UI 0.9.9)

UI\Draw\Pen::transform — Matrix Transform

Açıklama

public UI\Draw\Pen::transform(UI\Draw\Matrix $matrix)

Shall perform matrix transformation

Bağımsız Değişkenler

matrix

The matrix to use

User Contributed Notes

There are no user contributed notes for this page.


Draw Text at Point

  • « UI\Draw\Pen::transform
  • UI\Draw\Path »
  • PHP Manual
  • UI\Draw\Pen
  • Draw Text at Point

UI\Draw\Pen::write

(UI 0.9.9)

UI\Draw\Pen::write — Draw Text at Point

Açıklama

public UI\Draw\Pen::write(UI\Point $point, UI\Draw\Text\Layout $layout)

Shall draw the given text layout at the given point

Bağımsız Değişkenler

point

The point to perform the drawing

layout

The layout of the text to draw

User Contributed Notes

There are no user contributed notes for this page.


Draw Path

(UI 0.9.9)

Giriş

A Draw Path guides a Draw Pen, telling the Pen where to draw on an Area.

Sınıf Sözdizimi

class UI\Draw\Path {
/* Sabitler */
const int Winding;
const int Alternate;
/* Constructor */
public __construct(int $mode = UI\Draw\Path::Winding)
/* Yöntemler */
public addRectangle(UI\Point $point, UI\Size $size)
public arcTo(
UI\Point $point,
float $radius,
float $angle,
float $sweep,
float $negative
)
public bezierTo(
UI\Point $point,
float $radius,
float $angle,
float $sweep,
float $negative
)
public closeFigure()
public end()
public lineTo(
UI\Point $point,
float $radius,
float $angle,
float $sweep,
float $negative
)
public newFigure(UI\Point $point)
public newFigureWithArc(
UI\Point $point,
float $radius,
float $angle,
float $sweep,
float $negative
)
}

Öntanımlı Sabitler

UI\Draw\Path::Winding

This is the default draw path mode

UI\Draw\Path::Alternate

This is the alternate draw path mode

İçindekiler

  • UI\Draw\Path::addRectangle — Draw a Rectangle
  • UI\Draw\Path::arcTo — Draw an Arc
  • UI\Draw\Path::bezierTo — Draw Bezier Curve
  • UI\Draw\Path::closeFigure — Close Figure
  • UI\Draw\Path::__construct — Construct a new Path
  • UI\Draw\Path::end — Finalize Path
  • UI\Draw\Path::lineTo — Draw a Line
  • UI\Draw\Path::newFigure — Draw Figure
  • UI\Draw\Path::newFigureWithArc — Draw Figure with Arc

User Contributed Notes

There are no user contributed notes for this page.


Draw a Rectangle

  • « UI\Draw\Path
  • UI\Draw\Path::arcTo »
  • PHP Manual
  • UI\Draw\Path
  • Draw a Rectangle

UI\Draw\Path::addRectangle

(UI 0.9.9)

UI\Draw\Path::addRectangle — Draw a Rectangle

Açıklama

public UI\Draw\Path::addRectangle(UI\Point $point, UI\Size $size)

Shall map the path of a rectangle of the given size, at the given point

Bağımsız Değişkenler

point

The point to begin the shape

size

The size of the rectangle

User Contributed Notes

There are no user contributed notes for this page.


Draw an Arc

  • « UI\Draw\Path::addRectangle
  • UI\Draw\Path::bezierTo »
  • PHP Manual
  • UI\Draw\Path
  • Draw an Arc

UI\Draw\Path::arcTo

(UI 0.9.9)

UI\Draw\Path::arcTo — Draw an Arc

Açıklama

public UI\Draw\Path::arcTo(
UI\Point $point,
float $radius,
float $angle,
float $sweep,
float $negative
)

Shall map the path for an arc

Bağımsız Değişkenler

point

The point to begin mapping

radius

The radius of the arc

angle

The angle of the arc

sweep

The sweep of the arc

negative

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Draw Bezier Curve

  • « UI\Draw\Path::arcTo
  • UI\Draw\Path::closeFigure »
  • PHP Manual
  • UI\Draw\Path
  • Draw Bezier Curve

UI\Draw\Path::bezierTo

(UI 0.9.9)

UI\Draw\Path::bezierTo — Draw Bezier Curve

Açıklama

public UI\Draw\Path::bezierTo(
UI\Point $point,
float $radius,
float $angle,
float $sweep,
float $negative
)

Shall draw a bezier curve

Bağımsız Değişkenler

point

The point at which to begin mapping

radius

The radius of the curve

angle

The angle of the curve

sweep

The sweep of the curve

negative

User Contributed Notes

There are no user contributed notes for this page.


Close Figure

  • « UI\Draw\Path::bezierTo
  • UI\Draw\Path::__construct »
  • PHP Manual
  • UI\Draw\Path
  • Close Figure

UI\Draw\Path::closeFigure

(UI 0.9.9)

UI\Draw\Path::closeFigure — Close Figure

Açıklama

public UI\Draw\Path::closeFigure()

Shall close the current figure

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

User Contributed Notes

There are no user contributed notes for this page.


Construct a new Path

  • « UI\Draw\Path::closeFigure
  • UI\Draw\Path::end »
  • PHP Manual
  • UI\Draw\Path
  • Construct a new Path

UI\Draw\Path::__construct

(UI 0.9.9)

UI\Draw\Path::__construct — Construct a new Path

Açıklama

public UI\Draw\Path::__construct(int $mode = UI\Draw\Path::Winding)

Shall construct a new path in the given mode

Bağımsız Değişkenler

mode

Path::Winding or Path::Alternate

User Contributed Notes

There are no user contributed notes for this page.


Finalize Path

  • « UI\Draw\Path::__construct
  • UI\Draw\Path::lineTo »
  • PHP Manual
  • UI\Draw\Path
  • Finalize Path

UI\Draw\Path::end

(UI 0.9.9)

UI\Draw\Path::end — Finalize Path

Açıklama

public UI\Draw\Path::end()

Shall finalize this Path

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

User Contributed Notes

There are no user contributed notes for this page.


Draw a Line

  • « UI\Draw\Path::end
  • UI\Draw\Path::newFigure »
  • PHP Manual
  • UI\Draw\Path
  • Draw a Line

UI\Draw\Path::lineTo

(UI 0.9.9)

UI\Draw\Path::lineTo — Draw a Line

Açıklama

public UI\Draw\Path::lineTo(
UI\Point $point,
float $radius,
float $angle,
float $sweep,
float $negative
)

Shall map the path for a line

Bağımsız Değişkenler

point

The point to begin mapping

radius

angle

sweep

negative

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Draw Figure

  • « UI\Draw\Path::lineTo
  • UI\Draw\Path::newFigureWithArc »
  • PHP Manual
  • UI\Draw\Path
  • Draw Figure

UI\Draw\Path::newFigure

(UI 0.9.9)

UI\Draw\Path::newFigure — Draw Figure

Açıklama

public UI\Draw\Path::newFigure(UI\Point $point)

Shall map a new figure at the given point

Bağımsız Değişkenler

point

The point to begin mapping

User Contributed Notes

There are no user contributed notes for this page.


Draw Figure with Arc

  • « UI\Draw\Path::newFigure
  • UI\Draw\Matrix »
  • PHP Manual
  • UI\Draw\Path
  • Draw Figure with Arc

UI\Draw\Path::newFigureWithArc

(UI 0.9.9)

UI\Draw\Path::newFigureWithArc — Draw Figure with Arc

Açıklama

public UI\Draw\Path::newFigureWithArc(
UI\Point $point,
float $radius,
float $angle,
float $sweep,
float $negative
)

Bağımsız Değişkenler

point

radius

angle

sweep

negative

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Draw Matrix

(UI 0.9.9)

Giriş

Sınıf Sözdizimi

class UI\Draw\Matrix {
/* Yöntemler */
public invert()
public isInvertible(): bool
public multiply(UI\Draw\Matrix $matrix): UI\Draw\Matrix
public rotate(UI\Point $point, float $amount)
public scale(UI\Point $center, UI\Point $point)
public skew(UI\Point $point, UI\Point $amount)
public translate(UI\Point $point)
}

İçindekiler

  • UI\Draw\Matrix::invert — Invert Matrix
  • UI\Draw\Matrix::isInvertible — Invertible Detection
  • UI\Draw\Matrix::multiply — Multiply Matrix
  • UI\Draw\Matrix::rotate — Rotate Matrix
  • UI\Draw\Matrix::scale — Scale Matrix
  • UI\Draw\Matrix::skew — Skew Matrix
  • UI\Draw\Matrix::translate — Translate Matrix

User Contributed Notes

There are no user contributed notes for this page.


Invert Matrix

  • « UI\Draw\Matrix
  • UI\Draw\Matrix::isInvertible »
  • PHP Manual
  • UI\Draw\Matrix
  • Invert Matrix

UI\Draw\Matrix::invert

(UI 0.9.9)

UI\Draw\Matrix::invert — Invert Matrix

Açıklama

public UI\Draw\Matrix::invert()

Shall invert this matrix

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

User Contributed Notes

There are no user contributed notes for this page.


Invertible Detection

  • « UI\Draw\Matrix::invert
  • UI\Draw\Matrix::multiply »
  • PHP Manual
  • UI\Draw\Matrix
  • Invertible Detection

UI\Draw\Matrix::isInvertible

(UI 0.9.9)

UI\Draw\Matrix::isInvertible — Invertible Detection

Açıklama

public UI\Draw\Matrix::isInvertible(): bool

Shall detect if this Matrix may be inverted

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

User Contributed Notes

There are no user contributed notes for this page.


Multiply Matrix

  • « UI\Draw\Matrix::isInvertible
  • UI\Draw\Matrix::rotate »
  • PHP Manual
  • UI\Draw\Matrix
  • Multiply Matrix

UI\Draw\Matrix::multiply

(UI 0.9.9)

UI\Draw\Matrix::multiply — Multiply Matrix

Açıklama

public UI\Draw\Matrix::multiply(UI\Draw\Matrix $matrix): UI\Draw\Matrix

Shall multiply this matrix with the given matrix

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

The new Matrix

User Contributed Notes

There are no user contributed notes for this page.


Rotate Matrix

  • « UI\Draw\Matrix::multiply
  • UI\Draw\Matrix::scale »
  • PHP Manual
  • UI\Draw\Matrix
  • Rotate Matrix

UI\Draw\Matrix::rotate

(UI 0.9.9)

UI\Draw\Matrix::rotate — Rotate Matrix

Açıklama

public UI\Draw\Matrix::rotate(UI\Point $point, float $amount)

Shall rotate this Matrix

Bağımsız Değişkenler

point

amount

User Contributed Notes

There are no user contributed notes for this page.


Scale Matrix

  • « UI\Draw\Matrix::rotate
  • UI\Draw\Matrix::skew »
  • PHP Manual
  • UI\Draw\Matrix
  • Scale Matrix

UI\Draw\Matrix::scale

(UI 0.9.9)

UI\Draw\Matrix::scale — Scale Matrix

Açıklama

public UI\Draw\Matrix::scale(UI\Point $center, UI\Point $point)

Shall scale this Matrix

Bağımsız Değişkenler

center

point

User Contributed Notes

There are no user contributed notes for this page.


Skew Matrix

  • « UI\Draw\Matrix::scale
  • UI\Draw\Matrix::translate »
  • PHP Manual
  • UI\Draw\Matrix
  • Skew Matrix

UI\Draw\Matrix::skew

(UI 0.9.9)

UI\Draw\Matrix::skew — Skew Matrix

Açıklama

public UI\Draw\Matrix::skew(UI\Point $point, UI\Point $amount)

Shall skew this Matrix

Bağımsız Değişkenler

point

amount

User Contributed Notes

There are no user contributed notes for this page.


Translate Matrix

  • « UI\Draw\Matrix::skew
  • UI\Draw\Color »
  • PHP Manual
  • UI\Draw\Matrix
  • Translate Matrix

UI\Draw\Matrix::translate

(UI 0.9.9)

UI\Draw\Matrix::translate — Translate Matrix

Açıklama

public UI\Draw\Matrix::translate(UI\Point $point)

Shall translate this Matrix

Bağımsız Değişkenler

point

User Contributed Notes

There are no user contributed notes for this page.


Color Representation

(UI 0.9.9)

Giriş

Represents RGBA colours, individual channels are accessible via public properties.

Sınıf Sözdizimi

class UI\Draw\Color {
/* Sabitler */
const int Red;
const int Green;
const int Blue;
const int Alpha;
/* Özellikler */
public $r;
public $g;
public $b;
public $a;
/* Constructor */
public __construct(UI\Draw\Color $color = ?)
public __construct(int $color = ?)
/* Yöntemler */
public getChannel(int $channel): float
public setChannel(int $channel, float $value): void
}

Özellikler

r

Provides access to the red channel

g

Provides access to the green channel

b

Provides access to the blue channel

a

Provides access to the alpha channel

Öntanımlı Sabitler

UI\Draw\Color::Red

Identifies the red channel

UI\Draw\Color::Green

Identifies the green channel

UI\Draw\Color::Blue

Identifies the blue channel

UI\Draw\Color::Alpha

Identifies the alpha channel

İçindekiler

  • UI\Draw\Color::__construct — Construct new Color
  • UI\Draw\Color::getChannel — Color Manipulation
  • UI\Draw\Color::setChannel — Color Manipulation

User Contributed Notes

There are no user contributed notes for this page.


Construct new Color

  • « UI\Draw\Color
  • UI\Draw\Color::getChannel »
  • PHP Manual
  • UI\Draw\Color
  • Construct new Color

UI\Draw\Color::__construct

(UI 0.9.9)

UI\Draw\Color::__construct — Construct new Color

Açıklama

public UI\Draw\Color::__construct(UI\Draw\Color $color = ?)
public UI\Draw\Color::__construct(int $color = ?)

Shall construct a new color

Bağımsız Değişkenler

color

May be UI\Draw\Color or RRGGBBAA

User Contributed Notes

There are no user contributed notes for this page.


Color Manipulation

  • « UI\Draw\Color::__construct
  • UI\Draw\Color::setChannel »
  • PHP Manual
  • UI\Draw\Color
  • Color Manipulation

UI\Draw\Color::getChannel

(UI 0.9.9)

UI\Draw\Color::getChannel — Color Manipulation

Açıklama

public UI\Draw\Color::getChannel(int $channel): float

Shall retrieve the value for a channel

Bağımsız Değişkenler

channel

Constant channel identity

Dönen Değerler

The current value of the requested channel

User Contributed Notes

There are no user contributed notes for this page.


Color Manipulation

  • « UI\Draw\Color::getChannel
  • UI\Draw\Stroke »
  • PHP Manual
  • UI\Draw\Color
  • Color Manipulation

UI\Draw\Color::setChannel

(UI 0.9.9)

UI\Draw\Color::setChannel — Color Manipulation

Açıklama

public UI\Draw\Color::setChannel(int $channel, float $value): void

Shall set the selected channel to the given value

Bağımsız Değişkenler

channel

Constant channel identity

value

The new value for the selected channel

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Draw Stroke

(UI 0.9.9)

Giriş

Holds the configuration for the Pen to perform a stroke

Sınıf Sözdizimi

class UI\Draw\Stroke {
/* Constructor */
public __construct(
int $cap = UI\Draw\Line\Cap::Flat,
int $join = UI\Draw\Line\Join::Miter,
float $thickness = 1,
float $miterLimit = 10
)
/* Yöntemler */
public getCap(): int
public getJoin(): int
public getMiterLimit(): float
public getThickness(): float
public setCap(int $cap)
public setJoin(int $join)
public setMiterLimit(float $limit)
public setThickness(float $thickness)
}

İçindekiler

  • UI\Draw\Stroke::__construct — Construct a new Stroke
  • UI\Draw\Stroke::getCap — Get Line Cap
  • UI\Draw\Stroke::getJoin — Get Line Join
  • UI\Draw\Stroke::getMiterLimit — Get Miter Limit
  • UI\Draw\Stroke::getThickness — Get Thickness
  • UI\Draw\Stroke::setCap — Set Line Cap
  • UI\Draw\Stroke::setJoin — Set Line Join
  • UI\Draw\Stroke::setMiterLimit — Set Miter Limit
  • UI\Draw\Stroke::setThickness — Set Thickness

User Contributed Notes

There are no user contributed notes for this page.


Construct a new Stroke

  • « UI\Draw\Stroke
  • UI\Draw\Stroke::getCap »
  • PHP Manual
  • UI\Draw\Stroke
  • Construct a new Stroke

UI\Draw\Stroke::__construct

(UI 0.9.9)

UI\Draw\Stroke::__construct — Construct a new Stroke

Açıklama

public UI\Draw\Stroke::__construct(
int $cap = UI\Draw\Line\Cap::Flat,
int $join = UI\Draw\Line\Join::Miter,
float $thickness = 1,
float $miterLimit = 10
)

Shall construct a new Stroke

Bağımsız Değişkenler

cap

UI\Draw\Line\Cap::Flat, UI\Draw\Line\Cap::Round, or UI\Draw\Line\Cap::Square

join

UI\Draw\Line\Join::Miter, UI\Draw\Line\Join::Round, or UI\Draw\Line\Join::Bevel

thickness

The thickness of the stroke

miterLimit

Miter limit (default is sensible for all supported platforms)

User Contributed Notes

There are no user contributed notes for this page.


Get Line Cap

  • « UI\Draw\Stroke::__construct
  • UI\Draw\Stroke::getJoin »
  • PHP Manual
  • UI\Draw\Stroke
  • Get Line Cap

UI\Draw\Stroke::getCap

(UI 0.9.9)

UI\Draw\Stroke::getCap — Get Line Cap

Açıklama

public UI\Draw\Stroke::getCap(): int

Shall retrieve the line cap setting of this Stroke

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

UI\Draw\Line\Cap::Flat, UI\Draw\Line\Cap::Round, or UI\Draw\Line\Cap::Square

User Contributed Notes

There are no user contributed notes for this page.


Get Line Join

  • « UI\Draw\Stroke::getCap
  • UI\Draw\Stroke::getMiterLimit »
  • PHP Manual
  • UI\Draw\Stroke
  • Get Line Join

UI\Draw\Stroke::getJoin

(UI 0.9.9)

UI\Draw\Stroke::getJoin — Get Line Join

Açıklama

public UI\Draw\Stroke::getJoin(): int

Shall retrieve the line join setting of this Stroke

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

UI\Draw\Line\Join::Miter, UI\Draw\Line\Join::Round, or UI\Draw\Line\Join::Bevel

User Contributed Notes

There are no user contributed notes for this page.


Get Miter Limit

  • « UI\Draw\Stroke::getJoin
  • UI\Draw\Stroke::getThickness »
  • PHP Manual
  • UI\Draw\Stroke
  • Get Miter Limit

UI\Draw\Stroke::getMiterLimit

(UI 0.9.9)

UI\Draw\Stroke::getMiterLimit — Get Miter Limit

Açıklama

public UI\Draw\Stroke::getMiterLimit(): float

Shall retrieve the miter limit of this Stroke

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

The current miter limit

User Contributed Notes

There are no user contributed notes for this page.


Get Thickness

  • « UI\Draw\Stroke::getMiterLimit
  • UI\Draw\Stroke::setCap »
  • PHP Manual
  • UI\Draw\Stroke
  • Get Thickness

UI\Draw\Stroke::getThickness

(UI 0.9.9)

UI\Draw\Stroke::getThickness — Get Thickness

Açıklama

public UI\Draw\Stroke::getThickness(): float

Shall retrieve the thickness of this Stroke

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

The current thickness

User Contributed Notes

There are no user contributed notes for this page.


Set Line Cap

  • « UI\Draw\Stroke::getThickness
  • UI\Draw\Stroke::setJoin »
  • PHP Manual
  • UI\Draw\Stroke
  • Set Line Cap

UI\Draw\Stroke::setCap

(UI 0.9.9)

UI\Draw\Stroke::setCap — Set Line Cap

Açıklama

public UI\Draw\Stroke::setCap(int $cap)

Shall set the line cap setting for this Stroke

Bağımsız Değişkenler

cap

UI\Draw\Line\Cap::Flat, UI\Draw\Line\Cap::Round, or UI\Draw\Line\Cap::Square

User Contributed Notes

There are no user contributed notes for this page.


Set Line Join

  • « UI\Draw\Stroke::setCap
  • UI\Draw\Stroke::setMiterLimit »
  • PHP Manual
  • UI\Draw\Stroke
  • Set Line Join

UI\Draw\Stroke::setJoin

(UI 0.9.9)

UI\Draw\Stroke::setJoin — Set Line Join

Açıklama

public UI\Draw\Stroke::setJoin(int $join)

Shall set the line join setting for this Stroke

Bağımsız Değişkenler

join

UI\Draw\Line\Join::Miter, UI\Draw\Line\Join::Round, or UI\Draw\Line\Join::Bevel

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Set Miter Limit

  • « UI\Draw\Stroke::setJoin
  • UI\Draw\Stroke::setThickness »
  • PHP Manual
  • UI\Draw\Stroke
  • Set Miter Limit

UI\Draw\Stroke::setMiterLimit

(UI 0.9.9)

UI\Draw\Stroke::setMiterLimit — Set Miter Limit

Açıklama

public UI\Draw\Stroke::setMiterLimit(float $limit)

Set the miter limit for this Stroke

Bağımsız Değişkenler

limit

The new limit

User Contributed Notes

There are no user contributed notes for this page.


Set Thickness

  • « UI\Draw\Stroke::setMiterLimit
  • UI\Draw\Brush »
  • PHP Manual
  • UI\Draw\Stroke
  • Set Thickness

UI\Draw\Stroke::setThickness

(UI 0.9.9)

UI\Draw\Stroke::setThickness — Set Thickness

Açıklama

public UI\Draw\Stroke::setThickness(float $thickness)

Shall set the thickness for this Stroke

Bağımsız Değişkenler

thickness

The new thickness

User Contributed Notes

There are no user contributed notes for this page.


Brushes

(UI 0.9.9)

Giriş

Represents a solid color brush

Sınıf Sözdizimi

class UI\Draw\Brush {
/* Constructor */
public __construct(UI\Draw\Color $color)
public __construct(int $color)
/* Yöntemler */
public getColor(): UI\Draw\Color
public setColor(UI\Draw\Color $color): void
public setColor(int $color): void
}

İçindekiler

  • UI\Draw\Brush::__construct — Construct a new Brush
  • UI\Draw\Brush::getColor — Get Color
  • UI\Draw\Brush::setColor — Set Color

User Contributed Notes

There are no user contributed notes for this page.


Construct a new Brush

  • « UI\Draw\Brush
  • UI\Draw\Brush::getColor »
  • PHP Manual
  • UI\Draw\Brush
  • Construct a new Brush

UI\Draw\Brush::__construct

(UI 0.9.9)

UI\Draw\Brush::__construct — Construct a new Brush

Açıklama

public UI\Draw\Brush::__construct(UI\Draw\Color $color)
public UI\Draw\Brush::__construct(int $color)

Shall construct a solid brush using the given color

Bağımsız Değişkenler

color

Can be a UI\Draw\Color or RRGGBBAA

User Contributed Notes

There are no user contributed notes for this page.


Get Color

  • « UI\Draw\Brush::__construct
  • UI\Draw\Brush::setColor »
  • PHP Manual
  • UI\Draw\Brush
  • Get Color

UI\Draw\Brush::getColor

(UI 0.9.9)

UI\Draw\Brush::getColor — Get Color

Açıklama

public UI\Draw\Brush::getColor(): UI\Draw\Color

Shall return a UI\Draw\Color for this brush

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

The current color of the brush

User Contributed Notes

There are no user contributed notes for this page.


Set Color

  • « UI\Draw\Brush::getColor
  • UI\Draw\Brush\Gradient »
  • PHP Manual
  • UI\Draw\Brush
  • Set Color

UI\Draw\Brush::setColor

(UI 0.9.9)

UI\Draw\Brush::setColor — Set Color

Açıklama

public UI\Draw\Brush::setColor(UI\Draw\Color $color): void
public UI\Draw\Brush::setColor(int $color): void

Shall set the color of this brush to the color provided

Bağımsız Değişkenler

color

Can be a UI\Draw\Color or RRGGBBAA

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Gradient Brushes

(UI 2.0.0)

Giriş

Abstract for gradient brushes

Sınıf Sözdizimi

abstract class UI\Draw\Brush\Gradient extends UI\Draw\Brush {
/* Yöntemler */
public addStop(float $position, UI\Draw\Color $color): int
public addStop(float $position, int $color): int
public delStop(int $index): int
public setStop(int $index, float $position, UI\Draw\Color $color): bool
public setStop(int $index, float $position, int $color): bool
/* Miras alınan yöntemler */
public UI\Draw\Brush::getColor(): UI\Draw\Color
public UI\Draw\Brush::setColor(UI\Draw\Color $color): void
public UI\Draw\Brush::setColor(int $color): void
}

İçindekiler

  • UI\Draw\Brush\Gradient::addStop — Stop Manipulation
  • UI\Draw\Brush\Gradient::delStop — Stop Manipulation
  • UI\Draw\Brush\Gradient::setStop — Stop Manipulation

User Contributed Notes

There are no user contributed notes for this page.


Stop Manipulation

  • « UI\Draw\Brush\Gradient
  • UI\Draw\Brush\Gradient::delStop »
  • PHP Manual
  • UI\Draw\Brush\Gradient
  • Stop Manipulation

UI\Draw\Brush\Gradient::addStop

(UI 2.0.0)

UI\Draw\Brush\Gradient::addStop — Stop Manipulation

Açıklama

public UI\Draw\Brush\Gradient::addStop(float $position, UI\Draw\Color $color): int
public UI\Draw\Brush\Gradient::addStop(float $position, int $color): int

Shall at a stop of the given color at the given position

Bağımsız Değişkenler

position

The position for the new stop

color

The color for the new stop, may be UI\Draw\Color or RRGGBBAA

Dönen Değerler

Total number of stops

User Contributed Notes

There are no user contributed notes for this page.


Stop Manipulation

  • « UI\Draw\Brush\Gradient::addStop
  • UI\Draw\Brush\Gradient::setStop »
  • PHP Manual
  • UI\Draw\Brush\Gradient
  • Stop Manipulation

UI\Draw\Brush\Gradient::delStop

(UI 2.0.0)

UI\Draw\Brush\Gradient::delStop — Stop Manipulation

Açıklama

public UI\Draw\Brush\Gradient::delStop(int $index): int

Uyarı

Bu işlev hala belgelendirilmemiştir; sadece bağımsız değişken listesi mevcuttur.

Bağımsız Değişkenler

index

Dönen Değerler

Total number of stops

User Contributed Notes

There are no user contributed notes for this page.


Stop Manipulation

  • « UI\Draw\Brush\Gradient::delStop
  • UI\Draw\Brush\LinearGradient »
  • PHP Manual
  • UI\Draw\Brush\Gradient
  • Stop Manipulation

UI\Draw\Brush\Gradient::setStop

(UI 2.0.0)

UI\Draw\Brush\Gradient::setStop — Stop Manipulation

Açıklama

public UI\Draw\Brush\Gradient::setStop(int $index, float $position, UI\Draw\Color $color): bool
public UI\Draw\Brush\Gradient::setStop(int $index, float $position, int $color): bool

Bağımsız Değişkenler

index

The index of the stop to set

position

The position for the stop

color

The color for the stop, may be UI\Draw\Color or RRGGBBAA

Dönen Değerler

Indication of success

User Contributed Notes

There are no user contributed notes for this page.


Linear Gradient

(UI 2.0.0)

Giriş

Sınıf Sözdizimi

class UI\Draw\Brush\LinearGradient extends UI\Draw\Brush\Gradient {
/* Constructor */
public __construct(UI\Point $start, UI\Point $end)
/* Miras alınan yöntemler */
public UI\Draw\Brush\Gradient::addStop(float $position, UI\Draw\Color $color): int
public UI\Draw\Brush\Gradient::addStop(float $position, int $color): int
public UI\Draw\Brush\Gradient::delStop(int $index): int
public UI\Draw\Brush\Gradient::setStop(int $index, float $position, UI\Draw\Color $color): bool
public UI\Draw\Brush\Gradient::setStop(int $index, float $position, int $color): bool
}

İçindekiler

  • UI\Draw\Brush\LinearGradient::__construct — Construct a Linear Gradient

User Contributed Notes

There are no user contributed notes for this page.


Construct a Linear Gradient

  • « UI\Draw\Brush\LinearGradient
  • UI\Draw\Brush\RadialGradient »
  • PHP Manual
  • UI\Draw\Brush\LinearGradient
  • Construct a Linear Gradient

UI\Draw\Brush\LinearGradient::__construct

(UI 2.0.0)

UI\Draw\Brush\LinearGradient::__construct — Construct a Linear Gradient

Açıklama

public UI\Draw\Brush\LinearGradient::__construct(UI\Point $start, UI\Point $end)

Shall construct a new linear gradient

Bağımsız Değişkenler

start

end

User Contributed Notes

There are no user contributed notes for this page.


Radial Gradient

(UI 2.0.0)

Giriş

Sınıf Sözdizimi

class UI\Draw\Brush\RadialGradient extends UI\Draw\Brush\Gradient {
/* Constructor */
public __construct(UI\Point $start, UI\Point $outer, float $radius)
/* Miras alınan yöntemler */
public UI\Draw\Brush\Gradient::addStop(float $position, UI\Draw\Color $color): int
public UI\Draw\Brush\Gradient::addStop(float $position, int $color): int
public UI\Draw\Brush\Gradient::delStop(int $index): int
public UI\Draw\Brush\Gradient::setStop(int $index, float $position, UI\Draw\Color $color): bool
public UI\Draw\Brush\Gradient::setStop(int $index, float $position, int $color): bool
}

İçindekiler

  • UI\Draw\Brush\RadialGradient::__construct — Construct a new Radial Gradient

User Contributed Notes

There are no user contributed notes for this page.


Construct a new Radial Gradient

  • « UI\Draw\Brush\RadialGradient
  • UI\Draw\Text\Layout »
  • PHP Manual
  • UI\Draw\Brush\RadialGradient
  • Construct a new Radial Gradient

UI\Draw\Brush\RadialGradient::__construct

(UI 2.0.0)

UI\Draw\Brush\RadialGradient::__construct — Construct a new Radial Gradient

Açıklama

public UI\Draw\Brush\RadialGradient::__construct(UI\Point $start, UI\Point $outer, float $radius)

Shall construct a new radial gradient

Bağımsız Değişkenler

start

outer

radius

User Contributed Notes

There are no user contributed notes for this page.


Represents Text Layout

(UI 0.9.9)

Giriş

A Text Layout represents the layout of text which will be drawn by the Pen

Sınıf Sözdizimi

class UI\Draw\Text\Layout {
/* Constructor */
public __construct(string $text, UI\Draw\Text\Font $font, float $width)
/* Yöntemler */
public setColor(UI\Draw\Color $color, int $start = 0, int $end = ?)
public setColor(int $color, int $start = 0, int $end = ?)
public setWidth(float $width)
}

İçindekiler

  • UI\Draw\Text\Layout::__construct — Construct a new Text Layout
  • UI\Draw\Text\Layout::setColor — Set Color
  • UI\Draw\Text\Layout::setWidth — Set Width

User Contributed Notes

There are no user contributed notes for this page.


Construct a new Text Layout

  • « UI\Draw\Text\Layout
  • UI\Draw\Text\Layout::setColor »
  • PHP Manual
  • UI\Draw\Text\Layout
  • Construct a new Text Layout

UI\Draw\Text\Layout::__construct

(UI 0.9.9)

UI\Draw\Text\Layout::__construct — Construct a new Text Layout

Açıklama

public UI\Draw\Text\Layout::__construct(string $text, UI\Draw\Text\Font $font, float $width)

Shall construct a new Text Layout

Bağımsız Değişkenler

text

The text for the layout

font

The font to use for writing

width

The width of the layout

User Contributed Notes

There are no user contributed notes for this page.


Set Color

  • « UI\Draw\Text\Layout::__construct
  • UI\Draw\Text\Layout::setWidth »
  • PHP Manual
  • UI\Draw\Text\Layout
  • Set Color

UI\Draw\Text\Layout::setColor

(UI 0.9.9)

UI\Draw\Text\Layout::setColor — Set Color

Açıklama

public UI\Draw\Text\Layout::setColor(UI\Draw\Color $color, int $start = 0, int $end = ?)
public UI\Draw\Text\Layout::setColor(int $color, int $start = 0, int $end = ?)

Shall set the Color for all of, or a range of the text in the Layout

Bağımsız Değişkenler

color

The color to use

start

The starting character

end

The ending character, by default the end of the string

User Contributed Notes

There are no user contributed notes for this page.


Set Width

  • « UI\Draw\Text\Layout::setColor
  • UI\Draw\Text\Font »
  • PHP Manual
  • UI\Draw\Text\Layout
  • Set Width

UI\Draw\Text\Layout::setWidth

(UI 0.9.9)

UI\Draw\Text\Layout::setWidth — Set Width

Açıklama

public UI\Draw\Text\Layout::setWidth(float $width)

Shall set the width of this Text Layout

Bağımsız Değişkenler

width

The new width

User Contributed Notes

There are no user contributed notes for this page.


Represents a Font

(UI 0.9.9)

Giriş

Loads a described font

Sınıf Sözdizimi

class UI\Draw\Text\Font {
/* Constructor */
public __construct(UI\Draw\Text\Font\Descriptor $descriptor)
/* Yöntemler */
public getAscent(): float
public getDescent(): float
public getLeading(): float
public getUnderlinePosition(): float
public getUnderlineThickness(): float
}

İçindekiler

  • UI\Draw\Text\Font::__construct — Construct a new Font
  • UI\Draw\Text\Font::getAscent — Font Metrics
  • UI\Draw\Text\Font::getDescent — Font Metrics
  • UI\Draw\Text\Font::getLeading — Font Metrics
  • UI\Draw\Text\Font::getUnderlinePosition — Font Metrics
  • UI\Draw\Text\Font::getUnderlineThickness — Font Metrics

User Contributed Notes

There are no user contributed notes for this page.


Construct a new Font

  • « UI\Draw\Text\Font
  • UI\Draw\Text\Font::getAscent »
  • PHP Manual
  • UI\Draw\Text\Font
  • Construct a new Font

UI\Draw\Text\Font::__construct

(UI 0.9.9)

UI\Draw\Text\Font::__construct — Construct a new Font

Açıklama

public UI\Draw\Text\Font::__construct(UI\Draw\Text\Font\Descriptor $descriptor)

Shall construct a new Font using the given descriptor

Bağımsız Değişkenler

descriptor

The descriptor for the Font

User Contributed Notes

There are no user contributed notes for this page.


Font Metrics

  • « UI\Draw\Text\Font::__construct
  • UI\Draw\Text\Font::getDescent »
  • PHP Manual
  • UI\Draw\Text\Font
  • Font Metrics

UI\Draw\Text\Font::getAscent

(UI 1.0.3)

UI\Draw\Text\Font::getAscent — Font Metrics

Açıklama

public UI\Draw\Text\Font::getAscent(): float

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Font Metrics

  • « UI\Draw\Text\Font::getAscent
  • UI\Draw\Text\Font::getLeading »
  • PHP Manual
  • UI\Draw\Text\Font
  • Font Metrics

UI\Draw\Text\Font::getDescent

(UI 1.0.3)

UI\Draw\Text\Font::getDescent — Font Metrics

Açıklama

public UI\Draw\Text\Font::getDescent(): float

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Font Metrics

  • « UI\Draw\Text\Font::getDescent
  • UI\Draw\Text\Font::getUnderlinePosition »
  • PHP Manual
  • UI\Draw\Text\Font
  • Font Metrics

UI\Draw\Text\Font::getLeading

(UI 1.0.3)

UI\Draw\Text\Font::getLeading — Font Metrics

Açıklama

public UI\Draw\Text\Font::getLeading(): float

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Font Metrics

  • « UI\Draw\Text\Font::getLeading
  • UI\Draw\Text\Font::getUnderlineThickness »
  • PHP Manual
  • UI\Draw\Text\Font
  • Font Metrics

UI\Draw\Text\Font::getUnderlinePosition

(UI 1.0.3)

UI\Draw\Text\Font::getUnderlinePosition — Font Metrics

Açıklama

public UI\Draw\Text\Font::getUnderlinePosition(): float

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Font Metrics

  • « UI\Draw\Text\Font::getUnderlinePosition
  • UI\Draw\Text\Font\Descriptor »
  • PHP Manual
  • UI\Draw\Text\Font
  • Font Metrics

UI\Draw\Text\Font::getUnderlineThickness

(UI 1.0.3)

UI\Draw\Text\Font::getUnderlineThickness — Font Metrics

Açıklama

public UI\Draw\Text\Font::getUnderlineThickness(): float

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Font Descriptor

(UI 0.9.9)

Giriş

Describes a font

Sınıf Sözdizimi

class UI\Draw\Text\Font\Descriptor {
/* Constructor */
public __construct(
string $family,
float $size,
int $weight = UI\Draw\Text\Font\Weight::Normal,
int $italic = UI\Draw\Text\Font\Italic::Normal,
int $stretch = UI\Draw\Text\Font\Stretch::Normal
)
/* Yöntemler */
public getFamily(): string
public getItalic(): int
public getSize(): float
public getStretch(): int
public getWeight(): int
}

İçindekiler

  • UI\Draw\Text\Font\Descriptor::__construct — Construct a new Font Descriptor
  • UI\Draw\Text\Font\Descriptor::getFamily — Get Font Family
  • UI\Draw\Text\Font\Descriptor::getItalic — Style Detection
  • UI\Draw\Text\Font\Descriptor::getSize — Size Detection
  • UI\Draw\Text\Font\Descriptor::getStretch — Style Detection
  • UI\Draw\Text\Font\Descriptor::getWeight — Weight Detection

User Contributed Notes

There are no user contributed notes for this page.


Construct a new Font Descriptor

  • « UI\Draw\Text\Font\Descriptor
  • UI\Draw\Text\Font\Descriptor::getFamily »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Construct a new Font Descriptor

UI\Draw\Text\Font\Descriptor::__construct

(UI 0.9.9)

UI\Draw\Text\Font\Descriptor::__construct — Construct a new Font Descriptor

Açıklama

public UI\Draw\Text\Font\Descriptor::__construct(
string $family,
float $size,
int $weight = UI\Draw\Text\Font\Weight::Normal,
int $italic = UI\Draw\Text\Font\Italic::Normal,
int $stretch = UI\Draw\Text\Font\Stretch::Normal
)

Shall construct a new Font Descriptor

Bağımsız Değişkenler

family

The name of a valid family of fonts

size

The preferred size

weight

UI\Draw\Text\Font\Weight constant

italic

UI\Draw\Text\Font\Italic constant

stretch

UI\Draw\Text\Font\Stretch constant

User Contributed Notes

There are no user contributed notes for this page.


Get Font Family

  • « UI\Draw\Text\Font\Descriptor::__construct
  • UI\Draw\Text\Font\Descriptor::getItalic »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Get Font Family

UI\Draw\Text\Font\Descriptor::getFamily

(UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getFamily — Get Font Family

Açıklama

public UI\Draw\Text\Font\Descriptor::getFamily(): string

Shall return the requested font family

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Style Detection

  • « UI\Draw\Text\Font\Descriptor::getFamily
  • UI\Draw\Text\Font\Descriptor::getSize »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Style Detection

UI\Draw\Text\Font\Descriptor::getItalic

(UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getItalic — Style Detection

Açıklama

public UI\Draw\Text\Font\Descriptor::getItalic(): int

Shall return constant setting

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Size Detection

  • « UI\Draw\Text\Font\Descriptor::getItalic
  • UI\Draw\Text\Font\Descriptor::getStretch »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Size Detection

UI\Draw\Text\Font\Descriptor::getSize

(UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getSize — Size Detection

Açıklama

public UI\Draw\Text\Font\Descriptor::getSize(): float

Shall return the requested size

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Style Detection

  • « UI\Draw\Text\Font\Descriptor::getSize
  • UI\Draw\Text\Font\Descriptor::getWeight »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Style Detection

UI\Draw\Text\Font\Descriptor::getStretch

(UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getStretch — Style Detection

Açıklama

public UI\Draw\Text\Font\Descriptor::getStretch(): int

Shall return requested stretch

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Weight Detection

  • « UI\Draw\Text\Font\Descriptor::getStretch
  • UI İşlevleri »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Weight Detection

UI\Draw\Text\Font\Descriptor::getWeight

(UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getWeight — Weight Detection

Açıklama

public UI\Draw\Text\Font\Descriptor::getWeight(): int

Shall return requested weight

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


UI İşlevleri

İçindekiler

  • UI\Draw\Text\Font\fontFamilies — Retrieve Font Families
  • UI\quit — Quit UI Loop
  • UI\run — Enter UI Loop

User Contributed Notes

There are no user contributed notes for this page.


Retrieve Font Families

  • « UI İşlevleri
  • UI\quit »
  • PHP Manual
  • UI İşlevleri
  • Retrieve Font Families

UI\Draw\Text\Font\fontFamilies

(UI 0.9.9)

UI\Draw\Text\Font\fontFamilies — Retrieve Font Families

Açıklama

UI\Draw\Text\Font\fontFamilies(): array

Returns an array of valid font families for the current system

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

Returns an array of valid font families for the current system.

User Contributed Notes

There are no user contributed notes for this page.


Quit UI Loop

  • « UI\Draw\Text\Font\fontFamilies
  • UI\run »
  • PHP Manual
  • UI İşlevleri
  • Quit UI Loop

UI\quit

(UI 2.0.0)

UI\quit — Quit UI Loop

Açıklama

UI\quit(): void

Shall cause the main loop to be exited

Bağımsız Değişkenler

Bu işlevin bağımsız değişkeni yoktur.

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Enter UI Loop

  • « UI\quit
  • UI\Draw\Text\Font\Weight »
  • PHP Manual
  • UI İşlevleri
  • Enter UI Loop

UI\run

(UI 2.0.0)

UI\run — Enter UI Loop

Açıklama

UI\run(int $flags = ?): void

Shall cause PHP to enter into the main loop, by default control will not be returned to the caller

Bağımsız Değişkenler

flags

Set UI\Loop to return control, and UI\Wait to return control after waiting

Dönen Değerler

User Contributed Notes

There are no user contributed notes for this page.


Font Weight Settings

(UI 0.9.9)

Giriş

Sınıf Sözdizimi

final class UI\Draw\Text\Font\Weight {
/* Sabitler */
const int Thin;
const int UltraLight;
const int Light;
const int Book;
const int Normal;
const int Medium;
const int SemiBold;
const int Bold;
const int UltraBold;
const int Heavy;
const int UltraHeavy;
}

Öntanımlı Sabitler

UI\Draw\Text\Font\Weight::Thin
UI\Draw\Text\Font\Weight::UltraLight
UI\Draw\Text\Font\Weight::Light
UI\Draw\Text\Font\Weight::Book
UI\Draw\Text\Font\Weight::Normal
UI\Draw\Text\Font\Weight::Medium
UI\Draw\Text\Font\Weight::SemiBold
UI\Draw\Text\Font\Weight::Bold
UI\Draw\Text\Font\Weight::UltraBold
UI\Draw\Text\Font\Weight::Heavy
UI\Draw\Text\Font\Weight::UltraHeavy

User Contributed Notes

There are no user contributed notes for this page.


Italic Font Settings

(UI 0.9.9)

Giriş

Sınıf Sözdizimi

final class UI\Draw\Text\Font\Italic {
/* Sabitler */
const int Normal = 0;
const int Oblique = 1;
const int Italic = 2;
}

Öntanımlı Sabitler

UI\Draw\Text\Font\Italic::Normal
UI\Draw\Text\Font\Italic::Oblique
UI\Draw\Text\Font\Italic::Italic

User Contributed Notes

There are no user contributed notes for this page.


Font Stretch Settings

(UI 0.9.9)

Giriş

Sınıf Sözdizimi

final class UI\Draw\Text\Font\Stretch {
/* Sabitler */
const int UltraCondensed = 0;
const int ExtraCondensed = 1;
const int Condensed = 2;
const int SemiCondensed = 3;
const int Normal = 4;
const int SemiExpanded = 5;
const int Expanded = 6;
const int ExtraExpanded = 7;
const int UltraExpanded = 8;
}

Öntanımlı Sabitler

UI\Draw\Text\Font\Stretch::UltraCondensed
UI\Draw\Text\Font\Stretch::ExtraCondensed
UI\Draw\Text\Font\Stretch::Condensed
UI\Draw\Text\Font\Stretch::SemiCondensed
UI\Draw\Text\Font\Stretch::Normal
UI\Draw\Text\Font\Stretch::SemiExpanded
UI\Draw\Text\Font\Stretch::Expanded
UI\Draw\Text\Font\Stretch::ExtraExpanded
UI\Draw\Text\Font\Stretch::UltraExpanded

User Contributed Notes

There are no user contributed notes for this page.


Line Cap Settings

(UI 0.9.9)

Giriş

Sınıf Sözdizimi

final class UI\Draw\Line\Cap {
/* Sabitler */
const int Flat;
const int Round;
const int Square;
}

Öntanımlı Sabitler

UI\Draw\Line\Cap::Flat
UI\Draw\Line\Cap::Round
UI\Draw\Line\Cap::Square

User Contributed Notes

There are no user contributed notes for this page.


Line Join Settings

(UI 0.9.9)

Giriş

Sınıf Sözdizimi

final class UI\Draw\Line\Join {
/* Sabitler */
const int Miter;
const int Round;
const int Bevel;
}

Öntanımlı Sabitler

UI\Draw\Line\Join::Miter
UI\Draw\Line\Join::Round
UI\Draw\Line\Join::Bevel

User Contributed Notes

There are no user contributed notes for this page.


Key Identifiers

(UI 1.0.0)

Giriş

Sınıf Sözdizimi

final class UI\Key {
/* Sabitler */
const int Escape;
const int Insert;
const int Delete;
const int Home;
const int End;
const int PageUp;
const int PageDown;
const int Up;
const int Down;
const int Left;
const int Right;
const int F1;
const int F2;
const int F3;
const int F4;
const int F5;
const int F6;
const int F7;
const int F8;
const int F9;
const int F10;
const int F11;
const int F12;
const int N0;
const int N1;
const int N2;
const int N3;
const int N4;
const int N5;
const int N6;
const int N7;
const int N8;
const int N9;
const int NDot;
const int NEnter;
const int NAdd;
const int NSubtract;
const int NMultiply;
const int NDivide;
}

Öntanımlı Sabitler

UI\Key::Escape
UI\Key::Insert
UI\Key::Delete
UI\Key::Home
UI\Key::End
UI\Key::PageUp
UI\Key::PageDown
UI\Key::Up
UI\Key::Down
UI\Key::Left
UI\Key::Right
UI\Key::F1
UI\Key::F2
UI\Key::F3
UI\Key::F4
UI\Key::F5
UI\Key::F6
UI\Key::F7
UI\Key::F8
UI\Key::F9
UI\Key::F10
UI\Key::F11
UI\Key::F12
UI\Key::N0
UI\Key::N1
UI\Key::N2
UI\Key::N3
UI\Key::N4
UI\Key::N5
UI\Key::N6
UI\Key::N7
UI\Key::N8
UI\Key::N9
UI\Key::NDot
UI\Key::NEnter
UI\Key::NAdd
UI\Key::NSubtract
UI\Key::NMultiply
UI\Key::NDivide

User Contributed Notes

There are no user contributed notes for this page.


InvalidArgumentException

(UI 1.0.3)

Giriş

Sınıf Sözdizimi

class UI\Exception\InvalidArgumentException extends InvalidArgumentException implements Throwable {
/* Miras alınan özellikler */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Miras alınan yöntemler */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

User Contributed Notes

There are no user contributed notes for this page.


RuntimeException

(UI 1.0.3)

Giriş

Sınıf Sözdizimi

class UI\Exception\RuntimeException extends RuntimeException implements Throwable {
/* Miras alınan özellikler */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Miras alınan yöntemler */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

User Contributed Notes

There are no user contributed notes for this page.


Sıkça Sorulan Sorular

  • Genel Bilgi
  • Eposta listeleri — Posta Listeleri
  • PHP'nin Temini
  • Veritabanı Sorunları
  • Kurulum
  • Derleme Sorunları
  • PHP Kullanımı
  • Parola aşlama — Güvenli Parola aşlama
  • PHP ve HTML
  • PHP ve COM
  • Çeşitli Sorular

User Contributed Notes

There are no user contributed notes for this page.


Genel Bilgi

Bu bölümde PHP ile ilgili en genel sorulara yer verilmiştir: Nedir ve ne yapar?

  1. PHP nedir?
  2. PHP'nin açılımı nedir?
  3. Sürümler arasındaki ilişki nedir?
  4. PHP'nin farklı sürümlerini aynı anda çalıştırabilir miyim?
  5. Bir hata buldum! Kime söylemeliyim?
PHP nedir?

Kılavuzun önsözünden bir alıntı:

PHP, HTML içine gömülebilen bir betik dilidir. Sözdiziminin çoğunu C, Java ve Perl'den almış ve bunun üzerine PHP'ye özgü bir sürü eşsiz özellik eklenmiştir. Dilin amacı site geliştirenlere dinamik olarak hızla üretilen sayfalar yazabilme imkanı vermektir.

PHP'nin açılımı nedir?

PHP kısaltmasının açılımı PHP: Hypertext Preprocessor olup anlamı PHP: Hiper Metin Önişlemcisi'dir. Kısaltmanın ilk harfinin kısaltmanın kısaltması olması çoğu kişiyi şaşırtmaktadır. Bu tür kısaltmalara iç içe kısaltmalar adı verilmektedir. Meraklılar, daha ayrıntılı bilgi edinmek için » FOLDOC veya » Wikipedia'ya bakabilirler.

Sürümler arasındaki ilişki nedir?

PHP/FI 2.0 bir erken dönem ve artık desteklenmeyen bir PHP sürümüdür. PHP 3, PHP/FI 2.0'ın ardılı olup, çok daha gelişmişidir. PHP 8, PHP'nin şimdiki nesli olup, Zend motoru 4 kullanır ve bir çok yeniliğin yanında Nesne Yönelimli Programlama özelliğine de sahiptir.

PHP'nin farklı sürümlerini aynı anda çalıştırabilir miyim?

Evet. PHP kaynak paketinin kök dizininde bulunan INSTALL dosyasını okuyunuz.

Bir hata buldum! Kime söylemeliyim?

PHP Hataları Veritabanına gitmeniz ve bulduğunuz hatanın bilinen hatalardan biri olmadığından emin olmanız gerekir. Hatayı veritabanında göremezseniz hatayı bildirmek için hata raporlama formunu kullanınız. Hatayı bir eposta listesine değil, hata veritabanına bildirmek önemlidir. Çünkü bu suretle hataya bir numara atanır ve hatanın durumunu izlemek kolaylaşır. Hata veritabanını » https://github.com/php/php-src/issues adresinde bulabilirsiniz.

User Contributed Notes

There are no user contributed notes for this page.


Posta Listeleri

Bu bölümdeki sorular PHP topluluğu ile nasıl iletişime geçileceği ile ilgilidir. Bunun en iyi yolu posta listeleridir.

  1. PHP'nin eposta listeleri var mı?
  2. Başka topluluklar var mı?
  3. Kendi PHP eposta listemi açabilir miyim?
  4. İmdat! Nasıl posta listesi üyesi olacağımı (veya üyeliğinden ayrılacağımı) bulamadım!
  5. Posta listelerinin bir yerlerde arşivi var mı?
  6. Bir posta listesine ne sorabilirim?
  7. Bir posta listesine soru sorarken hangi bilgileri vermeliyim?
PHP'nin eposta listeleri var mı?

Elbette! Çeşitli konularda pek çok eposta listesi var. En bilinen topluluk eposta listelerini » Destek sayfamızda bulabilirsiniz.

En genel posta listemiz php-general olup üye olmak için » php-general+subscribe@lists.php.net adresine, üyelikten ayrılmak için ise » php-general+unsubscribe@lists.php.net adresine bir eposta gönderin.

Ayrıca, » Destek sayfamızdan erişeceğiniz arayüzü kullanarak da üye olabilir veya eposta listelerinden gönderilen iletilerin sonundaki bilgilerden yararlanarak üyelikten ayrılabilirsiniz.

Başka topluluklar var mı?

Dünyanın dört bir yanında sayısız PHP merkezli topluluk var. » Destek sayfamızda bu toplulukların bazılarına ilişkin bilgiler ve bazı bağlantılar bulabilirsiniz.

Kendi PHP eposta listemi açabilir miyim?

Elbette! Aslında buna izin vermekle kalmıyor bunu teşvik de ediyoruz. PHP ile ilgili deneyimlerinizi ve bilgilerinizi başkalarıyla paylaşarak küresel PHP topluluğunun büyümesine ve dilin kendisinin geliştirilmesine bu yolla da yardım edebilirsiniz.

İmdat! Nasıl posta listesi üyesi olacağımı (veya üyeliğinden ayrılacağımı) bulamadım!

Bir posta listesine üye olurken veya üyelikten ayrılırken sorunlar yaşıyorsanız posta listesi yazılımına doğru adresle başvurmamış olabilirsiniz. Eğer eposta adresiniz joeblow@example.com ise php-general listesine üyelik isteğinizi php-general-subscribe-joeblow=example.com@lists.php.net adresine, üyelikten ayrılma isteğinizi ise php-general-unsubscribe-joeblow=example.com@lists.php.net adresine eposta göndererek belirtebilirsiniz. Diğer posta listeleri de benzer adresleri kabul edecektir.

Eposta listelerimizden üyeliklerini sonlandırmak isteyenlerin bunu başaramamalarının başlıca sebebi eposta yönlendiricileri kullanmalarıdır. Örneğin, eposta adresiniz danbrown@example.com ise, fakat eposta listesine yönlendirilmiş php-lists@example.com adresinizle üye olmuşsanız danbrown@example.com adresinizi üyelikten çıkarmaya çalışmanız bu adres sistemlerimiz tarafından bilinmediğinden başarısızlıkla sonuçlanacaktır. Eğer bu adres yerine php-lists@example.com eposta adresinizi üyelikten çıkarmak isteseydiniz bu çaba boşa gitmeyecekti.

Posta listelerinin bir yerlerde arşivi var mı?

Evet. Arşiv sitelerinin adres listesini » mailing list sayfamızda bulabilirsiniz. Ayrıca, eposta listelerimizi arşivleyen düzinelerce site bulunmaktadır. Ara motorlarında "php mailing list archives" dizgesiyle arama yaparak bunlara ulaşabilirsiniz.

Posta listesi iletileri » news://news.php.net/ haber sunucusunda da arşivlenmektedir. Ayrıca, haber sunucumuzun deneysel bir HTML arayüzü de mevcuttur: » http://news.php.net/

Bir posta listesine ne sorabilirim?

PHP'nin bilinirliğinin giderek artışına paralel olarak php-general posta listesinin de trafiği artmaktadır. Ortalama günlük trafik 75-200 posta civarındadır. Bundan dolayı başka yerleri de araştırdıktan sonra posta listeleri en son çare olarak kullanılmalıdır.

Listeye bir ileti göndermeden önce, yardım bulmak için lütfen bu SSS'ye ve kılavuza bakınız. Hiçbir şey bulamazsanız posta listesi arşivlerini deneyiniz (yukarı bakınız). PHP'yi kurmak veya yapılandırmak konusunda sorun yaşıyorsanız lütfen konu ile ilgili tüm belgeleri ve README dosyalarını okuyunuz. Hala derdinize deva olacak bilgilere erişememişseniz posta listelerini gönül rahatlığıyla kullanabilirsiniz.

En iyi yanıtları alabilmeniz için, lütfen sorunuzu doğru eposta listesine gönderdiğiniz emin olun. Örneğin PHP kurulumunuzda yaşadığınız sorunları php-install eposta listesine göndermelisiniz. Bir yetersizlik: Bazı listeler farklı kullanım amaçlarına sahip oldukları halde benzer isimlere sahip olabilirler. Windows üzerinde PHP betiğiniz ile ilgili sorunları "Windows PHP users" listesine göndermelisiniz, "Windows Internals" listesine değil.

Soru sormadan önce lütfen » Doğru Düzgün Soru Sormanın Yolları belgesini okuyunuz.

Bir posta listesine soru sorarken hangi bilgileri vermeliyim?

"PHP'yi çalıştıramıyorum! Bana yardım edin! Neyi yanlış yapıyorum?" gibi postaları kimse dikkate almaz. PHP'yi çalıştıramıyorsanız, PHP'yi hangi işletim sisteminde kullandığınızı, PHP'nin sürümünü, nasıl temin ettiğinizi (derlenmiş paket, Git, RPM ve benzeri), çalıştırmak için neler yaptığınızı ve aldığınız hata iletilerini tam olarak belirtmelisiniz.

Aynı şeyleri başka sorunlar için de yapmalısınız. Neler yaptığınızı, nerede saplanıp kaldığınızı, bu durumdan çıkmak için neler denediğinizi varsa aldığınız hata iletilerini iletinize dahil etmelisiniz. Eğer sorun kendi yazdığınız kodlarla ilgiliyse çalışmayan kod parçasını da iletinize dahil ediniz. Gerekli olmayan kodları dahil etmeyiniz! Bu iletinizin okunmasını zorlaştıracağı için çoğu kişi iletinizi hiç okumadan geçecektir. Postanızda ne kadar bilgi vereceğinizden emin olamıyorsanız, az da olsa bilgi vermek hiç vermemekten iyidir.

Diğer önemli şey de konu başlığında sorunun özetlenmesidir. "İMDAAAT" veya "Buradaki sorun ne?" diye bir konu başlığını okuyucuların büyük çoğunluğu yok sayacaktır.

Ve son olarak, hemen herkese büyük faydası olan » Doğru Düzgün Soru Sormanın Yolları belgesini mutlaka okuyunuz.

User Contributed Notes

There are no user contributed notes for this page.


PHP'nin Temini

Bu bölümde PHP'nin indirilebileceği yerler ve işletmi sistemleri hakkında sorulara yer verilmiştir.

  1. PHP'yi nereden edinebilirim?
  2. Derlenmiş paketler var mı?
  3. Bazı seçimlik PHP eklentilerini derlemek için gerekli kütüphaneleri nereden temin edebilirim?
  4. PHP'nin bu kütüphanelerle çalışmasını nasıl sağlarım?
  5. Windows makinem için PHP'nin kaynak kodunun en son sürümünü Git'ten aldım; derlemek için neye ihtiyacım var?
  6. Tarayıcı Yetenekleri Dosyasını nereden bulabilirim?
  7. PHP karşıdan indirme yaparken güvenli evreleme ne yapar?
PHP'yi nereden edinebilirim?

PHP'yi PHP ağına üye sitelerden indirebilirsiniz. Bunları » https://www.php.net/ adresinde bulabilirsiniz. Ayrıca, kaynak kodların en son halini anonim Git kullanarak alabilirsiniz; daha fazla bilgi için » https://www.php.net/git.php adresine bakınız.

Derlenmiş paketler var mı?

Derlenmiş çalıştırılabilirleri sadece Windows sistemler için dağıtıyoruz. Her Linux/Unix platformu için eklentileriyle birlikte PHP derlememiz mümkün değil. Ayrıca, bugünlerde çoğu Linux dağıtımı derlenmiş PHP paketleriyle gelmektedir. Windows çalıştırılabilir paketleri » İndirme sayfamızdan indirilebilir. Derlenmiş Linux paketleri için dağıtımınızın sitesine bakınız.

Bazı seçimlik PHP eklentilerini derlemek için gerekli kütüphaneleri nereden temin edebilirim?

Bilginize: Aşağıdakilerden * imli olanlar çok evreli kütüphaneler değildir ve çok evreli ortamlarda bir sunucu modülü olarak kullanımı önerilmemektedir.

  • » LDAP (Unix).
  • » LDAP (Unix/Win) : Mozilla Directory (LDAP) SDK
  • » özgür LDAP sunucusu.
  • » Berkeley DB2 (Unix/Win) : http://www.sleepycat.com/.
  • » SNMP* (Unix): .
  • » GD (Unix/Win).
  • » mSQL* (Unix).
  • » PostgreSQL (Unix).
  • » IMAP* (Win/Unix).
  • » Sybase-CT* (Linux, libc5) : Available locally.
  • » FreeType (libttf):.
  • » ZLib (Unix/Win32).
  • » expat XML çözümleyici (Unix/Win32).
  • » PDFLib.
  • » mcrypt.
  • » mhash.
  • » t1lib.
  • » dmalloc.
  • » aspell.
  • » readline.

PHP'nin bu kütüphanelerle çalışmasını nasıl sağlarım?

Kütüphane ile sağlanmış talimatları izlemeniz gerekir. Bu kütüphanelerin bazıları PHP'nin 'configure' betiği çalıştırıldığı zaman otomatik olarak algılanır (örneğin GD kütüphanesi), bazıları da 'configure' betiğine '--with-EKLENTİ seçeneği ile belirtilir. Bunların tam listesini almak için 'configure --help' komutunu verin.

Windows makinem için PHP'nin kaynak kodunun en son sürümünü Git'ten aldım; derlemek için neye ihtiyacım var?

En son derleme adımları için PHP Wikisine bakınız: » Adım adım derleme

Tarayıcı Yetenekleri Dosyasını nereden bulabilirim?

browscap.ini dosyasını » http://browscap.org/ adresinde bulabilirsiniz.

PHP karşıdan indirme yaparken güvenli evreleme ne yapar?

Güvenli Evreleme (Thread Safety), o çalıştırılabilirin bir çok evreli HTTP sunucusunda çalışabileceği anlamına gelir, mesela Windows üzerinde Apache 2 gibi. Güvenli Evreleme her evrenin bir yerel kopyasını oluşturarak çalışır, yani veri başka bir evrenin verisine karışmaz.

O halde seçiminiz ne olmalı? Eğer PHP'yi bir CGI çalıştırılabiliri olarak çalıştırırsanız güvenli evrelemeye ihtiyacınız olmaz, çünkü her istekte başka bir çalıştırılabilir kullanılır. IIS5, IIS6 gibi çok evreli HTTP sunucularında PHP'nin evreli sürümünü kullanmalısınız.

User Contributed Notes

There are no user contributed notes for this page.


Veritabanı Sorunları

Bu bölümde PHP ile veritabanları arasındaki ilişkiye yönelik sıkça sorulan sorulara yer verilmiştir. Evet, PHP, günümüzde kullanılabilen her veritabanına sanal olarak erişebilmektedir.

  1. PHP'den Microsoft SQL Sunucusuna erişimin mümkün olduğunu duydum. Nasıl?
  2. Microsoft Access veritabanlarına erişebilir miyim?
PHP'den Microsoft SQL Sunucusuna erişimin mümkün olduğunu duydum. Nasıl?

Unix makinelerde PDO_ODBC veya Unified ODBC API. kullanabilirsiniz.

Windows makinelerde, ayrıca PDO_SQLSRV veya SQLSRV de kullanabilirsiniz.

Ayrıca bir sonraki sorunun cevabına da bakınız.

Microsoft Access veritabanlarına erişebilir miyim?

Bir Unix üzerindeyseniz ve bir Windows makinedeki bir Microsoft Access veritabanına erişmek istiyorsanız Unix ODBC sürücüleri kullanmanız gerekir. » OpenLink Software, bunu yapabilen Unix temelli ODBC sürücülerine sahiptir.

Diğer bir seçenek, Windows ODBC sürücülerine sahip bir SQL sunucusu kullanmaktır. Böylece Microsoft Access (ODBC kullanarak) ve PHP'ye (yerleşik sürücüleri kullanarak) erişebilirsiniz. Başka bir seçenek ise, Microsoft Access ve PHP'nin her ikisinin de anlayabileceği düz dosyalar veya dBase veritabanları gibi bir aracı dosya biçimlerini kullanmaktır. Bu noktada OpenLink yazılımdan Tim Hayes'in yazdıklarını okuyalım:

Veritabanınıza PHP'den ODBC'yle (yani, OpenLink'in sürücüleriyle) doğrudan erişmek varken aracı dosya olarak başka bir veritabanını kullanmak hiç iyi bir fikir değildir. Mutlaka bir aracı dosya kullanmanız gerekmiyorsa, OpenLink'in NT, Linux ve diğer Unix platformları için dağıttığı Virtuoso'yu (sanal veritabanı motoru) kullanabilirsiniz. Yazılımı özgürce indirmek için » OpenLink'i ziyaret ediniz.

Başarısı kanıtlanmış tek seçenek Windows üzerinde MySQL ile MyODBC sürücülerini kullanmak ve veritabanlarını eşzamanlamaktır. Steve Lawrence şunları yazmıştır:

  • MySQL'i platformunuza talimatlara uygun olarak kurun. En son sürümü » http://www.mysql.com/ adresinden edinebilirsiniz. Bir veritabanı oluşturmak dışında özel bir yapılandırma gerekli değildir. Kullanıcı hesabını yapılandırdıktan sonra host alanına bir % imi veya MySQL ile erişmek istediğiniz Windows makinenizin konak adını yazın. Sunucu ismini, kullanıcı ismi ve parolanızı bir kenara yazmayı unutmayın.
  • Windows için MyODBC sürücüsünü MySQL sitesinden indirin ve Windows makinenize kurun. İşlemi bu programla gelen araçlarla deneyebilirsiniz.
  • Denetim Masası'ndan (veya Yönetimsel Araçlar'dan) ODBC Yöneticisini açıp bir kullanıcı veya bir sistem dsn oluşturun. MySQL veritabanını 1. adımda oluştururken kullandığınız dsn adını, konak adını, kullanıcı adı ve parolasını yazın.
  • Install Access'i tam kurulum seçeneği ile kurun. Bu, doğru eklentilerin kurulduğundan emin olmanızı sağlar; en azından ODBC desteğine ve ilintili tablo yöneticisine ihtiyacınız olacak.
  • En eğlenceli kısma geldik! Yeni bir Access veritabanı oluşturun. Tablo penceresine sağ tıklayıp Link Tables seçeneğini veya dosya menüsü seçeneği altından Get External Data ve ardından Link Tables seçeneğini seçin. Dosya tarayıcı penceresi geldiğinde ODBC türündeki dosyaları seçin. Sistem dsn'sini ve 3. adımda oluşturduğunuz kendi dsn isminizi seçin. İlintilenecek tabloyu seçtikten sonra Tamam'a tıklayın. Hepsi bu kadar! Artık, MySQL sunucunuzdan tabloyu açabilir ve veri ekleme, silme ve düzenleme işlemlerini yapabilirsiniz. Ayrıca sorgular oluşturabilir, MySQL'le tablo ithalatı ve ihracatı yapabilir, formlar ve raporlar, vs. oluşturabilirsiniz.

İpuçları:

  • Tablolarınızı Access'te oluşturabilir, bunları MySQL'e ihraç edebilir ve onları gerisin geriye ilintileyebilirsiniz. Bu işlem, tablo oluşturmayı hızlandırır.
  • Tablolarınızı Access'te oluştururken, yazma erişimine sahip olmak için bir birincil anahtar oluşturmalısınız. Tabloyu ilintilemeden önce MySQL'de de bir birincil anahtar oluşturmayı unutmayın.
  • MySQL'deki bir tabloda değişiklik yaparsanız, Access'teki ile yeniden ilintilemelisiniz. Araçlar>eklenti>ilintili tablo yöneticisi'ne gidin, ODBC DSN'nize geçin ve tabloyu seçip yeniden ilintileyin. İsterseniz, dsn kaynağınızı oradan taşıyabilirsiniz, yapacağınız tek şey Tamam'a tıklamadan önce yeni konum için daima istek yap onay kutusunu işaretlemek olacaktır.

User Contributed Notes

knb at gfz-potsdam dot de 11-Oct-2004 02:53
This is a crucial piece of information for SYBASE users:

If you are using the free, but old, 11.x client libs from sybase,
 then compile with option  "--with-sybase-ct=$SYBASE"
substitute $SYBASE with the appropriate directory name.

option --with-sybase (without ct) can somehow be used to talk to old MS-SQL servers, but only with the 11.x client libs.

If you are using free, or have legally obtained, 12.x client libs from sybase, then compile with option  "--with-sybase-ct=$SYBASE/$SYBASE_OCS"
substitute $SYBASE/$SYBASE_OCS with the appropriate directory name.


Kurulum

Bu bölüm, kurulum sırasında sık rastlanan sorunlarla ilgili sorular ve çözümlerden derlenmiştir. PHP hemen hemen tüm işletim sistemlerine kurulabilmekte ve hemen her HTTP sunucusu ile çalışabilmektedir.

PHP'yi kurmak için Yapılandırma ve Kurulum bölümündeki talimatları izleyin.

  1. Apache 2'yi çok evreli bir MPM ile üretim ortamında neden kullanmamalıyım?
  2. Unix/Windows: php.ini dosyamın yerini bulamıyorum!
  3. Unix: PHP'yi kurdum, fakat her belge yükleyişimde 'Document Contains No Data'! (Belge hiç veri içermiyor!) şeklinde bir ileti alıyorum. Ne yapmalıyım?
  4. Unix: PHP'yi RPM'leri kullanarak kurdum, fakat Apache, PHP sayfalarını işlemiyor! Ne yapmalıyım?
  5. Unix: Apache'yi FrontPage eklenti yamasıyla yamadım ve hemen ardından PHP çalışmaz hale geldi. PHP, Apache FrontPage eklentileriyle uyumlu değil mi?
  6. Unix/Windows: PHP'yi kurdum, fakat PHP betiğine tarayıcımla erişmeye çalıştığımda boş bir sayfa alıyorum.
  7. Unix/Windows: PHP'yi kurdum, fakat PHP betiğine tarayıcımla erişmeye çalıştığımda sunucudan 500 hatası alıyorum.
  8. Bazı işletim sistemleri: PHP'yi hatasız kurdum fakat Apache'yi başlatmak istediğimde tanımsız simge hataları aldım: [mybox:user /src/php5] root# apachectl configtest apachectl: /usr/local/apache/bin/httpd Undefined symbols: _compress _uncompress
  9. Windows: PHP'yi kurdum fakat tarayıcımla bir PHP betiğine erişmek istediğimde şöyle bir hata alıyorum: cgi error: The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are:
  10. Windows: Tüm talimatları izlememe rağmen PHP ile IIS'yi birlikte çalıştıramadım!
  11. PHP'yi IIS, PWS, OmniHTTPD veya Xitami ile CGI olarak çalıştırırken şu hatayı alıyorum: Security Alert! PHP CGI cannot be accessed directly..
  12. Hangi php.ini dosyasının okunduğunu nasıl anlayacağım? Yaptığım değişikliklerin bir etkisi olmuyor gibi gözüküyor.
  13. PHP dizinimi Windows'ta PATH değişkenine nasıl eklerim?
  14. Windows üzerinde PHP'nin php.ini dosyasını kullanabilmesini nasıl sağlarım?
  15. PHP ile Apache içerik dili uzlaşımını kullanmak (MultiViews seçeneği) mümkün mü?
  16. PHP'nin GET ve POST istekleri dışında istekleri işleme sokmaması sağlanabilir mi?
Apache 2'yi çok evreli bir MPM ile üretim ortamında neden kullanmamalıyım?

PHP üçüncü parti kütüphaneler kullanılarak muhtelif HTTP uygulamaları geliştirmeyi sağlayan bir yapıştırıcıdır. PHP'nin esnekliği ve gücü üzerinde çalıştığı platformun gücü ve kararlılığı ile sınırlıdır. Çalışmak için bir işletim sistemine, HTTP sunucusuna ve 3. parti modüllere ihtiyaç duyar ve bunlar arasında bir yapıştırıcı gibi davranır. Bunlardan biri çalışmasını durdurursa sorunu saptayıp çabucak çözümlemeniz gerekir. PHP'nin üzerinde çalıştığı ortamı, birbirlerinden bağımsız çalışma evreleri, tamamen ayrı bellek bölümleri ve her istek için ayrı bir çalışma alanı ile daha da karmaşıklaştırırsanız, PHP'nin hamuru bir bulamaca dönüşebilir.

Çok evreli bir MPM kullanmak isterseniz, PHP'nin kendi bellek uzayında çalışmasını sağlayan FastCGI yapılandırması bir çözüm olabilir.

Unix/Windows: php.ini dosyamın yerini bulamıyorum!

Öntanımlı olarak Unix üzerindeki yeri /usr/local/lib dizinidir. Çoğu kişi bu dosyanın yerini derleme sırasında --with-config-file-path seçeneğini kullanarak değiştirmektedir. Siz de isterseniz dosyanın yerini şöyle değiştirebilirsiniz:

--with-config-file-path=/etc
Böylece kaynak paketindeki php.ini-development dosyası /etc/php.ini olarak kurulur ve üzerinde istediğiniz değişiklikleri yapabilirsiniz.

--with-config-file-scan-dir=YOL

Windows'ta php.ini dosyasının öntanımlı yeri Windows dizinidir. Apache HTTP sunucusu kullanıyorsanız php.ini önce Apache'nin kurulum dizininde aranır (örn, c:\program files\apache group\apache). Bu yer aynı makinede çalışan farklı Apache sürümleri için farklı yerlerde olabilir.

Ayrıca bakınız: Yapılandırma Dosyası.

Unix: PHP'yi kurdum, fakat her belge yükleyişimde 'Document Contains No Data'! (Belge hiç veri içermiyor!) şeklinde bir ileti alıyorum. Ne yapmalıyım?

Muhtemelen PHP'nin bazı sorunları var ve core dosyası dökümlüyor olmalı. Bu durumda, sunucunuzun günlük kayıt dosyalarına bakıp sorunu küçük bir deney ortamında üretmeye çalışın. 'gdb' kullanmayı biliyorsanız, hata raporunuzda sorun hakkında geliştiricilere çok yardımcı olacak bir hata izleme çıktısı sağlayabilirsiniz. PHP'yi bir Apache modülü olarak kullanıyorsanız şunları yapmayı deneyin:

  • httpd sürecini durdurun

  • gdb httpd

  • httpd süreçlerini durdurun

  • > run -X -f /bir/yol/httpd.conf

  • Ardından soruna sebep olan adresi tarayıcınızla açın.

  • > run -X -f /bir/yol/httpd.conf

  • Bir core dosyası dökümleniyorsa gdb size bunun sebebini söyleyecektir.

  • Şunu yazın: bt

  • Hata raporunuza bu geriye doğru hata izleme bilgisini eklemeli ve raporu » https://github.com/php/php-src/issues adresinden göndermelisiniz.

Eğer betiğinizde düzenli ifade işlevlerini (preg_match() ve benzerleri) kullanıyorsanız, PHP'yi ve Apache'yi aynı düzenli ifade paketiyle derlediğinizden emin olmalısınız. PHP ve Apache 1.3.x için bu otomatik olarak gerçekleşir.

Unix: PHP'yi RPM'leri kullanarak kurdum, fakat Apache, PHP sayfalarını işlemiyor! Ne yapmalıyım?

Hem Apache hem de PHP'yi RPM paketlerinden kurduğunuz varsayımıyla httpd.conf dosyanıza aşağıdaki satırların tamamını veya bir kısmını ekleyin veya başlarındaki # imlerini silip o satırları etkin kılın:

# Ek Modüller
AddModule mod_php.c
AddModule mod_perl.c

# Ek Modüller
LoadModule php_module         modules/mod_php.so
LoadModule php5_module        modules/libphp5.so
LoadModule perl_module        modules/libperl.so
Ve sunucu genelinde geçerli olacak şekilde veya PHP'nin etkin olacağı sanal konak bölümünde şu satırı ekleyin:
AddType application/x-httpd-php .php

Unix: Apache'yi FrontPage eklenti yamasıyla yamadım ve hemen ardından PHP çalışmaz hale geldi. PHP, Apache FrontPage eklentileriyle uyumlu değil mi?

PHP, FrontPage eklentileriyle gayet güzel çalışır. Sorun, FrontPage yamasının PHP'nin de çalıştığı veri yapılarını değiştirmesidir. FP yamasını uyguladıktan sonra PHP'yi yeniden derleyerek (make clean; make) sorunu çözebilirsiniz.

Unix/Windows: PHP'yi kurdum, fakat PHP betiğine tarayıcımla erişmeye çalıştığımda boş bir sayfa alıyorum.

Tarayıcınıza 'Sayfa kaynağını göster' derseniz PHP betiğinizin kaynak koduna bakarak sorunun kaynağını bulabilirsiniz. Yani, HTTP sunucusu betiği yorumlasın diye PHP'ye göndermemiştir. Sunucu yapılandırmasında birşeyler yanlış gitmiş olabilir. PHP kurulum talimatlarını tekrar uygulayarak sunucu kurulumunuzu tekrar gözden geçirin.

Unix/Windows: PHP'yi kurdum, fakat PHP betiğine tarayıcımla erişmeye çalıştığımda sunucudan 500 hatası alıyorum.

Sunucu PHP'yi çalıştırmaya uğraşırken birşeyler yanlış gitmiş. Hataları görmek için komut satırından PHP çalıştırılabilirinin (Windows'ta php.exe) bulunduğu dizine geçip php -i komutunu verin. Eğer PHP çalışırken bir sorun ortaya çıkıyorsa ne yapılması gerektiği ile ilgili ipuçları içeren bir hata iletisi gösterilir. Eğer ekranı dolduran bir dolu HTML kodu alıyorsanız (bu, phpinfo() işlevinin çıktısıdır) PHP düzgün çalışıyor demektir. Bu durumda sunucu yapılandırmanızı tekrar gözden geçirmeniz gerekir.

Bazı işletim sistemleri: PHP'yi hatasız kurdum fakat Apache'yi başlatmak istediğimde tanımsız simge hataları aldım:
[mybox:user /src/php5] root# apachectl configtest
 apachectl: /usr/local/apache/bin/httpd Undefined symbols:
  _compress
  _uncompress

Bu sorun PHP'nin kendisi ile değil, MySQL istemci kütüphanesi ile ilgilidir. Derleme sırasında --with-zlib seçeneğini kullansaydınız bu sorun çıkmayacaktı. Bu konudan MySQL SSS'sinde de bahsedilmiştir.

Windows: PHP'yi kurdum fakat tarayıcımla bir PHP betiğine erişmek istediğimde şöyle bir hata alıyorum:
cgi error:
 The specified CGI application misbehaved by not
 returning a complete set of HTTP headers.
 The headers it did return are:

Hata iletisi PHP'nin hiçbir şey çıktılamadan başarısız olduğu anlamına gelmektedir. Hataları görmek için komut satırından PHP çalıştırılabilirinin (Windows'ta php.exe) bulunduğu dizine geçip php -i komutunu verin. Eğer PHP çalışırken bir sorun ortaya çıkıyorsa ne yapılması gerektiği ile ilgili ipuçları içeren bir hata iletisi gösterilir. Eğer ekranı dolduran bir dolu HTML kodu alıyorsanız (bu, phpinfo() işlevinin çıktısıdır) PHP düzgün çalışıyor demektir.

PHP komut satırından düzgün çalışıyorsa betiğe tarayıcınızla tekrar erişmeyi deneyin. Yine aynı hatayı alıyorsanız sorun şunlardan biri olabilir:

  • Yüklemeye çalıştığınız PHP betiği, php.exe, php5ts.dll, php.ini veya PHP eklentileri gibi bazı dosyaların izinleri anonim internet kullanıcısının ISUR_<makineadı> bunlara erişebilmesine izin vermiyordur.
  • Betik dosyası mevcut değildir (veya belge kök dizinine göre sizin düşündüğünüz yerde değildir). IIS kullanıyorsanız, İnternet Hizmetleri Yöneticisinde betik eşlemlerini ayarlarken 'dosya mevcut mu diye bir bakıver' kutusunu işaretlemek suretiyle bu hatayı yakalayabilirsiniz. Betik dosyasının mevcut olmaması durumunda sunucu bu hata yerine bir 404 hatası döndürecektir. IIS kullanmanın size ek bir yararı daha olacak: Betik dosyanız üzerinde NTLanMan izinlerine dayalı olarak gerekli kimlik doğrulaması da yapılacaktır.
Windows: Tüm talimatları izlememe rağmen PHP ile IIS'yi birlikte çalıştıramadım!

PHP betiğini çalıştıracak kullanıcıların php.exe'yi çalıştırabilecek izinlere sahip olup olmadığına bakın! IIS bunun için kurulumda eklenen bir anonim kullanıcı kullanır. Bu kullanıcının php.exe'yi çalıştıracak izne sahip olması gerekir. Ayrıca, kimlik doğrulaması gerektiren kullanıcıların da php.exe'yi çalıştıracak izne sahip olması gerekir. Ve IIS4'e PHP'nin bir betik yorumlayıcı olduğunu da belirtmeniz gerekir. Ek olarak, bu SSS'yi de okumanızı öneririz.

PHP'yi IIS, PWS, OmniHTTPD veya Xitami ile CGI olarak çalıştırırken şu hatayı alıyorum: Security Alert! PHP CGI cannot be accessed directly..

cgi.force_redirect yönergesine 0 atamalısınız. Öntanımlı değeri 1 olup, php.ini dosyasında bulunduğu satırın başında bir ; varsa o noktalı virgülü silmeniz gerekir.

Öntanımlı değer 1 olduğundan değişikliği doğru php.ini dosyasında yaptığınızdan %100 emin olmalısınız. Daha ayrıntılı bilgi için bu SSS'ye bakınız.

Hangi php.ini dosyasının okunduğunu nasıl anlayacağım? Yaptığım değişikliklerin bir etkisi olmuyor gibi gözüküyor.

php.ini dosyanızın PHP tarafından okunduğundan emin olmak için phpinfo() çağrısı yapmanız gerekir. Sayfanın başına yakın bir yerlerde hangi dosyanın okunduğu bilgisini Configuration File (php.ini) altında görebilirsiniz. Böylece dosyayı nereye koyacağınızı bilirsiniz. Eğer listede sadece bir dizin varsa php.ini dosyanızı bu dizine koymalısınız. php.ini dosyanız listede gösterilen dizinlerden birindeyse okunacak demektir.

Eğer php.ini okunuyor ve siz PHP'yi bir modül olarak çalıştırıyorsanız php.ini dosyanızda değişiklik yaptıktan sonra HTTP sunucunuzu yeniden başlatmayı unutmayınız.

Ayrıca bakınız: php_ini_loaded_file().

PHP dizinimi Windows'ta PATH değişkenine nasıl eklerim?

Windows:

  • Denetim Masasına gidip Sistem simgesini açın (Başlat › Denetim Masası › Sistem).

  • Gelişmiş sekmesine gidin.

  • 'Ortam Değişkenleri' düğmesine tıklayın.

  • 'Sistem Değişkenleri' panosuna bakın.

  • Path girdisini bulun (bulmak için listeyi kaydırmanız gerekebilir)

  • Path girdisine çift tıklayın.

  • Satırın sonuna bir ';' koyup PHP dizini ekleyin (örnek: ;C:\php).

  • Tamam düğmesine tıklayın.

Bilginize: PATH değişkeninde yaptığınız değişikliklerin uygulanmasını istiyorsanız yukarıdaki işlemleri yaptıktan sonra bilgisayarınızı yeniden başlatmayı unutmayınız.

Windows üzerinde PHP'nin php.ini dosyasını kullanabilmesini nasıl sağlarım?

Bunu yapmanın çeşitli yolları vardır. Apache kullanıyorsanız Apache belgelerine bakın, aksi takdirde PHPRC ortam değişkenini kullanmalısınız.

PHP ile Apache içerik dili uzlaşımını kullanmak (MultiViews seçeneği) mümkün mü?

PHP'yi dosya uzantıları ile ilişkilendirirseniz herşey düzgün çalışır. Bu SSS'de PHP dosyalarını uzantısız ilişkilendirdiğinizi ve içerik uzlaşımında PHP dosyalarının uzantılarına bakılmaksızın seçilmesini istediğinizi varsayacağız. Bu durumda, AddType application/x-httpd-php .php yerine şunları yazın:

AddHandler php5-script php
AddType text/html php
Bu çözüm PHP'nin bir modül olarak çalıştığı Apache 1'de php-script yakalanmayacağından çalışmayacaktır.

PHP'nin GET ve POST istekleri dışında istekleri işleme sokmaması sağlanabilir mi?

Hayır. PHP, CONNECT gibi her istek yöntemiyle çalışabilir. Doğru yanıt durumu header() ile gönderilebilir. Eğer sadece GET ve POST yöntemlerinin işleme sokulmasını istiyorsanız bunu Apache yapılandırmanızda şöyle sağlayabilirsiniz:

<LimitExcept GET POST>
Deny from all
</LimitExcept>

User Contributed Notes

charleslynch at xybersoftware dot com 17-Apr-2008 07:30
One final note to the message below if you are getting the message about not having rights to execute...You need to use IIS right click on the website and choose 'Properties/Home Directory' then on the 'Execute Permissions' combo box you need to choose 'Scripts only'...Click ok...another dialog may appear asking which directories to apply the action too...choose any directories that you intend on using php in and click ok...It should work now...
joerg at fenin dot de 02-Nov-2007 02:35
To limit HTTP Request Methods on the Apache server running PHP you should use mod_rewrite or mod_security instead of LimitExcept, to give you more control over the handling of such http errors.  Can go in .htaccess file or httpd.conf

# mod_rewrite
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_METHOD} !^(GET|HEAD|POST)$
  RewriteRule .* - [F,L]
</IfModule>

# mod_security
<IfModule mod_security.c>
  SecFilterSelective REQUEST_METHOD "!^(GET|HEAD|POST)$" "deny,log,status:403"
</IfModule>

You can use the php request method scanner at askapache to see exactly how your server deals with various request methods, and check that your server is configured properly..

http://www.askapache.com/online-tools/request-method-scanner/
Curtis 18-May-2007 07:39
I have some additional troubleshooting tips for 53.7, which deals with getting a blank screen on your browser when running a PHP script.

In addition to server misconfiguration, it may also be that PHP isn't configured to output errors to the browser, which is the case if you or your host uses a more secure php.ini. If this is the case, you need to find out where errors are being logged to find out if any errors are preventing normal output from being delivered to the client.

If you have access to php.ini, check the 'display_errors' directive, which is, by default, located under the 'error_reporting' directive. It's helpful to have 'display_errors' on during debugging phases, but best to have it off in production environments.

Related functions: http://php.net/ini_set | http://php.net/error_reporting | http://php.net/error_log
emzeperx at emzeper dot hu 01-Jan-2006 12:36
You do not have to restart the whole system make effect of changing the PATH env var. For me (sbs2003) worked automatically.
on older systems you can use

set $Path=%path%;c:\php

command to extend immediately the path var.
per dot fikse at ipj dot no 12-Jul-2005 01:22
Installing PHP 4 or 5 on Windows Server 2003 x64 results in http error 505. This is not a PHP bug. It is due to running a 32-bit ISAPI DLL under the 64-bit version of IIS 6, as documented here: http://support.microsoft.com/?id=895976

Solution: Flip the Metabase flag for Enable32bitAppOnWin64 as described in http://support.microsoft.com/?id=894435 ,
like this: CSCRIPT ADSUTIL.VBS SET W3SVC/AppPools/Enable32bitAppOnWin64 1

(Alternatively with full path: cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1)


Derleme Sorunları

Bu bölüm, derleme sırasında oluşan hatalardan sık rastlananlarla ilgili sorular ve çözümlerden derlenmiştir.

  1. PHP'nin en son sürümünü anonim Git'ten aldım, fakat configure betiği yok!
  2. PHP'yi Apache ile çalışmak üzere yapılandırırken sorun çıktı. httpd.h dosyasını bulamadığını söylüyor, fakat burası bunu sorabileceğim doğru yer mi bilmiyorum!
  3. PHP'yi yapılandırırken (./configure), şöyle bir hata alıyorum: checking lex output file root... ./configure: lex: command not found configure: error: cannot find output from lex; giving up
  4. Apache'yi başlatmaya çalışırken şöyle bir hata alıyorum: fatal: relocation error: file /bir/yol/libphp4.so: symbol ap_block_alarms: referenced symbol not found
  5. configure betiğini çalıştırdığımda başlık dosyalarını veya GD, gdbm veya başka bir paketin kütüphanelerini bulamadığını söylüyor!
  6. language-parser.tab.c dosyasını derlerken yytname undeclared diye bir takım hatalar veriyor
  7. make komutunu verdiğim zaman başta herşey iyi gidiyor, fakat son ilintileme işlemlerini yaparken bazı dosyaları bulamıyor.
  8. PHP ilintilenirken bazı tanımsız gönderimler olduğundan şikayet ediyor.
  9. Unix üzerinde PHP'yi Apache modülü olarak derleme adımlarını izleyerek PHP'yi kurdum. Tarayıcımla PHP dosyalarını görmek istediğim zaman tarayıcım dosyayı kaydedeceği yeri soruyor.
  10. --activate-module=src/modules/php4/libphp4.a yapılandırmasını kullandığını söylüyor ama bu dosya yok. Yapılandırmayı --activate-module=src/modules/php4/libmodphp4.a olarak değiştirdiğimde ise çalışmıyor!? Ne yapmalıyım?
  11. Apache'yi PHP'yi bir statik modül olarak kullanacak şekilde --activate-module=src/modules/php4/libphp4.a ile yapılandırırken derleyicimin ANSI uyumlu olmadığı hatasını alıyorum.
  12. PHP'yi --with-apxs yapılandırması ile derlerken tuhaf hata iletileri alıyorum.
  13. Microtime'da make sırasında RUSAGE_'li iletiler ve bazı hatalar alıyorum.
  14. PHP'yi MySQL destekli derlerken, make işlemi sırasında şuna benzer bir hata iletisi alıyorum: ext/mysql/libmysqlclient/my_tempnam.o(.text+0x46): In function my_tempnam': /php4/ext/mysql/libmysqlclient/my_tempnam.c:103: the use of tempnam' is dangerous, better use mkstemp'. Neyi yanlış yapıyorum?
  15. PHP sürümümü yükseltmek istiyorum. Mevcut PHP kurulumumun için kullanılan ./configure satırını nerede bulabilirim?
  16. PHP'yi GD kütüphanesi ile derlerken ya tuhaf derleme hataları ya da çalışma sırasında parçalama arızası alıyorum.
  17. PHP'yi derlerken rasgele hatalar alıyorum ve derleme işlemi duruyor. Bu arada, Solaris kullandığımı belirtmeliyim.
PHP'nin en son sürümünü anonim Git'ten aldım, fakat configure betiği yok!

Sisteminizde GNU autoconf paketi kuruluysa configure betiğini configure.in dosyasından üretebilirsiniz. Tek yapacağınız Git sunucusundan aldığınız kaynak kök dizininde ./buildconf komutunu vermek olacak. (Ayrıca, configure betiğini --enable-maintainer-mode seçeneğiyle çalıştırmadıkça configure.in güncellendiğinde configure betiği yeniden oluşturulmaz, bu bakımdan configure.in değiştiğine dair uyarı alırsanız ne yapılacağı konusunda emin olmalısınız.) Bunun tek belirtisi configure veya config.status çalıştırıldıktan sonra Makefile dosyanızda @VARIABLE@ gibi şeyler bulunmasıdır.)

PHP'yi Apache ile çalışmak üzere yapılandırırken sorun çıktı. httpd.h dosyasını bulamadığını söylüyor, fakat burası bunu sorabileceğim doğru yer mi bilmiyorum!

configure/setup betiğine Apache kaynak ağacınınızın en üst seviye dizininin yerini belirtmeniz lazım. Yani, seçenekte yolu --with-apache=/bir/yol/apache biçiminde belirteceksiniz, --with-apache=/bir/yol/apache/src biçiminde değil.

PHP'yi yapılandırırken (./configure), şöyle bir hata alıyorum:

checking lex output file root... ./configure: lex: command not found
configure: error: cannot find output from lex; giving up

Kurulum talimatlarını dikkatle okuyun ve PHP'yi derlemeden önce kurulması gereken bison ve flex sürümlerine dikkat edin. Dağıtımınıza ve yapılandırmanıza bağlı olarak bison ve flex'i kaynak kodlarından kendiniz derleyebileceğiniz gibi RPM gibi bir paketten de kurabilirsiniz.

Apache'yi başlatmaya çalışırken şöyle bir hata alıyorum:

fatal: relocation error: file /bir/yol/libphp4.so:
symbol ap_block_alarms: referenced symbol not found

Apache programı paylaşımlı kullanım için bir DSO kütüphanesi olarak derlendiği takdirde genelde böyle bir hata alınır. Apache'yi en azından aşağıdaki seçeneklerin bulunduğundan emin olarak yeniden yapılandırıp kurmalısınız:

--enable-shared=max --enable-rule=SHARED_CORE

Apache kaynak ağacının kök dizininde bulunan INSTALL dosyasından veya Apache » DSO kılavuz sayfasından daha ayrıntılı bilgi alabilirsiniz.

configure betiğini çalıştırdığımda başlık dosyalarını veya GD, gdbm veya başka bir paketin kütüphanelerini bulamadığını söylüyor!

configure betiğine, standart yerlerinde bulunmayan başlık dosyalarının ve kütüphanelerin yerlerini ek seçeneklerle belirterek bunların C önişlemcisine ve ilintileyiciye aktarılmasını sağlamalısınız. Örnek:

    CPPFLAGS=-I/bir/yol/include LDFLAGS=-L/bir/yol/lib ./configure
Oturum kabuğu olarak bir csh kabuğu kullanıyorsanız (nedense?), aynı şeyi şöyle yapabilirsiniz:
    env CPPFLAGS=-I/bir/yol/include LDFLAGS=-L/bir/yol/lib ./configure

language-parser.tab.c dosyasını derlerken yytname undeclared diye bir takım hatalar veriyor

Bison sürümünüzü güncellemeniz gerekiyor. En son sürümü » http://www.gnu.org/software/bison/bison.html adresinde bulabilirsiniz.

make komutunu verdiğim zaman başta herşey iyi gidiyor, fakat son ilintileme işlemlerini yaparken bazı dosyaları bulamıyor.

Eski make sürümleri functions dizinindeki dosyaların derlenmiş sürümlerini aynı dizine koymuyor. cp *.o functions komutunu verdikten sonra tekrar make komutunu çalıştırıp bunun yararı olup olmadığına bakın. Eğer işe yarıyorsa GNU make'i en son sürümüne yükseltmeniz gerekiyor demektir.

PHP ilintilenirken bazı tanımsız gönderimler olduğundan şikayet ediyor.

İlintileme satırında ilgili kütüphanelerin hepsi var mı diye bir bakın. Örneğin, '-ldl' veya bulunmasını istediğiniz veritabanı desteği için gereken kütüphaneler satırda eksik olabilir.

Bazı kişiler Apache ile ilintileme sırasında '-ldl'nın hemen ardına libphp4.a eklemek zorunda kaldıklarını bildirdiler.

Unix üzerinde PHP'yi Apache modülü olarak derleme adımlarını izleyerek PHP'yi kurdum. Tarayıcımla PHP dosyalarını görmek istediğim zaman tarayıcım dosyayı kaydedeceği yeri soruyor.

PHP modülünün bir şekilde PHP dosyalarını yorumlamak üzere devreye girmediği anlaşılıyor. Öncelikle şu üç şeyi yerine getirin:

  • httpd çalıştırılabilirinin sizin derlediğiniz çalıştırılabilir olduğundan emin olun. Bunun için /bir/yol/bin/httpd -l komutunu deneyin. Komutun çıktısında mod_php4.c yer almıyorsa doğru çalıştırılabiliri kullanmıyorsunuz demektir. Doğru çalıştırılabiliri bulup onu kurun.
  • Apache .conf dosyalarınızdan ilgili olanına PHP için doğru MIME türünü eklediğinizden emin olun. Gerekli satır: AddType application/x-httpd-php .php Ayrıca, bu AddType satırının bir <Virtualhost> veya <Directory> bloğunun içinde kalıp, betiğinizin çalıştığı konumda etkisiz olmadığından da emin olmalısınız.
  • Son olarak, Apache yapılandırma dosyalarının yerleri Apache 1.2 ve Apache 1.3 için farklıdır. Bu bakımdan AddType satırını doğru dosyaya yazdığınızdan da emin olmalısınız. httpd.conf dosyanızda, Apache başlatılırkan hata vermesine yol açacak bir söz dizimi hatası yapmanız doğru dosyayı tespit etmek için yeterli olacaktır.

--activate-module=src/modules/php4/libphp4.a yapılandırmasını kullandığını söylüyor ama bu dosya yok. Yapılandırmayı --activate-module=src/modules/php4/libmodphp4.a olarak değiştirdiğimde ise çalışmıyor!? Ne yapmalıyım?

libphp4.a dosyasının mevcut olduğunun "varsayıldığına" dikkat etmemişsiniz. Apache ikinci kez derlenirken o dosyayı kendisi üretecek!

Apache'yi PHP'yi bir statik modül olarak kullanacak şekilde --activate-module=src/modules/php4/libphp4.a ile yapılandırırken derleyicimin ANSI uyumlu olmadığı hatasını alıyorum.

Bu Apache'nin sonraki sürümlerinde düzeltilen gözden kaçmış bir hatadır.

PHP'yi --with-apxs yapılandırması ile derlerken tuhaf hata iletileri alıyorum.

Burada bakacağınız üç şey var. Birincisi, bir sebeple Apache derlenirken apxs Perl betiği bazen hatalı derleyici ve ortam değişkenleri ile derleme yapmaya çalışabiliyor. apxs betiğini bulup (which apxs komutu yardımcı olabilir, genellikle yeri /usr/local/apache/bin/apxs veya /usr/sbin/apxs'tir) açın ve aşağıdaki satırların benzerleri var mı diye bir bakın:

my $CFG_CFLAGS_SHLIB  = ' ';          # substituted via Makefile.tmpl
my $CFG_LD_SHLIB      = ' ';          # substituted via Makefile.tmpl
my $CFG_LDFLAGS_SHLIB = ' ';          # substituted via Makefile.tmpl
Gördüğünüz bunun gibiyse sorunu buldunuz demektir. Sadece boşluklar veya 'q()' gibi hatalı değerler içerebilirler. Bu satırları aşağıdaki gibi değiştirin:
my $CFG_CFLAGS_SHLIB  = '-fpic -DSHARED_MODULE'; # substituted via Makefile.tmpl
my $CFG_LD_SHLIB      = 'gcc';                   # substituted via Makefile.tmpl
my $CFG_LDFLAGS_SHLIB = q(-shared);              # substituted via Makefile.tmpl
İkinci olası sorun kaynağı Red Hat 6.1 veya 6.2 kullanıyor olmaktır. Red Hat'ın derlediği apxs betiği hatalıdır. Şu satırı bulun:
my $CFG_LIBEXECDIR    = 'modules';         # substituted via APACI install
Ve şu satırla değiştirin:
my $CFG_LIBEXECDIR    = '/usr/lib/apache'; # substituted via APACI install
Sonuncusu, eğer Apache'yi yeniden yapılandırıp kuruyorsanız ./configure betiğini çalıştırdıktan sonra make komutunu vermeden bir make clean yapmalısınız.

Microtime'da make sırasında RUSAGE_'li iletiler ve bazı hatalar alıyorum.

Kurulumun make kısmında sorun şuna benzer bir çıktıyla kendini gösteriyorsa:

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

Sorun sisteminizde demektir. Kullandığınız glibc'nin glibc-devel paketini kurup /usr/include dosyalarınızı tamamlayın. Bunun PHP ile hiçbir alakası yoktur. Sorunu kendiniz çözmelisiniz. Basit bir deneme yapın:

$ cat >test.c <<X
#include <sys/resource.h>
X
$ gcc -E test.c >/dev/null
Sonuçta hata alıyorsanız, glibc başlık dosyaları sisteminizde kurulu değil demektir.

PHP'yi MySQL destekli derlerken, make işlemi sırasında şuna benzer bir hata iletisi alıyorum: ext/mysql/libmysqlclient/my_tempnam.o(.text+0x46): In function my_tempnam': /php4/ext/mysql/libmysqlclient/my_tempnam.c:103: the use of tempnam' is dangerous, better use mkstemp'. Neyi yanlış yapıyorum?

Önce dikkat etmeniz gereken şey bunun ölümcül bir hata değil bir uyarı (Warning) olduğudur. Bu genellikle make işleminin son çıktısı olduğundan bir ölümcül hata gibi görünür ama değildir. Eğer derleyicinizi uyarıları vermeyecek şekilde ayarlarsanız bu iletiyi bir daha almazsınız. Ayrıca, PHP 4'te MySQL desteğinin öntanımlı olarak etkin olduğunu unutmayın.

Bilginize:

PHP 4.3.2 ve sonrasında, derleme (make) işleminin bitiminde şöyle bir çıktı göreceksiniz:

Build complete.
(It is safe to ignore warnings about tempnam and tmpnam).
Türkçesi: Derleme tamamlandı. (tempnam ve tmpnam ile ilgili uyarıları rahatça gözardı edebilirsiniz).

PHP sürümümü yükseltmek istiyorum. Mevcut PHP kurulumumun için kullanılan ./configure satırını nerede bulabilirim?

PHP'yi derlediğiniz kaynak dizininzdeki config.nice dosyasında bulabilirsiniz. Bu yoksa, aşağıdaki betiği çalıştırın:

<?php phpinfo(); ?>
Çıktının başlarında PHP kurulumu için kullanılan ./configure satırını göreceksiniz.

PHP'yi GD kütüphanesi ile derlerken ya tuhaf derleme hataları ya da çalışma sırasında parçalama arızası alıyorum.

GD kütüphanesinin PHP'nin bağımlı olduğu kütüphanelerle (libpng gibi) ilintilenerek derlenmiş olduğundan emin olun.

PHP'yi derlerken rasgele hatalar alıyorum ve derleme işlemi duruyor. Bu arada, Solaris kullandığımı belirtmeliyim.

PHP'yi GNU araçları dışında araçlarla derlemek bazı sorunlara sebep olabilir. PHP'yi GNU araçlarıyla derlemeye çalışın. Örneğin, Solaris'te SunOS BSD uyumlu veya Solaris sürümü sed çalışmayacak fakat GNU veya Sun POSIX (xpg4) sürümleri çalışacaktır. Derleme için gerekli araçlar: » GNU sed, » GNU flex ve » GNU bison.

User Contributed Notes

There are no user contributed notes for this page.


PHP Kullanımı

Bu bölüm, PHP betiklerini yazarken karşılaşabileceğiniz hatalarla ilgili sıkça sorulan sorulardan oluşturulmuştur.

  1. PHP'deki bağımsız değişkenlerin sırasını hatırlayamadım, rasgele midir?
  2. Bir formdan gelen veriyi işleyebileceğim genel amaçlı bir PHP betiği yazmak istiyorum. Hangi POST değişkenlerinin kullanılabilir olduğunu nasıl bileceğim?
  3. Benim bütün tek tırnakları bir tersbölü ile öncelemem lazım. Bunu bir düzenli ifade ile nasıl yapabilirim? Ayrıca, " imlerini \" ve \ imlerini de \\ biçimine çevirmek istiyorum.
  4.       Aşağıdakini gerçeklerken çıktı yanlış sırada basılıyor:

<?php
function işlevim($bağımsız_değişken)
{
    echo $bağımsız_değişken + 10;
}
$değişken = 10;
echo "işlevim($değişken) = " . işlevim($değişken);
?>

     Neyi yanlış yapıyorum?
  5. Hey, satırsonu karakterleri nereye gitti? <pre> <?php echo "Bu ilk satır olmalı."; ?> <?php echo "Bu da ilk satırın altındaki satır olmalı."; ?> </pre>
  6. Şöyle bir ileti alıyorum: 'Warning: Cannot send session cookie - headers already sent...' veya 'Cannot add header information - headers already sent...'. (Tercümesi: 'Uyarı: Oturum çerezleri gönderilemiyor - başlıklar zaten gönderilmişti...' veya 'Başlık bilgisi eklenemiyor - başlıklar zaten gönderilmişti...')
  7. İstek başlığındaki bilgiye doğrudan erişmem gerekiyor. Bunu nasıl yapabilirim?
  8. IIS ile kimlik doğrulaması yapmaya çalışırken şunu alıyorum: 'No Input file specified' (Türkçesi: 'Girdi dosyası belirtilmemiş').
  9. Windows: IIS kullanarak diğer bilgisayardaki paylaşımlı dosyalara erişemiyorum.
  10. PHP betiklerinde nasıl XML kullanabilirim? <?xml etiketlerinde sorun çıkarıyor!
  11. PHP'de kullanabileceğim değişkenlerin tam listesini nerede bulabilirim?
  12. PDFLib gibi ticari ve özgür olmayan kütüphaneleri kullanmaksızın PDF dosyaları nasıl üretebilirim?
  13. Bazı PHP yönergeleri büyük bayt değerleri için Kilobayt, Megabayt birimlerin kısaltmalarını kabul edebiliyor. Bu birimlerin tam listesini nerede bulabilirim?
PHP'deki bağımsız değişkenlerin sırasını hatırlayamadım, rasgele midir?

PHP yüzlerce harici kütüphaneyi bir araya getiren bir yapıştırıcıdır, dolayısıyla bu bazı düzensizliklere yol açar. Böyle düzensizlikler için basit bir kural uygulanır:

Dizi işlevlerinin bağımsız değişkenleri "iğne, samanlık" diye dizilirken dizge işlevlerinin bağımsız değişkenleri tersine "samanlık, iğne" diye dizilir.

Bir formdan gelen veriyi işleyebileceğim genel amaçlı bir PHP betiği yazmak istiyorum. Hangi POST değişkenlerinin kullanılabilir olduğunu nasıl bileceğim?

PHP, $_POST süper küreseli gibi bir çok öntanımlı değişkene sahiptir. POST yöntemi ile gönderilmiş değerleri bir ilişkisel dizi olarak $_POST üzerinden döngüye sokabilirsiniz. Örnek olarak, foreach ile basit bir döngü oluşturup boş değerleri empty() ile tespit edip bütün değerleri basalım:

<?php
$empty = $post = array();
foreach ($_POST as $varname => $varvalue) {
if (empty($varvalue)) {
$empty[$varname] = $varvalue;
} else {
$post[$varname] = $varvalue;
}
}

print "<pre>";
if (empty($empty)) {
print "POST ile gönderilen boş değer yok; değerler:\n";
var_dump($post);
} else {
print count($empty) . " boş değer var.\n";
print "Boş olmayanlar:\n"; var_dump($post);
print "Boş olanlar:\n"; var_dump($empty);
exit;
}
?>

Benim bütün tek tırnakları bir tersbölü ile öncelemem lazım. Bunu bir düzenli ifade ile nasıl yapabilirim? Ayrıca, " imlerini \" ve \ imlerini de \\ biçimine çevirmek istiyorum.

Bunun bir veritabanı için yapıldığını varsayarak, veritabanı ile gelen önceleme mekanizması kullanılabilir. Örneğin, MySQL ile mysql_real_escape_string(), PostgreSQL ile pg_escape_string() işlevi kullanılır. Ayrıca, PHP kodu için daha genel amaçlı olarak addslashes() ve stripslashes() işlevleri de vardır.

Aşağıdakini gerçeklerken çıktı yanlış sırada basılıyor:
<?php
function işlevim($bağımsız_değişken)
{
echo $bağımsız_değişken + 10;
}
$değişken = 10;
echo "işlevim($değişken) = " . işlevim($değişken);
?>
Neyi yanlış yapıyorum?

İşlevinizin sonucunu bir ifadede kullanmak istiyorsanız (yukarıdaki örnekte yapıldığı gibi dizgeleri ardarda eklemek gibi), işlevinizin sonucu return ile döndürmesi echo ile çıktılamaması gerekir.

Hey, satırsonu karakterleri nereye gitti?
<pre>
<?php echo "Bu ilk satır olmalı."; ?>
<?php echo "Bu da ilk satırın altındaki satır olmalı."; ?>
</pre>

PHP'de, bir kod bloğu ya "?>" ya da "?>\n" (burada \n satırsonu karakteridir) ile biter. PHP blokların sonundaki satırsonu karakterlerini yoksaydığından yukarıdaki örnekte çıktılanan iki satır aynı satıra basılacaktır. Yani, her bloktan sonra bir satırsonu karakteri basılmasını istiyorsanız fazladan bir satırsonu karakteri yerleştirmeniz (bloklar arasına boş bir satır girmek) gerekir.

PHP bunu neden yapıyor? Normal HTML biçemlerken bloklardan sonra satırsonu karakterlerinin bulunması genelde istenmeyen bir durumdur ve PHP buna göre davranır. Bu böyle yapılmasaydı gereğinden fazla uzun satırlardan oluşan kodlar yazmak zorunda kalırdınız ve bu da kodlarınızın okunaklılığını azaltırdı.

Şöyle bir ileti alıyorum: 'Warning: Cannot send session cookie - headers already sent...' veya 'Cannot add header information - headers already sent...'. (Tercümesi: 'Uyarı: Oturum çerezleri gönderilemiyor - başlıklar zaten gönderilmişti...' veya 'Başlık bilgisi eklenemiyor - başlıklar zaten gönderilmişti...')

Başlıkları çıktı akımına eklemek için header(), setcookie() ve oturum işlevleri kullanmak gerekir. Bu işlevleri kullanmadan önce hiçbir çıktılama (HTML gibi) yapılmamış olması gerekir. headers_sent() işlevi betiğinizin evvelce başlıkları gönderip göndermediğinize bakacaktır. Ayrıca, Çıktı Denetim İşlevleri'ne de bakınız.

İstek başlığındaki bilgiye doğrudan erişmem gerekiyor. Bunu nasıl yapabilirim?

PHP'yi bir Apache modülü olarak çalıştırıyorsanız getallheaders() işlevi istediğiniz şeyi yapacaktır. Aşağıdaki küçük kod tüm istek başlıklarını gösterecektir:

<?php
$başlıklar = getallheaders();
foreach ($başlıklar as $isim => $içerik) {
echo "başlıklar[$isim] = $içerik<br />\n";
}
?>

Ayrıca bakınız:
apache_lookup_uri(),
apache_response_headers() ve
fsockopen()

IIS ile kimlik doğrulaması yapmaya çalışırken şunu alıyorum: 'No Input file specified' (Türkçesi: 'Girdi dosyası belirtilmemiş').

IIS'nin güvenlik modeli bu noktada hata verecektir. Bu, IIS altında çalışan bütün CGI programlarının ortak sorunudur. Bu sorundan kurtulmanın tek yolu erişim için kimlik doğrulaması yapılacak dizinde girdi sayfası olarak (PHP ile çözümlenmeyecek) düz bir HTML sayfası oluşturmaktır. Ya bir META etiketi ile PHP dosyaya yönlendirme yaparsınız ya da sayfaya PHP dosya için bir bağlantı koyarsınız. Böylelikle PHP kimlik doğrulamasını doğru olarak yapacaktır. Bunun diğer NT HTTP sunucularını etkilememesi gerekir. Daha fazla bilgi için » http://support.microsoft.com/kb/q160422/ adresine ve bu kılavuzun HTTP Kimlik Doğrulaması bölümüne bakınız.

Windows: IIS kullanarak diğer bilgisayardaki paylaşımlı dosyalara erişemiyorum.

Internet Information Services Yöneticisini açın. PHP dosyanızı bulup özelliklerine gidin. Dosya Güvenliği sekmesine geçip, Anonim erişim ve kimlik doğrulama denetimi bölümlerini düzenleyin.

Anonim Erişim'i işaretsiz, Tümleşik Windows Kimlik Doğrulaması'nı işaretli bırakarak veya Anonim Erişim'i işaretleyip erişim izni vermek istediğiniz kullanıcıyı düzenleyerek sorunu çözümleyebilirsiniz.

PHP betiklerinde nasıl XML kullanabilirim? <?xml etiketlerinde sorun çıkarıyor!

<?xml etiketlerini PHP kodu içinde doğrudan kullanmak isterseniz, PHP'nin kısa etiketlerini, short_open_tags yönergesine 0 değerini atamak suretiyle devre dışı bırakmanız gerekir. Bu yönergeye ini_set() işleviyle değer atayamazsınız. short_open_tags yönergesinin değerinin ne olduğuna bakmaksızın bu etiketi şöyle de kullanabilirsiniz: <?php echo '<?xml'; ?>. Bu yönergenin öntanımlı değeri On'dur.

PHP'de kullanabileceğim değişkenlerin tam listesini nerede bulabilirim?

Betiğinizde kullanılabilecek öntanımlı değişkenlerin bir kısmını içeren Öntanımlı Değişkenler bölümünü okuyunuz. Kullanılabilecek değişkenlerin ve daha pek çok şeyin tam bir listesini elde etmek için phpinfo() işlevini kullanabilirsiniz. HTML formları, çerezler ve URL'ler gibi kaynaklardan elde edilen harici değişkenlerle ilgili senaryoların açıklandığı Dış Kaynaklı Değişkenler bölümünü de okumayı unutmayın.

PDFLib gibi ticari ve özgür olmayan kütüphaneleri kullanmaksızın PDF dosyaları nasıl üretebilirim?

PHP ile yazılmış bir kaç seçenek var: » FPDF ve » TCPDF.

Bazı PHP yönergeleri büyük bayt değerleri için Kilobayt, Megabayt birimlerin kısaltmalarını kabul edebiliyor. Bu birimlerin tam listesini nerede bulabilirim?

Kilobaytlar için K, Megabaytlar için M ve Gigabaytlar için G kullanılabilmektedir. Bunlar harf büyüklüğüne duyarlıdır. Belirtilmedikleri takdirde değerin bayt sayısını gösterdiği varsayılır. 1K bir Kilobayta veya 1024 bayta, 1M ise bir Megabayta veya 1048576 bayta eşittir. Bu birimlerin kısa gösterimlerini php.ini dışında ve ini_set() işlevinde kullanabilirsiniz. Sayısal değerler int türüne dönüştürülür. Örneğin, 0.5M değeri 0 olur.

Bilginize: kilobayt mı, kibibayt mı?

PHP gösteriminde bir kilobayt 1024 bayta eşittir. IEC standardı bunu kibibayt olarak adlandırır. Özetle: k veya K = 1024 bayt.

User Contributed Notes

robjbrain at gmail dot com 10-Oct-2016 04:37
There is no error message given if you accidentally use KB, MB or GB instead of K, M or G. From what I can tell the alphabetic characters will be ignored and it will be treated as bytes, so 1GB actually equals 1 Byte. phpinfo() and ini_get() will report what you have written e.g. 1GB, so it will not be clear that there is anything wrong with your setting even though there is.


Güvenli Parola aşlama

Bu bölümde, parolaları güvenlik altına alma da kullanılan aşlama (hashing) işlevinin arka planını ve etkin bir şekilde nasıl uygulayabileceğimizi ele alacağız.

  1. Kullanıcıların girmiş olduğu parolaları neden aşlamalıyım?
  2. MD5 ve SHA1 gibi genel aşlama işlevlerini parolalar için kullanmak neden uygun değildir?
  3. Genel aşlama teknikleri kullanışlı olmadıklarına göre, parolalarımı nasıl aşlamalıyım?
  4. Tuzlama nedir?
  5. Tuzlarımı nasıl saklarım?
Kullanıcıların girmiş olduğu parolaları neden aşlamalıyım?

Parola aşlama, kullanıcıların parola girerek kullandıkları bir uygulamanın tasarımında, mutlaka göz önüne alınması gereken en temel güvenlik faktörlerinden birisidir. Parola aşlama tekniği kullanılmadığı takdirde, uygulamanızın veri tabanında saklanan her türlü parola veritabanınızı ele geçirenler tarafından çalınabilir ve ardından sadece uygulamanız değil uygulamanızı kullanan kullanıcılar aynı parolayı başka servisler için de kullanıyorlarsa risk altında kalırlar.

Kullanıcılarınızın parolalarını veri tabanına kaydetmeden önce, uygulayacağınız aşlama algoritması ile saldırganın özgün parolayı tahminini imkansız kılarken, ilerleyen süreçte de özgün parolayı bulma çabalarını da (kaba kuvvet saldırısı tekniğiyle) zorlaştırmış olursunuz.

Ancak, dikkat edilmesi gereken önemli nokta, parola aşlama sadece veri kaynağınızın ele geçirilmesine karşı koruma sağlarken, uygulamanıza isteminiz dışında yerleştirilmiş zararlı kodlar aracılığıyla şifreleri ele geçirmede koruma sağlamaz.

MD5() ve SHA1() gibi genel aşlama işlevlerini parolalar için kullanmak neden uygun değildir?

MD5, SHA1 ve SHA256 gibi aşlama algoritmaları verimli ve çok hızlı olmaları için tasarlanmıştır. Modern teknikler ve bilgisayar ekipmanları ile, Kaba kuvvet (brute force) atak tekniği kullanarak özgün değere ulaşma sıradan bir hale gelmiştir.

Çünkü, modern bir bilgisayar, oldukça hızlı olarak bu aşlama tekniklerini tersine çevirir, çoğu güvenlik uzmanı da bunların parola aşlama da kullanımına karşı aleyhte tavsiye de bulunur.

Genel aşlama teknikleri kullanışlı olmadıklarına göre, parolalarımı nasıl aşlamalıyım?

Parolaları aşlamada, dikkate alınması gereken iki husus vardır; hesaplamanın maliyeti ve tuzlama. aşlama algoritmasında daha fazla hesaplama maliyeti demek kaba kuvvet ataklarının daha fazla zaman gerektirmesi demektir.

PHP, güvenli bir şekilde aşlama ve parola doğrulamayı birlikte güvenle sağlayan bir yerel parola aşlama APIsi sağlamaktadır. Ayrıca PHP 5.3.7 sürümünden itibaren kullanılabilen » saf bir PHP uyumluluk kütüphanesi de vardır.

Diğer bir seçenek çeşitli aşlama algoritmalarını destekleyen crypt() işlevidir. Bu işlevi kullanırken, PHP, desteklenen her bir algoritmayı kendi bünyesinde barındırdığı için, algoritmalardan bir veya bir kaçı sisteminizde bulunmasa da seçtiğiniz algoritmanın varlığını ve kullanımını garanti eder.

Parola aşlama de tavsiyemiz Blowfish algoritmasını kullanmanızdır, parola aşlama APIsi tarafından da öntanımlı olarak kullanılan bu algoritma MD5 veya SHA1 den daha fazla hesaplama gerektirmesine rağmen hala ölçeklenebilir durumdadır.

Bir parolayı doğrulamak için crypt() kullanıyorsanız, bir sabit zaman dizgesi karşılaştırması kullanarak zamanlama saldılarını engellemeyi düşünmeniz gerekir. Ne PHP'nin == ve === işleçleri ne de strcmp() işlevi sabit zaman dizgesi karşılaştırması yapar. password_verify() bunu sizin için yapacak gibi görünse de mümkün olduğunca yerel parola aşlama APIsini kullanmanızı şiddetle öneririz.

Tuzlama nedir?

Bir şifreleme tuzu, gökkuşağı tablosu olarak bilinen, daha önceden hesaplanarak oluşturulmuş aşlama listesinden karşılaştırma yaparak eşleştirme ihtimalini ortadan kaldırmak için, aşlama işlemi esnasında uygulanan bir değerdir.

Basit anlamda tuz, haşlanmış değerinizi kırma teşebbüslerini zorlaştırmada kullanılan ek bir veridir. İnternet üzerinde, daha önceden hesaplanmış kapsamlı aşlama değerlerinin yanı sıra özgün değerleri de barındıran bir dizi liste hizmeti vardır. Tuz kullanmak bu listelerden aşlama değerini bulmayı mantıksız veya imkansız kılar.

Bir tane sağlanmamışsa password_hash() rasgele bir tuz oluşturacaktır ve bu genelde en kolay ve en güvenilir yaklaşımdır.

Tuzlarımı nasıl saklarım?

password_hash() veya crypt() işlevini kullanırken, dönen değer üretilen aşlanmış parola olup tuzu da içerir. Parolaları doğrularken password_verify() veya crypt() işlevine doğrudan verilebilecek şekilde aşlama bilgisini içeren bu değer veritabanınızda hiç değiştirilmeden harfi harfine saklanmalıdır.

Aşağıdaki şekil, crypt() veya password_hash() işlevinden dönen değerin biçimini gösterir. Görebileceğiniz gibi, ileriki bir parola doğrulaması için gereken tuzu ve algoritma ile ilgili tüm bilgiyi içinde barındırmaktadır.

password_hash veya crypt işlevinden dönen değerin bileşenleri: sırasıyla, seçilen algoritma, algoritmanın seçenekleri, kullanılan tuz ve aşlanmış parola.

User Contributed Notes

tamas at microwizard dot com 22-Sep-2021 08:23
While I am reading the comments some old math lessons came into my mind and started thinking. Using constants in a mathematical algorythms do not change the complexity of the algorythm itself.

The reason of salting is to avoid using rainbow tables (sorry guys this is the only reason) because it speeds up (shortcuts) the "actual" processing power.
(((Longer stored hashes AND longer password increases complexity of cracking NOT adding salt ALONE.)))

PHP salting functions returns all the needed information for checking passwords, therfore this information should be treated as constant from farther point of view. It is also a target for rainbow tables (sure: for much-much larger ones).

What is the solution?
The solution is to store password hash and salt on different places.
The implementation is yours. Every two different places will be good enough.

Yes, it will make problems for hackers. He/she needs to understand your system. No speed up for password cracking will work for him/her without reimplementing your whole system.

This is my two cent.
swardx at gmail dot com 29-Jun-2016 09:36
A great read..

https://nakedsecurity.sophos.com/2013/11/20/serious-security-how-to-store-your-users-passwords-safely/

Serious Security: How to store your users' passwords safely

In summary, here is our minimum recommendation for safe storage of your users' passwords:

    Use a strong random number generator to create a salt of 16 bytes or longer.
    Feed the salt and the password into the PBKDF2 algorithm.
    Use HMAC-SHA-256 as the core hash inside PBKDF2.
    Perform 20,000 iterations or more. (June 2016.)
    Take 32 bytes (256 bits) of output from PBKDF2 as the final password hash.
    Store the iteration count, the salt and the final hash in your password database.
    Increase your iteration count regularly to keep up with faster cracking tools.

Whatever you do, don't try to knit your own password storage algorithm.
alf dot henrik at ascdevel dot com 12-Mar-2014 07:58
I feel like I should comment some of the clams being posted as replies here.

For starters, speed IS an issue with MD5 in particular and also SHA1. I've written my own MD5 bruteforce application just for the fun of it, and using only my CPU I can easily check a hash against about 200mill. hash per second. The main reason for this speed is that you for most attempts can bypass 19 out of 64 steps in the algorithm. For longer input (> 16 characters) it won't apply, but I'm sure there's some ways around it.

If you search online you'll see people claiming to be able to check against billions of hashes per second using GPUs. I wouldn't be surprised if it's possible to reach 100 billion per second on a single computer alone these days, and it's only going to get worse. It would require a watt monster with 4 dual high-end GPUs or something, but still possible.

Here's why 100 billion per second is an issue:
Assume most passwords contain a selection of 96 characters. A password with 8 characters would then have 96^8 = 7,21389578984e+15 combinations.
With 100 billion per second it would then take 7,21389578984e+15 / 3600 = ~20 hours to figure out what it actually says. Keep in mind that you'll need to add the numbers for 1-7 characters as well. 20 hours is not a lot if you want to target a single user.

So on essence:
There's a reason why newer hash algorithms are specifically designed not to be easily implemented on GPUs.

Oh, and I can see there's someone mentioning MD5 and rainbow tables. If you read the numbers here, I hope you realize how incredibly stupid and useless rainbow tables have become in terms of MD5. Unless the input to MD5 is really huge, you're just not going to be able to compete with GPUs here. By the time a storage media is able to produce far beyond 3TB/s, the CPUs and GPUs will have reached much higher speeds.

As for SHA1, my belief is that it's about a third slower than MD5. I can't verify this myself, but it seems to be the case judging the numbers presented for MD5 and SHA1. The issue with speeds is basically very much the same here as well.

The moral here:
Please do as told. Don't every use MD5 and SHA1 for hasing passwords ever again. We all know passwords aren't going to be that long for most people, and that's a major disadvantage. Adding long salts will help for sure, but unless you want to add some hundred bytes of salt, there's going to be fast bruteforce applications out there ready to reverse engineer your passwords or your users' passwords.


PHP ve HTML

PHP ve HTML etkileşir: PHP, HTML üretir; HTML, PHP'ye bilgi aktarır. Bu SSS'yi okumaya başlamadan önce değişkenlerin dış kaynaklardan nasıl elde edildiğini öğrenmiş olmanız önemlidir. Bu konu ile igili kılavuz sayfası ayrıca örnekler de içerir.

  1. Bir değeri bir form veya URL üzerinden aktarırken nasıl kodlamak gerekir?
  2. Bir <input type="image"> etiketi kullanmayı deniyorum, ama $foo.x ve $foo.y değişkenlerini bulamıyorum. $_GET['foo.x'] mevcut değil mi? Bunlar neredeler?
  3. Bir HTML <form>'unda dizileri nasıl oluşturabilirim?
  4. Çok HTML etiketli bir select etiketinden tüm sonuçları nasıl alırım?
  5. Bir değişkeni Javascript'ten PHP'ye nasıl aktarabilirim?
Bir değeri bir form veya URL üzerinden aktarırken nasıl kodlamak gerekir?

Hangi kodlamanın hangi aşamada kullanılacağı önemlidir. İçeriğini kodlamaksızın aktarmak istediğiniz string türünde $data diye bir değişkeniniz olduğunu varsayalım. Aşamalar şunlardır:

  • HTML yorumlaması. Rasgele bir dizgeyi belirtirken dizgeyi çift tırnak içine almanız ve değerin tamamına htmlspecialchars() uygulamanız gerekir.

  • URL: Bir URL çeşitli parçalardan oluşur. Verinizin tek bir öğe olarak yorumlanmasını isterseniz, veriyi urlencode() ile kodlamanız gerekir.

Örnek 1 - Gizli bir HTML form elemanı

<?php
echo '<input type="hidden" value="' . htmlspecialchars($data) . '" />'."\n";
?>

Bilginize: $data için urlencode() kullanmak yanlıştır, çünkü veriyi urlencode() türünde kodlamak tarayıcının sorumluluğundadır. Bunun yöntemden (yani GET veya POST) bağımsız oluşuna dikkat ediniz. Bunu sadece GET isteklerinde farkedersiniz, çünkü POST istekleri normalde gizlidir.

Örnek 2 - Kullanıcı tarafından düzenlenen veri

<?php
echo "<textarea name='mydata'>\n";
echo htmlspecialchars($data)."\n";
echo "</textarea>";
?>

Bilginize: Umulduğu gibi veri tarayıcıda gösterilir, çünkü HTML öncelemeli simgeleri tarayıcının yorumlaması gerekir. Verinin GET veya POST üzerinden gönderiminde veri aktarılırken tarayıcı tarafından kodlanır (urlencode) ve bu kodlama PHP tarafından çözülür (urldecode). Böylece, sizin kodlamayla ilgili birşeyler yapmanız gerekmez, herşey otomatik olarak gerçekleşir.

Örnek 3 - Bir URL içinde

<?php
echo '<a href="' . htmlspecialchars("/nextpage.php?stage=23&data=" .
urlencode($data)) . '">'."\n";
?>

Bilginize: Aslında bir HTML GET isteğini taklit ettiğinizden veriye urlencode() uygulamanız gerekmez.

Bilginize: URL, bir HTML özniteliğinin değeri olduğundan URL'nin tümüne htmlspecialchars() kodlaması uygulamanız gerekir. Bu durumda, tarayıcı değere htmlspecialchars() çözümlemesi uyguladıktan sonra URL olarak aktarır. PHP, URL'yi doğru olarak algılayacaktır, çünkü veriye urlencode() uygulamışsınızdır. URL'deki & yerine &amp; yazıldığını farkedeceksiniz. Çoğu tarayıcı bunu sizin yerinize yaptığından bunu yapmayı unutsanız da o kadar önemli değildir. Ancak, URL'niz dinamik olmasa bile, URL'ye htmlspecialchars() uygulamanız gerekir.

Bir <input type="image"> etiketi kullanmayı deniyorum, ama $foo.x ve $foo.y değişkenlerini bulamıyorum. $_GET['foo.x'] mevcut değil mi? Bunlar neredeler?

Bir formu göndermek için bir gönderi düğmesi yerine aşağıdaki gibi bir görüntü kullanmak da mümkündür:

<input type="image" src="dugme.gif" name="foo" />
Kullanıcı bu görüntünün herhangi bir yerine tıkladığında sunucuya formla birlikte ek olarak foo.x ve foo.y diye iki değişken aktarılır.

foo.x ve foo.y PHP'de geçersiz değişken isimleri olduklarından sihirli bir şekilde bunlar foo_x ve foo_y değişkenlerine dönüşürler. Yani, nokta imi yerine altçizgi imi yerleştirilir. Dolayısıyla, bu değişkenlere dış kaynaklı değişkenler bölümünde açıkladığı gibi erişebilirsiniz. Örnek: $_GET['foo_x'].

Bilginize:

İstekle aktarılan değişken isimlerindeki boşluklar da alçizgi imleri ile değiştirilir.

Bir HTML <form>'unda dizileri nasıl oluşturabilirim?

<form> sonucunu bir dizi olarak göndermek için PHP betğinizde <input>, <select> veya <textarea> elemanlarını şöyle isimlendirmeniz gerekir:

<input name="Dizim[]" />
<input name="Dizim[]" />
<input name="Dizim[]" />
<input name="Dizim[]" />
Değişken isimlerinden sonra gelen köşeli ayraçları farketmişsinizdir. Bunlar değişkeni bir dizi haline getirirler. Farklı elemanlara aynı dizi isimlerini atamak suretiyle elemanları farklı diziler içinde gruplayabilirsiniz:
<input name="Dizim[]" />
<input name="Dizim[]" />
<input name="ÖbürDizim[]" />
<input name="ÖbürDizim[]" />
Bu örnekte PHP betiğine gönderilmek üzere iki dizi üretilmektedir: Dizim ve ÖbürDizim. Dizilerinize ayrıca özel anahtarlar atamanız da mümkündür:
<input name="DiğerDizim[]" />
<input name="DiğerDizim[]" />
<input name="DiğerDizim[eposta]" />
<input name="DiğerDizim[telefon]" />
Burada, DiğerDizim dizisi 0, 1, eposta ve telefon anahtarlarını içerecektir.

Bilginize:

HTML'de dizi anahtarlarını belirtmek isteğe bağlıdır. Anahtar belirtmezseniz, dizi elemanları formda yer alış sırasına göre numaralanır. Örneğimizde anahtarlar 0, 1, 2 ve 3 olacaktır.

Ayrıca bakınız: Dizi İşlevleri ve Dış Kaynaklı Değişkenler .

Çok HTML etiketli bir select etiketinden tüm sonuçları nasıl alırım?

Bir HTML'deki çok seçenekli bir select oluşumu kullanıcıların bir listeden çok sayıda öğe seçebilmesini mümkün kılar. Seçilen öğeler form için atanmış bir eylemciye aktarılırlar. Burada sorun, hepsinin aynı değişken ismiyle aktarılmasıdır. Örnek:

<select name="var" multiple="yes">
Seçilen her seçenek eylemciye şöyle aktarılacaktır:
var=seçim1
var=seçim2
var=seçim3
Her seçenek bir önceki $var değişkeninin içeriğinin üzerine yazacaktır. Çözüm, değişken ismi olarak dizi kullanmaktır:
<select name="var[]" multiple="yes">
Bu satır PHP'ye $var değişkenini bir dizi olarak ele almasını ve her seçeneğin içeriği için bir dizi elemanı eklemesini söyler. İlk seçim $var[0], ikincisi $var[1], vs. olur. Kaç seçeneğin seçilmiş olduğunu count() işlevi ile öğrenebilir veya gerekirse sort() işleviyle seçenek dizisini sıraya sokabilirsiniz.

JavaScript kullanıyorsanız eleman ismindeki [] ayraçları, elemanlara isimleriyle başvururken sorun çıkarabilir. Ya eleman anahtarı yerine sayısal biçimi kullanın ya da değişken isimlerini tek tırnak içine alıp bunları dizi elemanlarını indislemekte kullanın. Örnek:

variable = document.forms[0].elements['var[]'];

Bir değişkeni Javascript'ten PHP'ye nasıl aktarabilirim?

Javascript'in (normal olarak) istemci taraflı, PHP'nin sunucu taraflı olması ve HTTP'nin de 'durumsuz' bir protokol olması nedeniyle iki dil değişkenleri doğrudan paylaşamazlar.

Bununla birlikte, ikisi arasında değişken alışverişi mümkündür. Bunu sağlamanın tek yolu Javascript kodunu PHP ile üretmek ve tarayıcıya tazeletip özel değişkenleri gerisin geriye PHP'ye aktarmaktır. Aşağıdaki örnekte bunun nasıl yapıldığı ayrıntılı olarak gösterilmiştir. Normalde sadece istemci tarafında mümkün olan ekran yüksekliği ve genişliğinin elde edilmesi PHP kodunda gerçeklenmektedir.

Örnek 4 - PHP ile Javascript üretimi

<?php
if (isset($_GET['width']) AND isset($_GET['height'])) {
// Boyut değişkenlerini çıktılayalım
echo "Ekran genişliği: ". $_GET['width'] ."<br />\n";
echo "Ekran yüksekliği: ". $_GET['height'] ."<br />\n";
} else {
// Boyut değişkenlerini aktaralım
// (özgün sorgu dizgesini koruyalım
// -- post değişkenleri farklı şekilde elde edilecek)

echo "<script language='javascript'>\n";
echo " location.href=\"{$_SERVER['SCRIPT_NAME']}?{$_SERVER['QUERY_STRING']}"
. "&width=\" + screen.width + \"&height=\" + screen.height;\n";
echo "</script>\n";
exit();
}
?>

User Contributed Notes

There are no user contributed notes for this page.


PHP ve COM

PHP, Win32 platformlarında COM ve DCOM nesnelere erişim için kullanılabilir.

  1. Bazı hesaplamalar için bir DLL derledim. Bu DLL'li PHP altında çalıştırmanın bir yolu var mı?
  2. 'Unsupported variant type: xxxx (0xxxxx)' iletisinin anlamı nedir?
  3. PHP'de görsel nesnelerle çalışmak mümkün müdür?
  4. Bir COM nesnesini bir oturumda saklayabilir miyim?
  5. COM hatalarını yakalayabilir miyim?
  6. Perl'de olduğu gibi PHP betiklerinden DLL dosyaları üretebilir miyim?
  7. 'Unable to obtain IDispatch interface for CLSID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}' iletisininin anlamı nedir?
  8. Bir COM nesnesini bir uzak sunucudan nasıl çalıştırabilirim?
  9. 'DCOM is disabled in C:\path...\scriptname.php on line 6' iletisini alıyorum. Ne yapabilirim?
  10. Bir ActiveX nesnesini PHP ile bir sayfaya yüklemek ve kullanmak mümkün müdür?
  11. Bir bileşenin çalışan bir örneğini almak mümkün müdür?
  12. COM nesnesinden gönderilen bir olayı işleme sokmanın bir yolu var mıdır?
  13. Birden fazla arayüz içeren bir COM nesnesinin bir yöntemini çağırmaya çalışırken sorunlarla karşılaşıyorum. Ne yapabilirim?
  14. PHP, COM ile çalıştığına göre COM+ ile de çalışır, değil mi?
  15. PHP, COM nesnelerle çalıştığına göre, özkaynakları yönetmek üzere MTS'yi PHP ile birlikte kullanmayı düşünebilir miyiz?
Bazı hesaplamalar için bir DLL derledim. Bu DLL'li PHP altında çalıştırmanın bir yolu var mı?

Bu basit bir DLL ise bunu PHP altında çalıştırmanın bir yolu yoktur. Eğer DLL bir COM sunucusu içeriyor ve IDispatch arayüzünü gerçekliyorsa bu DLL'e erişebilirsiniz.

'Unsupported variant type: xxxx (0xxxxx)' iletisinin anlamı nedir?

Düzinelerce VARIANT türü ve bunların birleşimleri vardır. Bunların çoğu desteklenmekteyse de bir kısmı halen gerçeklenme aşamasındadır. Diziler tamamen desteklenmemektedir. PHP ve COM arasında sadece tek boyutlu diziler aktarılabilmektedir. Lütfen bunu bir hata olarak raporlayın (hala raporlanmamışsa) ve bunu yaparken mümkün olduğunca fazla bilgi verin.

PHP'de görsel nesnelerle çalışmak mümkün müdür?

Genelde mümkündür, fakat PHP'deki gibi çoğunlukla HTTP sunucusu bağlamında işlem yapan bir betik dili olarak kullanılırlar. Bu bakımdan görsel nesneler hiçbir zaman sunucunun masaüstünde görünmezler. PHP'yi uygulama yazmak için kullanacaksanız (PHP-GTK örneğinde olduğu gibi), görsel nesnelerle COM üzerinden çalışmak için herhangi bir sınırlama yoktur.

Bir COM nesnesini bir oturumda saklayabilir miyim?

Hayır, saklayamazsınız. COM nesne örnekleri birer özkaynak olarak ele alınır. Bu bakımdan sadece tek betiklik bir bağlamda kullanılabilirler.

COM hatalarını yakalayabilir miyim?

COM eklentisi sizin de yakalayabileceğiniz com_exception istisnalarını yakalar. Bundan sonra ne yapılacağını belirlemek için code üyesini inceleyebilirsiniz.

COM hatalarını PHP tarafından sağlanan yollarla (@, track_errors, ...) yakalamak mümkün değildir.

Perl'de olduğu gibi PHP betiklerinden DLL dosyaları üretebilir miyim?

Hayır, maalesef PHP'de böyle bir araç yoktur.

'Unable to obtain IDispatch interface for CLSID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}' iletisininin anlamı nedir?

Bu hata pek çok sebepten ortaya çıkabilir:

  • CLSID yanlıştır.
  • İstenen DLL yoktur.
  • İstenen bileşen IDispatch arayüzünü gerçeklemiyordur.

Bir COM nesnesini bir uzak sunucudan nasıl çalıştırabilirim?

Tıpkı bir yerel nesne gibi çalıştırabilirsiniz. Tek yapacağınız, COM kurucusuna ikinci bağımsız değişken olarak uzak makinenin IP adresini aktarmaktır.

php.ini dosyanızda com.allow_dcom =true atamasını yapmış olmalısınız.

'DCOM is disabled in C:\path...\scriptname.php on line 6' iletisini alıyorum. Ne yapabilirim?

php.ini dosyanızı düzenlemek için açıp com.allow_dcom =true atamasını yapın.

Bir ActiveX nesnesini PHP ile bir sayfaya yüklemek ve kullanmak mümkün müdür?

Bunun için PHP ile bir şey yapılamaz. HTML belge tarafından istendikleri takdirde ActiveX nesneler istemci tarafında yüklenirler. PHP betiğiyle bir ilgileri olmadığından sunucu taraflı doğrudan etkileşim mümkün değildir.

Bir bileşenin çalışan bir örneğini almak mümkün müdür?

Bu, takma adların yardımı ile mümkündür. Aynı yazı örneği için çok sayıda başvuru edinmek için örneği şöyle oluşturabilirsiniz:I

<?php
$yazı = new COM("C:\docs\yazı.doc");
?>

Çalışan bir örnek olmadığı takdirde bu yeni bir örnek oluşturur, aksi takdirde çalışan örnek için bir başvuru döndürür.

COM nesnesinden gönderilen bir olayı işleme sokmanın bir yolu var mıdır?

Bir olay alıcıyı tanımlayabilir ve bunu com_event_sink() kullanarak bağlayabilirsiniz. PHP'nin olay alıcı sınıfının bir iskeletini üretmesi için com_print_typeinfo() işlevini kullanabilirsiniz.

Birden fazla arayüz içeren bir COM nesnesinin bir yöntemini çağırmaya çalışırken sorunlarla karşılaşıyorum. Ne yapabilirim?

Yanıt pek tatmin edici değil biliyorum. Aslında tam olarak ne yapılacağını bilmiyorum ama yapılabilecek bir şeyler olmalı. Bu konuda bilgisi olar biri varsa lütfen » bana bildirsin. :)

PHP, COM ile çalıştığına göre COM+ ile de çalışır, değil mi?

COM+, COM'un bileşenlerini MTS ve MSMQ üzerinden yönetmek için bir arayüz ile genişletir. PHP'nin bu tarz nesneleri desteklemesi için yapacağı özel bir şey yoktur.

PHP, COM nesnelerle çalıştığına göre, özkaynakları yönetmek üzere MTS'yi PHP ile birlikte kullanmayı düşünebilir miyiz?

PHP henüz MTS hareketlerini işleme sokamamaktadır. Bu bakımdan, bir hata oluşursa hareketi başa sarmak mümkün değildir. MTS hareketlerini destekleyen bileşenleri kullanmak niyetindeyseniz hareket yönetimini kendiniz gerçeklemek zorundasınız.

User Contributed Notes

codeslinger at compsalot dot com 27-Jan-2007 05:18
in response to item #1 above:  "If this is a simple DLL there is no way yet to run it from PHP."

Answer: There are several different packages/add-ons to php that enable low level access to the windows api. One of the most popular of these packages is available at http://www.winbinder.org

Winbinder does have the ability to load a dll and call it's functions.  Winbinder also provides a large set of windows apis for creating windows and controls.  This is useful for creating stand-alone desktop apps.  It is a possible alternative to php-gtk.

I've had mixed results with Winbinder, some things work very well, others are buggy; source code is available.  It's worth a look, Evaluate carefully.
17-Jul-2005 04:56
Re: The Windows English CHM Sample with MS Word Automation.

I see that $Word->Release() is called after $Word->Quit().
This seems to be erroneous. Actually, $Word->Release() should not have to be called if proper COM garbage collection is taking place. Release() is a C++ construction not used in either Visual Basic or VBScript or even MS-JScript. Just to be sure, however, I ran the sample through php.exe (5.04 CLI on Windows XP SP1 with Office 2003) and got a RPC failed error on the line containing $Word->Release(). The rest of the sample works fine, and the results are as expected. So, I propose 2 scenarios:
      1.There is a problem with the documentation (more likely).
      2.There is a problem with PHP504 itself, as this problem is reproduced with any COM Automation call, not just Word.
junk.ghost@virgin dOtt net 05-Oct-2004 09:27
It may be obvious to everyone else but...

If you want to write your own COM DLL in MSVC++6 and you want to pass it a string, you need the following in your .idl file:

HRESULT function_name([in] BSTR parameter_name,
                      [retval, out] BSTR * retval);

retval is the result of your function as a string to be passed back.

BSTR is an unsigned short *, so if you want to use your string with STL string etc. you may need to convert parameters to and from char *.

The burden of my message is that from PHP

$comThing = new COM("comThing.comThing");
print $comThing->function_name("Jeremy");

Jeremy will be marshalled as wide chars, which match BSTR.


Çeşitli Sorular

Burada, belli bir sınıfa dahil edilemeyen sorulara yer verilmiştir.

  1. .bz2 uzantılı kılavuzları Windows üzerinde nasıl açabilirim?
.bz2 uzantılı kılavuzları Windows üzerinde nasıl açabilirim?

bz2 dosyalarla çalışabilen bir arşivleme aracına sahip değilseniz komut satırı araçlarını » indirebilirsiniz (ayrıntılar için aşağıya bakınız).

Bir komut satırı aracı kullanmak istemezseniz, » Stuffit Expander, » UltimateZip, » 7-Zip, » Quick Zip gibi özgür araçları deneyebilirsiniz. » WinRAR veya » Power Archiver gibi araçlara sahipseniz onlar da bz2 dosyaları açabilmektedir. Total Commander (eskisi: Windows Commander) kullanıyorsanız, bz2 eklentisini » Total Commander sitesinden ücretsiz edinebilirsiniz.

Red Hat'in bzip2 komut satırı aracı:

Win2k Sp2 kullanıcıları için en son sürüm 1.0.2, tüm diğer Windows kullanıcıları için 1.00'dır. İndirdikten sonra çalıştırılabilirin ismini bzip2.exe yapın ve C harfi Windows'un kurulu olduğu sürücüyü belirtmek üzere C:\Windows dizinine koyun.

php_manual_dil.x.bz2 (dil: sizin diliniz, x: istenen biçim, chm gibi) arşiv dosyasının sıkıştırmasını açmak için şu talimatları izleyin:

  • Bir komut istemi penceresi açın.
  • İndirdiğiniz php_manual_dil.x.bz2 dosyasının bulunduğu dizine geçin.
  • php_manual_dil.x.bz2 arşiv dosyasının içeriğini genişletmek için şu komutu verin: bzip2 -d php_manual_dil.x.bz2

İndirdiğiniz php_manual_dil.x.bz2 dosyasının çok sayıda HTML sayfası içermesi durumunda bu işlem sonucunda php_manual_dil.tar adında bir dosya elde edeceksiniz. Tar biçemi » WinZip gibi pek çok Windows arşivleme aracı tarafından bilinmektedir.

User Contributed Notes

There are no user contributed notes for this page.


Ekler

  • History of PHP and Related Projects
    • History of PHP
    • History of PHP related projects
    • Books about PHP
    • Publications about PHP
  • Migrating from PHP 8.2.x to PHP 8.3.x
    • New Features
    • New Classes and Interfaces
    • New Functions
    • New Global Constants
    • Backward Incompatible Changes
    • Deprecated Features
    • Other Changes
    • Windows Support
  • Migrating from PHP 8.1.x to PHP 8.2.x
    • New Features
    • New Functions
    • New Global Constants
    • Backward Incompatible Changes
    • Deprecated Features
    • Other Changes
    • Windows Support
  • Migrating from PHP 8.0.x to PHP 8.1.x
    • New Features
    • New Classes and Interfaces
    • New Functions
    • New Global Constants
    • Backward Incompatible Changes
    • Deprecated Features
    • Other Changes
  • Migrating from PHP 7.4.x to PHP 8.0.x
    • New Features
    • Backward Incompatible Changes
    • Deprecated Features
    • Other Changes
  • Migrating from PHP 7.3.x to PHP 7.4.x
    • New Features
    • New Classes and Interfaces
    • New Functions
    • New Global Constants
    • Backward Incompatible Changes
    • Deprecated Features
    • Removed Extensions
    • Other Changes
    • Windows Support
  • Migrating from PHP 7.2.x to PHP 7.3.x
    • New Features
    • New Functions
    • New Global Constants
    • Backward Incompatible Changes
    • Deprecated Features
    • Other Changes
    • Windows Support
  • Migrating from PHP 7.1.x to PHP 7.2.x
    • New features
    • New functions
    • New global constants
    • Backward incompatible changes
    • Deprecated features in PHP 7.2.x
    • Other changes
  • Migrating from PHP 7.0.x to PHP 7.1.x
    • New features
    • New functions
    • New global constants
    • Backward incompatible changes
    • Deprecated features in PHP 7.1.x
    • Changed functions
    • Other changes
    • Windows Support
  • Migrating from PHP 5.6.x to PHP 7.0.x
    • Backward incompatible changes
    • New features
    • Deprecated features in PHP 7.0.x
    • Changed functions
    • New functions
    • New Classes and Interfaces
    • New Global Constants
    • Changes in SAPI Modules
    • Removed Extensions and SAPIs
    • Other Changes
  • Migrating from PHP 5.5.x to PHP 5.6.x
    • Backward incompatible changes
    • New features
    • Deprecated features in PHP 5.6.x
    • Changed functions
    • New functions
    • OpenSSL changes in PHP 5.6.x
    • Other changes to extensions
    • New global constants
  • PHP'de Hata Ayıklama
    • PHP'de hata ayıklama hakkında
  • Yapılandırma Seçenekleri
    • Temel yapılandırma seçeneklerinin listesi
  • php.ini Yönergeleri
    • php.ini yönergelerinin listesi
    • php.ini bölümlerinin listesi
    • Temel php.ini yönergelerinin tanımları
  • Eklenti Grupları/Listesi
    • Abecesel
    • Üyeler
    • Durumu Belirsizler
  • İşlev Takma Adlarının Listesi
  • Yerleşik Sözcüklerin Listesi
    • Anahtar Sözcüklerin Listesi
    • Öntanımlı Sınıflar
    • Yerleşik Sabitler
    • Diğer yerleşik sözcüklerin listesi
  • Özkaynak Türlerinin Listesi
  • Kullanılabilir Süzgeçlerin Listesi
    • Dizge Süzgeçleri
    • Dönüşüm Süzgeçleri
    • Sıkıştırma Süzgeçleri
    • Şifreleme Süzgeçleri
  • Desteklenen Soket Aktarımlarının Listesi
    • Genel Ağ Alanı: TCP, UDP, SSL ve TLS
    • Unix Alanı: Unix ve UDG
  • PHP Tür Karşılaştırma Tabloları
  • Çözümleyici Dizgeciklerinin Listesi
  • Kullanıcı Alanı İsimlendirme Kılavuzu
    • Küresel İsim alanı
    • Kurallar
    • İpuçları
  • About the manual
    • Formats
    • About user notes
    • How to read a function definition (prototype)
    • PHP versions documented in this manual
    • How to find more information about PHP
    • How to help improve the documentation
    • How we generate the formats
    • Translations
  • Creative Commons Attribution 3.0
  • Genel Dizin
    • İşlevler ve Yöntemler Dizini
    • Örnekler Dizini
  • Sürüm Bilgisi

User Contributed Notes

There are no user contributed notes for this page.


History of PHP and Related Projects

İçindekiler

  • History of PHP
  • History of PHP related projects
  • Books about PHP
  • Publications about PHP

PHP has come a long way since its birth in the mid-1990's. From humble beginnings to becoming one of the most prominent languages powering the web, the evolution of PHP is a geek's fairy tale. Mind you, such explosive growth was no easy task. Those of you interested in briefly seeing how PHP grew to become what it is today, read on. If you'd like to touch a piece of Internet history, you can find old releases of PHP in the » PHP Museum.

User Contributed Notes

okhalelawrence at gmail dot com 07-Aug-2021 06:12
The Birth of PHP 6;

After Version 5: PHP received mixed reviews due to lacking native Unicode support at the core language level. In 2005, a project headed by Andrei Zmievski was initiated to bring native Unicode support throughout PHP, by embedding the International Components for Unicode (ICU) library, and representing text strings as UTF-16 internally. Since this would cause major changes both to the internals of the language and to user code, it was planned to release this as version 6.0 of the language, along with other major features then in development.

The Birth of PHP 7;

During 2014 and 2015, a new major PHP version was developed, PHP 7. The numbering of this version involved some debate among internal developers.While the PHP 6 Unicode experiment had never been released, several articles and book titles referenced the PHP 6 name, which might have caused confusion if a new release were to reuse the name. After a vote, the name PHP 7 was chosen.

The foundation of PHP 7 is a PHP branch that was originally dubbed PHP next generation (phpng). It was authored by Dmitry Stogov, Xinchen Hui and Nikita Popov, and aimed to optimize PHP performance by refactoring the Zend Engine while retaining near-complete language compatibility. By 14 July 2014, WordPress-based benchmarks, which served as the main benchmark suite for the phpng project, showed an almost 100% increase in performance. Changes from phpng make it easier to improve performance in future versions, as more compact data structures and other changes are seen as better suited for a successful migration to a just-in-time (JIT) compiler. Because of the significant changes, the reworked Zend Engine was called Zend Engine 3, succeeding Zend Engine 2 used in PHP 5.

Because of the major internal changes in phpng, it must receive a new major version number of PHP, rather than a minor PHP 5 release, according to PHP's release process. Major versions of PHP are allowed to break backward-compatibility of code and therefore PHP 7 presented an opportunity for other improvements beyond phpng that require backward-compatibility breaks.

The Birth of PHP 8;

PHP 8 was released on November 26, 2020. PHP 8 is a major version and has breaking changes from previous versions.New features and notable changes include:
Just-in-time compilation
Just-in-time compilation is supported in PHP 8.
PHP 8's JIT compiler can provide substantial performance improvements for some use cases.PHP developer Nikita Popov has stated that the performance improvements for most websites will be less substantial than the upgrade from PHP 5 to PHP 7.Performance improvements due to the addition of the JIT compiler are expected to be more substantial for mathematical-type operations than for common web-development use cases.Additionally, the JIT compiler provides future potential to move some code from C to PHP, due to the performance improvements for some use cases.
Addition of the match expression
Main article: PHP syntax and semantics § Match
PHP 8 introduced the match expression.The match expression is conceptually similar to a switch statement and is more compact for some use cases.Because match is an expression, its result can be caught into a variable or returned from a function.
Type changes and additions
PHP 8 introduced union types, a new static return type, and a new mixed type.
"Attributes", often referred to as "annotations" in other programming languages, were added in PHP 8, which allow metadata to be added to classes.
throw was changed from being a statement to being an expression. This allows exceptions to be thrown in places that were not previously possible. Sorce: wikipedia


History of PHP

PHP Tools, FI, Construction Kit, and PHP/FI

PHP as it's known today is actually the successor to a product named PHP/FI. Created in 1994 by Rasmus Lerdorf, the very first incarnation of PHP was a simple set of Common Gateway Interface (CGI) binaries written in the C programming language. Originally used for tracking visits to his online resume, he named the suite of scripts "Personal Home Page Tools," more frequently referenced as "PHP Tools." Over time, more functionality was desired, and Rasmus rewrote PHP Tools, producing a much larger and richer implementation. This new model was capable of database interaction and more, providing a framework upon which users could develop simple dynamic web applications such as guestbooks. In June of 1995, Rasmus » released the source code for PHP Tools to the public, which allowed developers to use it as they saw fit. This also permitted - and encouraged - users to provide fixes for bugs in the code, and to generally improve upon it.

In September of that year, Rasmus expanded upon PHP and - for a short time - actually dropped the PHP name. Now referring to the tools as FI (short for "Forms Interpreter"), the new implementation included some of the basic functionality of PHP as we know it today. It had Perl-like variables, automatic interpretation of form variables, and HTML embedded syntax. The syntax itself was similar to that of Perl, albeit much more limited, simple, and somewhat inconsistent. In fact, to embed the code into an HTML file, developers had to use HTML comments. Though this method was not entirely well-received, FI continued to enjoy growth and acceptance as a CGI tool --- but still not quite as a language. However, this began to change the following month; in October, 1995, Rasmus released a complete rewrite of the code. Bringing back the PHP name, it was now (briefly) named "Personal Home Page Construction Kit," and was the first release to boast what was, at the time, considered an advanced scripting interface. The language was deliberately designed to resemble C in structure, making it an easy adoption for developers familiar with C, Perl, and similar languages. Having been thus far limited to UNIX and POSIX-compliant systems, the potential for a Windows NT implementation was being explored.

The code got another complete makeover, and in April of 1996, combining the names of past releases, Rasmus introduced PHP/FI. This second-generation implementation began to truly evolve PHP from a suite of tools into a programming language in its own right. It included built-in support for DBM, mSQL, and Postgres95 databases, cookies, user-defined function support, and much more. That June, PHP/FI was given a version 2.0 status. An interesting fact about this, however, is that there was only one single full version of PHP 2.0. When it finally graduated from beta status in November, 1997, the underlying parsing engine was already being entirely rewritten.

Though it lived a short development life, it continued to enjoy a growing popularity in still-young world of web development. In 1997 and 1998, PHP/FI had a cult of several thousand users around the world. A Netcraft survey as of May, 1998, indicated that nearly 60,000 domains reported having headers containing "PHP", indicating that the host server did indeed have it installed. This number equated to approximately 1% of all domains on the Internet at the time. Despite these impressive figures, the maturation of PHP/FI was doomed to limitations; while there were several minor contributors, it was still primarily developed by an individual.

Örnek 1 Example PHP/FI Code

<!--include /text/header.html-->

<!--getenv HTTP_USER_AGENT-->
<!--ifsubstr $exec_result Mozilla-->
  Hey, you are using Netscape!<p>
<!--endif-->

<!--sql database select * from table where user='$username'-->
<!--ifless $numentries 1-->
  Sorry, that record does not exist<p>
<!--endif exit-->
  Welcome <!--$user-->!<p>
  You have <!--$index:0--> credits left in your account.<p>

<!--include /text/footer.html-->

PHP 3

PHP 3.0 was the first version that closely resembles PHP as it exists today. Finding PHP/FI 2.0 still inefficient and lacking features they needed to power an eCommerce application they were developing for a university project, Andi Gutmans and Zeev Suraski of Tel Aviv, Israel, began yet another complete rewrite of the underlying parser in 1997. Approaching Rasmus online, they discussed various aspects of the current implementation and their redevelopment of PHP. In an effort to improve the engine and start building upon PHP/FI's existing user base, Andi, Rasmus, and Zeev decided to collaborate in the development of a new, independent programming language. This entirely new language was released under a new name, that removed the implication of limited personal use that the PHP/FI 2.0 name held. It was renamed simply 'PHP', with the meaning becoming a recursive acronym - PHP: Hypertext Preprocessor.

One of the biggest strengths of PHP 3.0 was its strong extensibility features. In addition to providing end users with a mature interface for multiple databases, protocols, and APIs, the ease of extending the language itself attracted dozens of developers who submitted a variety of modules. Arguably, this was the key to PHP 3.0's tremendous success. Other key features introduced in PHP 3.0 included object-oriented programming support and a far more powerful and consistent language syntax.

In June, 1998, with many new developers from around the world joining the effort, PHP 3.0 was announced by the new PHP Development Team as the official successor to PHP/FI 2.0. Active development of PHP/FI 2.0, which had all-but ceased as of November of the previous year, was now officially ended. After roughly nine months of open public testing, when the announcement of the official release of PHP 3.0 came, it was already installed on over 70,000 domains around the world, and was no longer limited to POSIX-compliant operating systems. A relatively small share of the domains reporting PHP as installed were hosted on servers running Windows 95, 98, and NT, and Macintosh. At its peak, PHP 3.0 was installed on approximately 10% of the web servers on the Internet.

PHP 4

By the winter of 1998, shortly after PHP 3.0 was officially released, Andi Gutmans and Zeev Suraski had begun working on a rewrite of PHP's core. The design goals were to improve performance of complex applications, and improve the modularity of PHP's code base. Such applications were made possible by PHP 3.0's new features and support for a wide variety of third party databases and APIs, but PHP 3.0 was not designed to handle such complex applications efficiently.

The new engine, dubbed 'Zend Engine' (comprised of their first names, Zeev and Andi), met these design goals successfully, and was first introduced in mid 1999. PHP 4.0, based on this engine, and coupled with a wide range of additional new features, was officially released in May 2000, almost two years after its predecessor. In addition to the highly improved performance of this version, PHP 4.0 included other key features such as support for many more web servers, HTTP sessions, output buffering, more secure ways of handling user input and several new language constructs.

PHP 5

PHP 5 was released in July 2004 after long development and several pre-releases. It is mainly driven by its core, the Zend Engine 2.0 with a new object model and dozens of other new features.

PHP's development team includes dozens of developers, as well as dozens others working on PHP-related and supporting projects, such as PEAR, PECL, and documentation, and an underlying network infrastructure of well over one-hundred individual web servers on six of the seven continents of the world. Though only an estimate based upon statistics from previous years, it is safe to presume PHP is now installed on tens or even perhaps hundreds of millions of domains around the world.

PHP 6

The plan for PHP 6 was to feature deep support for Unicode in the engine and language. This work was later abandoned, but other features that had been targeted for PHP 6 were instead incorporated into PHP 5.3 (namespaces) and PHP 5.4 (trait, "short" array syntax).

PHP 7

PHP 7.0 was released in 2015, and featured another major version of the core, Zend Engine 3.0, which included significant performance improvements (up to twice as fast as PHP 5.6) and memory usage, consistent 64-bit support, improvements to exceptions, a secure random number generator, the null coalescing operator (??), anonymous classes, and other features.

Later releases of the PHP 7 series introduced more language features such as the short list syntax (7.1), object parameter and return type declaration (7.2), a new flexible heredoc and nowdoc syntax (7.3), typed properties (7.4), and a new foreign function interface (7.4).

PHP 8

First released in 2020, PHP 8.0 was another major update of the PHP language. It contained many new features and optimizations including named arguments, union types, attributes, constructor property promotion, match expressions, the nullsafe operator (?->), a new optimizing JIT compiler, and improvements in the type system, error handling, and consistency.

Later releases of the PHP 8 series introduced new language features including enumerations (8.1), fibers (8.1), readonly classes (8.2), Disjunctive Normal Form (DNF) Types (8.2), and typed class constants (8.3).

User Contributed Notes

There are no user contributed notes for this page.


History of PHP related projects

PEAR

» PEAR, the PHP Extension and Application Repository (originally, PHP Extension and Add-on Repository) is PHP's version of foundation classes, and may grow in the future to be one of the key ways to distribute PHP extensions among developers.

PEAR was born in discussions held in the PHP Developers' Meeting (PDM) held in January 2000 in Tel Aviv. It was created by Stig S. Bakken, and is dedicated to his first-born daughter, Malin Bakken.

Since early 2000, PEAR has grown to be a big, significant project with a large number of developers working on implementing common, reusable functionality for the benefit of the entire PHP community. PEAR today includes a wide variety of infrastructure foundation classes for database access, content caching, mathematical calculations, eCommerce and much more.

More information about PEAR can be found in » the manual.

PHP Quality Assurance Initiative

The » PHP Quality Assurance Initiative was set up in the summer of 2000 in response to criticism that PHP releases were not being tested well enough for production environments. The team now consists of a core group of developers with a good understanding of the PHP code base. These developers spend a lot of their time localizing and fixing bugs within PHP. In addition there are many other team members who test and provide feedback on these fixes using a wide variety of platforms.

PHP-GTK

» PHP-GTK is the PHP solution for writing client side GUI applications. Andrei Zmievski remembers the planing and creation process of PHP-GTK:

GUI programming has always been of my interests, and I found that Gtk+ is a very nice toolkit, except that programming with it in C is somewhat tedious. After witnessing PyGtk and GTK-Perl implementations, I decided to see if PHP could be made to interface with Gtk+, even minimally. Starting in August of 2000, I began to have a bit more free time so that is when I started experimenting. My main guideline was the PyGtk implementation as it was fairly feature complete and had a nice object-oriented interface. James Henstridge, the author of PyGtk, provided very helpful advice during those initial stages.

Hand-writing the interfaces to all the Gtk+ functions was out of the question, so I seized upon the idea of code-generator, similar to how PyGtk did it. The code generator is a PHP program that reads a set of .defs file containing the Gtk+ classes, constants, and methods information and generates C code that interfaces PHP with them. What cannot be generated automatically can be written by hand in .overrides file.

Working on the code generator and the infrastructure took some time, because I could spend little time on PHP-GTK during the fall of 2000. After I showed PHP-GTK to Frank Kromann, he got interested and started helping me out with code generator work and Win32 implementation. When we wrote the first Hello World program and fired it up, it was extremely exciting. It took a couple more months to get the project to a presentable condition and the initial version was released on March 1, 2001. The story promptly hit SlashDot.

Sensing that PHP-GTK might be extensive, I set up separate mailing lists and CVS repositories for it, as well as the gtk.php.net website with the help of Colin Viebrock. The documentation would also need to be done and James Moore came in to help with that.

Since its release PHP-GTK has been gaining popularity. We have our own documentation team, the manual keeps improving, people start writing extensions for PHP-GTK, and more and more exciting applications with it.

User Contributed Notes

There are no user contributed notes for this page.


Books about PHP

As PHP grew, it began to be recognized as a world-wide popular development platform. One of the most interesting ways of seeing this trend was by observing the books about PHP that came out throughout the years.

To the best of our knowledge, the first book dedicated to PHP was 'PHP - tvorba interaktivních internetovych aplikací' (PHP - Creating Interactive Internet Applications) - a Czech book published in April 1999, authored by Jirka Kosek. Next month followed a German book authored by Egon Schmid, Christian Cartus and Richard Blume. The first book in English about PHP was published shortly afterwards, and was 'Core PHP Programming' by Leon Atkinson. These books covered PHP 3.0.

While these books were the first of their kind - they were followed by a large number of books from a host of authors and publishers. There are over 400 books in English, over 100 books in German, and over 50 books in French or Spanish! In addition, you can find books about PHP in many other languages, including Korean, Japanese and Hebrew.

Clearly, this large number of books, written by different authors, published by many publishers, and their availability in so many languages - are a strong testimony for PHP's world-wide success.

User Contributed Notes

There are no user contributed notes for this page.


Publications about PHP

To the best of our knowledge, the first article about PHP in a hard-copy magazine was published in the Czech mutation of Computerworld in the spring of 1998, and covered PHP 3.0. As with books, this was the first in a series of many articles published about PHP in various prominent magazines.

Articles about PHP appeared in Dr. Dobbs, Linux Enterprise, Linux Magazine and many more. Articles about migrating ASP-based applications to PHP under Windows even appear on Microsoft's very own MSDN!

User Contributed Notes

There are no user contributed notes for this page.


Migrating from PHP 8.2.x to PHP 8.3.x

İçindekiler

  • New Features
  • New Classes and Interfaces
  • New Functions
  • New Global Constants
  • Backward Incompatible Changes
  • Deprecated Features
  • Other Changes
  • Windows Support

This new minor version brings with it a number of new features and a few incompatibilities that should be tested for before switching PHP versions in production environments.

Ayrıca, şu PHP sürümleri arasında geçiş kılavuzlarına da bakınız: 7.1.x, 7.2.x, 7.3.x, 7.4.x, 8.0.x, 8.1.x, 8.2.x.

User Contributed Notes

There are no user contributed notes for this page.


New Features

PHP Core

Readonly Amendments

Anonymous classes may now be marked as readonly.

Readonly properties can now be reinitialized during cloning.

Typed Class Constants

Class, interface, trait, and enum constants now support type declarations.

Closures created from magic methods

Closures created from magic methods can now accept named arguments.

The final modifier with a method from a trait

The final modifier may now be used when using a method from a trait.

Override Attribute

Added the #[\Override] attribute to check that a method exists in a parent class or implemented interface.

Fetch class constant dynamically syntax

Class constants can now be accessed dynamically using the C::{$name} syntax.

Static variable Initializers

Static variable initializers can now contain arbitrary expressions.

Fallback value syntax for ini variables

php.ini now supports fallback/default value syntax.

<?php
/*
On /path/to/user.ini contains the following settings:

listen = localhost:${DRUPAL_FPM_PORT:-9000}
*/

$user_ini = parse_ini_file('/path/to/user.ini');
echo $user_ini['listen']; // localhost:9000

CLI

It is now possible to lint multiple files.

DOM

Added properties DOMElement::$className and DOMElement::$id. These are not binary-safe at the moment because of underlying limitations of libxml2. This means that the property values will be cut off at a NUL byte.

Added properties DOMNode::$isConnected and DOMNameSpaceNode::$isConnected.

Added properties DOMNode::$parentElement and DOMNameSpaceNode::$parentElement.

FFI

It is now possible to assign FFI\CData to other FFI\CData. Meaning CData can now be assigned to structs and fields.

Opcache

opcache_get_status()['scripts'][n]['revalidate'] now contains a Unix timestamp of when the next revalidation of the scripts timestamp is due, dictated by the opcache.revalidate_freq INI directive.

POSIX

posix_getrlimit() now takes an optional $resource parameter to allow fetching a single resource limit.

posix_isatty() now raises type warnings for integers following the usual ZPP semantics.

posix_ttyname() now raises type warnings for integers following the usual ZPP semantics and value warnings for invalid file descriptor integers.

Streams

Streams can now emit the STREAM_NOTIFY_COMPLETED notification. This was previously not implemented.

User Contributed Notes

There are no user contributed notes for this page.


New Classes and Interfaces

Date

  • DateError
  • DateObjectError
  • DateRangeError
  • DateException
  • DateInvalidOperationException
  • DateInvalidTimeZoneException
  • DateMalformedIntervalStringException
  • DateMalformedPeriodStringException
  • DateMalformedStringException

Random

  • Random\IntervalBoundary

User Contributed Notes

There are no user contributed notes for this page.


New Functions

Date

  • DatePeriod::createFromISO8601String()

DOM

  • DOMElement::getAttributeNames()
  • DOMElement::insertAdjacentElement()
  • DOMElement::insertAdjacentText()
  • DOMElement::toggleAttribute()
  • DOMNode::contains()
  • DOMNode::getRootNode()
  • DOMNode::isEqualNode()
  • DOMNameSpaceNode::contains()
  • DOMParentNode::replaceChildren()

Intl

  • IntlCalendar::setDate()
  • IntlCalendar::setDateTime()
  • IntlGregorianCalendar::createFromDate()
  • IntlGregorianCalendar::createFromDateTime()

JSON

  • json_validate()

LDAP

  • ldap_connect_wallet()
  • ldap_exop_sync()

MBString

  • mb_str_pad()

Posix

  • posix_sysconf()
  • posix_pathconf()
  • posix_fpathconf()
  • posix_eaccess()

PostgreSQL

  • pg_set_error_context_visibility() (libpq >= 9.6)

Random

  • Random\Randomizer::getBytesFromString()
  • Random\Randomizer::nextFloat()
  • Random\Randomizer::getFloat()

Reflection

  • ReflectionMethod::createFromMethodName()

Sockets

  • socket_atmark()

Standard

  • str_increment()
  • str_decrement()
  • stream_context_set_options()

Zip

  • ZipArchive::getArchiveFlag()

User Contributed Notes

There are no user contributed notes for this page.


New Global Constants

cURL

  • CURLINFO_CAPATH (libcurl >= 7.84.0)
  • CURLINFO_CAINFO (libcurl >= 7.84.0)
  • CURLOPT_MIME_OPTIONS (libcurl >= 7.81.0)
  • CURLMIMEOPT_FORMESCAPE (libcurl >= 7.81.0)
  • CURLOPT_WS_OPTIONS (libcurl >= 7.86.0)
  • CURLWS_RAW_MODE (libcurl >= 7.86.0)
  • CURLOPT_SSH_HOSTKEYFUNCTION (libcurl >= 7.84.0)
  • CURLOPT_PROTOCOLS_STR (libcurl >= 7.85.0)
  • CURLOPT_REDIR_PROTOCOLS_STR (libcurl >= 7.85.0)
  • CURLOPT_CA_CACHE_TIMEOUT (libcurl >= 7.87.0)
  • CURLOPT_QUICK_EXIT (libcurl >= 7.87.0)
  • CURLKHMATCH_OK (libcurl >= 7.19.6)
  • CURLKHMATCH_MISMATCH (libcurl >= 7.19.6)
  • CURLKHMATCH_MISSING (libcurl >= 7.19.6)
  • CURLKHMATCH_LAST (libcurl >= 7.19.6)

Intl

  • MIXED_NUMBERS (Spoofchecker)
  • HIDDEN_OVERLAY (Spoofchecker)

OpenSSL

  • OPENSSL_CMS_OLDMIMETYPE
  • PKCS7_NOOLDMIMETYPE

PCNTL

  • SIGINFO

PDO_ODBC

  • PDO_ODBC_TYPE

Posix

  • POSIX_SC_ARG_MAX
  • POSIX_SC_PAGESIZE
  • POSIX_SC_NPROCESSORS_CONF
  • POSIX_SC_NPROCESSORS_ONLN
  • POSIX_PC_LINK_MAX
  • POSIX_PC_MAX_CANON
  • POSIX_PC_MAX_INPUT
  • POSIX_PC_NAME_MAX
  • POSIX_PC_PATH_MAX
  • POSIX_PC_PIPE_BUF
  • POSIX_PC_CHOWN_RESTRICTED
  • POSIX_PC_NO_TRUNC
  • POSIX_PC_ALLOC_SIZE_MIN
  • POSIX_PC_SYMLINK_MAX

Sockets

The following socket options are now defined if they are supported:

  • SO_ATTACH_REUSEPORT_CBPF (Linux)
  • SO_DETACH_BPF (Linux)
  • SO_DETACH_FILTER (Linux)
  • TCP_QUICKACK (Linux)
  • IP_DONTFRAG (FreeBSD)
  • IP_MTU_DISCOVER (Linux)
  • IP_PMTUDISC_DO (Linux)
  • IP_PMTUDISC_DONT (Linux)
  • IP_PMTUDISC_WANT (Linux)
  • IP_PMTUDISC_PROBE (Linux)
  • IP_PMTUDISC_INTERFACE (Linux)
  • IP_PMTUDISC_OMIT (Linux)
  • AF_DIVERT (FreeBSD)
  • SOL_UDPLITE
  • UDPLITE_RECV_CSCOV
  • UDPLITE_SEND_CSCOV
  • SO_RERROR (NetBSD)
  • SO_ZEROIZE (OpenBSD)
  • SO_SPLICE (OpenBSD)
  • TCP_REPAIR (Linux)
  • SO_REUSEPORT_LB (FreeBSD)
  • IP_BIND_ADDRESS_NO_PORT (Linux)

Zip

  • ZipArchive::ER_DATA_LENGTH (libzip >= 1.10)
  • ZipArchive::ER_NOT_ALLOWED (libzip >= 1.10)
  • ZipArchive::AFL_RDONLY (libzip >= 1.10)
  • ZipArchive::AFL_IS_TORRENTZIP (libzip >= 1.10)
  • ZipArchive::AFL_WANT_TORRENTZIP (libzip >= 1.10)
  • ZipArchive::AFL_CREATE_OR_KEEP_FILE_FOR_EMPTY_ARCHIVE (libzip >= 1.10)
  • ZipArchive::FL_OPEN_FILE_NOW
  • ZipArchive::LENGTH_TO_END as default value for
ZipArchive::addFile() and
ZipArchive::replaceFile()
  • ZipArchive::LENGTH_UNCHECKED (libzip >= 1.10)

User Contributed Notes

There are no user contributed notes for this page.


Backward Incompatible Changes

PHP Core

Programs that were very close to overflowing the call stack

Programs that were very close to overflowing the call stack may now throw an Error when using more than zend.max_allowed_stack_size-zend.reserved_stack_size bytes of stack (fiber.stack_size-zend.reserved_stack_size for fibers).

Executing proc_get_status() multiple times

Executing proc_get_status() multiple times will now always return the right value on POSIX systems. Previously, only the first call of the function returned the right value. Executing proc_close() after proc_get_status() will now also return the right exit code. Previously this would return -1. Internally, this works by caching the result on POSIX systems. If the previous behaviour is required, it is possible to check the "cached" key in the array returned by proc_get_status() to check whether the result was cached.

Zend Max Execution Timers

Zend Max Execution Timers is now enabled by default for ZTS builds on Linux.

Uses of traits with static properties

Uses of traits with static properties will now redeclare static properties inherited from the parent class. This will create a separate static property storage for the current class. This is analogous to adding the static property to the class directly without traits.

Assigning a negative index to an empty array

Assigning a negative index $n to an empty array will now make sure that the next index is $n+1 instead of 0.

Class constant visibility variance check

Class constant visibility variance is now correctly checked when inherited from interfaces.

WeakMap entries whose key maps to itself

WeakMap entries whose key maps to itself (possibly transitively) may now be removed during cycle collection if the key is not reachable except by iterating over the WeakMap (reachability via iteration is considered weak). Previously, such entries would never be automatically removed.

Date

The DateTime extension has introduced Date extension specific exceptions and errors under the DateError and DateException hierarchies, instead of warnings and generic exceptions. This improves error handling, at the expense of having to check for errors and exceptions.

DOM

Calling DOMChildNode::after(),
DOMChildNode::before(),
DOMChildNode::replaceWith()
on a node that has no parent is now a no-op instead of a hierarchy
exception, which is the behaviour demanded by the DOM specification.

Using the DOMParentNode and DOMChildNode methods without a document now works instead of throwing a DOM_HIERARCHY_REQUEST_ERR DOMException. This is in line with the behaviour demanded by the DOM specification.

Calling DOMDocument::createAttributeNS() without specifying a prefix would incorrectly create a default namespace, placing the element inside the namespace instead of the attribute. This bug is now fixed.

DOMDocument::createAttributeNS() would previously incorrectly throw a DOM_NAMESPACE_ERRNAMESPACE_ERR DOMException when the prefix was already used for a different URI. It now correctly chooses a different prefix when there's a prefix name conflict.

New methods and properties were added to some DOM classes. If a userland class inherits from these classes and declare a method or property with the same name, the declarations must be compatible. Otherwise, a typical compile error about incompatible declarations will be thrown. See the list of new features and new functions for a list of the newly implemented methods and properties.

FFI

C functions that have a return type of void now return null instead of returning the following object object(FFI\CData:void) { }

Opcache

The opcache.consistency_checks INI directive was removed. This feature was broken with the tracing JIT, as well as with inheritance cache, and has been disabled without a way to enable it since PHP 8.1.18 and PHP 8.2.5. Both the tracing JIT and inheritance cache may modify shm after the script has been persisted by invalidating its checksum. The attempted fix skipped over the modifiable pointers but was rejected due to complexity. For this reason, it was decided to remove the feature instead.

Phar

The type of Phar class constants are now declared.

Standard

The range() function has had various changes:

  • A TypeError is now thrown when passing objects, resources, or arrays as the boundary inputs.
  • A more descriptive ValueError is thrown when passing 0 for $step.
  • A ValueError is now thrown when using a negative $step for increasing ranges.
  • If $step is a float that can be interpreted as an int, it is now done so.
  • A ValueError is now thrown if any argument is infinity or NAN.
  • An E_WARNING is now emitted if $start or $end is the empty string. The value continues to be cast to the value 0.
  • An E_WARNING is now emitted if $start or $end has more than one byte, only if it is a non-numeric string.
  • An E_WARNING is now emitted if $start or $end is cast to an integer because the other boundary input is a number. (e.g. range(5, 'z');).
  • An E_WARNING is now emitted if $step is a float when trying to generate a range of characters, except if both boundary inputs are numeric strings (e.g. range('5', '9', 0.5); does not produce a warning).
  • range() now produce a list of characters if one of the boundary inputs is a string digit instead of casting the other input to int (e.g. range('9', 'A');).
<?php
range('9', 'A'); // ["9", ":", ";", "<", "=", ">", "?", "@", "A"], as of PHP 8.3.0
range('9', 'A'); // [9, 8, 7, 6, 5, 4, 3, 2, 1, 0], prior to PHP 8.3.0
?>

number_format() now handles negative $decimals values by rounding $num to abs($decimals) digits before the decimal point. Previously, negative $decimals values were ignored.

The file() flags error check now catches all invalid flags. Notably FILE_APPEND was previously silently accepted.

SNMP

The type of SNMP class constants are now declared.

User Contributed Notes

There are no user contributed notes for this page.


Deprecated Features

PHP Core

Saner Increment/Decrement operators

Using the increment operator (++) on empty, non-numeric, or non-alphanumeric strings is now deprecated. Moreover, incrementing non-numeric strings is soft deprecated. That means no E_DEPRECATED diagnostic is emitted, but this feature should not be used when producing new code. The new str_increment() function should be used instead.

Using the decrement operator (--) on empty or non-numeric strings is now deprecated.

get_class()/get_parent_class() call without arguments

Calling get_class() and get_parent_class() without arguments is now deprecated.

DBA

Calling dba_fetch() with $dba as the 3rd argument is now deprecated.

FFI

Calling FFI::cast(), FFI::new(), and FFI::type() statically is now deprecated.

Intl

The U_MULTIPLE_DECIMAL_SEP*E*RATORS constant had been deprecated, using the U_MULTIPLE_DECIMAL_SEP*A*RATORS constant instead is recommended.

The NumberFormatter::TYPE_CURRENCY constant has been deprecated.

LDAP

Calling ldap_connect() with separate $hostname and $port is deprecated.

MBString

Passing a negative $width to mb_strimwidth() is now deprecated.

Phar

Calling Phar::setStub() with a resource and a $length is now deprecated. Such calls should be replaced by: $phar->setStub(stream_get_contents($resource));

Random

The MT_RAND_PHP Mt19937 variant is deprecated.

Reflection

Calling ReflectionProperty::setValue() with only one parameter is deprecated. To set static properties, pass null as the first parameter.

Standard

The assert_options() function is now deprecated.

The ASSERT_ACTIVE, ASSERT_BAIL, ASSERT_CALLBACK, ASSERT_EXCEPTION, and ASSERT_WARNING constants have been deprecated.

The assert.* INI settings have been deprecated. See the Changes to INI File Handling page for further details.

SQLite3

Using exceptions is now preferred, warnings will be removed in the future. Calling SQLite3::enableExceptions(false) will trigger a deprecation warning in this version.

Zip

The ZipArchive::FL_RECOMPRESS constant is deprecated and will be removed in a future version of libzip.

User Contributed Notes

There are no user contributed notes for this page.


Other Changes

Core changes

FFI

FFI::load() is now allowed during preloading when opcache.preload_user is the current system user. Previously, calling FFI::load() was not possible during preloading if the opcache.preload_user directive was set.

FPM

FPM CLI test now fails if the socket path is longer than supported by the OS.

Opcache

In the CLI and phpdbg SAPIs, preloading does not require the opcache.preload_user directive to be set anymore when running as root. In other SAPIs, this directive is required when running as root because preloading is done before the SAPI switches to an unprivileged user.

Streams

Blocking fread() on a socket connection returns immediately if there are any buffered data instead of waiting for more data.

A memory stream no longer fails if the seek offset is past the end. Instead, the memory will be increased on the next write and the data between the old end and the offset is filled with zero bytes, similar to how files work.

stat() access operations like file_exists() and similar will now use real path instead of the actual stream path. This is consistent with stream opening.

Changes in SAPI Modules

CLI

The STDOUT, STDERR and STDIN streams are no longer closed on resource destruction which is mostly when the CLI finishes. It is however still possible to explicitly close those streams using fclose() and similar.

Changed Functions

Core

gc_status() has added the following 8 fields:

  • "running" => bool
  • "protected" => bool
  • "full" => bool
  • "buffer_size" => int
  • "application_time" => float: Total application time, in seconds (including collector_time)
  • "collector_time" => float: Time spent collecting cycles, in seconds (including destructor_time and free_time)
  • "destructor_time" => float: Time spent executing destructors during cycle collection, in seconds
  • "free_time" => float: Time spent freeing values during cycle collection, in seconds

class_alias() now supports creating an alias of an internal class.

Setting open_basedir at runtime using ini_set('open_basedir', ...); no longer accepts paths containing the parent directory (..). Previously, only paths starting with .. were disallowed. This could easily be circumvented by prepending ./ to the path.

User exception handlers now catch exceptions during shutdown.

The resultant HTML of highlight_string() and highlight_file() has changed. Whitespace between outer HTML tags is removed. Newlines and spaces are no longer converted to HTML entities. The whole HTML is now wrapped in a <pre> tag. The outer <span> tag has been merged with the <code> tag.

Calendar

easter_date() now supports years from 1970 to 2,000,000,000 on 64-bit systems, previously it only supported years in the range from 1970 to 2037.

Curl

curl_getinfo() now supports two new constants: CURLINFO_CAPATH and CURLINFO_CAINFO. If option is null, the following two additional keys are present: "capath" and "cainfo".

DOM

Changed DOMCharacterData::appendData() tentative return type to true.

DOMDocument::loadHTML(), DOMDocument::loadHTMLFile(), and DOMDocument::loadXML() now have a tentative return type of bool. Previously, this was documented as having a return type of DOMDocument|bool, but, as of PHP 8.0.0, DOMDocument cannot be returned as it is no longer statically callable.

Gd

The signature of imagerotate() has changed. The $ignore_transparent parameter has been removed, as it was ignored since PHP 5.5.0.

Intl

datefmt_set_timezone() (and its alias IntlDateformatter::setTimeZone()) now returns true on success, previously null was returned.

IntlBreakiterator::setText() now returns false on failure, previously null was returned. It now returns true on success, previously null was returned.

IntlChar::enumCharNames() is now returning a boolean. Previously it returned null on success and false on failure.

IntlDateFormatter::__construct() throws an U_ILLEGAL_ARGUMENT_ERROR exception when an invalid locale had been set.

MBString

mb_strtolower() and mb_convert_case() implement conditional casing rules for the Greek letter sigma. For mb_convert_case(), conditional casing only applies to MB_CASE_LOWER and MB_CASE_TITLE modes, not to MB_CASE_LOWER_SIMPLE and MB_CASE_TITLE_SIMPLE.

mb_decode_mimeheader() interprets underscores in QPrint-encoded MIME encoded words as required by RFC 2047; they are converted to spaces. Underscores must be encoded as "=5F" in such MIME encoded words.

In rare cases, mb_encode_mimeheader() will transfer-encode its input string where it would pass it through as raw ASCII in PHP 8.2.

mb_encode_mimeheader() no longer drops NUL (zero) bytes when QPrint-encoding the input string. This previously caused strings in certain text encodings, especially UTF-16 and UTF-32, to be corrupted by mb_encode_mimeheader.

mb_detect_encoding()'s "non-strict" mode now behaves as described in the documentation. Previously, it would return false if the same byte (for example, the first byte) of the input string was invalid in all candidate encodings. More generally, it would eliminate candidate encodings from consideration when an invalid byte was seen, and if the same input byte eliminated all remaining encodings still under consideration, it would return false. On the other hand, if all candidate encodings but one were eliminated from consideration, it would return the last remaining one without regard for how many encoding errors might be encountered later in the string. This is different from the behavior described in the documentation, which says: "If strict is set to false, the closest matching encoding will be returned."

mysqli

mysqli_fetch_object() now raises a ValueError instead of an Exception when the $constructor_args argument is non empty with the class not having constructor.

mysqli_poll() now raises a ValueError when neither the $read nor the $error arguments are passed.

mysqli_field_seek() and mysqli_result::field_seek() now specify the return type as true instead of bool.

ODBC

odbc_autocommit() now accepts null for the $enable parameter. Passing null has the same behaviour as passing only 1 parameter, namely indicating if the autocommit feature is enabled or not.

PGSQL

pg_fetch_object() now raises a ValueError instead of an Exception when the $constructor_args argument is non empty with the class not having constructor.

pg_insert() now raises a ValueError instead of a E_WARNING when the table specified is invalid.

pg_insert() and pg_convert() raises a ValueError or a TypeError instead of a E_WARNING when the value/type of a field does not match properly with a PostgreSQL's type.

The $row parameter of
pg_fetch_result(),
pg_field_prtlen(), and
pg_field_is_null() is now nullable.

Random

Changed mt_srand() and srand() to not check the number of arguments to determine whether a random seed should be used. Passing null will generate a random seed, 0 will use zero as the seed. The functions are now consistent with Random\Engine\Mt19937::__construct().

Reflection

Return type of ReflectionClass::getStaticProperties() is no longer nullable.

Standard

E_NOTICEs emitted by unserialize() have been promoted to E_WARNING.

unserialize() now emits a new E_WARNING if the input contains unconsumed bytes.

array_pad() is now only limited by the maximum number of elements an array can have. Before, it was only possible to add at most 1048576 elements at a time.

strtok() raises an E_WARNING in the case token is not provided when starting tokenization.

password_hash() will now chain the underlying Random\RandomException as the ValueError's $previous Exception when salt generation fails.

If using an array as the $command for proc_open(), it must now have at least one non empty element. Otherwise a ValueError is thrown.

proc_open() returns false if $command array is invalid command instead of resource object that produces warning later. This was already the case for Windows but it is now also the case if a posix_spawn implementation is in use (most Linux, BSD and MacOS platforms). There are still some old platforms where this behavior is not changed as posix_spawn is not supported there.

array_sum() and array_product() now warn when values in the array cannot be converted to int/float. Previously arrays and objects where ignored whilst every other value was cast to int. Moreover, objects that define a numeric cast (e.g. GMP) are now casted instead of ignored.

The $decimals of number_format() now properly handles negative integers. Rounding with a negative value for $decimals means that $num is rounded to $decimals significant digits before the decimal point. Previously negative $decimals were silently ignored and the number got rounded to zero decimal places.

A new $before_needle argument has been added to strrchr(). It behaves like its counterpart in the strstr() or stristr() functions.

str_getcsv() and fgetcsv() now return an empty string instead of a string with a single null byte for the last field which only contains an unterminated enclosure.

Other Changes to Extensions

Core

Using the increment/decrement operators (++/--) on values of type bool now emit warnings. This is because it currently has no effect, but will behave like $bool += 1 in the future.

Using the decrement operator (--) on values of type null now emit warnings. This is because it currently has no effect, but will behave like $null -= 1 in the future.

Internal objects that implement an _IS_NUMBER cast but not a do_operator handler that overrides addition and subtraction now can be incremented and decrement as if one would do $o += 1 or $o -= 1

DOM

The DOM lifetime mechanism has been reworked such that implicitly removed nodes can still be fetched. Previously this resulted in an exception.

SQLite3

The SQLite3 class now throws SQLite3Exception (extends Exception) instead of Exception.

The SQLite error code is now passed in the exception error code instead of being included in the error message.

Changes to INI File Handling

  • The assert.* INI settings have been deprecated. This comprises the following INI settings:

    • assert.active
    • assert.bail
    • assert.callback
    • assert.exception
    • assert.warning
    If the value of the setting is equal to the default value, no deprecation notice is emitted. The zend.assertions INI setting should be used instead.

  • zend.max_allowed_stack_size is a new INI directive to set the maximum allowed stack size. Possible values are 0 (detect the process or thread maximum stack size), -1 (no limit), or a positive number of bytes. The default is 0. When it is not possible to detect the process or thread maximum stack size, a known system default is used. Setting this value too high has the same effect as disabling the stack size limit. Fibers use fiber.stack_size as maximum allowed stack size. An Error is thrown when the process call stack exceeds zend.max_allowed_stack_size-zend.reserved_stack_size bytes, to prevent stack-overflow-induced segmentation faults, with the goal of making debugging easier. The stack size increases during uncontrolled recursions involving internal functions or the magic methods __toString(), __clone(), __sleep(), __destruct(). This is not related to stack buffer overflows, and is not a security feature.

  • zend.reserved_stack_size is a new INI directive to set the reserved stack size, in bytes. This is subtracted from the max allowed stack size, as a buffer, when checking the stack size.

Performance

DOM

Looping over a DOMNodeList now uses caching. Therefore requesting items no longer takes quadratic time by default.

Getting text content from nodes now avoids an allocation, resulting in a performance gain.

DOMChildNode::remove() now runs in O(1) performance.

Standard

The file() flags error check is now about 7% faster.

SPL

RecursiveDirectoryIterator now performs less I/O when looping over a directory.

User Contributed Notes

There are no user contributed notes for this page.


Windows Support

Core

Minimum supported Windows version has been bumped to Windows 8 or Windows Server 2012.

User Contributed Notes

There are no user contributed notes for this page.


Migrating from PHP 8.1.x to PHP 8.2.x

İçindekiler

  • New Features
  • New Functions
  • New Global Constants
  • Backward Incompatible Changes
  • Deprecated Features
  • Other Changes
  • Windows Support

This new minor version brings with it a number of new features and a few incompatibilities that should be tested for before switching PHP versions in production environments.

Ayrıca, şu PHP sürümleri arasında geçiş kılavuzlarına da bakınız: 7.1.x, 7.2.x, 7.3.x, 7.4.x, 8.0.x, 8.1.x.

User Contributed Notes

There are no user contributed notes for this page.


New Features

PHP Core

SensitiveParameter Attribute

Added the #[\SensitiveParameter] attribute to redact sensitive data in backtraces.

error_log_mode INI directive

The error_log_mode INI directive has been added which allows setting the permissions for the error log file.

Enumerations properties in constant expressions

It is now possible to fetch properties of Enumerations in constant expressions.

Type System Improvements

It is now possible to use null and false as stand-alone types.

The true type has been added.

It is now possible to combine intersection and union types. The type needs to be written in DNF.

Constants in Traits

It is now possible to define constants in traits.

Readonly Classes

Support for readonly on classes has been added.

cURL

Added the CURLINFO_EFFECTIVE_METHOD option, which returns the effective HTTP method in the return value of curl_getinfo().

Exposed multiple new constants from libcurl 7.62 to 7.80.

Added the curl_upkeep() function to perform any connection upkeep checks.

DBA

The LMDB Driver now accepts the DBA_LMDB_USE_SUB_DIR or DBA_LMDB_NO_SUB_DIR flags to determine if it should create a subdirectory or not when creating a database file.

OCI8

Added the oci8.prefetch_lob_size INI directive and oci_set_prefetch_lob() function to tune LOB query performance by reducing the number of round-trips between PHP and Oracle Databases when fetching LOBS. This is usable with Oracle Database 12.2 or later.

OpenSSL

Added AEAD support for the chacha20-poly1305 algorithm.

ODBC

Added the odbc_connection_string_is_quoted(), odbc_connection_string_should_quote(), and odbc_connection_string_quote() functions. These are primarily used behind the scenes in the ODBC and PDO_ODBC extensions, but are exposed to userland for easier unit testing, and for user applications and libraries to perform quoting themselves.

PCRE

Added support for the n (NO_AUTO_CAPTURE) modifier, which makes simple (xyz) groups non-capturing. Only named groups like (?<name>xyz) are capturing. This only affects which groups are capturing, it is still possible to use numbered subpattern references, and the matches array will still contain numbered results.

Random

This is a new extension which organises and consolidates existing implementations related to random number generators. New and better RNGs are available with scope issues eliminated.

User Contributed Notes

There are no user contributed notes for this page.


New Functions

cURL

  • curl_upkeep()

IMAP

  • imap_is_open() (as of PHP 8.2.1)

MySQLi

  • mysqli_execute_query()

ODBC

  • odbc_connection_string_is_quoted()
  • odbc_connection_string_should_quote()
  • odbc_connection_string_quote()

OpenSSL

  • openssl_cipher_key_length()

Reflection

  • ReflectionFunction::isAnonymous()
  • ReflectionMethod::hasPrototype()

Sodium

XChaCha20

  • sodium_crypto_stream_xchacha20_xor_ic()

Standard

  • memory_reset_peak_usage()
  • ini_parse_quantity()

XML

  • libxml_get_external_entity_loader()

User Contributed Notes

There are no user contributed notes for this page.


New Global Constants

COM

  • DISP_E_PARAMNOTFOUND
  • LOCALE_NEUTRAL

cURL

  • CURLALTSVC_H1 (libcurl >= 7.64.1)
  • CURLALTSVC_H2 (libcurl >= 7.64.1)
  • CURLALTSVC_H3 (libcurl >= 7.64.1)
  • CURLALTSVC_READONLYFILE (libcurl >= 7.64.1)
  • CURLAUTH_AWS_SIGV4 (libcurl >= 7.75.0)
  • CURLE_PROXY (libcurl >= 7.73.0)
  • CURLFTPMETHOD_DEFAULT
  • CURLHSTS_ENABLE (libcurl >= 7.74.0)
  • CURLHSTS_READONLYFILE (libcurl >= 7.74.0)
  • CURLINFO_PROXY_ERROR (libcurl >= 7.73.0)
  • CURLINFO_REFERER (libcurl >= 7.76.0)
  • CURLINFO_RETRY_AFTER (libcurl >= 7.66.0)
  • CURLMOPT_MAX_CONCURRENT_STREAMS (libcurl >= 7.67.0)
  • CURLOPT_ALTSVC_CTRL (libcurl >= 7.64.1)
  • CURLOPT_ALTSVC (libcurl >= 7.64.1)
  • CURLOPT_AWS_SIGV4 (libcurl >= 7.75.0)
  • CURLOPT_CAINFO_BLOB (libcurl >= 7.77.0)
  • CURLOPT_DOH_SSL_VERIFYHOST (libcurl >= 7.76.0)
  • CURLOPT_DOH_SSL_VERIFYPEER (libcurl >= 7.76.0)
  • CURLOPT_DOH_SSL_VERIFYSTATUS (libcurl >= 7.76.0)
  • CURLOPT_HSTS_CTRL (libcurl >= 7.74.0)
  • CURLOPT_HSTS (libcurl >= 7.74.0)
  • CURLOPT_MAIL_RCPT_ALLLOWFAILS (libcurl >= 7.69.0)
  • CURLOPT_MAXAGE_CONN (libcurl >= 7.65.0)
  • CURLOPT_MAXFILESIZE_LARGE
  • CURLOPT_MAXLIFETIME_CONN (libcurl >= 7.80.0)
  • CURLOPT_PROXY_CAINFO_BLOB (libcurl >= 7.77.0)
  • CURLOPT_SASL_AUTHZID (libcurl >= 7.66.0)
  • CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256 (libcurl >= 7.80.0)
  • CURLOPT_SSL_EC_CURVES (libcurl >= 7.73.0)
  • CURLOPT_UPKEEP_INTERVAL_MS (libcurl >= 7.62.0)
  • CURLOPT_UPLOAD_BUFFERSIZE (libcurl >= 7.62.0)
  • CURLOPT_XFERINFOFUNCTION (libcurl >= 7.32.0)
  • CURLPROTO_MQTT (libcurl >= 7.71.0)
  • CURLPX_BAD_ADDRESS_TYPE (libcurl >= 7.73.0)
  • CURLPX_BAD_VERSION (libcurl >= 7.73.0)
  • CURLPX_CLOSED (libcurl >= 7.73.0)
  • CURLPX_GSSAPI (libcurl >= 7.73.0)
  • CURLPX_GSSAPI_PERMSG (libcurl >= 7.73.0)
  • CURLPX_GSSAPI_PROTECTION (libcurl >= 7.73.0)
  • CURLPX_IDENTD_DIFFER (libcurl >= 7.73.0)
  • CURLPX_IDENTD (libcurl >= 7.73.0)
  • CURLPX_LONG_HOSTNAME (libcurl >= 7.73.0)
  • CURLPX_LONG_PASSWD (libcurl >= 7.73.0)
  • CURLPX_LONG_USER (libcurl >= 7.73.0)
  • CURLPX_NO_AUTH (libcurl >= 7.73.0)
  • CURLPX_OK (libcurl >= 7.73.0)
  • CURLPX_RECV_ADDRESS (libcurl >= 7.73.0)
  • CURLPX_RECV_AUTH (libcurl >= 7.73.0)
  • CURLPX_RECV_CONNECT (libcurl >= 7.73.0)
  • CURLPX_RECV_REQACK (libcurl >= 7.73.0)
  • CURLPX_REPLY_ADDRESS_TYPE_NOT_SUPPORTED (libcurl >= 7.73.0)
  • CURLPX_REPLY_COMMAND_NOT_SUPPORTED (libcurl >= 7.73.0)
  • CURLPX_REPLY_CONNECTION_REFUSED (libcurl >= 7.73.0)
  • CURLPX_REPLY_GENERAL_SERVER_FAILURE (libcurl >= 7.73.0)
  • CURLPX_REPLY_HOST_UNREACHABLE (libcurl >= 7.73.0)
  • CURLPX_REPLY_NETWORK_UNREACHABLE (libcurl >= 7.73.0)
  • CURLPX_REPLY_NOT_ALLOWED (libcurl >= 7.73.0)
  • CURLPX_REPLY_TTL_EXPIRED (libcurl >= 7.73.0)
  • CURLPX_REPLY_UNASSIGNED (libcurl >= 7.73.0)
  • CURLPX_REQUEST_FAILED (libcurl >= 7.73.0)
  • CURLPX_RESOLVE_HOST (libcurl >= 7.73.0)
  • CURLPX_SEND_AUTH (libcurl >= 7.73.0)
  • CURLPX_SEND_CONNECT (libcurl >= 7.73.0)
  • CURLPX_SEND_REQUEST (libcurl >= 7.73.0)
  • CURLPX_UNKNOWN_FAIL (libcurl >= 7.73.0)
  • CURLPX_UNKNOWN_MODE (libcurl >= 7.73.0)
  • CURLPX_USER_REJECTED (libcurl >= 7.73.0)
  • CURLSSLOPT_AUTO_CLIENT_CERT (libcurl >= 7.77.0)
  • CURLSSLOPT_NATIVE_CA (libcurl >= 7.71.0)
  • CURLSSLOPT_NO_PARTIALCHAIN (libcurl >= 7.68.0)
  • CURLSSLOPT_REVOKE_BEST_EFFORT (libcurl >= 7.70.0)
  • CURL_VERSION_GSASL (libcurl >= 7.76.0)
  • CURL_VERSION_HSTS (libcurl >= 7.74.0)
  • CURL_VERSION_HTTP3 (libcurl >= 7.66.0)
  • CURL_VERSION_UNICODE (libcurl >= 7.72.0)
  • CURL_VERSION_ZSTD (libcurl >= 7.72.0)

DBA

  • DBA_LMDB_USE_SUB_DIR
  • DBA_LMDB_NO_SUB_DIR

Filter

  • FILTER_FLAG_GLOBAL_RANGE

Sockets

The following socket options are now defined if they are supported:

  • SO_INCOMING_CPU
  • SO_MEMINFO
  • SO_RTABLE (OpenBSD)
  • TCP_KEEPALIVE (MacOS)
  • TCP_KEEPCNT (Linux, others)
  • TCP_KEEPIDLE (Linux, others)
  • TCP_KEEPINTVL (Linux, others)
  • TCP_NOTSENT_LOWAT
  • LOCAL_CREDS_PERSISTENT (FreeBSD)
  • SCM_CREDS2 (FreeBSD)
  • LOCAL_CREDS (NetBSD)
  • SO_BPF_EXTENSIONS
  • SO_SETFIB
  • TCP_CONGESTION (Linux, FreeBSD)
  • SO_ZEROCOPY (Linux)
  • MSG_ZEROCOPY (Linux)

User Contributed Notes

There are no user contributed notes for this page.


Backward Incompatible Changes

Date

DateTime::createFromImmutable() now has a tentative return type of static, previously it was DateTime.

DateTimeImmutable::createFromMutable() now has a tentative return type of static, previously it was DateTimeImmutable.

number symbols in relative formats no longer accept multiple signs, e.g. +-2.

ODBC

The ODBC extension now escapes the username and password for the case when both a connection string and username/password are passed, and the string must be appended to. Before, user values containing values needing escaping could have created a malformed connection string, or injected values from user-provided data. The escaping rules should be identical to the .NET BCL DbConnectionOptions behaviour.

PDO_ODBC

The PDO_ODBC extension also escapes the username and password when a connection string is passed. See the change to the ODBC extension for further details.

Standard

glob() now returns an empty array if all paths are restricted by open_basedir. Previously it returned false. Moreover, a warning is now emitted even if only some paths are restricted by open_basedir.

FilesystemIterator::__construct(): prior to PHP 8.2.0, FilesystemIterator::SKIP_DOTS constant was always set and couldn't be disabled. In order to maintain the previous behaviour the constant must be explicitly set when using the flags parameter. The default value from flags parameter has not been modified.

strtolower(),
strtoupper(),
stristr(),
stripos(),
strripos(),
lcfirst(),
ucfirst(),
ucwords(),
and str_ireplace() are no longer locale-sensitive.
They now perform ASCII case conversion, as if the locale were "C".
Localized versions of these functions are available in the MBString extension.
Moreover, array_change_key_case(), and sorting with
SORT_FLAG_CASE now also use ASCII case conversion.

str_split() returns an empty array for an empty string now. Previously it returned an array with a single empty string entry. mb_str_split() is not affected by this change as it was already behaving like that.

ksort() and krsort() now do numeric string comparison under SORT_REGULAR using the standard PHP 8 rules now.

var_export() no longer omits the leading backslash for exported classes, i.e. these are now fully qualified.

Standard PHP Library (SPL)

The following methods now enforce their signature:

  • SplFileInfo::_bad_state_ex()
  • SplFileObject::getCsvControl()
  • SplFileObject::fflush()
  • SplFileObject::ftell()
  • SplFileObject::fgetc()
  • SplFileObject::fpassthru()

SplFileObject::hasChildren() now has a tentative return type of false, previously it was bool.

SplFileObject::getChildren() now has a tentative return type of null, previously it was ?RecursiveIterator.

GlobIterator now returns an empty array if all paths are restricted by open_basedir. Previously it returned false. Moreover, a warning is now emitted even if only some paths are restricted by open_basedir.

User Contributed Notes

There are no user contributed notes for this page.


Deprecated Features

PHP Core

Usage of dynamic properties

The creation of dynamic properties is deprecated, unless the class opts in by using the #[\AllowDynamicProperties] attribute. stdClass allows dynamic properties. Usage of the __get()/__set() magic methods is not affected by this change. A dynamic properties deprecation warning can be addressed by:

  • Declaring the property (preferred).
  • Adding the #[\AllowDynamicProperties] attribute to the class (which also applies to all child classes).
  • Using a WeakMap if additional data needs to be associated with an object which one does not own.

Relative callables

Callables that are not accepted by the $callable() syntax (but are accepted by call_user_func()) are deprecated. In particular:

  • "self::method"
  • "parent::method"
  • "static::method"
  • ["self", "method"]
  • ["parent", "method"]
  • ["static", "method"]
  • ["Foo", "Bar::method"]
  • [new Foo, "Bar::method"]
This does not affect normal method callables such as "A::method" or ["A", "method"].

"${var}" and "${expr}" style interpolation

The "${var}" and "${expr}" style of string interpolation is deprecated. Use "$var"/"{$var}" and "{${expr}}", respectively.

MBString

Usage of the QPrint, Base64, Uuencode, and HTML-ENTITIES 'text encodings' is deprecated for all MBString functions. Unlike all the other text encodings supported by MBString, these do not encode a sequence of Unicode codepoints, but rather a sequence of raw bytes. It is not clear what the correct return values for most MBString functions should be when one of these non-encodings is specified. Moreover, PHP has separate, built-in implementations of all of them; for example, UUencoded data can be handled using convert_uuencode()/convert_uudecode().

SPL

The internal SplFileInfo::_bad_state_ex() method has been deprecated.

Standard

utf8_encode() and utf8_decode() have been deprecated.

User Contributed Notes

There are no user contributed notes for this page.


Other Changes

Core changes

The iterable type is now a built-in compile time alias for array|Traversable. Error messages relating to iterable will therefore now use array|Traversable. Type Reflection is preserved for single iterable (and ?iterable) to produce a ReflectionNamedType with name iterable, however usage of iterable in union types will be converted to array|Traversable.

The date format of sent cookies is now 'D, d M Y H:i:s \G\M\T'; previously it was 'D, d-M-Y H:i:s T'.

Changes in SAPI Modules

CLI

The STDOUT, STDERR and STDIN streams are no longer closed on resource destruction which is mostly when the CLI finishes. It is however still possible to explicitly close those streams using fclose() and similar.

Changed Functions

Core

The strcmp(), strcasecmp(), strncmp(), strncasecmp(), and substr_compare() functions, using binary safe string comparison is no longer guaranteed to return strlen($string1) - strlen($string2) when string lengths are not equal, but may now return -1 or 1 instead. Instead of depending on any concrete value, the return value should be compared to 0.

DBA

dba_open() and dba_popen() now have the following enforced signature:

dba_open(
string $path,
string $mode,
?string $handler = null,
int $permission = 0644,
int $map_size = 0,
?int $flags = null
): resource|false

dba_fetch()'s optional skip argument is now at the end in line with PHP userland semantics. Its signature is now:

dba_fetch(string|array $key, resource $handle, int $skip): string|false
The overloaded signature:
dba_fetch(string|array $key, int $skip, resource $handle): string|false
is still accepted, but it is recommended to use the new standard variant.

Random

random_bytes() and random_int() now throw a \Random\RandomException on CSPRNG failures. Previously a plain \Exception was thrown instead.

SPL

The iterator parameter of iterator_to_array() and iterator_count() is widened to iterable from Iterator, allowing arrays to be passed.

Other Changes to Extensions

Date

The properties of DatePeriod are now properly declared.

Intl

Instances of IntlBreakIterator, IntlRuleBasedBreakIterator, IntlCodePointBreakIterator, IntlPartsIterator, IntlCalendar, Collator, IntlIterator, UConverter, IntlDateFormatter, IntlDatePatternGenerator, MessageFormatter, ResourceBundle, Spoofchecker, IntlTimeZone, and Transliterator are no longer serializable. Previously, they could be serialized, but unserialization yielded unusable objects or failed.

MySQLi

The support for libmysql has been removed and it is no longer possible to compile mysqli with libmysql. From now on, the mysqli extension can be compiled only with mysqlnd. All libmysql features unavailable in mysqlnd have been removed:

  • The reconnect property of mysqli_driver
  • The mysqli.reconnect INI directive
  • The MYSQLI_IS_MARIADB constant has been deprecated

OCI8

The minimum Oracle Client library version required is now 11.2.

PCRE

NUL characters (\0) in pattern strings are now supported.

Session

Trying to change the session.cookie_samesite INI directive while the session is active or output has already been sent will now fail and emit a warning. This aligns the behaviour with all other session INI settings.

SQLite3

sqlite3.defensive is now INI_USER.

Standard

getimagesize() now reports the actual image dimensions, bits and channels of AVIF images. Previously, the dimensions have been reported as 0x0, and bits and channels have not been reported at all.

Tidy

The properties of the tidy class are now properly declared. And those of the tidyNode class are now properly declared as readonly.

Zip

The Zip extension has been updated to version 1.20.0, which adds the following methods:

  • ZipArchive::clearError()
  • ZipArchive::getStreamName()
  • ZipArchive::getStreamIndex()

Changes to INI File Handling

Support for binary (0b/0B) and octal (0o/0O) prefixes has been added to integer INI settings. Integer INI settings that start with a zero (0) continue to be interpreted as an octal integer.

Parsing of some ill-formatted values will now trigger a warning when this was silently ignored before. For backwards compatibility, interpretation of these values has not changed. This affects the following settings:

  • bcmath.scale
  • com.code_page
  • default_socket_timeout
  • fiber.stack_size
  • hard_timeout
  • intl.error_level
  • ldap.max_links
  • max_input_nesting_level
  • max_input_vars
  • mbstring.regex_retry_limit
  • mbstring.regex_stack_limit
  • mysqli.allow_local_infile
  • mysqli.allow_persistent
  • mysqli.default_port
  • mysqli.max_links
  • mysqli.max_persistent
  • mysqli.rollback_on_cached_plink
  • mysqlnd.log_mask
  • mysqlnd.mempool_default_size
  • mysqlnd.net_read_buffer_size
  • mysqlnd.net_read_timeout
  • oci8.default_prefetch
  • oci8.max_persistent
  • oci8.persistent_timeout
  • oci8.ping_interval
  • oci8.prefetch_lob_size
  • oci8.privileged_connect
  • oci8.statement_cache_size
  • odbc.allow_persistent
  • odbc.check_persistent
  • odbc.max_persistent
  • odbc.max_links
  • odbc.defaultbinmode
  • odbc.default_cursortype
  • odbc.defaultlrl
  • opcache.consistency_checks
  • opcache.file_update_protection
  • opcache.force_restart_timeout
  • opcache.interned_strings_buffer
  • opcache.jit_bisect_limit
  • opcache.jit_blacklist_root_trace
  • opcache.jit_blacklist_side_trace
  • opcache.jit_debug
  • opcache.jit_hot_func
  • opcache.jit_hot_loop
  • opcache.jit_hot_return
  • opcache.jit_hot_side_exit
  • opcache.jit_max_exit_counters
  • opcache.jit_max_loop_unrolls
  • opcache.jit_max_polymorphic_calls
  • opcache.jit_max_recursive_calls
  • opcache.jit_max_recursive_returns
  • opcache.jit_max_root_traces
  • opcache.jit_max_side_traces
  • opcache.log_verbosity_level
  • opcache.max_file_size
  • opcache.opt_debug_level
  • opcache.optimization_level
  • opcache.revalidate_freq
  • output_buffering
  • pcre.backtrack_limit
  • pcre.recursion_limit
  • pgsql.max_links
  • pgsql.max_persistent
  • post_max_size
  • realpath_cache_size
  • realpath_cache_ttl
  • session.cache_expire
  • session.cookie_lifetime
  • session.gc_divisor
  • session.gc_maxlifetime
  • session.gc_probability
  • soap.wsdl_cache_limit
  • soap.wsdl_cache_ttl
  • unserialize_max_depth
  • upload_max_filesize
  • user_ini.cache_ttl
  • xmlrpc_error_number
  • zend.assertions
  • zlib.output_compression_level

User Contributed Notes

There are no user contributed notes for this page.


Windows Support

Core

Windows specific error messages are no longer localized, but instead always displayed in English to better match PHP error messages.

Preliminary and highly experimental support for building on ARM64 has been added.

OCI8

Because building against Oracle Client 10g is no longer supported anyway, the configuration option --with-oci8 has been dropped. The --with-oci8-11g, --with-oci8-12c and --with-oci8-19 configuration options are still supported.

Zip

The Zip extension is upgraded to version 1.21.0, and is now built as shared library (DLL) by default.

User Contributed Notes

There are no user contributed notes for this page.


Migrating from PHP 8.0.x to PHP 8.1.x

İçindekiler

  • New Features
  • New Classes and Interfaces
  • New Functions
  • New Global Constants
  • Backward Incompatible Changes
  • Deprecated Features
  • Other Changes

This new minor version brings with it a number of new features and a few incompatibilities that should be tested for before switching PHP versions in production environments.

Ayrıca, şu PHP sürümleri arasında geçiş kılavuzlarına da bakınız: 7.1.x, 7.2.x, 7.3.x, 7.4.x, 8.0.x.

User Contributed Notes

There are no user contributed notes for this page.


New Features

PHP Core

Integer Octal Literal Prefix

Octal integers can now use an explicit 0o/0O prefix in integer literals, similarly to binary and hexadecimal integer literals.

<?php
014; // Non-prefix octal literal
0o14; // Prefixed octal literal
?>

Array Unpacking with String Keys

Added support for array unpacking with strings keys.

<?php
$arr1 = [1, 'a' => 'b'];
$arr2 = [...$arr1, 'c' => 'd']; //[1, 'a' => 'b', 'c' => 'd']
?>

Named Argument After Argument Unpacking

It is now possible to specify named arguments after an argument unpack. e.g. foo(...$args, named: $arg).

full-path Key for File Uploads

File uploads now provide an additional full_path key, which contains the full path (rather than just the basename) of the uploaded file. This is intended for use in conjunction with "upload webkitdirectory".

Enumerations

Support for Enumerations has been added.

Fibers

Support for Fibers has been added.

First Class Callable Syntax

Closures for callables can now be created using the syntax myFunc(...), which is identical to Closure::fromCallable('myFunc').

Bilginize: The ... is part of the syntax, and not an omission.

Intersection Types

Support for intersection types has been added.

Dikkat

Intersection types cannot be used together with union types

Never type

A new return only type never has been added. This indicates that a function either exit(), throws an exception, or doesn't terminate.

new in Initializers

It is now possible to use new ClassName() expressions as the default value of a parameter, static variable, global constant initializers, and as attribute arguments. Objects can also be passed to define() now.

Readonly properties

Support for readonly has been added.

Final class constants

Added support for the final modifier for class constants. Also, interface constants become overridable by default.

CURL

Added the CURLOPT_DOH_URL option.

Added options for blob certificate when libcurl >= 7.71.0:

  • CURLOPT_ISSUERCERT_BLOB
  • CURLOPT_PROXY_ISSUERCERT
  • CURLOPT_PROXY_ISSUERCERT_BLOB
  • CURLOPT_PROXY_SSLCERT_BLOB
  • CURLOPT_PROXY_SSLKEY_BLOB
  • CURLOPT_SSLCERT_BLOB
  • CURLOPT_SSLKEY_BLOB

Added CURLStringFile, which can be used to post a file from a string rather than a file:

<?php
$file = new CURLStringFile($data, 'filename.txt', 'text/plain');
curl_setopt($curl, CURLOPT_POSTFIELDS, ['file' => $file]);
?>

FPM

Added openmetrics status format. It can be used by Prometheus to fetch FPM metrics.

Added new pool option for the dynamic process manager called pm.max_spawn_rate. It allows to start a number of children at a faster rate when dynamic pm is selected. The default value is 32 which was the previous hard coded value.

GD

Avif support is now available through imagecreatefromavif() and imageavif(), if libgd has been built with Avif support.

Hash

The following functions hash(), hash_file(), and hash_init() now support an additional optional options argument, which can be used to pass algorithm specific data.

MurmurHash3

Added support for MurmurHash3 with streaming support. The following variants are implemented:

  • murmur3a, 32-bit hash
  • murmur3c, 128-bit hash for x86
  • murmur3f, 128-bit hash for x64

The initial hash state can be passed through the seed key in the options array, for example:

<?php
$h = hash("murmur3f", $data, options: ["seed" => 42]);
echo $h, "\n";
?>
A valid seed value is within the range from 0 to the platform defined UINT_MAX, usually 4294967295.

xxHash

Added support for xxHash. The following variants are implemented:

  • xxh32, 32-bit hash
  • xxh64, 64-bit hash
  • xxh3, 64-bit hash
  • xxh128, 128-bit hash

The initial hash state can be passed through the seed key in the options array, for example:

<?php
$h = hash("xxh3", $data, options: ["seed" => 42]);
echo $h, "\n";
?>
Secret usage is supported through passing the secret key in the options array, too:
<?php
$h = hash("xxh3", $data, options: ["secret" => "at least 136 bytes long secret here"]);
echo $h, "\n";
?>
The quality of the custom secret is crucial for the quality of the resulting hash. It is highly recommended for the secret to use the best possible entropy.

MySQLi

New INI directive mysqli.local_infile_directory

The mysqli.local_infile_directory INI directive has been added, which can be used to specify a directory from which files are allowed to be loaded. It is only meaningful if mysqli.allow_local_infile is not enabled, as all directories are allowed in that case.

Binding parameters in execute

It is now possible to bind parameters by passing them as an array to mysqli_stmt::execute(). All values will be bound as strings. Only list arrays are allowed. This new feature is not available when MySQLi is compiled with libmysqlclient.

<?php
$stmt = $mysqli->prepare('INSERT INTO users(id, name) VALUES(?,?)');
$stmt->execute([1, $username]);
?>

New method mysqli_result::fetch_column()

mysqli_result::fetch_column() has been added to allow fetching a single scalar value from the result set. The new method accepts an optional 0-based column parameter of type int specifying which column to fetch from.

<?php
$result = $mysqli->query('SELECT username FROM users WHERE id = 123');
echo $result->fetch_column();
?>

PDO

The PDO::MYSQL_ATTR_LOCAL_INFILE_DIRECTORY attribute has been added, which can be used to specify a directory from which files are allowed to be loaded. It is only meaningful if PDO::MYSQL_ATTR_LOCAL_INFILE is not enabled, as all directories are allowed in that case.

PDO_SQLite

SQLite's "file:" DSN syntax is now supported, which allows specifying additional flags. This feature is not available if open_basedir is set.

<?php
new PDO('sqlite:file:path/to/sqlite.db?mode=ro')
?>

POSIX

Added POSIX_RLIMIT_KQUEUES and POSIX_RLIMIT_NPTS. These rlimits are only available on FreeBSD.

Standard

fputcsv() now accepts a new eol argument which allows to define a custom End of Line sequence, the default remains the same and is "\n".

SPL

SplFileObject::fputcsv() now accepts a new eol argument which allows to define a custom End of Line sequence, the default remains the same and is "\n".

User Contributed Notes

There are no user contributed notes for this page.


New Classes and Interfaces

cURL

  • CURLStringFile

Intl

  • IntlDatePatternGenerator

Reflection

  • ReflectionFiber

User Contributed Notes

There are no user contributed notes for this page.


New Functions

PHP Core

  • array_is_list()

GD

  • imagecreatefromavif()
  • imageavif()

MySQLi

  • mysqli_result::fetch_column()
  • mysqli_fetch_column()

Process Control

  • pcntl_rfork()

Reflection

  • ReflectionFunctionAbstract::getClosureUsedVariables()

Standard

  • fsync()
  • fdatasync()

Sodium

XChaCha20

  • sodium_crypto_stream_xchacha20()
  • sodium_crypto_stream_xchacha20_keygen()
  • sodium_crypto_stream_xchacha20_xor()

Ristretto255

Ristretto255 functions are available as of libsodium 1.0.18.

  • sodium_crypto_core_ristretto255_add()
  • sodium_crypto_core_ristretto255_from_hash()
  • sodium_crypto_core_ristretto255_is_valid_point()
  • sodium_crypto_core_ristretto255_random()
  • sodium_crypto_core_ristretto255_scalar_add()
  • sodium_crypto_core_ristretto255_scalar_complement()
  • sodium_crypto_core_ristretto255_scalar_invert()
  • sodium_crypto_core_ristretto255_scalar_mul()
  • sodium_crypto_core_ristretto255_scalar_negate()
  • sodium_crypto_core_ristretto255_scalar_random()
  • sodium_crypto_core_ristretto255_scalar_reduce()
  • sodium_crypto_core_ristretto255_scalar_sub()
  • sodium_crypto_core_ristretto255_sub()
  • sodium_crypto_scalarmult_ristretto255()
  • sodium_crypto_scalarmult_ristretto255_base()

User Contributed Notes

There are no user contributed notes for this page.


New Global Constants

cURL

  • CURLOPT_DOH_URL
  • CURLOPT_ISSUERCERT_BLOB
  • CURLOPT_PROXY_ISSUERCERT
  • CURLOPT_PROXY_ISSUERCERT_BLOB
  • CURLOPT_PROXY_SSLCERT_BLOB
  • CURLOPT_PROXY_SSLKEY_BLOB
  • CURLOPT_SSLCERT_BLOB
  • CURLOPT_SSLKEY_BLOB

GD

  • IMG_AVIF
  • IMG_WEBP_LOSSLESS

MySQLi

  • MYSQLI_REFRESH_REPLICA

    This constant has been added as a replacement for MYSQLI_REFRESH_SLAVE, in line with an upstream change in MySQL. The old constant is still available for backwards-compatibility reasons, but may be deprecated/removed in the future.

PCNTL

  • PRIO_DARWIN_BG
  • PRIO_DARWIN_THREAD

POSIX

  • POSIX_RLIMIT_KQUEUES
  • POSIX_RLIMIT_NPTS

Sockets

The following socket options are now defined if they are supported:

  • SO_ACCEPTFILTER
  • SO_DONTTRUNC
  • SO_WANTMORE
  • SO_MARK
  • TCP_DEFER_ACCEPT

Sodium

  • SODIUM_CRYPTO_STREAM_XCHACHA20_NONCEBYTES
  • SODIUM_CRYPTO_STREAM_XCHACHA20_KEYBYTES
  • SODIUM_CRYPTO_SCALARMULT_RISTRETTO255_BYTES
  • SODIUM_CRYPTO_SCALARMULT_RISTRETTO255_SCALARBYTES
  • SODIUM_CRYPTO_CORE_RISTRETTO255_BYTES
  • SODIUM_CRYPTO_CORE_RISTRETTO255_HASHBYTES
  • SODIUM_CRYPTO_CORE_RISTRETTO255_SCALARBYTES
  • SODIUM_CRYPTO_CORE_RISTRETTO255_NONREDUCEDSCALARBYTES

Tokenizer

  • T_READONLY

User Contributed Notes

There are no user contributed notes for this page.


Backward Incompatible Changes

PHP Core

$GLOBALS Access Restrictions

Access to the $GLOBALS array is now subject to a number of restrictions. Read and write access to individual array elements like $GLOBALS['var'] continues to work as-is. Read-only access to the entire $GLOBALS array also continues to be supported. However, write access to the entire $GLOBALS array is no longer supported. For example, array_pop($GLOBALS) will result in an error.

Usage of static Variables in Inherited Methods

When a method using static variables is inherited (but not overridden), the inherited method will now share static variables with the parent method.

<?php
class A {
public static function counter() {
static $counter = 0;
$counter++;
return $counter;
}
}
class B extends A {}
var_dump(A::counter()); // int(1)
var_dump(A::counter()); // int(2)
var_dump(B::counter()); // int(3), previously int(1)
var_dump(B::counter()); // int(4), previously int(2)
?>
This means that static variables in methods now behave the same way as static properties.

Optional parameters specified before required parameters

An optional parameter specified before required parameters is now always treated as required, even when called using named arguments. As of PHP 8.0.0, but prior to PHP 8.1.0, the below emits a deprecation notice on the definition, but runs successfully when called. As of PHP 8.1.0, an error of class ArgumentCountError is thrown, as it would be when called with positional arguments.

<?php
function makeyogurt($container = "bowl", $flavour)
{
return "Making a $container of $flavour yogurt.\n";
}
try
{
echo makeyogurt(flavour: "raspberry");
}
catch (Error $e)
{
echo get_class($e), ' - ', $e->getMessage(), "\n";
}
?>

Yukarıdaki örneğin PHP 8.0 çıktısı:

Deprecated: Required parameter $flavour follows optional parameter $container
 in example.php on line 3
Making a bowl of raspberry yogurt.

Yukarıdaki örneğin PHP 8.1 çıktısı:

Deprecated: Optional parameter $container declared before required parameter
 $flavour is implicitly treated as a required parameter in example.php on line 3
ArgumentCountError - makeyogurt(): Argument #1 ($container) not passed

Note that a default value of null can be used before required parameters to specify a nullable type, but the parameter will still be required.

Return Type Compatibility with Internal Classes

Most non-final internal methods now require overriding methods to declare a compatible return type, otherwise a deprecated notice is emitted during inheritance validation. In case the return type cannot be declared for an overriding method due to PHP cross-version compatibility concerns, a ReturnTypeWillChange attribute can be added to silence the deprecation notice.

New Keywords

readonly is a keyword now. However, it still may be used as function name.

never is now a reserved word, so it cannot be used to name a class, interface or trait, and is also prohibited from being used in namespaces.

Resource to Object Migration

Several resources have been migrated to objects. Return value checks using is_resource() should be replaced with checks for false.

  • The FileInfo functions now accept and return finfo objects instead of fileinfo resources.

  • The FTP functions now accept and return FTP\Connection objects instead of ftp resources.

  • The IMAP functions now accept and return IMAP\Connection objects instead of imap resources.

  • The LDAP functions now accept and return LDAP\Connection objects instead of ldap link resources.

  • The LDAP functions now accept and return LDAP\Result objects instead of ldap result resources.

  • The LDAP functions now accept and return LDAP\ResultEntry objects instead of ldap result entry resources.

  • The PgSQL functions now accept and return PgSql\Connection objects instead of pgsql link resources.

  • The PgSQL functions now accept and return PgSql\Result objects instead of pgsql result resources.

  • The PgSQL functions now accept and return PgSql\Lob objects instead of pgsql large object resources.

  • The PSpell functions now accept and return PSpell\Dictionary objects instead of pspell resources.

  • The PSpell functions now accept and return PSpell\Config objects instead of pspell config resources.

MySQLi

mysqli_fetch_fields(), and mysqli_fetch_field_direct() will now always return 0 for the max_length. This information can be computed by iterating over the result set, and taking the maximum length. This is what PHP was doing internally previously.

The MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH option no longer has any effect.

The MYSQLI_STORE_RESULT_COPY_DATA option no longer has any effect. Passing any value to the mode parameter of mysqli::store_result() no longer has any effect.

mysqli::connect() now returns true instead of null on success.

The default error handling mode has been changed from "silent" to "exceptions" See the MySQLi reporting mode page for more details on what this entails, and how to explicitly set this attribute. To restore the previous behaviour use: mysqli_report(MYSQLI_REPORT_OFF);

Classes extending mysqli_stmt::execute() are now required to specify the additional optional parameter.

MySQLnd

The mysqlnd.fetch_data_copy INI directive has been removed. This should not result in user-visible behavior changes.

OpenSSL

EC private keys will now be exported in PKCS#8 format rather than traditional format, just like all other keys.

openssl_pkcs7_encrypt() and openssl_cms_encrypt() will now to default using AES-128-CBC rather than RC2-40. The RC2-40 cipher is considered insecure and not enabled by default by OpenSSL 3.

PHP Data Objects

PDO::ATTR_STRINGIFY_FETCHES now stringifies values of type bool to "0" or "1". Previously bools were not stringified.

Calling PDOStatement::bindColumn() with PDO::PARAM_LOB will now constantly bind a stream result when PDO::ATTR_STRINGIFY_FETCHES is not enabled. Previously, the result would either be a stream or a string depending on the used database driver and the time the binding is performed.

MySQL Driver

Integers and floats in result sets will now be returned using native PHP types instead of strings when using emulated prepared statements. This matches the behavior of native prepared statements. The previous behaviour can be restored by enabling the PDO::ATTR_STRINGIFY_FETCHES option.

SQLite Driver

Integers and floats in results sets will now be returned using native PHP types. The previous behaviour can be restored by enabling the PDO::ATTR_STRINGIFY_FETCHES option.

Phar

To comply with the ArrayAccess interface, Phar::offsetUnset() and PharData::offsetUnset() no longer return a bool.

Standard

version_compare() no longer accepts undocumented operator abbreviations.

htmlspecialchars(), htmlentities(), htmlspecialchars_decode(), html_entity_decode(), and get_html_translation_table() now use ENT_QUOTES | ENT_SUBSTITUTE rather than ENT_COMPAT by default. This means that ' is escaped to &#039; while previously nothing was done. Additionally, malformed UTF-8 will be replaced by a Unicode substitution character, instead of resulting in an empty string.

debug_zval_dump() now prints the refcount of a reference wrappers with their refcount, instead of only prepending & to the value. This more accurately models reference representation since PHP 7.0.

debug_zval_dump() now prints interned instead of a dummy refcount for interned strings and immutable arrays.

Standard PHP Library (SPL)

SplFixedArray, will now be JSON encoded like an array

User Contributed Notes

There are no user contributed notes for this page.


Deprecated Features

PHP Core

Implementing Serializable without __serialize() and __unserialize()

Either only the new methods should be implemented, if no support for PHP prior to version 7.4 is provided, or both should be implemented.

Passing null to non-nullable parameters of built-in functions

Scalar types for built-in functions are nullable by default. This behaviour is deprecated to align with the behaviour of user-defined functions, where scalar types need to be marked as nullable explicitly.

<?php
var_dump(str_contains("foobar", null));
// Deprecated: Passing null to parameter #2 ($needle) of type string
// is deprecated
?>

Implicit incompatible float to int conversions

The implicit conversion of float to int which leads to a loss in precision is now deprecated. This affects array keys, int type declarations in coercive mode, and operators working on ints.

<?php
$a = [];
$a[15.5]; // deprecated, as key value loses the 0.5 component
$a[15.0]; // ok, as 15.0 == 15
?>

Calling a static element on a trait

Calling a static method, or accessing a static property directly on a trait is deprecated. Static methods and properties should only be accessed on a class using the trait.

Returning a non-array from __sleep()

Returning a value which is not an array from __sleep() now generates a diagnostic.

Returning by reference from a void function

<?php
function &test(): void {}
?>
Such a function is contradictory, and already emits the following E_NOTICE when called: Only variable references should be returned by reference.

Autovivification from false

Autovivification is the process of creating a new array when appending to a value. Autovivification is prohibited from scalar values, false however was an exception. This is now deprecated.

<?php
$arr = false;
$arr[] = 2; // deprecated
?>

Bilginize:

Autovivification from null and undefined values is still allowed:

<?php
// From undefined
$arr[] = 'some value';
$arr['doesNotExist'][] = 2;
// From null
$arr = null;
$arr[] = 2;
?>

ctype

Verifying non-string arguments

Passing a non-string argument is deprecated. In the future, the argument will be interpreted as a string instead of an ASCII codepoint. Depending on the intended behavior, the argument should either be cast to string or an explicit call to chr() should be made. All ctype_*() functions are affected.

Date

date_sunrise() and date_sunset() have been deprecated in favor of date_sun_info().

strptime() has been deprecated.
Use date_parse_from_format() instead (for locale-independent parsing),
or IntlDateFormatter::parse() (for locale-dependent parsing).

strftime() and gmstrftime() have been deprecated.
Use date() instead (for locale-independent formatting),
or IntlDateFormatter::format() (for locale-dependent formatting).

Filter

The FILTER_SANITIZE_STRING and FILTER_SANITIZE_STRIPPED filters are deprecated.

The filter.default INI directive is deprecated.

GD

The num_points of imagepolygon(), imageopenpolygon() and imagefilledpolygon() has been deprecated.

Hash

The mhash(),
mhash_keygen_s2k(),
mhash_count(),
mhash_get_block_size(),
and mhash_get_hash_name() have been deprecated.
Use the hash_*() functions instead.

IMAP

The NIL constant has been deprecated. Use 0 instead.

Intl

Calling IntlCalendar::roll() with a bool argument is deprecated. Use 1 and -1 instead of true and false respectively.

Multibyte String

Calling mb_check_encoding() without any arguments is deprecated.

MySQLi

The mysqli_driver::$driver_version property has been deprecated. It was meaningless and outdated, use PHP_VERSION_ID instead.

Calling mysqli::get_client_info() or mysqli_get_client_info() with the mysqli argument has been deprecated. Call mysqli_get_client_info() without any arguments to obtain the version information of the client library.

The mysqli::init() method has been deprecated.
Replace calls to parent::init() with
parent::__construct().

OCI8

The oci8.old_oci_close_semantics INI directive is deprecated.

ODBC

odbc_result_all() has been deprecated.

PDO

The PDO::FETCH_SERIALIZE fetch mode has been deprecated.

PgSQL

Not passing the connection argument to all pgsql_*() functions has been deprecated.

SOAP

The ssl_method option of SoapClient::__construct() has been deprecated in favor of SSL stream context options.

Standard

Calling key(), current(), next(), prev(), reset(), or end() on objects is deprecated. Either convert the object to an array using get_mangled_object_vars() first, or use the methods provided by a class that implements Iterator, such as ArrayIterator, instead.

The auto_detect_line_endings INI directive is deprecated. If necessary, handle "\r" line breaks manually instead.

The FILE_BINARY and FILE_TEXT constants have been deprecated. They never had any effect.

User Contributed Notes

There are no user contributed notes for this page.


Other Changes

Changes in SAPI Modules

CLI

Using -a without the readline extension will now result in an error. Previously, -a without readline had the same behavior as calling php without any arguments, apart from printing an additional "Interactive mode enabled" message. This mode was not interactive.

PHPDBG

Remote functionality from phpdbg has been removed.

Changed Functions

Core

The order of properties used in foreach, var_dump(), serialize(), object comparison, etc. was changed. Properties are now ordered naturally according to their declaration and inheritance. Properties declared in a base class are going to be before the child properties.

This order is consistent with internal layout of properties in zend_object structure and repeats the order in default_properties_table[] and properties_info_table[]. The old order was not documented and was caused by class inheritance implementation details.

Filter

The FILTER_FLAG_ALLOW_OCTAL flag of the FILTER_VALIDATE_INT filter now accept octal string with the leading octal prefix ("0o"/"0O").

GMP

All GMP functions now accept octal string with the leading octal prefix ("0o"/"0O").

PDO ODBC

PDO::getAttribute() with
PDO::ATTR_SERVER_INFO and
PDO::ATTR_SERVER_VERSION
now return values instead of throwing PDOException.

Reflection

ReflectionProperty::setAccessible() and ReflectionMethod::setAccessible() no longer have an effect. Properties and methods are now always considered accessible via Reflection.

Standard

syslog() is now binary safe.

Other Changes to Extensions

GD

imagewebp() can now do lossless WebP encoding by passing IMG_WEBP_LOSSLESS as the quality.

This constant is only defined, if the used libgd supports lossless WebP encoding.

MySQLi

mysqli_stmt::next_result() and mysqli::fetch_all() are now available when linking against libmysqlclient.

OpenSSL

  • The OpenSSL extension now requires at least OpenSSL version 1.0.2.

  • OpenSSL 3.0 is now supported. Be aware that many ciphers are no longer enabled by default (part of the legacy provider), and that parameter validation (e.g. minimum key sizes) is stricter now.

Phar

  • SHA256 is now used by default for signatures.

  • Added support for OpenSSL_SHA256 and OpenSSL_SHA512 signatures.

SNMP

  • Added support for SHA256 and SHA512 for the security protocol.

Standard

--with-password-argon2 now uses pkg-config to detect libargon2. As such, an alternative libargon2 location should now be specified using PKG_CONFIG_PATH.

Changes to INI File Handling

  • The log_errors_max_len INI directive has been removed. It no longer had an effect since PHP 8.0.0.

  • A leading dollar in a quoted string can now be escaped: "\${" will now be interpreted as a string with contents ${.

  • Backslashes in double quoted strings are now more consistently treated as escape characters. Previously, "foo\\" followed by something other than a newline was not considered as a terminated string. It is now interpreted as a string with contents foo\. However, as an exception, the string "foo\" followed by a newline will continue to be treated as a valid string with contents foo\ rather than an unterminated string. This exception exists to support naive uses of Windows file paths such as "C:\foo\".

User Contributed Notes

There are no user contributed notes for this page.


Migrating from PHP 7.4.x to PHP 8.0.x

İçindekiler

  • New Features
  • Backward Incompatible Changes
  • Deprecated Features
  • Other Changes

This new major version brings with it a number of new features and some incompatibilities that should be tested for before switching PHP versions in production environments.

Ayrıca, şu PHP sürümleri arasında geçiş kılavuzlarına da bakınız: 7.0.x, 7.1.x, 7.2.x, 7.3.x. 7.4.x.

User Contributed Notes

There are no user contributed notes for this page.


New Features

PHP Core

Named Arguments

Support for Named Arguments has been added.

Attributes

Support for Attributes has been added.

Constructor Property Promotion

Support for constructor property promotion (declaring properties in the constructor signature) has been added.

Union Types

Support for union types has been added.

Match Expression

Support for match expressions has been added.

Nullsafe Operator

Support for the nullsafe operator (?->) has been added.

Other new Features

  • The WeakMap class has been added.

  • The ValueError class has been added.

  • Any number of function parameters may now be replaced by a variadic argument, as long as the types are compatible. For example, the following code is now allowed:

    <?php
    class A {
    public function     method(int $many, string $parameters, $here) {}
    }
    class     B extends A {
    public function     method(...$everything) {}
    }
    ?>

  • static (as in "late static binding") can now be used as a return type:

    <?php
    class Test {
    public function     create(): static {
    return new static();
    }
    }
    ?>

  • It is now possible to fetch the class name of an object using $object::class. The result is the same as get_class($object).

  • new and instanceof can now be used with arbitrary expressions, using new (expression)(...$args) and $obj instanceof (expression).

  • Some consistency fixes to variable syntax have been applied, for example writing Foo::BAR::$baz is now allowed.

  • Added Stringable interface, which is automatically implemented if a class defines a __toString() method.

  • Traits can now define abstract private methods. Such methods must be implemented by the class using the trait.

  • throw can now be used as an expression. That allows usages like:

    <?php
    $fn     = fn() => throw new Exception('Exception in arrow function');
    $user = $session->user ?? throw new Exception('Must have user');

  • An optional trailing comma is now allowed in parameter lists.

    <?php
    function functionWithLongSignature(
    Type1 $parameter1,
    Type2 $parameter2, // <-- This comma is now allowed.
    ) {
    }

  • It is now possible to write catch (Exception) to catch an exception without storing it in a variable.

  • Support for mixed type has been added.

  • Private methods declared on a parent class no longer enforce any inheritance rules on the methods of a child class (with the exception of final private constructors). The following example illustrates which restrictions have been removed:

    <?php
    class ParentClass {
    private function     method1() {}
    private function     method2() {}
    private static function     method3() {}
    // Throws a warning, as "final" no longer has an effect:
    private final function method4() {}
    }
    class     ChildClass extends ParentClass {
    // All of the following are now allowed, even though the modifiers aren't
    // the same as for the private methods in the parent class.
    public abstract function method1() {}
    public static function     method2() {}
    public function     method3() {}
    public function     method4() {}
    }
    ?>

  • get_resource_id() has been added, which returns the same value as (int) $resource. It provides the same functionality under a clearer API.

  • The InternalIterator has been added.

Date and Time

  • DateTime::createFromInterface() and DateTimeImmutable::createFromInterface() have been added.

  • The DateTime format specifier p has been added, which is the same as P but returns Z rather than +00:00 for UTC.

DOM

DOMParentNode and DOMChildNode with new traversal and manipulation APIs have been added.

Filter

FILTER_VALIDATE_BOOL has been added as an alias for FILTER_VALIDATE_BOOLEAN. The new name is preferred, as it uses the canonical type name.

Enchant

enchant_dict_add(), enchant_dict_is_added(), and LIBENCHANT_VERSION have been added.

FPM

Added a new option pm.status_listen that allows getting the status from different endpoint (e.g. port or UDS file) which is useful for getting the status when all children are busy with serving long running requests.

Hash

HashContext objects can now be serialized.

Internationalization Functions

The IntlDateFormatter::RELATIVE_FULL,
IntlDateFormatter::RELATIVE_LONG,
IntlDateFormatter::RELATIVE_MEDIUM, and
IntlDateFormatter::RELATIVE_SHORT
constants have been added.

LDAP

ldap_count_references() has been added, which returns the number of reference messages in a search result.

OPcache

If the opcache.record_warnings ini setting is enabled, OPcache will record compile-time warnings and replay them on the next include, even if it is served from cache.

OpenSSL

Added Cryptographic Message Syntax (CMS) (» RFC 5652) support composed of functions for encryption, decryption, signing, verifying and reading. The API is similar to the API for PKCS #7 functions with an addition of new encoding constants: OPENSSL_ENCODING_DER, OPENSSL_ENCODING_SMIME and OPENSSL_ENCODING_PEM:

  • openssl_cms_encrypt() encrypts the message in the file with the certificates and outputs the result to the supplied file.
  • openssl_cms_decrypt() that decrypts the S/MIME message in the file and outputs the results to the supplied file.
  • openssl_cms_read() that exports the CMS file to an array of PEM certificates.
  • openssl_cms_sign() that signs the MIME message in the file with a cert and key and output the result to the supplied file.
  • openssl_cms_verify() that verifies that the data block is intact, the signer is who they say they are, and returns the certs of the signers.

Regular Expressions (Perl-Compatible)

preg_last_error_msg() has been added, which returns a human-readable message for the last PCRE error. It complements preg_last_error(), which returns an integer enum value instead.

Reflection

  • The following methods can now return information about default values of parameters of internal functions:

    • ReflectionParameter::isDefaultValueAvailable()
    • ReflectionParameter::getDefaultValue()
    • ReflectionParameter::isDefaultValueConstant()
    • ReflectionParameter::getDefaultValueConstantName()

SQLite3

SQLite3::setAuthorizer() and respective class constants have been added to set a userland callback that will be used to authorize or not an action on the database.

Standard Library

  • str_contains(), str_starts_with() and str_ends_with() have been added, which check whether haystack contains, starts with or ends with needle, respectively.

  • fdiv() has been added, which performs a floating-point division under IEEE 754 semantics. Division by zero is considered well-defined and will return one of Inf, -Inf or NaN.

  • get_debug_type() has been added, which returns a type useful for error messages. Unlike gettype(), it uses canonical type names, returns class names for objects, and indicates the resource type for resources.

  • printf() and friends now support the %h and %H format specifiers. These are the same as %g and %G, but always use "." as the decimal separator, rather than determining it through the LC_NUMERIC locale.

  • printf() and friends now support using "*" as width or precision, in which case the width/precision is passed as an argument to printf. This also allows using precision -1 with %g, %G, %h and %H. For example, the following code can be used to reproduce PHP's default floating point formatting:

    <?php
    printf    ("%.*H", (int) ini_get("precision"), $float);
    printf("%.*H", (int) ini_get("serialize_precision"), $float);
    ?>

  • proc_open() now supports pseudo-terminal (PTY) descriptors. The following attaches stdin, stdout and stderr to the same PTY:

    <?php
    $proc     = proc_open($command, [['pty'], ['pty'], ['pty']], $pipes);
    ?>

  • proc_open() now supports socket pair descriptors. The following attaches a distinct socket pair to stdin, stdout and stderr:

    <?php
    $proc     = proc_open($command, [['socket'], ['socket'], ['socket']], $pipes);
    ?>

    Unlike pipes, sockets do not suffer from blocking I/O issues on Windows. However, not all programs may work correctly with stdio sockets.

  • Sorting functions are now stable, which means that equal-comparing elements will retain their original order.

  • array_diff(), array_intersect() and their variations can now be used with a single array as argument. This means that usages like the following are now possible:

    <?php
    // OK even if $excludes is empty:
    array_diff($array, ...$excludes);
    // OK even if $arrays only contains a single array:
    array_intersect(...$arrays);
    ?>

  • The flag parameter of ob_implicit_flush() was changed to accept a bool rather than an int.

Tokenizer

PhpToken adds an object-based interface to the tokenizer. It provides a more uniform and ergonomic representation, while being more memory efficient and faster.

Zip

  • The Zip extension has been updated to version 1.19.1.

  • New ZipArchive::setMtimeName() and ZipArchive::setMtimeIndex() to set the modification time of an entry.

  • New ZipArchive::registerProgressCallback() to provide updates during archive close.

  • New ZipArchive::registerCancelCallback() to allow cancellation during archive close.

  • New ZipArchive::replaceFile() to replace an entry content.

  • New ZipArchive::isCompressionMethodSupported() to check optional compression features.

  • New ZipArchive::isEncryptionMethodSupported() to check optional encryption features.

  • The ZipArchive::lastId property to get the index value of the last added entry has been added.

  • Errors can now be checked after an archive has been closed using the
ZipArchive::status and
ZipArchive::statusSys properties, or the
ZipArchive::getStatusString() method.

  • The 'remove_path' option of ZipArchive::addGlob() and ZipArchive::addPattern() is now treated as an arbitrary string prefix (for consistency with the 'add_path' option), whereas formerly it was treated as a directory name.

  • Optional compression / encryption features are now listed in phpinfo.

User Contributed Notes

There are no user contributed notes for this page.


Backward Incompatible Changes

PHP Core

String to Number Comparison

Non-strict comparisons between numbers and non-numeric strings now work by casting the number to string and comparing the strings. Comparisons between numbers and numeric strings continue to work as before. Notably, this means that 0 == "not-a-number" is considered false now.

Comparison | Before | After
0 == "0" | true | true
0 == "0.0" | true | true
0 == "foo" | true | false
0 == "" | true | false
42 == " 42" | true | true
42 == "42foo" | true | false

Other incompatible Changes

  • match is now a reserved keyword.

  • mixed is now a reserved word, so it cannot be used to name a class, interface or trait, and is also prohibited from being used in namespaces.

  • Assertion failures now throw by default. If the old behavior is desired, assert.exception=0 can be set in the INI settings.

  • Methods with the same name as the class are no longer interpreted as constructors. The __construct() method should be used instead.

  • The ability to call non-static methods statically has been removed. Thus is_callable() will fail when checking for a non-static method with a classname (must check with an object instance).

  • The (real) and (unset) casts have been removed.

  • The track_errors ini directive has been removed. This means that php_errormsg is no longer available. The error_get_last() function may be used instead.

  • The ability to define case-insensitive constants has been removed. The third argument to define() may no longer be true.

  • The ability to specify an autoloader using an __autoload() function has been removed. spl_autoload_register() should be used instead.

  • The errcontext argument will no longer be passed to custom error handlers set with set_error_handler().

  • create_function() has been removed. Anonymous functions may be used instead.

  • each() has been removed. foreach or ArrayIterator should be used instead.

  • The ability to unbind this from closures that were created from a method, using Closure::fromCallable() or ReflectionMethod::getClosure(), has been removed.

  • The ability to unbind this from proper closures that contain uses of this has also been removed.

  • The ability to use array_key_exists() with objects has been removed. isset() or property_exists() may be used instead.

  • The behavior of array_key_exists() regarding the type of the key parameter has been made consistent with isset() and normal array access. All key types now use the usual coercions and array/object keys throw a TypeError.

  • Any array that has a number n as its first numeric key will use n+1 for its next implicit key, even if n is negative.

  • The default error_reporting level is now E_ALL. Previously it excluded E_NOTICE and E_DEPRECATED.

  • display_startup_errors is now enabled by default.

  • Using parent inside a class that has no parent will now result in a fatal compile-time error.

  • The @ operator will no longer silence fatal errors (E_ERROR, E_CORE_ERROR, E_COMPILE_ERROR, E_USER_ERROR, E_RECOVERABLE_ERROR, E_PARSE). Error handlers that expect error_reporting to be 0 when @ is used, should be adjusted to use a mask check instead:

    <?php
    // Replace
    function my_error_handler($err_no, $err_msg, $filename, $linenum) {
    if (    error_reporting() == 0) {
    return     false;
    }
    // ...
    }

    // With
    function my_error_handler($err_no, $err_msg, $filename, $linenum) {
    if (!(    error_reporting() & $err_no)) {
    return     false;
    }
    // ...
    }
    ?>

    Additionally, care should be taken that error messages are not displayed in production environments, which can result in information leaks. Please ensure that display_errors=Off is used in conjunction with error logging.

  • #[ is no longer interpreted as the start of a comment, as this syntax is now used for attributes.

  • Inheritance errors due to incompatible method signatures (LSP violations) will now always generate a fatal error. Previously a warning was generated in some cases.

  • The precedence of the concatenation operator has changed relative to bitshifts and addition as well as subtraction.

    <?php
    echo "Sum: " . $a + $b;
    // was previously interpreted as:
    echo ("Sum: " . $a) + $b;
    // is now interpreted as:
    echo "Sum:" . ($a + $b);
    ?>

  • Arguments with a default value that resolves to null at runtime will no longer implicitly mark the argument type as nullable. Either an explicit nullable type, or an explicit null default value has to be used instead.

    <?php
    // Replace
    function test(int $arg = CONST_RESOLVING_TO_NULL) {}
    // With
    function test(?int $arg = CONST_RESOLVING_TO_NULL) {}
    // Or
    function test(int $arg = null) {}
    ?>

  • A number of warnings have been converted into Error exceptions:

    • Attempting to write to a property of a non-object. Previously this implicitly created an stdClass object for null, false and empty strings.
    • Attempting to append an element to an array for which the PHP_INT_MAX key is already used.
    • Attempting to use an invalid type (array or object) as an array key or string offset.
    • Attempting to write to an array index of a scalar value.
    • Attempting to unpack a non-array/Traversable.
    • Attempting to access unqualified constants which are undefined. Previously, unqualified constant accesses resulted in a warning and were interpreted as strings.
    • Passing the wrong number of arguments to a non-variadic built-in function will throw an ArgumentCountError.
    • Passing invalid countable types to count() will throw a TypeError.

    A number of notices have been converted into warnings:

    • Attempting to read an undefined variable.
    • Attempting to read an undefined property.
    • Attempting to read an undefined array key.
    • Attempting to read a property of a non-object.
    • Attempting to access an array index of a non-array.
    • Attempting to convert an array to string.
    • Attempting to use a resource as an array key.
    • Attempting to use null, a boolean, or a float as a string offset.
    • Attempting to read an out-of-bounds string offset.
    • Attempting to assign an empty string to a string offset.

  • Attempting to assign multiple bytes to a string offset will now emit a warning.

  • Unexpected characters in source files (such as NUL bytes outside of strings) will now result in a ParseError exception instead of a compile warning.

  • Uncaught exceptions now go through "clean shutdown", which means that destructors will be called after an uncaught exception.

  • The compile time fatal error "Only variables can be passed by reference" has been delayed until runtime, and converted into an "Argument cannot be passed by reference" Error exception.

  • Some "Only variables should be passed by reference" notices have been converted to "Argument cannot be passed by reference" exception.

  • The generated name for anonymous classes has changed. It will now include the name of the first parent or interface:

    <?php
    new class extends ParentClass {};
    // -> ParentClass@anonymous
    new class implements FirstInterface, SecondInterface {};
    // -> FirstInterface@anonymous
    new class {};
    // -> class@anonymous
    ?>

    The name shown above is still followed by a NUL byte and a unique suffix.

  • Non-absolute trait method references in trait alias adaptations are now required to be unambiguous:

    <?php
    class X {
    use     T1, T2 {
    func as otherFunc;
    }
    function     func() {}
    }
    ?>

    If both T1::func() and T2::func() exist, this code was previously silently accepted, and func was assumed to refer to T1::func. Now it will generate a fatal error instead, and either T1::func or T2::func needs to be written explicitly.

  • The signature of abstract methods defined in traits is now checked against the implementing class method:

    <?php
    trait MyTrait {
    abstract private function     neededByTrait(): string;
    }

    class     MyClass {
    use     MyTrait;

    // Error, because of return type mismatch.
    private function neededByTrait(): int { return 42; }
    }
    ?>

  • Disabled functions are now treated exactly like non-existent functions. Calling a disabled function will report it as unknown, and redefining a disabled function is now possible.

  • data:// stream wrappers are no longer writable, which matches the documented behavior.

  • The arithmetic and bitwise operators +, -, *, /, **, %, <<, >>, &, |, ^, ~, ++, -- will now consistently throw a TypeError when one of the operands is an array, resource or non-overloaded object. The only exception to this is the array + array merge operation, which remains supported.

  • Float to string casting will now always behave locale-independently.

    <?php
    setlocale    (LC_ALL, "de_DE");
    $f = 3.14;
    echo     $f, "\n";
    // Previously: 3,14
    // Now: 3.14
    ?>

    See printf(), number_format() and NumberFormatter() for ways to customize number formatting.

  • Support for deprecated curly braces for offset access has been removed.

    <?php
    // Instead of:
    $array{0};
    $array{"key"};
    // Write:
    $array[0];
    $array["key"];
    ?>

  • Applying the final modifier on a private method will now produce a warning unless that method is the constructor.

  • If an object constructor exit()s, the object destructor will no longer be called. This matches the behavior when the constructor throws.

  • Namespaced names can no longer contain whitespace: While Foo\Bar will be recognized as a namespaced name, Foo \ Bar will not. Conversely, reserved keywords are now permitted as namespace segments, which may also change the interpretation of code: new\x is now the same as constant('new\x'), not new \x().

  • Nested ternaries now require explicit parentheses.

  • debug_backtrace() and Exception::getTrace() will no longer provide references to arguments. It will not be possible to change function arguments through the backtrace.

  • Numeric string handling has been altered to be more intuitive and less error-prone. Trailing whitespace is now allowed in numeric strings for consistency with how leading whitespace is treated. This mostly affects:

    • The is_numeric() function
    • String-to-string comparisons
    • Type declarations
    • Increment and decrement operations

    The concept of a "leading-numeric string" has been mostly dropped; the cases where this remains exist in order to ease migration. Strings which emitted an E_NOTICE "A non well-formed numeric value encountered" will now emit an E_WARNING "A non-numeric value encountered" and all strings which emitted an E_WARNING "A non-numeric value encountered" will now throw a TypeError. This mostly affects:

    • Arithmetic operations
    • Bitwise operations

    This E_WARNING to TypeError change also affects the E_WARNING "Illegal string offset 'string'" for illegal string offsets. The behavior of explicit casts to int/float from strings has not been changed.

  • Magic Methods will now have their arguments and return types checked if they have them declared. The signatures should match the following list:

    • __call(string $name, array $arguments): mixed
    • __callStatic(string $name, array $arguments): mixed
    • __clone(): void
    • __debugInfo(): ?array
    • __get(string $name): mixed
    • __invoke(mixed $arguments): mixed
    • __isset(string $name): bool
    • __serialize(): array
    • __set(string $name, mixed $value): void
    • __set_state(array $properties): object
    • __sleep(): array
    • __unserialize(array $data): void
    • __unset(string $name): void
    • __wakeup(): void

  • call_user_func_array() array keys will now be interpreted as parameter names, instead of being silently ignored.

  • Declaring a function called assert() inside a namespace is no longer allowed, and issues E_COMPILE_ERROR. The assert() function is subject to special handling by the engine, which may lead to inconsistent behavior when defining a namespaced function with the same name.

Resource to Object Migration

Several resources have been migrated to objects. Return value checks using is_resource() should be replaced with checks for false.

  • curl_init() will now return a CurlHandle object rather than a resource. The curl_close() function no longer has an effect, instead the CurlHandle instance is automatically destroyed if it is no longer referenced.

  • curl_multi_init() will now return a CurlMultiHandle object rather than a resource. The curl_multi_close() function no longer has an effect, instead the CurlMultiHandle instance is automatically destroyed if it is no longer referenced.

  • curl_share_init() will now return a CurlShareHandle object rather than a resource. The curl_share_close() function no longer has an effect, instead the CurlShareHandle instance is automatically destroyed if it is no longer referenced.

  • enchant_broker_init() will now return an EnchantBroker object rather than a resource.

  • enchant_broker_request_dict() and enchant_broker_request_pwl_dict() will now return an EnchantDictionary object rather than a resource.

  • The GD extension now uses GdImage objects as the underlying data structure for images, rather than resources. The imagedestroy() function no longer has an effect; instead the GdImage instance is automatically destroyed if it is no longer referenced.

  • openssl_x509_read() and openssl_csr_sign() will now return an OpenSSLCertificate object rather than a resource. The openssl_x509_free() function is deprecated and no longer has an effect, instead the OpenSSLCertificate instance is automatically destroyed if it is no longer referenced.

  • openssl_csr_new() will now return an OpenSSLCertificateSigningRequest object rather than a resource.

  • openssl_pkey_new() will now return an OpenSSLAsymmetricKey object rather than a resource. The openssl_pkey_free() function is deprecated and no longer has an effect, instead the OpenSSLAsymmetricKey instance is automatically destroyed if it is no longer referenced.

  • shmop_open() will now return a Shmop object rather than a resource. The shmop_close() function no longer has an effect, and is deprecated; instead the Shmop instance is automatically destroyed if it is no longer referenced.

  • socket_create(), socket_create_listen(), socket_accept(), socket_import_stream(), socket_addrinfo_connect(), socket_addrinfo_bind(), and socket_wsaprotocol_info_import() will now return a Socket object rather than a resource. socket_addrinfo_lookup() will now return an array of AddressInfo objects rather than resources.

  • msg_get_queue() will now return an SysvMessageQueue object rather than a resource.

  • sem_get() will now return an SysvSemaphore object rather than a resource.

  • shm_attach() will now return an SysvSharedMemory object rather than a resource.

  • xml_parser_create() and xml_parser_create_ns() will now return an XMLParser object rather than a resource. The xml_parser_free() function no longer has an effect, instead the XMLParser instance is automatically destroyed if it is no longer referenced.

  • The XMLWriter functions now accept and return, respectively, XMLWriter objects instead of resources.

  • inflate_init() will now return an InflateContext object rather than a resource.

  • deflate_init() will now return a DeflateContext object rather than a resource.

COM and .Net (Windows)

The ability to import case-insensitive constants from type libraries has been removed. The second argument to com_load_typelib() may no longer be false; com.autoregister_casesensitive may no longer be disabled; case-insensitive markers in com.typelib_file are ignored.

CURL

CURLOPT_POSTFIELDS no longer accepts objects as arrays. To interpret an object as an array, perform an explicit (array) cast. The same applies to other options accepting arrays as well.

Date and Time

mktime() and gmmktime() now require at least one argument. time() can be used to get the current timestamp.

DOM

Unimplemented classes from the DOM extension that had no behavior and contained test data have been removed. These classes have also been removed in the latest version of the DOM standard:

  • DOMNameList
  • DomImplementationList
  • DOMConfiguration
  • DomError
  • DomErrorHandler
  • DOMImplementationSource
  • DOMLocator
  • DOMUserDataHandler
  • DOMTypeInfo
  • DOMStringExtend

Unimplemented methods from the DOM extension that had no behavior have been removed:

  • DOMNamedNodeMap::setNamedItem()
  • DOMNamedNodeMap::removeNamedItem()
  • DOMNamedNodeMap::setNamedItemNS()
  • DOMNamedNodeMap::removeNamedItemNS()
  • DOMText::replaceWholeText()
  • DOMNode::compareDocumentPosition()
  • DOMNode::isEqualNode()
  • DOMNode::getFeature()
  • DOMNode::setUserData()
  • DOMNode::getUserData()
  • DOMDocument::renameNode()

Enchant

  • enchant_broker_list_dicts(), enchant_broker_describe() and enchant_dict_suggest() will now return an empty array instead of null.

Exif

read_exif_data() has been removed; exif_read_data() should be used instead.

Filter

  • The FILTER_FLAG_SCHEME_REQUIRED and FILTER_FLAG_HOST_REQUIRED flags for the FILTER_VALIDATE_URL filter have been removed. The scheme and host are (and have been) always required.

  • The INPUT_REQUEST and INPUT_SESSION source for filter_input() etc. have been removed. These were never implemented and their use always generated a warning.

GD

  • The deprecated function image2wbmp() has been removed.

  • The deprecated functions png2wbmp() and jpeg2wbmp() have been removed.

  • The default mode parameter of imagecropauto() no longer accepts -1. IMG_CROP_DEFAULT should be used instead.

  • On Windows, php_gd2.dll has been renamed to php_gd.dll.

GMP

gmp_random() has been removed. One of gmp_random_range() or gmp_random_bits() should be used instead.

Iconv

iconv implementations which do not properly set errno in case of errors are no longer supported.

IMAP

  • The unused default_host argument of imap_headerinfo() has been removed.

  • The imap_header() function which is an alias of imap_headerinfo() has been removed.

Internationalization Functions

  • The deprecated constant INTL_IDNA_VARIANT_2003 has been removed.

  • The deprecated Normalizer::NONE constant has been removed.

LDAP

  • The deprecated functions ldap_sort(),
ldap_control_paged_result() and
ldap_control_paged_result_response() have been removed.

  • The interface of ldap_set_rebind_proc() has changed; the callback parameter does not accept empty strings anymore; null should be used instead.

MBString

  • The mbstring.func_overload directive has been removed. The related MB_OVERLOAD_MAIL, MB_OVERLOAD_STRING, and MB_OVERLOAD_REGEX constants have also been removed. Finally, the "func_overload" and "func_overload_list" entries in mb_get_info() have been removed.

  • mb_parse_str() can no longer be used without specifying a result array.

  • A number of deprecated mbregex aliases have been removed. See the following list for which functions should be used instead:

    • mbregex_encoding() › mb_regex_encoding()
    • mbereg() › mb_ereg()
    • mberegi() › mb_eregi()
    • mbereg_replace() › mb_ereg_replace()
    • mberegi_replace() › mb_eregi_replace()
    • mbsplit() › mb_split()
    • mbereg_match() › mb_ereg_match()
    • mbereg_search() › mb_ereg_search()
    • mbereg_search_pos() › mb_ereg_search_pos()
    • mbereg_search_regs() › mb_ereg_search_regs()
    • mbereg_search_init() › mb_ereg_search_init()
    • mbereg_search_getregs() › mb_ereg_search_getregs()
    • mbereg_search_getpos() › mb_ereg_search_getpos()
    • mbereg_search_setpos() › mb_ereg_search_setpos()

  • The e modifier for mb_ereg_replace() has been removed. mb_ereg_replace_callback() should be used instead.

  • A non-string pattern argument to mb_ereg_replace() will now be interpreted as a string instead of an ASCII codepoint. The previous behavior may be restored with an explicit call to chr().

  • The needle argument for mb_strpos(),
mb_strrpos(), mb_stripos(),
mb_strripos(), mb_strstr(),
mb_stristr(), mb_strrchr() and
mb_strrichr() can now be empty.

  • The is_hex parameter, which was not used internally, has been removed from mb_decode_numericentity().

  • The legacy behavior of passing the encoding as the third argument instead of an offset for the mb_strrpos() function has been removed; an explicit 0 offset with the encoding should be provided as the fourth argument instead.

  • The ISO_8859-* character encoding aliases have been replaced by ISO8859-* aliases for better interoperability with the iconv extension. The mbregex ISO 8859 aliases with underscores (ISO_8859_* and ISO8859_*) have also been removed.

  • mb_ereg() and mb_eregi() will now return boolean true on a successful match. Previously they returned integer 1 if matches was not passed, or max(1, strlen($matches[0])) if matches was passed.

OCI8

  • The OCI-Lob class is now called OCILob, and the OCI-Collection class is now called OCICollection for name compliance enforced by PHP 8 arginfo type annotation tooling.

  • Several alias functions have been marked as deprecated.

  • oci_internal_debug() and its alias ociinternaldebug() have been removed.

ODBC

  • odbc_connect() no longer reuses connections.

  • The unused flags parameter of odbc_exec() has been removed.

OpenSSL

  • openssl_seal() and openssl_open() now require method to be passed, as the previous default of "RC4" is considered insecure.

Regular Expressions (Perl-Compatible)

When passing invalid escape sequences they are no longer interpreted as literals. This behavior previously required the X modifier - which is now ignored.

PHP Data Objects

  • The default error handling mode has been changed from "silent" to "exceptions". See Errors and error handling for details.

  • The signatures of some PDO methods have changed:

    • PDO::query(string $query, ?int $fetchMode = null, mixed ...$fetchModeArgs)
    • PDOStatement::setFetchMode(int $mode, mixed ...$args)

PDO ODBC

The php.ini directive pdo_odbc.db2_instance_name has been removed.

PDO MySQL

PDO::inTransaction() now reports the actual transaction state of the connection, rather than an approximation maintained by PDO. If a query that is subject to "implicit commit" is executed, PDO::inTransaction() will subsequently return false, as a transaction is no longer active.

PostgreSQL

  • The deprecated pg_connect() syntax using multiple parameters instead of a connection string is no longer supported.

  • The deprecated pg_lo_import() and pg_lo_export() signature that passes the connection as the last argument is no longer supported. The connection should be passed as first argument instead.

  • pg_fetch_all() will now return an empty array instead of false for result sets with zero rows.

Phar

Metadata associated with a phar will no longer be automatically unserialized, to fix potential security vulnerabilities due to object instantiation, autoloading, etc.

Reflection

  • The method signatures

    • ReflectionClass::newInstance($args)
    • ReflectionFunction::invoke($args)
    • ReflectionMethod::invoke($object, $args)

    have been changed to:

    • ReflectionClass::newInstance(...$args)
    • ReflectionFunction::invoke(...$args)
    • ReflectionMethod::invoke($object, ...$args)

    Code that must be compatible with both PHP 7 and PHP 8 can use the following signatures to be compatible with both versions:

    • ReflectionClass::newInstance($arg = null, ...$args)
    • ReflectionFunction::invoke($arg = null, ...$args)
    • ReflectionMethod::invoke($object, $arg = null, ...$args)

  • The ReflectionType::__toString() method will now return a complete debug representation of the type, and is no longer deprecated. In particular the result will include a nullability indicator for nullable types. The format of the return value is not stable and may change between PHP versions.

  • Reflection export() methods have been removed. Instead reflection objects can be cast to string.

  • ReflectionMethod::isConstructor() and
ReflectionMethod::isDestructor() now also return true for
__construct() and
__destruct() methods of interfaces.
Previously, this would only be true for methods of classes and traits.

  • ReflectionType::isBuiltin() method has been moved to ReflectionNamedType. ReflectionUnionType does not have it.

Sockets

  • The deprecated AI_IDN_ALLOW_UNASSIGNED and AI_IDN_USE_STD3_ASCII_RULES flags for socket_addrinfo_lookup() have been removed.

Standard PHP Library (SPL)

  • SplFileObject::fgetss() has been removed.

  • SplFileObject::seek() now always seeks to the beginning of the line. Previously, positions >=1 sought to the beginning of the next line.

  • SplHeap::compare() now specifies a method signature. Inheriting classes implementing this method will now have to use a compatible method signature.

  • SplDoublyLinkedList::push(), SplDoublyLinkedList::unshift() and SplQueue::enqueue() now return void instead of true.

  • spl_autoload_register() will now always throw a TypeError on invalid arguments, therefore the second argument do_throw is ignored and a notice will be emitted if it is set to false.

  • SplFixedArray is now an IteratorAggregate and not an Iterator. SplFixedArray::rewind(), SplFixedArray::current(), SplFixedArray::key(), SplFixedArray::next(), and SplFixedArray::valid() have been removed. In their place, SplFixedArray::getIterator() has been added. Any code which uses explicit iteration over SplFixedArray must now obtain an Iterator through SplFixedArray::getIterator(). This means that SplFixedArray is now safe to use in nested loops.

Standard Library

  • assert() will no longer evaluate string arguments, instead they will be treated like any other argument. assert($a == $b) should be used instead of assert('$a == $b'). The assert.quiet_eval ini directive and the ASSERT_QUIET_EVAL constant have also been removed, as they would no longer have any effect.

  • parse_str() can no longer be used without specifying a result array.

  • The string.strip_tags filter has been removed.

  • The needle argument of strpos(), strrpos(), stripos(), strripos(), strstr(), strchr(), strrchr(), and stristr() will now always be interpreted as a string. Previously non-string needles were interpreted as an ASCII code point. An explicit call to chr() can be used to restore the previous behavior.

  • The needle argument for strpos(),
strrpos(), stripos(), strripos(),
strstr(), stristr() and strrchr() can
now be empty.

  • The length argument for substr(), substr_count(), substr_compare(), and iconv_substr() can now be null. null values will behave as if no length argument was provided and will therefore return the remainder of the string instead of an empty string.

  • The length argument for array_splice() can now be null. null values will behave identically to omitting the argument, thus removing everything from the offset to the end of the array.

  • The args argument of vsprintf(), vfprintf(), and vprintf() must now be an array. Previously any type was accepted.

  • The 'salt' option of password_hash() is no longer supported. If the 'salt' option is used a warning is generated, the provided salt is ignored, and a generated salt is used instead.

  • The quotemeta() function will now return an empty string if an empty string was passed. Previously false was returned.

  • The following functions have been removed:

    • hebrevc()
    • convert_cyr_string()
    • money_format()
    • ezmlm_hash()
    • restore_include_path()
    • get_magic_quotes_gpc()
    • get_magic_quotes_runtime()
    • fgetss()

  • FILTER_SANITIZE_MAGIC_QUOTES has been removed.

  • Calling implode() with parameters in a reverse order ($pieces, $glue) is no longer supported.

  • parse_url() will now distinguish absent and empty queries and fragments:

    • http://example.com/foo › query = null, fragment = null
    • http://example.com/foo? › query = "", fragment = null
    • http://example.com/foo# › query = null, fragment = ""
    • http://example.com/foo?# › query = "", fragment = ""
    Previously all cases resulted in query and fragment being null.

  • var_dump() and debug_zval_dump() will now print floating-point numbers using serialize_precision rather than precision. In a default configuration, this means that floating-point numbers are now printed with full accuracy by these debugging functions.

  • If the array returned by __sleep() contains non-existing properties, these are now silently ignored. Previously, such properties would have been serialized as if they had the value null.

  • The default locale on startup is now always "C". No locales are inherited from the environment by default. Previously, LC_ALL was set to "C", while LC_CTYPE was inherited from the environment. However, some functions did not respect the inherited locale without an explicit setlocale() call. An explicit setlocale() call is now always required if a locale component should be changed from the default.

  • The deprecated DES fallback in crypt() has been removed. If an unknown salt format is passed to crypt(), the function will fail with *0 instead of falling back to a weak DES hash now.

  • Specifying out of range rounds for SHA256/SHA512 crypt() will now fail with *0 instead of clamping to the closest limit. This matches glibc behavior.

  • The result of sorting functions may have changed, if the array contains elements that compare as equal.

  • Any functions accepting callbacks that are not explicitly specified to accept parameters by reference will now warn if a callback with reference parameters is used. Examples include array_filter() and array_reduce(). This was already the case for most, but not all, functions previously.

  • The HTTP stream wrapper as used by functions like file_get_contents() now advertises HTTP/1.1 rather than HTTP/1.0 by default. This does not change the behavior of the client, but may cause servers to respond differently. To retain the old behavior, set the 'protocol_version' stream context option, e.g.

    <?php
    $ctx     = stream_context_create(['http' => ['protocol_version' => '1.0']]);
    echo     file_get_contents('http://example.org', false, $ctx);
    ?>

  • Calling crypt() without an explicit salt is no longer supported. If you would like to produce a strong hash with an auto-generated salt, use password_hash() instead.

  • substr(), mb_substr(), iconv_substr() and grapheme_substr() now consistently clamp out-of-bounds offsets to the string boundary. Previously, false was returned instead of the empty string in some cases.

  • On Windows, the program execution functions (proc_open(), exec(), popen() etc.) using the shell, now consistently execute %comspec% /s /c "$commandline", which has the same effect as executing $commandline (without additional quotes).

Sysvsem

  • The auto_release parameter of sem_get() was changed to accept bool values rather than int.

Tidy

  • The use_include_path parameter, which was not used internally, has been removed from tidy_repair_string().

  • tidy::repairString() and tidy::repairFile() became static methods.

Tokenizer

  • T_COMMENT tokens will no longer include a trailing newline. The newline will instead be part of a following T_WHITESPACE token. It should be noted that T_COMMENT is not always followed by whitespace, it may also be followed by T_CLOSE_TAG or end-of-file.

  • Namespaced names are now represented using the T_NAME_QUALIFIED (Foo\Bar), T_NAME_FULLY_QUALIFIED (\Foo\Bar) and T_NAME_RELATIVE (namespace\Foo\Bar) tokens. T_NS_SEPARATOR is only used for standalone namespace separators, and only syntactially valid in conjunction with group use declarations.

XMLReader

XMLReader::open() and XMLReader::xml() are now static methods. They can still be called as instance methods, but inheriting classes need to declare them as static if they override these methods.

XML-RPC

The XML-RPC extension has been moved to PECL and is no longer part of the PHP distribution.

Zip

ZipArchive::OPSYS_Z_CPM has been removed (this name was a typo). Use ZipArchive::OPSYS_CPM instead.

Zlib

  • gzgetss() has been removed.

  • zlib.output_compression is no longer automatically disabled for Content-Type: image/*.

Windows PHP Test Packs

The test runner has been renamed from run-test.php to run-tests.php, to match its name in php-src.

User Contributed Notes

aphpguy at galaxy dot za dot net 06-Jul-2023 12:33
If you have older projects that break with PHP7 to 8 migration due to the loose comparison issue:

i.e. if ($a == 0) different behaviour between PHP 7 and PHP 8
(for case like $a = "" or $a = "123foo" and other cases listed at top)

replace in old code:

if ($a == 0) { .. }

with

if (cmp_eq($a, $b)) { .. }

Tested with a wide range of scenarios, even against arrays, booleans, file handles, pipe handles, objects, scalars and numbers.

So old code still behave like before.
Then both PHP8.x and older PHP up to ver 7.x will give the exact same boolean true or false output for loose comparisons.

function cmp_eq($a, $b) {
// If both $a and $b are of type strings, compare them as strings
if (is_string($a) && is_string($b)) { return $a == $b; } // may not be === because php says '42' equals '042' true yet '42' === '042' is false.

// If both $a and $b are numeric strings, compare them as numbers
if (is_numeric($a) && is_numeric($b)) { return $a == $b; }

// If $a is an empty string and $b is 0, or vice versa, return true
if (($a === '' && $b === 0) || ($a === 0 && $b === '')) { return true; }

// If $a is a non-numeric string and $b is 0, or vice versa, return true
if ((is_string($a) && ($a !== '') && ($b === 0)) || (($a === 0) && is_string($b) && ($b !== ''))) {
return true;
}
// special case '123abc' == 123 .. php 7 casts 123abc to 123, then 123 == 123 results in true. lets mimic that.
if ((is_string($a) && ($a !== '') && (is_numeric($b)) && ((bool)$b))) {
$number = filter_var($a, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION); //"-234.56xyz"
return $number == $b;
}
if (is_numeric($a) && ((bool)$a) && is_string($b) && ($b !== '')) {
$number = filter_var($b, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION); //"-234.56xyz"
return $a == $number;
}

// If $a is a number and $b is a non-numeric string, cast $a to string and compare
if (is_numeric($a) && is_string($b)) { return strval($a) == $b; }

// If $b is a number and $a is a non-numeric string, cast $b to string and compare
if (is_string($a) && is_numeric($b)) { return $a == strval($b); }

// If $a and $b are both non-numeric strings, compare them directly, we should return true if they are the same
return $a == $b;
} // end func cmp_eq

Note: the better way would be to port code to PHP 8, use strict variable typing and rather make use of the === and !== operators.

But in some cases having lots of old code to quickly patch, this might help.
1035041238 at qq dot com 15-Nov-2022 02:41
In PHP 8, an empty string is less than any number, an English letter is always bigger than any number.

More interesting are the punctuation marks and non-word characters, some bigger than numbers, some smaller than numbers

$string = '`~!@#$%^&*()-_=+[]{};:\'"\\|,.<>/?';

$number = 999999999999;

$str_len = strlen($string);

$bigger = $smaller = $equal = [];
for ( $i = 0; $i < $str_len; ++$i ) {
    if ( $string[$i] > $number ) {
        $bigger[] = $string[$i];
    } elseif ( $string[$i] < $number ) {
        $smaller[] = $string[$i];
    } else {
        $equal[] = $string[$i];
    }
}

var_dump( $bigger ); //['`', '~', '@', '^', '_', '=', '[', ']', '{', '}', ';', ':', '\', '|', '<', '>', '?']
var_dump( $smaller); //['!', '#', '$', '%', '&', '*', '(', ')', '-', '+', ''', '"', ',', '.', '/']
var_dump( $equal); //[]
retry, abort, fail 25-Feb-2022 11:57
The change in string to int comparison mentioned above (e.g. '' == 0 now equates to false) has some other nasty consequences:

$a = '';

// php 8

if ( $a < 0 ) echo 'true'; // echos true
if ( $a < -1) echo 'true'; // echos true
if ( $a < -100 ) echo 'true'; // echos true

// php 7

if ( $a < 0 ) echo 'true'; // no output
if ( $a < -1) echo 'true'; // no output
if ( $a < -100 ) echo 'true'; // no output

So in a situation where you may have a web form input and expected an empty value to equate to 0, watch out not only for == 0, != 0, and <= 0 comparisons, but ALL < or <= comparisons to negative integers.


Deprecated Features

PHP Core

  • If a parameter with a default value is followed by a required parameter, the default value has no effect. This is deprecated as of PHP 8.0.0 and can generally be resolved by dropping the default value, without a change in functionality:

    <?php
    function test($a = [], $b) {} // Before
    function test($a, $b) {} // After
    ?>

    One exception to this rule are parameters of the form Type $param = null, where the null default makes the type implicitly nullable. This usage remains allowed, but it is recommended to use an explicit nullable type instead:

    <?php
    function test(A $a = null, $b) {} // Still allowed
    function test(?A $a, $b) {} // Recommended
    ?>

  • Calling get_defined_functions() with exclude_disabled explicitly set to false is deprecated and no longer has an effect. get_defined_functions() will never include disabled functions.

Enchant

  • enchant_broker_set_dict_path() and enchant_broker_get_dict_path() are deprecated, because that functionality is neither available in libenchant < 1.5 nor in libenchant-2.

  • enchant_dict_add_to_personal() is deprecated; use enchant_dict_add() instead.

  • enchant_dict_is_in_session() is deprecated; use enchant_dict_is_added() instead.

  • enchant_broker_free() and enchant_broker_free_dict() are deprecated; unset the object instead.

  • The ENCHANT_MYSPELL and ENCHANT_ISPELL constants are deprecated.

LibXML

libxml_disable_entity_loader() has been deprecated. As libxml 2.9.0 is now required, external entity loading is guaranteed to be disabled by default, and this function is no longer needed to protect against XXE attacks, unless the (still vulnerable) LIBXML_NOENT is used. In that case, it is recommended to refactor the code using libxml_set_external_entity_loader() to suppress loading of external entities.

PGSQL / PDO PGSQL

  • The constant PGSQL_LIBPQ_VERSION_STR now has the same value as PGSQL_LIBPQ_VERSION, and thus is deprecated.

  • Function aliases in the pgsql extension have been deprecated. See the following list for which functions should be used instead:

    • pg_errormessage() › pg_last_error()
    • pg_numrows() › pg_num_rows()
    • pg_numfields() › pg_num_fields()
    • pg_cmdtuples() › pg_affected_rows()
    • pg_fieldname() › pg_field_name()
    • pg_fieldsize() › pg_field_size()
    • pg_fieldtype() › pg_field_type()
    • pg_fieldnum() › pg_field_num()
    • pg_result() › pg_fetch_result()
    • pg_fieldprtlen() › pg_field_prtlen()
    • pg_fieldisnull() › pg_field_is_null()
    • pg_freeresult() › pg_free_result()
    • pg_getlastoid() › pg_last_oid()
    • pg_locreate() › pg_lo_create()
    • pg_lounlink() › pg_lo_unlink()
    • pg_loopen() › pg_lo_open()
    • pg_loclose() › pg_lo_close()
    • pg_loread() › pg_lo_read()
    • pg_lowrite() › pg_lo_write()
    • pg_loreadall() › pg_lo_read_all()
    • pg_loimport() › pg_lo_import()
    • pg_loexport() › pg_lo_export()
    • pg_setclientencoding() › pg_set_client_encoding()
    • pg_clientencoding() -> pg_client_encoding()

Standard Library

  • Sort comparison functions that return true or false will now throw a deprecation warning, and should be replaced with an implementation that returns an integer less than, equal to, or greater than zero.

    <?php
    // Replace
    usort($array, fn($a, $b) => $a > $b);
    // With
    usort($array, fn($a, $b) => $a <=> $b);
    ?>

Zip

  • Using an empty file as ZipArchive is deprecated. Libzip 1.6.0 does not accept empty files as valid zip archives any longer. The existing workaround will be removed in the next version.

  • The procedural API of Zip is deprecated. Use ZipArchive instead. Iteration over all entries can be accomplished using ZipArchive::statIndex() and a for loop:

    <?php
    // iterate using the procedural API
    assert(is_resource($zip));
    while (    $entry = zip_read($zip)) {
    echo     zip_entry_name($entry);
    }

    // iterate using the object-oriented API
    assert($zip instanceof ZipArchive);
    for (    $i = 0; $entry = $zip->statIndex($i); $i++) {
    echo     $entry['name'];
    }
    ?>

Reflection

  • ReflectionFunction::isDisabled() is deprecated, as it is no longer possible to create a ReflectionFunction for a disabled function. This method now always returns false.

  • ReflectionParameter::getClass(),
ReflectionParameter::isArray(), and
ReflectionParameter::isCallable() are deprecated.
ReflectionParameter::getType() and the
ReflectionType APIs should be used instead.

User Contributed Notes

dominique dot vienne at ik dot me 21-Jun-2021 01:23
If you try to get all methods / functions assigning an optional argument before a mandatory one, try this regex (single line)

<?php
function\s+[a-z][a-zA-Z0-9_]*\((?:\$[a-z][a-zA-Z0-9]*\s*,\s*)*
(?:\$[a-z][A-Za-z0-9_]*\s*=[^\$\)]+)+\$[a-z][a-zA-Z0-9_]*\)
?>

for
<?php
public function test($a, $b) {
$a = [];
$b = [$abc => $ss[],
];
}

private function too($c, $a = true, $b) {
}

protected function bar($a = []) {
}

public function foo($a, $b = true) {
}

public function fooBar32($a=true, $b = [], $c) {
}

private function oo_bAr($a = []) {
}
?>
it will match too() and fooBar32()

Have a nice migration! ;)


Other Changes

Changes in SAPI Modules

Apache2Handler

The PHP module has been renamed from php7_module to php_module.

Changed Functions

Reflection

ReflectionClass::getConstants() and ReflectionClass::getReflectionConstants() results can be now filtered via a new parameter filter. Three new constants were added to be used with it:

  • ReflectionClassConstant::IS_PUBLIC
  • ReflectionClassConstant::IS_PROTECTED
  • ReflectionClassConstant::IS_PRIVATE

Standard

The math functions abs(), ceil(), floor() and round() now properly heed the strict_types directive. Previously, they coerced the first argument even in strict type mode.

Zip

  • The ZipArchive::addGlob() and ZipArchive::addPattern() methods accept more values in the options array argument:

    • flags
    • comp_method
    • comp_flags
    • env_method
    • enc_password

  • ZipArchive::addEmptyDir(), ZipArchive::addFile() and ZipArchive::addFromString() methods have a new flags argument. This allows managing name encoding (ZipArchive::FL_ENC_*) and entry replacement (ZipArchive::FL_OVERWRITE).

  • ZipArchive::extractTo() now restores the file modification time.

Other Changes to Extensions

CURL

  • The CURL extension now requires at least libcurl 7.29.0.

  • The deprecated parameter version of curl_version() has been removed.

Date and Time

DatePeriod now implements IteratorAggregate (instead of Traversable).

DOM

DOMNamedNodeMap and DOMNodeList now implement IteratorAggregate (instead of Traversable).

Intl

IntlBreakIterator and ResourceBundle now implement IteratorAggregate (instead of Traversable).

Enchant

The enchant extension now uses libenchant-2 by default when available. libenchant version 1 is still supported but is deprecated and could be removed in the future.

GD

  • The num_points parameter of imagepolygon(), imageopenpolygon() and imagefilledpolygon() is now optional, i.e. these functions may be called with either 3 or 4 arguments. If the argument is omitted, it is calculated as count($points)/2.

  • The function imagegetinterpolation() to get the current interpolation method has been added.

JSON

The JSON extension cannot be disabled anymore and is always an integral part of any PHP build, similar to the date extension.

MBString

The Unicode data tables have been updated to version 13.0.0.

PDO

PDOStatement now implements IteratorAggregate (instead of Traversable).

LibXML

The minimum required libxml version is now 2.9.0. This means that external entity loading is now guaranteed to be disabled by default, and no extra steps need to be taken to protect against XXE attacks.

MySQLi / PDO MySQL

  • When mysqlnd is not used (which is the default and recommended option), the minimum supported libmysqlclient version is now 5.5.

  • mysqli_result now implements IteratorAggregate (instead of Traversable).

PGSQL / PDO PGSQL

The PGSQL and PDO PGSQL extensions now require at least libpq 9.1.

Readline

Calling readline_completion_function() before the interactive prompt starts (e.g. in auto_prepend_file) will now override the default interactive prompt completion function. Previously, readline_completion_function() only worked when called after starting the interactive prompt.

SimpleXML

SimpleXMLElement now implements RecursiveIterator and absorbed the functionality of SimpleXMLIterator. SimpleXMLIterator is an empty extension of SimpleXMLElement.

Changes to INI File Handling

  • com.dotnet_version is a new INI directive to choose the version of the .NET framework to use for dotnet objects.

  • zend.exception_string_param_max_len is a new INI directive to set the maximum string length in an argument of a stringified stack strace.

EBCDIC

EBCDIC targets are no longer supported, though it's unlikely that they were still working in the first place.

Performance

  • A Just-In-Time (JIT) compiler has been added to the opcache extension.

  • array_slice() on an array without gaps will no longer scan the whole array to find the start offset. This may significantly reduce the runtime of the function with large offsets and small lengths.

  • strtolower() now uses a SIMD implementation when using the "C" LC_CTYPE locale (which is the default).

User Contributed Notes

barry dot nelson at amobiledevice dot com 16-Jan-2023 12:18
If loading the PHP8 apache module on SuSe Linux, the configuration scripts incorrectly try to load it with automatically generated load statement of:
LoadModule php8_module                     /usr/lib64/apache2/mod_php8.so
This does not work, the patch below fixes the conf file generator...

--- /usr/share/apache2/get_module_list    2023-01-14 22:41:49.586825349 -0500
+++ /usr/share/apache2/get_module_list    2023-01-14 22:42:02.171600410 -0500
@@ -91,4 +91,8 @@
     esac

+    if [ "$module_id" = "php8_module" ]; then
+        module_id="php_module"
+    fi
+
     if [[ -f $module_path ]]; then
         printf "LoadModule %-30s %s\n" $module_id $module_path >&3


Migrating from PHP 7.3.x to PHP 7.4.x

İçindekiler

  • New Features
  • New Classes and Interfaces
  • New Functions
  • New Global Constants
  • Backward Incompatible Changes
  • Deprecated Features
  • Removed Extensions
  • Other Changes
  • Windows Support

This new minor version brings with it a number of new features and a few incompatibilities that should be tested for before switching PHP versions in production environments.

Ayrıca, şu PHP sürümleri arasında geçiş kılavuzlarına da bakınız: 7.0.x, 7.1.x, 7.2.x and 7.3.x.

User Contributed Notes

There are no user contributed notes for this page.


New Features

PHP Core

Typed properties

Class properties now support type declarations.

<?php
class User {
public int $id;
public string $name;
}
?>
The above example will enforce that $user->id can only be assigned int values and $user->name can only be assigned string values.

Arrow functions

Arrow functions provide a shorthand syntax for defining functions with implicit by-value scope binding.

<?php
$factor = 10;
$nums = array_map(fn($n) => $n * $factor, [1, 2, 3, 4]);
// $nums = array(10, 20, 30, 40);
?>

Limited return type covariance and argument type contravariance

The following code will now work:

<?php
class A {}
class B extends A {}

class Producer {
public function method(): A {}
}
class ChildProducer extends Producer {
public function method(): B {}
}
?>
Full variance support is only available if autoloading is used. Inside a single file only non-cyclic type references are possible, because all classes need to be available before they are referenced.

Null coalescing assignment operator

<?php
$array['key'] ??= computeDefault();
// is roughly equivalent to
if (!isset($array['key'])) {
$array['key'] = computeDefault();
}
?>

Unpacking inside arrays

<?php
$parts = ['apple', 'pear'];
$fruits = ['banana', 'orange', ...$parts, 'watermelon'];
// ['banana', 'orange', 'apple', 'pear', 'watermelon'];
?>

Numeric literal separator

Numeric literals can contain underscores between digits.

<?php
6.674_083e-11; // float
299_792_458; // decimal
0xCAFE_F00D; // hexadecimal
0b0101_1111; // binary
?>

Weak references

Weak references allow the programmer to retain a reference to an object that does not prevent the object from being destroyed.

Allow exceptions from __toString()

Throwing exceptions from __toString() is now permitted. Previously this resulted in a fatal error. Existing recoverable fatal errors in string conversions have been converted to Error exceptions.

CURL

CURLFile now supports stream wrappers in addition to plain file names, if the extension has been built against libcurl >= 7.56.0.

Filter

The FILTER_VALIDATE_FLOAT filter now supports the min_range and max_range options, with the same semantics as FILTER_VALIDATE_INT.

FFI

FFI is a new extension, which provides a simple way to call native functions, access native variables, and create/access data structures defined in C libraries.

GD

Added the IMG_FILTER_SCATTER image filter to apply a scatter filter to images.

Hash

Added crc32c hash using Castagnoli's polynomial. This CRC32 variant is used by storage systems, such as iSCSI, SCTP, Btrfs and ext4.

Multibyte String

Added the mb_str_split() function, which provides the same functionality as str_split(), but operating on code points rather than bytes.

OPcache

Support for preloading code has been added.

Regular Expressions (Perl-Compatible)

The preg_replace_callback() and preg_replace_callback_array() functions now accept an additional flags argument, with support for the PREG_OFFSET_CAPTURE and PREG_UNMATCHED_AS_NULL flags. This influences the format of the matches array passed to the callback function.

PDO

The username and password can now be specified as part of the PDO DSN for the mysql, mssql, sybase, dblib, firebird and oci drivers. Previously this was only supported by the pgsql driver. If a username/password is specified both in the constructor and the DSN, the constructor takes precedence.

It is now possible to escape question marks in SQL queries to avoid them being interpreted as parameter placeholders. Writing ?? allows sending a single question mark to the database and e.g. use the PostgreSQL JSON key exists (?) operator.

PDO_OCI

PDOStatement::getColumnMeta() is now available.

PDO_SQLite

PDOStatement::getAttribute(PDO::SQLITE_ATTR_READONLY_STATEMENT) allows checking whether the statement is read-only, i.e. if it doesn't modify the database.

PDO::setAttribute(PDO::SQLITE_ATTR_EXTENDED_RESULT_CODES, true) enables the use of SQLite3 extended result codes in PDO::errorInfo() and PDOStatement::errorInfo().

SQLite3

Added SQLite3::lastExtendedErrorCode() to fetch the last extended result code.

Added SQLite3::enableExtendedResultCodes($enable = true), which will make SQLite3::lastErrorCode() return extended result codes.

Standard

strip_tags() with array of tag names

strip_tags() now also accepts an array of allowed tags: instead of strip_tags($str, '<a><p>') you can now write strip_tags($str, ['a', 'p']).

Custom object serialization

A new mechanism for custom object serialization has been added, which uses two new magic methods: __serialize and __unserialize.

<?php
// Returns array containing all the necessary state of the object.
public function __serialize(): array;

// Restores the object state from the given data array.
public function __unserialize(array $data): void;
?>
The new serialization mechanism supersedes the Serializable interface, which will be deprecated in the future.

Array merge functions without arguments

array_merge() and array_merge_recursive() may now be called without any arguments, in which case they will return an empty array. This is useful in conjunction with the spread operator, e.g. array_merge(...$arrays).

proc_open() function

proc_open() now accepts an array instead of a string for the command. In this case the process will be opened directly (without going through a shell) and PHP will take care of any necessary argument escaping.

<?php
proc_open(['php', '-r', 'echo "Hello World\n";'], $descriptors, $pipes);
?>

proc_open() now supports redirect and null descriptors.

<?php
// Like 2>&1 on the shell
proc_open($cmd, [1 => ['pipe', 'w'], 2 => ['redirect', 1]], $pipes);
// Like 2>/dev/null or 2>nul on the shell
proc_open($cmd, [1 => ['pipe', 'w'], 2 => ['null']], $pipes);
?>

argon2i(d) without libargon

password_hash() now has the argon2i and argon2id implementations from the sodium extension when PHP is built without libargon.

User Contributed Notes

wow-apps.pro 26-Feb-2020 08:42
<?php

// How to get property type? For example for testing:

class Foo
{
    private int $num;
    private bool $isPositive;
    private $notes;
}

$reflection = new \ReflectionClass(Foo::class);
$classProperties = $reflection->getProperties(\ReflectionProperty::IS_PRIVATE);
foreach ($classProperties as $classProperty) {
    var_dump((string) $classProperty->getType());
}

/**
 * Result:
 * "int"
 * "bool"
 * ""
 */
Rain 27-Jan-2020 08:44
It should be noted that typed properties internally are never initialized to a default null. Unless of course you initialize them to null yourself. That's why you will always going to encounter this error if you try to access them before initialization.

**Typed property foo::$bar must not be accessed before initialization**

<?php
class User
{
    public $id;
    public string $name; // Typed property (Uninitialized)
    public ?string $age = null; //  Typed property (Initialized)
}

$user = new User;
var_dump(is_null($user->id)); // bool(true)
var_dump(is_null($user->name)); // PHP Fatal error: Typed property User::$name must not be accessed before initialization
var_dump(is_null($user->age));// bool(true)
?>

Another thing worth noting is that it's not possible to initialize a property of type object to anything other than null.  Since the evaluation of properties happens at compile-time and object instantiation happens at runtime. One last thing, callable type is not supported due to its context-dependent behavior.


New Classes and Interfaces

Reflection

  • ReflectionReference

User Contributed Notes

There are no user contributed notes for this page.


New Functions

PHP Core

  • get_mangled_object_vars()
  • password_algos()
  • sapi_windows_set_ctrl_handler()

GD

  • imagecreatefromtga()

Multibyte String

  • mb_str_split()

OpenSSL

  • openssl_x509_verify()

Process Control

  • pcntl_unshare()

SQLite3

  • SQLite3::backup()
  • SQLite3Stmt::getSQL()

User Contributed Notes

There are no user contributed notes for this page.


New Global Constants

PHP Core

  • PHP_WINDOWS_EVENT_CTRL_C
  • PHP_WINDOWS_EVENT_CTRL_BREAK

Multibyte String

  • MB_ONIGURUMA_VERSION

Sockets

Added the following FreeBSD-specific socket options:

  • SO_LABEL
  • SO_PEERLABEL
  • SO_LISTENQLIMIT
  • SO_LISTENQLEN
  • SO_USER_COOKIE

Tidy

  • TIDY_TAG_ARTICLE
  • TIDY_TAG_ASIDE
  • TIDY_TAG_AUDIO
  • TIDY_TAG_BDI
  • TIDY_TAG_CANVAS
  • TIDY_TAG_COMMAND
  • TIDY_TAG_DATALIST
  • TIDY_TAG_DETAILS
  • TIDY_TAG_DIALOG
  • TIDY_TAG_FIGCAPTION
  • TIDY_TAG_FIGURE
  • TIDY_TAG_FOOTER
  • TIDY_TAG_HEADER
  • TIDY_TAG_HGROUP
  • TIDY_TAG_MAIN
  • TIDY_TAG_MARK
  • TIDY_TAG_MENUITEM
  • TIDY_TAG_METER
  • TIDY_TAG_NAV
  • TIDY_TAG_OUTPUT
  • TIDY_TAG_PROGRESS
  • TIDY_TAG_SECTION
  • TIDY_TAG_SOURCE
  • TIDY_TAG_SUMMARY
  • TIDY_TAG_TEMPLATE
  • TIDY_TAG_TIME
  • TIDY_TAG_TRACK
  • TIDY_TAG_VIDEO

User Contributed Notes

There are no user contributed notes for this page.


Backward Incompatible Changes

PHP Core

Array-style access of non-arrays

Trying to use values of type null, bool, int, float or resource as an array (such as $null["key"]) will now generate a notice.

get_declared_classes() function

The get_declared_classes() function no longer returns anonymous classes that have not been instantiated yet.

fn keyword

fn is now a reserved keyword. In particular, it can no longer be used as a function or class name. It can still be used as a method or class constant name.

<?php tag at end of file

<?php at the end of the file (without trailing newline) will now be interpreted as an opening PHP tag. Previously it was interpreted either as a short opening tag followed by literal php and resulted in a syntax error (with short_open_tag=1) or was interpreted as a literal <?php string (with short_open_tag=0).

Stream wrappers

When using include/require on a stream, streamWrapper::stream_set_option() will be invoked with the STREAM_OPTION_READ_BUFFER option. Custom stream wrapper implementations may need to implement the streamWrapper::stream_set_option() method to avoid a warning (always returning false is a sufficient implementation).

Serialization

The o serialization format has been removed. As it is never produced by PHP, this may only break unserialization of manually crafted strings.

Password algorithm constants

Password hashing algorithm identifiers are now nullable strings rather than integers.

  • PASSWORD_DEFAULT was int 1; now is string '2y' (in PHP 7.4.0, 7.4.1, and 7.4.2 it was null)
  • PASSWORD_BCRYPT was int 1; now is string '2y'
  • PASSWORD_ARGON2I was int 2; now is string 'argon2i'
  • PASSWORD_ARGON2ID was int 3; now is string 'argon2id'

Applications correctly using the constants PASSWORD_DEFAULT, PASSWORD_BCRYPT, PASSWORD_ARGON2I, and PASSWORD_ARGON2ID will continue to function correctly.

htmlentities() function

htmlentities() will now raise a notice (instead of a strict standards warning) if it is used with an encoding for which only basic entity substitution is supported, in which case it is equivalent to htmlspecialchars().

fread() and fwrite() function

fread() and fwrite() will now return false if the operation failed. Previously an empty string or 0 was returned. EAGAIN/EWOULDBLOCK are not considered failures.

These functions now also raise a notice on failure, such as when trying to write to a read-only file resource.

BCMath Arbitrary Precision Mathematics

BCMath functions will now warn if a non well-formed number is passed, such as "32foo". The argument will be interpreted as zero, as before.

CURL

Attempting to serialize a CURLFile class will now generate an exception. Previously the exception was only thrown on unserialization.

Using CURLPIPE_HTTP1 is deprecated, and is no longer supported as of cURL 7.62.0.

The $version parameter of curl_version() is deprecated. If any value not equal to the default CURLVERSION_NOW is passed, a warning is raised and the parameter is ignored.

Date and Time

Calling var_dump() or similar on a DateTime or DateTimeImmutable instance will no longer leave behind accessible properties on the object.

Comparison of DateInterval objects (using ==, <, and so on) will now generate a warning and always return false. Previously all DateInterval objects were considered equal, unless they had properties.

Intl

The default parameter value of idn_to_ascii() and idn_to_utf8() is now INTL_IDNA_VARIANT_UTS46 instead of the deprecated INTL_IDNA_VARIANT_2003.

MySQLi

The embedded server functionality has been removed. It was broken since at least PHP 7.0.

The undocumented mysqli::$stat property has been removed in favor of mysqli::stat().

OpenSSL

The openssl_random_pseudo_bytes() function will now throw an exception in error situations, similar to random_bytes(). In particular, an Error is thrown if the number of requested bytes is less than or equal to zero, and an Exception is thrown if sufficient randomness cannot be gathered. The $crypto_strong output argument is guaranteed to always be true if the function does not throw, so explicitly checking it is not necessary.

Regular Expressions (Perl-Compatible)

When PREG_UNMATCHED_AS_NULL mode is used, trailing unmatched capturing groups will now also be set to null (or [null, -1] if offset capture is enabled). This means that the size of the $matches will always be the same.

PHP Data Objects

Attempting to serialize a PDO or PDOStatement instance will now generate an Exception rather than a PDOException, consistent with other internal classes which do not support serialization.

Reflection

Reflection objects will now generate an exception if an attempt is made to serialize them. Serialization for reflection objects was never supported and resulted in corrupted reflection objects. It has been explicitly prohibited now.

The values of the class constant of ReflectionClassConstant, ReflectionMethod and ReflectionProperty have changed.

Standard PHP Library (SPL)

Calling get_object_vars() on an ArrayObject instance will now always return the properties of the ArrayObject itself (or a subclass). Previously it returned the values of the wrapped array/object unless the ArrayObject::STD_PROP_LIST flag was specified.

Other affected operations are:

  • ReflectionObject::getProperties()
  • reset(), current(), etc. Use Iterator methods instead.
  • Potentially others working on object properties as a list, e.g. array_walk().

(array) casts are not affected. They will continue to return either the wrapped array, or the ArrayObject properties, depending on whether the ArrayObject::STD_PROP_LIST flag is used.

SplPriorityQueue::setExtractFlags() will throw an exception if zero is passed. Previously this would generate a recoverable fatal error on the next extraction operation.

ArrayObject, ArrayIterator, SplDoublyLinkedList and SplObjectStorage now support the __serialize() and __unserialize() mechanism in addition to the Serializable interface. This means that serialization payloads created on older PHP versions can still be unserialized, but new payloads created by PHP 7.4 will not be understood by older versions.

Tokenizer

token_get_all() will now emit a T_BAD_CHARACTER token for unexpected characters instead of leaving behind holes in the token stream.

Incoming Cookies

As of PHP 7.4.11, the names of incoming cookies are no longer url-decoded for security reasons.

User Contributed Notes

happydog at kennel17 24-Jan-2021 11:23
Re: "The o serialization format has been removed. As it is never produced by PHP, this may only break unserialization of manually crafted strings."

This little-o serialisation format was used by PHP3 but was never generated by PH PHP4 or above.  The deserialization code still recognised it, though, for reasons of backwards-compatibility with PHP3.

However, based on a bit of investigation, it looks like this code has been broken for about 15 years, so although this is listed as a deprecation, in practice it wasn't.

See this Stack Overflow question for a really great answer, with a lot more detail about this: https://stackoverflow.com/questions/65289729/what-was-phps-o-serialization-format-for


Deprecated Features

PHP Core

Nested ternary operators without explicit parentheses

Nested ternary operations must explicitly use parentheses to dictate the order of the operations. Previously, when used without parentheses, the left-associativity would not result in the expected behaviour in most cases.

<?php
1 ? 2 : 3 ? 4 : 5; // deprecated
(1 ? 2 : 3) ? 4 : 5; // ok
1 ? 2 : (3 ? 4 : 5); // ok
?>

Parentheses are not required when nesting into the middle operand, as this is always unambiguous and not affected by associativity:

1 ? 2 ? 3 : 4 : 5 // ok

Array and string offset access using curly braces

The array and string offset access syntax using curly braces is deprecated. Use $var[$idx] instead of $var{$idx}.

(real) cast and is_real() function

The (real) cast is deprecated, use (float) instead.

The is_real() function is also deprecated, use is_float() instead.

Unbinding $this when $this is used

Unbinding $this of a non-static closure that uses $this is deprecated.

parent keyword without parent class

Using parent inside a class without a parent is deprecated, and will throw a compile-time error in the future. Currently an error will only be generated if/when the parent is accessed at run-time.

allow_url_include INI option

The allow_url_include ini directive is deprecated. Enabling it will generate a deprecation notice at startup.

Invalid characters in base conversion functions

Passing invalid characters to base_convert(), bindec(), octdec() and hexdec() will now generate a deprecation notice. The result will still be computed as if the invalid characters did not exist. Leading and trailing whitespace, as well as prefixes of type 0x (depending on base) continue to be allowed.

Using array_key_exists() on objects

Using array_key_exists() on objects is deprecated. Instead either isset() or property_exists() should be used.

Magic quotes functions

The get_magic_quotes_gpc() and get_magic_quotes_runtime() functions are deprecated. They always return false.

hebrevc() function

The hebrevc() function is deprecated. It can be replaced with nl2br(hebrev($str)) or, preferably, the use of Unicode RTL support.

convert_cyr_string() function

The convert_cyr_string() function is deprecated. It can be replaced by one of mb_convert_string(), iconv() or UConverter.

money_format() function

The money_format() function is deprecated. It can be replaced by the intl NumberFormatter functionality.

ezmlm_hash() function

The ezmlm_hash() function is deprecated.

restore_include_path() function

The restore_include_path() function is deprecated. It can be replaced by ini_restore('include_path').

Implode with historical parameter order

Passing parameters to implode() in reverse order is deprecated, use implode($glue, $parts) instead of implode($parts, $glue).

COM

Importing type libraries with case-insensitive constant registering has been deprecated.

Filter

FILTER_SANITIZE_MAGIC_QUOTES is deprecated, use FILTER_SANITIZE_ADD_SLASHES instead.

Multibyte String

Passing a non-string pattern to mb_ereg_replace() is deprecated. Currently, non-string patterns are interpreted as ASCII codepoints. In PHP 8, the pattern will be interpreted as a string instead.

Passing the encoding as 3rd parameter to mb_strrpos() is deprecated. Instead pass a 0 offset, and encoding as 4th parameter.

Lightweight Directory Access Protocol

ldap_control_paged_result_response() and ldap_control_paged_result() are deprecated. Pagination controls can be sent along with ldap_search() instead.

Reflection

Calls to ReflectionType::__toString() now generate a deprecation notice. This method has been deprecated in favor of ReflectionNamedType::getName() in the documentation since PHP 7.1, but did not throw a deprecation notice for technical reasons.

The export() methods on all Reflection classes are deprecated. Construct a Reflection object and convert it to string instead:

<?php
// ReflectionClass::export(Foo::class, false) is:
echo new ReflectionClass(Foo::class), "\n";

// $str = ReflectionClass::export(Foo::class, true) is:
$str = (string) new ReflectionClass(Foo::class);
?>

Socket

The AI_IDN_ALLOW_UNASSIGNED and AI_IDN_USE_STD3_ASCII_RULES flags for socket_addrinfo_lookup() are deprecated, due to an upstream deprecation in glibc.

User Contributed Notes

Techlemur 13-Nov-2020 08:58
^((?!\().*)(\?[^php]).*(\:)([\s\v]+)(?!\().*[^\/](\?)([\s\v\h]*).*(\:[^=])
Regex to find deprecated nested ternaries
Ahmad Asjad 03-Jun-2020 10:01
(\?[^php]).*(\:).*(\?).*(\:[^=])
Above regex can help others to find the nested ternary operator


Removed Extensions

These extensions have been moved to PECL and are no longer part of the PHP distribution. The PECL package versions of these extensions will be created according to user demand.

  • Firebird/Interbase - access to an InterBase and/or Firebird based database is still available with the PDO Firebird driver.
  • Recode
  • WDDX

User Contributed Notes

There are no user contributed notes for this page.


Other Changes

Performance Improvements

PHP Core

A specialized VM opcode for the array_key_exists() function has been added, which improves performance of this function if it can be statically resolved. In namespaced code, this may require writing \array_key_exists() or explicitly importing the function.

Regular Expressions (Perl-Compatible)

When preg_match() in UTF-8 mode ("u" modifier) is repeatedly called on the same string (but possibly different offsets), it will only be checked for UTF-8 validity once.

Changes to INI File Handling

zend.exception_ignore_args is a new INI directive for including or excluding arguments from stack traces generated from exceptions.

opcache.preload_user is a new INI directive for specifying the user account under which preloading code is execute if it would otherwise be run as root (which is not allowed for security reasons).

Migration to pkg-config

A number of extensions have been migrated to exclusively use pkg-config for the detection of library dependencies. Generally, this means that instead of using --with-foo-dir=DIR or similar only --with-foo is used. Custom library paths can be specified either by adding additional directories to PKG_CONFIG_PATH or by explicitly specifying compilation options through FOO_CFLAGS and FOO_LIBS.

The following extensions and SAPIs are affected:

  • CURL:
    • --with-curl no longer accepts a directory.
  • Enchant:
    • --with-enchant no longer accepts a directory.
  • FPM:
    • --with-fpm-systemd now uses only pkg-config for libsystem checks. The libsystemd minimum required version is 209.
  • GD:
    • --with-gd becomes --enable-gd (whether to enable the extension at all) and --with-external-gd (to opt into using an external libgd, rather than the bundled one).
    • --with-png-dir has been removed. libpng is required.
    • --with-zlib-dir has been removed. zlib is required.
    • --with-freetype-dir becomes --with-freetype
    • --with-jpeg-dir becomes --with-jpeg
    • --with-webp-dir becomes --with-webp
    • --with-xpm-dir becomes --with-xpm
  • IMAP:
    • --with-kerberos-systemd no longer accepts a directory.
  • Intl:
    • --with-icu-dir has been removed. If --enable-intl is passed, then libicu is always required.
  • LDAP:
    • --with-ldap-sasl no longer accepts a directory.
  • Libxml:
    • --with-libxml-dir has been removed.
    • --enable-libxml becomes --with-libxml.
    • --with-libexpat-dir has been renamed to --with-expat and no longer accepts a directory.
  • Litespeed:
    • --with-litespeed becomes --enable-litespeed.
  • Mbstring:
    • --with-onig has been removed. Unless --disable-mbregex has been passed, libonig is required.
  • ODBC:
    • --with-iodbc no longer accepts a directory.
    • --with-unixODBC without a directory now uses pkg-config (preferred). Directory is still accepted for old versions without libodbc.pc.
  • OpenSSL:
    • --with-openssl no longer accepts a directory.
  • PCRE:
    • --with-pcre-regex has been removed. Instead --with-external-pcre is provided to opt into using an external PCRE library, rather than the bundled one.
  • PDO_SQLite:
    • --with-pdo-sqlite no longer accepts a directory.
  • Readline:
    • --with-libedit no longer accepts a directory.
  • Sodium:
    • --with-sodium no longer accepts a directory.
  • SQLite3:
    • --with-sqlite3 no longer accepts a directory.
  • XSL:
    • --with-xsl no longer accepts a directory.
  • Zip:
    • --with-libzip has been removed.
    • --enable-zip becomes --with-zip.

CSV escaping

fputcsv(),
fgetcsv(),
SplFileObject::fputcsv(),
SplFileObject::fgetcsv(), and
SplFileObject::setCsvControl()
now accept an empty string as $escape argument,
which disables the proprietary PHP escaping mechanism.

The behavior of str_getcsv() has been adjusted accordingly (formerly, an empty string was identical to using the default).

SplFileObject::getCsvControl() now may also return an empty string for the third array element, accordingly.

Data Filtering

The filter extension no longer exposes --with-pcre-dir for Unix builds and can now reliably be built as shared when using ./configure

GD

The behavior of imagecropauto() in the bundled libgd has been synced with that of system libgd:

  • IMG_CROP_DEFAULT is no longer falling back to IMG_CROP_SIDES
  • Threshold-cropping now uses the algorithm of system libgd

The default $mode parameter of imagecropauto() has been changed to IMG_CROP_DEFAULT; passing -1 is now deprecated.

imagescale() now supports aspect ratio preserving scaling to a fixed height by passing -1 as $new_width.

HASH Message Digest Framework

The hash extension cannot be disabled anymore and is always an integral part of any PHP build, similar to the date extension.

Intl

The intl extension now requires at least ICU 50.1.

ResourceBundle now implements Countable.

Lightweight Directory Access Protocol

Support for nsldap and umich_ldap has been removed.

Libxml

All libxml-based extensions now require libxml 2.7.6 or newer.

Multibyte String

The oniguruma library is no longer bundled with PHP, instead libonig needs to be available on the system. Alternatively --disable-mbregex can be used to disable the mbregex component.

OPcache

The --disable-opcache-file and --enable-opcache-file configure options have been removed in favor of the opcache.file_cache INI directive.

Password Hashing

The password_hash() and password_needs_rehash() functions now accept nullable string and int for $algo argument.

PEAR

Installation of PEAR (including PECL) is no longer enabled by default. It can be explicitly enabled using --with-pear. This option is deprecated and may be removed in the future.

Reflection

The numeric values of the modifier constants (IS_ABSTRACT, IS_DEPRECATED, IS_EXPLICIT_ABSTRACT, IS_FINAL, IS_IMPLICIT_ABSTRACT, IS_PRIVATE, IS_PROTECTED, IS_PUBLIC, and IS_STATIC) on the ReflectionClass, ReflectionFunction, ReflectionMethod, ReflectionObject, and ReflectionProperty classes have changed.

SimpleXML

SimpleXMLElement now implements Countable.

SQLite3

The bundled libsqlite has been removed. To build the SQLite3 extension a system libsqlite3 ? 3.7.4 is now required. To build the PDO_SQLite extension a system libsqlite3 ? 3.5.0 is now required.

Serialization and unserialization of SQLite3, SQLite3Stmt and SQLite3Result is now explicitly forbidden. Formerly, serialization of instances of these classes was possible, but unserialization yielded unusable objects.

The @param notation can now also be used to denote SQL query parameters.

Zip

The bundled libzip library has been removed. A system libzip >= 0.11 is now necessary to build the zip extension.

User Contributed Notes

santi at mola dot io 31-Jul-2020 07:54
Note for internals/extensions:

Many opcode values changed between PHP 7.3 and 7.4, so most documentation resources are outdated in that regard. You can look the definitions at Zend/zend_vm_opcodes.h in php-src. For example, ZEND_ECHO changes from 40 to 136.

While opcode changes happen in a lot of PHP versions, the change in 7.4 is quite significant.
ohcc at 163 dot com 09-Jun-2020 04:56
As of PHP 7.4, an exception thrown within the user-defined shutdown function can be caught by the user-defined exception handler.

<?php
    set_error_handler(
        function($level, $error, $file, $line){
            if(0 === error_reporting()){
                return false;
            }
            throw new ErrorException($error, -1, $level, $file, $line);
        },
        E_ALL
    );

    register_shutdown_function(function(){
        $error = error_get_last();
        if($error){
            throw new ErrorException($error['message'], -1, $error['type'], $error['file'], $error['line']);
        }
    });

    set_exception_handler(function($exception){
        // ... more code ...
    });

    require 'NotExists.php';
Florent H (Sowapps) 16-Feb-2020 07:37
This version brings an important changes with the directive zend.exception_ignore_args set to On by default.
In all stack traces, the args key is now missing.
All php frameworks have to handle this to report errors & exceptions.


Windows Support

configure flags

configure now regards additional CFLAGS and LDFLAGS set as environment variables.

CTRL handling

CTRL+C and CTRL+BREAK on console can be caught by setting a handler function with sapi_windows_set_ctrl_handler().

proc_open() on Windows can be passed a "create_process_group" option. It is required if the child process is supposed to handle CTRL events.

OPcache

OPcache now supports an arbitrary number of separate caches per user via the INI directive opcache.cache_id. All processes with the same cache ID and user share an OPcache instance.

stat

The stat implementation has been refactored.

  • An inode number is delivered and is based on the NTFS file index.
  • The device number is now based on the volume serial number.

Note that both values are derived from the system and provided as-is on 64-bit systems. On 32-bit systems, these values might overflow the 32-bit integer in PHP, so they're fake.

libsqlite3

libsqlite3 is no longer compiled statically into php_sqlite3.dll and php_pdo_sqlite.dll, but rather available as libsqlite3.dll. Refer to the installation instructions for SQLite3 and PDO_SQLITE, respectively.

User Contributed Notes

There are no user contributed notes for this page.


Migrating from PHP 7.2.x to PHP 7.3.x

İçindekiler

  • New Features
  • New Functions
  • New Global Constants
  • Backward Incompatible Changes
  • Deprecated Features
  • Other Changes
  • Windows Support

This new minor version brings with it a number of new features and a few incompatibilities that should be tested for before switching PHP versions in production environments.

Ayrıca, şu PHP sürümleri arasında geçiş kılavuzlarına da bakınız: 7.0.x, 7.1.x and 7.2.x.

User Contributed Notes

There are no user contributed notes for this page.


New Features

PHP Core

More Flexible Heredoc and Nowdoc Syntax

The closing marker for doc strings is no longer required to be followed by a semicolon or newline. Additionally the closing marker may be indented, in which case the indentation will be stripped from all lines in the doc string.

Array Destructuring supports Reference Assignments

Array destructuring now supports reference assignments using the syntax [&$a, [$b, &$c]] = $d. The same is also supported for list().

Instanceof Operator accepts Literals

instanceof now allows literals as the first operand, in which case the result is always false.

CompileError Exception instead of some Compilation Errors

A new CompileError exception has been added, from which ParseError inherits. A small number of compilation errors will now throw a CompileError instead of generating a fatal error. Currently this only affects compilation errors that may be thrown by token_get_all() in TOKEN_PARSE mode, but more errors may be converted in the future.

Trailing Commas are allowed in Calls

Trailing commas in function and method calls are now allowed.

Argon2id Support

The --with-password-argon2[=dir] configure argument now provides support for both Argon2i and Argon2id hashes in the password_hash(), password_verify(), password_get_info(), and password_needs_rehash() functions. Passwords may be hashed and verified using the PASSWORD_ARGON2ID constant. Support for both Argon2i and Argon2id in the password_*() functions now requires PHP be linked against libargon2 reference library ? 20161029.

FastCGI Process Manager

New options have been added to customize the FPM logging:

log_limit
This global option can be used for setting the log limit for the logged line which allows to log messages longer than 1024 characters without wrapping. It also fixes various wrapping issues.
log_buffering
This global option allows an experimental logging without extra buffering.
decorate_workers_output
This pool option allows to disable the output decoration for workers output when catch_workers_output is enabled.

BC Math Functions

bcscale() can now also be used as getter to retrieve the current scale in use.

Lightweight Directory Access Protocol

Full support for LDAP Controls has been added to the LDAP querying functions and ldap_parse_result():

  • A $controls parameter to send controls to the
server in ldap_add(),
ldap_mod_replace(), ldap_mod_add(),
ldap_mod_del(), ldap_rename(),
ldap_compare(), ldap_delete(),
ldap_modify_batch(),
ldap_search(), ldap_list() and
ldap_read() has been added.
  • The out parameter $controls to get controls from the server in ldap_parse_result() has been added.
  • Support for LDAP_OPT_SERVER_CONTROLS and LDAP_OPT_CLIENT_CONTROLS in ldap_get_option() and ldap_set_option() has been fixed.

Multibyte String Functions

Full Case-Mapping and Case-Folding Support

Support for full case-mapping and case-folding has been added. Unlike simple case-mapping, full case-mapping may change the length of the string. For example:

<?php
mb_strtoupper("Straße");
// Produces STRAßE on PHP 7.2
// Produces STRASSE on PHP 7.3
?>
The different casing mapping and folding modes are available through mb_convert_case():
  • MB_CASE_LOWER (used by mb_strtolower())
  • MB_CASE_UPPER (used by mb_strtoupper())
  • MB_CASE_TITLE
  • MB_CASE_FOLD
  • MB_CASE_LOWER_SIMPLE
  • MB_CASE_UPPER_SIMPLE
  • MB_CASE_TITLE_SIMPLE
  • MB_CASE_FOLD_SIMPLE (used by case-insensitive operations)
Only unconditional, language agnostic full case-mapping is performed.

Case-Insensitive String Operations use Case-Folding

Case-insensitive string operations now use case-folding instead of case- mapping during comparisons. This means that more characters will be considered (case insensitively) equal now.

MB_CASE_TITLE performs Title-Case Conversion

mb_convert_case() with MB_CASE_TITLE now performs title-case conversion based on the Cased and CaseIgnorable derived Unicode properties. In particular this also improves handling of quotes and apostrophes.

Unicode 11 Support

The Multibyte String data tables have been updated for Unicode 11.

Long String Support

The Multibyte String Functions now correctly support strings larger than 2GB.

Performance Improvements

Performance of the Multibyte String extension has been significantly improved across the board. The largest improvements are in case conversion functions.

Named Captures Support

The mb_ereg_* functions now support named captures. Matching functions like mb_ereg() will now return named captures both using their group number and their name, similar to PCRE:

<?php
mb_ereg('(?<word>\w+)', '?', $matches);
// => [0 => "?", 1 => "?", "word" => "?"];
?>
Additionally, mb_ereg_replace() now supports the \k<> and \k'' notations to reference named captures in the replacement string:
<?php
mb_ereg_replace('\s*(?<word>\w+)\s*', "_\k<word>_\k'word'_", ' foo ');
// => "_foo_foo_"
?>
\k<> and \k'' can also be used for numbered references, which also works with group numbers greater than 9.

Readline

Support for the completion_append_character and completion_suppress_append options has been added to readline_info(). These options are only available if PHP is linked against libreadline (rather than libedit).

User Contributed Notes

yoander dot valdes at yahoo dot com 31-May-2019 11:34
"Trailing commas in function and method calls are now allowed" means function parameters, example:

<?php

function my1() {
        echo "xxxxxx\n";
}

function my2() {
        echo "yyyyyy\n";
}

my1(),my2(); // PHP Parse error:  syntax error

my1(,); // PHP Parse error:  syntax error

my1(1,); my2(2,); // OK

?>


New Functions

PHP Core

  • array_key_first()
  • array_key_last()
  • gc_status()
  • hrtime()
  • is_countable()
  • net_get_interfaces()

FastCGI Process Manager

  • fpm_get_status()

Date and Time

  • DateTime::createFromImmutable()

GNU Multiple Precision

  • gmp_binomial()
  • gmp_kronecker()
  • gmp_lcm()
  • gmp_perfect_power()

Internationalization Functions

  • Normalizer::getRawDecomposition()
  • normalizer_get_raw_decomposition()
  • Spoofchecker::setRestrictionLevel()

Lightweight Directory Access Protocol

  • ldap_add_ext()
  • ldap_bind_ext()
  • ldap_delete_ext()
  • ldap_exop_refresh()
  • ldap_mod_add_ext()
  • ldap_mod_replace_ext()
  • ldap_mod_del_ext()
  • ldap_rename_ext()

OpenSSL

  • openssl_pkey_derive()

Sockets

  • socket_wsaprotocol_info_export()
  • socket_wsaprotocol_info_import()
  • socket_wsaprotocol_info_release()

User Contributed Notes

There are no user contributed notes for this page.


New Global Constants

PHP Core

  • PASSWORD_ARGON2ID

Client URL Library

  • CURLAUTH_BEARER
  • CURLAUTH_GSSAPI
  • CURLE_WEIRD_SERVER_REPLY
  • CURLINFO_APPCONNECT_TIME_T
  • CURLINFO_CONNECT_TIME_T
  • CURLINFO_CONTENT_LENGTH_DOWNLOAD_T
  • CURLINFO_CONTENT_LENGTH_UPLOAD_T
  • CURLINFO_FILETIME_T
  • CURLINFO_HTTP_VERSION
  • CURLINFO_NAMELOOKUP_TIME_T
  • CURLINFO_PRETRANSFER_TIME_T
  • CURLINFO_PROTOCOL
  • CURLINFO_PROXY_SSL_VERIFYRESULT
  • CURLINFO_REDIRECT_TIME_T
  • CURLINFO_SCHEME
  • CURLINFO_SIZE_DOWNLOAD_T
  • CURLINFO_SIZE_UPLOAD_T
  • CURLINFO_SPEED_DOWNLOAD_T
  • CURLINFO_SPEED_UPLOAD_T
  • CURLINFO_STARTTRANSFER_TIME_T
  • CURLINFO_TOTAL_TIME_T
  • CURL_LOCK_DATA_CONNECT
  • CURL_LOCK_DATA_PSL
  • CURL_MAX_READ_SIZE
  • CURLOPT_ABSTRACT_UNIX_SOCKET
  • CURLOPT_DISALLOW_USERNAME_IN_URL
  • CURLOPT_DNS_SHUFFLE_ADDRESSES
  • CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS
  • CURLOPT_HAPROXYPROTOCOL
  • CURLOPT_KEEP_SENDING_ON_ERROR
  • CURLOPT_PRE_PROXY
  • CURLOPT_PROXY_CAINFO
  • CURLOPT_PROXY_CAPATH
  • CURLOPT_PROXY_CRLFILE
  • CURLOPT_PROXY_KEYPASSWD
  • CURLOPT_PROXY_PINNEDPUBLICKEY
  • CURLOPT_PROXY_SSLCERT
  • CURLOPT_PROXY_SSLCERTTYPE
  • CURLOPT_PROXY_SSL_CIPHER_LIST
  • CURLOPT_PROXY_SSLKEY
  • CURLOPT_PROXY_SSLKEYTYPE
  • CURLOPT_PROXY_SSL_OPTIONS
  • CURLOPT_PROXY_SSL_VERIFYHOST
  • CURLOPT_PROXY_SSL_VERIFYPEER
  • CURLOPT_PROXY_SSLVERSION
  • CURLOPT_PROXY_TLS13_CIPHERS
  • CURLOPT_PROXY_TLSAUTH_PASSWORD
  • CURLOPT_PROXY_TLSAUTH_TYPE
  • CURLOPT_PROXY_TLSAUTH_USERNAME
  • CURLOPT_REQUEST_TARGET
  • CURLOPT_SOCKS5_AUTH
  • CURLOPT_SSH_COMPRESSION
  • CURLOPT_SUPPRESS_CONNECT_HEADERS
  • CURLOPT_TIMEVALUE_LARGE
  • CURLOPT_TLS13_CIPHERS
  • CURLPROXY_HTTPS
  • CURLSSH_AUTH_GSSAPI
  • CURL_SSLVERSION_MAX_DEFAULT
  • CURL_SSLVERSION_MAX_NONE
  • CURL_SSLVERSION_MAX_TLSv1_0
  • CURL_SSLVERSION_MAX_TLSv1_1
  • CURL_SSLVERSION_MAX_TLSv1_2
  • CURL_SSLVERSION_MAX_TLSv1_3
  • CURL_SSLVERSION_TLSv1_3
  • CURL_VERSION_ALTSVC (as of PHP 7.3.6)
  • CURL_VERSION_ASYNCHDNS
  • CURL_VERSION_BROTLI
  • CURL_VERSION_CONV
  • CURL_VERSION_CURLDEBUG (as of PHP 7.3.6)
  • CURL_VERSION_DEBUG
  • CURL_VERSION_GSSAPI
  • CURL_VERSION_GSSNEGOTIATE
  • CURL_VERSION_HTTPS_PROXY
  • CURL_VERSION_IDN
  • CURL_VERSION_LARGEFILE
  • CURL_VERSION_MULTI_SSL
  • CURL_VERSION_NTLM
  • CURL_VERSION_NTLM_WB
  • CURL_VERSION_PSL (as of PHP 7.3.6)
  • CURL_VERSION_SPNEGO
  • CURL_VERSION_SSPI
  • CURL_VERSION_TLSAUTH_SRP

Data Filtering

  • FILTER_SANITIZE_ADD_SLASHES

JavaScript Object Notation

  • JSON_THROW_ON_ERROR

Lightweight Directory Access Protocol

  • LDAP_CONTROL_ASSERT
  • LDAP_CONTROL_MANAGEDSAIT
  • LDAP_CONTROL_PROXY_AUTHZ
  • LDAP_CONTROL_SUBENTRIES
  • LDAP_CONTROL_VALUESRETURNFILTER
  • LDAP_CONTROL_PRE_READ
  • LDAP_CONTROL_POST_READ
  • LDAP_CONTROL_SORTREQUEST
  • LDAP_CONTROL_SORTRESPONSE
  • LDAP_CONTROL_PAGEDRESULTS
  • LDAP_CONTROL_AUTHZID_REQUEST
  • LDAP_CONTROL_AUTHZID_RESPONSE
  • LDAP_CONTROL_SYNC
  • LDAP_CONTROL_SYNC_STATE
  • LDAP_CONTROL_SYNC_DONE
  • LDAP_CONTROL_DONTUSECOPY
  • LDAP_CONTROL_PASSWORDPOLICYREQUEST
  • LDAP_CONTROL_PASSWORDPOLICYRESPONSE
  • LDAP_CONTROL_X_INCREMENTAL_VALUES
  • LDAP_CONTROL_X_DOMAIN_SCOPE
  • LDAP_CONTROL_X_PERMISSIVE_MODIFY
  • LDAP_CONTROL_X_SEARCH_OPTIONS
  • LDAP_CONTROL_X_TREE_DELETE
  • LDAP_CONTROL_X_EXTENDED_DN
  • LDAP_CONTROL_VLVREQUEST
  • LDAP_CONTROL_VLVRESPONSE

Multibyte String

  • MB_CASE_FOLD
  • MB_CASE_LOWER_SIMPLE
  • MB_CASE_UPPER_SIMPLE
  • MB_CASE_TITLE_SIMPLE
  • MB_CASE_FOLD_SIMPLE

OpenSSL

  • STREAM_CRYPTO_PROTO_SSLv3
  • STREAM_CRYPTO_PROTO_TLSv1_0
  • STREAM_CRYPTO_PROTO_TLSv1_1
  • STREAM_CRYPTO_PROTO_TLSv1_2

PostgreSQL

  • PGSQL_DIAG_SCHEMA_NAME
  • PGSQL_DIAG_TABLE_NAME
  • PGSQL_DIAG_COLUMN_NAME
  • PGSQL_DIAG_DATATYPE_NAME
  • PGSQL_DIAG_CONSTRAINT_NAME
  • PGSQL_DIAG_SEVERITY_NONLOCALIZED

User Contributed Notes

There are no user contributed notes for this page.


Backward Incompatible Changes

PHP Core

Heredoc/Nowdoc Ending Label Interpretation

Due to the introduction of flexible heredoc/nowdoc syntax, doc strings that contain the ending label inside their body may cause syntax errors or change in interpretation. For example in:

<?php
$str = <<<FOO
abcdefg
 FOO
FOO;
?>
the indented occurrence of FOO did not previously have any special meaning. Now it will be interpreted as the end of the heredoc string and the following FOO; will cause a syntax error. This issue can always be resolved by choosing an ending label that does not occur within the contents of the string.

Continue Targeting Switch issues Warning

continue statements targeting switch control flow structures will now generate a warning. In PHP such continue statements are equivalent to break, while they behave as continue 2 in other languages.

<?php
while ($foo) {
switch ($bar) {
case "baz":
continue;
// Warning: "continue" targeting switch is equivalent to
// "break". Did you mean to use "continue 2"?
}
}
?>

Strict Interpretation of Integer String Keys on ArrayAccess

Array accesses of type $obj["123"], where $obj implements ArrayAccess and "123" is an integer string literal will no longer result in an implicit conversion to integer, i.e., $obj->offsetGet("123") will be called instead of $obj->offsetGet(123). This matches existing behavior for non-literals. The behavior of arrays is not affected in any way, they continue to implicitly convert integral string keys to integers.

Static Properties no longer separated by Reference Assignment

In PHP, static properties are shared between inheriting classes, unless the static property is explicitly overridden in a child class. However, due to an implementation artifact it was possible to separate the static properties by assigning a reference. This loophole has been fixed.

<?php
class Test {
public static $x = 0;
}
class Test2 extends Test { }

Test2::$x = &$x;
$x = 1;

var_dump(Test::$x, Test2::$x);
// Previously: int(0), int(1)
// Now: int(1), int(1)
?>

References returned by Array and Property Accesses are immediately unwrapped

References returned by array and property accesses are now unwrapped as part of the access. This means that it is no longer possible to modify the reference between the access and the use of the accessed value:

<?php
$arr = [1];
$ref =& $arr[0];
var_dump($arr[0] + ($arr[0] = 2));
// Previously: int(4), Now: int(3)
?>
This makes the behavior of references and non-references consistent. Please note that reading and writing a value inside a single expression remains undefined behavior and may change again in the future.

Argument Unpacking of Traversables with non-Integer Keys no longer supported

Argument unpacking stopped working with Traversables with non-integer keys. The following code worked in PHP 5.6-7.2 by accident.

<?php
function foo(...$args) {
var_dump($args);
}
function gen() {
yield 1.23 => 123;
}
foo(...gen());
?>

Miscellaneous

The ext_skel utility has been completely redesigned with new options and some old options removed. This is now written in PHP and has no external dependencies.

Support for BeOS has been dropped.

Exceptions thrown due to automatic conversion of warnings into exceptions in EH_THROW mode (e.g. some DateTime exceptions) no longer populate error_get_last() state. As such, they now work the same way as manually thrown exceptions.

TypeError now reports wrong types as int and bool instead of integer and boolean, respectively.

Undefined variables passed to compact() will now be reported as a notice.

getimagesize() and related functions now report the mime type of BMP images as image/bmp instead of image/x-ms-bmp, since the former has been registered with the IANA (see » RFC 7903).

stream_socket_get_name() will now return IPv6 addresses wrapped in brackets. For example "[::1]:1337" will be returned instead of "::1:1337".

BCMath Arbitrary Precision Mathematics

All warnings thrown by BCMath functions are now using PHP's error handling. Formerly some warnings have directly been written to stderr.

bcmul() and bcpow() now return numbers with the requested scale. Formerly, the returned numbers may have omitted trailing decimal zeroes.

IMAP, POP3 and NNTP

rsh/ssh logins are disabled by default. Use imap.enable_insecure_rsh if you want to enable them. Note that the IMAP library does not filter mailbox names before passing them to the rsh/ssh command, thus passing untrusted data to this function with rsh/ssh enabled is insecure.

Multibyte String

Due to added support for named captures, mb_ereg_*() patterns using named captures will behave differently. In particular named captures will be part of matches and mb_ereg_replace() will interpret additional syntax. See Named Captures for more information.

MySQL Improved Extension

Prepared statements now properly report the fractional seconds for DATETIME, TIME and TIMESTAMP columns with decimals specifier (e.g. TIMESTAMP(6) when using microseconds). Formerly, the fractional seconds part was simply omitted from the returned values.

MySQL Functions (PDO_MYSQL)

Prepared statements now properly report the fractional seconds for DATETIME, TIME and TIMESTAMP columns with decimals specifier (e.g. TIMESTAMP(6) when using microseconds). Formerly, the fractional seconds part was simply omitted from the returned values. Please note that this only affects the usage of PDO_MYSQL with emulated prepares turned off (e.g. using the native preparation functionality). Statements using connections having PDO::ATTR_EMULATE_PREPARES=true (which is the default) were not affected by the bug fixed and have already been getting the proper fractional seconds values from the engine.

Reflection

Reflection export to string now uses int and bool instead of integer and boolean, respectively.

Standard PHP Library (SPL)

If an SPL autoloader throws an exception, following autoloaders will not be executed. Previously all autoloaders were executed and exceptions were chained.

SimpleXML

Mathematic operations involving SimpleXML objects will now treat the text as an int or float, whichever is more appropriate. Previously values were treated as ints unconditionally.

Incoming Cookies

As of PHP 7.3.23, the names of incoming cookies are no longer url-decoded for security reasons.

User Contributed Notes

chris at ocproducts dot com 01-May-2020 08:17
PCRE has been updated (https://wiki.php.net/rfc/pcre2-migration#backward_incompatible_changes).
The new PCRE version is stricter in some cases.


Deprecated Features

PHP Core

Case-Insensitive Constants

The declaration of case-insensitive constants has been deprecated. Passing true as the third argument to define() will now generate a deprecation warning. The use of case-insensitive constants with a case that differs from the declaration is also deprecated.

Namespaced assert()

Declaring a function called assert() inside a namespace is deprecated. The assert() function is subject to special handling by the engine, which may lead to inconsistent behavior when defining a namespaced function with the same name.

Searching Strings for non-string Needle

Passing a non-string needle to string search functions is deprecated. In the future the needle will be interpreted as a string instead of an ASCII codepoint. Depending on the intended behavior, you should either explicitly cast the needle to string or perform an explicit call to chr(). The following functions are affected:

  • strpos()
  • strrpos()
  • stripos()
  • strripos()
  • strstr()
  • strchr()
  • strrchr()
  • stristr()

Strip-Tags Streaming

The fgetss() function and the string.strip_tags stream filter have been deprecated. This also affects the SplFileObject::fgetss() method and gzgetss() function.

Data Filtering

The explicit usage of the constants FILTER_FLAG_SCHEME_REQUIRED and FILTER_FLAG_HOST_REQUIRED is now deprecated; both are implied for FILTER_VALIDATE_URL anyway.

Image Processing and GD

image2wbmp() has been deprecated.

Internationalization Functions

Usage of the Normalizer::NONE form throws a deprecation warning, if PHP is linked with ICU ? 56.

Multibyte String

The following undocumented mbereg_*() aliases have been deprecated. Use the corresponding mb_ereg_*() variants instead.

  • mbregex_encoding()
  • mbereg()
  • mberegi()
  • mbereg_replace()
  • mberegi_replace()
  • mbsplit()
  • mbereg_match()
  • mbereg_search()
  • mbereg_search_pos()
  • mbereg_search_regs()
  • mbereg_search_init()
  • mbereg_search_getregs()
  • mbereg_search_getpos()
  • mbereg_search_setpos()

ODBC and DB2 Functions (PDO_ODBC)

The pdo_odbc.db2_instance_name ini setting has been formally deprecated. It is deprecated in the documentation as of PHP 5.1.1.

User Contributed Notes

There are no user contributed notes for this page.


Other Changes

PHP Core

Set(raw)cookie accepts $option Argument

setcookie() and setrawcookie() now also support the following signature:

setcookie(string $name, string $value = "", array $options = []): bool
where $options is an associative array which may have any of the keys "expires", "path", "domain", "secure", "httponly" and "samesite".

New Syslog ini Directives

The following ini Directives have been added to customize logging, if error_log is set to syslog:

syslog.facility
Specifies what type of program is logging the message.
syslog.filter
Specifies the filter type to filter the logged messages, with the supported filter types - all, no-ctrl and ascii. Starting with PHP 7.3.8, raw is also available, restoring the way syslog behaved in previous PHP versions. This filter will also affect calls to syslog().
syslog.ident
Specifies the ident string which is prepended to every message.

Garbage Collection

The cyclic GC has been enhanced, which may result in considerable performance improvements.

Miscellaneous

var_export() now exports stdClass objects as an array cast to an object ((object) array( ... )), rather than using the nonexistent method stdClass::__setState().

debug_zval_dump() was changed to display recursive arrays and objects in the same way as var_dump(). Now, it doesn't display them twice.

array_push() and array_unshift() can now also be called with a single argument, which is particularly convenient wrt. the spread operator.

Interactive PHP Debugger

The unused constants PHPDBG_FILE, PHPDBG_METHOD, PHPDBG_LINENO and PHPDBG_FUNC have been removed.

FastCGI Process Manager

The getallheaders() function is now also available.

Client URL Library

libcurl ? 7.15.5 is now required.

Data Filtering

FILTER_VALIDATE_FLOAT now also supports a thousand option, which defines the set of allowed thousand separator chars. The default ("',.") is fully backward compatible with former PHP versions.

FILTER_SANITIZE_ADD_SLASHES has been added as an alias of the magic_quotes filter (FILTER_SANITIZE_MAGIC_QUOTES). The magic_quotes filter is subject to removal in future versions of PHP.

FTP

The default transfer mode has been changed to binary.

Internationalization Functions

Normalizer::NONE is deprecated, when PHP is linked with ICU ? 56.

Introduced Normalizer::FORM_KC_CF as Normalizer::normalize() argument for NFKC_Casefold normalization; available when linked with ICU ? 56.

JavaScript Object Notation

A new flag has been added, JSON_THROW_ON_ERROR, which can be used with json_decode() or json_encode() and causes these functions to throw the new JsonException upon an error, instead of setting the global error state that is retrieved with json_last_error() and json_last_error_msg(). JSON_PARTIAL_OUTPUT_ON_ERROR takes precedence over JSON_THROW_ON_ERROR.

Multibyte String

The configuration option --with-libmbfl is no longer available.

ODBC (Unified)

Support for ODBCRouter and Birdstep including the birdstep.max_links ini directive has been removed.

OPcache

The opcache.inherited_hack ini directive has been removed. The value has already been ignored since PHP 5.3.0.

OpenSSL

The min_proto_version and max_proto_version ssl stream options as well as related constants for possible TLS protocol values have been added.

Regular Expressions (Perl-Compatible)

The PCRE extension has been upgraded to PCRE2, which may cause minor behavioral changes (for instance, character ranges in classes are now more strictly interpreted), and augments the existing regular expression syntax.

preg_quote() now also escapes the '#' character.

Microsoft SQL Server and Sybase Functions (PDO_DBLIB)

The attribute PDO::DBLIB_ATTR_SKIP_EMPTY_ROWSETS to enable automatic skipping of empty rowsets has been added.

The PDO::DBLIB_ATTR_TDS_VERSION attribute which exposes the TDS version has been added.

DATETIME2 columns are now treated like DATETIME columns.

SQLite Functions (PDO_SQLITE)

SQLite3 databases can now be opened in read-only mode by setting the new PDO::SQLITE_ATTR_OPEN_FLAGS attribute to PDO::SQLITE_OPEN_READONLY.

Session Handling

session_set_cookie_params() now also supports the following signature:

session_set_cookie_params(array $options): bool
where $options is an associative array which may have any of the keys "lifetime", "path", "domain", "secure", "httponly" and "samesite". Accordingly, the return value of session_get_cookie_params() now also has an element with the key "samesite". Furthermore, the new session.cookie_samesite ini option to set the default of the SameSite directive for cookies has been added. It defaults to "" (empty string), so no SameSite directive is set. Can be set to "Lax" or "Strict", which sets the respective SameSite directive.

Tidy

Building against » tidyp is now also supported transparently. Since tidyp offers no API to get the release date, tidy_get_release() and tidy::getRelease() return 'unknown' in this case.

XML Parser

The return value of the xml_set_external_entity_ref_handler() callback is no longer ignored if the extension has been built against libxml. Formerly, the return value has been ignored, and parsing did never stop.

Zip

Building against the bundled libzip is discouraged, but still possible by adding --without-libzip to the configuration.

Zlib Compression

The zlib/level context option for the compress.zlib wrapper to facilitate setting the desired compression level has been added.

User Contributed Notes

There are no user contributed notes for this page.


Windows Support

PHP Core

More POSIX Conforming File Deletion

File descriptors are opened in shared read/write/delete mode by default. This effectively maps the POSIX semantics and allows to delete files with handles in use. It is not 100% same, some platform differences still persist. After the deletion, the filename entry is blocked, until all the opened handles to it are closed.

User Contributed Notes

There are no user contributed notes for this page.


Migrating from PHP 7.1.x to PHP 7.2.x

İçindekiler

  • New features
  • New functions
  • New global constants
  • Backward incompatible changes
  • Deprecated features in PHP 7.2.x
  • Other changes

This new minor version brings with it a number of new features and a few incompatibilities that should be tested for before switching PHP versions in production environments.

Ayrıca, şu PHP sürümleri arasında geçiş kılavuzlarına da bakınız: 7.0.x and 7.1.x.

User Contributed Notes

There are no user contributed notes for this page.


New features

New object type

A new type, object, has been introduced that can be used for (contravariant) parameter typing and (covariant) return typing of any objects.

<?php

function test(object $obj) : object
{
return new SplQueue();
}

test(new stdClass());

Extension loading by name

Shared extensions no longer require their file extension (.so for Unix or .dll for Windows) to be specified. This is enabled in the php.ini file, as well as in the dl() function.

Abstract method overriding

Abstract methods can now be overridden when an abstract class extends another abstract class.

<?php

abstract class A
{
abstract function test(string $s);
}
abstract class B extends A
{
// overridden - still maintaining contravariance for parameters and covariance for return
abstract function test($s) : int;
}

Sodium is now a core extension

The modern Sodium cryptography library has now become a core extension in PHP.

For a complete function reference, see the Sodium chapter.

Password hashing with Argon2

Argon2 has been added to the password hashing API, where the following constants have been exposed:

  • PASSWORD_ARGON2I
  • PASSWORD_ARGON2_DEFAULT_MEMORY_COST
  • PASSWORD_ARGON2_DEFAULT_TIME_COST
  • PASSWORD_ARGON2_DEFAULT_THREADS

Extended string types for PDO

PDO's string type has been extended to support the national character type when emulating prepares. This has been done with the following constants:

  • PDO::PARAM_STR_NATL
  • PDO::PARAM_STR_CHAR
  • PDO::ATTR_DEFAULT_STR_PARAM

These constants are utilised by bitwise OR'ing them with PDO::PARAM_STR:

<?php

$db->quote('über', PDO::PARAM_STR | PDO::PARAM_STR_NATL);

Additional emulated prepares debugging information for PDO

The PDOStatement::debugDumpParams() method has been updated to include the SQL being sent to the DB, where the full, raw query (including the replaced placeholders with their bounded values) will be shown. This has been added to aid with debugging emulated prepares (and so it will only be available when emulated prepares are turned on).

Support for extended operations in LDAP

Support for EXOP has been added to the LDAP extension. This has been done by exposing the following functions and constants:

  • ldap_parse_exop()
  • ldap_exop()
  • ldap_exop_passwd()
  • ldap_exop_whoami()
  • LDAP_EXOP_START_TLS
  • LDAP_EXOP_MODIFY_PASSWD
  • LDAP_EXOP_REFRESH
  • LDAP_EXOP_WHO_AM_I
  • LDAP_EXOP_TURN

Address Information additions to the Sockets extension

The sockets extension now has the ability to lookup address information, as well as connect to it, bind to it, and explain it. The following four functions have been added for this:

  • socket_addrinfo_lookup()
  • socket_addrinfo_connect()
  • socket_addrinfo_bind()
  • socket_addrinfo_explain()

Parameter type widening

Parameter types from overridden methods and from interface implementations may now be omitted. This is still in compliance with LSP, since parameters types are contravariant.

<?php

interface A
{
public function Test(array $input);
}

class B implements A
{
public function Test($input){} // type omitted for $input
}

Allow a trailing comma for grouped namespaces

A trailing comma can now be added to the group-use syntax introduced in PHP 7.0.

<?php

use Foo\Bar\{
Foo,
Bar,
Baz,
};

proc_nice() support on Windows

The proc_nice() function is now supported on Windows.

pack() and unpack() endian support

The pack() and unpack() functions now support float and double in both little and big endian.

Enhancements to the EXIF extension

The EXIF extension has been updated to support a much larger range of formats. This means that their format specific tags are now properly translated when parsing images with the exif_read_data() function. The following new formats are now supported:

  • Samsung
  • DJI
  • Panasonic
  • Sony
  • Pentax
  • Minolta
  • Sigma/Foveon
  • AGFA
  • Kyocera
  • Ricoh
  • Epson

The EXIF functions exif_read_data() and exif_thumbnail() now support passing streams as their first argument.

New features in PCRE

  • The J modifier for setting PCRE_DUPNAMES has been added.

SQLite3 allows writing BLOBs

SQLite3::openBlob() now allows to open BLOB fields in write mode; formerly only read mode was supported.

Oracle OCI8 Transparent Application Failover Callbacks

Support for Oracle Database Transparent Application Failover (TAF) callbacks has been added. TAF allows PHP OCI8 applications to automatically reconnect to a preconfigured database when a connection is broken. The new TAF callback support allows PHP applications to monitor and control reconnection during failover.

Enhancements to the ZIP extension

Read and write support for encrypted archives has been added (requires libzip 1.2.0).

The ZipArchive class now implements the Countable interface.

The zip:// stream now accepts a 'password' context option.

User Contributed Notes

antonfedonyuk at gmail dot com 21-Apr-2021 12:27
Note: "omitted" = "removed":
<?php
declare(strict_types=1);

interface ITest
{
    public function run(array $input);
}

class Test implements ITest
{
    public function run($input) {
       return $input;
   }
}

echo (new Test())->run('foo'); // display foo, no error
?>
info at ensostudio dot ru 11-Sep-2020 07:28
Note: you cant change parameter type for abstract method defined in interface.
<?php
abstract class AbstractAssocArray imlements ArrayAccess
{
    abstract public function offsetSet($offset, $value): void;
    ...
}
abstract class AbstractAssocArray2 extends AbstractAssocArray
{
    abstract public function offsetSet(string $offset, $value): void;
}
class AssocArray extends AbstractAssocArray2
{
    public function offsetSet(string $offset, $value): void
    {
         $this->{$offset} = $value;
    }
}
?>
It's throw fatal error: Declaration of AbstractAssocArray::offsetSet(string $offset, $value): void must be compatible with AbstractAssocArrayAccess::offsetSet($offset, $value).


New functions

PHP Core

  • stream_isatty()
  • sapi_windows_vt100_support()

SPL

  • spl_object_id()

DOM

  • DomNodeList::count()
  • DOMNamedNodeMap::count()

FTP

  • ftp_append()

GD

  • imagesetclip()
  • imagegetclip()
  • imageopenpolygon()
  • imageresolution()
  • imagecreatefrombmp()
  • imagebmp()

Hash

  • hash_hmac_algos()

LDAP

  • ldap_parse_exop()
  • ldap_exop()
  • ldap_exop_passwd()
  • ldap_exop_whoami()

Multibyte String

  • mb_chr()
  • mb_ord()
  • mb_scrub()

Oracle OCI8

  • oci_register_taf_callback()
  • oci_unregister_taf_callback()

Sockets

  • socket_addrinfo_lookup()
  • socket_addrinfo_connect()
  • socket_addrinfo_bind()
  • socket_addrinfo_explain()

Sodium

  • sodium_add()
  • sodium_bin2hex()
  • sodium_compare()
  • sodium_crypto_aead_aes256gcm_decrypt()
  • sodium_crypto_aead_aes256gcm_encrypt()
  • sodium_crypto_aead_aes256gcm_is_available()
  • sodium_crypto_aead_aes256gcm_keygen()
  • sodium_crypto_aead_chacha20poly1305_decrypt()
  • sodium_crypto_aead_chacha20poly1305_encrypt()
  • sodium_crypto_aead_chacha20poly1305_ietf_decrypt()
  • sodium_crypto_aead_chacha20poly1305_ietf_encrypt()
  • sodium_crypto_aead_chacha20poly1305_ietf_keygen()
  • sodium_crypto_aead_chacha20poly1305_keygen()
  • sodium_crypto_auth_keygen()
  • sodium_crypto_auth_verify()
  • sodium_crypto_auth()
  • sodium_crypto_box_keypair_from_secretkey_and_publickey()
  • sodium_crypto_box_keypair()
  • sodium_crypto_box_open()
  • sodium_crypto_box_publickey_from_secretkey()
  • sodium_crypto_box_publickey()
  • sodium_crypto_box_seal_open()
  • sodium_crypto_box_seal()
  • sodium_crypto_box_secretkey()
  • sodium_crypto_box_seed_keypair()
  • sodium_crypto_box()
  • sodium_crypto_generichash_final()
  • sodium_crypto_generichash_init()
  • sodium_crypto_generichash_keygen()
  • sodium_crypto_generichash_update()
  • sodium_crypto_generichash()
  • sodium_crypto_kdf_derive_from_key()
  • sodium_crypto_kdf_keygen()
  • sodium_crypto_kx_client_session_keys()
  • sodium_crypto_kx_keypair()
  • sodium_crypto_kx_publickey()
  • sodium_crypto_kx_secretkey()
  • sodium_crypto_kx_seed_keypair()
  • sodium_crypto_kx_server_session_keys()
  • sodium_crypto_pwhash_scryptsalsa208sha256_str_verify()
  • sodium_crypto_pwhash_scryptsalsa208sha256_str()
  • sodium_crypto_pwhash_scryptsalsa208sha256()
  • sodium_crypto_pwhash_str_verify()
  • sodium_crypto_pwhash_str()
  • sodium_crypto_pwhash()
  • sodium_crypto_scalarmult_base()
  • sodium_crypto_scalarmult()
  • sodium_crypto_secretbox_keygen()
  • sodium_crypto_secretbox_open()
  • sodium_crypto_secretbox()
  • sodium_crypto_shorthash_keygen()
  • sodium_crypto_shorthash()
  • sodium_crypto_sign_detached()
  • sodium_crypto_sign_ed25519_pk_to_curve25519()
  • sodium_crypto_sign_ed25519_sk_to_curve25519()
  • sodium_crypto_sign_keypair_from_secretkey_and_publickey()
  • sodium_crypto_sign_keypair()
  • sodium_crypto_sign_open()
  • sodium_crypto_sign_publickey_from_secretkey()
  • sodium_crypto_sign_publickey()
  • sodium_crypto_sign_secretkey()
  • sodium_crypto_sign_seed_keypair()
  • sodium_crypto_sign_verify_detached()
  • sodium_crypto_sign()
  • sodium_crypto_stream_keygen()
  • sodium_crypto_stream_xor()
  • sodium_crypto_stream()
  • sodium_hex2bin()
  • sodium_increment()
  • sodium_memcmp()
  • sodium_memzero()
  • sodium_pad()
  • sodium_unpad()

ZIP

  • ZipArchive::count()
  • ZipArchive::setEncryptionName()
  • ZipArchive::setEncryptionIndex()

User Contributed Notes

There are no user contributed notes for this page.


New global constants

PHP Core

  • PHP_FLOAT_DIG
  • PHP_FLOAT_EPSILON
  • PHP_FLOAT_MIN
  • PHP_FLOAT_MAX
  • PHP_OS_FAMILY

File Information

  • FILEINFO_EXTENSION

JSON

  • JSON_INVALID_UTF8_IGNORE
  • JSON_INVALID_UTF8_SUBSTITUTE

GD

  • IMG_EFFECT_MULTIPLY
  • IMG_BMP

LDAP

  • LDAP_EXOP_START_TLS
  • LDAP_EXOP_MODIFY_PASSWD
  • LDAP_EXOP_REFRESH
  • LDAP_EXOP_WHO_AM_I
  • LDAP_EXOP_TURN

Password Hashing

  • PASSWORD_ARGON2I
  • PASSWORD_ARGON2_DEFAULT_MEMORY_COST
  • PASSWORD_ARGON2_DEFAULT_TIME_COST
  • PASSWORD_ARGON2_DEFAULT_THREADS

PCRE

  • PREG_UNMATCHED_AS_NULL

PDO

  • PDO::PARAM_STR_NATL
  • PDO::PARAM_STR_CHAR
  • PDO::ATTR_DEFAULT_STR_PARAM

Sodium

  • SODIUM_LIBRARY_VERSION
  • SODIUM_LIBRARY_MAJOR_VERSION
  • SODIUM_LIBRARY_MINOR_VERSION
  • SODIUM_CRYPTO_AEAD_AES256GCM_KEYBYTES
  • SODIUM_CRYPTO_AEAD_AES256GCM_NSECBYTES
  • SODIUM_CRYPTO_AEAD_AES256GCM_NPUBBYTES
  • SODIUM_CRYPTO_AEAD_AES256GCM_ABYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_KEYBYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_NSECBYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_NPUBBYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_ABYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_KEYBYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_NSECBYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_NPUBBYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_ABYTES
  • SODIUM_CRYPTO_AUTH_BYTES
  • SODIUM_CRYPTO_AUTH_KEYBYTES
  • SODIUM_CRYPTO_BOX_SEALBYTES
  • SODIUM_CRYPTO_BOX_SECRETKEYBYTES
  • SODIUM_CRYPTO_BOX_PUBLICKEYBYTES
  • SODIUM_CRYPTO_BOX_KEYPAIRBYTES
  • SODIUM_CRYPTO_BOX_MACBYTES
  • SODIUM_CRYPTO_BOX_NONCEBYTES
  • SODIUM_CRYPTO_BOX_SEEDBYTES
  • SODIUM_CRYPTO_KDF_BYTES_MIN
  • SODIUM_CRYPTO_KDF_BYTES_MAX
  • SODIUM_CRYPTO_KDF_CONTEXTBYTES
  • SODIUM_CRYPTO_KDF_KEYBYTES
  • SODIUM_CRYPTO_KX_SEEDBYTES
  • SODIUM_CRYPTO_KX_SESSIONKEYBYTES
  • SODIUM_CRYPTO_KX_PUBLICKEYBYTES
  • SODIUM_CRYPTO_KX_SECRETKEYBYTES
  • SODIUM_CRYPTO_KX_KEYPAIRBYTES
  • SODIUM_CRYPTO_GENERICHASH_BYTES
  • SODIUM_CRYPTO_GENERICHASH_BYTES_MIN
  • SODIUM_CRYPTO_GENERICHASH_BYTES_MAX
  • SODIUM_CRYPTO_GENERICHASH_KEYBYTES
  • SODIUM_CRYPTO_GENERICHASH_KEYBYTES_MIN
  • SODIUM_CRYPTO_GENERICHASH_KEYBYTES_MAX
  • SODIUM_CRYPTO_PWHASH_ALG_ARGON2I13
  • SODIUM_CRYPTO_PWHASH_ALG_DEFAULT
  • SODIUM_CRYPTO_PWHASH_SALTBYTES
  • SODIUM_CRYPTO_PWHASH_STRPREFIX
  • SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE
  • SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE
  • SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE
  • SODIUM_CRYPTO_PWHASH_MEMLIMIT_MODERATE
  • SODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVE
  • SODIUM_CRYPTO_PWHASH_MEMLIMIT_SENSITIVE
  • SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_SALTBYTES
  • SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_STRPREFIX
  • SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_INTERACTIVE
  • SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_INTERACTIVE
  • SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_SENSITIVE
  • SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_SENSITIVE
  • SODIUM_CRYPTO_SCALARMULT_BYTES
  • SODIUM_CRYPTO_SCALARMULT_SCALARBYTES
  • SODIUM_CRYPTO_SHORTHASH_BYTES
  • SODIUM_CRYPTO_SHORTHASH_KEYBYTES
  • SODIUM_CRYPTO_SECRETBOX_KEYBYTES
  • SODIUM_CRYPTO_SECRETBOX_MACBYTES
  • SODIUM_CRYPTO_SECRETBOX_NONCEBYTES
  • SODIUM_CRYPTO_SIGN_BYTES
  • SODIUM_CRYPTO_SIGN_SEEDBYTES
  • SODIUM_CRYPTO_SIGN_PUBLICKEYBYTES
  • SODIUM_CRYPTO_SIGN_SECRETKEYBYTES
  • SODIUM_CRYPTO_SIGN_KEYPAIRBYTES
  • SODIUM_CRYPTO_STREAM_NONCEBYTES
  • SODIUM_CRYPTO_STREAM_KEYBYTES

Zip

  • ZipArchive::EM_NONE
  • ZipArchive::EM_AES_128
  • ZipArchive::EM_AES_192
  • ZipArchive::EM_AES_256

User Contributed Notes

There are no user contributed notes for this page.


Backward incompatible changes

Prevent number_format() from returning negative zero

Previously, it was possible for the number_format() function to return -0. Whilst this is perfectly valid according to the IEEE 754 floating point specification, this oddity was not desirable for displaying formatted numbers in a human-readable form.

<?php

var_dump(number_format(-0.01)); // now outputs string(1) "0" instead of string(2) "-0"

Convert numeric keys in object and array casts

Numeric keys are now better handled when casting arrays to objects and objects to arrays (either from explicit casting or by settype()).

This means that integer (or stringy integer) keys from arrays being casted to objects are now accessible:

<?php

// array to object
$arr = [0 => 1];
$obj = (object)$arr;
var_dump(
$obj,
$obj->{'0'}, // now accessible
$obj->{0} // now accessible
);

Yukarıdaki örneğin çıktısı:

object(stdClass)#1 (1) {
  ["0"]=>    // string key now, rather than integer key
  int(1)
}
int(1)
int(1)

And integer (or stringy integer) keys from objects being casted to arrays are now accessible:

<?php

// object to array
$obj = new class {
public function __construct()
{
$this->{0} = 1;
}
};
$arr = (array)$obj;
var_dump(
$arr,
$arr[0], // now accessible
$arr['0'] // now accessible
);

Yukarıdaki örneğin çıktısı:

array(1) {
  [0]=>    // integer key now, rather than string key
  int(1)
}
int(1)
int(1)

Disallow passing null to get_class()

Previously, passing null to the get_class() function would output the name of the enclosing class. This behaviour has now been removed, where an E_WARNING will be output instead. To achieve the same behaviour as before, the argument should simply be omitted.

Warn when counting non-countable types

An E_WARNING will now be emitted when attempting to count() non-countable types (this includes the sizeof() alias function).

<?php

var_dump(
count(null), // NULL is not countable
count(1), // integers are not countable
count('abc'), // strings are not countable
count(new stdClass), // objects not implementing the Countable interface are not countable
count([1,2]) // arrays are countable
);

Yukarıdaki örneğin çıktısı:

Warning: count(): Parameter must be an array or an object that implements Countable in %s on line %d

Warning: count(): Parameter must be an array or an object that implements Countable in %s on line %d

Warning: count(): Parameter must be an array or an object that implements Countable in %s on line %d

Warning: count(): Parameter must be an array or an object that implements Countable in %s on line %d
int(0)
int(1)
int(1)
int(1)
int(2)

Move ext/hash from resources to objects

As part of the long-term migration away from resources, the Hash extension has been updated to use objects instead of resources. The change should be seamless for PHP developers, except for where is_resource() checks have been made (which will need updating to is_object() instead).

Improve SSL/TLS defaults

The following changes to the defaults have been made:

  • tls:// now defaults to TLSv1.0 or TLSv1.1 or TLSv1.2
  • ssl:// an alias of tls://
  • STREAM_CRYPTO_METHOD_TLS_* constants default to TLSv1.0 or TLSv1.1 + TLSv1.2, instead of TLSv1.0 only

gettype() return value on closed resources

Previously, using gettype() on a closed resource would return a string of "unknown type". Now, a string of "resource (closed)" will be returned.

is_object() and __PHP_Incomplete_Class

Previously, using is_object() on the __PHP_Incomplete_Class class would return false. Now, true will be returned.

Promote the error level of undefined constants

Unqualified references to undefined constants will now generate an E_WARNING (instead of an E_NOTICE). In the next major version of PHP, they will generate Error exceptions.

Windows support

The officially supported, minimum Windows versions are now Windows 7/Server 2008 R2.

Checks on default property values of traits

Compatibility checks upon default trait property values will no longer perform casting.

object for class names

The object name was previously soft-reserved in PHP 7.0. This is now hard-reserved, prohibiting it from being used as a class, trait, or interface name.

NetWare support

Support for NetWare has now been removed.

array_unique() with SORT_STRING

While array_unique() with SORT_STRING formerly copied the array and removed non-unique elements (without packing the array afterwards), now a new array is built by adding the unique elements. This can result in different numeric indexes.

bcmod() changes with floats

The bcmod() function no longer truncates fractional numbers to integers. As such, its behavior now follows fmod(), rather than the % operator. For example bcmod('4', '3.5') now returns 0.5 instead of 1.

Hashing functions and non-cryptographic hashes

The hash_hmac(), hash_hmac_file(), hash_pbkdf2(), and hash_init() (with HASH_HMAC) functions no longer accept non-cryptographic hashes.

json_decode() function options

The json_decode() function option, JSON_OBJECT_AS_ARRAY, is now used if the second parameter (assoc) is null. Previously, JSON_OBJECT_AS_ARRAY was always ignored.

rand() and mt_rand() output

Sequences generated by rand() and mt_rand() for a specific seed may differ from PHP 7.1 on 64-bit machines (due to the fixing of a modulo bias bug in the implementation).

Removal of sql.safe_mode ini setting

The sql.safe_mode ini setting has now been removed.

Changes to date_parse() and date_parse_from_format()

The zone element of the array returned by date_parse() and date_parse_from_format() represents seconds instead of minutes now, and its sign is inverted. For instance -120 is now 7200.

Incoming Cookies

As of PHP 7.2.34, the names of incoming cookies are no longer url-decoded for security reasons.

User Contributed Notes

There are no user contributed notes for this page.


Deprecated features in PHP 7.2.x

Unquoted strings

Unquoted strings that are non-existent global constants are taken to be strings of themselves. This behaviour used to emit an E_NOTICE, but will now emit an E_WARNING. In the next major version of PHP, an Error exception will be thrown instead.

<?php

var_dump(NONEXISTENT);

/* Output:
Warning: Use of undefined constant NONEXISTENT - assumed 'NONEXISTENT' (this will throw an Error in a future version of PHP) in %s on line %d
string(11) "NONEXISTENT"
*/

png2wbmp() and jpeg2wbmp()

The png2wbmp() and jpeg2wbmp() functions from the GD extension have now been deprecated and will be removed in the next major version of PHP.

INTL_IDNA_VARIANT_2003 variant

The Intl extension has deprecated the INTL_IDNA_VARIANT_2003 variant, which is currently being used as the default for idn_to_ascii() and idn_to_utf8(). PHP 7.4 will see these defaults changed to INTL_IDNA_VARIANT_UTS46, and the next major version of PHP will remove INTL_IDNA_VARIANT_2003 altogether.

__autoload() method

The __autoload() method has been deprecated because it is inferior to spl_autoload_register() (due to it not being able to chain autoloaders), and there is no interoperability between the two autoloading styles.

track_errors ini setting and $php_errormsg variable

When the track_errors ini setting is enabled, a $php_errormsg variable is created in the local scope when a non-fatal error occurs. Given that the preferred way of retrieving such error information is by using error_get_last(), this feature has been deprecated.

create_function() function

Given the security issues of this function (being a thin wrapper around eval()), this dated function has now been deprecated. The preferred alternative is to use anonymous functions.

mbstring.func_overload ini setting

Given the interoperability problems of string-based functions being used in environments with this setting enabled, it has now been deprecated.

(unset) cast

Casting any expression to this type will always result in null, and so this superfluous casting type has now been deprecated.

parse_str() without a second argument

Without the second argument to parse_str(), the query string parameters would populate the local symbol table. Given the security implications of this, using parse_str() without a second argument has now been deprecated. The function should always be used with two arguments, as the second argument causes the query string to be parsed into an array.

gmp_random() function

This function generates a random number based upon a range that is calculated by an unexposed, platform-specific limb size. Because of this, the function has now been deprecated. The preferred way of generating a random number using the GMP extension is by gmp_random_bits() and gmp_random_range().

each() function

This function is far slower at iteration than a normal foreach, and causes implementation issues for some language changes. It has therefore been deprecated.

assert() with a string argument

Using assert() with a string argument required the string to be eval()'ed. Given the potential for remote code execution, using assert() with a string argument has now been deprecated in favour of using boolean expressions.

$errcontext argument of error handlers

The $errcontext argument contains all local variables of the error site. Given its rare usage, and the problems it causes with internal optimisations, it has now been deprecated. Instead, a debugger should be used to retrieve information on local variables at the error site.

read_exif_data() function

The read_exif_data() alias has been deprecated. The exif_read_data() function should be used instead.

User Contributed Notes

Anonymous 26-Jul-2018 05:09
An empty <?php?> Codeblock in PHP 7.2.0 will put out an "Unquoted strings" warning. To prevent that, add at least one empty space into the codeblock.

Example:
<?php

<?php/*
echo "This was some useful code.\n";
*/?>

?>
Gives: PHP Warning:  Use of undefined constant php - assumed 'php' (this will throw an Error in a future version of PHP)

Fix via:
<?php

<?php   /*
echo "This was some useful code.\";
*/?>

?>

Don't know if that is an intentional behaviour or a side effect.
webmaster at thedigitalorchard dot ca 01-Feb-2018 05:14
Instead of __autoload(), you can use spl_autoload_register() very easily, as per the documentation:

spl_autoload_register(function ($class) {
    include 'classes/' . $class . '.class.php';
});

And this lets you have multiple autoloaders instead of one global one.


Other changes

Moving of utf8_encode() and utf8_decode()

The utf8_encode() and utf8_decode() functions have now been moved to the standard extension as string functions, whereas before the XML extension was required for them to be available.

Changes to mail() and mb_send_mail()

The $additional_headers parameter of mail() and mb_send_mail() now also accepts an array instead of a string.

LMDB support

The DBA extension now has support for LMDB.

Changes to the PHP build system

  • Unix: Autoconf 2.64 or greater is now required to build PHP.
  • Unix: --with-pdo-oci configure argument no longer needs the version number of the Oracle Instant Client.
  • Unix: --enable-gd-native-ttf configure argument has been removed. This was not used since PHP 5.5.0.
  • Windows: --with-config-profile configure argument has been added. This can be used to save specific configures, much like the magical config.nice.bat file.

Changes to GD

  • imageantialias() is now also available if compiled with a system libgd.
  • imagegd() stores truecolor images as real truecolor images. Formerly, they have been converted to palette.

Moving MCrypt to PECL

The MCrypt extension has now been moved out of the core to PECL. Given the mcrypt library has not seen any updates since 2007, its usage is highly discouraged. Instead, either the OpenSSL or Sodium extension should be used.

session_module_name()

Passing "user" to session_module_name() now raises an error of level E_RECOVERABLE_ERROR. Formerly, this has been silently ignored.

User Contributed Notes

There are no user contributed notes for this page.


Migrating from PHP 7.0.x to PHP 7.1.x

İçindekiler

  • New features
  • New functions
  • New global constants
  • Backward incompatible changes
  • Deprecated features in PHP 7.1.x
  • Changed functions
  • Other changes
  • Windows Support

This new minor version brings with it a number of new features and a few incompatibilities that should be tested for before switching PHP versions in production environments.

Ayrıca, şu PHP sürümleri arasında geçiş kılavuzlarına da bakınız: 7.0.x.

User Contributed Notes

There are no user contributed notes for this page.


New features

Nullable types

Type declarations for parameters and return values can now be marked as nullable by prefixing the type name with a question mark. This signifies that as well as the specified type, null can be passed as an argument, or returned as a value, respectively.

<?php

function testReturn(): ?string
{
return 'elePHPant';
}

var_dump(testReturn());

function testReturn(): ?string
{
return null;
}

var_dump(testReturn());

function test(?string $name)
{
var_dump($name);
}

test('elePHPant');
test(null);
test();

Yukarıdaki örneğin çıktısı:

string(10) "elePHPant"
NULL
string(10) "elePHPant"
NULL
Uncaught Error: Too few arguments to function test(), 0 passed in...

Void functions

A void return type has been introduced. Functions declared with void as their return type must either omit their return statement altogether, or use an empty return statement. null is not a valid return value for a void function.

<?php
function swap(&$left, &$right): void
{
if ($left === $right) {
return;
}

$tmp = $left;
$left = $right;
$right = $tmp;
}

$a = 1;
$b = 2;
var_dump(swap($a, $b), $a, $b);

Yukarıdaki örneğin çıktısı:

null
int(2)
int(1)

Attempting to use a void function's return value simply evaluates to null, with no warnings emitted. The reason for this is because warnings would implicate the use of generic higher order functions.

Symmetric array destructuring

The shorthand array syntax ([]) may now be used to destructure arrays for assignments (including within foreach), as an alternative to the existing list() syntax, which is still supported.

<?php
$data = [
[1, 'Tom'],
[2, 'Fred'],
];

// list() style
list($id1, $name1) = $data[0];

// [] style
[$id1, $name1] = $data[0];

// list() style
foreach ($data as list($id, $name)) {
// logic here with $id and $name
}

// [] style
foreach ($data as [$id, $name]) {
// logic here with $id and $name
}

Class constant visibility

Support for specifying the visibility of class constants has been added.

<?php
class ConstDemo
{
const PUBLIC_CONST_A = 1;
public const PUBLIC_CONST_B = 2;
protected const PROTECTED_CONST = 3;
private const PRIVATE_CONST = 4;
}

iterable pseudo-type

A new pseudo-type (similar to callable) called iterable has been introduced. It may be used in parameter and return types, where it accepts either arrays or objects that implement the Traversable interface. With respect to subtyping, parameter types of child classes may broaden a parent's declaration of array or Traversable to iterable. With return types, child classes may narrow a parent's return type of iterable to array or an object that implements Traversable.

<?php
function iterator(iterable $iter)
{
foreach ($iter as $val) {
//
}
}

Multi catch exception handling

Multiple exceptions per catch block may now be specified using the pipe character (|). This is useful for when different exceptions from different class hierarchies are handled the same.

<?php
try {
// some code
} catch (FirstException | SecondException $e) {
// handle first and second exceptions
}

Support for keys in list()

You can now specify keys in list(), or its new shorthand [] syntax. This enables destructuring of arrays with non-integer or non-sequential keys.

<?php
$data = [
["id" => 1, "name" => 'Tom'],
["id" => 2, "name" => 'Fred'],
];

// list() style
list("id" => $id1, "name" => $name1) = $data[0];

// [] style
["id" => $id1, "name" => $name1] = $data[0];

// list() style
foreach ($data as list("id" => $id, "name" => $name)) {
// logic here with $id and $name
}

// [] style
foreach ($data as ["id" => $id, "name" => $name]) {
// logic here with $id and $name
}

Support for negative string offsets

Support for negative string offsets has been added to the string manipulation functions accepting offsets, as well as to string indexing with [] or {}. In such cases, a negative offset is interpreted as being an offset from the end of the string.

<?php
var_dump("abcdef"[-2]);
var_dump(strpos("aabbcc", "b", -3));

Yukarıdaki örneğin çıktısı:

string (1) "e"
int(3)

Negative string and array offsets are now also supported in the simple variable parsing syntax inside of strings.

<?php
$string = 'bar';
echo "The last character of '$string' is '$string[-1]'.\n";
?>

Yukarıdaki örneğin çıktısı:

The last character of 'bar' is 'r'.

Support for AEAD in ext/openssl

Support for AEAD (modes GCM and CCM) have been added by extending the openssl_encrypt() and openssl_decrypt() functions with additional parameters.

Convert callables to Closures with Closure::fromCallable()

A new static method has been introduced to the Closure class to allow for callables to be easily converted into Closure objects.

<?php
class Test
{
public function exposeFunction()
{
return Closure::fromCallable([$this, 'privateFunction']);
}

private function privateFunction($param)
{
var_dump($param);
}
}

$privFunc = (new Test)->exposeFunction();
$privFunc('some value');

Yukarıdaki örneğin çıktısı:

string(10) "some value"

Asynchronous signal handling

A new function called pcntl_async_signals() has been introduced to enable asynchronous signal handling without using ticks (which introduce a lot of overhead).

<?php
pcntl_async_signals(true); // turn on async signals

pcntl_signal(SIGHUP, function($sig) {
echo "SIGHUP\n";
});

posix_kill(posix_getpid(), SIGHUP);

Yukarıdaki örneğin çıktısı:

SIGHUP

HTTP/2 server push support in ext/curl

Support for server push has been added to the CURL extension (requires version 7.46 and above). This can be leveraged through the curl_multi_setopt() function with the new CURLMOPT_PUSHFUNCTION constant. The constants CURL_PUSH_OK and CURL_PUSH_DENY have also been added so that the execution of the server push callback can either be approved or denied.

Stream Context Options

The tcp_nodelay stream context option has been added.

User Contributed Notes

DYM 09-Apr-2018 10:36
<?php
function swap( &$a, &$b ): void
  { [ $a, $b ] = [ $b, $a ]; }
?>
unti1x 06-Apr-2018 11:20
Note that declaring nullable return type does not mean that you can skip return statement at all. For example:

php > function a(): ?string { }
php > a();
PHP Warning:  Uncaught TypeError: Return value of a() must be of the type string or null, none returned in php shell code:2

php > function b(): ?string { return; }
PHP Fatal error:  A function with return type must return a value (did you mean "return null;" instead of "return;"?) in php shell code on line 2


New functions

PHP Core

  • sapi_windows_cp_get()
  • sapi_windows_cp_set()
  • sapi_windows_cp_conv()
  • sapi_windows_cp_is_utf8()

Closure

  • Closure::fromCallable()

CURL

  • curl_multi_errno()
  • curl_share_errno()
  • curl_share_strerror()

OpenSSL

  • openssl_get_curve_names()

Session

  • session_create_id()
  • session_gc()

SPL

  • is_iterable()

PCNTL

  • pcntl_async_signals()
  • pcntl_signal_get_handler()

User Contributed Notes

There are no user contributed notes for this page.


New global constants

Core Predefined Constants

  • PHP_FD_SETSIZE

CURL

  • CURLMOPT_PUSHFUNCTION
  • CURL_PUSH_OK
  • CURL_PUSH_DENY

Data Filtering

  • FILTER_FLAG_EMAIL_UNICODE

Image Processing and GD

  • IMAGETYPE_WEBP

JSON

  • JSON_UNESCAPED_LINE_TERMINATORS

LDAP

  • LDAP_OPT_X_SASL_NOCANON
  • LDAP_OPT_X_SASL_USERNAME
  • LDAP_OPT_X_TLS_CACERTDIR
  • LDAP_OPT_X_TLS_CACERTFILE
  • LDAP_OPT_X_TLS_CERTFILE
  • LDAP_OPT_X_TLS_CIPHER_SUITE
  • LDAP_OPT_X_TLS_KEYFILE
  • LDAP_OPT_X_TLS_RANDOM_FILE
  • LDAP_OPT_X_TLS_CRLCHECK
  • LDAP_OPT_X_TLS_CRL_NONE
  • LDAP_OPT_X_TLS_CRL_PEER
  • LDAP_OPT_X_TLS_CRL_ALL
  • LDAP_OPT_X_TLS_DHFILE
  • LDAP_OPT_X_TLS_CRLFILE
  • LDAP_OPT_X_TLS_PROTOCOL_MIN
  • LDAP_OPT_X_TLS_PROTOCOL_SSL2
  • LDAP_OPT_X_TLS_PROTOCOL_SSL3
  • LDAP_OPT_X_TLS_PROTOCOL_TLS1_0
  • LDAP_OPT_X_TLS_PROTOCOL_TLS1_1
  • LDAP_OPT_X_TLS_PROTOCOL_TLS1_2
  • LDAP_OPT_X_TLS_PACKAGE
  • LDAP_OPT_X_KEEPALIVE_IDLE
  • LDAP_OPT_X_KEEPALIVE_PROBES
  • LDAP_OPT_X_KEEPALIVE_INTERVAL

PostgreSQL

  • PGSQL_NOTICE_LAST
  • PGSQL_NOTICE_ALL
  • PGSQL_NOTICE_CLEAR

SPL

  • MT_RAND_PHP

User Contributed Notes

There are no user contributed notes for this page.


Backward incompatible changes

Throw on passing too few function arguments

Previously, a warning would be emitted for invoking user-defined functions with too few arguments. Now, this warning has been promoted to an Error exception. This change only applies to user-defined functions, not internal functions. For example:

<?php
function test($param){}
test();

Yukarıdaki örnek şuna benzer bir çıktı üretir:

Fatal error: Uncaught ArgumentCountError: Too few arguments to function test(), 0 passed in %s on line %d and exactly 1 expected in %s:%d

Forbid dynamic calls to scope introspection functions

Dynamic calls for certain functions have been forbidden (in the form of $func() or array_map('extract', ...), etc). These functions either inspect or modify another scope, and present with them ambiguous and unreliable behavior. The functions are as follows:

  • assert() - with a string as the first argument
  • compact()
  • extract()
  • func_get_args()
  • func_get_arg()
  • func_num_args()
  • get_defined_vars()
  • mb_parse_str() - with one arg
  • parse_str() - with one arg
<?php
(function () {
$func = 'func_num_args';
$func();
})();

Yukarıdaki örneğin çıktısı:

Warning: Cannot call func_num_args() dynamically in %s on line %d

Invalid class, interface, and trait names

The following names cannot be used to name classes, interfaces, or traits:

  • void
  • iterable

Numerical string conversions now respect scientific notation

Integer operations and conversions on numerical strings now respect scientific notation. This also includes the (int) cast operation, and the following functions: intval() (where the base is 10), settype(), decbin(), decoct(), and dechex().

Fixes to mt_rand() algorithm

mt_rand() will now default to using the fixed version of the Mersenne Twister algorithm. If deterministic output from mt_rand() was relied upon, then MT_RAND_PHP can be used as optional second parameter to mt_srand() to preserve the old (incorrect) implementation.

rand() aliased to mt_rand() and srand() aliased to mt_srand()

rand() and srand() have now been made aliases to mt_rand() and mt_srand(), respectively. This means that the output for the following functions have changed: rand(), shuffle(), str_shuffle(), and array_rand().

Disallow the ASCII delete control character in identifiers

The ASCII delete control character (0x7F) can no longer be used in identifiers that are not quoted.

error_log changes with syslog value

If the error_log ini setting is set to syslog, the PHP error levels are mapped to the syslog error levels. This brings finer differentiation in the error logs in contrary to the previous approach where all the errors are logged with the notice level only.

Do not call destructors on incomplete objects

Destructors are now never called for objects that throw an exception during the execution of their constructor. In previous versions this behavior depended on whether the object was referenced outside the constructor (e.g. by an exception backtrace).

call_user_func() handling of reference arguments

call_user_func() will now always generate a warning upon calls to functions that expect references as arguments. Previously this depended on whether the call was fully qualified.

Additionally, call_user_func() and call_user_func_array() will no longer abort the function call in this case. The "expected reference" warning will be emitted, but the call will proceed as usual.

The empty index operator is not supported for strings anymore

Applying the empty index operator to a string (e.g. $str[] = $x) throws a fatal error instead of converting silently to array.

Assignment via string index access on an empty string

String modification by character on an empty string now works like for non-empty strings, i.e. writing to an out of range offset pads the string with spaces, where non-integer types are converted to integer, and only the first character of the assigned string is used. Formerly, empty strings where silently treated like an empty array.

<?php
$a = '';
$a[10] = 'foo';
var_dump($a);
?>

Yukarıdaki örneğin PHP 7.0 çıktısı:

array(1) {
  [10]=>
  string(3) "foo"
}

Yukarıdaki örneğin PHP 7.1 çıktısı:

string(11) "          f"

Removed ini directives

The following ini directives have been removed:

  • session.entropy_file
  • session.entropy_length
  • session.hash_function
  • session.hash_bits_per_character

Array ordering when elements are automatically created during by reference assignments has changed

The order of the elements in an array has changed when those elements have been automatically created by referencing them in a by reference assignment. For example:

<?php
$array = [];
$array["a"] =& $array["b"];
$array["b"] = 1;
var_dump($array);
?>

Yukarıdaki örneğin PHP 7.0 çıktısı:

array(2) {
  ["a"]=>
  &int(1)
  ["b"]=>
  &int(1)
}

Yukarıdaki örneğin PHP 7.1 çıktısı:

array(2) {
  ["b"]=>
  &int(1)
  ["a"]=>
  &int(1)
}

Sort order of equal elements

The internal sorting algorithm has been improved, what may result in different sort order of elements, which compare as equal, than before.

Bilginize:

Don't rely on the order of elements which compare as equal; it might change anytime.

Error message for E_RECOVERABLE errors

The error message for E_RECOVERABLE errors has been changed from "Catchable fatal error" to "Recoverable fatal error".

$options parameter of unserialize()

The allowed_classes element of the $options parameter of unserialize() is now strictly typed, i.e. if anything other than an array or a bool is given, unserialize() returns false and issues an E_WARNING.

DateTime constructor incorporates microseconds

DateTime and DateTimeImmutable now properly incorporate microseconds when constructed from the current time, either explicitly or with a relative string (e.g. "first day of next month"). This means that naive comparisons of two newly created instances will now more likely return false instead of true:

<?php
new DateTime() == new DateTime();
?>

Fatal errors to Error exceptions conversions

In the Date extension, invalid serialization data for DateTime or DatePeriod classes, or timezone initialization failure from serialized data, will now throw an Error exception from the __wakeup() or __set_state() methods, instead of resulting in a fatal error.

In the DBA extension, data modification functions (such as dba_insert()) will now throw an Error exception instead of triggering a catchable fatal error if the key does not contain exactly two elements.

In the DOM extension, invalid schema or RelaxNG validation contexts will now throw an Error exception instead of resulting in a fatal error. Similarly, attempting to register a node class that does not extend the appropriate base class, or attempting to read an invalid property or write to a readonly property, will also now throw an Error exception.

In the IMAP extension, email addresses longer than 16385 bytes will throw an Error exception instead of resulting in a fatal error.

In the Intl extension, failing to call the parent constructor in a class extending Collator before invoking the parent methods will now throw an Error instead of resulting in a recoverable fatal error. Also, cloning a Transliterator object will now throw an Error exception on failure to clone the internal transliterator instead of resulting in a fatal error.

In the LDAP extension, providing an unknown modification type to ldap_batch_modify() will now throw an Error exception instead of resulting in a fatal error.

In the mbstring extension, the mb_ereg() and mb_eregi() functions will now throw a ParseError exception if an invalid PHP expression is provided and the 'e' option is used.

In the Mcrypt extension, the mcrypt_encrypt() and mcrypt_decrypt() will now throw an Error exception instead of resulting in a fatal error if mcrypt cannot be initialized.

In the mysqli extension, attempting to read an invalid property or write to a readonly property will now throw an Error exception instead of resulting in a fatal error.

In the Reflection extension, failing to retrieve a reflection object or retrieve an object property will now throw an Error exception instead of resulting in a fatal error.

In the Session extension, custom session handlers that do not return strings for session IDs will now throw an Error exception instead of resulting in a fatal error when a function is called that must generate a session ID.

In the SimpleXML extension, creating an unnamed or duplicate attribute will now throw an Error exception instead of resulting in a fatal error.

In the SPL extension, attempting to clone an SplDirectory object will now throw an Error exception instead of resulting in a fatal error. Similarly, calling ArrayIterator::append() when iterating over an object will also now throw an Error exception.

In the standard extension, the assert() function, when provided with a string argument as its first parameter, will now throw a ParseError exception instead of resulting in a catchable fatal error if the PHP code is invalid. Similarly, calling forward_static_call() outside of a class scope will now throw an Error exception.

In the Tidy extension, creating a tidyNode manually will now throw an Error exception instead of resulting in a fatal error.

In the WDDX extension, a circular reference when serializing will now throw an Error exception instead of resulting in a fatal error.

In the XML-RPC extension, a circular reference when serializing will now throw an instance of Error exception instead of resulting in a fatal error.

In the Zip extension, the ZipArchive::addGlob() method will now throw an Error exception instead of resulting in a fatal error if glob support is not available.

Lexically bound variables cannot reuse names

Variables bound to a closure via the use construct cannot use the same name as any süper küreseller, $this, or any parameter. For example, all of these function definition will result in a fatal error:

<?php
$f = function () use ($_SERVER) {};
$f = function () use ($this) {};
$f = function ($param) use ($param) {};

long2ip() parameter type change

long2ip() now expects an int instead of a string.

JSON encoding and decoding

The serialize_precision ini setting now controls the serialization precision when encoding floats.

Decoding an empty key now results in an empty property name, rather than _empty_ as a property name.

<?php
var_dump(json_decode(json_encode(['' => 1])));

Yukarıdaki örnek şuna benzer bir çıktı üretir:

object(stdClass)#1 (1) {
  [""]=>
  int(1)
}

When supplying the JSON_UNESCAPED_UNICODE flag to json_encode(), the sequences U+2028 and U+2029 are now escaped.

Changes to mb_ereg() and mb_eregi() parameter semantics

The third parameter to the mb_ereg() and mb_eregi() functions (regs) will now be set to an empty array if nothing was matched. Formerly, the parameter would not have been modified.

Drop support for the sslv2 stream

The sslv2 stream has now been dropped in OpenSSL.

Forbid "return;" for typed returns already at compile-time

Return statements without argument in functions which declare a return type now trigger E_COMPILE_ERROR (unless the return type is declared as void), even if the return statement would never be reached.

User Contributed Notes

david at artefactual dot com 04-Apr-2019 05:29
Regarding the ArgumentCountError, PHP 7.1+ does still support user functions with a variable number of arguments, using the "func(...$args) {}" syntax, see: https://www.php.net/manual/en/functions.arguments.php#functions.variable-arg-list
mikem at gmail dot com 21-Nov-2017 12:09
ArgumentCountError - this modification is the main reason to avoid this version on older projects.
kees at twekaers dot net 21-Mar-2017 11:49
The backwards incompatible change 'The empty index operator is not supported for strings anymore' has a lot more implications than just a fatal error on the following code

<?php
$a = "";
$a[] = "hello world";
var_dump($a);
?>

This will give a fatal error in 7.1 but will work as expected in 7.0 or below and give you: (no notice, no warning)

array(1) {
  [0]=>
  string(11) "hello world"
}

However, the following is also changed:

<?php
$a = "";
$a[0] = "hello world";
var_dump($a);
// 7.1: string(1) "h"
// pre-7.1: array(1) {  [0]=>  string(11) "hello world" }

$a = "";
$a[5] = "hello world";
var_dump($a);
// 7.1: string(6) "     h"
// pre-7.1: array(1) {  [0]=>  string(11) "hello world" }

?>
m dot r dot sopacua at gmail dot com 30-Dec-2016 03:49
"OMFG! Why was session.hash_function removed?!? Dude!"

https://wiki.php.net/rfc/session-id-without-hashing

There. Saved ya a search.
love at sickpeople dot se 24-Nov-2016 07:59
For anyone migrating from 5.x to 7.1:

About "Array ordering when elements are automatically created during by reference assignments has changed" on this page

(http://php.net/manual/en/migration71.incompatible.php#migration71.incompatible.array-order)

The behaviour of 7.1 is THE SAME as of PHP 5. It is only 7.0 that differs.

See https://3v4l.org/frbUc

<?php

$array = [];
$array["a"] =& $array["b"];
$array["b"] = 1;
var_dump($array);


Deprecated features in PHP 7.1.x

ext/mcrypt

The mcrypt extension has been abandonware for nearly a decade now, and was also fairly complex to use. It has therefore been deprecated in favour of OpenSSL, where it will be removed from the core and into PECL in PHP 7.2.

Eval option for mb_ereg_replace() and mb_eregi_replace()

The e pattern modifier has been deprecated for the mb_ereg_replace() and mb_eregi_replace() functions.

User Contributed Notes

There are no user contributed notes for this page.


Changed functions

PHP Core

  • getopt() has an optional third parameter that exposes the index of the next element in the argument vector list to be processed. This is done via a by-ref parameter.
  • getenv() no longer requires its parameter. If the parameter is omitted, then the current environment variables will be returned as an associative array.
  • get_headers() now has an additional parameter to enable for the passing of custom stream contexts.
  • output_reset_rewrite_vars() no longer resets session URL rewrite variables.
  • parse_url() is now more restrictive and supports RFC3986.
  • unpack() now accepts an optional third parameter to specify the offset to begin unpacking from.

File System

  • file_get_contents() now accepts a negative seek offset if the stream is seekable.
  • tempnam() now emits a notice when falling back to the system's temp directory.

JSON

  • json_encode() now accepts a new option, JSON_UNESCAPED_LINE_TERMINATORS, to disable the escaping of U+2028 and U+2029 characters when JSON_UNESCAPED_UNICODE is supplied.

Multibyte String

  • mb_ereg() now rejects illegal byte sequences.
  • mb_ereg_replace() now rejects illegal byte sequences.

PDO

  • PDO::lastInsertId() for PostgreSQL will now trigger an error when nextval has not been called for the current session (the postgres connection).

PostgreSQL

  • pg_last_notice() now accepts an optional parameter to specify an operation. This can be done with one of the following new constants: PGSQL_NOTICE_LAST, PGSQL_NOTICE_ALL, or PGSQL_NOTICE_CLEAR.
  • pg_fetch_all() now accepts an optional second parameter to specify the result type (similar to the third parameter of pg_fetch_array()).
  • pg_select() now accepts an optional fourth parameter to specify the result type (similar to the third parameter of pg_fetch_array()).

Session

  • session_start() now returns false and no longer initializes $_SESSION when it failed to start the session.

User Contributed Notes

There are no user contributed notes for this page.


Other changes

Notices and warnings on arithmetic with invalid strings

New E_WARNING and E_NOTICE errors have been introduced when invalid strings are coerced using operators expecting numbers (+ - * / ** % << >> | & ^) or their assignment equivalents. An E_NOTICE is emitted when the string begins with a numeric value but contains trailing non-numeric characters, and an E_WARNING is emitted when the string does not contain a numeric value.

<?php
'1b' + 'something';

Yukarıdaki örneğin çıktısı:

Notice: A non well formed numeric value encountered in %s on line %d
Warning: A non-numeric value encountered in %s on line %d

Warn on octal escape sequence overflow

Previously, 3-octet octal string escape sequences would overflow silently. Now, they will still overflow, but E_WARNING will be emitted.

<?php
var_dump("\500");

Yukarıdaki örneğin çıktısı:

Warning: Octal escape sequence overflow \500 is greater than \377 in %s on line %d
string(1) "@"

Inconsistency fixes to $this

Whilst $this is considered a special variable in PHP, it lacked proper checks to ensure it wasn't used as a variable name or reassigned. This has now been rectified to ensure that $this cannot be a user-defined variable, reassigned to a different value, or be globalised.

Session ID generation without hashing

Session IDs will no longer be hashed upon generation. With this change brings about the removal of the following four ini settings:

  • session.entropy_file
  • session.entropy_length
  • session.hash_function
  • session.hash_bits_per_character

And the addition of the following two ini settings:

  • session.sid_length - defines the length of the session ID, defaulting to 32 characters for backwards compatibility)
  • session.sid_bits_per_character - defines the number of bits to be stored per character (i.e. increases the range of characters that can be used in the session ID), defaulting to 4 for backwards compatibility

Changes to INI file handling

precision

If the value is set to -1, then the dtoa mode 0 is used. The default value is still 14.

serialize_precision

If the value is set to -1, then the dtoa mode 0 is used. The value -1 is now used by default.

gd.jpeg_ignore_warning

The default of this php.ini setting has been changed to 1, so by default libjpeg warnings are ignored.

opcache.enable_cli

The default of this php.ini setting has been changed to 1 (enabled) in PHP 7.1.2, and back to 0 (disabled) in PHP 7.1.7.

Session ID generation with a CSPRNG only

Session IDs will now only be generated with a CSPRNG.

More informative TypeError messages when null is allowed

TypeError exceptions for arg_info type checks will now provide more informative error messages. If the parameter type or return type accepts null (by either having a default value of null or being a nullable type), then the error message will now mention this with a message of "must be ... or null" or "must ... or be null."

User Contributed Notes

Ta7To7 27-Feb-2018 05:47
Note that using Incrementing/Decrementing operators on string is legal
<?php
$str = "";
echo ++$str; // output: 1
?>


Windows Support

Support for long and UTF-8 path

If a web application is UTF-8 conform, no further action is required. For applications depending on paths in non UTF-8 encodings for I/O, an explicit INI directive has to be set. The encoding INI settings check relies on the order in the core:

  • internal_encoding
  • default_charset
  • zend.multibyte

Several functions for codepage handling were introduced:

  • sapi_windows_cp_set() to set the default codepage
  • sapi_windows_cp_get() to retrieve the current codepage
  • sapi_windows_cp_is_utf8()
  • sapi_windows_cp_conv() to convert between codepages, using iconv() compatible signature

These functions are thread safe.

The console output codepage is adjusted depending on the encoding used in PHP. Depending on the concrete system OEM codepage, the visible output might or might be not correct. For example, in the default cmd.exe and on a system with the OEM codepage 437, outputs in codepages 1251, 1252, 1253 and some others can be shown correctly when using UTF-8. On the same system, chars in codepage like 20932 probably won't be shown correctly. This refers to the particular system rules for codepage, font compatibility and the particular console program used. PHP automatically sets the console codepage according to the encoding rules from php.ini. Using alternative consoles instead of cmd.exe directly might bring better experience in some cases.

Nevertheless be aware, runtime codepage switch after the request start might bring unexpected side effects on CLI. The preferable way is php.ini, When PHP CLI is used in a console emulator, that doesn't support Unicode, it might possibly be required, to avoid changing the console codepage. The best way to achieve it is by setting the default or internal encoding to correspond the ANSI codepage. Another method is to set the INI directives output_encoding and input_encoding to the required codepage, in which case however the difference between internal and I/O codepage is likely to cause mojibake. In rare cases, if PHP happens to crash gracefully, the original console codepage might be not restored. In this case, the chcp command can be used, to restore it manually.

Special awareness for the DBCS systems - the codepage switch on runtime using ini_set() is likely to cause display issues. The difference to the non DBCS systems is, that the extended characters require two console cells to be displayed. In certain case, only the mapping of the characters into the glyph set of the font could happen, no actual font change. This is the nature of DBCS systems, the most simple way to prevent display issues is to avoid usage of ini_set() for the codepage change.

As a result of UTF-8 support in the streams, PHP scripts are not limited to ASCII or ANSI filenames anymore. This is supported out of the box on CLI. For other SAPI, the documentation for the corresponding server is useful.

Long paths support is transparent. Paths longer than 260 bytes get automatically prefixed with \\?\. The max path length is limited to 2048 bytes. Be aware, that the path segment limit (basename length) still persists.

For the best portability, it is strongely recommended to handle filenames, I/O and other related topics UTF-8. Additionally, for the console applications, the usage of a TrueType font is preferable and the usage of ini_set() for the codepage change is discouraged.

readline

The readline extension is supported through the » WinEditLine library. Thereby, the interactive CLI shell is supported as well (php.exe -a).

PHP_FCGI_CHILDREN

PHP_FCGI_CHILDREN is now respected. If this environment variable is defined, the first php-cgi.exe process will exec the specified number of children. These will share the same TCP socket.

ftok()

Added support for ftok()

User Contributed Notes

There are no user contributed notes for this page.


Migrating from PHP 5.6.x to PHP 7.0.x

İçindekiler

  • Backward incompatible changes
  • New features
  • Deprecated features in PHP 7.0.x
  • Changed functions
  • New functions
  • New Classes and Interfaces
  • New Global Constants
  • Changes in SAPI Modules
  • Removed Extensions and SAPIs
  • Other Changes

Despite the fact that PHP 7.0 is a new major version, efforts have been made to make migration as painless as possible. This release focuses mainly on removing functionality deprecated in previous versions and improving language consistency.

There are a few incompatibilities and new features that should be considered, and code should be tested before switching PHP versions in production environments.

User Contributed Notes

There are no user contributed notes for this page.


Backward incompatible changes

Changes to error and exception handling

Many fatal and recoverable fatal errors have been converted to exceptions in PHP 7. These error exceptions inherit from the Error class, which itself implements the Throwable interface (the new base interface all exceptions inherit).

This means that custom error handlers may no longer be triggered because exceptions may be thrown instead (causing new fatal errors for uncaught Error exceptions).

A fuller description of how errors operate in PHP 7 can be found on the PHP 7 errors page. This migration guide will merely enumerate the changes that affect backward compatibility.

set_exception_handler() is no longer guaranteed to receive Exception objects

Code that implements an exception handler registered with set_exception_handler() using a type declaration of Exception will cause a fatal error when an Error object is thrown.

If the handler needs to work on both PHP 5 and 7, you should remove the type declaration from the handler, while code that is being migrated to work on PHP 7 exclusively can simply replace the Exception type declaration with Throwable instead.

<?php
// PHP 5 era code that will break.
function handler(Exception $e) { ... }
set_exception_handler('handler');

// PHP 5 and 7 compatible.
function handler($e) { ... }

// PHP 7 only.
function handler(Throwable $e) { ... }
?>

Internal constructors always throw exceptions on failure

Previously, some internal classes would return null or an unusable object when the constructor failed. All internal classes will now throw an Exception in this case in the same way that user classes already had to.

Parse errors throw ParseError

Parser errors now throw a ParseError object. Error handling for eval() should now include a catch block that can handle this error.

E_STRICT notices severity changes

All of the E_STRICT notices have been reclassified to other levels. E_STRICT constant is retained, so calls like error_reporting(E_ALL|E_STRICT) will not cause an error.

E_STRICT notices severity changes
Situation | New level/behaviour
Indexing by a resource | E_NOTICE
Abstract static methods | Notice removed, triggers no error
"Redefining" a constructor | Notice removed, triggers no error
Signature mismatch during inheritance | E_WARNING
Same (compatible) property in two used traits | Notice removed, triggers no error
Accessing static property non-statically | E_NOTICE
Only variables should be assigned by reference | E_NOTICE
Only variables should be passed by reference | E_NOTICE
Calling non-static methods statically | E_DEPRECATED

Changes to variable handling

PHP 7 now uses an abstract syntax tree when parsing source files. This has permitted many improvements to the language which were previously impossible due to limitations in the parser used in earlier versions of PHP, but has resulted in the removal of a few special cases for consistency reasons, which has resulted in backward compatibility breaks. These cases are detailed in this section.

Changes to the handling of indirect variables, properties, and methods

Indirect access to variables, properties, and methods will now be evaluated strictly in left-to-right order, as opposed to the previous mix of special cases. The table below shows how the order of evaluation has changed.

Old and new evaluation of indirect expressions
Expression | PHP 5 interpretation | PHP 7 interpretation
$$foo['bar']['baz'] | ${$foo['bar']['baz']} | ($$foo)['bar']['baz']
$foo->$bar['baz'] | $foo->{$bar['baz']} | ($foo->$bar)['baz']
$foo->$bar['baz']() | $foo->{$bar['baz']}() | ($foo->$bar)['baz']()
Foo::$bar['baz']() | Foo::{$bar['baz']}() | (Foo::$bar)['baz']()

Code that used the old right-to-left evaluation order must be rewritten to explicitly use that evaluation order with curly braces (see the above middle column). This will make the code both forwards compatible with PHP 7.x and backwards compatible with PHP 5.x.

This also affects the global keyword. The curly brace syntax can be used to emulate the previous behaviour if required:

<?php
function f() {
// Valid in PHP 5 only.
global $$foo->bar;

// Valid in PHP 5 and 7.
global ${$foo->bar};
}
?>

Changes to list() handling

list() no longer assigns variables in reverse order

list() will now assign values to variables in the order they are defined, rather than reverse order. In general, this only affects the case where list() is being used in conjunction with the array [] operator, as shown below:

<?php
list($a[], $a[], $a[]) = [1, 2, 3];
var_dump($a);
?>

Yukarıdaki örneğin PHP 5 çıktısı:

array(3) {
  [0]=>
  int(3)
  [1]=>
  int(2)
  [2]=>
  int(1)
}

Yukarıdaki örneğin PHP 7 çıktısı:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}

In general, it is recommended not to rely on the order in which list() assignments occur, as this is an implementation detail that may change again in the future.

Empty list() assignments have been removed

list() constructs can no longer be empty. The following are no longer allowed:

<?php
list() = $a;
list(,,) = $a;
list($x, list(), $y) = $a;
?>
list() cannot unpack strings

list() can no longer unpack string variables. str_split() should be used instead.

Array ordering when elements are automatically created during by reference assignments has changed

The order of the elements in an array has changed when those elements have been automatically created by referencing them in a by reference assignment. For example:

<?php
$array = [];
$array["a"] =& $array["b"];
$array["b"] = 1;
var_dump($array);
?>

Yukarıdaki örneğin PHP 5 çıktısı:

array(2) {
  ["b"]=>
  &int(1)
  ["a"]=>
  &int(1)
}

Yukarıdaki örneğin PHP 7 çıktısı:

array(2) {
  ["a"]=>
  &int(1)
  ["b"]=>
  &int(1)
}

Parentheses around function arguments no longer affect behaviour

In PHP 5, using redundant parentheses around a function argument could quiet strict standards warnings when the function argument was passed by reference. The warning will now always be issued.

<?php
function getArray() {
return [1, 2, 3];
}

function squareArray(array &$a) {
foreach ($a as &$v) {
$v **= 2;
}
}

// Generates a warning in PHP 7.
squareArray((getArray()));
?>

Yukarıdaki örneğin çıktısı:

Notice: Only variables should be passed by reference in /tmp/test.php on line 13

Changes to foreach

Minor changes have been made to the behaviour of the foreach control structure, primarily around the handling of the internal array pointer and modification of the array being iterated over.

foreach no longer changes the internal array pointer

Prior to PHP 7, the internal array pointer was modified while an array was being iterated over with foreach. This is no longer the case, as shown in the following example:

<?php
$array = [0, 1, 2];
foreach ($array as &$val) {
var_dump(current($array));
}
?>

Yukarıdaki örneğin PHP 5 çıktısı:

int(1)
int(2)
bool(false)

Yukarıdaki örneğin PHP 7 çıktısı:

int(0)
int(0)
int(0)

foreach by-value operates on a copy of the array

When used in the default by-value mode, foreach will now operate on a copy of the array being iterated rather than the array itself. This means that changes to the array made during iteration will not affect the values that are iterated.

foreach by-reference has improved iteration behaviour

When iterating by-reference, foreach will now do a better job of tracking changes to the array made during iteration. For example, appending to an array while iterating will now result in the appended values being iterated over as well:

<?php
$array = [0];
foreach ($array as &$val) {
var_dump($val);
$array[1] = 1;
}
?>

Yukarıdaki örneğin PHP 5 çıktısı:

int(0)

Yukarıdaki örneğin PHP 7 çıktısı:

int(0)
int(1)

Iteration of non-Traversable objects

Iterating over a non-Traversable object will now have the same behaviour as iterating over by-reference arrays. This results in the improved behaviour when modifying an array during iteration also being applied when properties are added to or removed from the object.

Changes to int handling

Invalid octal literals

Previously, octal literals that contained invalid numbers were silently truncated (0128 was taken as 012). Now, an invalid octal literal will cause a parse error.

Negative bitshifts

Bitwise shifts by negative numbers will now throw an ArithmeticError:

<?php
var_dump(1 >> -1);
?>

Yukarıdaki örneğin PHP 5 çıktısı:

int(0)

Yukarıdaki örneğin PHP 7 çıktısı:

Fatal error: Uncaught ArithmeticError: Bit shift by negative number in /tmp/test.php:2
Stack trace:
#0 {main}
  thrown in /tmp/test.php on line 2

Out of range bitshifts

Bitwise shifts (in either direction) beyond the bit width of an int will always result in 0. Previously, the behaviour of such shifts was architecture dependent.

Changes to Division By Zero

Previously, when 0 was used as the divisor for either the divide (/) or modulus (%) operators, an E_WARNING would be emitted and false would be returned. Now, the divide operator returns a float as either +INF, -INF, or NAN, as specified by IEEE 754. The modulus operator E_WARNING has been removed and will throw a DivisionByZeroError exception.

<?php
var_dump(3/0);
var_dump(0/0);
var_dump(0%0);
?>

Yukarıdaki örneğin PHP 5 çıktısı:

Warning: Division by zero in %s on line %d
bool(false)

Warning: Division by zero in %s on line %d
bool(false)

Warning: Division by zero in %s on line %d
bool(false)

Yukarıdaki örneğin PHP 7 çıktısı:

Warning: Division by zero in %s on line %d
float(INF)

Warning: Division by zero in %s on line %d
float(NAN)

PHP Fatal error:  Uncaught DivisionByZeroError: Modulo by zero in %s line %d

Changes to string handling

Hexadecimal strings are no longer considered numeric

Strings containing hexadecimal numbers are no longer considered to be numeric. For example:

<?php
var_dump("0x123" == "291");
var_dump(is_numeric("0x123"));
var_dump("0xe" + "0x1");
var_dump(substr("foo", "0x1"));
?>

Yukarıdaki örneğin PHP 5 çıktısı:

bool(true)
bool(true)
int(15)
string(2) "oo"

Yukarıdaki örneğin PHP 7 çıktısı:

bool(false)
bool(false)
int(0)

Notice: A non well formed numeric value encountered in /tmp/test.php on line 5
string(3) "foo"

filter_var() can be used to check if a string contains a hexadecimal number, and also to convert a string of that type to an int:

<?php
$str = "0xffff";
$int = filter_var($str, FILTER_VALIDATE_INT, FILTER_FLAG_ALLOW_HEX);
if (false === $int) {
throw new Exception("Invalid integer!");
}
var_dump($int); // int(65535)
?>

\u{ may cause errors

Due to the addition of the new Unicode codepoint escape syntax, strings containing a literal \u{ followed by an invalid sequence will cause a fatal error. To avoid this, the leading backslash should be escaped.

Removed functions

call_user_method() and call_user_method_array()

These functions were deprecated in PHP 4.1.0 in favour of call_user_func() and call_user_func_array(). You may also want to consider using variable functions and/or the ... operator.

All ereg* functions

All ereg functions were removed. PCRE is a recommended alternative.

mcrypt aliases

The deprecated mcrypt_generic_end() function has been removed in favour of mcrypt_generic_deinit().

Additionally, the deprecated mcrypt_ecb(), mcrypt_cbc(), mcrypt_cfb() and mcrypt_ofb() functions have been removed in favour of using mcrypt_decrypt() with the appropriate MCRYPT_MODE_* constant.

All ext/mysql functions

All ext/mysql functions were removed. For details about choosing a different MySQL API, see Choosing a MySQL API.

All ext/mssql functions

All ext/mssql functions were removed.

  • PDO_SQLSRV
  • PDO_ODBC
  • SQLSRV
  • Unified ODBC API

intl aliases

The deprecated datefmt_set_timezone_id() and
IntlDateFormatter::setTimeZoneID() aliases have been
removed in favour of datefmt_set_timezone() and
IntlDateFormatter::setTimeZone(), respectively.

set_magic_quotes_runtime()

set_magic_quotes_runtime(), along with its alias magic_quotes_runtime(), have been removed. They were deprecated in PHP 5.3.0, and became effectively non-functional with the removal of magic quotes in PHP 5.4.0.

set_socket_blocking()

The deprecated set_socket_blocking() alias has been removed in favour of stream_set_blocking().

dl() in PHP-FPM

dl() can no longer be used in PHP-FPM. It remains functional in the CLI and embed SAPIs.

GD Type1 functions

Support for PostScript Type1 fonts has been removed from the GD extension, resulting in the removal of the following functions:

  • imagepsbbox()
  • imagepsencodefont()
  • imagepsextendfont()
  • imagepsfreefont()
  • imagepsloadfont()
  • imagepsslantfont()
  • imagepstext()

Using TrueType fonts and their associated functions is recommended instead.

Removed INI directives

Removed features

The following INI directives have been removed as their associated features have also been removed:

  • always_populate_raw_post_data
  • asp_tags

xsl.security_prefs

The xsl.security_prefs directive has been removed. Instead, the XsltProcessor::setSecurityPrefs() method should be called to control the security preferences on a per-processor basis.

Other backward incompatible changes

New objects cannot be assigned by reference

The result of the new statement can no longer be assigned to a variable by reference:

<?php
class C {}
$c =& new C;
?>

Yukarıdaki örneğin PHP 5 çıktısı:

Deprecated: Assigning the return value of new by reference is deprecated in /tmp/test.php on line 3

Yukarıdaki örneğin PHP 7 çıktısı:

Parse error: syntax error, unexpected 'new' (T_NEW) in /tmp/test.php on line 3

Invalid class, interface and trait names

The following names cannot be used to name classes, interfaces or traits:

  • bool
  • int
  • float
  • string
  • null
  • true
  • false

Furthermore, the following names should not be used. Although they will not generate an error in PHP 7.0, they are reserved for future use and should be considered deprecated.

  • resource
  • object
  • mixed
  • numeric

ASP and script PHP tags removed

Support for using ASP and script tags to delimit PHP code has been removed. The affected tags are:

Removed ASP and script tags
Opening tag | Closing tag
<% | %>
<%= | %>
<script language="php"> | </script>

Calls from incompatible context removed

Previously deprecated in PHP 5.6, static calls made to a non-static method with an incompatible context will now result in the called method having an undefined $this variable and a deprecation warning being issued.

<?php
class A {
public function test() { var_dump($this); }
}

// Note: Does NOT extend A
class B {
public function callNonStaticMethodOfA() { A::test(); }
}

(new B)->callNonStaticMethodOfA();
?>

Yukarıdaki örneğin PHP 5.6 çıktısı:

Deprecated: Non-static method A::test() should not be called statically, assuming $this from incompatible context in /tmp/test.php on line 8
object(B)#1 (0) {
}

Yukarıdaki örneğin PHP 7 çıktısı:

Deprecated: Non-static method A::test() should not be called statically in /tmp/test.php on line 8

Notice: Undefined variable: this in /tmp/test.php on line 3
NULL

yield is now a right associative operator

The yield construct no longer requires parentheses, and has been changed to a right associative operator with precedence between print and =>. This can result in changed behaviour:

<?php
echo yield -1;
// Was previously interpreted as
echo (yield) - 1;
// And is now interpreted as
echo yield (-1);

yield $foo or die;
// Was previously interpreted as
yield ($foo or die);
// And is now interpreted as
(yield $foo) or die;
?>

Parentheses can be used to disambiguate those cases.

Functions cannot have multiple parameters with the same name

It is no longer possible to define two or more function parameters with the same name. For example, the following function will trigger an E_COMPILE_ERROR:

<?php
function foo($a, $b, $unused, $unused) {
//
}
?>

Functions inspecting arguments report the current parameter value

func_get_arg(), func_get_args(), debug_backtrace() and exception backtraces will no longer report the original value that was passed to a parameter, but will instead provide the current value (which might have been modified).

<?php
function foo($x) {
$x++;
var_dump(func_get_arg(0));
}
foo(1);?>

Yukarıdaki örneğin PHP 5 çıktısı:

1

Yukarıdaki örneğin PHP 7 çıktısı:

2

Switch statements cannot have multiple default blocks

It is no longer possible to define two or more default blocks in a switch statement. For example, the following switch statement will trigger an E_COMPILE_ERROR:

<?php
switch (1) {
default:
break;
default:
break;
}
?>

$HTTP_RAW_POST_DATA removed

$HTTP_RAW_POST_DATA is no longer available. The php://input stream should be used instead.

# comments in INI files removed

Support for prefixing comments with # in INI files has been removed. ; (semi-colon) should be used instead. This change applies to php.ini, as well as files handled by parse_ini_file() and parse_ini_string().

JSON extension replaced with JSOND

The JSON extension has been replaced with JSOND, causing three minor BC breaks. Firstly, a number must not end in a decimal point (i.e. 34. must be changed to either 34.0 or 34). Secondly, when using scientific notation, the e exponent must not immediately follow a decimal point (i.e. 3.e3 must be changed to either 3.0e3 or 3e3). Finally, an empty string is no longer considered valid JSON.

Internal function failure on overflow

Previously, internal functions would silently truncate numbers produced from float-to-integer coercions when the float was too large to represent as an integer. Now, an E_WARNING will be emitted and null will be returned.

Fixes to custom session handler return values

Any predicate functions implemented by custom session handlers that return either false or -1 will be fatal errors. If any value from these functions other than a boolean, -1, or 0 is returned, then it will fail and an E_WARNING will be emitted.

Sort order of equal elements

The internal sorting algorithm has been improved, what may result in different sort order of elements, which compare as equal, than before.

Bilginize:

Don't rely on the order of elements which compare as equal; it might change anytime.

Misplaced break and continue statements

break and continue statements outside of a loop or switch control structure are now detected at compile-time instead of run-time as before, and trigger an E_COMPILE_ERROR.

Mhash is not an extension anymore

The Mhash extension has been fully integrated into the Hash extension. Therefore, it is no longer possible to detect Mhash support with extension_loaded(); use function_exists() instead. Furthermore, Mhash is no longer reported by get_loaded_extensions() and related features.

declare(ticks)

The declare(ticks) directive does no longer leak into different compilation units.

User Contributed Notes

There are no user contributed notes for this page.


New features

Scalar type declarations

Scalar type declarations come in two flavours: coercive (default) and strict. The following types for parameters can now be enforced (either coercively or strictly): strings (string), integers (int), floating-point numbers (float), and booleans (bool). They augment the other types introduced in PHP 5: class names, interfaces, array and callable.

<?php
// Coercive mode
function sumOfInts(int ...$ints)
{
return array_sum($ints);
}

var_dump(sumOfInts(2, '3', 4.1));

Yukarıdaki örneğin çıktısı:

int(9)

To enable strict mode, a single declare directive must be placed at the top of the file. This means that the strictness of typing for scalars is configured on a per-file basis. This directive not only affects the type declarations of parameters, but also a function's return type (see return type declarations, built-in PHP functions, and functions from loaded extensions.

Full documentation and examples of scalar type declarations can be found in the type declaration reference.

Return type declarations

PHP 7 adds support for return type declarations. Similarly to argument type declarations, return type declarations specify the type of the value that will be returned from a function. The same types are available for return type declarations as are available for argument type declarations.

<?php

function arraysSum(array ...$arrays): array
{
return array_map(function(array $array): int {
return array_sum($array);
}, $arrays);
}

print_r(arraysSum([1,2,3], [4,5,6], [7,8,9]));

Yukarıdaki örneğin çıktısı:

Array
(
    [0] => 6
    [1] => 15
    [2] => 24
)

Full documentation and examples of return type declarations can be found in the return type declarations. reference.

Null coalescing operator

The null coalescing operator (??) has been added as syntactic sugar for the common case of needing to use a ternary in conjunction with isset(). It returns its first operand if it exists and is not null; otherwise it returns its second operand.

<?php
// Fetches the value of $_GET['user'] and returns 'nobody'
// if it does not exist.
$username = $_GET['user'] ?? 'nobody';
// This is equivalent to:
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';

// Coalescing can be chained: this will return the first
// defined value out of $_GET['user'], $_POST['user'], and
// 'nobody'.
$username = $_GET['user'] ?? $_POST['user'] ?? 'nobody';
?>

Spaceship operator

The spaceship operator is used for comparing two expressions. It returns -1, 0 or 1 when $a is respectively less than, equal to, or greater than $b. Comparisons are performed according to PHP's usual type comparison rules.

<?php
// Integers
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1

// Floats
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1

// Strings
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1
?>

Constant arrays using define()

Array constants can now be defined with define(). In PHP 5.6, they could only be defined with const.

<?php
define('ANIMALS', [
'dog',
'cat',
'bird'
]);

echo ANIMALS[1]; // outputs "cat"
?>

Anonymous classes

Support for anonymous classes has been added via new class. These can be used in place of full class definitions for throwaway objects:

<?php
interface Logger {
public function log(string $msg);
}

class Application {
private $logger;

public function getLogger(): Logger {
return $this->logger;
}

public function setLogger(Logger $logger) {
$this->logger = $logger;
}
}

$app = new Application;
$app->setLogger(new class implements Logger {
public function log(string $msg) {
echo $msg;
}
});

var_dump($app->getLogger());
?>

Yukarıdaki örneğin çıktısı:

object(class@anonymous)#2 (0) {
}

Full documentation can be found in the anonymous class reference.

Unicode codepoint escape syntax

This takes a Unicode codepoint in hexadecimal form, and outputs that codepoint in UTF-8 to a double-quoted string or a heredoc. Any valid codepoint is accepted, with leading 0's being optional.

<?php

echo "\u{aa}", PHP_EOL;
echo "\u{0000aa}", PHP_EOL;

echo "\u{9999}", PHP_EOL;

echo <<<EOT
\u{01f418}
EOT;

?>

Yukarıdaki örneğin çıktısı:

ª
ª (same as before but with optional leading 0's)
?

Closure::call()

Closure::call() is a more performant, shorthand way of temporarily binding an object scope to a closure and invoking it.

<?php
class A {private $x = 1;}

// Pre PHP 7 code
$getX = function() {return $this->x;};
$getXCB = $getX->bindTo(new A, 'A'); // intermediate closure
echo $getXCB();

// PHP 7+ code
$getX = function() {return $this->x;};
echo $getX->call(new A);

Yukarıdaki örneğin çıktısı:

1
1

Filtered unserialize()

This feature seeks to provide better security when unserializing objects on untrusted data. It prevents possible code injections by enabling the developer to whitelist classes that can be unserialized.

<?php

// converts all objects into __PHP_Incomplete_Class object
$data = unserialize($foo, ["allowed_classes" => false]);

// converts all objects into __PHP_Incomplete_Class object except those of MyClass and MyClass2
$data = unserialize($foo, ["allowed_classes" => ["MyClass", "MyClass2"]]);

// default behaviour (same as omitting the second argument) that accepts all classes
$data = unserialize($foo, ["allowed_classes" => true]);

IntlChar

The new IntlChar class seeks to expose additional ICU functionality. The class itself defines a number of static methods and constants that can be used to manipulate unicode characters.

<?php

printf('%x', IntlChar::CODEPOINT_MAX);
echo IntlChar::charName('@');
var_dump(IntlChar::ispunct('!'));

Yukarıdaki örneğin çıktısı:

10ffff
COMMERCIAL AT
bool(true)

In order to use this class, the Intl extension must be installed.

Expectations

Expectations are a backwards compatible enhancement to the older assert() function. They allow for zero-cost assertions in production code, and provide the ability to throw custom exceptions when the assertion fails.

While the old API continues to be maintained for compatibility, assert() is now a language construct, allowing the first parameter to be an expression rather than just a string to be evaluated or a bool value to be tested.

<?php
ini_set('assert.exception', 1);

class CustomError extends AssertionError {}

assert(false, new CustomError('Some error message'));
?>

Yukarıdaki örneğin çıktısı:

Fatal error: Uncaught CustomError: Some error message

Full details on this feature, including how to configure it in both development and production environments, can be found on the manual page of the assert() language construct.

Group use declarations

Classes, functions and constants being imported from the same namespace can now be grouped together in a single use statement.

<?php
// Pre PHP 7 code
use some\namespace\ClassA;
use some\namespace\ClassB;
use some\namespace\ClassC as C;

use function some\namespace\fn_a;
use function some\namespace\fn_b;
use function some\namespace\fn_c;

use const some\namespace\ConstA;
use const some\namespace\ConstB;
use const some\namespace\ConstC;

// PHP 7+ code
use some\namespace\{ClassA, ClassB, ClassC as C};
use function some\namespace\{fn_a, fn_b, fn_c};
use const some\namespace\{ConstA, ConstB, ConstC};
?>

Generator Return Expressions

This feature builds upon the generator functionality introduced into PHP 5.5. It enables for a return statement to be used within a generator to enable for a final expression to be returned (return by reference is not allowed). This value can be fetched using the new Generator::getReturn() method, which may only be used once the generator has finished yielding values.

<?php

$gen = (function() {
yield 1;
yield 2;

return 3;
})();

foreach ($gen as $val) {
echo $val, PHP_EOL;
}

echo $gen->getReturn(), PHP_EOL;

Yukarıdaki örneğin çıktısı:

1
2
3

Being able to explicitly return a final value from a generator is a handy ability to have. This is because it enables for a final value to be returned by a generator (from perhaps some form of coroutine computation) that can be specifically handled by the client code executing the generator. This is far simpler than forcing the client code to firstly check whether the final value has been yielded, and then if so, to handle that value specifically.

Generator delegation

Generators can now delegate to another generator, Traversable object or array automatically, without needing to write boilerplate in the outermost generator by using the yield from construct.

<?php
function gen()
{
yield 1;
yield 2;
yield from gen2();
}

function gen2()
{
yield 3;
yield 4;
}

foreach (gen() as $val)
{
echo $val, PHP_EOL;
}
?>

Yukarıdaki örneğin çıktısı:

1
2
3
4

Integer division with intdiv()

The new intdiv() function performs an integer division of its operands and returns it.

<?php
var_dump(intdiv(10, 3));
?>

Yukarıdaki örneğin çıktısı:

int(3)

Session options

session_start() now accepts an array of options that override the session configuration directives normally set in php.ini.

These options have also been expanded to support session.lazy_write, which is on by default and causes PHP to only overwrite any session file if the session data has changed, and read_and_close, which is an option that can only be passed to session_start() to indicate that the session data should be read and then the session should immediately be closed unchanged.

For example, to set session.cache_limiter to private and immediately close the session after reading it:

<?php
session_start([
'cache_limiter' => 'private',
'read_and_close' => true,
]);
?>

preg_replace_callback_array()

The new preg_replace_callback_array() function enables code to be written more cleanly when using the preg_replace_callback() function. Prior to PHP 7, callbacks that needed to be executed per regular expression required the callback function to be polluted with lots of branching.

Now, callbacks can be registered to each regular expression using an associative array, where the key is a regular expression and the value is a callback.

CSPRNG Functions

Two new functions have been added to generate cryptographically secure integers and strings in a cross platform way: random_bytes() and random_int().

list() can always unpack objects implementing ArrayAccess

Previously, list() was not guaranteed to operate correctly with objects implementing ArrayAccess. This has been fixed.

Other Features

  • Class member access on cloning has been added, e.g. (clone $foo)->bar().

User Contributed Notes

Julian Sawicki 12-Sep-2020 01:52
In php 7.0 it's possible to curry functions in a way that's similar to JavaScript.

<?php

// A curried function
function add($a) {
  return function($b) use ($a) {
    return $a + $b;
  };
}

// Invoking curried function in PHP 7
$result = add(10)(15);

var_dump($result); // int 25

?>

Currying in this way is not possible in php 5.6.
Adrian Wiik 16-Jan-2020 01:52
A good rule of thumb for remembering what the spaceship operator expression returns is to replace the spaceship operator with a minus sign (-). If the result is negative, 0 or positive, the expression will return -1, 0 or 1 respectively.

Example:
<?php
echo 5 <=> 8; // 5 - 8 = -3, prints -1
echo 2 <=> 2; // 2 - 2 = 0, prints 0
echo 4 <=> 2; // 4 - 2 = 2, prints 1


Deprecated features in PHP 7.0.x

PHP 4 style constructors

PHP 4 style constructors (methods that have the same name as the class they are defined in) are deprecated, and will be removed in the future. PHP 7 will emit E_DEPRECATED if a PHP 4 constructor is the only constructor defined within a class. Classes that implement a __construct() method are unaffected.

<?php
class foo {
function foo() {
echo 'I am the constructor';
}
}
?>

Yukarıdaki örneğin çıktısı:

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; foo has a deprecated constructor in example.php on line 3

Static calls to non-static methods

Static calls to methods that are not declared static are deprecated, and may be removed in the future.

<?php
class foo {
function bar() {
echo 'I am not static!';
}
}

foo::bar();
?>

Yukarıdaki örneğin çıktısı:

Deprecated: Non-static method foo::bar() should not be called statically in - on line 8
I am not static!

password_hash() salt option

The salt option for the password_hash() function has been deprecated to prevent developers from generating their own (usually insecure) salts. The function itself generates a cryptographically secure salt when no salt is provided by the developer - therefore custom salt generation should not be needed.

capture_session_meta SSL context option

The capture_session_meta SSL context option has been deprecated. SSL metadata is now available through the stream_get_meta_data() function.

LDAP deprecations

The following function has been deprecated:

  • ldap_sort()

User Contributed Notes

There are no user contributed notes for this page.


Changed functions

PHP Core

  • debug_zval_dump() now prints "int" instead of "long", and "float" instead of "double"
  • dirname() now optionally takes a second parameter, depth, to get the name of the directory depth levels up from the current directory.
  • getrusage() is now supported on Windows.
  • mktime() and gmmktime() functions no longer accept is_dst parameter.
  • preg_replace() function no longer supports "\e" (PREG_REPLACE_EVAL). preg_replace_callback() should be used instead.
  • setlocale() function no longer accepts category passed as string. LC_* constants must be used instead.
  • exec(), system() and passthru() functions have NULL byte protection now.
  • shmop_open() now returns a resource instead of an int, which has to be passed to shmop_size(), shmop_write(), shmop_read(), shmop_close() and shmop_delete().
  • substr() and iconv_substr() now return an empty string, if string is equal to start characters long.
  • xml_parser_free() is no longer sufficient to free the parser resource, if it references an object and this object references that parser resource. In this case it is necessary to additionally unset the $parser.

User Contributed Notes

There are no user contributed notes for this page.


New functions

Closure

  • Closure::call()

CSPRNG

  • random_bytes()
  • random_int()

Error Handling and Logging

  • error_clear_last()

Generator

  • Generator::getReturn()

GNU Multiple Precision

  • gmp_random_seed()

Math

  • intdiv()

PCRE

  • preg_replace_callback_array()

PHP Options/Info

  • gc_mem_caches()
  • get_resources()

POSIX

  • posix_setrlimit()

Reflection

  • ReflectionParameter::getType()
  • ReflectionParameter::hasType()
  • ReflectionFunctionAbstract::getReturnType()
  • ReflectionFunctionAbstract::hasReturnType()

Zip

  • ZipArchive::setCompressionIndex()
  • ZipArchive::setCompressionName()

Zlib Compression

  • inflate_add()
  • deflate_add()
  • inflate_init()
  • deflate_init()

User Contributed Notes

There are no user contributed notes for this page.


New Classes and Interfaces

Intl

  • IntlChar

Reflection

  • ReflectionGenerator
  • ReflectionType

Session Handling

  • SessionUpdateTimestampHandlerInterface

Exception Hierarchy

  • Throwable
  • Error
  • TypeError
  • ParseError
  • AssertionError
  • ArithmeticError
  • DivisionByZeroError

User Contributed Notes

There are no user contributed notes for this page.


New Global Constants

Core Predefined Constants

  • PHP_INT_MIN

GD

  • IMG_WEBP (as of PHP 7.0.10)

JSON

  • JSON_ERROR_INVALID_PROPERTY_NAME
  • JSON_ERROR_UTF16

LibXML

  • LIBXML_BIGLINES

PCRE

  • PREG_JIT_STACKLIMIT_ERROR

POSIX

  • POSIX_RLIMIT_AS
  • POSIX_RLIMIT_CORE
  • POSIX_RLIMIT_CPU
  • POSIX_RLIMIT_DATA
  • POSIX_RLIMIT_FSIZE
  • POSIX_RLIMIT_LOCKS
  • POSIX_RLIMIT_MEMLOCK
  • POSIX_RLIMIT_MSGQUEUE
  • POSIX_RLIMIT_NICE
  • POSIX_RLIMIT_NOFILE
  • POSIX_RLIMIT_NPROC
  • POSIX_RLIMIT_RSS
  • POSIX_RLIMIT_RTPRIO
  • POSIX_RLIMIT_RTTIME
  • POSIX_RLIMIT_SIGPENDING
  • POSIX_RLIMIT_STACK
  • POSIX_RLIMIT_INFINITY

Zlib

  • ZLIB_ENCODING_RAW
  • ZLIB_ENCODING_DEFLATE
  • ZLIB_ENCODING_GZIP
  • ZLIB_FILTERED
  • ZLIB_HUFFMAN_ONLY
  • ZLIB_FIXED
  • ZLIB_RLE
  • ZLIB_DEFAULT_STRATEGY
  • ZLIB_BLOCK
  • ZLIB_FINISH
  • ZLIB_FULL_FLUSH
  • ZLIB_NO_FLUSH
  • ZLIB_PARTIAL_FLUSH
  • ZLIB_SYNC_FLUSH

User Contributed Notes

There are no user contributed notes for this page.


Changes in SAPI Modules

FPM

Unqualified listen ports now listen on both IPv4 and IPv6

In PHP 5, a listen directive with only a port number would listen on all interfaces, but only on IPv4. PHP 7 will now accept requests made via both IPv4 and IPv6.

This does not affect directives which include specific IP addresses; these will continue to only listen on that address and protocol.

User Contributed Notes

There are no user contributed notes for this page.


Removed Extensions and SAPIs

Removed Extensions

  • ereg
  • mssql
  • mysql
  • sybase_ct

Removed SAPIs

  • aolserver
  • apache
  • apache_hooks
  • apache2filter
  • caudium
  • continuity
  • isapi
  • milter
  • nsapi
  • phttpd
  • pi3web
  • roxen
  • thttpd
  • tux
  • webjames

User Contributed Notes

There are no user contributed notes for this page.


Other Changes

Loosening Reserved Word Restrictions

Globally reserved words as property, constant, and method names within classes, interfaces, and traits are now allowed. This reduces the surface of BC breaks when new keywords are introduced and avoids naming restrictions on APIs.

This is particularly useful when creating internal DSLs with fluent interfaces:

<?php
// 'new', 'private', and 'for' were previously unusable
Project::new('Project Name')->private()->for('purpose here')->with('username here');
?>

The only limitation is that the class keyword still cannot be used as a constant name, otherwise it would conflict with the class name resolution syntax (ClassName::class).

Removal of date.timezone Warning

Previously, a warning was emitted if the date.timezone INI setting had not been set prior to using any date- or time-based functions. Now, this warning has been removed (with date.timezone still defaulting to UTC).

User Contributed Notes

There are no user contributed notes for this page.


Migrating from PHP 5.5.x to PHP 5.6.x

İçindekiler

  • Backward incompatible changes
  • New features
  • Deprecated features in PHP 5.6.x
  • Changed functions
  • New functions
  • OpenSSL changes in PHP 5.6.x
  • Other changes to extensions
  • New global constants

Most improvements in PHP 5.6.x have no impact on existing code. There are a few incompatibilities and new features that should be considered, and code should be tested before switching PHP versions in production environments.

User Contributed Notes

There are no user contributed notes for this page.


Backward incompatible changes

Although most existing PHP 5 code should work without changes, please take note of some backward incompatible changes:

Array keys won't be overwritten when defining an array as a property of a class via an array literal

Previously, arrays declared as class properties which mixed explicit and implicit keys could have array elements silently overwritten if an explicit key was the same as a sequential implicit key. For example:

<?php
class C {
const ONE = 1;
public $array = [
self::ONE => 'foo',
'bar',
'quux',
];
}

var_dump((new C)->array);
?>

Yukarıdaki örneğin PHP 5.5 çıktısı:

array(2) {
  [0]=>
  string(3) "bar"
  [1]=>
  string(4) "quux"
}

Yukarıdaki örneğin PHP 5.6 çıktısı:

array(3) {
  [1]=>
  string(3) "foo"
  [2]=>
  string(3) "bar"
  [3]=>
  string(4) "quux"
}

json_decode() strictness

json_decode() now rejects non-lowercase variants of the JSON literals true, false and null at all times, as per the JSON specification, and sets json_last_error() accordingly. Previously, inputs to json_decode() that consisted solely of one of these values in upper or mixed case were accepted.

This change will only affect cases where invalid JSON was being passed to json_decode(): valid JSON input is unaffected and will continue to be parsed normally.

Stream wrappers now verify peer certificates and host names by default when using SSL/TLS

All encrypted client streams now enable peer verification by default. By default, this will use OpenSSL's default CA bundle to verify the peer certificate. In most cases, no changes will need to be made to communicate with servers with valid SSL certificates, as distributors generally configure OpenSSL to use known good CA bundles.

The default CA bundle may be overridden on a global basis by setting either the openssl.cafile or openssl.capath configuration setting, or on a per request basis by using the cafile or capath context options.

While not recommended in general, it is possible to disable peer certificate verification for a request by setting the verify_peer context option to false, and to disable peer name validation by setting the verify_peer_name context option to false.

GMP resources are now objects

GMP resources are now objects. The functional API implemented in the GMP extension has not changed, and code should run unmodified unless it checks explicitly for a resource using is_resource() or similar.

Mcrypt functions now require valid keys and IVs

mcrypt_encrypt(), mcrypt_decrypt(), mcrypt_cbc(), mcrypt_cfb(), mcrypt_ecb(), mcrypt_generic() and mcrypt_ofb() will no longer accept keys or IVs with incorrect sizes, and block cipher modes that require IVs will now fail if an IV isn't provided.

cURL file uploads

Uploads using the @file syntax now require CURLOPT_SAFE_UPLOAD to be set to false. CURLFile should be used instead.

User Contributed Notes

There are no user contributed notes for this page.


New features

Constant expressions

It is now possible to provide a scalar expression involving numeric and string literals and/or constants in contexts where PHP previously expected a static value, such as constant and property declarations and default function arguments.

<?php
const ONE = 1;
const TWO = ONE * 2;

class C {
const THREE = TWO + 1;
const ONE_THIRD = ONE / self::THREE;
const SENTENCE = 'The value of THREE is '.self::THREE;

public function f($a = ONE + self::THREE) {
return $a;
}
}

echo (new C)->f()."\n";
echo C::SENTENCE;
?>

Yukarıdaki örneğin çıktısı:

4
The value of THREE is 3

It is also now possible to define a constant array using the const keyword:

<?php
const ARR = ['a', 'b'];

echo ARR[0];
?>

Yukarıdaki örneğin çıktısı:

a

Variadic functions via ...

Variadic functions can now be implemented using the ... operator, instead of relying on func_get_args().

<?php
function f($req, $opt = null, ...$params) {
// $params is an array containing the remaining arguments.
printf('$req: %d; $opt: %d; number of params: %d'."\n",
$req, $opt, count($params));
}

f(1);
f(1, 2);
f(1, 2, 3);
f(1, 2, 3, 4);
f(1, 2, 3, 4, 5);
?>

Yukarıdaki örneğin çıktısı:

$req: 1; $opt: 0; number of params: 0
$req: 1; $opt: 2; number of params: 0
$req: 1; $opt: 2; number of params: 1
$req: 1; $opt: 2; number of params: 2
$req: 1; $opt: 2; number of params: 3

Argument unpacking via ...

Arrays and Traversable objects can be unpacked into argument lists when calling functions by using the ... operator. This is also known as the splat operator in other languages, including Ruby.

<?php
function add($a, $b, $c) {
return $a + $b + $c;
}

$operators = [2, 3];
echo add(1, ...$operators);
?>

Yukarıdaki örneğin çıktısı:

6

Exponentiation via **

A right associative ** operator has been added to support exponentiation, along with a **= shorthand assignment operator.

<?php
printf("2 ** 3 == %d\n", 2 ** 3);
printf("2 ** 3 ** 2 == %d\n", 2 ** 3 ** 2);

$a = 2;
$a **= 3;
printf("a == %d\n", $a);
?>

Yukarıdaki örneğin çıktısı:

2 ** 3 ==      8
2 ** 3 ** 2 == 512
a ==           8

use function and use const

The use operator has been extended to support importing functions and constants in addition to classes. This is achieved via the use function and use const constructs, respectively.

<?php
namespace Name\Space {
const FOO = 42;
function f() { echo __FUNCTION__."\n"; }
}

namespace {
use const Name\Space\FOO;
use function Name\Space\f;

echo FOO."\n";
f();
}
?>

Yukarıdaki örneğin çıktısı:

42
Name\Space\f

phpdbg

PHP now includes an interactive debugger called phpdbg implemented as a SAPI module. For more information, please visit the phpdbg documentation.

Default character encoding

default_charset is now used as the default character set for the htmlentities(), html_entity_decode() and htmlspecialchars() functions. Note that if the (now deprecated) iconv and mbstring encoding settings are set, they will take precedence over default_charset for iconv and mbstring functions, respectively.

The default value for this setting is UTF-8.

php://input is reusable

php://input may now be reopened and read as many times as required. This work has also resulted in a major reduction in the amount of memory required to deal with POST data.

Large file uploads

Files larger than 2 gigabytes in size are now accepted.

GMP supports operator overloading

GMP objects now support operator overloading and casting to scalar types. This allows for more expressive code using GMP:

<?php
$a = gmp_init(42);
$b = gmp_init(17);

if (version_compare(PHP_VERSION, '5.6', '<')) {
echo gmp_intval(gmp_add($a, $b)), PHP_EOL;
echo gmp_intval(gmp_add($a, 17)), PHP_EOL;
echo gmp_intval(gmp_add(42, $b)), PHP_EOL;
} else {
echo $a + $b, PHP_EOL;
echo $a + 17, PHP_EOL;
echo 42 + $b, PHP_EOL;
}
?>

Yukarıdaki örneğin çıktısı:

59
59
59

hash_equals() for timing attack safe string comparison

The hash_equals() function has been added to compare two strings in constant time. This should be used to mitigate timing attacks; for instance, when testing crypt() password hashes (assuming that you are unable to use password_hash() and password_verify(), which aren't susceptible to timing attacks).

<?php
$expected = crypt('12345', '$2a$07$usesomesillystringforsalt$');
$correct = crypt('12345', '$2a$07$usesomesillystringforsalt$');
$incorrect = crypt('1234', '$2a$07$usesomesillystringforsalt$');

var_dump(hash_equals($expected, $correct));
var_dump(hash_equals($expected, $incorrect));
?>

Yukarıdaki örneğin çıktısı:

bool(true)
bool(false)

__debugInfo()

The __debugInfo() magic method has been added to allow objects to change the properties and values that are shown when the object is output using var_dump().

<?php
class C {
private $prop;

public function __construct($val) {
$this->prop = $val;
}

public function __debugInfo() {
return [
'propSquared' => $this->prop ** 2,
];
}
}

var_dump(new C(42));
?>

Yukarıdaki örneğin çıktısı:

object(C)#1 (1) {
  ["propSquared"]=>
  int(1764)
}

gost-crypto hash algorithm

The gost-crypto hash algorithm has been added. This implements the GOST hash function using the CryptoPro S-box tables as specified by » RFC 4357, section 11.2.

SSL/TLS improvements

A wide range of improvements have been made to the SSL/TLS support in PHP 5.6. These include enabling peer verification by default, supporting certificate fingerprint matching, mitigating against TLS renegotiation attacks, and many new SSL context options to allow more fine grained control over protocol and verification settings when using encrypted streams.

These changes are described in more detail in the OpenSSL changes in PHP 5.6.x section of this migration guide.

pgsql async support

The pgsql extension now supports asynchronous connections and queries, thereby enabling non-blocking behaviour when interacting with PostgreSQL databases. Asynchronous connections may be established via the PGSQL_CONNECT_ASYNC constant, and the new pg_connect_poll(), pg_socket(), pg_consume_input() and pg_flush() functions may be used to handle asynchronous connections and queries.

User Contributed Notes

There are no user contributed notes for this page.


Deprecated features in PHP 5.6.x

Calls from incompatible context

Methods called from an incompatible context are now deprecated, and will generate E_DEPRECATED errors when invoked instead of E_STRICT. Support for these calls will be removed in a future version of PHP.

An example of such a call is:

<?php
class A {
function f() { echo get_class($this); }
}

class B {
function f() { A::f(); }
}

(new B)->f();
?>

Yukarıdaki örneğin çıktısı:

Deprecated: Non-static method A::f() should not be called statically, assuming $this from incompatible context in - on line 7
B

$HTTP_RAW_POST_DATA and always_populate_raw_post_data

always_populate_raw_post_data will now generate an E_DEPRECATED error when $HTTP_RAW_POST_DATA is populated. New code should use php://input instead of $HTTP_RAW_POST_DATA, which will be removed in a future release. You can opt in for the new behaviour (in which $HTTP_RAW_POST_DATA is never defined hence no E_DEPRECATED error will be generated) by setting always_populate_raw_post_data to -1.

iconv and mbstring encoding settings

The iconv and mbstring configuration options related to encoding have been deprecated in favour of default_charset. The deprecated options are:

  • iconv.input_encoding
  • iconv.output_encoding
  • iconv.internal_encoding
  • mbstring.http_input
  • mbstring.http_output
  • mbstring.internal_encoding

User Contributed Notes

There are no user contributed notes for this page.


Changed functions

PHP Core

  • crypt() will now raise an E_NOTICE error if the salt parameter is omitted.
  • substr_compare() will now accept 0 for its length parameter.
  • unserialize() will now fail if passed serialised data that has been manipulated to attempt to instantiate an object without calling its constructor.

cURL

  • Uploads using the @file syntax are now only supported if the CURLOPT_SAFE_UPLOAD option is set to false. CURLFile should be used instead.

Mcrypt

  • The source parameter of mcrypt_create_iv() now defaults to MCRYPT_DEV_URANDOM instead of MCRYPT_DEV_RANDOM.

OpenSSL

  • stream_socket_enable_crypto() now allows the crypto_type parameter to be optional if the stream's SSL context includes the new crypto_type option.

PostgreSQL

  • pg_insert(), pg_select(), pg_update() and pg_delete() are no longer experimental.
  • pg_send_execute(), pg_send_prepare(), pg_send_query() and pg_send_query_params() will no longer block until query write completion if the underlying socket stream for the database connection is set to non-blocking mode.

Reflection

  • ReflectionClass::newInstanceWithoutConstructor() now allows non-final internal classes to be instantiated.

XMLReader

  • XMLReader::getAttributeNs() and XMLReader::getAttributeNo() now return null if the attribute could not be found, like XMLReader::getAttribute().

User Contributed Notes

There are no user contributed notes for this page.


New functions

Date and Time

  • DateTimeImmutable::createFromMutable()

GMP

  • gmp_root()
  • gmp_rootrem()

Hash

  • hash_equals()

LDAP

  • ldap_escape()
  • ldap_modify_batch()

MySQLi

  • mysqli_get_links_stats()

OCI8

  • oci_get_implicit_resultset()

OpenSSL

  • openssl_get_cert_locations()
  • openssl_x509_fingerprint()
  • openssl_spki_new()
  • openssl_spki_verify()
  • openssl_spki_export_challenge()
  • openssl_spki_export()

PostgreSQL

  • pg_connect_poll()
  • pg_consume_input()
  • pg_flush()
  • pg_socket()

PDO_PGSQL

  • PDO::pgsqlGetNotify()
  • PDO::pgsqlGetPid()

Session

  • session_abort()
  • session_reset()

Zip

  • ZipArchive::setPassword()

User Contributed Notes

There are no user contributed notes for this page.


OpenSSL changes in PHP 5.6.x

Stream wrappers now verify peer certificates and host names by default when using SSL/TLS

All encrypted client streams now enable peer verification by default. By default, this will use OpenSSL's default CA bundle to verify the peer certificate. In most cases, no changes will need to be made to communicate with servers with valid SSL certificates, as distributors generally configure OpenSSL to use known good CA bundles.

The default CA bundle may be overridden on a global basis by setting either the openssl.cafile or openssl.capath configuration setting, or on a per request basis by using the cafile or capath context options.

While not recommended in general, it is possible to disable peer certificate verification for a request by setting the verify_peer context option to false, and to disable peer name validation by setting the verify_peer_name context option to false.

Certificate fingerprints

Support has been added for extracting and verifying certificate fingerprints. openssl_x509_fingerprint() has been added to extract a fingerprint from an X.509 certificate, and two SSL stream context options have been added: capture_peer_cert to capture the peer's X.509 certificate, and peer_fingerprint to assert that the peer's certificate should match the given fingerprint.

Default ciphers updated

The default ciphers used by PHP have been updated to a more secure list based on the » Mozilla cipher recommendations, with two additional exclusions: anonymous Diffie-Hellman ciphers, and RC4.

This list can be accessed via the new OPENSSL_DEFAULT_STREAM_CIPHERS constant, and can be overridden (as in previous PHP versions) by setting the ciphers context option.

Compression disabled by default

SSL/TLS compression has been disabled by default to mitigate the CRIME attack. PHP 5.4.13 added a disable_compression context option to allow compression to be disabled: this is now set to true (that is, compression is disabled) by default.

Allow servers to prefer their cipher order

The honor_cipher_order SSL context option has been added to allow encrypted stream servers to mitigate BEAST vulnerabilities by preferring the server's ciphers to the client's.

Access the negotiated protocol and cipher

The protocol and cipher that were negotiated for an encrypted stream can now be accessed via stream_get_meta_data() or stream_context_get_options() when the capture_session_meta SSL context option is set to true.

<?php
$ctx = stream_context_create(['ssl' => [
'capture_session_meta' => TRUE
]]);

$html = file_get_contents('https://google.com/', FALSE, $ctx);
$meta = stream_context_get_options($ctx)['ssl']['session_meta'];
var_dump($meta);
?>

Yukarıdaki örneğin çıktısı:

array(4) {
  ["protocol"]=>
  string(5) "TLSv1"
  ["cipher_name"]=>
  string(20) "ECDHE-RSA-AES128-SHA"
  ["cipher_bits"]=>
  int(128)
  ["cipher_version"]=>
  string(11) "TLSv1/SSLv3"
}

New options for perfect forward secrecy in encrypted stream servers

Encrypted client streams already support perfect forward secrecy, as it is generally controlled by the server. PHP encrypted server streams using certificates capable of perfect forward secrecy do not need to take any additional action to enable PFS; however a number of new SSL context options have been added to allow more control over PFS and deal with any compatibility issues that may arise.

ecdh_curve

This option allows the selection of a specific curve for use with ECDH ciphers. If not specified, prime256v1 will be used.

dh_param

A path to a file containing parametrs for Diffie-Hellman key exchange, such as that created by the following command:

openssl dhparam -out /path/to/my/certs/dh-2048.pem 2048
single_dh_use

If set to true, a new key pair will be created when using Diffie-Hellman parameters, thereby improving forward secrecy.

single_ecdh_use

If set to true, a new key pair will always be generated when ECDH cipher suites are negotiated. This improves forward secrecy.

SSL/TLS version selection

It is now possible to select specific versions of SSL and TLS via the crypto_method SSL context option or by specifying a specific transport when creating a stream wrapper (for example, by calling stream_socket_client() or stream_socket_server()).

The crypto_method SSL context option accepts a bitmask enumerating the protocols that are permitted, as does the crypto_type of stream_socket_enable_crypto().

Selected protocol versions and corresponding options
Protocol(s) | Client flag | Server flag | Transport
Any TLS or SSL version | STREAM_CRYPTO_METHOD_ANY_CLIENT | STREAM_CRYPTO_METHOD_ANY_SERVER | ssl://
Any TLS version | STREAM_CRYPTO_METHOD_TLS_CLIENT | STREAM_CRYPTO_METHOD_TLS_SERVER | tls://
TLS 1.0 | STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT | STREAM_CRYPTO_METHOD_TLSv1_0_SERVER | tlsv1.0://
TLS 1.1 | STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT | STREAM_CRYPTO_METHOD_TLSv1_1_SERVER | tlsv1.1://
TLS 1.2 | STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT | STREAM_CRYPTO_METHOD_TLSv1_2_SERVER | tlsv1.2://
SSL 3 | STREAM_CRYPTO_METHOD_SSLv3_CLIENT | STREAM_CRYPTO_METHOD_SSLv3_SERVER | sslv3://
<?php

// Requiring TLS 1.0 or better when using file_get_contents():
$ctx = stream_context_create([
'ssl' => [
'crypto_method' => STREAM_CRYPTO_METHOD_TLS_CLIENT,
],
]);
$html = file_get_contents('https://google.com/', false, $ctx);

// Requiring TLS 1.1 or 1.2:
$ctx = stream_context_create([
'ssl' => [
'crypto_method' => STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT |
STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT,
],
]);
$html = file_get_contents('https://google.com/', false, $ctx);

// Connecting using the tlsv1.2:// stream socket transport.
$sock = stream_socket_client('tlsv1.2://google.com:443/');

?>

openssl_get_cert_locations() added

The openssl_get_cert_locations() function has been added: it returns the default locations PHP will search when looking for CA bundles.

<?php
var_dump(openssl_get_cert_locations());
?>

Yukarıdaki örneğin çıktısı:

array(8) {
  ["default_cert_file"]=>
  string(21) "/etc/pki/tls/cert.pem"
  ["default_cert_file_env"]=>
  string(13) "SSL_CERT_FILE"
  ["default_cert_dir"]=>
  string(18) "/etc/pki/tls/certs"
  ["default_cert_dir_env"]=>
  string(12) "SSL_CERT_DIR"
  ["default_private_dir"]=>
  string(20) "/etc/pki/tls/private"
  ["default_default_cert_area"]=>
  string(12) "/etc/pki/tls"
  ["ini_cafile"]=>
  string(0) ""
  ["ini_capath"]=>
  string(0) ""
}

SPKI support

Support has been added for generating, extracting and verifying signed public key and challenges (SPKAC). openssl_spki_new(), openssl_spki_verify(), openssl_spki_export_challenge(), and openssl_spki_export() have been added to create, verify export PEM public key and associated challenge from SPKAC's generated from a KeyGen HTML5 element.

openssl_spki_new

Generates a new SPKAC using private key, challenge string and hashing algorithm.

<?php
$pkey = openssl_pkey_new();
openssl_pkey_export($pkey, 'secret passphrase');

$spkac = openssl_spki_new($pkey, 'challenge string');
?>

Yukarıdaki örneğin çıktısı:

SPKAC=MIIBXjCByDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA3L0IfUijj7+A8CPC8EmhcdNoe5fUAog7OrBdhn7EkxFButUp40P7+LiYiygYG1TmoI/a5EgsLU3s9twEz3hmgY9mYIqb/rb+SF8qlD/K6KVyUORC7Wlz1Df4L8O3DuRGzx6/+3jIW6cPBpfgH1sVuYS1vDBsP/gMMIxwTsKJ4P0CAwEAARYkYjViMzYxMTktNjY5YS00ZDljLWEyYzctMGZjNGFhMjVlMmE2MA0GCSqGSIb3DQEBAwUAA4GBAF7hu0ifzmjonhAak2FhhBRsKFDzXdKIkrWxVNe8e0bZzMrWOxFM/rqBgeH3/gtOUDRS5Fnzyq425UsTYbjfiKzxGeCYCQJb1KJ2V5Ij/mIJHZr53WYEXHQTNMGR8RPm7IxwVXVSHIgAfXsXZ9IXNbFbcaLRiSTr9/N4U+MXUWL7
openssl_spki_verify

Verifies provided SPKAC.

<?php
$pkey = openssl_pkey_new();
openssl_pkey_export($pkey, 'secret passphrase');

$spkac = openssl_spki_new($pkey, 'challenge string');
var_dump(openssl_spki_verify($spkac));
?>
openssl_spki_export_challenge

Exports associated challenge from provided SPKAC.

<?php
$pkey = openssl_pkey_new();
openssl_pkey_export($pkey, 'secret passphrase');

$spkac = openssl_spki_new($pkey, 'challenge string');
$challenge = openssl_spki_export_challenge($spkac);
echo $challenge;
?>

Yukarıdaki örneğin çıktısı:

challenge string
openssl_spki_export

Exports the PEM formatted RSA public key from SPKAC.

<?php
$pkey = openssl_pkey_new();
openssl_pkey_export($pkey, 'secret passphrase');

$spkac = openssl_spki_new($pkey, 'challenge string');
echo openssl_spki_export($spkac);
?>

Yukarıdaki örneğin çıktısı:

-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDcvQh9SKOPv4DwI8LwSaFx02h7
l9QCiDs6sF2GfsSTEUG61SnjQ/v4uJiLKBgbVOagj9rkSCwtTez23ATPeGaBj2Zg
ipv+tv5IXyqUP8ropXJQ5ELtbXPUN/gvw7cO5EbPHr/7eMhbpw8Gl+AfWxW5hLW8
MGw/+AwwjHBOwong/QIDAQAB
-----END PUBLIC KEY-----

User Contributed Notes

There are no user contributed notes for this page.


Other changes to extensions

cURL

A number of constants marked obsolete in the cURL library have now been removed:

  • CURLOPT_CLOSEPOLICY
  • CURLCLOSEPOLICY_CALLBACK
  • CURLCLOSEPOLICY_LEAST_RECENTLY_USED
  • CURLCLOSEPOLICY_LEAST_TRAFFIC
  • CURLCLOSEPOLICY_OLDEST
  • CURLCLOSEPOLICY_SLOWEST

OCI8

  • Support for implicit result sets for Oracle Database 12c has been added via the new oci_get_implicit_resultset() function.
  • Using oci_execute($s, OCI_NO_AUTO_COMMIT) for a SELECT no longer unnecessarily initiates an internal ROLLBACK during connection close.
  • Added DTrace probes controlled by the --enable-dtrace configure option.
  • oci_internal_debug() is now a no-op.
  • The phpinfo() output format for OCI8 has changed.

Zip

A --with-libzip configure option has been added to use a system libzip installation. libzip version 0.11 is required, with 0.11.2 or later recommended.

MySQLi

A new mysqli.rollback_on_cached_plink option was added, which controls the rollback behavior of persistent connections.

User Contributed Notes

There are no user contributed notes for this page.


New global constants

GD

  • IMG_WEBP (as of PHP 5.6.25)

LDAP

  • LDAP_ESCAPE_DN
  • LDAP_ESCAPE_FILTER

OpenSSL

  • OPENSSL_DEFAULT_STREAM_CIPHERS
  • STREAM_CRYPTO_METHOD_ANY_CLIENT
  • STREAM_CRYPTO_METHOD_ANY_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_0_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_1_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_2_SERVER

PostgreSQL

  • PGSQL_CONNECT_ASYNC
  • PGSQL_CONNECTION_AUTH_OK
  • PGSQL_CONNECTION_AWAITING_RESPONSE
  • PGSQL_CONNECTION_MADE
  • PGSQL_CONNECTION_SETENV
  • PGSQL_CONNECTION_SSL_STARTUP
  • PGSQL_CONNECTION_STARTED
  • PGSQL_DML_ESCAPE
  • PGSQL_POLLING_ACTIVE
  • PGSQL_POLLING_FAILED
  • PGSQL_POLLING_OK
  • PGSQL_POLLING_READING
  • PGSQL_POLLING_WRITING

User Contributed Notes

There are no user contributed notes for this page.


PHP'de Hata Ayıklama

İçindekiler

  • PHP'de hata ayıklama hakkında

User Contributed Notes

Fonstw 26-Feb-2020 08:54
For me, just outputting variables only works when I know a method should be broken.

I use Xdebug in PHP Storm (available on other IDE's and editors as well)
It allows me to use line breaks and fully inspect anything that's set and how their values are changed and allows me to call single method even at (paused) runtime to see what behaviour the method really gives at any given point, which gives me a much better insight on how my code works and how to get it to work like it should.

I wholeheartedly recomend anyone to try a fuller-fledged debugger like that!


PHP'de hata ayıklama hakkında

PHP komut satırında çalışan etkileşimli bir hata ayıklayıcı olan phpdbg ile birlikte dağıtılır.

Çoğu IDE, PHP uygulamalarında tek adımda hata ayıklama yapılabilen, özgür bir hata ayıklama aracı olan » Xdebug desteğine sahiptir.

User Contributed Notes

There are no user contributed notes for this page.


Yapılandırma Seçenekleri

İçindekiler

  • Temel yapılandırma seçeneklerinin listesi

User Contributed Notes

There are no user contributed notes for this page.


Temel yapılandırma seçeneklerinin listesi

PHP'yi Unix ve benzeri sistemlerde derlerken kullanılan PHP configure betiğinin yapılandırma seçeneklerinden bir kısmı aşağıda listelenmiştir. Burada bulunmayan yapılandırma seçeneklerinin çoğu eklenti başvuru sayfalarında ilgili oldukları yerlerde listelenmiştir. Yapılandırma seçeneklerinin güncel ve tam listesini almak için PHP kaynak dizininizde autoconf'u çalıştırdıktan sonra ./configure --help komutunu kullanabilirsiniz (ayrıca, Kurulum ve Yapılandırma bölümüne de bakınız). Ayrıca, --prefix=PREFIX gibi ek configure seçenekleri hakkında bilgi almak için » GNU configure belgelerini de okuyabilirsiniz.

Bilginize:

Bunlar sadece derleme sırasında kullanılırlar. PHP'nin çalışma anı yapılandırmasını değiştirmek isiyorsanız Çalışma anı Yapılandırması bölümüne bakınız.

  • Çeşitli
  • PHP Davranışı
  • Sunucu

PHP Yapılandırma Seçenekleri

Çeşitli Seçenekler

--enable-debug

Hata ayıklama etkinleştirilerek derlenir.

--with-layout=TÜR

Kurulacak dosyaların neye göre yerleştirileceği belirtilir. TÜR olarak PHP (öntanımlı) veya GNU belirtilebilir. Kılavuz sayfaları PREFIX altına kuruluyorsa manpath aracıya bulunabilmesi için TÜR olarak GNU seçilmelidir.

--with-pear=DiZiN

PEAR, DiZiN'e kurulur (öntanımlı: PREFIX/lib/php).

--without-pear

PEAR kurulmaz.

--enable-sigchild

PHP'nin kendi SIGCHLD eylemcisi etkin olur.

--disable-rpath

Çalışma anı ek kütüphane arama yollarının aktarımı iptal edilir.

--enable-libgcc

libgcc'ye doğrudan ilintileme etkin olur.

--enable-php-streams

Deneysel PHP akımları içerilir. Kodu denemeden kullanmayın.

--with-zlib-dir[=DiZiN]

zlib kurulum dizininin yeri tanımlanır.

--with-tsrm-pthreads

POSIX evreleri kullanılır (öntanımlıdır).

--enable-shared[=PKGS]

Paylaşımlı kütüphaneler derlenir [öntanımlı=evet].

--enable-static[=PKGS]

Statik kütüphaneler derlenir [öntanımlı=evet].

--enable-fast-install[=PKGS]

Hızlı kurulum için en iyileme yapılır [öntanımlı=evet].

--with-gnu-ld

C derleyicinin GNU ld kullanacağı varsayılır [öntanımlı=hayır].

--disable-libtool-lock

Kilitlemeden kaçınılır (paralel derlemeleri bozabilir).

--with-pic

Sadece PIC/non-PIC nesneler kullanılmaya çalışılır [öntanımlı=ikisi de].

--enable-versioning

Sadece gerekli simgeler ihraç edilir. Daha fazla bilgi için INSTALL dosyasına bakınız.

PHP seçenekleri

--enable-maintainer-mode

Make kurallarının ve bağımlılıklarının dikkatsiz kurucuya elverişsizliği etkin kılınır.

--with-config-file-path=YOL

php.ini dosyasının aranacağı yollar atanır; PREFIX/lib öntanımlıdır.

--disable-short-tags

Öntanımlı olarak başlatma etiketinin <? kısa biçemi iptal edilir.

--with-libdir

PHP derlenirken kullanılacak kütüphanelerin Unix sistemindeki yerini belirmek için kullanılır. 64 bitlik sistemlerde bu dizini lib64 olarak belirmek gerekir: --with-libdir=lib64.

--enable-zts

Mekik güvenliğini etkinleştirir. Windows'tan farklı sistemlerde PHP 8.0.0 öncesinde bu seçenek --enable-maintainer-zts idi.

SAPI seçenekleri

Aşağıda PHP için kullanılabilen SAPI'ler (Server Application Programming Interface kısaltması; Sunucu Uygulama Programlama Arayüzü) listelenmiştir.

--with-apxs[=DOSYA]

PHP bir paylaşımlı Apache modülü olarak derlenir. DOSYAnın belirtilmesi isteğe bağlı olup Apache apxs aracının ismini belirtmek için kullanılır; apxs öntanımlıdır. Apxs'in sisteminizde kurulu sürümünü belirtmelisiniz, Apache kaynak paketindekini değil.

--with-apache[=DiZiN]

PHP bir statik Apache modülü olarak derlenir. DiZiN, Apache'nin kurulu olduğu dizin olup /usr/local/apache öntanımlıdır.

--with-mod_charset

mod_charset (Rusça Apache) için aktarım tablolarını etkinleştirir.

--with-apxs2[=DOSYA]

PHP bir paylaşımlı Apache 2.0 modülü olarak derlenir. DOSYAnın belirtilmesi isteğe bağlı olup Apache apxs aracının ismini belirtmek için kullanılır; apxs öntanımlıdır.

--disable-cli

PHP'nin CLI sürümünün derlenmemesini sağlar (bu, --without-pear seçeneğinin kullanımına sebep olur). Daha fazla bilgi PHP'nin komut satırından kullanımı bölümünde bulunabilir.

--enable-phpdbg

phpdbg etkileşimli hata ayıklayıcının SAPI modül desteğini etkin kılar.

--enable-embed[=TÜR]

Gömülü SAPI kütüphanesinin kurulmasını sağlar. TÜR olarak shared veya static belirtilebilir (paylaşımlı veya statik); shared öntanımlıdır.

--with-servlet[=DiZiN]

Servlet desteği etkinleştirilir. DiZiN, JSDK'nın ana kurulum dizinidir. Bu SAPI, bir paylaşımlı geliştirme dili olarak derlenmiş java eklentisi gerektirir.

--disable-cgi

PHP'nin CGI sürümü derlenmez.

Bu seçenek ile FastCGI'yi etkin kılmak da mümkündür.

User Contributed Notes

atesin () gmail ! com 04-Feb-2021 08:55
i'll answer myself (FINALLY!)

current "configure options" can be viewed with "php-config" shell script, aside with other compile time options too =D!!! ...

in some distributions it comes with the "php-devel" package... but until in this online manual "php-config" is mentioned in pecl extensions documentation (i couldn't find on pecl site), idk if that "php-devel" has something to do with this

... however i noticed they are literal strings inside the script, i hope the script itself were built together with php compilation o_O

in the previous page "configure options" (link shown above ^), there is an editor note with additional info about it
atesin () gmail ! com 04-Feb-2021 02:38
please somebody tell me how to display configure options used in php actual binary

it was shown in phpinfo() some years before, it was very useful, specially with 'phpize' recompilation and to enable some pecl/pear module :/

please tell me also which ctriteria had php guys used to suddenly decided to hide (or obfuscate) this info :/

thanks in advance


php.ini Yönergeleri

İçindekiler

  • php.ini yönergelerinin listesi
  • php.ini bölümlerinin listesi
  • Temel php.ini yönergelerinin tanımları

User Contributed Notes

There are no user contributed notes for this page.


php.ini yönergelerinin listesi

Bu liste, PHP kurulumunu yapılandırmak için kullanabilen php.ini yönergelerini içerir.

"Değişlik Yeri" sütununda yönergenin nerede, ne zaman atanabileceğini belirleyen kipler gösterilmiştir. Bu kiplerin tanımları için Değişlik Yeri kip değerleri bölümüne bakılabilir.

Yapılandırma Seçenekleri
İsim | Öntanımlı | Değişlik Yeri | Sürüm Bilgisi
allow_url_fopen | "1" | INI_SYSTEM |
allow_url_include | "0" | >INI_SYSTEM | PHP 7.4.0 ve sonrasında kullanımı önerilmemektedir.
arg_separator.input | "&" | INI_PERDIR |
arg_separator.output | "&" | INI_ALL |
assert.active | "1" | INI_ALL |
assert.bail | "0" | INI_ALL |
assert.callback | null | INI_ALL |
assert.exception | "0" | INI_ALL | PHP 7.0.0 ve sonrasında kullanılabilir.
assert.quiet_eval | "0" | INI_ALL | PHP 8.0.0 itibariyle kaldırıldı.
assert.warning | "1" | INI_ALL |
auto_append_file | null | INI_PERDIR |
auto_detect_line_endings | "0" | INI_ALL |
auto_globals_jit | "1" | INI_PERDIR |
auto_prepend_file | null | INI_PERDIR |
bcmath.scale | "0" | INI_ALL |
browscap | null | INI_SYSTEM |
cgi.check_shebang_line | "1" | INI_SYSTEM |
cgi.discard_path | "0" | INI_SYSTEM |
cgi.fix_pathinfo | "1" | INI_SYSTEM |
cgi.force_redirect | "1" | INI_SYSTEM |
cgi.nph | "0" | INI_ALL |
cgi.redirect_status_env | null | INI_SYSTEM |
cgi.rfc2616_headers | "0" | INI_ALL |
child_terminate | "0" | INI_ALL |
cli.pager | "" | INI_ALL |
cli.prompt | "\\b \\> " | INI_ALL |
cli_server.color | "0" | INI_ALL |
com.allow_dcom | "0" | INI_SYSTEM |
com.autoregister_typelib | "0" | INI_ALL |
com.autoregister_verbose | "0" | INI_ALL |
com.autoregister_casesensitive | "1" | INI_ALL |
com.code_page | "" | INI_ALL |
com.dotnet_version | "" | INI_SYSTEM | PHP 8.0.0 ve sonrasında kullanılabilir.
com.typelib_file | "" | INI_SYSTEM |
curl.cainfo | NULL | INI_SYSTEM |
date.default_latitude | "31.7667" | INI_ALL |
date.default_longitude | "35.2333" | INI_ALL |
date.sunrise_zenith | "90.833333" | INI_ALL | PHP 8.0.0 öncesinde, "90.583333" öntanımlıydı.
date.sunset_zenith | "90.833333" | INI_ALL | PHP 8.0.0 öncesinde, "90.583333" öntanımlıydı.
date.timezone | "UTC" | INI_ALL | PHP 8.2 ve sonrasında, geçersiz bir değer veya boş dizge atanması bir uyarı ile sonuçlanmaktadır.
dba.default_handler | DBA_DEFAULT | INI_ALL |
default_charset | "UTF-8" | INI_ALL |
input_encoding | "" | INI_ALL |
output_encoding | "" | INI_ALL |
internal_encoding | "" | INI_ALL |
default_mimetype | "text/html" | INI_ALL |
default_socket_timeout | "60" | INI_ALL |
disable_classes | "" | sadece php.ini |
disable_functions | "" | sadece php.ini |
display_errors | "1" | INI_ALL | PHP 8.0.0 öncesinde, öntanımlı değer "0" idi.
display_startup_errors | "1" | INI_ALL |
docref_ext | "" | INI_ALL |
docref_root | "" | INI_ALL |
doc_root | null | INI_SYSTEM |
enable_dl | "1" | INI_SYSTEM | Bu kullanımı önerilmeyen özellik gelecekte kesinlikle KALDIRILACAKTIR.
enable_post_data_reading | "On" | INI_PERDIR |
engine | "1" | INI_ALL |
error_append_string | null | INI_ALL |
error_log | null | INI_ALL |
error_log_mode | 0o644 | INI_ALL | PHP 8.2.0 ve sonrasında kullanılabilir.
error_prepend_string | null | INI_ALL |
error_reporting | null | INI_ALL |
exif.encode_unicode | "ISO-8859-15" | INI_ALL |
exif.decode_unicode_motorola | "UCS-2BE" | INI_ALL |
exif.decode_unicode_intel | "UCS-2LE" | INI_ALL |
exif.encode_jis | "" | INI_ALL |
exif.decode_jis_motorola | "JIS" | INI_ALL |
exif.decode_jis_intel | "JIS" | INI_ALL |
exit_on_timeout | "" | INI_ALL |
expect.timeout | "10" | INI_ALL |
expect.loguser | "1" | INI_ALL |
expect.logfile | "" | INI_ALL |
expect.match_max | "" | INI_ALL |
expose_php | "1" | sadece php.ini |
extension | null | sadece php.ini |
extension_dir | "/path/to/php" | INI_SYSTEM |
fastcgi.impersonate | "0" | INI_SYSTEM |
fastcgi.logging | "1" | INI_SYSTEM |
file_uploads | "1" | INI_SYSTEM |
filter.default | "unsafe_raw" | INI_PERDIR | Deprecated as of PHP 8.1.0.
filter.default_flags | NULL | INI_PERDIR |
from | "" | INI_ALL |
gd.jpeg_ignore_warning | "1" | INI_ALL |
geoip.custom_directory | "" | INI_ALL |
hard_timeout | "2" | INI_SYSTEM | PHP 7.1.0 ve sonrasında kullanılabilir.
highlight.comment | "#FF8000" | INI_ALL |
highlight.default | "#0000BB" | INI_ALL |
highlight.html | "#000000" | INI_ALL |
.keyword | "#007700" | INI_ALL |
highlight.string | "#DD0000" | INI_ALL |
html_errors | "1" | INI_ALL |
ibase.allow_persistent | "1" | INI_SYSTEM |
ibase.max_persistent | "-1" | INI_SYSTEM |
ibase.max_links | "-1" | INI_SYSTEM |
ibase.default_db | NULL | INI_SYSTEM |
ibase.default_user | NULL | INI_ALL |
ibase.default_password | NULL | INI_ALL |
ibase.default_charset | NULL | INI_ALL |
ibase.timestampformat | "%Y-%m-%d %H:%M:%S" | INI_ALL |
ibase.dateformat | "%Y-%m-%d" | INI_ALL |
ibase.timeformat | "%H:%M:%S" | INI_ALL |
ibm_db2.binmode | "1" | INI_ALL |
ibm_db2.i5_all_pconnect | "0" | INI_SYSTEM | Available as of ibm_db2 1.6.5.
ibm_db2.i5_allow_commit | "0" | INI_SYSTEM | Available as of ibm_db2 1.4.9.
ibm_db2.i5_blank_userid | "0" | INI_SYSTEM | Available as of ibm_db2 1.9.7.
ibm_db2.i5_char_trim | "0" | INI_SYSTEM | Available as of ibm_db2 2.1.0.
ibm_db2.i5_dbcs_alloc | "0" | INI_SYSTEM | Available as of ibm_db2 1.5.0.
ibm_db2.i5_guard_profile | "0" | INI_SYSTEM | Available as of ibm_db2 1.9.7.
ibm_db2.i5_ignore_userid | "0" | INI_SYSTEM | Available as of ibm_db2 1.8.0.
ibm_db2.i5_job_sort | "0" | INI_SYSTEM | Available as of ibm_db2 1.8.4.
ibm_db2.i5_log_verbose | "0" | INI_SYSTEM | Available as of ibm_db2 1.9.7.
ibm_db2.i5_max_pconnect | "0" | INI_SYSTEM | Available as of ibm_db2 1.9.7.
ibm_db2.i5_override_ccsid | "0" | INI_SYSTEM | Available as of ibm_db2 1.9.7.
ibm_db2.i5_servermode_subsystem | NULL | INI_SYSTEM | Available as of ibm_db2 1.9.7.
ibm_db2.i5_sys_naming | "0" | INI_SYSTEM | Available as of ibm_db2 1.9.7.
ibm_db2.instance_name | NULL | INI_SYSTEM | Available as of ibm_db2 1.0.2.
iconv.input_encoding | "ISO-8859-1" | INI_ALL | PHP 5.6.0 itibariyle kullanımı önerilmiyor.
iconv.output_encoding | "ISO-8859-1" | INI_ALL | PHP 5.6.0 itibariyle kullanımı önerilmiyor.
iconv.internal_encoding | "ISO-8859-1" | INI_ALL | PHP 5.6.0 itibariyle kullanımı önerilmiyor.
ignore_repeated_errors | "0" | INI_ALL |
ignore_repeated_source | "0" | INI_ALL |
ignore_user_abort | "0" | INI_ALL |
implicit_flush | "0" | INI_ALL |
include_path | ".:/path/to/php/pear" | INI_ALL |
intl.default_locale |  | INI_ALL |
intl.error_level | 0 | INI_ALL |
intl.use_exceptions | 0 | INI_ALL | PECL 3.0.0a1 ve sonrasında kullanılabilir.
last_modified | "0" | INI_ALL |
ldap.max_links | "-1" | INI_SYSTEM |
log_errors | "0" | INI_ALL |
log_errors_max_len | "1024" | INI_ALL |
mail.add_x_header | "0" | INI_PERDIR |
mail.force_extra_parameters | null | php.ini only |
mail.log | "" | INI_PERDIR |
max_execution_time | "30" | INI_ALL |
max_input_nesting_level | "64" | INI_PERDIR |
max_input_vars | 1000 | INI_PERDIR |
max_input_time | "-1" | INI_PERDIR |
mbstring.language | "neutral" | INI_ALL |
mbstring.detect_order | NULL | INI_ALL |
mbstring.http_input | "pass" | INI_ALL | Kullanımı önerilmemektedir.
mbstring.http_output | "pass" | INI_ALL | Kullanımı önerilmemektedir.
mbstring.internal_encoding | NULL | INI_ALL | Kullanımı önerilmemektedir.
mbstring.script_encoding | NULL | INI_ALL | PHP 5.0.0'da kaldırıldı. Yarine zend.script_encoding kullanın.
mbstring.substitute_character | NULL | INI_ALL |
mbstring.func_overload | "0" | INI_SYSTEM | PHP <= 5.2.6'da INI_PERDIR. PHP 7.2.0 itibariyle kullanımı önerilmemektedir.PHP 8.0.0'da kaldırıldı.
mbstring.encoding_translation | "0" | INI_PERDIR |
mbstring.http_output_conv_mimetypes | "^(text/|application/xhtml\+xml)" | INI_ALL |
mbstring.strict_detection | "0" | INI_ALL |
mbstring.regex_retry_limit | "1000000" | INI_ALL | PHP 7.4.0 ve sonrasında kullanılabilir.
mbstring.regex_stack_limit | "100000" | INI_ALL | PHP 7.3.5 ve sonrasında kullanılabilir.
mcrypt.algorithms_dir | null | INI_ALL | PHP 4.0.2'den beri kullanılabilmektedir.
mcrypt.modes_dir | null | INI_ALL | PHP 4.0.2'den beri kullanılabilmektedir.
memcache.allow_failover | "1" | INI_ALL | Available since memcache 2.0.2.
memcache.max_failover_attempts | "20" | INI_ALL | Available since memcache 2.1.0.
memcache.chunk_size | "8192" | INI_ALL | Available since memcache 2.0.2.
memcache.default_port | "11211" | INI_ALL | Available since memcache 2.0.2.
memcache.hash_strategy | "standard" | INI_ALL | Available since memcache 2.2.0.
memcache.hash_function | "crc32" | INI_ALL | Available since memcache 2.2.0.
memcache.protocol | ascii | INI_ALL | Supported since memcache 3.0.0
memcache.redundancy | 1 | INI_ALL | Supported since memcache 3.0.0
memcache.session_redundancy | 2 | INI_ALL | Supported since memcache 3.0.0
memcache.compress_threshold | 20000 | INI_ALL | Supported since memcache 3.0.3
memcache.lock_timeout | 15 | INI_ALL | Supported since memcache 3.0.4
memory_limit | "128M" | INI_ALL |
mysql.allow_local_infile | "1" | INI_SYSTEM |
mysql.allow_persistent | "1" | INI_SYSTEM |
mysql.max_persistent | "-1" | INI_SYSTEM |
mysql.max_links | "-1" | INI_SYSTEM |
mysql.trace_mode | "0" | INI_ALL |
mysql.default_port | NULL | INI_ALL |
mysql.default_socket | NULL | INI_ALL |
mysql.default_host | NULL | INI_ALL |
mysql.default_user | NULL | INI_ALL |
mysql.default_password | NULL | INI_ALL |
mysql.connect_timeout | "60" | INI_ALL |
mysqli.allow_local_infile | "0" | INI_SYSTEM | Before PHP 7.2.16 and 7.3.3 the default was "1".
mysqli.local_infile_directory |  | INI_SYSTEM | Available as of PHP 8.1.0.
mysqli.allow_persistent | "1" | INI_SYSTEM |
mysqli.max_persistent | "-1" | INI_SYSTEM |
mysqli.max_links | "-1" | INI_SYSTEM |
mysqli.default_port | "3306" | INI_ALL |
mysqli.default_socket | NULL | INI_ALL |
mysqli.default_host | NULL | INI_ALL |
mysqli.default_user | NULL | INI_ALL |
mysqli.default_pw | NULL | INI_ALL |
mysqli.reconnect | "0" | INI_SYSTEM | Removed as of PHP 8.2.0
mysqli.rollback_on_cached_plink | "0" | INI_SYSTEM |
mysqlnd.collect_statistics | "1" | INI_SYSTEM |
mysqlnd.collect_memory_statistics | "0" | INI_SYSTEM |
mysqlnd.debug | "" | INI_SYSTEM |
mysqlnd.log_mask | 0 | INI_ALL |
mysqlnd.mempool_default_size | 16000 | INI_ALL |
mysqlnd.net_read_timeout | "86400" | INI_ALL | Before PHP 7.2.0 the default value was "31536000" and the changeability was INI_SYSTEM
mysqlnd.net_cmd_buffer_size | "4096" | INI_SYSTEM |
mysqlnd.net_read_buffer_size | "32768" | INI_SYSTEM |
mysqlnd.sha256_server_public_key | "" | INI_PERDIR |
mysqlnd.trace_alloc | "" | INI_SYSTEM |
mysqlnd.fetch_data_copy | 0 | INI_ALL | Removed as of PHP 8.1.0
oci8.connection_class | "" | INI_ALL |
oci8.default_prefetch | "100" | INI_SYSTEM |
oci8.events | Off | INI_SYSTEM |
oci8.max_persistent | "-1" | INI_SYSTEM |
oci8.old_oci_close_semantics | Off | INI_SYSTEM | Deprecated as of PHP 8.1.0.
oci8.persistent_timeout | "-1" | INI_SYSTEM |
oci8.ping_interval | "60" | INI_SYSTEM |
oci8.prefetch_lob_size | "0" | INI_SYSTEM | Available since PECL OCI8 3.2.
oci8.privileged_connect | Off | INI_SYSTEM |
oci8.statement_cache_size | "20" | INI_SYSTEM |
odbc.default_db * | NULL | INI_ALL |
odbc.default_user * | NULL | INI_ALL |
odbc.default_pw * | NULL | INI_ALL |
odbc.allow_persistent | "1" | INI_SYSTEM |
odbc.check_persistent | "1" | INI_SYSTEM |
odbc.max_persistent | "-1" | INI_SYSTEM |
odbc.max_links | "-1" | INI_SYSTEM |
odbc.defaultlrl | "4096" | INI_ALL |
odbc.defaultbinmode | "1" | INI_ALL |
odbc.default_cursortype | "3" | INI_ALL |
opcache.enable | 1 | INI_ALL |
opcache.enable_cli | 0 | INI_SYSTEM | Between PHP 7.1.2 and 7.1.6 inclusive, the default was 1
opcache.memory_consumption | 128 | INI_SYSTEM |
opcache.interned_strings_buffer | 8 | INI_SYSTEM |
opcache.max_accelerated_files | 10000 | INI_SYSTEM |
opcache.max_wasted_percentage | 5 | INI_SYSTEM |
opcache.use_cwd | 1 | INI_SYSTEM |
opcache.validate_timestamps | 1 | INI_ALL |
opcache.revalidate_freq | 2 | INI_ALL |
opcache.revalidate_path | 0 | INI_ALL |
opcache.save_comments | 1 | INI_SYSTEM |
opcache.fast_shutdown | 0 | INI_SYSTEM | Removed in PHP 7.2.0
opcache.enable_file_override | 0 | INI_SYSTEM |
opcache.optimization_level | 0x7FFEBFFF | INI_SYSTEM | Changed from 0x7FFFBFFF in PHP 7.3.0
opcache.inherited_hack | 1 | INI_SYSTEM | Removed in PHP 7.3.0
opcache.dups_fix | 0 | INI_ALL |
opcache.blacklist_filename | "" | INI_SYSTEM |
opcache.max_file_size | 0 | INI_SYSTEM |
opcache.consistency_checks | 0 | INI_ALL | Disabled as of 8.1.18 and 8.2.5. Removed as of PHP 8.3.0.
opcache.force_restart_timeout | 180 | INI_SYSTEM |
opcache.error_log | "" | INI_SYSTEM |
opcache.log_verbosity_level | 1 | INI_SYSTEM |
opcache.record_warnings | 0 | INI_SYSTEM | Available as of PHP 8.0.0
opcache.preferred_memory_model | "" | INI_SYSTEM |
opcache.protect_memory | 0 | INI_SYSTEM |
opcache.mmap_base | null | INI_SYSTEM | Windows only.
opcache.restrict_api | "" | INI_SYSTEM |
opcache.file_update_protection | 2 | INI_ALL |
opcache.huge_code_pages | 0 | INI_SYSTEM |
opcache.lockfile_path | "/tmp" | INI_SYSTEM |
opcache.opt_debug_level | 0 | INI_SYSTEM | Available as of PHP 7.1.0
opcache.file_cache | null | INI_SYSTEM |
opcache.file_cache_only | 0 | INI_SYSTEM |
opcache.file_cache_consistency_checks | 1 | INI_SYSTEM |
opcache.file_cache_fallback | 1 | INI_SYSTEM | Windows only.
opcache.validate_permission | 0 | INI_SYSTEM | Available as of PHP 7.0.14
opcache.validate_root | 0 | INI_SYSTEM | Available as of PHP 7.0.14
opcache.preload | "" | INI_SYSTEM | Available as of PHP 7.4.0
opcache.preload_user | "" | INI_SYSTEM | Available as of PHP 7.4.0
opcache.cache_id | "" | INI_SYSTEM | Windows only. Available as of PHP 7.4.0
opcache.jit | "tracing" | INI_ALL | Available as of PHP 8.0.0
opcache.jit_buffer_size | 0 | INI_SYSTEM | Available as of PHP 8.0.0
opcache.jit_debug | 0 | INI_ALL | Available as of PHP 8.0.0
opcache.jit_bisect_limit | 0 | INI_ALL | Available as of PHP 8.0.0
opcache.jit_prof_threshold | 0.005 | INI_ALL | Available as of PHP 8.0.0
opcache.jit_max_root_traces | 1024 | INI_SYSTEM | Available as of PHP 8.0.0
opcache.jit_max_side_traces | 128 | INI_SYSTEM | Available as of PHP 8.0.0
opcache.jit_max_exit_counters | 8192 | INI_SYSTEM | Available as of PHP 8.0.0
opcache.jit_hot_loop | 64 | INI_SYSTEM | Available as of PHP 8.0.0
opcache.jit_hot_func | 127 | INI_SYSTEM | Available as of PHP 8.0.0
opcache.jit_hot_return | 8 | INI_SYSTEM | Available as of PHP 8.0.0
opcache.jit_hot_side_exit | 8 | INI_SYSTEM | Available as of PHP 8.0.0
opcache.jit_blacklist_root_trace | 16 | INI_ALL | Available as of PHP 8.0.0
opcache.jit_blacklist_side_trace | 8 | INI_ALL | Available as of PHP 8.0.0
opcache.jit_max_loop_unrolls | 8 | INI_ALL | Available as of PHP 8.0.0
opcache.jit_max_recursive_calls | 2 | INI_ALL | Available as of PHP 8.0.0
opcache.jit_max_recursive_returns | 2 | INI_ALL | Available as of PHP 8.0.0
opcache.jit_max_polymorphic_calls | 2 | INI_ALL | Available as of PHP 8.0.0
open_basedir | null | INI_ALL |
output_buffering | "0" | INI_PERDIR |
output_handler | null | INI_PERDIR |
pcre.backtrack_limit | "1000000" | INI_ALL |
pcre.recursion_limit | "100000" | INI_ALL |
pcre.jit | "1" | INI_ALL |
pdo.dsn.* |  | sadece php.ini dosyasında |
pdo_odbc.connection_pooling | "strict" | INI_ALL |
pdo_odbc.db2_instance_name | NULL | INI_SYSTEM | Bu kullanımı önerilmeyen özellik gelecekte kesinlikle KALDIRILACAKTIR.
pgsql.allow_persistent | "1" | INI_SYSTEM |
pgsql.max_persistent | "-1" | INI_SYSTEM |
pgsql.max_links | "-1" | INI_SYSTEM |
pgsql.auto_reset_persistent | "0" | INI_SYSTEM |
pgsql.ignore_notice | "0" | INI_ALL |
pgsql.log_notice | "0" | INI_ALL |
phar.readonly | "1" | INI_ALL |
phar.require_hash | "1" | INI_ALL |
phar.cache_list | "" | INI_SYSTEM |
post_max_size | "8M" | INI_PERDIR |
precision | "14" | INI_ALL |
realpath_cache_size | "16K" | INI_SYSTEM |
realpath_cache_ttl | "120" | INI_SYSTEM |
register_argc_argv | "1" | INI_PERDIR |
report_memleaks | "1" | INI_ALL |
report_zend_debug | "1" | INI_ALL |
request_order | "" | INI_PERDIR |
runkit.superglobal | "" | INI_PERDIR |
runkit.internal_override | "0" | INI_SYSTEM |
sendmail_from | null | INI_ALL |
sendmail_path | "/usr/sbin/sendmail -t -i" | INI_SYSTEM |
serialize_precision | "-1" | INI_ALL | PHP 7.1.0'a kadar öntanımlı değer 17 idi.
session.save_path | "" | INI_ALL |
session.name | "PHPSESSID" | INI_ALL |
session.save_handler | "files" | INI_ALL |
session.auto_start | "0" | INI_PERDIR |
session.gc_probability | "1" | INI_ALL |
session.gc_divisor | "100" | INI_ALL |
session.gc_maxlifetime | "1440" | INI_ALL |
session.serialize_handler | "php" | INI_ALL |
session.cookie_lifetime | "0" | INI_ALL |
session.cookie_path | "/" | INI_ALL |
session.cookie_domain | "" | INI_ALL |
session.cookie_secure | "0" | INI_ALL | PHP 7.2.0 öncesinde "" öntanımlıydı.
session.cookie_httponly | "0" | INI_ALL | PHP 7.2.0 öncesinde "" öntanımlıydı.
session.cookie_samesite | "" | INI_ALL | PHP 7.3.0'dan beri kullanılabilmektedir.
session.use_strict_mode | "0" | INI_ALL |
session.use_cookies | "1" | INI_ALL |
session.use_only_cookies | "1" | INI_ALL |
session.referer_check | "" | INI_ALL |
session.cache_limiter | "nocache" | INI_ALL |
session.cache_expire | "180" | INI_ALL |
session.use_trans_sid | "0" | INI_ALL |
session.trans_sid_tags | "a=href,area=href,frame=src,form=" | INI_ALL | PHP 7.1.0'dan beri kullanılabilmektedir.
session.trans_sid_hosts | $_SERVER['HTTP_HOST'] | INI_ALL | PHP 7.1.0'dan beri kullanılabilmektedir.
session.sid_length | "32" | INI_ALL | PHP 7.1.0'dan beri kullanılabilmektedir.
session.sid_bits_per_character | "4" | INI_ALL | PHP 7.1.0'dan beri kullanılabilmektedir.
session.upload_progress.enabled | "1" | INI_PERDIR |
session.upload_progress.cleanup | "1" | INI_PERDIR |
session.upload_progress.prefix | "upload_progress_" | INI_PERDIR |
session.upload_progress.name | "PHP_SESSION_UPLOAD_PROGRESS" | INI_PERDIR |
session.upload_progress.freq | "1%" | INI_PERDIR |
session.upload_progress.min_freq | "1" | INI_PERDIR |
session.lazy_write | "1" | INI_ALL |
session.hash_function | "0" | INI_ALL | PHP 7.1.0'da kaldırıldı.
session.hash_bits_per_character | "4" | INI_ALL | PHP 7.1.0'da kaldırıldı.
session.entropy_file | "" | INI_ALL | PHP 7.1.0'da kaldırıldı.
session.entropy_length | "0" | INI_ALL | PHP 7.1.0'da kaldırıldı.
short_open_tag | "1" | INI_PERDIR |
SMTP | "localhost" | INI_ALL |
smtp_port | "25" | INI_ALL |
soap.wsdl_cache_enabled | 1 | INI_ALL |
soap.wsdl_cache_dir | /tmp | INI_ALL |
soap.wsdl_cache_ttl | 86400 | INI_ALL |
soap.wsdl_cache | 1 | INI_ALL |
soap.wsdl_cache_limit | 5 | INI_ALL |
sql.safe_mode | "0" | INI_SYSTEM | PHP 7.2.0'da kaldırıldı.
sqlite3.extension_dir | "" | INI_SYSTEM |
sqlite3.defensive | 1 | INI_USER | libsqlite ? 3.26.0 için PHP 7.2.17 ve PHP 7.3.4 ve sonrasında kullanılabilir. PHP 8.2.0'dan önce bu atama yalnızca INI_SYSTEM olarak değiştirilebilirdi.
sqlite3.extension_dir | "" | INI_SYSTEM | PHP 5.4.11 ve sonrasında mevcuttur.
syslog.facility | "LOG_USER" | INI_SYSTEM | PHP 7.3.0 ve sonrasında mevcuttur.
syslog.filter | "no-ctrl" | INI_ALL | PHP 7.3.0 ve sonrasında mevcuttur.
syslog.ident | "php" | INI_SYSTEM | PHP 7.3.0 ve sonrasında mevcuttur.
sys_temp_dir | "" | INI_SYSTEM |
sysvshm.init_mem | 10000 | INI_SYSTEM |
tidy.default_config | "" | INI_SYSTEM |
tidy.clean_output | "0" | INI_USER |
track_errors | "0" | INI_ALL | PHP 7.2.0 ve sonrasında kullanımı önerilmemekte olup, PHP 8.0.0'da kullanımdan kaldırılmıştır.
unserialize_callback_func | null | INI_ALL |
unserialize_max_depth | "4096" | INI_ALL | PHP 7.4.0 ve sonrasında kullanılabilir.
uploadprogress.file.filename_template | "/tmp/upt_%s.txt" | INI_ALL |
upload_max_filesize | "2M" | INI_PERDIR |
max_file_uploads | 20 | INI_SYSTEM |
upload_tmp_dir | null | INI_SYSTEM |
url_rewriter.hosts | "" | INI_ALL | PHP 7.1.0 ve sonrasında kullanılabilir.
url_rewriter.tags | "form=" | INI_ALL | PHP 7.1.0 öncesinde, öntanımlı değer "a=href,area=href,frame=src,form=,fieldset=" idi.
user_agent | null | INI_ALL |
user_dir | null | INI_SYSTEM |
user_ini.cache_ttl | "300" | INI_SYSTEM |
user_ini.filename | ".user.ini" | INI_SYSTEM |
uopz.disable | "0" | INI_SYSTEM | Available as of uopz 5.0.2
uopz.exit | "0" | INI_SYSTEM | Available as of uopz 6.0.1
uopz.overloads | "1" | INI_SYSTEM | Available as of uopz 2.0.2. Removed as of uopz 5.0.0.
variables_order | "EGPCS" | INI_PERDIR |
windows.show_crt_warning | "0" | INI_ALL |
xbithack | "0" | INI_ALL |
xmlrpc_errors | "0" | INI_SYSTEM |
xmlrpc_error_number | "0" | INI_ALL |
yaz.keepalive | "120" | INI_ALL |
yaz.log_mask | null | INI_ALL | yaz 1.0.3 ve sonrasında kullanılabilir.
zend.assertions | "1" | INI_ALL |
zend.detect_unicode | "1" | INI_ALL |
zend.enable_gc | "1" | INI_ALL |
zend.multibyte | "0" | INI_PERDIR |
zend.script_encoding | null | INI_ALL |
zend.signal_check | "0" | INI_SYSTEM |
zend_extension | null | sadece php.ini |
zlib.output_compression | "0" | INI_ALL |
zlib.output_compression_level | "-1" | INI_ALL |
zlib.output_handler | "" | INI_ALL |

User Contributed Notes

There are no user contributed notes for this page.


php.ini bölümlerinin listesi

Bu liste, PHP kurulumunuzu her konak (HOST) veya dosya yolu (PATH) için yapılandırmakta kullanacağınız php.ini bölümlerini içerir. Bu bölümler isteğe bağlıdır.

Bu bölümler PHP'yi doğrudan etkilemez. php.ini yönergelerini aralarında ve belli bir konak veya yol için gruplamakta kullanılırlar.

Bu bölümler sadece CGI/FastCGI kipinde kullanılır; extension ve zend_extension yönergelerini tanımlamakta kullanılamaz.

Bölümler
İsim | Değişlik Yeri | Sürüm Bilgisi
[HOST=] | INI_SYSTEM |
[PATH=] | INI_SYSTEM |

Yapılandırma yönergelerinin kısa açıklamalarını aşağıda bulabilirsiniz.

[HOST=<site.adı>]

Sadece ismi belirtilen konak üzerinde etkili olacak php.ini yönergelerini gruplamak için kullanılır.

Örnek 1 - dev.site.dom alan adı için ekranda hata raporlamayı etkin kılmak

[HOST=dev.site.dom]
error_reporting = E_ALL
display_errors = On

[PATH=<dosya/yolu>]

Sadece yolu belirtilen betikler üzerinde etkili olacak php.ini yönergelerini gruplamak için kullanılır.

Örnek 2 - Korunmuş alanlar için güvenlik betikleri eklemek

[PATH=/home/site/public/secure]
auto_prepend_file=security.php

User Contributed Notes

dasloch at absatzen dot de 12-Feb-2020 12:47
Note that you cannot usefully set syslog.* in [PATH=] (and probably [HOST=]) sections, since the syslogger is initialized only once per php-fpm worker process, and not per request.
robinhook at mail dot com 22-Apr-2018 07:14
Sorry for the note. I've read some bad tutorials.
The correct syntax is : directive = 'value'
not a thing like : php_value[directive] = "somevalue"
robinhook at mail dot com 22-Apr-2018 06:59
this HOST and PATH sections doesn't seems to work in php.ini under apache 2.4 with php-fpm 7.1.16 for directive php_value or php_admin_value open_basedir or include_path.
phpinfo() says "none" in master and local values.
z dot himdi at bita dot nl 04-Aug-2011 07:53
On Windows IIS 7 server I noticed that [PATH=] was not listened to. [HOST=] however worked.
leo 06-May-2011 03:21
Just developed the probably first php.ini hack to add commands which will only be parsed before PHP 5.3 when using mod_php.

<?php

# Disable eAccelerator by default
eaccelerator.enable = 0

# Now, to prevent incompatibilities with Zend Optimizer+, we
# want to enable eAccelerator only in PHP 5.2 or lower.
[HOST=*]
eaccelerator.enable = 1

?>

What is happening here? In PHP 5.3, php.ini sections to set up PHP on a per host basis have been introduced:

http://www.php.net/manual/en/ini.sections.php

These sections only work in CGI/FastCGI mode, however there still seems to be a difference in how the php.ini file is parsed in PHP 5.2 and PHP 5.3 when using mod_php: PHP 5.3 ignores everything below the line [HOST=*], whereas PHP 5.2 does not.

In the above example, PHP 5.3 only reads "eaccelerator.enable = 0" and then stops at the invalid command [HOST=*]. However, PHP 5.2 seems to ignore the invalid command and parses the whole configuration file, ending up with "eaccelerator.enable = 1".
crash at lubyte dot de 06-Sep-2010 05:45
If you have a system which uses separated PHP inis for loading extensions (Debian, Fedora and most other distributions do so), [PATH=] or [HOST=] will prevent loading extensions defined in those ini files (extension= and zend_extension=).

I had some headache, when I added a hosts.ini to /etc/php5/cgi/conf.d (Debians default), where I wanted to define some defaults for a host name. The manual says extension= and zend_extension= aren't allowed in [HOST=] and [PATH=] (see above). I figured out that you can easily fix that with adding [PHP] after your definitions.

For example hosts.ini:
[HOST=dev.example.com]
display_errors = on

[PHP]

this will change the section back to [PHP] where extension= and zend_extension= is allowed.
robert dot johnson at icap dot com 12-Apr-2010 10:26
Adding PATH= applies only to the named path and does not include sub-directories, you have to add a PATH= value for each sub-directory.

Also some settings have no effect even though phpinfo recognises and displays the per-folder value as the 'local' value, and the default as the 'master' value.

'fastcgi.impersonate' always uses the master setting.
public at grik dot net 24-Sep-2009 03:00
In [HOST=...] one should use only the 1st server name from the list of server names.

I.E. if you have
server_name example.com, example2.com;
and will use www.example.com in a browser,
use [HOST=example.com] in php.ini for both addresses.

PHP looks not at the HOST request header (as I expected), but at the SERVER_NAME parameter (which by default is the 1st from the list of names, no matter what the HOST is).


Temel php.ini yönergelerinin tanımları

Bu liste PHP kurulumunu yapılandırmakta kullanılan yerleşik php.ini yönergelerini içerir. Eklentilerle ilgili yönergeler eklentinin kendi belgelerinde listelenmiş ve açıklanmıştır. Örneğin, oturum yönergeleri ile ilgili bilgiler oturumlar sayfasında bulunabilir.

Bilginize:

Burada listelenen öntanımlılar php.ini yüklenirken kullanılır; değerler kullanıcı içindir ve geliştirilmekte olan php.ini farklı olabilir.

Dil Seçenekleri

Dil ve Çeşitli Yapılandırma Seçenekleri
İsim | Öntanımlı | Değişlik Yeri | Sürüm Bilgisi
short_open_tag | "1" | INI_PERDIR |
precision | "14" | INI_ALL |
serialize_precision | "-1" | INI_ALL | PHP 7.1.0 öncesinde öntanımlı değer 17 idi.
disable_functions | "" | sadece >INI_SYSTEM |
disable_classes | "" | sadece php.ini |
exit_on_timeout | "" | INI_ALL |
expose_php | "1" | sadece php.ini |
hard_timeout | "2" | INI_SYSTEM | PHP 7.1.0 ve sonrasında mevcuttur.
zend.exception_ignore_args | "0" | INI_ALL | PHP 7.4.0 ve sonrasında mevcuttur.
zend.multibyte | "0" | INI_ALL |
zend.script_encoding | NULL | INI_ALL |
zend.detect_unicode | NULL | INI_ALL |
zend.signal_check | "0" | INI_SYSTEM |
zend.assertions | "1" | Kısıtlamalarla INI_ALL |
zend.exception_string_param_max_len | "15" | INI_ALL | PHP 8.0.0 ve sonrasında mevcuttur.

Yapılandırma yönergelerinin kısa açıklamalarını aşağıda bulabilirsiniz.

short_open_tag bool

PHP'nin başlangıç etiketinin kısa gösteriminin kullanımına izin verilip verilmediğini söyler. PHP'yi XML içinde kullanmak isterseniz <?xml ?> satırını kullanmak için bu kısa etiket kullanımını iptal edip uzun etiket (<?php ?>) kullanabilirsiniz. Aksi takdirde satırı <?php echo '<?xml version="1.0"?>';?> şeklinde PHP'ye yazdırabilirsiniz.

Bilginize:

Bu yönerge, sürekli kullanılan <?= kısaltmasını etkilemez.

precision int
Gerçek sayılarda ondalık noktadan sonraki anlamlı hane sayısı. -1 böyle sayıların yuvarlatılmasında geliştirilmiş bir algoritmanın kulllanılacağı anlamına gelir.
serialize_precision int
Gerçek sayılar dizgileştirilirken saklanan ondalık noktadan sonraki anlamlı hane sayısı. -1 böyle sayıların yuvarlatılmasında geliştirilmiş bir algoritmanın kulllanılacağı anlamına gelir.
expose_php bool

PHP'nin kurulu olduğu sunucuda sürüm bilgisini HTTP başlığına eklemek suretiyle (örn: X-Powered-By: PHP/5.3.7) kendini karşıya gösterip göstermeyeceğini belirler.

disable_functions string
Bu yönerge belli işlevleri iptal etmeye yarar. İşlev isimleri aralarına virgül konarak belirtilir.

Bu yönerge ile sadece dahili işlevler iptal edilebilir. Kullanıcı tarafından tanımlanmış işlevler etkilenmez.

Bu yönerge sadece php.ini içinde atanabilir. Örneğin httpd.conf dosyasında tanımlayamazsınız.
disable_classes string
Bu yönerge belli sınıfları iptal etmeye yarar. Sınıf isimleri aralarına virgül konarak belirtilir. Bu yönerge sadece php.ini içinde atanabilir. Örneğin httpd.conf dosyasında tanımlayamazsınız.
zend.exception_string_param_max_len int
Dizgelenmiş yığıt izlemelerinde dizge işlevi bağımsız değişkenlerinin azami uzunluğu. "0" ile "1000000" arasında olmalıdır.
hard_timeout int

max_execution_time yönergesinde atanan zaman aşımına ulaşıldığında PHP özkaynaklarından nazikçe kurtulacaktır. Bu olurken bir şey takılırsa, katı zaman aşımı ayarlanan saniye miktarı kadar ilerleyecektir. Katı zaman aşımına ulaşıldığında PHP hoyratça çıkış yapar. Bu yönergeye 0 atanırsa katı zaman aşımı asla devreye girmez.

PHP katı zaman aşımında durursa ölümcül hata çıktılanır:

Fatal error: Maximum execution time of 30+2 seconds exceeded (terminated) in Unknown on line 0

zend.assertions int
1 atandığında, Kararlılık denetimleri kodu üretilir ve çalıştırılır (geliştirme kipi). 0 atandığında kod yine üretilir fakat çalıştırılmaz. -1 atandığında ise kod üretilmez ve bu atama kararlılık denetimlerinin maliyetini sıfırlar (üretim kipi).

Bilginize:

Bir süreç üretim kipinde başlatılmışsa, kararlılık denetimleri kodu üretilmediğinden zend.assertions çalışma anında değiştirilemez.

Bir süreç geliştirme kipinde başlatılmışsa, zend.assertions'a çalışma anında -1 atanamaz.

zend.exception_ignore_args bool

İstisnalardan oluşturulan yığın izlerindeki bağımsız değişkenleri hariç tutar.

zend.multibyte bool

Çokbaytlı kodlanmış kaynak dosyalarının çözümlenmesini etkin kılar. Çokbaytlı dizge verisi içinde özel karakterler içeren SJIS, BIG5, vs. gibi karakter kodlamalarını kullanmak için zend.multibyte etkin olmalıdır. UTF-8, EUC gibi ISO-8859-1 uyumlu kodlamalar bu seçeneğin etkinleştirilmesini gerektirmez.

zend.multibyte seçeneğinin etkin olabilmesi için mbstring eklentisi kullanımda (kurulu) olmalıdır.

zend.script_encoding string

Betiğin tepesinde declare(encoding=...) yönergesi görünmediği takdirde bu değer kullanılır. ISO-8859-1 ve UTF-8 ile uyumlu olmayan kodlamalar için zend.multibyte ve zend.script_encoding seçeneklerinin ikisi de etkin olmalıdır.

Kod dizgeleri, mb_convert_encoding() çağrılmış gibi zend.script_enconding'den mbstring.internal_encoding'e çevrilir.

zend.detect_unicode bool

BOM'a (Bayt sıralama imi) ve dosyanın çokbaytlı karakterler içerip içermediğine bakılır. Bu saptama __halt_compiler() çalıştırılmadan önce yapılır. Sadece Zend Multibyte kipinde kullanılabilir.

zend.signal_check bool

Sistemin kapanması sırasında sinyal eylemcilerinin yerleştirilip yerleştirilmediğini sınamak için.

detect_unicode bool

Bayt sırası imine ve dosyanın geçerli çok baytlı karakterleri içerip içermediğine bakar. Bu işlem __halt_compiler() işleme sokulmadan önce yapılır. Sadece Çokbaytlı Zend kipinde kullanılabilir.

exit_on_timeout bool

Bu Apache1 mod_php modülüne özgü bir yönergedir ve PHP icrası sırasında bir zaman aşımı oluştığu takdirde PHP'yi çalıştıran Apache lat sürecinin çıkmasını sağlar. Böyle bir zaman aşımı Apache1 içinde bazı eklentileri kararsız durumda bırakabilen dahili bir longjmp() çağrısına sebep olur. Süreci sonlandırmak suretiyle takılı kalmış kilitler ve bellek temizlenebilir.

Özkaynak Sınırları

Özkaynak Sınırları
İsim | Öntanımlı | Değişlik Yeri | Sürüm Bilgisi
memory_limit | "128M" | INI_ALL |

Yapılandırma yönergelerinin kısa açıklamalarını aşağıda bulabilirsiniz.

memory_limit int

Bir betiğin ayırmasına izin verilebilecek belleğin azami miktarını belirler. Bu yönerge, yetersiz betiklerin bir sunucu üzerinde mevcut belleğin tamamını tüketmesini önlemeye yardımcı olur. Belleği sınırlamak istemiyorsanız yönergeye -1 değeri atayın.

int türünde bir değer kullanıldığında değer baytların sayısıdır. Büyük bayt değerleri için kullanılabilecek birimlerin gösterimleri hakkında bilgiyi bu SSS altında bulabilirsiniz.

Ayrıca bakınız: max_execution_time.

Başarım Arttırma

Başarım Arttırma
İsim | Öntanımlı | Değişlik Yeri | Sürüm Bilgisi
realpath_cache_size | "4M" | INI_SYSTEM | PHP 7.0.16 ve 7.1.2 öncesinde öntanımlı değer "16K" idi.
realpath_cache_ttl | "120" | INI_SYSTEM |

Bilginize:

open_basedir kullanımı realpath önbelleğini iptal eder.

Yapılandırma yönergelerinin kısa açıklamalarını aşağıda bulabilirsiniz.

realpath_cache_size int

PHP tarafından kullanılan realpath önbelleğinin boyunu belirler. PHP'nin çok sayıda dosya açtığı sistemlerde gerçekleştirilen dosya işlemlerinin miktarına bağlı olarak bu değerin arttırılması gerekir.

Boyut saklanan dosyanın yol dizgesinin bayt olarak uzunluğunu artı, arabellek girdisiyle ilişkili verinin miktarını gösterir. Yani, arabellekte daha uzun dosya yolu saklamak için arabellek boyutunu arttırmanız gerekir. Bu değer arabelleklenebilen farklı yolların sayısını doğrudan saptayabilmeyi sağlamaz.

Arabellek girdisi için gereken boyut sistemden sisteme değişir.

realpath_cache_ttl int

Belli bir dosya veya dizin için realpath bilgisini önbellekte tutma süresi (saniye cinsinden). Dosyaların nadiren değiştiği sistemlerde bu değer arttırılabilir.

Veri İşleme

Veri İşleme Seçenekleri
İsim | Öntanımlı | Değişlik Yeri | Sürüm Bilgisi
arg_separator.output | "&" | INI_ALL |
arg_separator.input | "&" | INI_PERDIR |
variables_order | "EGPCS" | INI_PERDIR |
request_order | "" | INI_SYSTEM|INI_PERDIR |
auto_globals_jit | "1" | INI_PERDIR |
register_argc_argv | "1" | INI_PERDIR |
enable_post_data_reading | "1" | INI_PERDIR |
post_max_size | "8M" | INI_PERDIR |
auto_prepend_file | NULL | INI_PERDIR |
auto_append_file | NULL | INI_PERDIR |
default_mimetype | "text/html" | INI_ALL |
default_charset | "" | INI_ALL |
input_encoding | "" | INI_ALL |
output_encoding | "" | INI_ALL |
internal_encoding | "" | INI_ALL |

Yapılandırma yönergelerinin kısa açıklamalarını aşağıda bulabilirsiniz.

arg_separator.output string

PHP'de üretilen URL'leri bağımsız değişkenlerine ayırmak için kullanılan ayraç.

arg_separator.input string

Girdi olarak verilen URL'leri değişkenlere çözümlemek için PHP tarafından kullanılan ayraçların listesi.

Bilginize:

Bu yönergede belirtilen her karakter bir ayraç olarak ele alınır!

variables_order string

EGPCS (Environment, Get, Post, Cookie ve Server) değişken çözümleme sırası belirtilir. Örneğin, değer olarak "SP" belirtilirse, PHP, $_SERVER ve $_POST süper küresellerini oluşturacak ama $_ENV, $_GET ve $_COOKIE süper küresellerini oluşturmayacaktır. Değer olarak "" atanırsa hiçbir süper küresel atanmayacaktır.

Uyarı

CGI ve FastCGI SAPI'lerinin her ikisi için de $_SERVER dizisi ortamdaki değerlerle oluşturulur; S, E'nin yönergedeki yerinden bağımsız olarak daima ES'e eşdeğerdir.

Bilginize:

Ayrıca, $_REQUEST dizisinin içeriği ve sırası da bu yönergeden etkilenir.

request_order string

GET, POST ve Cookie değişkenlerinin $_REQUEST dizisinin içindeki sırasını belirler. Yazma işlemi soldan sağa doğru ilerleyerek yeni değerler eskileri geçersiz kılar.

Bu yönerge atanmazsa $_REQUEST dizisinin içeriği variables_order yönergesiyle belirlenir.

Güvenlik kaygılarından dolayı dağıtımla gelen öntanımlı php.ini dosyaları çerezler için 'C' içermez.

auto_globals_jit bool

Etkinleştirildiğinde, SERVER REQUEST ve ENV değişkenleri betik çalıştırıldığı zaman değil, değişkenler kullanıldığı anda (tam zamanında) oluşturulur. Bu değişkenler bir betik içinde kullanılmamışlarsa bu yönergenin varlığı bir başarım kazancıyla sonuçlanacaktır.

Uyarı

SERVER REQUEST ve ENV değişkenlerinin kullanımı derleme sırasında sınanır, dolayısıyla örneğin değişken değişkenler üzerinden kullanılmaları ilklendirilmelerine sebep olmayacaktır.

register_argc_argv bool
PHP'nin, (GET bilgisini içeren) argv ve argc değişkenlerini bildirip bildirmeyeceğini belirler. Komut satırı bölümüne de bakınız. Bu yönerge PHP 4.0.0'dan itibaren kullanılabilir hale geldi ve daha önce değeri daima "on" idi.
enable_post_data_reading bool
Bu seçeneğin iptali $_POST ve $_FILES verilerinin toplanmamasına sebep olur. Post verisini okumanın tek yolu php://input akım sarmalayıcısı kullanmak olacaktır. POST verisini işlerken bellek tasarrufu yapmak veya isteklere vekalet etmek için kullanışlıdır.
post_max_size int
POST verisinin azami boyutunu belirler. Bu ayar ayrıca karşıya dosya yükleme işlemlerini de etkiler. Büyük dosyaları karşıya yüklemek için bu değerin upload_max_filesize değerinden büyük olması gerekir. Genelde, memory_limit değerinin post_max_size değerinden büyük olması gerekir. int türünde bir değer kullanıldığında değer baytların sayısıdır. Büyük bayt değerleri için kullanılabilecek birimlerin gösterimleri hakkında bilgiyi bu SSS altında bulabilirsiniz. Eğer POST verisinin boyu post_max_size değerinden büyükse $_POST ve $_FILES süper küreselleri boş olur. Bu, çeşitli yollarla izlenebilir; örneğin, veriyi işleyen betiğe $_GET değişkenini <form action="edit.php?processed=1"> ile aktararak ve ardından $_GET['processed'] atanmış mı diye sınanarak bu yapılabilir.

Bilginize:

PHP bayt değerleri için K (kilo), M (mega) ve G (giga) birim kısaltmalarını kabul eder. Bunları kullanırsanız PHP dönüşümü otomatik olarak yapacaktır. 32 bitlik sürümleri kullanıyorsanız, 32 bitlik işaretli tamsayı sınırını aşmamaya dikkat edin, aksi takdirde betiğiniz başarısız olacaktır.

post_max_size ile ilgili değişiklikler
Sürüm: Açıklama
5.3.4 | İçerik türü PHP'de tanımlı değilse veya içerik türü application/x-www-form-urlencoded ise post_max_size = 0 ataması sınırlamayı iptal etmez.
5.3.2 , 5.2.12 | post_max_size = 0 ataması POST boyutunu sınırsız yapar.
auto_prepend_file string

Otomatik olarak ana betikten önce çözümlenecek dosyanın ismi belirtilir. Dosya require ile belirtilmiş gibi ana dosyanın başına eklenir; dolayısıyla dosyayı bulmak için include_path kullanılır.

none özel değeri başa dosya eklemeyi iptal eder.

auto_append_file string

Otomatik olarak ana betikten sonra çözümlenecek dosyanın ismi belirtilir. Dosya require ile belirtilmiş gibi ana dosyanın sonuna eklenir; dolayısıyla dosyayı bulmak için include_path kullanılır.

none özel değeri sona dosya eklemeyi iptal eder.

Bilginize: Eğer betik exit() ile sonlanırsa otomatik ekleme gerçekleşmez.

default_mimetype string

Öntanımlı MIME türü. Öntanımlı olarak PHP ortam türünü Content-Type başlığını kullanarak gönderir. Ortam türünün gönderilmesini engellemek için değişkene hiçbir şey atanmamalıdır.

PHP'nin yerleşik öntanımlı ortam türü text/html olarak atanmıştır.

default_charset string

"UTF-8" öntanımlı değerdir ve eğer encoding kullanılmamışsa bu değer htmlentities(), html_entity_decode() ve htmlspecialchars() için öntanımlı karakter kodlaması olarak kullanılır. Ayrıca: iconv.input_encoding, iconv.output_encoding ve iconv.internal_encoding yapılandırma seçeneklerine değer atanmamışsa default_charset iconv işlevleri için de öntanımlı karakter kümesi olur. mbstring.http_input, mbstring.http_output ve mbstring.internal_encoding yapılandırma seçeneklerine değer atanmamışsa default_charset mbstring işlevleri için de öntanımlı karakter kümesi olur.

PHP tarafından gönderilen Content-Type başlığı header() çağrısı ile değiştirilmedikçe PHP'nin tüm sürümlerinde başlıktaki karakter kümesi değeri bu değer olacaktır.

default_charset seçeneğine boş değer atanması önerilmez.

input_encoding string

Bu değer mbstring ve iconv gibi çokbayt modülleri için kullanılır. Öntanımlı değer boş dizgedir.

output_encoding string

Bu değer mbstring ve iconv gibi çokbayt modülleri için kullanılır. Öntanımlı değer boş dizgedir.

internal_encoding string

Bu değer mbstring ve iconv gibi çokbayt modülleri için kullanılır. Öntanımlı değer boş dizgedir ve böyle bir durumda default_charset kullanılır.

Dosya Yolları ve Dizinler

Dosya Yolları ve Dizinler için Yapılandırma seçenekleri
İsim | Öntanımlı | Değişlik Yeri | Sürüm Bilgisi
include_path | ".;/path/to/php/pear" | INI_ALL |
open_basedir | NULL | INI_ALL |
doc_root | NULL | INI_SYSTEM |
user_dir | NULL | INI_SYSTEM |
user_ini.cache_ttl | "300" | INI_SYSTEM |
user_ini.filename | ".user.ini" | INI_SYSTEM |
extension_dir | "/path/to/php" | INI_SYSTEM |
extension | NULL | sadece php.ini |
zend_extension | NULL | sadece php.ini |
cgi.check_shebang_line | "1" | INI_SYSTEM |
cgi.discard_path | "0" | INI_SYSTEM |
cgi.fix_pathinfo | "1" | INI_SYSTEM |
cgi.force_redirect | "1" | INI_SYSTEM |
cgi.nph | "0" | INI_SYSTEM |
cgi.redirect_status_env | NULL | INI_SYSTEM |
cgi.rfc2616_headers | "0" | INI_ALL |
fastcgi.impersonate | "0" | INI_SYSTEM |
fastcgi.logging | "1" | INI_SYSTEM |

Yapılandırma yönergelerinin kısa açıklamalarını aşağıda bulabilirsiniz.

include_path string

require, include, fopen(), file(), readfile() ve file_get_contents() işlevleri için dosyaların aranacağı dizinler belirtilir. Dizgenin biçemi sistemin PATH ortam değişkenindeki gibidir: Dizinler Unix'te iki nokta imleriyle, Windows'ta ise noktalı virgüllerle ayrılır.

PHP, dahil edilecek dosyaları include_path içindeki yollarda her dosya için tek tek sırayla arar. Önce ilk yola bakar, sonra diğerine, böyle gider. Ya dosyayı bulur ya da bir E_WARNING veya bir E_ERROR ile döner. Bu yönergenin değerini betiğinizin çalışması sırasında set_include_path() işleviyle değiştirebilirsiniz.

Örnek 1 - Unix include_path

include_path=".:/php/includes"

Örnek 2 - Windows include_path

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

Dosya yolu olarak . belirtilmesi çalışılan dizinin arama yollarına dahil edilmesini sağlar. Ancak, dahil edilen her dosyayı PHP'nin daima denetlemesini isterseniz include './dosya' biçemini kullanmak daha iyidir.

Bilginize:

ENV değişkenlerine .ini dosyalarında daima erişilebilmektedir. Dolayısıyla, ${LOGIN} ve ${USER}.kullanarak home dizinine erişmek mümkündür.

Ortam değişkenleri sunucunun çalıştığı sisteme bağlı olarak değişiklik gösterebilir.

Örnek 3 - include_path değişkeninde Unix ${USER} ortam değişkeni kullanımı

include_path = ".:${USER}/pear/php"

open_basedir string

PHP tarafından açılmış dosyaları, dosyanın kendisi de dahil olmak üzere belirtilen dizin ağacı ile sınırlar.

Örneğin bir betik dosya sistemine erişmeye çalışırsa, örneğin fopen() veya gzopen() ile bir dosya açmaya çalışırsa dosyanın yerine bakılır. Dosya belirtilen dizin ağacının dışındaysa PHP bu dosyayı açmayı reddeder. Tüm sembolik bağlar çözümlenir, dolayısıyla bir sembolik bağ kullanarak bu kısıtlamayı aşmak mümkün değildir. Eğer dosya mevcut değilse sembolik bağ çözümlenemeyeceğinden dosyanın kendisi open_basedir ile karşılaştırılır.

open_basedir dosya sistemi işlevlerinden daha fazlasını etkileyebilir; örneğin, MySQL mysqlnd sürücülerini kullanacak şekilde yapılandırılmışsa LOAD DATA INFILE bu seçenekten etkilenir. PHP'nin gelişkin işlevselliğinin çoğu open_basedir'ı böyle kullanır.

Betiğin çalışma dizinini belirten nokta (.) özel değeri temel dizini belirtmek için kullanılabilir. Bunula birlikte, çalışma dizini chdir() ile kolayca değiştirilebilceğinden bunu yapmak biraz tehlikelidir.

httpd.conf içinde (örneğin bazı sanal konaklarda), open_basedir yönergesi diğer "php_admin_value open_basedir none" gibi yapılandırma yönergelerinde yapıldığı gibi kapatılabilir.

Windows altında, dizinleri aralarına noktalı virgül konarak belirtilir. Diğer tüm sistemlerde ikinokta imi kullanılır. PHP'nin Apache modülü olarak kullanıldığı durumlarda open_basedir ile belirtilen yollar artık üst dizinlerinden otomatik olarak miras alınmaktadır.

open_basedir ile belirtilen kısıt bir önek değil bir dizin ismidir.

Öntanımlı olarak bütün dosyaların açılmasına izin verilir.

Bilginize:

open_basedir çalışma anında daha da kısıtlayıcı hale getirilebilmektedir. Örneğin, php.ini içinde open_basedir yönergesinde /siteler/ dizini belirtilmişse çalışma anında ini_set() işlevi kullanılarak kısıtlama /siteler/tmp/ ile daha da daraltılabilir. Çeşitli dizinleri listelerken, işletim sisteminin kısıtlarına aldırmaksızın bir ayraç olarak PATH_SEPARATOR sabiti kullanılabilir.

Bilginize:

open_basedir kullanımırealpath_cache_size seçeneğine 0 atar, dolayısıyla realpath önbelleği iptal olur.

Dikkat

open_basedir sadece ek bir güvenlik ağıdır, hiçbir şekilde kapsamlı değildir ve bu nedenle güvenlik gerektiğinde güvenilemez.

doc_root string

PHP'nin sunucu üzerindeki kök dizini. Sadece boş olmadığı takdirde kullanılır. PHP, FORCE_REDIRECT ile derlenmişse, PHP'yi HTTP sunucusu altında bir CGI olarak çalıştırıyorsanız doc_root yönergesini atamanız gerekir (IIS hariç). Bunun yerine aşağıdaki cgi.force_redirect yapılandırması da kullanılabilir.

user_ini.cache_ttl int

user_ini.filename string

user_dir string

Kullanıcının ev dizininde PHP dosyalarının bulunduğu ana dizin. Örnek: public_html.

extension_dir string

PHP'nin dinamik olarak yüklenebilen eklentileri arayacağı dizin. Dizinin mutlak yolunun belirtilmesi önerilir. Ayrıca bakınız: enable_dl ve dl().

extension string

PHP başlatılırken dinamik olarak yüklenecek eklentiler.

zend_extension string

PHP başlatılırken yüklenecek dinamik olarak yüklenebilen Zend eklentisinin ismi (örneğin XDebug).

cgi.check_shebang_line bool

CGI PHP'nin betiklerin başında #! ile başlayan satırın varlığına bakıp bakmayacağını belirler. Betik hem PHP CGI hem de tek başına bir betik olarak çalışabiliyorsa bu satır gerekebilir. PHP, CGI kipinde çalışırken bu satırı atlar, bu yönerge "1" olsa bile satırın içeriği yok sayılır.

cgi.discard_path bool

Etkinse, the PHP CGI ikili site ağacının dışına güvenle yerleştirilebilir ve .htaccess güvenliğini kimse atlatamaz.

cgi.fix_pathinfo bool

CGI için gerçek PATH_INFO/PATH_TRANSLATED desteği sağlar. PHP'nin önceki davranışı SCRIPT_FILENAME'e PATH_TRANSLATED atamak ve PATH_INFO'yu kaale almamaktı. PATH_INFO hakkında daha ayrıntılı bilgi edinmek için CGI belirtimine bakınız. Bu yönergeye 1 atamakla PHP CGI'nin CGICGI belirtimine uygun olarak dosya arama yollarını düzeltmesi sağlanmış olur. Sıfır atandığında ise PHP'nin önceki davranışı etkin olur. Öntanımlı değer sıfırdır. Betiklerinizi PATH_TRANSLATED değil SCRIPT_FILENAME kullanması için düzeltmelisiniz.

cgi.force_redirect bool

PHP'nin çoğu HTTP sunucusunda bir CGI olarak çalışmasının güvenli olmasını sağlamak için bu yönerge gereklidir. Tanımsız bırakılmışsa PHP öntanımlı olarak yönergeyi etkin kılar. Bu yönergeyi etkisiz bırakmakla kendinizi riske atmış olursunuz.

Bilginize:

Windows Kullanıcılarına: IIS kullanıyorsanız buna rahatça sıfır atayabilirsiniz ve hatta bunu yapmalısınız. Bu, OmniHTTPD veya Xitami'nin çalışması için de yapılmalıdır.

cgi.nph bool

Etkinse, cgi'nin her isteğe mutlaka Status: 200 göndermesini sağlar.

cgi.redirect_status_env string

cgi.force_redirect yönergesine 1 atanmışsa ve Apache veya Netscape (iPlanet) HTTP sunucularını kullanmıyorsanız, PHP'nin çalışmaya devam edebileceği bilgisini almak için bakacağı bir ortam değişkeni ismini bu yönergeye atamanız gerekebilir.

Bilginize:

Ne yaptığınız konusunda bir fikriniz yoksa bu yönergeye bir isim atamak güvenlikle ilgili sorunlara yol açabilir.

cgi.rfc2616_headers int

HTTP yanıt kodu gönderilirken hangi başlık türlerinin kullanılacağını belirler. 0 atanırsa PHP, Apache ve diğer HTTP sunucuları tarafından desteklenen bir » RFC 3875 Status: başlığı gönderir. 1 atanırsa PHP, » RFC 2616 uyumlu başlıklar gönderir.

Bu seçenek etkinse ve PHP'yi bir CGI ortamında kullanıyorsanız (PHP-FPM gibi), standard RFC 2616 tarzı HTTP durum yanıt başlıklarını değil, onların RFC 3875 eşdeğerlerini kullanmalısınız. Örneğin header("HTTP/1.0 404 Not found"); değil, header("Status: 404 Not Found"); kullanmalısınız.

Ne yapıldığı hakkında bir fikriniz yoksa bu yönergeyi 0 değeriyle bırakın.

fastcgi.impersonate string

IIS (WINNT temelli sistemlerde) altında FastCGI, çağrı yapan istemcinin güvenlik dizgeciklerinin taklit edilmesi yeteneğini destekler. Bu, IIS'ye isteğin altında çalıştığı güvenlik bağlamını tanımlama izni verir. Apache'nin mod_fastcgi modülü bu özelliği desteklemez (17-03-2002). IIS altında çalışılıyorsa yönergeye 1 atayın. Öntanımlı değer sıfırdır.

fastcgi.logging bool

Turns on SAPI logging when using FastCGI kullanırken SAPI oturum açma etkin olur ve bu öntanımlı durumdur.

Karşıya Dosya Yükleme

Karşıya Dosya Yükleme Yapılandırma seçenekleri
İsim | Öntanımlı | Değişlik Yeri | Sürüm Bilgisi
file_uploads | "1" | INI_SYSTEM |
upload_tmp_dir | NULL | INI_SYSTEM |
max_input_nesting_level | 64 | INI_PERDIR |
max_input_vars | 1000 | INI_PERDIR |
upload_max_filesize | "2M" | INI_PERDIR |
max_file_uploads | 20 | INI_PERDIR |

Yapılandırma yönergelerinin kısa açıklamalarını aşağıda bulabilirsiniz.

file_uploads bool

HTTP üzerinden karşıya dosya yüklemeye izin verilip verilmeyeceğini belirler. Ayrıca, upload_max_filesize, upload_tmp_dir ve post_max_size yönergelerine de bakınız.

upload_tmp_dir string

Karşıya dosya yüklenirken dosyaların geçici olarak saklanacağı dizin. Dizinin, PHP'yi çalıştıran kullanıcı tarafından yazılabilir olması gerekir. Bir dizin belirtilmezse PHP sistem öntanımlısını kullanır.

upload_max_filesize int

Karşıya yüklenecek dosyalar için azami boyut.

post_max_size bu değerden büyük olmalıdır.

int türünde bir değer kullanıldığında değer baytların sayısıdır. Büyük bayt değerleri için kullanılabilecek birimlerin gösterimleri hakkında bilgiyi bu SSS altında bulabilirsiniz.
max_file_uploads int

Aynı anda karşıya yüklenebilecek azami dosya sayısı. Gönderim sırasında boş bırakılan yükleme alanları bu sınıra dahil değildir.

Genel SQL

Genel SQL Yapılandırma Seçenekleri
İsim | Öntanımlı | Değişlik Yeri | Sürüm Bilgisi
sql.safe_mode | "0" | INI_SYSTEM | PHP 7.2.0'da kaldırıldı.

Yapılandırma yönergelerinin kısa açıklamalarını aşağıda bulabilirsiniz.

sql.safe_mode bool

On değeri atandığında, öntanımlı değerler belirtilmiş veritabanı bağlantı işlevleri kullanıcı tarafından sağlanan bağımsız değişkenlerin yerine bu değerleri kullanacaktır. Öntanımlı değerlerin neler olduğunu görmek için ilgili veritabanının bağlantı işlevleri belgelerine bakınız.

Windows'a Özel

Windows'a Özel Yapılandırma Seçenekleri
İsim | Öntanımlı | Değişlik Yeri | Sürüm Bilgisi
windows.show_crt_warning | "0" | INI_ALL |

Yapılandırma yönergelerinin kısa açıklamalarını aşağıda bulabilirsiniz.

windows.show_crt_warning bool

Etkin olduğunda Windows CRT uyarılarını gösterir.

Uyarı

Bu özellik PHP 7.2.0'da KALDIRILDI.

User Contributed Notes

gcb@ 09-Jun-2024 06:19
you get a misleading error if a directory doesn't exist or the user lacks permission to access it.

open_basedir restriction in effect. File(/tmp/php_session) is not within the allowed path(s): /tmp/php_session
andre dot wetter at myelco dot ch 23-Mar-2021 09:55
If you use Microsoft IIS Windows and want to use open_basedir restrictions with multiple dirs you have to set them into single quotes in the main config xml file of IIS (C:\Windows\System32\inetsrv\config\applicationHost.config). Works fine in IIS 10.

Multiple files with single quotes and ; for windows:
"C:\php\php-cgi.exe|-d open_basedir='C:\Windows\Temp\;D:\mywebsite1\'"

Only one dir works fine without single quotes:
"C:\php\php-cgi.exe|-d open_basedir=D:\mywebsite1\"

In my main config xml file of IIS there are 2 nodes to set per website and the definitions have to be equal:
configuration\Location\system.webServer\handlers\add
configuration\system.webServer\fastCgi
Simone Pellegatta 19-Jan-2021 12:08
Be careful while using auto_prepend_file.

When the custom exception handler, set by set_exception_handler(), handles an uncaught exception, it interrupts the execution of every script.

If the script with the unhandled exception has been automatically prepended or included by an automatically prepended script, however, the main script will continue running anyway.

This could cause several issues: when we think that throwing an exception would automatically interrupt the current application, a whole chunk of code is going to run anyway.
Anton Bannikov 22-Apr-2020 02:40
I had a problem with 'open_basedir =' string in php.ini. This string was writtren in VirtualHost Directory directive of Apache2 and successfully rewrote the same php.ini setting! It happened with VestaCP, but I think, it's a common way. Goog luck!
luisdev 03-Mar-2020 02:59
https://haydenjames.io/understanding-php-memory_limit/ explains the memory_limit setting nicely.
diamondeagle at webmail dot co dot za 15-Aug-2019 11:14
Note regarding the upload_tmp_dir setting and UNC Paths:

When using PHP on Windows OS and IIS FastCGI, if you need to use a UNC path to a folder on a network drive for the upload_tmp_dir setting then you must use three \ characters at the front of the UNC path.

Windows and PHP use the first slash as an escape character, so if you only use two slashes then it passes a UNC path with just one backslash. That is not valid for UNC paths and you many experience problems when uploading files, such as errors saying that "PHP is missing a temporary folder".

Correct:
upload_tmp_dir = "\\\path\to\your\folder"

Incorrect:
upload_tmp_dir = "\\path\to\your\folder"
fernandobasso dot br at gmail dot com 17-Oct-2016 08:06
This might help in case someone happens to maintain old applications with a charset other than utf-8.

According to the docs, you can override the default charset if you use `header()`.

Suppose php.ini sets the default_charset to "UTF-8", but you need a legacy charset, like ISO-8859-1.

Still,

<?php header('Content-Type: text/html; Charset=ISO-8859-1'); ?>

would not override the charset, just add it as well and the result
was a response header like (note the two charsets):

    Content-Type:"text/html; Charset=ISO-8859-1;CHARSET=Windows-1254"

I found it strange the default one as `charset` with a lowercase `c`
as opposed to my custom charset with an uppercase `C`.

What solved was to _override_ the charset using all lowercase letters
as well for the word "charset":

<?php header('content-type: text/html; charset=ISO-8859-1'); ?>

Then, the double charset from the response headers disappeared, and only the single, custom charset remained.
dougal at gunters dot org 03-Mar-2016 05:11
It appears that if you use both the 'include_path' directives and 'open_basedir', that file searches will hit the include path *first*, before local files. But if 'open_basedir' is not in use, then local files are found first. For example, suppose you have code in '/var/www/myfile.php' which does:

<?php
  require_once('config.php');
?>

Further, assume that there is a local file '/var/www/config.php', and there is also a file '/var/local/php/config.php'.

Next, if your php.ini has:

  include_path = /var/local/php/

Normally, this would look for '/var/www/config.php' first, and if not found, then it would try '/var/local/php/config.php'.

But if you also have this in php.ini:

  open_basedir = /var/www/:/var/local/php/

Then the require would reverse the order of the search, and load '/var/local/php/config.php', even when the local 'config.php' file exists.

Furthermore, if include_path contains directories not in open_basedir, you can end up with a fatal error. For example, change the directive to:

  open_basedir = /var/www/:/var/local/includes/php/

Now the require will first find '/var/local/php/config.php' from the include_path, try to include it, but be unable to because of the open_basedir restrictions.
leo at korfu dot cz 29-May-2006 03:45
"If the size of post data is greater than post_max_size..."

It seems that a more elegant way is comparison between post_max_size and $_SERVER['CONTENT_LENGTH']. Please note that the latter includes not only size of uploaded file plus post data but also multipart sequences. Leo


Eklenti Grupları/Listesi

İçindekiler

  • Abecesel
  • Üyeler
  • Durumu Belirsizler

Bu bölümde PHP kılavuzunda çeşitli kurallara göre gruplanmış 150'den fazla eklenti listelenmiştir.

User Contributed Notes

There are no user contributed notes for this page.


Abecesel

  • Apache
  • APCu
  • Array
  • BC
  • Bzip2
  • Calendar
  • Classobj
  • CommonMark
  • COM
  • Componere
  • Ctype
  • CUBRID
  • cURL
  • Date/Time
  • DBA
  • dBase
  • Dio
  • Dir
  • DOM
  • Data Structures
  • Eio
  • Enchant
  • Errorfunc
  • Ev
  • Event
  • Exec
  • Exif
  • Expect
  • FANN
  • FDF
  • FFI
  • Fileinfo
  • Filesystem
  • Filter
  • FastCGI Process Manager
  • FTP
  • Funchand
  • Gearman
  • Gender
  • GeoIP
  • Gettext
  • Gmagick
  • GMP
  • GnuPG
  • Hash
  • HRTime
  • Firebird/InterBase
  • IBM DB2
  • iconv
  • Igbinary
  • GD
  • ImageMagick
  • IMAP
  • Info
  • Inotify
  • Intl
  • JSON
  • LDAP
  • libxml
  • Lua
  • LuaSandbox
  • LZF
  • Mail
  • Mailparse
  • Math
  • Mbstring
  • Mcrypt
  • Memcache
  • Memcached
  • Mhash
  • Misc
  • mqseries
  • MySQL (Özgün)
  • Mysql_xdevapi
  • MySQLi
  • Mysqlnd
  • Network
  • OAuth
  • OCI8
  • OPcache
  • OpenAL
  • OpenSSL
  • Outcontrol
  • parallel
  • Parle
  • Password
  • PCNTL
  • PCRE
  • PDO
  • CUBRID (PDO)
  • MS SQL Sunucusu (PDO)
  • Firebird (PDO)
  • IBM (PDO)
  • Informix (PDO)
  • MySQL (PDO)
  • Oracle (PDO)
  • ODBC ve DB2 (PDO)
  • PostgreSQL (PDO)
  • SQLite (PDO)
  • MS SQL Server (PDO)
  • PostgreSQL
  • Phar
  • phpdbg
  • POSIX
  • PS
  • Pspell
  • pthreads
  • Quickhash
  • Radius
  • Random
  • Rar
  • Readline
  • Recode
  • Reflection
  • Rnp
  • RpmInfo
  • RRD
  • runkit7
  • ScoutAPM
  • Seaslog
  • Semaphore
  • Sessions
  • Shared Memory
  • Simdjson
  • SimpleXML
  • SNMP
  • SOAP
  • Sockets
  • Sodium
  • Solr
  • SPL
  • SQLite3
  • SQLSRV
  • ssdeep
  • SSH2
  • Statistics
  • Stomp
  • Stream
  • Strings
  • SVM
  • SVN
  • Swoole
  • Sync
  • Taint
  • TCP
  • Tidy
  • Tokenizer
  • Trader
  • UI
  • ODBC
  • uopz
  • URL'ler
  • V8js
  • Var
  • var_representation
  • Varnish
  • WDDX
  • win32service
  • WinCache
  • wkhtmltox
  • xattr
  • xdiff
  • Xhprof
  • XLSWriter
  • XML Çözümleyici
  • XMLDiff
  • XMLReader
  • XML-RPC
  • XMLWriter
  • XSL
  • Yac
  • Yaconf
  • Yaf
  • Yaml
  • Yar
  • YAZ
  • Zip
  • Zlib
  • 0MQ messaging
  • ZooKeeper

User Contributed Notes

There are no user contributed notes for this page.


Üyeler

Çekirdek Eklentiler

Bunlar aslında eklenti değildir. PHP çekirdeğinin parçaları olup derleme seçenekleriyle PHP çalıştırılabilirinin dışına çıkarılamazlar.

  • Array

  • Classobj

  • Date/Time

  • Dir

  • Errorfunc

  • Exec

  • Filesystem

  • FastCGI Process Manager

  • Funchand

  • Hash

  • Info

  • JSON

  • Mail

  • Math

  • Misc

  • Network

  • OPcache

  • Outcontrol

  • Password

  • PCRE

  • Random

  • Reflection

  • SPL

  • Stream

  • Strings

  • URL'ler

  • Var

Dahili Eklentiler

Bunlar PHP kaynak paketinin içinde dağıtılan eklentilerdir.

  • Apache

  • BC

  • Calendar

  • COM

  • Ctype

  • DBA

  • Exif

  • FFI

  • Fileinfo

  • Filter

  • FTP

  • iconv

  • GD

  • Intl

  • Mbstring

  • Mhash

  • PCNTL

  • PDO

  • Phar

  • phpdbg

  • POSIX

  • Semaphore

  • Sessions

  • Shared Memory

  • Sockets

  • SQLite3

  • Tokenizer

  • Zlib

Harici Eklentiler

Bu eklentiler PHP ile birlikte dağıtılırsa da derlenmesi sırasında harici kütüphanelere ihtiyaç duyulur.

  • Bzip2

  • cURL

  • DOM

  • Enchant

  • Gettext

  • GMP

  • IMAP

  • LDAP

  • libxml

  • MySQLi

  • Mysqlnd

  • OCI8

  • OpenSSL

  • MS SQL Sunucusu (PDO)

  • Firebird (PDO)

  • MySQL (PDO)

  • Oracle (PDO)

  • ODBC ve DB2 (PDO)

  • PostgreSQL (PDO)

  • SQLite (PDO)

  • PostgreSQL

  • Pspell

  • Readline

  • SimpleXML

  • SNMP

  • SOAP

  • Sodium

  • Tidy

  • ODBC

  • XML Çözümleyici

  • XMLReader

  • XMLWriter

  • XSL

  • Zip

PECL Eklentileri

Bunlar » PECL deposundan temin edilebilen eklentilerdir. Derleme sırasında harici kütüphanelere ihtiyaç duyulur. Çok sayıda PECL eklentisi mevcut olmasına rağmen PHP Kılavuzunda tamamı hala belgelenememiştir.

  • APCu

  • CommonMark

  • Componere

  • CUBRID

  • dBase

  • Dio

  • Data Structures

  • Eio

  • Ev

  • Event

  • Expect

  • FANN

  • FDF

  • Gearman

  • Gender

  • GeoIP

  • Gmagick

  • GnuPG

  • HRTime

  • Firebird/InterBase

  • IBM DB2

  • Igbinary

  • ImageMagick

  • Inotify

  • Lua

  • LuaSandbox

  • LZF

  • Mailparse

  • Mcrypt

  • Memcache

  • Memcached

  • mqseries

  • MySQL (Özgün)

  • Mysql_xdevapi

  • OAuth

  • OpenAL

  • parallel

  • Parle

  • CUBRID (PDO)

  • IBM (PDO)

  • Informix (PDO)

  • MS SQL Server (PDO)

  • PS

  • pthreads

  • Quickhash

  • Radius

  • Rar

  • Recode

  • Rnp

  • RpmInfo

  • RRD

  • runkit7

  • ScoutAPM

  • Seaslog

  • Simdjson

  • Solr

  • SQLSRV

  • ssdeep

  • SSH2

  • Statistics

  • Stomp

  • SVM

  • SVN

  • Swoole

  • Sync

  • Taint

  • TCP

  • Trader

  • UI

  • uopz

  • V8js

  • var_representation

  • Varnish

  • WDDX

  • win32service

  • WinCache

  • wkhtmltox

  • xattr

  • xdiff

  • Xhprof

  • XLSWriter

  • XMLDiff

  • XML-RPC

  • Yac

  • Yaconf

  • Yaf

  • Yaml

  • Yar

  • YAZ

  • 0MQ messaging

  • ZooKeeper

User Contributed Notes

There are no user contributed notes for this page.


Durumu Belirsizler

Burada üretim amaçlı kullanılmayan eklentiler listelenmiştir; bunlar ya çok "eski" (önerilmez) ya da "yeni" (deneysel) eklentilerdir.

Kullanımı Önerilmeyen Eklentiler

Bunlar, daha kullanışlı başka eklentilerin varlığı nedeniyle artık kullanımı önerilmeyen eklentilerdir.

  • MySQL (Özgün)

  • WDDX

  • XML-RPC

Deneysel Eklentiler

Bu eklentilerin davranışları PHP'nin sonraki sürümlerinde bilgi verilmeksizin değiştirilebilir; buna işlevlerin isimleri ve eklentiyle ilgili her türlü belge dahildir. Bu eklentileri kullanıp kullanmama kararı size kalmıştır.

  • ImageMagick

User Contributed Notes

There are no user contributed notes for this page.


İşlev Takma Adlarının Listesi

PHP'de birden fazla isimle çağırabileceğiniz pek az işlev vardır. Bazı durumlarda çok sayıda ismin arasından birinin özellikle tercih edilmediği bazı durumlar vardır; is_int() ve is_integer() işlevleri aynı oranda tercih edilmeleriyle bunlara iyi birer örnektir. Bununla birlikte, API değişmesi veya başka bir sebeple isimleri değişen işlevler vardır. Bunların eski isimleri birer takma ad olarak geriye uyumluluk için tutulmaktadır. Bu çeşit takma adları kullanmamanız gerekir, çünkü bunlar bir zaman gelir desteklenmekten vaz geçilebilir veya isimleri değiştirilebilir ve dolayısıyla betiğiniz taşınabilirlik özelliğini kaybedebilir. Bu liste eski betiklerini yeni sözdizimine güncellemek isteyenlere yardımcı olmak amacıyla oluşturulmuştur.

Takma Adlar
Takma Ad | Asıl İşlev | Bulunduğu Eklenti
_ | gettext() | Gettext
chop | rtrim() | Temel sözdizimi
close | closedir() | Temel sözdizimi
com_get | com_propget() | COM
com_propset | com_propput() | COM
com_set | com_propput() | COM
die | exit() | Çeşitli İşlevler
diskfreespace | disk_free_space() | Dosya Sistemi
doubleval | floatval() | Temel sözdizimi
fputs | fwrite() | Temel sözdizimi
gzputs | gzwrite() | Zlib
i18n_convert | mb_convert_encoding() | Çok baytlı dizgeler
i18n_discover_encoding | mb_detect_encoding() | Çok baytlı dizgeler
i18n_http_input | mb_http_input() | Çok baytlı dizgeler
i18n_http_output | mb_http_output() | Çok baytlı dizgeler
i18n_internal_encoding | mb_internal_encoding() | Çok baytlı dizgeler
i18n_ja_jp_hantozen | mb_convert_kana() | Çok baytlı dizgeler
i18n_mime_header_decode | mb_decode_mimeheader() | Çok baytlı dizgeler
i18n_mime_header_encode | mb_encode_mimeheader() | Çok baytlı dizgeler
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() | Temel sözdizimi
is_double | is_float() | Temel sözdizimi
is_integer | is_int() | Temel sözdizimi
is_long | is_int() | Temel sözdizimi
is_real | is_float() | Temel sözdizimi
is_writeable | is_writable() | Temel sözdizimi
join | implode() | Temel sözdizimi
key_exists | array_key_exists() | Temel sözdizimi
mbstrcut | mb_strcut() | Çok baytlı dizgeler
mbstrlen | mb_strlen() | Çok baytlı dizgeler
mbstrpos | mb_strpos() | Çok baytlı dizgeler
mbstrrpos | mb_strrpos() | Çok baytlı dizgeler
mbsubstr | mb_substr() | Çok baytlı dizgeler
mysql | mysql_db_query() | MySQL
mysql_createdb | mysql_create_db() | MySQL
mysql_db_name | mysql_result() | MySQL
mysql_dbname | mysql_result() | MySQL
mysql_dropdb | mysql_drop_db() | MySQL
mysql_fieldflags | mysql_field_flags() | MySQL
mysql_fieldlen | mysql_field_len() | MySQL
mysql_fieldname | mysql_field_name() | MySQL
mysql_fieldtable | mysql_field_table() | MySQL
mysql_fieldtype | mysql_field_type() | MySQL
mysql_freeresult | mysql_free_result() | MySQL
mysql_listdbs | mysql_list_dbs() | MySQL
mysql_listfields | mysql_list_fields() | MySQL
mysql_listtables | mysql_list_tables() | MySQL
mysql_numfields | mysql_num_fields() | MySQL
mysql_numrows | mysql_num_rows() | MySQL
mysql_selectdb | mysql_select_db() | MySQL
mysql_tablename | mysql_result() | MySQL
ociassignelem | OCICollection::assignElem | OCI8
ocibindbyname | oci_bind_by_name() | OCI8
ocicancel | oci_cancel() | OCI8
ocicloselob | OCILob::close | OCI8
ocicollappend | OCICollection::append | OCI8
ocicollassign | OCICollection::assign | OCI8
ocicollmax | OCICollection::max | OCI8
ocicollsize | OCICollection::size | OCI8
ocicolltrim | OCICollection::trim | OCI8
ocicolumnisnull | oci_field_is_null() | OCI8
ocicolumnname | oci_field_name() | OCI8
ocicolumnprecision | oci_field_precision() | OCI8
ocicolumnscale | oci_field_scale() | OCI8
ocicolumnsize | oci_field_size() | OCI8
ocicolumntype | oci_field_type() | OCI8
ocicolumntyperaw | oci_field_type_raw() | OCI8
ocicommit | oci_commit() | OCI8
ocidefinebyname | oci_define_by_name() | OCI8
ocierror | oci_error() | OCI8
ociexecute | oci_execute() | OCI8
ocifetch | oci_fetch() | OCI8
ocifetchinto | oci_fetch_array(), oci_fetch_row(), oci_fetch_assoc(), oci_fetch_object() | OCI8
ocifetchstatement | oci_fetch_all() | OCI8
ocifreecollection | OCICollection::free | OCI8
ocifreecursor | oci_free_statement() | OCI8
ocifreedesc | oci_free_descriptor() | OCI8
ocifreestatement | oci_free_statement() | OCI8
ocigetelem | OCICollection::getElem | OCI8
ociinternaldebug | oci_internal_debug() | OCI8
ociloadlob | OCILob::load | OCI8
ocilogon | oci_connect() | OCI8
ocinewcollection | oci_new_collection() | OCI8
ocinewcursor | oci_new_cursor() | OCI8
ocinewdescriptor | oci_new_descriptor() | OCI8
ocinlogon | oci_new_connect() | OCI8
ocinumcols | oci_num_fields() | OCI8
ociparse | oci_parse() | OCI8
ocipasswordchange | oci_password_change() | OCI8
ociplogon | oci_pconnect() | OCI8
ociresult | oci_result() | OCI8
ocirollback | oci_rollback() | OCI8
ocisavelob | OCILob::save | OCI8
ocisavelobfile | OCILob::import | OCI8
ociserverversion | oci_server_version() | OCI8
ocisetprefetch | oci_set_prefetch() | OCI8
ocistatementtype | oci_statement_type() | OCI8
ociwritelobtofile | OCILob::export | OCI8
ociwritetemporarylob | OCILob::writeTemporary | OCI8
odbc_do | odbc_exec() | ODBC
odbc_field_precision | odbc_field_len() | ODBC
pg_clientencoding | pg_client_encoding() | PostgreSQL
pg_setclientencoding | pg_set_client_encoding() | PostgreSQL
pos | current() | Temel sözdizimi
recode | recode_string() | Recode
show_source | highlight_file() | Temel sözdizimi
sizeof | count() | Temel sözdizimi
strchr | strstr() | Temel sözdizimi
xptr_new_context | xpath_new_context() |

User Contributed Notes

There are no user contributed notes for this page.


Yerleşik Sözcüklerin Listesi

İçindekiler

  • Anahtar Sözcüklerin Listesi
  • Öntanımlı Sınıflar
  • Yerleşik Sabitler
  • Diğer yerleşik sözcüklerin listesi

Bu bölümde PHP'de öntanımlı betimleyiciler listelenmiştir. Burada listelenmiş betimleyicilerin hiçbirini aksi açıkça belirtilmedikçe betiklerinizde betimleyici olarak kullanmamalısınız. Bu listeler, anahtar sözcükler, önceden tanımlanmış değişkenler, sabitler ve sınıf isimlerini içerir. Bu listelerde ayrıntılara yer verilmediği gibi listeler tamamlanmış da değildir.

User Contributed Notes

There are no user contributed notes for this page.


Anahtar Sözcüklerin Listesi

PHP'de bazı sözcükler özel anlama sahiptirler. Bazıları işlev gibi görünen şeyleri temsil eder, bazıları sabit gibi görünür, vb - ama aslında değiller: Bunlar aslında dil oluşumlarıdır. Aşağıdaki sözcükler sabit, sınıf veya işlev ismi olarak kullanılamaz. Bununla birlikte, sınıfların, arabirimlerin ve niteliklerin özellik, sabit ve yöntemlerinin adları olarak kullanılabilmesine izin verilmiştir, bir şey hariç: class sabit ismi olarak kullanılamaz.

PHP Anahtar Sözcükler
__halt_compiler() | abstract | and | array() | as
break | callable | case | catch | class
clone | const | continue | declare | default
die() | do | echo | else | elseif
empty() | enddeclare | endfor | endforeach | endif
endswitch | endwhile | eval() | exit() | extends
final | finally | fn (PHP 7.4 itibariyle) | for | foreach
function | global | goto | if | implements
include | include_once | instanceof | insteadof | interface
isset() | list() | match (PHP 8.0'dan beri) | namespace | new
or | print | private | protected | public
readonly (PHP 8.1.0 ve sonrası) * | require | require_once | return | static
switch | throw | trait | try | unset()
use | var | while | xor | yield
yield from |  |  |  |

* readonly işlev ismi olarak kullanılabilir.

Derleme sabitleri
__CLASS__ | __DIR__ | __FILE__ | __FUNCTION__ | __LINE__ | __METHOD__
__NAMESPACE__ | __TRAIT__ |  |  |  |

User Contributed Notes

Chocopie 23-Mar-2024 06:27
From php8, reserved keywords such as `Interface` or `Trait` can be used as part of the namespace.

<?php
namespace App\Entity\Interface;

interface FooInterface
{

}

https://wiki.php.net/rfc/namespaced_names_as_token
Johnny D. 22-May-2020 06:37
const FORBIDDEN_TYPES = [
    'null',

    'bool',
    'false',
    'true',

    'int',
    'float',

    'string',
];
Thomas Hansen 15-Aug-2016 10:08
Please note that reserved words are still not allowed to be used as namespace or as part of it:

<?php
namespace MyNameSpace\List;

class Test
{
}
?>

This will fail with a Parse error:  syntax error, unexpected 'List' (T_LIST), expecting identifier (T_STRING)
martindilling at gmail dot com 15-Apr-2013 10:20
RegEx to find all the keywords:

\b(
(a(bstract|nd|rray|s))|
(c(a(llable|se|tch)|l(ass|one)|on(st|tinue)))|
(d(e(clare|fault)|ie|o))|
(e(cho|lse(if)?|mpty|nd(declare|for(each)?|if|switch|while)|val|x(it|tends)))|
(f(inal|or(each)?|unction))|
(g(lobal|oto))|
(i(f|mplements|n(clude(_once)?|st(anceof|eadof)|terface)|sset))|
(n(amespace|ew))|
(p(r(i(nt|vate)|otected)|ublic))|
(re(quire(_once)?|turn))|
(s(tatic|witch))|
(t(hrow|r(ait|y)))|
(u(nset|se))|
(__halt_compiler|break|list|(x)?or|var|while)
)\b
Chris 04-Oct-2012 04:33
Here they are as arrays:

<?php
$keywords = array('__halt_compiler', 'abstract', 'and', 'array', 'as', 'break', 'callable', 'case', 'catch', 'class', 'clone', 'const', 'continue', 'declare', 'default', 'die', 'do', 'echo', 'else', 'elseif', 'empty', 'enddeclare', 'endfor', 'endforeach', 'endif', 'endswitch', 'endwhile', 'eval', 'exit', 'extends', 'final', 'for', 'foreach', 'function', 'global', 'goto', 'if', 'implements', 'include', 'include_once', 'instanceof', 'insteadof', 'interface', 'isset', 'list', 'namespace', 'new', 'or', 'print', 'private', 'protected', 'public', 'require', 'require_once', 'return', 'static', 'switch', 'throw', 'trait', 'try', 'unset', 'use', 'var', 'while', 'xor');

$predefined_constants = array('__CLASS__', '__DIR__', '__FILE__', '__FUNCTION__', '__LINE__', '__METHOD__', '__NAMESPACE__', '__TRAIT__');
?>

Along with get_defined_functions() and get_defined_constants(), this can be useful for checking eval() statements.


Öntanımlı Sınıflar

Bu bölümde öntanımlı standart sınıflar listelenmiştir. Diğer sınıflar çeşitli eklentilerde tanımlanmış olup bunlar dil başvuru kılavuzunda açıklanmışlardır.

Standart Tanımlı Sınıflar

Bu sınıflar PHP'ye derleme sırasında dahil edilen standart işlevlerle tanımlanır.

Directory
dir() işlevi ile oluşturuldu.
stdClass
nesneye yapılan tür zorlamalarının sonucu olarak veya çeşitli standart işlevler tarafından soysal boş bir sınıf olarak ile oluşturulmuştur.
__PHP_Incomplete_Class
unserialize() işlevi ile oluşturulması muhtemeldir.
Exception
ErrorException
php_user_filter
Closure
Öntanımlı final sınıf Closure ile anonim işlevleri temsil edilir.
Generator
Öntanımlı final sınıf Generator ile üreteçleri temsil edilir.
ArithmeticError
AssertionError
DivisionByZeroError
Error
Throwable
ParseError
TypeError

Özel sınıflar

Aşağıdaki betimleyiciler özel amaçlı olup bır sınıf ismi olarak kullanılamazlar.

self
Etkin sınıf.
static
Çalışma zamanındaki etkin sınıf.
parent
Ebeveyn sınıf.

User Contributed Notes

xzero at elite7hackers dot net 08-Sep-2017 08:37
There comes improved version of amazing snippet posted by (spark at limao dot com dot br)  which allows dynamic methods generations and works as versatile extension of StdClass:

This one is faster, optimised for closures, and will work only with closures. Compatible: >= PHP 5.6
<?php

class Dynamic extends \stdClass
{
    public function __call($key, $params)
    {
        if ( ! isset($this->{$key})) {
            throw new Exception("Call to undefined method " . __CLASS__ . "::" . $key . "()");
        }

        return $this->{$key}->__invoke(... $params);
    }
}

?>

Usage examples:

<?php
$dynamic                = new Dynamic();
$dynamic->anotherMethod = function () {
    echo "Hey there";
};
$dynamic->randomInt     = function ($min, $max) {
    return mt_rand($min, $max); // random_int($min, $max); // <-- PHP7+
};

var_dump(
    $dynamic->randomInt(1, 11),
    $dynamic->anotherMethod()
);
?>

This will accept arrays, strings and Closures but is a bit slower due to call_user_func_array
<?php

class Dynamic extends \stdClass
{
    public function __call($key, $params)
    {
        if ( ! isset($this->{$key})) {
            throw new Exception("Call to undefined method " . __CLASS__ . "::" . $key . "()");
        }

        return call_user_func_array($this->{$key}, $params);
    }
}

?>

Usage examples:
<?php
$dynamic                = new Dynamic();
$dynamic->myMethod      = "thatFunction";
$dynamic->hisMethod     = array($dynamic, "randomInt");
$dynamic->newMethod     = array(SomeClass, "staticMethod");
$dynamic->anotherMethod = function () {
    echo "Hey there";
};
$dynamic->randomInt     = function ($min, $max) {
    return mt_rand($min, $max); // random_int($min, $max); // <-- PHP7+
};

var_dump(
    $dynamic->randomInt(1, 11),
    $dynamic->anotherMethod(),
    $dynamic->hisMethod()
);

?>
xzero at elite7hackers dot net 08-Sep-2017 08:32
There comes improved version of amazing snippet posted by which allows dynamic methods generations and works as versatile extension of StdClass:

This one is faster, optimised for closures, and will work only with closures. Compatible: >= PHP 5.6
<?php

class Dynamic extends \stdClass
{
    public function __call($key, $params)
    {
        if ( ! isset($this->{$key})) {
            throw new Exception("Call to undefined method " . __CLASS__ . "::" . $key . "()");
        }

        return $this->{$key}->__invoke(... $params);
    }
}

?>

Usage examples:

<?php
$dynamic                = new Dynamic();
$dynamic->anotherMethod = function () {
    echo "Hey there";
};
$dynamic->randomInt     = function ($min, $max) {
    return mt_rand($min, $max); // random_int($min, $max); // <-- PHP7+
};

var_dump(
    $dynamic->randomInt(1, 11),
    $dynamic->anotherMethod()
);
?>

This will accept arrays, strings and Closures but is a bit slower due to call_user_func_array
<?php

class Dynamic extends \stdClass
{
    public function __call($key, $params)
    {
        if ( ! isset($this->{$key})) {
            throw new Exception("Call to undefined method " . __CLASS__ . "::" . $key . "()");
        }

        return call_user_func_array($this->{$key}, $params);
    }
}

?>

Usage examples:
<?php
$dynamic                = new Dynamic();
$dynamic->myMethod      = "thatFunction";
$dynamic->hisMethod     = array($dynamic, "randomInt");
$dynamic->newMethod     = array(SomeClass, "staticMethod");
$dynamic->anotherMethod = function () {
    echo "Hey there";
};
$dynamic->randomInt     = function ($min, $max) {
    return mt_rand($min, $max); // random_int($min, $max); // <-- PHP7+
};

var_dump(
    $dynamic->randomInt(1, 11),
    $dynamic->anotherMethod(),
    $dynamic->hisMethod()
);

?>
Ashley Dambra 19-Feb-2014 06:43
Here a simple class that allow to set anonymous function. It's an optimised class of stdClass.

<?php
class stdObject {
    public function __construct(array $arguments = array()) {
        if (!empty($arguments)) {
            foreach ($arguments as $property => $argument) {
                if ($argument instanceOf Closure) {
                    $this->{$property} = $argument;
                } else {
                    $this->{$property} = $argument;
                }
            }
        }
    }

    public function __call($method, $arguments) {
        if (isset($this->{$method}) && is_callable($this->{$method})) {
            return call_user_func_array($this->{$method}, $arguments);
        } else {
            throw new Exception("Fatal error: Call to undefined method stdObject::{$method}()");
        }
    }
}

$person = new stdObject(array(
    "name" => "nick",
    "age" => 23,
    "friends" => array("frank", "sally", "aaron"),
    "sayHi" => function() {
        return "Hello there";
    }
));

$person->sayHi2 = function() {
    return "Hello there 2";
};

$person->test = function() {
    return "test";
};

var_dump($person->name, $person->test(), $person->sayHi2());
?>
wyattstorch42 at outlook dot com 24-Dec-2013 01:15
If you call var_export() on an instance of stdClass, it attempts to export it using ::__set_state(), which, for some reason, is not implemented in stdClass.

However, casting an associative array to an object usually produces the same effect (at least, it does in my case). So I wrote an improved_var_export() function to convert instances of stdClass to (object) array () calls. If you choose to export objects of any other class, I'd advise you to implement ::__set_state().

<?php
/**
 * An implementation of var_export() that is compatible with instances
 * of stdClass.
 * @param mixed $variable The variable you want to export
 * @param bool $return If used and set to true, improved_var_export()
 *     will return the variable representation instead of outputting it.
 * @return mixed|null Returns the variable representation when the
 *     return parameter is used and evaluates to TRUE. Otherwise, this
 *     function will return NULL.
 */
function improved_var_export ($variable, $return = false) {
    if ($variable instanceof stdClass) {
        $result = '(object) '.improved_var_export(get_object_vars($variable), true);
    } else if (is_array($variable)) {
        $array = array ();
        foreach ($variable as $key => $value) {
            $array[] = var_export($key, true).' => '.improved_var_export($value, true);
        }
        $result = 'array ('.implode(', ', $array).')';
    } else {
        $result = var_export($variable, true);
    }

    if (!$return) {
        print $result;
        return null;
    } else {
        return $result;
    }
}

// Example usage:
$obj = new stdClass;
$obj->test = 'abc';
$obj->other = 6.2;
$obj->arr = array (1, 2, 3);

improved_var_export((object) array (
    'prop1' => true,
    'prop2' => $obj,
    'assocArray' => array (
        'apple' => 'good',
        'orange' => 'great'
    )
));

/* Output:
(object) array ('prop1' => true, 'prop2' => (object) array ('test' => 'abc', 'other' => 6.2, 'arr' => array (0 => 1, 1 => 2, 2 => 3)), 'assocArray' => array ('apple' => 'good', 'orange' => 'great'))
*/
?>

Note: This function spits out a single line of code, which is useful to save in a cache file to include/eval. It isn't formatted for readability. If you want to print a readable version for debugging purposes, then I would suggest print_r() or var_dump().
spark at limao dot com dot br 15-Aug-2011 02:21
if you want a Dynamic class you can extend from, add atributes AND methods on the fly you can use this:
<?php
    class Dynamic extends stdClass{
        public function __call($key,$params){
            if(!isset($this->{$key})) throw new Exception("Call to undefined method ".get_class($this)."::".$key."()");
            $subject = $this->{$key};
            call_user_func_array($subject,$params);
        }
    }
?>

this will accept both arrays, strings and Closures:
<?php
    $dynamic->myMethod = "thatFunction";
    $dynamic->hisMethod = array($instance,"aMethod");
    $dynamic->newMethod = array(SomeClass,"staticMethod");
    $dynamic->anotherMethod = function(){
        echo "Hey there";
    };
?>

then call them away =D
Typer85 at gmail dot com 17-Feb-2007 08:58
In response to the note below mine,

This list is not incomplete. Read the Manual folks, its listed there plain and simple:

"This section lists standard predefined classes. Miscellaneous extensions define other classes which are described in their reference."

Depending on what extensions you have, they might define their own classes. This list is just the standard classes as defined by PHP with no regards to extensions.
unknown 23-Jul-2002 10:29
It's handy to have a array of the reserved classes.....
var_dump (get_declared_classes ());


Yerleşik Sabitler

Çekirdekte Öntanımlı Sabitler

Bu sabitler PHP çekirdeğinde tanımlanmıştır. PHP çekirdeği, PHP'nin kendisi, Zend motoru ve SAPI modüllerinden oluşur.

PHP_VERSION (string)
Şu anki PHP sürüm numarası "ana.alt.dağıtım[ek]" gösterimine sahiptir.
PHP_MAJOR_VERSION (integer)
Şu anki ana sürüm bir numara ile gösterilmektedir (örneğin, "5.2.7-extra" için ana sürüm int(5)'tir).
PHP_MINOR_VERSION (integer)
Şu anki alt sürüm bir numara ile gösterilmektedir (örneğin, "5.2.7-extra" için alt sürüm int(2)'dir).
PHP_RELEASE_VERSION (integer)
Şu anki dağıtım sürümü bir numara ile gösterilmektedir (örneğin, "5.2.7-extra" için dağıtım sürüm int(7)'dir).
PHP_VERSION_ID (integer)
Bir tamsayı olarak geçerli PHP sürümü ( örneğin, "5.2.7-extra" için int(50207)'dir. ). Sürüm karşılaştırması için faydalıdır.
PHP_EXTRA_VERSION (string)
Bir dizge olarak geçerli PHP ek sürümü ( örneğin, "5.2.7-extra" için '-extra'dır. ). Çoğunlukla paket dağıtımlarında paket sürümünü belirtmek için kullanılır.
ZEND_THREAD_SAFE (bool)
Geçerli PHP derlemesinin evreler açısından güvenli olup olmadığını gösterir.
ZEND_DEBUG_BUILD (bool)
Geçerli PHP derlemesinin hata ayıklama derlemesi olup olmadığını gösterir.
PHP_ZTS (integer)
Geçerli PHP derlemesinin evreler açısından güvenli olup olmadığını gösterir.
PHP_DEBUG (integer)
Geçerli PHP derlemesinin hata ayıklama derlemesi olup olmadığını gösterir.
PHP_MAXPATHLEN (integer)
PHP derlenirken desteklenen en uzun dosya isminin (dosya yolu dahil) boyu.
PHP_OS (string)
PHP'nin kullanıldığı işletim sistemi.
PHP_OS_FAMILY (string)
PHP ailesinin kullanıldığı işletim sistemi. 'Windows', 'BSD', 'Darwin', 'Solaris', 'Linux' veya 'Unknown' olabilir. PHP 7.2.0 ve sonrasinda kullanılabilir.
PHP_SAPI (string)
PHP derlenirken kullanılan sunucu API'si. Ayrıca bakınız: php_sapi_name().
PHP_EOL (string)
Satır sonu ('End Of Line') sembolü.
PHP_INT_MAX (integer)
PHP derlenirken desteklenen en büyük tamsayı. Normalde int(2147483647).
PHP_INT_MIN (integer)
PHP derlenirken desteklenen en küçük tamsayı. Normalde 32 bitlik sistemlerde int(-2147483647), 64 bitlik sistemlerde int(-9223372036854775808)'dir (PHP_INT_MIN === ~PHP_INT_MAX). PHP 7.0.0'dan beri mevcuttur.
PHP_INT_SIZE (integer)
PHP derlenirken bir tamsayının bayt cinsinden uzunluğu.
PHP_FLOAT_DIG (integer)
Yuvarlama kaybı olmaksızın gerçek ve tam sayıya ileri-geri dönüştürülebilen ondalık hane sayısı. PHP 7.2.0'dan beri mevcuttur.
PHP_FLOAT_EPSILON (float)
Gösterilebilen en küçük pozitif sayı. Bu x ise: x + 1.0 != 1.0. PHP 7.2.0'dan beri mevcuttur.
PHP_FLOAT_MIN (float)
Gösterilebilen en küçük pozitif gerçek sayı. Gösterilebilen en küçük negatif gerçek sayıya ihtiyacınız varsa - PHP_FLOAT_MAX kullanın. PHP 7.2.0'dan beri mevcuttur.
PHP_FLOAT_MAX (float)
Gösterilebilen en büyük pozitif gerçek sayı. PHP 7.2.0'dan beri mevcuttur.
DEFAULT_INCLUDE_PATH (string)
PEAR_INSTALL_DIR (string)
PEAR_EXTENSION_DIR (string)
PHP_EXTENSION_DIR (string)
Yüklenebilir eklentilerin aranacağı öntanımlı dizin (extension_dir) ile geçersiz kılınmadığı takdirde). PHP_PREFIX (veya Windows üzerinde PHP_PREFIX . "\\ext") öntanımlıdır.
PHP_PREFIX (string)
Yapılandırma sırasında atanan --prefix değeri. Windows'ta bu değer yapılandırma sırasında --with-prefix ile atanır.
PHP_BINDIR (string)
Yapılandırma sırasında atanan --bindir değeri. Windows'ta bu değer yapılandırma sırasında --with-prefix ile atanır.
PHP_BINARY (string)
Betiklerin icrası için kullanılan çalıştılabilirin bulunduğu yer.
PHP_MANDIR (string)
Man sayfalarının nerede kurulu olduğu belirtilir.
PHP_LIBDIR (string)
PHP_DATADIR (string)
PHP_SYSCONFDIR (string)
PHP_LOCALSTATEDIR (string)
PHP_CONFIG_FILE_PATH (string)
PHP_CONFIG_FILE_SCAN_DIR (string)
PHP_SHLIB_SUFFIX (string)
Derleme platformunun paylaşımlı kütüphane soneki. Normalde Unix'ler için "so", Windows için "dll"dir.
PHP_FD_SETSIZE (int)
Sistem çağrıları dosyatanıtıcılarının azami sayısı. PHP 7.1.0'dan beri mevcuttur.
E_ERROR (integer)
Hata raporlama sabitleri
E_WARNING (integer)
Hata raporlama sabitleri
E_PARSE (integer)
Hata raporlama sabitleri
E_NOTICE (integer)
Hata raporlama sabitleri
E_CORE_ERROR (integer)
Hata raporlama sabitleri
E_CORE_WARNING (integer)
Hata raporlama sabitleri
E_COMPILE_ERROR (integer)
Hata raporlama sabitleri
E_COMPILE_WARNING (integer)
Hata raporlama sabitleri
E_USER_ERROR (integer)
Hata raporlama sabitleri
E_USER_WARNING (integer)
Hata raporlama sabitleri
E_USER_NOTICE (integer)
Hata raporlama sabitleri
E_RECOVERABLE_ERROR (integer)
Hata raporlama sabitleri
E_DEPRECATED (integer)
Hata raporlama sabitleri
E_USER_DEPRECATED (integer)
Hata raporlama sabitleri
E_ALL (integer)
Hata raporlama sabitleri
E_STRICT (integer)
Hata raporlama sabitleri
__COMPILER_HALT_OFFSET__ (integer)
true (boolean)
Ayrıca bakınız: Mantıksal veri türü.
false (boolean)
Ayrıca bakınız: Mantıksal veri türü.
null (null)
Ayrıca bakınız: NULL veri türü.
PHP_WINDOWS_EVENT_CTRL_C (int)
Windows CTRL+C olayı. PHP 7.4.0'dan itibaren kullanılabilir (sadece Windows).
PHP_WINDOWS_EVENT_CTRL_BREAK (int)
Windows CTRL+BREAK olayı. PHP 7.4.0'dan itibaren kullanılabilir (sadece Windows).

Ayrıca bakınız: Sihirli Sabitler.

Standart Öntanımlı Sabitler

Temel eklentilerdeki tüm sabitler PHP'de öntanımlı olarak tanımlıdır.

User Contributed Notes

rdcapasso 08-Sep-2013 09:16
Volker's getOS() function needs to have the order of cases changed in the switch statement since "darwin" contains "win", which means that both "windows" and "darwin" will return self::OS_WIN. I've moved the 'dar' case above the 'win' case:

<?php
class System {

    const OS_UNKNOWN = 1;
    const OS_WIN = 2;
    const OS_LINUX = 3;
    const OS_OSX = 4;

    /**
     * @return int
     */
    static public function getOS() {
        switch (true) {
            case stristr(PHP_OS, 'DAR'): return self::OS_OSX;
            case stristr(PHP_OS, 'WIN'): return self::OS_WIN;
            case stristr(PHP_OS, 'LINUX'): return self::OS_LINUX;
            default : return self::OS_UNKNOWN;
        }
    }

}
?>


Diğer yerleşik sözcüklerin listesi

Aşağıdaki sözcükler bir sınıfın, arayüzün veya niteliğin ismi olarak kullanılamaz. PHP 8.0 öncesinde, isim alanlarında kullanılmaları da yasaktı.

Yerleşik sözcükler
int | float | bool | string
true | false | null | void (PHP 7.1 itibariyle)
iterable (PHP 7.1 itibariyle) | object (PHP 7.2 itibariyle) | mixed (PHP 8.0 itibariyle) | never (PHP 8.1 itibariyle)

Aşağıdaki sözcükler sınıf, arayüz, ve nitelik isimleri olarak kullanılabilirlerse de, PHP'nin ileri sürümlerinde kullanılabilecekleri hesaba katılarak kullanılmamaya çalışılması daha uygun olacaktır.

Yerleşikliği olası sözcükler
enum resource numeric

User Contributed Notes

There are no user contributed notes for this page.


Özkaynak Türlerinin Listesi

Bu bölümde PHP özkaynaklarını oluşturmak, kullanmak ve yok etmekte kullanılan işlevler listelenmiştir. is_resource() işlevi bir değişkenin bir özkaynak olup olmadığını saptamakta kullanılır. get_resource_type() işlevi ise özkaynağın türünü döndürür.

Özkaynak Türleri
Özkaynak Türünün Adı | Oluşturmak için | Kullanmak için | Yok etmek için | Tanımı
AddressInfo | socket_addrinfo_lookup() | socket_addrinfo_bind(), socket_addrinfo_connect(), socket_addrinfo_explain(), | Yok | AddressInfo (soket eklentisi)
bzip2 | bzopen() | bzerrno(), bzerror(), bzerrstr(), bzflush(), bzread(), bzwrite() | bzclose() | Bzip2 dosyası
cubrid bağlantısı | cubrid_connect() cubrid_connect_with_url() | cubrid_col_get() cubrid_col_size() cubrid_commit() cubrid_drop() cubrid_execute() cubrid_get_autocommit() cubrid_get_charset() cubrid_get_class_name() cubrid_get_db_parameter() cubrid_get_server_info() cubrid_get() cubrid_insert_id() cubrid_is_instance() cubrid_lob_export() cubrid_lob_get() cubrid_lob_send() cubrid_lock_read() cubrid_lock_write() cubrid_prepare() cubrid_put() cubrid_rollback() cubrid_schema() cubrid_seq_drop() cubrid_seq_insert() cubrid_seq_put() cubrid_set_add() cubrid_set_autocommit() cubrid_set_db_parameter() cubrid_set_drop() cubrid_affected_rows() cubrid_client_encoding() cubrid_errno() cubrid_error() cubrid_list_dbs() cubrid_ping() cubrid_query() cubrid_real_escape_string() | cubrid_close() cubrid_disconnect() | CUBRID veritabanına bağlantı
kalıcı cubrid bağlantısı | cubrid_pconnect() cubrid_pconnect_with_url() | cubrid_col_get() cubrid_col_size() cubrid_commit() cubrid_drop() cubrid_execute() cubrid_get_autocommit() cubrid_get_charset() cubrid_get_class_name() cubrid_get_db_parameter() cubrid_get_server_info() cubrid_get() cubrid_insert_id() cubrid_is_instance() cubrid_lob_export() cubrid_lob_get() cubrid_lob_send() cubrid_lock_read() cubrid_lock_write() cubrid_prepare() cubrid_put() cubrid_rollback() cubrid_schema() cubrid_seq_drop() cubrid_seq_insert() cubrid_seq_put() cubrid_set_add() cubrid_set_autocommit() cubrid_set_db_parameter() cubrid_set_drop() cubrid_affected_rows() cubrid_client_encoding() cubrid_errno() cubrid_error() cubrid_list_dbs() cubrid_ping() cubrid_query() cubrid_real_escape_string() cubrid_lob2_new() | CUBRID veritabanına kalıcı bağlantı
cubrid isteği | cubrid_prepare() cubrid_execute() cubrid_query() cubrid_unbuffered_query() | cubrid_bind() cubrid_column_names() cubrid_column_types() cubrid_current_oid() cubrid_execute() cubrid_free_result() cubrid_get_query_timeout() cubrid_move_cursor() cubrid_next_result() cubrid_num_cols() cubrid_num_rows() cubrid_set_query_timeout() cubrid_data_seek() cubrid_fetch_array() cubrid_fetch_assoc() cubrid_fetch_field() cubrid_fetch_lengths() cubrid_fetch_object() cubrid_fetch_row() cubrid_field_flags() cubrid_field_len() cubrid_field_name() cubrid_field_seek() cubrid_field_table() cubrid_field_type() cubrid_num_fields() cubrid_result() cubrid_lob2_bind() | cubrid_close_prepare() cubrid_close_request() | CUBRID isteği
cubrid lob | cubrid_lob_get() | cubrid_lob_export() cubrid_lob_send() cubrid_lob_size() | cubrid_lob_close() | None
cubrid lob2 | cubrid_lob2_new() cubrid_fetch() cubrid_fetch_row() cubrid_fetch_array() cubrid_fetch_assoc() cubrid_fetch_object() | cubrid_lob2_export() cubrid_lob2_import() cubrid_lob2_read() cubrid_lob2_write() cubrid_lob2_tell() cubrid_lob2_tell64() cubrid_lob2_seek() cubrid_lob2_seek64() cubrid_lob2_size() cubrid_lob2_size64() | cubrid_lob2_close() | None
curl | curl_copy_handle(), curl_init() | curl_copy_handle(), curl_errno(), curl_error(), curl_exec(), curl_getinfo(), curl_setopt() | curl_close() | cURL tanıtıcısı
curl_multi | curl_multi_init() | curl_multi_errno(), curl_multi_exec(), curl_multi_info_read(), curl_multi_remove_handle(), curl_multi_select(), curl_multi_setopt() | curl_multi_close() | cURL çoklu tanıtıcı
curl_share | curl_share_init() | curl_share_errno(), curl_share_setopt() | curl_share_close() | cURL paylaşım tanıtıcı
dba | dba_open() | dba_delete(), dba_exists(), dba_fetch(), dba_firstkey(), dba_insert(), dba_nextkey(), dba_optimize(), dba_replace(), dba_sync() | dba_close() | DBA veritabanına bağlantı
dba persistent | dba_popen() | dba_delete(), dba_exists(), dba_fetch(), dba_firstkey(), dba_insert(), dba_nextkey(), dba_optimize(), dba_replace(), dba_sync() | Yok | DBA veritabanına kalıcı bağlantı
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() | Dbase veritabanına bağlantı
enchant_broker | enchant_broker_init() | enchant_broker_describe(), enchant_broker_dict_exists(), enchant_broker_get_dict_path(), enchant_broker_get_error(), enchant_broker_list_dicts(), enchant_broker_set_dict_path(), enchant_broker_set_ordering() | enchant_broker_free() | Enchant aracısı (PHP 8.0.0 öncesi)
enchant_dict | enchant_broker_request_dict() enchant_broker_request_pwl_dict() | enchant_dict_add_to_personal(), enchant_dict_add_to_session(), enchant_dict_check(), enchant_dict_describe(), enchant_dict_get_error(), enchant_dict_is_in_session(), enchant_dict_store_replacement(), enchant_dict_suggest() | enchant_broker_free_dict() | Enchant sözlüğü (PHP 8.0.0 öncesi)
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 Dosyası
ftp | ftp_connect(), ftp_ssl_connect() | ftp_login(), ftp_pwd(), ftp_cdup(), ftp_chdir(), ftp_mkdir(), ftp_rmdir(), ftp_nlist(), ftp_rawlist(), ftp_systype(), ftp_pasv(), ftp_get(), ftp_fget(), ftp_put(), ftp_fput(), ftp_size(), ftp_mdtm(), ftp_rename(), ftp_delete(), ftp_site(), ftp_alloc(), ftp_chmod(), ftp_exec(), ftp_get_option(), ftp_nb_continue(), ftp_nb_fget(), ftp_nb_fput(), ftp_nb_get(), ftp_nb_put(), ftp_raw(), ftp_set_option() | ftp_close() | FTP bağlantısı (PHP 8.1.0 öncesi)
gd | imagecreate(), imagecreatefromgd(), imagecreatefromgd2(), imagecreatefromgd2part(), imagecreatefromgif(), imagecreatefromjpeg(), imagecreatefrompng(), imagecreatefromwbmp(), imagecreatefromstring(), imagecreatefromxbm(), imagecreatefromxpm(), imagecreatetruecolor(), imagerotate() | imagearc(), imagechar(), imagecharup(), imagecolorallocate(), imagecolorat(), imagecolorclosest(), imagecolorexact(), imagecolorresolve(), imagegammacorrect(), imagegammacorrect(), imagecolorset(), imagecolorsforindex(), imagecolorstotal(), imagecolortransparent(), imagecopy(), imagecopyresized(), imagedashedline(), imagefill(), imagefilledpolygon(), imagefilledrectangle(), imagefilltoborder(), imagegif(), imagepng(), imagejpeg(), imagewbmp(), imageinterlace(), imageline(), imagepolygon(), imagerectangle(), imagerotate(), imagesetpixel(), imagestring(), imagestringup(), imagesx(), imagesy(), imagettftext(), imagefilledarc(), imageellipse(), imagefilledellipse(), imagecolorclosestalpha(), imagecolorexactalpha(), imagecolorresolvealpha(), imagecopymerge(), imagecopymergegray(), imagecopyresampled(), imagetruecolortopalette(), imagesetbrush(), imagesettile(), imagesetthickness(), image2wbmp(), imagealphablending(), imageantialias(), imagecolorallocatealpha(), imagecolorclosesthwb(), imagecolordeallocate(), imagecolormatch(), imagefilter(), imagefttext(), imagegd(), imagegd2(), imageistruecolor(), imagelayereffect(), imagepalettecopy(), imagesavealpha(), imagesetstyle(), imagexbm() | imagedestroy() | GD Görüntüsü (PHP 8.0.0 öncesi)
gd yazı tipi | imageloadfont() | imagechar(), imagecharup(), imagefontheight() | Yok | GD için yazı tipi (PHP 8.1.0 öncesi)
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() | IMAP, POP3 sunucusuna bağlantı (PHP 8.1.0 öncesi)
interbase blob | ibase_blob_create(), ibase_blob_import(), ibase_blob_open() | ibase_blob_add(), ibase_blob_cancel(), ibase_blob_echo(), ibase_blob_get(), ibase_blob_info() | ibase_blob_close()
interbase bağlantısı | ibase_connect() | ibase_query(), ibase_prepare(), ibase_trans() | ibase_close() | Interbase veritabanına bağlantı
interbase veritabanına kalıcı bağlantı | ibase_pconnect() | ibase_query(), ibase_prepare(), ibase_trans() | Yok | Interbase veritabanına kalıcı bağlantı
interbase songusu | 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 işlemi
ldap bağlantısı | 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 bağlantısı (PHP 8.1.0 öncesi)
ldap sonucu | 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 arama sonucu (PHP 8.1.0 öncesi)
ldap sonuç girdisi | ldap sonuç girdisi (PHP 8.1.0 öncesi)
mailparse_mail_structure | mailparse_msg_create() mailparse_msg_parse_file() | mailparse_msg_extract_part_file() mailparse_msg_extract_part() mailparse_msg_extract_whole_part_file() mailparse_msg_get_part_data() mailparse_msg_get_part() mailparse_msg_get_structure() mailparse_msg_parse() | mailparse_msg_free()
mysql link | mysql_connect() | mysql_affected_rows(), mysql_create_db(), mysql_data_seek(), mysql_db_name(), mysql_db_query(), mysql_drop_db(), mysql_errno(), mysql_error(), mysql_insert_id(), mysql_list_dbs(), mysql_list_fields(), mysql_list_tables(), mysql_query(), mysql_result(), mysql_select_db(), mysql_tablename(), mysql_get_host_info(), mysql_get_proto_info(), mysql_get_server_info() | mysql_close() | MySQL veritabanına bağlantı
mysql veritabanına kalıcı bağlantı | mysql_pconnect() | mysql_affected_rows(), mysql_create_db(), mysql_data_seek(), mysql_db_name(), mysql_db_query(), mysql_drop_db(), mysql_errno(), mysql_error(), mysql_insert_id(), mysql_list_dbs(), mysql_list_fields(), mysql_list_tables(), mysql_query(), mysql_result(), mysql_select_db(), mysql_tablename(), mysql_get_host_info(), mysql_get_proto_info(), mysql_get_server_info() | Yok | MySQL veritabanına kalıcı bağlantı
mysql sonucu | mysql_db_query(), mysql_list_dbs(), mysql_list_fields(), mysql_list_processes(), mysql_list_tables(), mysql_query(), mysql_unbuffered_query() | mysql_data_seek(), mysql_db_name(), mysql_fetch_array(), mysql_fetch_assoc(), mysql_fetch_field(), mysql_fetch_lengths(), mysql_fetch_object(), mysql_fetch_row(), mysql_fetch_row(), mysql_field_flags(), mysql_field_name(), mysql_field_len(), mysql_field_seek(), mysql_field_table(), mysql_field_type(), mysql_num_fields(), mysql_num_rows(), mysql_result(), mysql_tablename() | mysql_free_result() | MySQL sonucu
oci8 demeti | oci_new_collection() | OCICollection::append(), OCICollection::assign(), OCICollection::assignElem(), OCICollection::getElem(), OCICollection::max(), OCICollection::size(), OCICollection::trim() | OCICollection::free() | Oracle Koleksiyonu
oci8 bağlantısı | oci_connect(), oci_pconnect(), oci_new_connect() | oci_commit(), oci_error(), oci_new_cursor(), oci_parse(), oci_password_change(), oci_rollback(), oci_server_version(), oci_set_action(), oci_set_client_identifier(), oci_set_client_info(), oci_set_module_name() | oci_close() | Oracle veritabanına bağlantı
oci8 lob | oci_new_descriptor() | OCILob::append(), OCILob::close(), OCILob::eof(), OCILob::erase(), OCILob::export(), OCILob::flush(), OCILob::getBuffering(), OCILob::import(), OCILob::load(), OCILob::read(), OCILob::rewind(), OCILob::save(), OCILob::saveFile(), OCILob::seek(), OCILob::setBuffering(), OCILob::size(), OCILob::tell(), OCILob::truncate(), OCILob::write(), OCILob::writeTemporary(), OCILob::writeToFile(), oci_lob_copy(), oci_lob_is_equal() | OCILob::free() | Oracle büyük nesneler
oci8 deyimi | oci_parse(), oci_new_cursor() | oci_bind_array_by_name(), oci_bind_by_name(), oci_cancel(), oci_define_by_name(), oci_error() oci_execute(), oci_fetch_all(), oci_fetch_array(), oci_fetch_assoc(), oci_fetch_object(), oci_fetch_row(), oci_fetch(), oci_field_is_null(), oci_field_name(), oci_field_precision(), oci_field_scale(), oci_field_size(), oci_field_type_raw(), oci_field_type(), oci_num_fields(), oci_num_rows(), oci_result(), oci_set_prefetch(), oci_statement_type() | oci_free_statement() | Oracle cursor
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() | ODBC veritabanına bağlantı
odbc veritabanına kalıcı bağlantıt | odbc_pconnect() | odbc_autocommit(), odbc_commit(), odbc_error(), odbc_errormsg(), odbc_exec(), odbc_tables(), odbc_tableprivileges(), odbc_do(), odbc_prepare(), odbc_columns(), odbc_columnprivileges(), odbc_procedurecolumns(), odbc_specialcolumns(), odbc_rollback(), odbc_setoption(), odbc_gettypeinfo(), odbc_primarykeys(), odbc_foreignkeys(), odbc_procedures(), odbc_statistics() | Yok | ODBC veritabanına kalıcı bağlantı
odbc sonucu | 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 sonucu
birdstep bağlantısı | Birdstep veritabanına bağlantı (PHP 7.3.0 öncesi)
birdstep sonucu | Birdstep sonucu ((PHP 7.3.0 öncesi)
OpenSSL anahtarı | openssl_get_privatekey(), openssl_get_publickey() | openssl_sign(), openssl_seal(), openssl_open(), openssl_verify() | openssl_free_key() | OpenSSL anahtarı
OpenSSL X.509 | openssl_x509_read() | openssl_x509_parse(), openssl_x509_checkpurpose() | openssl_x509_free() | Genel Anahtar
pgsql dev nesnesi | 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 Dev nesnesi (PHP 8.1.0 öncesi)
pgsql bağlantısı | pg_connect() | pg_affected_rows(), pg_query(), pg_send_query(), pg_get_result(), pg_connection_busy(), pg_connection_reset(), pg_connection_status(), pg_last_error(), pg_last_notice(), pg_lo_create(), pg_lo_export(), pg_lo_import(), pg_lo_open(), pg_lo_unlink(), pg_host(), pg_port(), pg_dbname(), pg_options(), pg_copy_from(), pg_copy_to(), pg_end_copy(), pg_put_line(), pg_tty(), pg_trace(), pg_untrace(), pg_set_client_encoding(), pg_client_encoding(), pg_meta_data(), pg_convert(), pg_insert(), pg_select(), pg_delete(), pg_update() | pg_close() | PostgreSQL veritabanına bağlantı (PHP 8.1.0 öncesi)
pgsql veritabanına kalıcı bağlantı | pg_pconnect() | pg_affected_rows(), pg_query(), pg_send_query(), pg_get_result(), pg_connection_busy(), pg_connection_reset(), pg_connection_status(), pg_last_error(), pg_last_notice(), pg_lo_create(), pg_lo_export(), pg_lo_import(), pg_lo_open(), pg_lo_unlink(), pg_host(), pg_port(), pg_dbname(), pg_options(), pg_copy_from(), pg_copy_to(), pg_end_copy(), pg_put_line(), pg_tty(), pg_trace(), pg_untrace(), pg_set_client_encoding(), pg_client_encoding(), pg_meta_data(), pg_convert(), pg_insert(), pg_select(), pg_delete(), pg_update() | Yok | PostgreSQL veritabanına kalıcı bağlantı
pgsql sonucu | pg_execute(), pg_query(), pg_query_params(), pg_get_result() | pg_fetch_array(), pg_fetch_object(), pg_fetch_result(), pg_fetch_row(), pg_field_is_null(), pg_field_name(), pg_field_num(), pg_field_prtlen(), pg_field_size(), pg_field_type(), pg_last_oid(), pg_num_fields(), pg_num_rows(), pg_result_error(), pg_result_status() | pg_free_result() | PostgreSQL sonucu (PHP 8.1.0 öncesi)
pgsql dizgesi
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() | Yok | pspell sözlüğü (PHP 8.1.0 öncesi)
pspell yapılandırması | pspell_config_create() | pspell_new_config() | Yok | pspell yapılandırması (PHP 8.1.0 öncesi)
shmop | shmop_open() | shmop_read(), shmop_write(), shmop_size(), shmop_delete() | shmop_close() | Paylaşımlı bellek kümesi tanıtıcısı (PHP 8.0.0 öncesi)
Socket | socket_accept(), socket_addrinfo_bind(), socket_addrinfo_connect(), socket_create(), socket_create_listen(), socket_import_stream(), socket_wsaprotocol_info_import() | socket_accept(), socket_bind(), socket_clear_error(), socket_connect(), socket_get_option(), socket_getpeername(), socket_getsockname(), socket_last_error(), socket_listen(), socket_read(), socket_recv(), socket_recvfrom(), socket_recvmsg(), socket_select(), socket_send(), socket_sendmsg(), socket_sendto(), socket_set_block(), socket_set_nonblock(), socket_set_option(), socket_shutdown(), socket_write(), socket_wsaprotocol_info_export(), socket_wsaprotocol_info_release() | socket_close() | Socket (sockets eklentisi)
akım | opendir() | readdir(), rewinddir() | closedir() | Dizin tanıtıcı
akım | fopen(), tmpfile() | feof(), fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), flock(), fpassthru(), fputs(), fwrite(), fread(), fseek(), ftell(), fstat(), ftruncate(), set_file_buffer(), rewind() | fclose() | Dosya tanıtıcı
akım | popen(), fsockopen(), pfsockopen() | feof(), fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), fpassthru(), fputs(), fwrite(), fread() | pclose() | Süreç kimliği
soket | fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), fpassthru(), fputs(), fwrite(), fread() | fclose() | Soket tanıtıcı
SSH2 Oturumu | ssh2_connect() | ssh2_disconnect()
SSH2 Dinleyici | ssh2_forward_listen()
SSH2 SFTP | ssh2_sftp()
SSH2 Genel Anahtar Alt Sistemi | ssh2_publickey_init()
sysvmsg kuyruğu | msg_get_queue() | msg_queue_exists(), msg_receive(), msg_send(), msg_set_queue(), msg_stat_queue() | msg_remove_queue() | System V İleti Kuyruğu (PHP 8.0.0 öncesi)
sysvsem | sem_get() | sem_acquire() | sem_release() | System V Semaforu (PHP 8.0.0 öncesi)
sysvshm | shm_attach() | shm_remove(), shm_put_var(), shm_get_var(), shm_remove_var() | shm_detach() | System V Paylaşımlı Belleği (PHP 8.0.0 öncesi)
wddx | wddx_packet_start() | wddx_add_vars() | wddx_packet_end() | WDDX paketi
xml | xml_parser_create(), xml_parser_create_ns() | xml_set_object(), xml_set_element_handler(), xml_set_character_data_handler(), xml_set_processing_instruction_handler(), xml_set_default_handler(), xml_set_unparsed_entity_decl_handler(), xml_set_notation_decl_handler(), xml_set_external_entity_ref_handler(), xml_parse(), xml_get_error_code(), xml_error_string(), xml_get_current_line_number(), xml_get_current_column_number(), xml_get_current_byte_index(), xml_parse_into_struct(), xml_parser_set_option(), xml_parser_get_option() | xml_parser_free() | XML çözümleyici (PHP 8.0.0 öncesi)
zlib | gzopen() | gzeof(), gzgetc(), gzgets(), gzgetss(), gzpassthru(), gzputs(), gzread(), gzrewind(), gzseek(), gztell(), gzwrite() | gzclose() | gz-sıkıştırmalı dosya
zlib.deflate | deflate_init() | deflate_add() | None | arttırımlı deflate bağlamı PHP 8.0.0 öncesi)
zlib.inflate | inflate_init() | inflate_add(), inflate_get_read_len(), inflate_get_status() | None | arttırımlı inflate bağlamı PHP 8.0.0 öncesi)

User Contributed Notes

Anonymous 28-Jul-2023 12:19
Resource of type "process" is returned by proc_open() and used by proc_close()


Kullanılabilir Süzgeçlerin Listesi

İçindekiler

  • Dizge Süzgeçleri
  • Dönüşüm Süzgeçleri
  • Sıkıştırma Süzgeçleri
  • Şifreleme Süzgeçleri

Burada, stream_filter_append() işlevi ile kullanmak için birkaç yerleşik akım süzgecinden oluşan bir liste yer almaktadır. Kurulu PHP sürümünüz burada yer alan süzgeçlerden daha fazla (veya daha az) süzgece sahip olabilir.

stream_filter_append() ve stream_filter_prepend() işlevleri arasındaki hafif bakışımsızlık oluşu dikkat çekicidir. Her PHP akımı, veriyi daha verimli bir şekilde işlemek amacıyla dosya sisteminden veya başka kaynaklardan aldığı veri bloklarını saklamak için küçük bir okuma tamponu içerir. Veri, kaynağından akımın dahili tamponuna çekilir çekilmez PHP uygulamasının veriyi okuyup okumayacağına bağlı olarak ekli süzgeçler üzerinden işleme sokulur. Veri okuma tamponundayken bir süzgeç verinin ardına eklendiği anda, veri sanki doğrudan tampondan çekiliyormuş gibi gösterilerek bu süzgeç tarafından işlenmeye başlanır. Bununla birlikte, eğer süzgeç tampondaki verinin ardına değil de önüne eklenirse tampondaki veri süzgeç tarafından işlenmez. Bunun yerine kaynaktan verinin sonraki bloğunun gelmesini bekler.

Kurulu PHP sürümünüzde bulunan süzgeçlerin bir listesini stream_get_filters() işlevi ile alabilirsiniz.

User Contributed Notes

There are no user contributed notes for this page.


Dizge Süzgeçleri

Bu süzgeçlerin her biri tam olarak isminde yazan işlemi yaparlar ve karşılığı olan yerleşik PHP dizge işleme işlevinin davranışını sergilerler. Belli bir süzgeçle ilgili ayrıntılı bilgi edinmek için ilgili işlevin kılavuz sayfasına bakınız.

string.rot13

Bu süzgecin kullanımı, tüm akım verisinin str_rot13() işlevi ile işlenmesine eşdeğerdir.

Örnek 1 - string.rot13 örneği

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.rot13');
fwrite($fp, "Bu bir denemedir.\n");
/* Çıktısı: Oh ove qrarzrqve. */
?>

string.toupper

Bu süzgecin kullanımı, tüm akım verisinin strtoupper() işlevi ile işlenmesine eşdeğerdir.

Örnek 2 - string.toupper örneği

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.toupper');
fwrite($fp, "Bu küçük bir denemedir.\n");
/* Çıktısı: BU KüçüK BIR DENEMEDIR. */
?>

string.tolower

Bu süzgecin kullanımı, tüm akım verisinin strtolower() işlevi ile işlenmesine eşdeğerdir.

Örnek 3 - string.tolower örneği

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.tolower');
fwrite($fp, "Bu küçük bir denemedir.\n");
/* Çıktısı: bu küçük bir denemedir.. */
?>

string.strip_tags

(PHP 5.0.0 ve sonrası). Bu süzgecin kullanımı, tüm akım verisinin strip_tags() işlevi ile işlenmesine eşdeğerdir. Bağımsız değişken olarak şu iki biçimden birini kabul eder: Ya strip_tags() işlevinin ikinci bağımsız değişkenindeki gibi bir etiket listesi içeren bir dizi ya da etiket isimlerinden oluşan bir dizi.

Uyarı

Bu özelliğin kullanımı PHP 7.3.0 itibariyle ÖNERİLMEMEKTEDİR. Bu özelliğe kesinlikle güvenilmemelidir.

Örnek 4 - string.strip_tags örneği

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.strip_tags', STREAM_FILTER_WRITE, "<b><i><u>");
fwrite($fp, "<b>kalın metin</b> <h1>1. seviyeden bir başlık</h1> haline getirilir\n");
fclose($fp);
/* Çıktısı: kalın metin 1. seviyeden bir başlık haline getirilir */

$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.strip_tags', STREAM_FILTER_WRITE, array('b','i','u'));
fwrite($fp, "<b>kalın metin</b> <h1>1. seviyeden bir başlık</h1> haline getirilir\n");
fclose($fp);
/* Çıktısı: kalın metin 1. seviyeden bir başlık haline getirilir */
?>

User Contributed Notes

There are no user contributed notes for this page.


Dönüşüm Süzgeçleri

string.* süzgeçleri gibi, the convert.* süzgeçleri de isimlerinde yazan eylemleri gerçekleştirirler. Belli bir süzgeçle ilgili ayrıntılı bilgi edinmek için ilgili işlevin kılavuz sayfasına bakınız.

convert.base64-encode ve convert.base64-decode

Bu süzgeçlerin kullanımı, tüm akım verisinin sırasıyla base64_encode() veya base64_decode() işlevi ile işlenmesine eşdeğerdir. convert.base64-encode süzgeci bağımsız değişkenlerin bir ilişkisel dizi olarak belirtilmesini destekler. Eğer line-length bağımsız değişkeni verilmişse base64 çıktı, her biri line-length baytlık parçalara bölünür. Eğer line-break-chars bağımsız değişkeni verilmişse çıktının her parçası belirtilen karakterle sınırlanır. Bu bağımsız değişkenler base64_encode() işlevinin chunk_split() ile birlikte kullanımına eşdeğer bir etkiye sebep olur.

Örnek 1 - convert.base64-encode ve convert.base64-decode örneği

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-encode');
fwrite($fp, "Bu bir denemedir.\n");
echo "\n";
fclose($fp);
/* Çıktısı: QnUgYmlyIGRlbmVtZWRpci4K */

$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, "Bu bir denemedir.\n");
echo "\n";
fclose($fp);
/* Çıktısı: QnUgYmly
: IGRlbmVt
: ZWRpci4K */

$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-decode');
fwrite($fp, "QnUgYmlyIGRlbmVtZWRpci4K");
echo "\n";
fclose($fp);
/* Çıktısı: Bu bir denemedir. */
?>

convert.quoted-printable-encode ve convert.quoted-printable-decode

Bu süzgeçlerden kod çözme (decode) ile ilgili olanın kullanımı, tüm akım verisinin quoted_printable_decode() işlevi ile işlenmesine eşdeğerdir. convert.quoted-printable-encode işlevine eşdeğer bir süzgeç yoktur. convert.quoted-printable-encode süzgeci bağımsız değişkenlerinin bir ilişkisel dizi olarak verilmesini destekler. convert.base64-encode süzgecinin bağımsız değişkenlerine ek olarak, binary ve force-encode-first bağımsız değişkenlerini de destekler. convert.quoted-printable-encode süzgeci, kodlanmış veriden yararlı yükü ayırmak için bir ipucu olarak sadece line-break-chars bağımsız değişkenini destekler.

Örnek 2 - convert.quoted-printable-encode ve convert.quoted-printable-decode örneği

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.quoted-printable-encode');
fwrite($fp, "Bu küçük bir denemedir.\n");
/* Çıktısı: Bu k=C3=BC=C3=A7=C3=BCk bir denemedir.=0A */

$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.quoted-printable-decode');
fwrite($fp, "Bu k=C3=BC=C3=A7=C3=BCk bir denemedir.=0A");
/* Çıktısı: Bu küçük bir denemedir.
*/
?>

convert.iconv.*

convert.iconv.* süzgeçleri iconv desteği etkinse kullanılabilir olup tüm akım verisinin iconv() ile işlenmesine eşdeğerdir. Bu süzgeçler bağımsız değişkenleri desteklememekle beraber girdi ve çıktı kodlamaları süzgeç isminin parçası olarak verilebilir. Örneğin, convert.iconv.<input-encoding>.<output-encoding> veya convert.iconv.<input-encoding>/<output-encoding> (her iki gösterim anlamsal olarak eşdeğerdir).

Örnek 3 - convert.iconv.* örneği

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.iconv.utf-16le.utf-8');
fwrite($fp, "T\0h\0i\0s\0 \0i\0s\0 \0a\0 \0t\0e\0s\0t\0.\0\n\0");
fclose($fp);
/* Çıktısı: This is a test. */
?>

User Contributed Notes

marcus at synchromedia dot co dot uk 10-May-2022 09:50
It's not quite obvious what all the available parameters are for convert.quoted-printable-encode. If you want the stream filter to act the same way as the quoted_printable_encode function, you need these extra params, for example:

stream_filter_append(
    STDOUT,
    'convert.quoted-printable-encode',
    STREAM_FILTER_WRITE,
    [
        'line-break-chars' => PHP_EOL,
        'line-length' => 75,
    ]
);
echo stream_copy_to_stream(STDIN, STDOUT);

Without these extra params set, you may get no wrapping at all, or wrapping using the wrong line break sequence.


Sıkıştırma Süzgeçleri

Sıkıştırma Sarmalayıcıları yerel dosya sisteminde gzip ve bz2 uyumlu dosyalar oluşturabilmelerine rağmen ne ağ akımlarına sıkıştırma uygulayabilir ne de sıkıştırılmış ağ akımlarının sıkıştırmasını açabilirler. Bunu sağlamak için, akım kaynaklarına herhangi bir anda bir sıkıştırma süzgeci uygulanabilir.

Bilginize: Sıkıştırma süzgeçleri gzip gibi komut satırı uygulamaları tarafından kullanılan dosya baş uç ve ayak uçlarını üretmezler. Sadece sıkıştırılmış veri akımlarının yararlı yükünü sıkıştırıp açarlar.

zlib.deflate and zlib.inflate

» RFC 1951'de tanımlanan sıkıştırma yöntemlerini gerçekler. deflate (sıkıştırma) süzgeci, aktarılan üç bağımsız değişkeni bir ilişkisel dizi olarak kabul eder. level bağımsız değişkeni sıkıştırmanın derecesini (1-9) belirler. Büyük numaralar, küçüklerine göre genelde daha küçük yararlı yük oluşturmasına rağmen daha uzun işlem zamanına gerektirirler. Ayrıca iki özel sıkıştırma seviyesi daha mevcuttur: 0 (hiç sıkıştırma yapılmaz) ve -1 (zlib yerleşik öntanımlısı; şimdilik 6). window bağımsız değişkeninin değeri, sıkıştırma döngüsü pencere genişliğinin 2 tabanına göre logaritmasıdır. Yüksek değerler (yukarda 15'e -- 32768 bayta kadar) daha büyük bellek tüketimi karşılığında daha çok sıkıştırma sağlarken, düşük değerler (aşağıda 9'a -- 512 bayta kadar) daha az bellek tüketimi karşılığında daha az sıkıştırma sağlar. Öntanımlı window genişliği şimdilik 15'tir. memory bağımsız değişkeninin değeri ne kadar bellek ayrılacağını belirleyen bir katsayıdır. Geçerli değerler 1'den (en az bellek ayırma) 9'a (en çok bellek ayırma) kadardır. Bu bellek ayırma işlemi sadece hızı etkiler, üretilen yararlı yükün boyutuna etkisi yoktur.

Bilginize: Sıkıştırma seviyesi en çok kullanılan bağımsız değişken olduğundan bir dizi elemanı olarak belirtilebildiği gibi tek başına basit bir bağımsız değişken olarak da belirtilebilmektedir.

zlib.* sıkıştırma süzgeçleri, zlib desteği etkin olduğu takdirde kullanılabilmektedir.

Örnek 1 - zlib.deflate ve zlib.inflate örneği

<?php
$params = array('level' => 6, 'window' => 15, 'memory' => 9);

$özgün_metin = "Bu bir denemedir.\nBu sadece bir denemedir.\nBu önemli bir dizge değildir.\n";
echo "Özgün metin " . strlen($özgün_metin) . " karakter uzunluktadır.\n";

$fp = fopen('test.deflated', 'w');
stream_filter_append($fp, 'zlib.deflate', STREAM_FILTER_WRITE, $params);
fwrite($fp, $özgün_metin);
fclose($fp);

echo "Sıkıştırılmış dosya ".filesize('test.deflated')." bayt uzunluktadır.\n";
echo "Özgün metin:\n";
/* veriyi bir yere aktarmadan sıkıştırmayı açmak için
readfile ve zlib.inflate kullanalım */
readfile('php://filter/zlib.inflate/resource=test.deflated');

/* Üretilen çıktı:

Özgün metin 75 karakter uzunluktadır.
Sıkıştırılmış dosya 57 bayt uzunluktadır.
Özgün metin:
Bu bir denemedir.
Bu sadece bir denemedir.
Bu önemli bir dizge değildir.
*/

?>

Örnek 2 - Basit bir zlib.deflate örneği

<?php
$özgün_metin = "Bu bir denemedir.\nBu sadece bir denemedir.\nBu önemsiz bir dizgedir.\n";
echo "Özgün metin ".strlen($özgün_metin)." karakter uzunluktadır.\n";

$fp = fopen('test.deflated', 'w');
/* Buradaki "6" sıkıştırma seviyesinin 6 olduğunu göstermektedir */
stream_filter_append($fp, 'zlib.deflate', STREAM_FILTER_WRITE, 6);
fwrite($fp, $özgün_metin);
fclose($fp);

echo "Sıkıştırılmış dosya ".filesize('test.deflated')." bayt uzunluktadır.\n";

/* Üretilen çıktı:

Özgün metin 69 karakter uzunluktadır.
Sıkıştırılmış dosya 45 bayt uzunluktadır.

*/
?>

bzip2.compress and bzip2.decompress

bzip2.compress ve bzip2.decompress süzgeçleri yukarıda açıklanan zlib süzgeçleriyle aynı anlamda çalışırlar. bzip2.compress süzgeci bir ilişkisel dizinin elemanları olarak iki bağımsız değişken kabul eder: blocks bağımsız değişkeni, çalışma alanı için ayrılacak belleğin 100 kbaytlık katları olarak 1'den 9'a kadar bir tamsayıdır. work bağımsız değişkeni de bir tamsayı olup, son çare olarak daha yavaş fakat daha güvenilir bir yönteme başvurmadan önce normal bir sıkıştırma yöntemine ne kadar çaba harcanacağını belirten 0'dan 250'ye kadar bir değerdir. Bu bağımsız değişken sadece hız üzerinde etkilidir. Bu ayardan ne sıkıştırılmış çıktının boyu ne de bellek kullanımı etkilenir. 0 değeri bzip kütüphanesinin yerleşik öntanımlısının kullanılacağı anlamına gelir. bzip2.decompress süzgeci tek bir bağımsız değişken kabul eder. Ya sıradan bir mantıksal değer ya da small anahtarlı tek elemanı olan bir ilişkisel dizidir. small bağımsız değişkenine true değerinin atanması, bzip2 kütüphanesinin sıkıştırmayı açmak için hız pahasına en az belleği ayıracağı anlamına gelir.

bzip2.* sıkıştırma süzgeçleri, bz2 desteği etkin olduğu takdirde kullanılabilmektedir.

Örnek 3 - bzip2.compress ve bzip2.decompress örneği

<?php
$param = array('blocks' => 9, 'work' => 0);

echo "Özgün dosya " . filesize('LICENSE') . " bayt uzunluktadır.\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 "Sıkıştırılmış dosya " . filesize('LICENSE.compressed') . " bayt uzunluktadır.\n";

/* Üretilen çıktı:

Özgün dosya 3288 bayt uzunluktadır.
Sıkıştırılmış dosya 1488 bayt uzunluktadır.

*/
?>

User Contributed Notes

TingSong 20-Feb-2023 03:43
To decompress a gzipped stream:

<?php
$stream = fopen('https://example.com/some/file.txt.gz', 'rb');
stream_filter_append($stream, 'zlib.inflate', STREAM_FILTER_READ, ['window' => 15+16]);

// read the decompressed line directly
$line = fgets($stream);

// process the lines
?>

As the doc of zlib https://www.zlib.net/manual.html#Advanced

The 'window' parameter between 8 and 15 specified the window size from 28 to 2¹5 bytes. It can be added by 16 for wrapping with gzip header and trailer instead of zlib wrapper.

And, window could be -8..-15 for unwrapping RAW deflate data.
Anonymous 10-Feb-2021 06:37
To use the zlib.inflate filter with data originally written using gzcompress() or zlib.deflate, set the window option to 15 as outlined here: https://bugs.php.net/bug.php?id=68556

<?php
$fh = fopen(file_name, 'rb');
stream_filter_append($fh, 'zlib.inflate', STREAM_FILTER_READ, ['window' => 15]);
$contents = stream_get_contents($fh);
fclose($fh);
bohwaz 08-Jul-2018 01:39
Please note that there is currently a bug in this feature. ftell(), fseek() and fstat() functions cannot be used. Writing to a stream after using this function will not change the stream position as it should.

See bug: https://bugs.php.net/bug.php?id=49874

Also the zlib filters don't work with php://temp, php://memory and php://input streams, nothing is outputted to those streams.
Anonymous 21-Aug-2015 06:12
To read a gzip encoded stream from http
<?php
$opts = [
    "http" => [
        "method" => "GET",
        "header" => [ "Accept-Encoding: gzip" ],
    ]
];
$ctx = stream_context_create($opts);
$f = fopen("http://php.net", "r", false, $ctx);
// check  stream_get_meta_data($f)["wrapper_data"] has "Content-Encoding: gzip"
stream_filter_append($f, "zlib.inflate", STREAM_FILTER_READ, ["window" => 30]);
echo stream_get_contents($f); // any stream processing
fclose($f);


Şifreleme Süzgeçleri

Şifreleme süzgeçleri öxellikle dosya/akım şifrelemesinde kullanışlıdır.

mcrypt.* ve mdecrypt.*

Uyarı

Bu özelliğin kullanımı PHP 7.1.0 itibariyle ÖNERİLMEMEKTEDİR. Bu işleve kesinlikle güvenilmemelidir.

mcrypt.* ve mdecrypt.* süzgeçleri libmcrypt kullanarak bakışımlı şifreleme ve şifre çözme yaparlar. Her iki süzgeç ailesi de mcrypt.şifreismi biçeminde mcrypt eklentisinde kullanılan algoritmaları desteklerler; buradaki şifreismi mcrypt_module_open() işlevine aktarıldığı şekliyle şifrenin ismidir. Ayrıca, aşağıdaki beş süzgeç bağımsız değişkeni de kullanılabilmektedir:

mcrypt süzgeç bağımsız değişkenleri
Bağımsız değişken | Gereklilik | Öntanımlı | Örnek değerler
mode | seçimlik | cbc | cbc, cfb, ecb, nofb, ofb, stream
algorithms_dir | seçimlik | ini_get('mcrypt.algorithms_dir') | Algoritma modüllerinin yeri
modes_dir | seçimlik | ini_get('mcrypt.modes_dir') | Kip modüllerinin yeri
iv | gerekli | yok | Genelde 8, 16 veya 32 baytlık ikil veri. Şifreye bağlı.
key | gerekli | yok | Genelde 8, 16 veya 32 baytlık ikil veri. Şifreye bağlı.

Örnek 1 - 3DES kullanarak şifreli dosya çıktılama

<?php
//$key evvelce üretilmiş varsayılıyor
$iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_CBC);
$iv = mcrypt_create_iv($iv_size, MCRYPT_DEV_URANDOM);
$fp = fopen('encrypted-file.enc', 'wb');
fwrite($fp, $iv);
$opts = array('mode'=>'cbc','iv'=>$iv, 'key'=>$key);
stream_filter_append($fp, 'mcrypt.blowfish', STREAM_FILTER_WRITE, $opts);
fwrite($fp, 'message to encrypt');
fclose($fp);

//decrypt...
$fp = fopen('encrypted-file.enc', 'rb');
$iv = fread($fp, $iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_CBC));
$opts = array('mode'=>'cbc','iv'=>$iv, 'key'=>$key)
stream_filter_append($fp, 'mdecrypt.blowfish', STREAM_FILTER_READ, $opts);
$data = rtrim(stream_get_contents($fp));//null dizesi temizleniyor
fclose($fp);
echo $data;
?>

Örnek 2 - SHA256 HMAC ile AES-128 CBC kullanarak dosya şifreleme

<?php
AES_CBC::encryptFile($password, "plaintext.txt", "encrypted.enc");
AES_CBC::decryptFile($password, "encrypted.enc", "decrypted.txt");

class AES_CBC
{
protected static $KEY_SIZES = array('AES-128'=>16,'AES-192'=>24,'AES-256'=>32);
protected static function key_size() { return self::$KEY_SIZES['AES-128']; } //default AES-128
public static function encryptFile($password, $input_stream, $aes_filename){
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
$fin = fopen($input_stream, "rb");
$fc = fopen($aes_filename, "wb+");
if (!empty($fin) && !empty($fc)) {
fwrite($fc, str_repeat("_", 32) );//placeholder, SHA256 HMAC will go here later
fwrite($fc, $hmac_salt = mcrypt_create_iv($iv_size, MCRYPT_DEV_URANDOM));
fwrite($fc, $esalt = mcrypt_create_iv($iv_size, MCRYPT_DEV_URANDOM));
fwrite($fc, $iv = mcrypt_create_iv($iv_size, MCRYPT_DEV_URANDOM));
$ekey = hash_pbkdf2("sha256", $password, $esalt, $it=1000, self::key_size(), $raw=true);
$opts = array('mode'=>'cbc', 'iv'=>$iv, 'key'=>$ekey);
stream_filter_append($fc, 'mcrypt.rijndael-128', STREAM_FILTER_WRITE, $opts);
$infilesize = 0;
while (!feof($fin)) {
$block = fread($fin, 8192);
$infilesize+=strlen($block);
fwrite($fc, $block);
}
$block_size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
$padding = $block_size - ($infilesize % $block_size);//$padding is a number from 1-16
fwrite($fc, str_repeat(chr($padding), $padding) );//perform PKCS7 padding
fclose($fin);
fclose($fc);
$hmac_raw = self::calculate_hmac_after_32bytes($password, $hmac_salt, $aes_filename);
$fc = fopen($aes_filename, "rb+");
fwrite($fc, $hmac_raw);//overwrite placeholder
fclose($fc);
}
}
public static function decryptFile($password, $aes_filename, $out_stream) {
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
$hmac_raw = file_get_contents($aes_filename, false, NULL, 0, 32);
$hmac_salt = file_get_contents($aes_filename, false, NULL, 32, $iv_size);
$hmac_calc = self::calculate_hmac_after_32bytes($password, $hmac_salt, $aes_filename);
$fc = fopen($aes_filename, "rb");
$fout = fopen($out_stream, 'wb');
if (!empty($fout) && !empty($fc) && self::hash_equals($hmac_raw,$hmac_calc)) {
fread($fc, 32+$iv_size);//skip sha256 hmac and salt
$esalt = fread($fc, $iv_size);
$iv = fread($fc, $iv_size);
$ekey = hash_pbkdf2("sha256", $password, $esalt, $it=1000, self::key_size(), $raw=true);
$opts = array('mode'=>'cbc', 'iv'=>$iv, 'key'=>$ekey);
stream_filter_append($fc, 'mdecrypt.rijndael-128', STREAM_FILTER_READ, $opts);
while (!feof($fc)) {
$block = fread($fc, 8192);
if (feof($fc)) {
$padding = ord($block[strlen($block) - 1]);//assume PKCS7 padding
$block = substr($block, 0, 0-$padding);
}
fwrite($fout, $block);
}
fclose($fout);
fclose($fc);
}
}
private static function hash_equals($str1, $str2) {
if(strlen($str1) == strlen($str2)) {
$res = $str1 ^ $str2;
for($ret=0,$i = strlen($res) - 1; $i >= 0; $i--) $ret |= ord($res[$i]);
return !$ret;
}
return false;
}
private static function calculate_hmac_after_32bytes($password, $hsalt, $filename) {
static $init=0;
$init or $init = stream_filter_register("user-filter.skipfirst32bytes", "FileSkip32Bytes");
$stream = 'php://filter/read=user-filter.skipfirst32bytes/resource=' . $filename;
$hkey = hash_pbkdf2("sha256", $password, $hsalt, $iterations=1000, 24, $raw=true);
return hash_hmac_file('sha256', $stream, $hkey, $raw=true);
}
}
class FileSkip32Bytes extends php_user_filter
{
private $skipped=0;
function filter($in, $out, &$consumed, $closing) {
while ($bucket = stream_bucket_make_writeable($in)) {
$outlen = $bucket->datalen;
if ($this->skipped<32){
$outlen = min($bucket->datalen,32-$this->skipped);
$bucket->data = substr($bucket->data, $outlen);
$bucket->datalen = $bucket->datalen-$outlen;
$this->skipped+=$outlen;
}
$consumed += $outlen;
stream_bucket_append($out, $bucket);
}
return PSFS_PASS_ON;
}
}
class AES_128_CBC extends AES_CBC {
protected static function key_size() { return self::$KEY_SIZES['AES-128']; }
}
class AES_192_CBC extends AES_CBC {
protected static function key_size() { return self::$KEY_SIZES['AES-192']; }
}
class AES_256_CBC extends AES_CBC {
protected static function key_size() { return self::$KEY_SIZES['AES-256']; }
}

User Contributed Notes

Maarten Bodewes 06-Aug-2017 12:21
The examples on this page should be destroyed with utmost urgency.

Strangely most people will fall over the use of generating the IV and 3DES key using MD5, a weak hash function, e.g. the previous note and CryptoFails blog.

http://www.cryptofails.com/post/70059608390/php-documentation-woes

A password based key derivation function should be used (bcrypt, PBKDF2).

However the use of MD-5 for key derivation however isn't that bad and if the password is strong enough (it usually isn't) then the generated DES ABC key is strong enough even now.

Using an identical IV for each password means that this function directly leaks information about the encrypted file. If the start of two encrypted files is identical then this function will directly leak information. For instance, if the routine encrypts multiple images then the JPEG header would be easily distinguished.

All in all these examples use deprecated routines (mcrypt), deprecated cryptographic functions (MD5 / DES) and then incorrectly perform the actual encryption. Enough reason to destroy them in the first place.
Uwe Ohse 22-Feb-2017 04:17
1) The mcrypt module has been deprecated with PHP 7.1.
What does that mean for the encryption filters?

2) deriving the IV from the secret passphrase seems wrong. This leaks information about the passphrase without need.

3) using md5() for this? Really? hash() has been available since PHP 5.1.2.

4) hashing the passphrase twice does not add any security.

5) using substr() on binary data (why, oh why, is true passed to md5()?) might lead to headaches if mbstring.func_overload is used.


Desteklenen Soket Aktarımlarının Listesi

İçindekiler

  • Genel Ağ Alanı: TCP, UDP, SSL ve TLS
  • Unix Alanı: Unix ve UDG

fsockopen() ve stream_socket_client() gibi akım temelli soket işlevlerini kullanmak için PHP'nin yerleşik olarak sahip olduğu URL tarzı soket aktarımları aşağıda liste halinde verilmiştir. Bu aktarımlar Soket Eklentisine uygulanmaz.

Kurulu PHP sürümünüzün desteklediği aktarımları listelemek için stream_get_transports() işlevini kullanabilirsiniz.

User Contributed Notes

alefinvest at outlook dot com 06-Aug-2021 06:47
That was hard to fetch this page mentioned in note by other user long time ago.
I intended to read Appendix P to find some code examples.
Wondering how to implement custom transport extension for php on our server tto be used with some nowadays technologies research.
https://www.php.net/manual/ru/function.stream-context-create.php#75211


Genel Ağ Alanı: TCP, UDP, SSL ve TLS

ssl://, tls://, sslv2:// ve sslv3:// desteklenmektedir.

Bilginize: Hiçbir aktarım belirtilmezse tcp:// öntanımlıdır.

  • 127.0.0.1
  • fe80::1
  • mesela.dom
  • tcp://127.0.0.1
  • tcp://fe80::1
  • tcp://mesela.dom
  • udp://mesela.dom
  • ssl://mesela.dom
  • sslv2://mesela.dom
  • sslv3://mesela.dom
  • tls://mesela.dom

Genel Ağ Alanının soketleri bir hedef adrese ek olara bir port numarası gerektirirler. fsockopen() işlevi için bu ikinci bir bağımsız değişken ile belirtilir, dolayısıyla port numarasının IP adresiyle birlikte bir aktarım URLsi olarak biçimlenmesine gerek kalmaz. stream_socket_client() ve ilgili diğer işlevler için ise geleneksel URL gösterimi kullanılır, yani port numarası aktarım URL'sinin sonuna iki nokta imi ile eklemlenir.

  • tcp://127.0.0.1:80
  • tcp://[fe80::1]:80
  • tcp://mesela.dom:80

Bilginize: Port numaralı IPv6 adresleri
Dikkat ederseniz, yukarıdaki örneklerden ikincisinde IPv6 adresi köşeli ayraçlarını arasına alınmıştır ([fe80::1]). Bunun sebebi IPv6 adresin iki noktalı ayraçlarının, port numarasını eklemleyen iki nokta iminden ayırd edilmesini sağlamaktır.

ssl:// ve tls:// aktarımları (sadece PHP openssl desteği ile derlenmişse vardırlar) tcp:// aktarımının SSL şifrelemeli uzantılarıdır.

ssl:// aktarımı, uzak konağın yetenek ve tercihlerine bağlı olarak SSL V2 veya SSL V3 bağlantısı kurmaya çalışacaktır. SSL V2 veya SSL V3 bağlantı istekleri sslv2:// ve sslv3:// biçeminde açıkça belirtilebilir.

User Contributed Notes

christian at lantian dot eu 17-Sep-2013 12:46
@pablo dot livardo  :  I think that the problem you found is caused by the difference between the client/server encryption methods used.

The 465 port is used for SMTPS, and the server starts the encryption immediately it receives your connection. So, your code will work.

The 587 port is used for Submission (MSA or Mail Submission Agent) which works like the port 25. The server accepts your connection and doesn't activate the encryption. If you want an encrypted connection on the port 587, you must connect on it without encryption, you must start to dialog with the server (with EHLO) and after that you must ask the server to start the encrypted connection using the STARTTLS command. The server starts the encryption and now you can start as well the encryption on your client.

So, in few words, you can not use :

<?php $fp = fsockopen("tls://mail.example.com", 587, $errno, $errstr);  ?>

but you can use:

 <?php $fp = stream_socket_client("mail.example.com:587", $errno, $errstr); ?>

and after you send the STARTTLS command, you can enable the crypto:

<?php stream_socket_enable_crypto($fp, true, STREAM_CRYPTO_METHOD_SSLv23_CLIENT); ?>

P.S. My previous note on this page was totally wrong, so I ask the php.net admin to remove it.

:)
christian at lantian dot eu 16-Sep-2013 08:17
@pablo dot livardo  :  I think that the problem you found is caused by the difference between the client/server encryption methods used.

You tried to access the port 587 using TLS encryption, but the server uses the SSLv3 encryption on this port.

You can communicate with the Google server on port 465 because on this port the communication is encrypted using TLS and your client is configured to recognize the TLS.

So, if you want to connect on the Google server over the port 587, you simply must write:

<?php
$fp = fsockopen("ssl://mail.example.com", 587, $errno, $errstr);
?>

instead of:

<?php
$fp = fsockopen("tls://mail.example.com", 587, $errno, $errstr);
?>

:)
stefan at example dot com 20-Aug-2010 05:42
Actually, PHP is very able to start with an unencrypted connection and then switch to an encrypted one - refer to http://php.net/stream_socket_enable_crypto .
pablo dot livardo at gmail dot com 09-Dec-2009 09:56
I've been having a problem with a TLS connection.

<?php
$fp = fsockopen("tls://mail.example.com", 587, $errno, $errstr);
?>

Which gives me an error of:

SSL operation failed with code 1. OpenSSL Error messages: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number

I believe this is caused by PHP not being able to start with an unencrypted connection and then switch to encryption even though the functionality is built into OpenSSL.

For Google Mail users you can avoid this by using port 465 instead of 587.


Unix Alanı: Unix ve UDG

unix:// ve udg://.

  • unix:///tmp/mysock
  • udg:///tmp/mysock

unix:// aktarımı Unix alanında bir soket akımı bağlantısına erişim sağlar. udg:// ise aynı sokete UDP protokolü kullanılarak erişim sağlar.

Unix alanı soketleri, Genel Ağ soketlerinin tersine bir port numarası gerektirmezler. Bu durumda fsockopen() işlevinin portnum bağımsız değişkenine 0 atanmalıdır.

Bilginize: Unix alanı soketleri Windows'da desteklenmez.

User Contributed Notes

Matthew Fortune 16-Feb-2007 03:03
It appears that fsockopen prior to php5 did not need the unix:// qualifier when opening a unix domain socket:

php4: fsockopen("/tmp/mysocket"......);

php5: fsockopen("unix:///tmp/mysocket"......);

This caught me out when upgrading.


PHP Tür Karşılaştırma Tabloları

Aşağıdaki tablolarda PHP türlerinin ve karşılaştırma işleçlerinin gevşek ve titiz karşılaştırmalarda davranışları gösterilmiştir. Bu ek bölüm ayrıca Tür Dönüşümü bölümü ile de ilgilidir. Bu tablolar çeşitli kullanıcı yorumlarından ve » BlueShoes sitesindeki çalışmadan esinlenerek oluşturulmuştur.

Bu tabloları kullanmadan önce türleri ve anlamlarını anlamış olmak önemlidir. Örneğin, "42" değeri string türünde iken 42 değeri int türündedir. false değeri bool türünde olduğu halde "false" değeri string türündedir.

Bilginize:

HTML Formları tamsayı, gerçek sayı ve mantıksal değerleri aktarmaz; sadece dizgeleri aktarır. Bir dizgenin sayısal olup olmadığını öğrenmek için is_numeric() işlevini kullanabilirsiniz.

Bilginize:

$x tanımsızken if ($x) yazılırsa E_NOTICE seviyesinde bir hata üretilir. Bunun olmaması için empty() veya isset() işlevlerini kullanmanız ve/veya değişkenlerinizi ilklendirmeniz gerekir.

Bilginize:

Bazı sayısal işlemler NAN sabiti ile belirtilen bir değer üretebilir. Bu değerin diğer bir değerle (kendisi dahil, true hariç) sıkı veya gevşek karşılaştırmaları false sonucunu verir. (örneğin, NAN != NAN ve NAN !== NAN) NAN üreten işlemlere örnek olarak sqrt(-1), asin(2) ve asinh(0) verilebilir.

$x ile PHP işlevlerinin karşılaştırmaları
İfade | gettype() | empty() | is_null() | isset() | bool : if($x)
$x = ""; | string | true | false | true | false
$x = null; | NULL | true | true | false | false
var $x; | NULL | true | true | false | false
$x tanımsız | NULL | true | true | false | false
$x = []; | array | true | false | true | false
$x = ['a', 'b']; | array | false | false | true | true
$x = false; | bool | true | false | true | false
$x = true; | bool | false | false | true | true
$x = 1; | int | false | false | true | true
$x = 42; | int | false | false | true | true
$x = 0; | int | true | false | true | false
$x = -1; | int | false | false | true | true
$x = "1"; | string | false | false | true | true
$x = "0"; | string | true | false | true | false
$x = "-1"; | string | false | false | true | true
$x = "php"; | string | false | false | true | true
$x = "true"; | string | false | false | true | true
$x = "false"; | string | false | false | true | true

== ile gevşek karşılaştırmalar
 | true | false | 1 | 0 | -1 | "1" | "0" | "-1" | null | [] | "php" | ""
true | true | false | true | false | true | true | false | true | false | false | true | false
false | false | true | false | true | false | false | true | false | true | true | false | true
1 | true | false | true | false | false | true | false | false | false | false | false | false
0 | false | true | false | true | false | false | true | false | true | false | false* | false*
-1 | true | false | false | false | true | false | false | true | false | false | false | false
"1" | true | false | true | false | false | true | false | false | false | false | false | false
"0" | false | true | false | true | false | false | true | false | false | false | false | false
"-1" | true | false | false | false | true | false | false | true | false | false | false | false
null | false | true | false | true | false | false | false | false | true | true | false | true
[] | false | true | false | false | false | false | false | false | true | true | false | false
"php" | true | false | false | false* | false | false | false | false | false | false | true | false
"" | false | true | false | false* | false | false | false | false | true | false | false | true
* PHP 8.0.0 öncesinde true idi.

=== ile titiz karşılaştırmalar
 | true | false | 1 | 0 | -1 | "1" | "0" | "-1" | null | [] | "php" | ""
true | true | false | false | false | false | false | false | false | false | false | false | false
false | false | true | false | false | false | false | false | false | false | false | false | false
1 | false | false | true | false | false | false | false | false | false | false | false | false
0 | false | false | false | true | false | false | false | false | false | false | false | false
-1 | false | false | false | false | true | false | false | false | false | false | false | false
"1" | false | false | false | false | false | true | false | false | false | false | false | false
"0" | false | false | false | false | false | false | true | false | false | false | false | false
"-1" | false | false | false | false | false | false | false | true | false | false | false | false
null | false | false | false | false | false | false | false | false | true | false | false | false
[] | false | false | false | false | false | false | false | false | false | true | false | false
"php" | false | false | false | false | false | false | false | false | false | false | true | false
"" | false | false | false | false | false | false | false | false | false | false | false | true

User Contributed Notes

Jeroen 14-Jul-2023 04:26
Be aware of the difference between checking the *value* of an array item, and checking the *existence* of an array item:
<?php
$arr = [
  'x' => 0,
  'y' => null,
];

isset($arr['x']); // true, same as isset(0)
isset($arr['y']); // false, same as isset(null)

array_key_exists('y', $arr); // true, though the value is null
array_key_exists('z', $arr); // false
mark at theanti dot social 29-Mar-2018 08:59
There is also 0.0 which is not identical to 0.

  $x = 0.0;
  gettype($x); // double
  empty($x); // true
  is_null($x); //false
  isset($x); // true
  is_numeric($x); // true
  $x ? true : false; // false
  $x == 0; // true
  $x == "0"; // true
  $x == "0.0"; // true
  $x == false; // true
  $x == null; // true
  $x === 0; // false
  $x === false; // false
  $x === null; // false
  $x === "0"; // false
  $x === "0.0"; // false
blue dot hirano at gmail dot com 07-Sep-2014 02:29
The truth tables really ought to be colorized; they're very hard to read as they are right now (just big arrays of TRUE and FALSE).

Also, something to consider: clustering the values which compare similarly (like is done on qntm.org/equality) would make the table easier to read as well. (This can be done simply by hand by rearranging the order of headings to bring related values closer together).
php at benizi dot com 15-Feb-2010 10:31
It's interesting to note that 'empty()' and 'boolean : if($x)'
are paired as logical opposites, as are 'is_null()' and 'isset()'.
edgar at goodforall dot eu 15-Dec-2009 06:55
Some function to write out your own comparisson table in tsv format. Can be easily modified to add more testcases and/or binary functions. It will test all comparables against each other with all functions.

<?php
$funcs = array(
        /* Testing equality */
        'eq' => '==',
        'ne' => '!=',
        'gt' => '>',
        'lt' => '<',
        'ne2' => '<>',
        'lte' => '<=',
        'gte' => '>=',
        /* Testing identity */
        'id' => '===',
        'nid' => '!=='
);
class Test {
        protected $a;
        public $b;
        public function __construct($a,$b){
                $this->a = $a;
                $this->b = $b;
        }
        public function getab(){
                return $this->a.",". $this->b;
        }

}
$tst1 = new Test(1,2);
$tst2 = new Test(1,2);
$tst3 = new Test(2,2);
$tst4 = new Test(1,1);

$arr1 = array(1,2,3);
$arr2 = array(2,3,4);
$arr3 = array('a','b','c','d');
$arr4 = array('a','b','c');
$arr5 = array();

$comp1 = array(
        'ints' => array(-1,0,1,2),
        'floats' => array(-1.1,0.0,1.1,2.0),
        'string' => array('str', 'str1', '', '1'),
        'bools' => array(true, false),
        'null' => array(null),
        'objects' => array($tst1,$tst2,$tst3,$tst4),
        'arrays' => array($arr1, $arr2, $arr3, $arr4, $arr5)
);
$fbody = array();

foreach($funcs as $name => $op){
        $fbody[$name] = create_function('$a,$b', 'return $a ' . $op . ' $b;');
}

$table = array(array('function', 'comp1', 'comp2', 'f comp1 comp2', 'type'));
/* Do comparisons */
$comp2  = array();
foreach($comp1 as $type => $val){
        $comp2[$type] = $val;
}

foreach($comp1 as $key1 => $val1){
        foreach($comp2 as $key2 => $val2){
                addTableEntry($key1, $key2, $val1, $val2);
        }
}
$out = '';
foreach($table as $row){
        $out .= sprintf("%-20s\t%-20s\t%-20s\t%-20s\t%-20s\n", $row[0], $row[1], $row[2], $row[3], $row[4]);
}

print $out;
exit;

function addTableEntry($n1, $n2, $comp1, $comp2){
        global $table, $fbody;
        foreach($fbody as $fname => $func){
                        foreach($comp1 as $val1){
  foreach($comp2 as $val2){
                                        $val = $func($val1,$val2);
                                                $table[] = array($fname, gettype($val1) . ' => ' . sprintval($val1), gettype($val2) .' => ' . sprintval($val2), gettype($val) . ' => ' . sprintval($val), gettype($val1) . "-" . gettype($val2) . '-' . $fname);
                                        }
                        }
        }
}

function sprintval($val){
        if(is_object($val)){
                return 'object-' . $val->getab();
        }
        if(is_array($val)){
                return implode(',', $val);
        }
        if(is_bool($val)){
                if($val){
                        return 'true';
                }
                return 'false';
        }
        return strval($val);
}

?>
frank 14-Aug-2007 03:06
A comparison table for <=,<,=>,> would be nice...
Following are TRUE (tested PHP4&5):
NULL <= -1
NULL <= 0
NULL <= 1
!(NULL >= -1)
NULL >= 0
!(NULL >= 1)
That was a surprise for me (and it is not like SQL, I would like to have the option to have SQL semantics with NULL...).
Jan 29-Dec-2005 11:23
Note that php comparison is not transitive:

"php" == 0 => true
0 == null => true
null == "php" => false
jerryschwartz at comfortable dot com 26-Jul-2005 01:04
In some languages, a boolean is promoted to an integer (with a value of 1 or -1, typically) if used in an expression with an integer. I found that PHP has it both ways:

If you add a boolean with a value of true to an integer with a value of 3, the result will be 4 (because the boolean is cast as an integer).

On the other hand, if you test a boolean with a value of true for equality with an integer with a value of three, the result will be true (because the integer is cast as a boolean).

Surprisingly, at first glance, if you use either < or > as the comparison operator the result is always false (again, because the integer as cast as a boolean, and true is neither greater nor less than true).


Çözümleyici Dizgeciklerinin Listesi

PHP dilinin çeşitli parçaları dahili olarak dizgeciklerle ifade edilir. Geçersiz bir dizgecikler içeren bir kod parçacığı, şuna benzer hatalara neden olabilir: "Parse error: syntax error, unexpected token "==", expecting "(" in script.php on line 10.". Buradaki == dizgeciği dahili olarak T_IS_EQUAL sabiti ile ifade edilir.

Aşağıdaki tabloda tüm dizgecikler listelenmiştir. Bunlar aynı zamanda PHP sabiti olarak da kullanılabilir.

Bilginize: T_* sabitlerinin kullanımı

T_* sabitlerinin değerleri, PHP'nin temel çözümleyici alt yapısına dayalı olarak otomatik üretilir. Yani bir dizgeciğin somut değeri iki PHP sürümü arasında değişebilir. Yani kodunuz PHP sürümleri arasında uyumluluk sağlamak için PHP'nin X.Y.Z sürümünden alınmış özgün T_* değerlerine güvenmemelidir.

T_* sabitlerini çok sayıda PHP sürümü arasında kullanılabilir yapmak için, tanımsız sabitler kullanıcı tarafından uygun bir strateji seçilerek tanımlanabilir: T_* değerlerinden ve özel değerlerden (10000 gibi büyük bir değer kullanmak) yararlanılabilir.

<?php
// PHP 7.4.0 öncesinde, T_FN tanımlı değildi.
defined('T_FN') || define('T_FN', 10001);

Dizgecikler
Dizgecik | Söz dizimi | Gönderim
T_ABSTRACT | abstract | Sınıf Soyutlama
T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG | & | Tür bildirimleri (PHP 8.1.0 ve sonrasında kullanılabilir)
T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG | & | Tür bildirimleri (PHP 8.1.0 ve sonrasında kullanılabilir)
T_AND_EQUAL | &= | atama işleçleri
T_ARRAY | array() | array(), dizi sözdizimi
T_ARRAY_CAST | (array) | tür çarpıtma
T_AS | as | foreach
T_ATTRIBUTE | #[ | Öznitelikler (PHP 8.0.0 ve sonrasında kullanılabilir)
T_BAD_CHARACTER |  | \t (0x09), \n (0x0a) ve \r (0x0d) hariç, ASCII 32'den küçük herşey (PHP 7.4.0 itibariyle kullanılabilir)
T_BOOLEAN_AND | && | mantıksal işleçler
T_BOOLEAN_OR | || | mantıksal işleçler
T_BOOL_CAST | (bool) veya (boolean) | tür çarpıtma
T_BREAK | break | break
T_CALLABLE | callable | callable
T_CASE | case | switch
T_CATCH | catch | İstisnalar
T_CLASS | class | sınıflar ve nesneler
T_CLASS_C | __CLASS__ | sihirli sabitler
T_CLONE | clone | sınıflar ve nesneler
T_CLOSE_TAG | ?> veya %> | HTML'den Kaçmak
T_COALESCE | ?? | karşılaştırma işleçleri
T_COALESCE_EQUAL | ??= | atama işleçleri (PHP 7.4.0 itibariyle kullanılabilir.)
T_COMMENT | // veya # ve /* */ | açıklamalar
T_CONCAT_EQUAL | .= | atama işleçleri
T_CONST | const | sınıf sabitleri
T_CONSTANT_ENCAPSED_STRING | "foo" veya 'bar' | dizge söz dizimi
T_CONTINUE | continue | continue deyimi
T_CURLY_OPEN | {$ | karmaşık değişken çözümlemeli sözdizimi
T_DEC | -- | Arttırım ve Eksiltim İşleçleri
T_DECLARE | declare | declare
T_DEFAULT | default | switch
T_DIR | __DIR__ | sihirli sabitler
T_DIV_EQUAL | /= | atama işleçleri
T_DNUMBER | 0.12, vs. | gerçek sayılar
T_DO | do | do..while
T_DOC_COMMENT | /** */ | PHPDoc tarzı açıklamalar.
T_DOLLAR_OPEN_CURLY_BRACES | ${ | Karmaşık (kaşlı ayraçlı) sözdizimi
T_DOUBLE_ARROW | => | dizi söz dizimi
T_DOUBLE_CAST | (real), (double) veya (float) | tür çarpıtma
T_DOUBLE_COLON | :: | Bakınız: T_PAAMAYIM_NEKUDOTAYIM
T_ECHO | echo | echo
T_ELLIPSIS | ... | işlev bağımsız değişkenleri
T_ELSE | else | else
T_ELSEIF | elseif | elseif
T_EMPTY | empty | empty()
T_ENCAPSED_AND_WHITESPACE | " $a" | dizge değişkenlerinde sabit kısım
T_ENDDECLARE | enddeclare | declare, denetim yapıları için diğer sözdizimi
T_ENDFOR | endfor | for, denetim yapıları için diğer sözdizimi
T_ENDFOREACH | endforeach | foreach, denetim yapıları için diğer sözdizimi
T_ENDIF | endif | if, denetim yapıları için diğer sözdizimi
T_ENDSWITCH | endswitch | switch, denetim yapıları için diğer sözdizimi
T_ENDWHILE | endwhile | while, denetim yapıları için diğer sözdizimi
T_ENUM | enum | Enumerations (PHP 8.1.0 ve sonrasında kullanılabilir)
T_END_HEREDOC |  | yorumlu metinler
T_EVAL | eval() | eval()
T_EXIT | exit veya die | exit(), die()
T_EXTENDS | extends | extends, sınıflar ve nesneler
T_FILE | __FILE__ | sihirli sabitler
T_FINAL | final | final Anahtar Sözcüğü
T_FINALLY | finally | İstisnalar
T_FN | fn | ok işlevleri (PHP 7.4.0 itibariyle kullanılabilir.)
T_FOR | for | for
T_FOREACH | foreach | foreach
T_FUNCTION | function | işlevler
T_FUNC_C | __FUNCTION__ | sihirli sabitler
T_GLOBAL | global | değişken etki alanı
T_GOTO | goto | goto deyimi
T_HALT_COMPILER | __halt_compiler() | __halt_compiler
T_IF | if | if
T_IMPLEMENTS | implements | Nesne Arayüzleri
T_INC | ++ | arttırım ve eksiltim işleçleri
T_INCLUDE | include | include
T_INCLUDE_ONCE | include_once | include_once
T_INLINE_HTML |  | PHP dışı metin
T_INSTANCEOF | instanceof | tür işleçleri
T_INSTEADOF | insteadof | Nitelikler
T_INTERFACE | interface | Nesne Arayüzleri
T_INT_CAST | (int) or (integer) | tür çarpıtma
T_ISSET | isset() | isset()
T_IS_EQUAL | == | karşılaştırma işleçleri
T_IS_GREATER_OR_EQUAL | >= | karşılaştırma işleçleri
T_IS_IDENTICAL | === | karşılaştırma işleçleri
T_IS_NOT_EQUAL | != or <> | karşılaştırma işleçleri
T_IS_NOT_IDENTICAL | !== | karşılaştırma işleçleri
T_IS_SMALLER_OR_EQUAL | <= | karşılaştırma işleçleri
T_LINE | __LINE__ | sihirli sabitler
T_LIST | list() | list()
T_LNUMBER | 123, 012, 0x1ac, vs. | tamsayılar
T_LOGICAL_AND | and | mantıksal işleçler
T_LOGICAL_OR | or | mantıksal işleçler
T_LOGICAL_XOR | xor | mantıksal işleçler
T_MATCH | match | match (PHP 8.0.0 ve sonrasında kullanılabilir)
T_METHOD_C | __METHOD__ | sihirli sabitler
T_MINUS_EQUAL | -= | atama işleçleri
T_MOD_EQUAL | %= | atama işleçleri
T_MUL_EQUAL | *= | atama işleçleri
T_NAMESPACE | namespace | isim alanları
T_NAME_FULLY_QUALIFIED | \App\Namespace | namespaces (PHP 8.0.0 ve sonrasında kullanılabilir)
T_NAME_QUALIFIED | App\Namespace | namespaces (PHP 8.0.0 ve sonrasında kullanılabilir)
T_NAME_RELATIVE | namespace\Namespace | namespaces (PHP 8.0.0 ve sonrasında kullanılabilir)
T_NEW | new | sınıflar ve nesneler
T_NS_C | >__NAMESPACE__ | isim alanları.
T_NS_SEPARATOR | \ | isim alanları (PHP 5.3.0 ve sonrasında mevcuttur.)
T_NUM_STRING | "$a[0]" | dizge içinde sayısal dizi indisi
T_NULLSAFE_OBJECT_OPERATOR | ?-> | sınıflar ve nesneler
T_OPEN_TAG | <?php, <? veya <% | HTML'den Kaçmak
T_OPEN_TAG_WITH_ECHO | <?= veya <%= | HTML'den Kaçmak
T_OR_EQUAL | |= | atama işleçleri
T_PAAMAYIM_NEKUDOTAYIM | :: | ::. Ayrıca, T_DOUBLE_COLON olarak tanımlıdır.
T_PLUS_EQUAL | += | atama işleçleri
T_POW | ** | aritmetik işleçleri
T_POW_EQUAL | **= | atama işleçleri
T_PRINT | print | print
T_PRIVATE | private | sınıflar ve nesneler
T_PROTECTED | protected | sınıflar ve nesneler
T_PUBLIC | public | sınıflar ve nesneler
T_READONLY | readonly | classes and objects (PHP 8.1.0 ve sonrasında kullanılabilir.)
T_REQUIRE | require | require
T_REQUIRE_ONCE | require_once | require_once
T_RETURN | return | dönüş değerleri
T_SL | << | bitsel işleçler
T_SL_EQUAL | <<= | atama işleçleri
T_SPACESHIP | <=> | karşılaştırma işleçleri
T_SR | >> | bitsel işleçler
T_SR_EQUAL | >>= | atama işleçleri
T_START_HEREDOC | <<< | yorumlu metinler
T_STATIC | static | değişken etki alanı
T_STRING | parent, self, vs. | parent ve self gibi anahtar sözcükler, işlev isimleri ve sınıf isimleri gibi belirteçlerle eşleşir. Ayrıca bakınız: T_CONSTANT_ENCAPSED_STRING.
T_STRING_CAST | (string) | tür çarpıtma
T_STRING_VARNAME | "${a | karmaşık değişken çözümlemeli sözdizimi
T_SWITCH | switch | switch
T_THROW | Throw | İstisnalar
T_TRAIT | trait | Nitelikler
T_TRAIT_C | __TRAIT__ | __TRAIT__
T_TRY | Try | İstisnalar
T_UNSET | unset() | unset()
T_UNSET_CAST | (unset) | tür çarpıtma
T_USE | use | isim alanları
T_VAR | var | sınıflar ve nesneler
T_VARIABLE | $foo | değişkenler
T_WHILE | while | while, do..while
T_WHITESPACE | \t \r\n |
T_XOR_EQUAL | ^= | atama işleçleri
T_YIELD | yield | üreteçler
T_YIELD_FROM | yield from | üreteçler

Ayrıca bakınız: token_name().

User Contributed Notes

daniel_rhodes at yahoo dot co dot uk 28-Mar-2024 08:41
In the above table of Tokens, it's worth noting that the bracketed text of "available as of PHP x.y.z" can mean one of two things:

[] This *parser token* is available as of PHP x.y.z
    {eg. T_BAD_CHARACTER, T_NAME_QUALIFIED}

[] This *language feature* is available as of PHP x.y.z
    {eg. T_ATTRIBUTE, T_COALESCE_EQUAL}
fgm at osinet dot fr 22-Sep-2008 01:08
T_ENCAPSED_AND_WHITESPACED is returned when parsing strings with evaluated content, like "some $value" or this example from the Strings reference page:

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

This last example is tokenized as:
T_ECHO
  echo
T_WHITESPACE
  %20 (a space character)
T_START_HEREDOC
  <<
T_ENCAPSED_AND_WHITESPACE
  My name is "
T_VARIABLE
  $name
T_ENCAPSED_AND_WHITESPACE
  ". I am printing some
T_VARIABLE
  $foo
T_OBJECT_OPERATOR
  ->
T_STRING
  foo
T_ENCAPSED_AND_WHITESPACE
  . Now, I am printing some
T_CURLY_OPEN
  {
T_VARIABLE
  $foo
T_OBJECT_OPERATOR
  ->
T_STRING
  bar
(terminal)
  [
T_LNUMBER
  1
(terminal)
  ]
(terminal)
  }
T_ENCAPSED_AND_WHITESPACE
  . This should print a capital 'A': \x41
T_END_HEREDOC
  EOT
(terminal)
  ;
nathan at unfinitydesign dot com 22-Sep-2008 05:52
T_ENCAPSED_AND_WHITESPACE is whitespace which intersects a group of tokens. For example, an "unexpected T_ENCAPSED_AND_WHITESPACE" error is produced by the following code:

<?php
$main_output_world = 'snakes!';
echo('There are' 10 $main_output_world);
?>

Note the missing concatenation operator between the two strings leads to the whitespace error that is so named above. The concatenation operator instructs PHP to ignore the whitespace between the two code tokens (the so named "encapsed" data"), rather than parse it as a token itself.

The correct code would be:

<?php
$main_output_world = 'snakes!';
echo('There are' . 10 . $main_output_world);
?>

Note the addition of the concatenation operator between each token.


Kullanıcı Alanı İsimlendirme Kılavuzu

İçindekiler

  • Küresel İsim alanı
  • Kurallar
  • İpuçları

Bu belge, PHP kullanıcısı tarafından betimleyicilerin en iyi nasıl seçilebileceğini açıklayan bir kılavuzdur. Bir kodun küresel isim alanını oluşturan isimler seçilirken, bunların gelecekteki PHP sürümlerinde kullanılması olası isimlerle çakışmayacak şekilde seçilmesi için aşağıdaki açıklamaları hesaba katmak önem kazanmaktadır.

User Contributed Notes

There are no user contributed notes for this page.


Küresel İsim alanı

Küresel isim alanında kullanılabilecek oluşumlar:

  • işlevler

  • sınıflar

  • arayüzler

  • sabitler (sınıf sabitleri hariç)

  • işlev/yöntemlerin dışında tanımlanmış değişkenler

User Contributed Notes

There are no user contributed notes for this page.


Kurallar

Aşağıdaki listede, PHP'nin yeni yerleşik betimleyicileri için isim seçerken projeye tanıdığı haklar belirtilmiştir. Bu liste resmi kodlama standartlarından (» CODING STANDARDS) alıntıdır:

  • PHP tepe seviye isim alanını kendine ayırmış olsa da açıkça uyumsuz olmaktan kaçınılmaya ve titiz bir şekilde daha açıklayıcı isimler bulunmaya çalışılır.

  • İşlev isimlerinde sözcükler arasında altçizgi imleri kullanılırken sınıf isimlerinde hörgüçlü ve Pascal yazım tarzlarının ikisi de kullanılır.

  • PHP, eklentilerin küresel betimleyicilerinin önüne eklenti isimlerini getirir (geçmişten kalma bazı istisnalar vardır). Örnekler:

    • curl_close()

    • mysql_query()

    • PREG_SPLIT_DELIM_CAPTURE

    • new DOMDocument()

    • strpos() (geçmişte yapılan bir yanlışlık)

    • new SplFileObject()

  • Yineleyicilerin ve istisnaların betimleyicilerinin ardına "Iterator" ve "Exception" getirilir. Örnekler:

    • ArrayIterator

    • LogicException

  • PHP, __ ile başlayan tüm betimleyicileri kendine ayırmıştır. Belgelenmiş sihirli işlevselliği kullanmak dışında __ ile başlayan betimleyiciler kullanmamanızı öneririz. Örnekler:

    • __get()

    • __autoload()

User Contributed Notes

There are no user contributed notes for this page.


İpuçları

Geleceğe yönelik kod yazmak için, genel isim alanına çok sayıda değişken, işlev veya sınıf yerleştirmemeniz önerilir. Bu, 3. taraf koduyla adlandırma çakışmalarının yanı sıra gelecekte dile yapılacak olası eklemeleri de önleyecektir.

İşlevlerin ve sınıfların adlandırma çakışmalarını önlemenin yaygın bir yolu, bunları kendi isim alanlarına eklemektir.

<?php
namespace Projem;

function işlevim() {
return true;
}

\Projem\işlevim();

Bu, halihazırda kullanılan isim alanlarını takip etmenizi gerektiriyor, ancak bir isim alanına karar verdiğinizde, tekrar çatışmaları düşünmek zorunda kalmadan tüm işlevleri ve sınıfları ona ekleyebilirsiniz.

Üçüncü taraf koduyla adlandırma çakışmalarını önlemek için genel kapsama eklenen değişkenlerin sayısını sınırlamak en iyi uygulama olarak kabul edilir.

Bilginize: Değişken etki alanı

PHP'nin etki alanı belirleme kuralları nedeniyle, işlev ve yöntemlerin içinde tanımlanan değişkenler genel kapsamda olmadığından küresel etki alanında tanımlanan diğer değişkenlerle çakışamaz.

User Contributed Notes

There are no user contributed notes for this page.


About the manual

İçindekiler

  • Formats
  • About user notes
  • How to read a function definition (prototype)
  • PHP versions documented in this manual
  • How to find more information about PHP
  • How to help improve the documentation
  • How we generate the formats
  • Translations

User Contributed Notes

There are no user contributed notes for this page.


Formats

The PHP manual is provided in several formats. These formats can be divided into two groups: online readable formats, and downloadable packages.

Bilginize:

Some publishers have made available printed versions of this manual. We cannot recommend any of those, as they tend to become out-of-date very quickly.

The manual can be read online at the » PHP.net website. The online version of the PHP manual has currently two CSS stylesheets, web friendly and a printer-friendly stylesheet.

Two notable advantages of the online manual over most of the offline formats is the integration of user-contributed notes and the » URL shortcuts that may be used to get to the desired manual parts quickly. An obvious disadvantage is the requirement to be online to view this edition of the manual.

There are several offline formats of the manual, and the most appropriate format for depends on the operating system, and personal reading style. For information on how the manual is generated in so many formats, read the 'How we generate the formats' section of this appendix.

The most cross-platform format of the manual is the HTML version. This is provided both as a single HTML file and as a package of individual files for each section (which results in a collection of several thousand files). We provide these versions compressed, so a decompression utility is required to retrieve the files contained within the archives.

For Windows platforms, the Windows HTML Help version of the manual enhances the HTML format for use with the Windows HTML Help application. This version provides full-text search, a full index, and bookmarking. Many popular Windows PHP development environments also integrate with this version of the documentation to provide easy access. CHM viewers for Linux desktops are also available. Check out » xCHM or » GnoCHM.

There is also an » extended CHM version available, which is updated less frequently, but provides many additional features. It will only work on Microsoft Windows though, because of the technologies used to build the help pages.

User Contributed Notes

There are no user contributed notes for this page.


About user notes

The user-contributed notes play an important role in the development of this manual. By allowing readers of the manual to contribute examples, caveats, and further clarifications from their browser, we are able to incorporate that feedback into the main text of the manual. And until the notes have been incorporated, they may be viewed in their submitted form online, and in some of the offline formats.

Bilginize:

The user-contributed notes are not moderated before they appear online, so the quality of the writing or code examples, and even the veracity of the contribution, cannot be guaranteed. (Not that there is any guarantee of the quality or accuracy of the manual text itself.)

Bilginize:

For the purposes of license coverage the user-contributed notes are considered part of the PHP manual, and are therefore covered by the same license that covers this documentation (Creative Commons Attribution at the moment). For more details see the Manual's Copyright page.

User Contributed Notes

There are no user contributed notes for this page.


How to read a function definition (prototype)

Each function in the manual is documented for quick reference. Knowing how to read and understand the text will make learning PHP much easier. Rather than relying on examples or cut/paste, everyone should know how to read function definitions (prototypes). Let's begin:

Bilginize: Prerequisite: Basic understanding of types

Although PHP is a loosely typed language, it's important to have a basic understanding of types as they have important meaning.

Function definitions tell us what type of value is returned. Let's use the definition for strlen() as our first example:

strlen

(PHP 4, PHP 5, PHP 7)
strlen -- Get string length

Description
strlen ( string $string ) : int

Returns the length of given string.

Explanation of a function definition
Part | Description
strlen | The function name.
(PHP 4, PHP 5, PHP 7) | strlen() has been around in all versions of PHP 4, 5 and 7
( string $string ) | The first (and in this case the only) parameter/argument for this function is named string, and it's a string.
int | Type of value this function returns, which is an int (i.e. the length of a string is measured in numbers).

We could rewrite the above function definition in a generic way:

      function name    ( parameter type   parameter name ) : returned type

Many functions take on multiple parameters, such as in_array(). Its prototype is as follows:

      in_array ( mixed $needle, array $haystack , bool $strict = false ) : bool

What does this mean? in_array() returns a boolean value, true on success (if the needle was found in the haystack) başarısızlık durumunda false döner (if the needle was not found in the haystack). The first parameter is named needle and it can be of many different types, so we call it "mixed". This mixed needle (what we're looking for) can be either a scalar value (string, integer, or float), or an array. haystack (the array we're searching in) is the second parameter. The third optional parameter is named strict. All optional parameters have default values; if the default value is unknown, it is shown as ?. The manual states that the strict parameter defaults to boolean false. See the manual page on each function for details on how they work.

In addition the & (ampersand) symbol prepended to a function parameter allows the parameter to be passed by reference, as seen below:

       preg_match ( string $pattern , string $subject , array &$matches = null,
       int $flags = 0 , int $offset = 0 ) : int|false

In this example, we can see the third optional parameter &$matches will be passed as reference.

There are also functions with more complex PHP version information. Take html_entity_decode() as an example:

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

This means that this function has only been available in a released version since PHP 4.3.0.

User Contributed Notes

There are no user contributed notes for this page.


PHP versions documented in this manual

The manual contains information about past, current, and future versions of PHP. Changes in behaviour are documented as notes, changelogs, and inline text within the manual pages. The earliest documented version is PHP 7.0.0.

When documentation exists for the latest (unreleased) developmental versions of PHP, it will be labeled as either "available in Git" or "development version." And while these changes should be planned for, in rare cases they may change.

All development takes place in Git and may be checked out as described within the » anonymous Git access page.

And to clarify, the manual will refer to major, minor and point PHP releases. Using PHP 7.3.1 as an example, the 7 refers to the major version, 3 to minor, and 1 is the point release. Typically PHP only adds new features to major and minor releases, and fixes bugs in point releases. However, this convention is not always true.

Also note that the PHP manual is written in present tense, not future tense, even for documented features that are not yet available. The reason for this is so the manual can stand the test of time, thus not require tedious grammar updates with every PHP release.

Many times the PHP manual lists "Default Values" for PHP directives. These values are based on how PHP behaves without a php.ini configuration file, so this may differ from values found in the distributed php.ini-development and php.ini-production files. They also refer to the latest version of PHP, although changelog entries do mention past values. See the PHP directive appendix for details regarding these values and changes.

User Contributed Notes

There are no user contributed notes for this page.


How to find more information about PHP

This manual does not attempt to provide instruction about general programming practices. First-time - or even just beginning - programmers may find it difficult to learn how to program in PHP using this manual exclusively. Instead, seek out a text more oriented towards beginners.

There are a number of active mailing lists for discussion on all aspects of programming with PHP. If stuck with a problem, consider using these lists. For support options, including mailing lists, view » the PHP.net support page.

User Contributed Notes

There are no user contributed notes for this page.


How to help improve the documentation

There are several ways everyone can help improve this documentation.

If an error is found in this manual, in any language, please report them using the issue tracker of the respective language repository at » https://github.com/php; for instance, errors in the English manual should be reported at » https://github.com/php/doc-en/issues. All documentation related problems, including those about manual formats, should be submitted as bug reports.

Bilginize:

Please don't abuse the issue trackers by submitting requests for help. Instead, use one of the many » support options.

By contributing notes, users may provide additional examples, caveats, and clarifications for other readers. But please do not submit bug reports using the annotation system. For details, see the section titled 'About user notes'.

It is also possible to submit pull requests to the » Github mirror of the documentation repository.

The PHP manual is translated into many languages. Knowing English and a foreign language allows for another way to help improve the PHP manual by working with a translation team. For information about starting a new translation, or helping a currently translated version, please read » http://doc.php.net/tutorial/.

The PHP Documentation Project also has an IRC channel where many manual authors hang out. Stop by #php.doc on irc.efnet.org and discuss ways to improve the PHP documentation.

User Contributed Notes

There are no user contributed notes for this page.


How we generate the formats

This manual is written in XML using the » DocBook XML DTD, using » PhD (The [PH]P based [D]ocBook renderer) for maintenance and formatting.

Using XML as a source format gives the ability to generate many output formats from the source files, while only maintaining one source document for all formats. The tool used for formatting the online manual is » PhD. We use » Microsoft HTML Help Workshop to generate the Windows HTML Help format of the manual, and of course PHP itself to do some additional conversions and formatting.

The PHP manual is generated in various languages and formats, see » https://www.php.net/docs.php for additional details. The XML source code may be downloaded from git and viewed at » https://github.com/php/doc-en.

User Contributed Notes

There are no user contributed notes for this page.


Translations

The PHP manual is available not only in various formats, but also in various languages. The text of the manual is first written in English, then teams of people across the world take care of translating it to their native languages. If a translation for a specified function or chapter has not yet been made, the manual's build system falls back to the English version of it.

People involved in the translations start from the XML source code available from » https://github.com/php/doc-en and from it they translate to their mother language. They do not use the generated versions (like HTML or plain text) as it's the build system that takes care of the conversions from XML to human readable formats.

Bilginize:

To help translate the documentation, please get in touch with the translation/documentation team by subscribing to the phpdoc mailing list: send an empty mail to » phpdoc+subscribe@lists.php.net. The mailing list address is phpdoc@lists.php.net. State in the message an interest in translating the manual and someone will reply with feedback on moving forward by helping start a new language translation, or by contacting the existing team for the desired language.

At the moment the manual is available, partly or not, in over 10 languages.

They may all be downloaded here: » https://www.php.net/docs.php.

User Contributed Notes

There are no user contributed notes for this page.


Creative Commons Attribution 3.0

THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.

BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.

1. Definitions

  1. "Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License.
  2. "Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License.
  3. "Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership.
  4. "Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License.
  5. "Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work.
  6. "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation.
  7. "Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images.
  8. "Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium.

2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws.

3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below:

  1. to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections;
  2. to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified.";
  3. to Distribute and Publicly Perform the Work including as incorporated in Collections; and,
  4. to Distribute and Publicly Perform Adaptations.

  5. For the avoidance of doubt:

    1. Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License;
    2. Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and,
    3. Voluntary License Schemes. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License.

The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved.

4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions:

  1. You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(b), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(b), as requested.
  2. If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and (iv) , consistent with Section 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4 (b) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties.
  3. Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise.

5. Representations, Warranties and Disclaimer

UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.

6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

7. Termination.

  1. This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License.
  2. Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above.

8. Miscellaneous

  1. Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License.
  2. Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License.
  3. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
  4. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent
  5. This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You.
  6. The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law.

User Contributed Notes

There are no user contributed notes for this page.


Genel Dizin

İçindekiler

  • İşlevler ve Yöntemler Dizini
  • Örnekler Dizini

User Contributed Notes

There are no user contributed notes for this page.


İşlevler ve Yöntemler Dizini

Kılavuzdaki tüm işlevler ve yöntemlerin bir listesi

a b c d e f g h i j k l m n o p q r s t u v w x y z _

  • a
    • abs - Absolute value
    • acos - Arc cosine
    • acosh - Inverse hyperbolic cosine
    • addcslashes - Dizgeye C tarzı öncelem uygular
    • addslashes - Özel karakterlerin önüne tersbölü yerleştirir
    • AllowDynamicProperties::__construct - AllowDynamicProperties özniteliğinin yeni bir örneğini oluşturur
    • apache_child_terminate - Bu istekten sonra Apache sürecini sonlandırır
    • apache_getenv - Bir Apache ortam değişkeninin değerini döndürür
    • apache_get_modules - Yüklü Apache modüllerinin listesini verir
    • apache_get_version - Apache sürümünü getirir
    • apache_lookup_uri - Verilen URI için kısmi bir istekte bulunur ve hakkındaki tüm bilgileri döndürür
    • apache_note - Apache istek notlarını alır veya atar
    • apache_request_headers - Tüm HTTP istek başlıklarını alır
    • apache_response_headers - Tüm HTTP yanıt başlıklarını alır
    • apache_setenv - Bir Apache ortam değişkeni atar
    • APCUIterator::current - Get current item
    • APCUIterator::getTotalCount - Get total count
    • APCUIterator::getTotalHits - Get total cache hits
    • APCUIterator::getTotalSize - Get total cache size
    • APCUIterator::key - Get iterator key
    • APCUIterator::next - Move pointer to next item
    • APCUIterator::rewind - Rewinds iterator
    • APCUIterator::valid - Checks if current position is valid
    • APCUIterator::__construct - Constructs an APCUIterator iterator object
    • apcu_add - Cache a new variable in the data store
    • apcu_cache_info - Retrieves cached information from APCu's data store
    • apcu_cas - Updates an old value with a new value
    • apcu_clear_cache - Clears the APCu cache
    • apcu_dec - Decrease a stored number
    • apcu_delete - Removes a stored variable from the cache
    • apcu_enabled - Whether APCu is usable in the current environment
    • apcu_entry - Atomically fetch or generate a cache entry
    • apcu_exists - Checks if entry exists
    • apcu_fetch - Fetch a stored variable from the cache
    • apcu_inc - Increase a stored number
    • apcu_key_info - Get detailed information about the cache key
    • apcu_sma_info - Retrieves APCu Shared Memory Allocation information
    • apcu_store - Cache a variable in the data store
    • AppendIterator::append - Appends an iterator
    • AppendIterator::current - Gets the current value
    • AppendIterator::getArrayIterator - Gets the ArrayIterator
    • AppendIterator::getIteratorIndex - Gets an index of iterators
    • AppendIterator::key - Gets the current key
    • AppendIterator::next - Moves to the next element
    • AppendIterator::rewind - Rewinds the Iterator
    • AppendIterator::valid - Checks validity of the current element
    • AppendIterator::__construct - Constructs an AppendIterator
    • array - Bir dizi oluşturur
    • ArrayAccess::offsetExists - Bir konumun mevcut olup olmadığına bakar
    • ArrayAccess::offsetGet - Konumdaki değeri döndürür
    • ArrayAccess::offsetSet - Belirtilen konuma bir değer atar
    • ArrayAccess::offsetUnset - Belirtilen konum boşaltılır
    • ArrayIterator::append - Append an element
    • ArrayIterator::asort - Sort entries by values
    • ArrayIterator::count - Count elements
    • ArrayIterator::current - Return current array entry
    • ArrayIterator::getArrayCopy - Get array copy
    • ArrayIterator::getFlags - Get behavior flags
    • ArrayIterator::key - Return current array key
    • ArrayIterator::ksort - Sort entries by keys
    • ArrayIterator::natcasesort - Sort entries naturally, case insensitive
    • ArrayIterator::natsort - Sort entries naturally
    • ArrayIterator::next - Move to next entry
    • ArrayIterator::offsetExists - Check if offset exists
    • ArrayIterator::offsetGet - Get value for an offset
    • ArrayIterator::offsetSet - Set value for an offset
    • ArrayIterator::offsetUnset - Unset value for an offset
    • ArrayIterator::rewind - Rewind array back to the start
    • ArrayIterator::seek - Seek to position
    • ArrayIterator::serialize - Serialize
    • ArrayIterator::setFlags - Set behaviour flags
    • ArrayIterator::uasort - Sort with a user-defined comparison function and maintain index association
    • ArrayIterator::uksort - Sort by keys using a user-defined comparison function
    • ArrayIterator::unserialize - Unserialize
    • ArrayIterator::valid - Check whether array contains more entries
    • ArrayIterator::__construct - Construct an ArrayIterator
    • ArrayObject::append - Appends the value
    • ArrayObject::asort - Sort the entries by value
    • ArrayObject::count - Get the number of public properties in the ArrayObject
    • ArrayObject::exchangeArray - Exchange the array for another one
    • ArrayObject::getArrayCopy - Creates a copy of the ArrayObject
    • ArrayObject::getFlags - Gets the behavior flags
    • ArrayObject::getIterator - Create a new iterator from an ArrayObject instance
    • ArrayObject::getIteratorClass - Gets the iterator classname for the ArrayObject
    • ArrayObject::ksort - Sort the entries by key
    • ArrayObject::natcasesort - Sort an array using a case insensitive "natural order" algorithm
    • ArrayObject::natsort - Sort entries using a "natural order" algorithm
    • ArrayObject::offsetExists - Returns whether the requested index exists
    • ArrayObject::offsetGet - Returns the value at the specified index
    • ArrayObject::offsetSet - Sets the value at the specified index to newval
    • ArrayObject::offsetUnset - Unsets the value at the specified index
    • ArrayObject::serialize - Serialize an ArrayObject
    • ArrayObject::setFlags - Sets the behavior flags
    • ArrayObject::setIteratorClass - Sets the iterator classname for the ArrayObject
    • ArrayObject::uasort - Sort the entries with a user-defined comparison function and maintain key association
    • ArrayObject::uksort - Sort the entries by keys using a user-defined comparison function
    • ArrayObject::unserialize - Unserialize an ArrayObject
    • ArrayObject::__construct - Construct a new array object
    • array_change_key_case - Bir dizideki tüm anahtarların harf büyüklüğünü değiştirir
    • array_chunk - Bir diziyi belli uzunlukta bölümlere ayırır
    • array_column - Dizinin bir sütunundaki değerlerle döner
    • array_combine - Anahtarlar için bir dizi, değerler için ise başka bir dizi kullanarak bir ilişkisel dizi oluşturur
    • array_count_values - Bir dizideki her farklı değerlerle ilgili oluşumları sayar
    • array_diff - Dizilerin farkını hesaplar
    • array_diff_assoc - Dizilerin farkını hesaplarken ek olarak indisleri de karşılaştırır
    • array_diff_key - Dizilerin farkını hesaplarken indisleri karşılaştırır
    • array_diff_uassoc - Dizilerin farkını hesaplarken ek olarak bir geriçağırım işlevi üzerinden indisleri de karşılaştırır
    • array_diff_ukey - Karşılaştırma için bir geriçağırım işlevi kullanarak dizilerin farkını hesaplar
    • array_fill - Bir diziyi değerlerle doldurur
    • array_fill_keys - Anahtarları belirtilen diziyi değerlerle doldurur
    • array_filter - Bir dizinin elemanlarını bir geriçağırım işleviyle süzgeçten geçirir
    • array_flip - Bir dizideki anahtarlarla değerleri yer değiştirir
    • array_intersect - Dizilerin kesişimini hesaplar
    • array_intersect_assoc - Dizilerin kesişimini hesaplarken ek olarak indisleri de karşılaştırır
    • array_intersect_key - Karşılaştırma için anahtarları kullanarak dizilerin kesişimini hesaplar
    • array_intersect_uassoc - Dizilerin kesişimini hesaplarken ek olarak bir geriçağırım işlevi üzerinden indisleri de karşılaştırır
    • array_intersect_ukey - Anahtarları karşılaştırmak için bir geriçağırım işlevi kullanarak dizilerin kesişimini hesaplar
    • array_is_list - Belirtilen dizi bir liste mi diye bakar
    • array_keys - Bir dizideki tüm anahtarları veya bir anahtar altkümesini döndürür
    • array_key_exists - Belirtilen anahtar veya indis dizide var mı diye bakar
    • array_key_first - Dizinin ilk anahtarı ile döner
    • array_key_last - Dizinin son anahtarı ile döner
    • array_map - Belirtilen dizilerin elemanlarına geriçağırım işlevini uygular
    • array_merge - Belirtilen dizileri ardarda ekleyerek yeni bir dizi oluşturur
    • array_merge_recursive - Bir veya daha fazla sayıda diziyi ardarda ekleyerek yeni bir dizi oluşturur
    • array_multisort - Çok sayıda diziyi veya çok boyutlu dizileri sıralar
    • array_pad - Dizi boyutunu belirtilen boyuta çıkarırken, yeni elemanlara belirtilen değeri yerleştirir
    • array_pop - Dizinin sonundaki elemanı diziden çıkartır
    • array_product - Bir dizideki değerlerin çarpımını bulur
    • array_push - Belli sayıda elemanı dizinin sonuna ekler
    • array_rand - Bir diziden belli sayıda rasgele anahtar döndürür
    • array_reduce - Bir geriçağırım işlevini dizinin bütün elemanlarına tek tek uygulayıp sonucu döndürür
    • array_replace - İlk dizinin elemanlarını aktarılan dizilerden günceller
    • array_replace_recursive - İlk dizinin elemanlarını aktarılan dizilerden ardışık olarak günceller
    • array_reverse - Diziyi tersine sıralayıp döndürür
    • array_search - Bir dizide belirtilen değeri arar ve bulursa ilgili ilk anahtarı döndürür
    • array_shift - Dizini başlangıcından bir eleman çeker
    • array_slice - Bir dizinin belli bir bölümünü döndürür
    • array_splice - Bir dizinin belli bir bölümünü silip yerine başka şeyler koyar
    • array_sum - Bir dizideki değerlerin toplamını hesaplar
    • array_udiff - Veri karşılaştırması için bir geriçağırım işlevi kullanarak diziler arasındaki farkı bulur
    • array_udiff_assoc - Veri karşılaştırması için bir geriçağırım işlevi kullanarak diziler arasındaki farkı indislerine de bakarak bulur
    • array_udiff_uassoc - Veri ve indis karşılaştırması için bir geriçağırım işlevi kullanarak diziler arasındaki farkı indislerine de bakarak bulur
    • array_uintersect - Veriyi bir geriçağırım işleviyle karşılaştırarak dizilerin kesişimini hesaplar
    • array_uintersect_assoc - Veriyi bir geriçağırım işleviyle karşılaştırarak dizilerin kesişimini hesaplarken ek olarak indislere de bakar
    • array_uintersect_uassoc - Değerleri ve indisleri farklı geriçağırım işlevleriyle karşılaştırarak dizilerin kesişimini hesaplarken ek olarak indislere de bakar
    • array_unique - Diziden yinelenen değerleri siler
    • array_unshift - Bir dizinin başlangıcına bir veya daha fazla eleman ekler
    • array_values - Bir dizinin tüm değerlerini döndürür
    • array_walk - Bir dizinin her üyesine kullanıcı tanımlı bir işlevi uygular
    • array_walk_recursive - Bir dizinin ardışık olarak her üyesine kullanıcı tanımlı bir işlevi uygular
    • arsort - Bir dizinin değerlerini anahtarlarıyla ilişkilerini bozmadan büyükten küçüğe doğru sıralar
    • asin - Arc sine
    • asinh - Inverse hyperbolic sine
    • asort - Bir dizinin değerlerini anahtarlarıyla ilişkilerini bozmadan küçükten büyüğe doğru sıralar
    • assert - Savın doğruluğuna bakar
    • assert_options - Çeşitli kararlılık denetim seçeneklerini açar/kapar
    • atan - Arc tangent
    • atan2 - Arc tangent of two variables
    • atanh - Inverse hyperbolic tangent
    • Attribute::__construct - Yeni bir öznitelik (Attribute nesnesi) örnekler
  • b
    • BackedEnum::from - Belirtilen değeri sayılama nesnesine eşler
    • BackedEnum::tryFrom - Belirtilen değeri sayılama nesnesine eşler, yoksa null döner
    • base64_decode - MIME base64 ile kodlanmış verinin kodunu açar
    • base64_encode - Veriye MIME base64 kodlaması uygular
    • basename - Dosya yolunun ucundaki dosya ismi bileşenini döndürür
    • BaseResult::getWarnings - Fetch warnings from last operation
    • BaseResult::getWarningsCount - Fetch warning count from last operation
    • base_convert - Convert a number between arbitrary bases
    • bcadd - İki keyfi duyarlıklı sayıyı toplar
    • bccomp - İki keyfi duyarlıklı sayıyı karşılaştırır
    • bcdiv - İki keyfi duyarlıklı sayıyı böler
    • bcmod - Keyfi duyarlıklı sayılarda bölme işleminden kalanı bulur
    • bcmul - İki keyfi duyarlıklı sayıyı çarpar
    • bcpow - Keyfi duyarlıklı sayılar için üs alma işlemi yapar
    • bcpowmod - Önce bir keyfi duyarlıklı sayının diğerine göre üs alma işlemini yapar, sonra sonucun modüle göre kalanını bulur
    • bcscale - Bütün bc matematik işlevleri için öntanımlı basamak bağımsız değişkenini tanımlar
    • bcsqrt - Keyfi duyarlıklı bir sayının karekök alma işlemini yapar
    • bcsub - Keyfi duyarlıklı sayılar arasında çıkartma işlemi yapar
    • bin2hex - Bir ikil verinin onaltılık gösterimini elde eder
    • bindec - Binary to decimal
    • bindtextdomain - Uygulama adı için bir yol tanımlar
    • bind_textdomain_codeset - Belli bir uygulamanın iletileri için karakter kodlaması tanımlar
    • boolval - Değişkenin mantıksal değerini döndürür
    • bzclose - Bzip2 dosyasını kapatır
    • bzcompress - Verilen dizgiyi bzip2 kodlamalı olarak sıkıştırır
    • bzdecompress - Bzip2 ile sıkıştırılmış veriyi açar
    • bzerrno - Bzip2 hata numarası ile döner
    • bzerror - Bzip2 hata numarasını ve hata iletisini bir dizi içerisinde döndürür
    • bzerrstr - Bzip2 hata iletisini döndürür
    • bzflush - Hiçbir şey yapmaz
    • bzopen - Bzip2 sıkıştırmalı bir dosyayı açar
    • bzread - Bzip2 dosyasını ikil olarak okur
    • bzwrite - Bzip2 dosyasını ikil olarak yazar
  • c
    • CachingIterator::count - The number of elements in the iterator
    • CachingIterator::current - Return the current element
    • CachingIterator::getCache - Retrieve the contents of the cache
    • CachingIterator::getFlags - Get flags used
    • CachingIterator::hasNext - Check whether the inner iterator has a valid next element
    • CachingIterator::key - Return the key for the current element
    • CachingIterator::next - Move the iterator forward
    • CachingIterator::offsetExists - The offsetExists purpose
    • CachingIterator::offsetGet - The offsetGet purpose
    • CachingIterator::offsetSet - The offsetSet purpose
    • CachingIterator::offsetUnset - The offsetUnset purpose
    • CachingIterator::rewind - Rewind the iterator
    • CachingIterator::setFlags - The setFlags purpose
    • CachingIterator::valid - Check whether the current element is valid
    • CachingIterator::__construct - Construct a new CachingIterator object for the iterator
    • CachingIterator::__toString - Return the string representation of the current element
    • CallbackFilterIterator::accept - Calls the callback with the current value, the current key and the inner iterator as arguments
    • CallbackFilterIterator::__construct - Create a filtered iterator from another iterator
    • call_user_func - İlk bağımsız değişkende belirtilen kullanıcı işlevini çağırır
    • call_user_func_array - Bağımsız değişkenlerin bir dizi olarak verildiği geriçağırım işlevini çağırır
    • cal_days_in_month - Seçilen takvime ve yıla göre istenen aydaki gün sayısını geri döndürür
    • cal_from_jd - Jülyen Gün Sayısını, istenen takvim biçimine çevirir
    • cal_info - Bağımsız değişken olarak verilen takvim hakkında bilgi döner
    • cal_to_jd - Desteklenen bir takvimden Jülyen Gün Sayısına dönüşüm yapar
    • ceil - Round fractions up
    • chdir - Dizin değiştirir
    • checkdate - Miladi tarihi doğrular
    • checkdnsrr - Belirtilen bir konak adı veya IP adresi için DNS sorgusu yapar
    • chgrp - Dosya grubunu değiştirir
    • chmod - Dosya kipini değiştirir
    • chop - rtrim işlevinin takma adıdır
    • chown - Dosyanın sahibini değiştirir
    • chr - Bir sayıdan tek baytlık dizge üretir
    • chroot - Kök dizini değiştirir
    • chunk_split - Bir dizgeyi daha küçük parçalara ayırır
    • class_alias - Sınıfa bir takma ad oluşturur
    • class_exists - Sınıf tanımlı mı diye bakar
    • class_implements - Return the interfaces which are implemented by the given class or interface
    • class_parents - Return the parent classes of the given class
    • class_uses - Return the traits used by the given class
    • clearstatcache - Dosya durum önbelleğini temizler
    • Client::getClient - Get client session
    • Client::__construct - Client constructor
    • cli_get_process_title - Geçerli sürecin başlığını döndürür
    • cli_set_process_title - Geçerli sürece başlık tanımlar
    • closedir - Dizin tanıtıcısını kapatır
    • closelog - Sistem günlükçüsü bağlantısını kapatır
    • Closure::bind - Belli bir bağlı nesne ve sınıf bağlamıyla bir closure nesnesini kopyalar.
    • Closure::bindTo - Yeni bir bağlı nesne ve sınıf bağlamıyla bir closure nesnesini kopyalar
    • Closure::call - Bir closure nesnesini bağlar ve çağırır
    • Closure::fromCallable - Bir işlevi bir closure yöntemine dönüştürür
    • Closure::__construct - Örneklemeye izin vermeyen kurucu
    • Collator::asort - Diziyi indislerin arasındaki ilişkilere göre sıralar
    • Collator::compare - İki Evrenkodlu dizgeyi karşılaştırır
    • Collator::create - Bir karşılaştırıcı oluşturur
    • Collator::getAttribute - Karşılaştırma özniteliğinin değerini döndürür
    • Collator::getErrorCode - Karşılaştırıcının son hata kodunu döndürür
    • Collator::getErrorMessage - Karşılaştırıcının son hata iletisini döndürür
    • Collator::getLocale - Karşılaştırıcının yerel ismini döndürür
    • Collator::getSortKey - Get sorting key for a string
    • Collator::getStrength - Geçerli karşılaştırma seviyesini döndürür
    • Collator::setAttribute - Karşılaştırma özniteliği tanımlar
    • Collator::setStrength - Sıralamanın seviyesini ayarlar
    • Collator::sort - Belirtilen karşılaştırıcıyı kullanarak diziyi sıralar
    • Collator::sortWithSortKeys - Bir diziyi belirtilen karşılaştırıcıyı ve sıralama anahtarlarını kullanarak sıralar
    • Collator::__construct - Bir karşılaştırıcı oluşturur
    • Collectable::isGarbage - Determine whether an object has been marked as garbage
    • Collection::add - Add collection document
    • Collection::addOrReplaceOne - Add or replace collection document
    • Collection::count - Get document count
    • Collection::createIndex - Create collection index
    • Collection::dropIndex - Drop collection index
    • Collection::existsInDatabase - Check if collection exists in database
    • Collection::find - Search for document
    • Collection::getName - Get collection name
    • Collection::getOne - Get one document
    • Collection::getSchema - Get schema object
    • Collection::getSession - Get session object
    • Collection::modify - Modify collection documents
    • Collection::remove - Remove collection documents
    • Collection::removeOne - Remove one collection document
    • Collection::replaceOne - Replace one collection document
    • Collection::__construct - Collection constructor
    • CollectionAdd::execute - Execute the statement
    • CollectionAdd::__construct - CollectionAdd constructor
    • CollectionFind::bind - Bind value to query placeholder
    • CollectionFind::execute - Execute the statement
    • CollectionFind::fields - Set document field filter
    • CollectionFind::groupBy - Set grouping criteria
    • CollectionFind::having - Set condition for aggregate functions
    • CollectionFind::limit - Limit number of returned documents
    • CollectionFind::lockExclusive - Execute operation with EXCLUSIVE LOCK
    • CollectionFind::lockShared - Execute operation with SHARED LOCK
    • CollectionFind::offset - Skip given number of elements to be returned
    • CollectionFind::sort - Set the sorting criteria
    • CollectionFind::__construct - CollectionFind constructor
    • CollectionModify::arrayAppend - Append element to an array field
    • CollectionModify::arrayInsert - Insert element into an array field
    • CollectionModify::bind - Bind value to query placeholder
    • CollectionModify::execute - Execute modify operation
    • CollectionModify::limit - Limit number of modified documents
    • CollectionModify::patch - Patch document
    • CollectionModify::replace - Replace document field
    • CollectionModify::set - Set document attribute
    • CollectionModify::skip - Skip elements
    • CollectionModify::sort - Set the sorting criteria
    • CollectionModify::unset - Unset the value of document fields
    • CollectionModify::__construct - CollectionModify constructor
    • CollectionRemove::bind - Bind value to placeholder
    • CollectionRemove::execute - Execute remove operation
    • CollectionRemove::limit - Limit number of documents to remove
    • CollectionRemove::sort - Set the sorting criteria
    • CollectionRemove::__construct - CollectionRemove constructor
    • ColumnResult::getCharacterSetName - Get character set
    • ColumnResult::getCollationName - Get collation name
    • ColumnResult::getColumnLabel - Get column label
    • ColumnResult::getColumnName - Get column name
    • ColumnResult::getFractionalDigits - Get fractional digit length
    • ColumnResult::getLength - Get column field length
    • ColumnResult::getSchemaName - Get schema name
    • ColumnResult::getTableLabel - Get table label
    • ColumnResult::getTableName - Get table name
    • ColumnResult::getType - Get column type
    • ColumnResult::isNumberSigned - Check if signed type
    • ColumnResult::isPadded - Check if padded
    • ColumnResult::__construct - ColumnResult constructor
    • com::__construct - com nesnesi oluşturur
    • CommonMark\CQL::__construct - CQL Construction
    • CommonMark\CQL::__invoke - CQL Execution
    • CommonMark\Interfaces\IVisitable::accept - Visitation
    • CommonMark\Interfaces\IVisitor::enter - Visitation
    • CommonMark\Interfaces\IVisitor::leave - Visitation
    • CommonMark\Node::accept - Visitation
    • CommonMark\Node::appendChild - AST Manipulation
    • CommonMark\Node::insertAfter - AST Manipulation
    • CommonMark\Node::insertBefore - AST Manipulation
    • CommonMark\Node::prependChild - AST Manipulation
    • CommonMark\Node::replace - AST Manipulation
    • CommonMark\Node::unlink - AST Manipulation
    • CommonMark\Node\BulletList::__construct - BulletList Construction
    • CommonMark\Node\CodeBlock::__construct - CodeBlock Construction
    • CommonMark\Node\Heading::__construct - Heading Construction
    • CommonMark\Node\Image::__construct - Image Construction
    • CommonMark\Node\Link::__construct - Link Construction
    • CommonMark\Node\OrderedList::__construct - OrderedList Construction
    • CommonMark\Node\Text::__construct - Text Construction
    • CommonMark\Parse - Parsing
    • CommonMark\Parser::finish - Parsing
    • CommonMark\Parser::parse - Parsing
    • CommonMark\Parser::__construct - Parsing
    • CommonMark\Render - Rendering
    • CommonMark\Render\HTML - Rendering
    • CommonMark\Render\Latex - Rendering
    • CommonMark\Render\Man - Rendering
    • CommonMark\Render\XML - Rendering
    • compact - Değişkenlerle değerlerinden bir dizi oluşturur
    • COMPersistHelper::GetCurFileName - Get current filename
    • COMPersistHelper::GetMaxStreamSize - Get maximum stream size
    • COMPersistHelper::InitNew - Initialize object to default state
    • COMPersistHelper::LoadFromFile - Load object from file
    • COMPersistHelper::LoadFromStream - Load object from stream
    • COMPersistHelper::SaveToFile - Save object to file
    • COMPersistHelper::SaveToStream - Save object to stream
    • COMPersistHelper::__construct - COMPersistHelper nesnesi oluşturur
    • Componere\Abstract\Definition::addInterface - Add Interface
    • Componere\Abstract\Definition::addMethod - Add Method
    • Componere\Abstract\Definition::addTrait - Add Trait
    • Componere\Abstract\Definition::getReflector - Reflection
    • Componere\cast - Casting
    • Componere\cast_by_ref - Casting
    • Componere\Definition::addConstant - Add Constant
    • Componere\Definition::addProperty - Add Property
    • Componere\Definition::getClosure - Get Closure
    • Componere\Definition::getClosures - Get Closures
    • Componere\Definition::isRegistered - State Detection
    • Componere\Definition::register - Registration
    • Componere\Definition::__construct - Definition Construction
    • Componere\Method::getReflector - Reflection
    • Componere\Method::setPrivate - Accessibility Modification
    • Componere\Method::setProtected - Accessibility Modification
    • Componere\Method::setStatic - Accessibility Modification
    • Componere\Method::__construct - Method Construction
    • Componere\Patch::apply - Application
    • Componere\Patch::derive - Patch Derivation
    • Componere\Patch::getClosure - Get Closure
    • Componere\Patch::getClosures - Get Closures
    • Componere\Patch::isApplied - State Detection
    • Componere\Patch::revert - Reversal
    • Componere\Patch::__construct - Patch Construction
    • Componere\Value::hasDefault - Value Interaction
    • Componere\Value::isPrivate - Accessibility Detection
    • Componere\Value::isProtected - Accessibility Detection
    • Componere\Value::isStatic - Accessibility Detection
    • Componere\Value::setPrivate - Accessibility Modification
    • Componere\Value::setProtected - Accessibility Modification
    • Componere\Value::setStatic - Accessibility Modification
    • Componere\Value::__construct - Value Construction
    • com_create_guid - Küresel benzersiz tanımlayıcı (Globally Unique Identifier) üretir
    • com_event_sink - Bir COM nesnesinden, PHP nesnesine olayları bağlar
    • com_get_active_object - COM nesnesinin çalışan bir örneği için tanıtıcı döner
    • com_load_typelib - Verilen tür kütüphanesini yükler
    • com_message_pump - COM iletilerini işler, zaman_asimi süresince uykudadır
    • com_print_typeinfo - İncelenebilecek şekilde PHP sınıf tanımını yazar
    • connection_aborted - İstemcinin bağlantıyı terkedip terketmediğine bakar
    • connection_status - Bağlantı durumu bit maskesini döndürür
    • constant - Bir sabitin değerini döndürür
    • convert_cyr_string - Bir Kril karakter kümesini bir diğerine çevirir
    • convert_uudecode - Uuencoded ile kodlanmış bir dizgeyi eski haline getirir
    • convert_uuencode - Bir dizgeyi uuencode algoritmasıyla kodlar
    • copy - Dosya kopyalar
    • cos - Cosine
    • cosh - Hyperbolic cosine
    • count - Bir dizideki veya bir Countable nesnesindeki eleman sayısını döndürür
    • Countable::count - Count elements of an object
    • count_chars - Bir dizgedeki karakterler hakkında bilgi döndürür
    • crc32 - Bir dizgenin crc32 çok terimlisini hesaplar
    • create_function - Kod dizgesini değerlendirerek dinamik olarak bir işlev oluşturur
    • CrudOperationBindable::bind - Bind value to placeholder
    • CrudOperationLimitable::limit - Set result limit
    • CrudOperationSkippable::skip - Number of operations to skip
    • CrudOperationSortable::sort - Sort results
    • crypt - Tek yönlü dizge aşlama
    • ctype_alnum - Sınama, abecesayısal karakterler için yapılır
    • ctype_alpha - Sınama, abecesel karakterler için yapılır
    • ctype_cntrl - Sınama, denetim karakterleri için yapılır
    • ctype_digit - Sınama, rakamlar için yapılır
    • ctype_graph - Sınama, boşluk karakterleri hariç basılabilir karakterler için yapılır
    • ctype_lower - Sınama, küçük harfler için yapılır
    • ctype_print - Sınama, basılabilir karakterler için yapılır
    • ctype_punct - Sınama, birer alfasayısal veya boşluk karakteri olmayan basılabilir karakterler için yapılır
    • ctype_space - Sınama, boşluk karakterleri için yapılır
    • ctype_upper - Sınama, büyük harfler için yapılır
    • ctype_xdigit - Sınama, onaltılık rakamlar için yapılır
    • cubrid_affected_rows - Return the number of rows affected by the last SQL statement
    • cubrid_bind - Bind variables to a prepared statement as parameters
    • cubrid_client_encoding - Return the current CUBRID connection charset
    • cubrid_close - Close CUBRID connection
    • cubrid_close_prepare - Close the request handle
    • cubrid_close_request - Close the request handle
    • cubrid_column_names - Get the column names in result
    • cubrid_column_types - Get column types in result
    • cubrid_col_get - Get contents of collection type column using OID
    • cubrid_col_size - Get the number of elements in collection type column using OID
    • cubrid_commit - Commit a transaction
    • cubrid_connect - Open a connection to a CUBRID Server
    • cubrid_connect_with_url - Establish the environment for connecting to CUBRID server
    • cubrid_current_oid - Get OID of the current cursor location
    • cubrid_data_seek - Move the internal row pointer of the CUBRID result
    • cubrid_db_name - Get db name from results of cubrid_list_dbs
    • cubrid_disconnect - Close a database connection
    • cubrid_drop - Delete an instance using OID
    • cubrid_errno - Return the numerical value of the error message from previous CUBRID operation
    • cubrid_error - Get the error message
    • cubrid_error_code - Get error code for the most recent function call
    • cubrid_error_code_facility - Get the facility code of error
    • cubrid_error_msg - Get last error message for the most recent function call
    • cubrid_execute - Execute a prepared SQL statement
    • cubrid_fetch - Fetch the next row from a result set
    • cubrid_fetch_array - Fetch a result row as an associative array, a numeric array, or both
    • cubrid_fetch_assoc - Return the associative array that corresponds to the fetched row
    • cubrid_fetch_field - Get column information from a result and return as an object
    • cubrid_fetch_lengths - Return an array with the lengths of the values of each field from the current row
    • cubrid_fetch_object - Fetch the next row and return it as an object
    • cubrid_fetch_row - Return a numerical array with the values of the current row
    • cubrid_field_flags - Return a string with the flags of the given field offset
    • cubrid_field_len - Get the maximum length of the specified field
    • cubrid_field_name - Return the name of the specified field index
    • cubrid_field_seek - Move the result set cursor to the specified field offset
    • cubrid_field_table - Return the name of the table of the specified field
    • cubrid_field_type - Return the type of the column corresponding to the given field offset
    • cubrid_free_result - Free the memory occupied by the result data
    • cubrid_get - Get a column using OID
    • cubrid_get_autocommit - Get auto-commit mode of the connection
    • cubrid_get_charset - Return the current CUBRID connection charset
    • cubrid_get_class_name - Get the class name using OID
    • cubrid_get_client_info - Return the client library version
    • cubrid_get_db_parameter - Returns the CUBRID database parameters
    • cubrid_get_query_timeout - Get the query timeout value of the request
    • cubrid_get_server_info - Return the CUBRID server version
    • cubrid_insert_id - Return the ID generated for the last updated AUTO_INCREMENT column
    • cubrid_is_instance - Check whether the instance pointed by OID exists
    • cubrid_list_dbs - Return an array with the list of all existing CUBRID databases
    • cubrid_load_from_glo - Read data from a GLO instance and save it in a file
    • cubrid_lob2_bind - Bind a lob object or a string as a lob object to a prepared statement as parameters
    • cubrid_lob2_close - Close LOB object
    • cubrid_lob2_export - Export the lob object to a file
    • cubrid_lob2_import - Import BLOB/CLOB data from a file
    • cubrid_lob2_new - Create a lob object
    • cubrid_lob2_read - Read from BLOB/CLOB data
    • cubrid_lob2_seek - Move the cursor of a lob object
    • cubrid_lob2_seek64 - Move the cursor of a lob object
    • cubrid_lob2_size - Get a lob object's size
    • cubrid_lob2_size64 - Get a lob object's size
    • cubrid_lob2_tell - Tell the cursor position of the LOB object
    • cubrid_lob2_tell64 - Tell the cursor position of the LOB object
    • cubrid_lob2_write - Write to a lob object
    • cubrid_lob_close - Close BLOB/CLOB data
    • cubrid_lob_export - Export BLOB/CLOB data to file
    • cubrid_lob_get - Get BLOB/CLOB data
    • cubrid_lob_send - Read BLOB/CLOB data and send straight to browser
    • cubrid_lob_size - Get BLOB/CLOB data size
    • cubrid_lock_read - Set a read lock on the given OID
    • cubrid_lock_write - Set a write lock on the given OID
    • cubrid_move_cursor - Move the cursor in the result
    • cubrid_new_glo - Create a glo instance
    • cubrid_next_result - Get result of next query when executing multiple SQL statements
    • cubrid_num_cols - Return the number of columns in the result set
    • cubrid_num_fields - Return the number of columns in the result set
    • cubrid_num_rows - Get the number of rows in the result set
    • cubrid_pconnect - Open a persistent connection to a CUBRID server
    • cubrid_pconnect_with_url - Open a persistent connection to CUBRID server
    • cubrid_ping - Ping a server connection or reconnect if there is no connection
    • cubrid_prepare - Prepare a SQL statement for execution
    • cubrid_put - Update a column using OID
    • cubrid_query - Send a CUBRID query
    • cubrid_real_escape_string - Escape special characters in a string for use in an SQL statement
    • cubrid_result - Return the value of a specific field in a specific row
    • cubrid_rollback - Roll back a transaction
    • cubrid_save_to_glo - Save requested file in a GLO instance
    • cubrid_schema - Get the requested schema information
    • cubrid_send_glo - Read data from glo and send it to std output
    • cubrid_seq_drop - Delete an element from sequence type column using OID
    • cubrid_seq_insert - Insert an element to a sequence type column using OID
    • cubrid_seq_put - Update the element value of sequence type column using OID
    • cubrid_set_add - Insert a single element to set type column using OID
    • cubrid_set_autocommit - Set autocommit mode of the connection
    • cubrid_set_db_parameter - Sets the CUBRID database parameters
    • cubrid_set_drop - Delete an element from set type column using OID
    • cubrid_set_query_timeout - Set the timeout time of query execution
    • cubrid_unbuffered_query - Perform a query without fetching the results into memory
    • cubrid_version - Get the CUBRID PHP module's version
    • CURLFile::getFilename - Dosya ismi döndürür
    • CURLFile::getMimeType - MIME türünü döndürür
    • CURLFile::getPostFilename - POST için dosya ismi döndürür
    • CURLFile::setMimeType - MIME türü tanımlar
    • CURLFile::setPostFilename - POST için dosya ismi tanımlar
    • CURLFile::__construct - Bir CURLFile nesnesi oluşturur
    • CURLStringFile::__construct - Create a CURLStringFile object
    • curl_close - cURL oturumunu sonlandırır
    • curl_copy_handle - Bir cURL tanıtıcısını tüm tercihleriyle kopyalar
    • curl_errno - Belirtilen oturumdaki son hatanın kodunu döndürür
    • curl_error - Belirtilen oturumdaki son hatayı içeren bir dizge döndürür
    • curl_escape - Dizgeyi URL'de kullanım için kodlar
    • curl_exec - Bir cURL oturumunu işleme sokar
    • curl_getinfo - Belli bir oturum ile ilgili bilgi döndürür
    • curl_init - Bir cURL oturumunu ilklendirir
    • curl_multi_add_handle - Tekil cURL tanıtıcısını çoklu cURL tanıtıcısına ekler
    • curl_multi_close - Çoklu tanıtıcıyı kapatır
    • curl_multi_errno - Sonuncu çoklu curl hata numarasını döndürür
    • curl_multi_exec - Geçerli cURL tanıtıcısının alt bağlantılarını çalıştırır
    • curl_multi_getcontent - CURLOPT_RETURNTRANSFER etkinse bir cURL tanıtıcısının içeriği döner
    • curl_multi_info_read - Geçerli oturum hakkında bilgi döndürür
    • curl_multi_init - Yeni bir çoklu cURL tanıtıcısı döndürür
    • curl_multi_remove_handle - Bir tekil tanıtıcıyı bir çoklu tanıtıcıdan siler
    • curl_multi_select - Çoklu cURL bağlantısında bir etkinlik olsun diye bekler
    • curl_multi_setopt - cURL çoklu seçeneği tanımlar
    • curl_multi_strerror - Hata kodunun açıklamasını döndürür
    • curl_pause - Bağlantının bekleme durumunu değiştirir
    • curl_reset - libcurl oturum tanıtıcısının tüm seçeneklerini sıfırlar
    • curl_setopt - Bir cURL aktarım seçeneği tanımlar
    • curl_setopt_array - Belirtilen cURL oturumuna çok sayıda seçenek atar
    • curl_share_close - cURL paylaşımlı tanıtıcısını kapatır
    • curl_share_errno - Sonuncu paylaşımlı curl hata numarasını döndürür
    • curl_share_init - cURL paylaşımlı tanıtıcısını ilklendirir
    • curl_share_setopt - cURL paylaşımlı tanıtıcısı için bir seçenek tanımlar
    • curl_share_strerror - Hata kodunun açıklamasını döndürür
    • curl_strerror - Hata kodunun açıklamasını döndürür
    • curl_unescape - URL kodlu dizgeyi çözümler
    • curl_upkeep - Performs any connection upkeep checks
    • curl_version - cURL sürüm bilgilerini döndürür
    • current - Bir diziden gösterici konumundaki elemanı döndürür
  • d
    • DatabaseObject::existsInDatabase - Check if object exists in database
    • DatabaseObject::getName - Get object name
    • DatabaseObject::getSession - Get session name
    • date - Unix zaman damgasını biçimlendirir
    • DateInterval::createFromDateString - Dizgenin göreli kısımlarından bir DateInterval nesnesi döndürür
    • DateInterval::format - Zaman aralığını biçimler
    • DateInterval::__construct - Yeni bir DateInterval nesnesi oluşturur
    • DatePeriod::createFromISO8601String - Creates a new DatePeriod object from an ISO8601 string
    • DatePeriod::getDateInterval - Gets the interval
    • DatePeriod::getEndDate - Gets the end date
    • DatePeriod::getRecurrences - Gets the number of recurrences
    • DatePeriod::getStartDate - Gets the start date
    • DatePeriod::__construct - Yeni bir DatePeriod nesnesi oluşturur
    • DateTime::add - Modifies a DateTime object, with added amount of days, months, years, hours, minutes and seconds
    • DateTime::createFromFormat - Parses a time string according to a specified format
    • DateTime::createFromImmutable - Returns new DateTime instance encapsulating the given DateTimeImmutable object
    • DateTime::createFromInterface - Returns new DateTime object encapsulating the given DateTimeInterface object
    • DateTime::getLastErrors - Takma Adı: DateTimeImmutable::getLastErrors
    • DateTime::modify - Alters the timestamp
    • DateTime::setDate - Sets the date
    • DateTime::setISODate - Sets the ISO date
    • DateTime::setTime - Sets the time
    • DateTime::setTimestamp - Sets the date and time based on an Unix timestamp
    • DateTime::setTimezone - Sets the time zone for the DateTime object
    • DateTime::sub - Subtracts an amount of days, months, years, hours, minutes and seconds from a DateTime object
    • DateTime::__construct - Returns new DateTime object
    • DateTime::__set_state - The __set_state handler
    • DateTime::__wakeup - The __wakeup handler
    • DateTimeImmutable::add - Returns a new object, with added amount of days, months, years, hours, minutes and seconds
    • DateTimeImmutable::createFromFormat - Parses a time string according to a specified format
    • DateTimeImmutable::createFromInterface - Returns new DateTimeImmutable object encapsulating the given DateTimeInterface object
    • DateTimeImmutable::createFromMutable - Returns new DateTimeImmutable instance encapsulating the given DateTime object
    • DateTimeImmutable::getLastErrors - Returns the warnings and errors
    • DateTimeImmutable::modify - Creates a new object with modified timestamp
    • DateTimeImmutable::setDate - Sets the date
    • DateTimeImmutable::setISODate - Sets the ISO date
    • DateTimeImmutable::setTime - Sets the time
    • DateTimeImmutable::setTimestamp - Sets the date and time based on a Unix timestamp
    • DateTimeImmutable::setTimezone - Sets the time zone
    • DateTimeImmutable::sub - Subtracts an amount of days, months, years, hours, minutes and seconds
    • DateTimeImmutable::__construct - Returns new DateTimeImmutable object
    • DateTimeImmutable::__set_state - The __set_state handler
    • DateTimeInterface::diff - Returns the difference between two DateTime objects
    • DateTimeInterface::format - Returns date formatted according to given format
    • DateTimeInterface::getOffset - Returns the timezone offset
    • DateTimeInterface::getTimestamp - Gets the Unix timestamp
    • DateTimeInterface::getTimezone - Return time zone relative to given DateTime
    • DateTimeZone::getLocation - Zaman dilimi konum bilgisini döndürür
    • DateTimeZone::getName - Zaman diliminin adını döndürür
    • DateTimeZone::getOffset - Returns the timezone offset from GMT
    • DateTimeZone::getTransitions - Returns all transitions for the timezone
    • DateTimeZone::listAbbreviations - Returns associative array containing dst, offset and the timezone name
    • DateTimeZone::listIdentifiers - Returns a numerically indexed array containing all defined timezone identifiers
    • DateTimeZone::__construct - Yeni bir DateTimeZone nesnesi oluşturur
    • date_add - DateTime::add işlevinin takma adıdır
    • date_create - Yeni bir DateTime nesnesi oluşturur
    • date_create_from_format - DateTime::createFromFormat işlevinin takma adıdır
    • date_create_immutable - Yeni bir DateTimeImmutable nesnesi oluşturur
    • date_create_immutable_from_format - DateTimeImmutable::createFromFormat işlevinin takma adı
    • date_date_set - DateTime::setDate işlevinin takma adıdır
    • date_default_timezone_get - Betik içerisindeki tüm tarih/zaman işlevleri tarafından kullanılan öntanımlı zaman dilimini getirir
    • date_default_timezone_set - Betik içerisindeki tüm tarih/zaman işlevleri tarafından kullanılan öntanımlı zaman dilimini ayarlar
    • date_diff - DateTime::diff işlevinin takma adıdır
    • date_format - DateTime::format işlevinin takma adıdır
    • date_get_last_errors - DateTimeImmutable::getLastErrors işlevinin takma adıdır
    • date_interval_create_from_date_string - DateInterval::createFromDateString işlevinin takma adıdır
    • date_interval_format - DateInterval::format işlevinin takma adıdır
    • date_isodate_set - DateTime::setISODate işlevinin takma adıdır
    • date_modify - DateTime::modify işlevinin takma adıdır
    • date_offset_get - DateTime::getOffset işlevinin takma adıdır
    • date_parse - Verilen tarih/zaman hakkındaki ayrıntılı bilgiyi ilişkisel dizi olarak döndürür
    • date_parse_from_format - Belirtildiği gibi biçimlendirilmiş olarak tarih hakkında bilgi verir
    • date_sub - DateTime::sub işlevinin takma adıdır
    • date_sunrise - Belirtilen gün ve konum için şafak zamanını döndürür
    • date_sunset - Verilen gün ve konum için günbatımı zamanını döndürür
    • date_sun_info - Güneşin doğuşu/batışı ve alacakaranlık başlangıcı/sonu hakkında bilgi içeren bir dizi döndürür
    • date_timestamp_get - DateTime::getTimestamp işlevinin takma adıdır
    • date_timestamp_set - DateTime::setTimestamp işlevinin takma adıdır
    • date_timezone_get - DateTime::getTimezone işlevinin takma adıdır
    • date_timezone_set - DateTime::setTimezone işlevinin takma adıdır
    • date_time_set - DateTime::setTime işlevinin takma adıdır
    • db2_autocommit - Returns or sets the AUTOCOMMIT state for a database connection
    • db2_bind_param - Binds a PHP variable to an SQL statement parameter
    • db2_client_info - Returns an object with properties that describe the DB2 database client
    • db2_close - Closes a database connection
    • db2_columns - Returns a result set listing the columns and associated metadata for a table
    • db2_column_privileges - Returns a result set listing the columns and associated privileges for a table
    • db2_commit - Commits a transaction
    • db2_connect - Returns a connection to a database
    • db2_conn_error - Returns a string containing the SQLSTATE returned by the last connection attempt
    • db2_conn_errormsg - Returns the last connection error message and SQLCODE value
    • db2_cursor_type - Returns the cursor type used by a statement resource
    • db2_escape_string - Used to escape certain characters
    • db2_exec - Executes an SQL statement directly
    • db2_execute - Executes a prepared SQL statement
    • db2_fetch_array - Returns an array, indexed by column position, representing a row in a result set
    • db2_fetch_assoc - Returns an array, indexed by column name, representing a row in a result set
    • db2_fetch_both - Returns an array, indexed by both column name and position, representing a row in a result set
    • db2_fetch_object - Returns an object with properties representing columns in the fetched row
    • db2_fetch_row - Sets the result set pointer to the next row or requested row
    • db2_field_display_size - Returns the maximum number of bytes required to display a column
    • db2_field_name - Returns the name of the column in the result set
    • db2_field_num - Returns the position of the named column in a result set
    • db2_field_precision - Returns the precision of the indicated column in a result set
    • db2_field_scale - Returns the scale of the indicated column in a result set
    • db2_field_type - Returns the data type of the indicated column in a result set
    • db2_field_width - Returns the width of the current value of the indicated column in a result set
    • db2_foreign_keys - Returns a result set listing the foreign keys for a table
    • db2_free_result - Frees resources associated with a result set
    • db2_free_stmt - Frees resources associated with the indicated statement resource
    • db2_get_option - Retrieves an option value for a statement resource or a connection resource
    • db2_last_insert_id - Returns the auto generated ID of the last insert query that successfully executed on this connection
    • db2_lob_read - Gets a user defined size of LOB files with each invocation
    • db2_next_result - Requests the next result set from a stored procedure
    • db2_num_fields - Returns the number of fields contained in a result set
    • db2_num_rows - Returns the number of rows affected by an SQL statement
    • db2_pclose - Closes a persistent database connection
    • db2_pconnect - Returns a persistent connection to a database
    • db2_prepare - Prepares an SQL statement to be executed
    • db2_primary_keys - Returns a result set listing primary keys for a table
    • db2_procedures - Returns a result set listing the stored procedures registered in a database
    • db2_procedure_columns - Returns a result set listing stored procedure parameters
    • db2_result - Returns a single column from a row in the result set
    • db2_rollback - Rolls back a transaction
    • db2_server_info - Returns an object with properties that describe the DB2 database server
    • db2_set_option - Set options for connection or statement resources
    • db2_special_columns - Returns a result set listing the unique row identifier columns for a table
    • db2_statistics - Returns a result set listing the index and statistics for a table
    • db2_stmt_error - Returns a string containing the SQLSTATE returned by an SQL statement
    • db2_stmt_errormsg - Returns a string containing the last SQL statement error message
    • db2_tables - Returns a result set listing the tables and associated metadata in a database
    • db2_table_privileges - Returns a result set listing the tables and associated privileges in a database
    • dbase_add_record - Adds a record to a database
    • dbase_close - Closes a database
    • dbase_create - Creates a database
    • dbase_delete_record - Deletes a record from a database
    • dbase_get_header_info - Gets the header info of a database
    • dbase_get_record - Gets a record from a database as an indexed array
    • dbase_get_record_with_names - Gets a record from a database as an associative array
    • dbase_numfields - Gets the number of fields of a database
    • dbase_numrecords - Gets the number of records in a database
    • dbase_open - Opens a database
    • dbase_pack - Packs a database
    • dbase_replace_record - Replaces a record in a database
    • dba_close - Close a DBA database
    • dba_delete - Delete DBA entry specified by key
    • dba_exists - Check whether key exists
    • dba_fetch - Fetch data specified by key
    • dba_firstkey - Fetch first key
    • dba_handlers - List all the handlers available
    • dba_insert - Insert entry
    • dba_key_split - Splits a key in string representation into array representation
    • dba_list - List all open database files
    • dba_nextkey - Fetch next key
    • dba_open - Open database
    • dba_optimize - Optimize database
    • dba_popen - Open database persistently
    • dba_replace - Replace or insert entry
    • dba_sync - Synchronize database
    • dcgettext - Belirtilen arama için geçerli uygulama adını değiştirir
    • dcngettext - dcgettext işlevinin çoğul biçemli sürümü
    • debug_backtrace - Hata izleme raporunu bir dizi olarak üretir
    • debug_print_backtrace - Bir hata izleme raporu basar
    • debug_zval_dump - Dahili zval yapısının dizgesel gösterimini çıktıya dökümler
    • decbin - Decimal to binary
    • dechex - Decimal to hexadecimal
    • decoct - Decimal to octal
    • define - Bir isimli sabit tanımlar
    • defined - Belirtilen isimli sabit tanımlı mı diye bakar
    • deflate_add - Incrementally deflate data
    • deflate_init - Initialize an incremental deflate context
    • deg2rad - Converts the number in degrees to the radian equivalent
    • delete - unlink veya unset işlevine bakınız
    • dgettext - Geçerli uygulama adını değiştirir
    • die - exit işlevinin eşdeğeri
    • dio_close - Belirtilen dosya tanıtıcısını kapatır
    • dio_fcntl - Belirtilen dosya tanıtıcısı üzerinde komut çalıştırır
    • dio_open - Belirtilen dosyayı açar ve bu dosya için bir dosya tanıtıcısı döndürür
    • dio_read - Bir dosya tanıtıcısından baytları okur
    • dio_seek - Dosya tanıtıcısında konumu bir yerden başka bir yere taşır
    • dio_stat - Belirtilen dosya tanıtıcısı hakkında durum bilgisi döndürür
    • dio_tcsetattr - Bir seri portun veri hızını ve uçbirim özniteliklerini tanımlar
    • dio_truncate - Dosya tanıtıcısındaki bayt sayısını sınırlar
    • dio_write - Veriyi (uzunluğunu isteğe bağlı olarak kırparak) dosya tanıtıcısına yazar
    • dir - Directory sınıfının örneğini döndürür
    • Directory::close - Dizin tanıtıcısını kapatır
    • Directory::read - Dizin tanıtıcısından girdi okur
    • Directory::rewind - Dizin tanıtıcısını başa sarar
    • DirectoryIterator::current - Return the current DirectoryIterator item
    • DirectoryIterator::getBasename - Get base name of current DirectoryIterator item
    • DirectoryIterator::getExtension - Gets the file extension
    • DirectoryIterator::getFilename - Return file name of current DirectoryIterator item
    • DirectoryIterator::isDot - Determine if current DirectoryIterator item is '.' or '..'
    • DirectoryIterator::key - Return the key for the current DirectoryIterator item
    • DirectoryIterator::next - Move forward to next DirectoryIterator item
    • DirectoryIterator::rewind - Rewind the DirectoryIterator back to the start
    • DirectoryIterator::seek - Seek to a DirectoryIterator item
    • DirectoryIterator::valid - Check whether current DirectoryIterator position is a valid file
    • DirectoryIterator::__construct - Constructs a new directory iterator from a path
    • DirectoryIterator::__toString - Get file name as a string
    • dirname - Üst dizinin yolunu döndürür
    • diskfreespace - disk_free_space işlevinin takma adıdır
    • disk_free_space - Disk bölümü veya dosya sistemindeki kullanılabilir alanı döndürür
    • disk_total_space - Bir disk bölümünün veya dosya sisteminin toplam boyutunu döndürür
    • dl - Belirtilen PHP eklentisini çalışma anında yükler
    • dngettext - dgettext işlevinin çoğul biçemli sürümü
    • dns_check_record - checkdnsrr işlevinin takma adıdır
    • dns_get_mx - getmxrr işlevinin takma adıdır
    • dns_get_record - Belirtilen konak adı ile ilgili DNS Özkaynak Kayıtlarını getirir
    • DocResult::fetchAll - Get all rows
    • DocResult::fetchOne - Get one row
    • DocResult::getWarnings - Get warnings from last operation
    • DocResult::getWarningsCount - Get warning count from last operation
    • DocResult::__construct - DocResult constructor
    • DOMAttr::isId - Öznitelik bir ID mi tanımlıyor diye bakar
    • DOMAttr::__construct - Yeni bir DOMAttr nesnesi oluşturur
    • DOMCdataSection::__construct - DOMCdataSection nesnesi oluşturur
    • DOMCharacterData::after - Adds nodes after the character data
    • DOMCharacterData::appendData - Düğümün karakter verisinin sonuna bir dizge ekler
    • DOMCharacterData::before - Adds nodes before the node
    • DOMCharacterData::deleteData - Düğümden belirtilen alt dizgeyi siler
    • DOMCharacterData::insertData - 16 bitlik birimlerle belirtilen konuma bir dizge yerleştirir
    • DOMCharacterData::remove - Removes the character data
    • DOMCharacterData::replaceData - DOMCharacterData içindeki bir alt dizgeyi değiştirir
    • DOMCharacterData::replaceWith - Replaces the character data with new nodes
    • DOMCharacterData::substringData - Düğümden belli miktarda veri döndürür
    • DOMChildNode::after - Adds nodes after the node
    • DOMChildNode::before - Adds nodes before the node
    • DOMChildNode::remove - Removes the node
    • DOMChildNode::replaceWith - Replaces the node with new nodes
    • DOMComment::__construct - Yeni bir DOMComment nesnesi oluşturur
    • DOMDocument::adoptNode - Transfer a node from another document
    • DOMDocument::append - Appends nodes after the last child node
    • DOMDocument::createAttribute - Yeni bir öznitelik düğümü oluşturur
    • DOMDocument::createAttributeNS - Yeni bir isim alanlı öznitelik düğümü oluşturur
    • DOMDocument::createCDATASection - Yeni bir CDATA düğümü oluşturur
    • DOMDocument::createComment - Yeni bir açıklama düğümü oluşturur
    • DOMDocument::createDocumentFragment - Yeni bir belge bölütü oluşturur
    • DOMDocument::createElement - Yeni bir eleman düğümü oluşturur
    • DOMDocument::createElementNS - İsim alanlı bir eleman düğümü oluşturur
    • DOMDocument::createEntityReference - Yeni bir öğe bildirimi düğümü oluşturur
    • DOMDocument::createProcessingInstruction - Yeni bir işlem komutu düğümü oluşturur
    • DOMDocument::createTextNode - Yeni bir metin düğümü oluşturur
    • DOMDocument::getElementById - ID'si belirtilen elemanı döndürür
    • DOMDocument::getElementsByTagName - Yerel etiket ismi belirtilen tüm elemanları döndürür
    • DOMDocument::getElementsByTagNameNS - İsmi ve isim alanı belirtilen tüm elemanları döndürür
    • DOMDocument::importNode - Belgeye bir düğüm dahil eder
    • DOMDocument::load - XML belgeyi bir dosyadan yükler
    • DOMDocument::loadHTML - HTML belgeyi bir dizgeden yükler
    • DOMDocument::loadHTMLFile - HTML belgeyi bir dosyadan yükler
    • DOMDocument::loadXML - XML belgeyi bir dizgeden yükler
    • DOMDocument::normalizeDocument - Belgeyi normalleştirir
    • DOMDocument::prepend - Prepends nodes before the first child node
    • DOMDocument::registerNodeClass - Temel düğüm türünü oluşturmakta kullanılacak türetilmiş sınıfı belirtmek için kullanılır
    • DOMDocument::relaxNGValidate - Belgeyi belirtilen RNG dosyasıyla doğrular
    • DOMDocument::relaxNGValidateSource - Belgeyi belirtilen RNG dizgesiyle doğrular
    • DOMDocument::replaceChildren - Replace children in document
    • DOMDocument::save - Dahili XML ağacını bir dizge olarak dosyaya yazar
    • DOMDocument::saveHTML - Dahili belgeyi bir HTML dizgesi olarak çıktılar
    • DOMDocument::saveHTMLFile - Dahili belgeyi bir HTML dizge olarak dosyaya yazar
    • DOMDocument::saveXML - Dahili XML ağacını bir dizge olarak çıktılar
    • DOMDocument::schemaValidate - Belgeyi bir şema dosyasına göre doğrular
    • DOMDocument::schemaValidateSource - Belgeyi bir şema dizgesine göre doğrular
    • DOMDocument::validate - Belgeyi DTD'sine göre doğrular
    • DOMDocument::xinclude - Bir DOMDocument nesnesindeki XInclude dosyalarını belgeye dahil eder
    • DOMDocument::__construct - Yeni bir DOMDocument nesnesi oluşturur
    • DOMDocumentFragment::append - Appends nodes after the last child node
    • DOMDocumentFragment::appendXML - Ham bir XML verisi ekler
    • DOMDocumentFragment::prepend - Prepends nodes before the first child node
    • DOMDocumentFragment::replaceChildren - Replace children in fragment
    • DOMDocumentFragment::__construct - Constructs a DOMDocumentFragment object
    • DOMElement::after - Adds nodes after the element
    • DOMElement::append - Appends nodes after the last child node
    • DOMElement::before - Adds nodes before the element
    • DOMElement::getAttribute - İsmi belirtilen özniteliğin değerini döndürür
    • DOMElement::getAttributeNames - Get attribute names
    • DOMElement::getAttributeNode - İsmi belirtilen öznitelik düğümünü döndürür
    • DOMElement::getAttributeNodeNS - İsmi ve isim alanı belirtilen öznitelik düğümünü döndürür
    • DOMElement::getAttributeNS - İsmi ve isim alanı belirtilen özniteliğin değerini döndürür
    • DOMElement::getElementsByTagName - İsmi belirtilen elemanları döndürür
    • DOMElement::getElementsByTagNameNS - İsmi ve isim alanı belirtilen elemanları döndürür
    • DOMElement::hasAttribute - İsmi belirtilen öznitelik mevcut mu diye bakar
    • DOMElement::hasAttributeNS - Belirtilen isim alanlı öznitelik var mı diye bakar
    • DOMElement::insertAdjacentElement - Insert adjacent element
    • DOMElement::insertAdjacentText - Insert adjacent text
    • DOMElement::prepend - Prepends nodes before the first child node
    • DOMElement::remove - Removes the element
    • DOMElement::removeAttribute - İsmi belirtilen özniteliği siler
    • DOMElement::removeAttributeNode - Belirtilen öznitelik düğümünü siler
    • DOMElement::removeAttributeNS - İsmi ve isim alanı belirtilen özniteliği siler
    • DOMElement::replaceChildren - Replace children in element
    • DOMElement::replaceWith - Replaces the element with new nodes
    • DOMElement::setAttribute - Yeni bir öznitelik ekler ya da var olanda değişiklik yapar
    • DOMElement::setAttributeNode - Elemana yeni bir öznitelik düğümü ekler
    • DOMElement::setAttributeNodeNS - Elemana isim alanlı yeni bir öznitelik düğümü ekler
    • DOMElement::setAttributeNS - İsim alanlı yeni bir öznitelik ekler
    • DOMElement::setIdAttribute - İsmi belirtilen özniteliği bir ID özniteliği olarak tanımlar
    • DOMElement::setIdAttributeNode - Belirtilen öznitelik düğümünü ID türünde bir öznitelik düğümü haline getirir
    • DOMElement::setIdAttributeNS - İsmi ve isim alanı belirtilen özniteliği bir ID özniteliği olarak tanımlar
    • DOMElement::toggleAttribute - Toggle attribute
    • DOMElement::__construct - Yeni bir DOMElement nesnesi oluşturur
    • DOMEntityReference::__construct - Yeni bir DOMEntityReference nesnesi oluşturur
    • DOMImplementation::createDocument - Belge elemanı belirtilen DOMDocument nesnesini oluşturur
    • DOMImplementation::createDocumentType - Boş bir DOMDocumentType nesnesi oluşturur
    • DOMImplementation::hasFeature - DOM gerçeklenimi belirtilen özelliğe sahip mi diye bakar
    • DOMImplementation::__construct - Yeni bir DOMImplementation nesnesi oluşturur
    • DOMNamedNodeMap::count - Ağaçtaki düğüm sayısını döndürür
    • DOMNamedNodeMap::getIterator - Retrieve an external iterator
    • DOMNamedNodeMap::getNamedItem - İsmi belirtilen düğümü döndürür
    • DOMNamedNodeMap::getNamedItemNS - İsmi ve isim alanı belirtilen düğümü döndürür
    • DOMNamedNodeMap::item - İndisi belirtilen düğümü döndürür
    • DOMNode::appendChild - Listenin sonuna yeni bir çocuk ekler
    • DOMNode::C14N - Düğümleri belgedeki yazımını bozmadan dizgeleştirir
    • DOMNode::C14NFile - Düğümleri belgedeki yazımını bozmadan dosyaya yazar
    • DOMNode::cloneNode - Düğümün bir kopyasını yapar
    • DOMNode::contains - Checks if node contains other node
    • DOMNode::getLineNo - Düğümün tanımlandığı satır numarasını döndürür
    • DOMNode::getNodePath - Düğümün XPath yolunu döndürür
    • DOMNode::getRootNode - Get root node
    • DOMNode::hasAttributes - Düğümün öznitelikleri var mı diye bakar
    • DOMNode::hasChildNodes - Düğümün çocuk düğümleri var mı diye bakar
    • DOMNode::insertBefore - Yeni çocuğu belirtilen çocuğun öncesine yerleştirir
    • DOMNode::isDefaultNamespace - Belirtilen isim alanının öntanımlı olup olmadığına bakar
    • DOMNode::isEqualNode - Checks that both nodes are equal
    • DOMNode::isSameNode - İki düğüm aynı mı diye bakar
    • DOMNode::isSupported - Özelliğin belirtilen sürümünün desteklenip desteklenmediğine bakar
    • DOMNode::lookupNamespaceURI - İsim alanı öneki belirtilen düğümün isim alanı betimleyicisini döndürür
    • DOMNode::lookupPrefix - Belirtilen isim alanıyla ilişkili düğümün isim alanı önekini döndürür
    • DOMNode::normalize - Düğümü normalleştirir
    • DOMNode::removeChild - Listeden belirtilen çocuğu siler
    • DOMNode::replaceChild - Bir çocuk düğümü yenisi ile değiştirir
    • DOMNodeList::count - Listedeki düğüm sayısını döndürür
    • DOMNodeList::getIterator - Retrieve an external iterator
    • DOMNodelist::item - İndisi belirtilen düğümü döndürür
    • DOMParentNode::append - Appends nodes after the last child node
    • DOMParentNode::prepend - Prepends nodes before the first child node
    • DOMParentNode::replaceChildren - Replace children in node
    • DOMProcessingInstruction::__construct - Yeni bir DOMProcessingInstruction nesnesi oluşturur
    • DOMText::isElementContentWhitespace - Metin düğümünün eleman içeriğinde boşluk karakterleri varsa true döndürür
    • DOMText::isWhitespaceInElementContent - Düğümün boşluk içerip içermediğini belirtir
    • DOMText::splitText - Düğümü belirtilen konumda iki düğüme böler
    • DOMText::__construct - Yeni bir DOMText nesnesi oluşturur
    • DOMXPath::evaluate - Belirtilen XPath ifadesini çözümler ve mümkünse yazılı bir sonuç verir
    • DOMXPath::query - Belirtilen XPath ifadesini değerlendirir
    • DOMXPath::registerNamespace - Belirtilen isim alanını DOMXPath nesnesi ile ilişkilendirir
    • DOMXPath::registerPhpFunctions - PHP işlevlerini XPath ifadelerinde kullanılabilir yapar
    • DOMXPath::__construct - Yeni bir DOMXPath nesnesi oluşturur
    • dom_import_simplexml - Bir SimpleXMLElement düğümü alıp bir DOMElement düğümü döndürür
    • dotnet::__construct - dotnet nesnesi oluşturur
    • doubleval - floatval işlevinin takma ismidir
    • Ds\Collection::clear - Removes all values
    • Ds\Collection::copy - Returns a shallow copy of the collection
    • Ds\Collection::isEmpty - Returns whether the collection is empty
    • Ds\Collection::toArray - Converts the collection to an array
    • Ds\Deque::allocate - Allocates enough memory for a required capacity
    • Ds\Deque::apply - Updates all values by applying a callback function to each value
    • Ds\Deque::capacity - Returns the current capacity
    • Ds\Deque::clear - Removes all values from the deque
    • Ds\Deque::contains - Determines if the deque contains given values
    • Ds\Deque::copy - Returns a shallow copy of the deque
    • Ds\Deque::count - Returns the number of values in the collection
    • Ds\Deque::filter - Creates a new deque using a callable to determine which values to include
    • Ds\Deque::find - Attempts to find a value's index
    • Ds\Deque::first - Returns the first value in the deque
    • Ds\Deque::get - Returns the value at a given index
    • Ds\Deque::insert - Inserts values at a given index
    • Ds\Deque::isEmpty - Returns whether the deque is empty
    • Ds\Deque::join - Joins all values together as a string
    • Ds\Deque::jsonSerialize - Returns a representation that can be converted to JSON
    • Ds\Deque::last - Returns the last value
    • Ds\Deque::map - Returns the result of applying a callback to each value
    • Ds\Deque::merge - Returns the result of adding all given values to the deque
    • Ds\Deque::pop - Removes and returns the last value
    • Ds\Deque::push - Adds values to the end of the deque
    • Ds\Deque::reduce - Reduces the deque to a single value using a callback function
    • Ds\Deque::remove - Removes and returns a value by index
    • Ds\Deque::reverse - Reverses the deque in-place
    • Ds\Deque::reversed - Returns a reversed copy
    • Ds\Deque::rotate - Rotates the deque by a given number of rotations
    • Ds\Deque::set - Updates a value at a given index
    • Ds\Deque::shift - Removes and returns the first value
    • Ds\Deque::slice - Returns a sub-deque of a given range
    • Ds\Deque::sort - Sorts the deque in-place
    • Ds\Deque::sorted - Returns a sorted copy
    • Ds\Deque::sum - Returns the sum of all values in the deque
    • Ds\Deque::toArray - Converts the deque to an array
    • Ds\Deque::unshift - Adds values to the front of the deque
    • Ds\Deque::__construct - Creates a new instance
    • Ds\Hashable::equals - Determines whether an object is equal to the current instance
    • Ds\Hashable::hash - Returns a scalar value to be used as a hash value
    • Ds\Map::allocate - Allocates enough memory for a required capacity
    • Ds\Map::apply - Updates all values by applying a callback function to each value
    • Ds\Map::capacity - Returns the current capacity
    • Ds\Map::clear - Removes all values
    • Ds\Map::copy - Returns a shallow copy of the map
    • Ds\Map::count - Returns the number of values in the map
    • Ds\Map::diff - Creates a new map using keys that aren't in another map
    • Ds\Map::filter - Creates a new map using a callable to determine which pairs to include
    • Ds\Map::first - Returns the first pair in the map
    • Ds\Map::get - Returns the value for a given key
    • Ds\Map::hasKey - Determines whether the map contains a given key
    • Ds\Map::hasValue - Determines whether the map contains a given value
    • Ds\Map::intersect - Creates a new map by intersecting keys with another map
    • Ds\Map::isEmpty - Returns whether the map is empty
    • Ds\Map::jsonSerialize - Returns a representation that can be converted to JSON
    • Ds\Map::keys - Returns a set of the map's keys
    • Ds\Map::ksort - Sorts the map in-place by key
    • Ds\Map::ksorted - Returns a copy, sorted by key
    • Ds\Map::last - Returns the last pair of the map
    • Ds\Map::map - Returns the result of applying a callback to each value
    • Ds\Map::merge - Returns the result of adding all given associations
    • Ds\Map::pairs - Returns a sequence containing all the pairs of the map
    • Ds\Map::put - Associates a key with a value
    • Ds\Map::putAll - Associates all key-value pairs of a traversable object or array
    • Ds\Map::reduce - Reduces the map to a single value using a callback function
    • Ds\Map::remove - Removes and returns a value by key
    • Ds\Map::reverse - Reverses the map in-place
    • Ds\Map::reversed - Returns a reversed copy
    • Ds\Map::skip - Returns the pair at a given positional index
    • Ds\Map::slice - Returns a subset of the map defined by a starting index and length
    • Ds\Map::sort - Sorts the map in-place by value
    • Ds\Map::sorted - Returns a copy, sorted by value
    • Ds\Map::sum - Returns the sum of all values in the map
    • Ds\Map::toArray - Converts the map to an array
    • Ds\Map::union - Creates a new map using values from the current instance and another map
    • Ds\Map::values - Returns a sequence of the map's values
    • Ds\Map::xor - Creates a new map using keys of either the current instance or of another map, but not of both
    • Ds\Map::__construct - Creates a new instance
    • Ds\Pair::clear - Removes all values
    • Ds\Pair::copy - Returns a shallow copy of the pair
    • Ds\Pair::isEmpty - Returns whether the pair is empty
    • Ds\Pair::jsonSerialize - Returns a representation that can be converted to JSON
    • Ds\Pair::toArray - Converts the pair to an array
    • Ds\Pair::__construct - Creates a new instance
    • Ds\PriorityQueue::allocate - Allocates enough memory for a required capacity
    • Ds\PriorityQueue::capacity - Returns the current capacity
    • Ds\PriorityQueue::clear - Removes all values
    • Ds\PriorityQueue::copy - Returns a shallow copy of the queue
    • Ds\PriorityQueue::count - Returns the number of values in the queue
    • Ds\PriorityQueue::isEmpty - Returns whether the queue is empty
    • Ds\PriorityQueue::jsonSerialize - Returns a representation that can be converted to JSON
    • Ds\PriorityQueue::peek - Returns the value at the front of the queue
    • Ds\PriorityQueue::pop - Removes and returns the value with the highest priority
    • Ds\PriorityQueue::push - Pushes values into the queue
    • Ds\PriorityQueue::toArray - Converts the queue to an array
    • Ds\PriorityQueue::__construct - Creates a new instance
    • Ds\Queue::allocate - Allocates enough memory for a required capacity
    • Ds\Queue::capacity - Returns the current capacity
    • Ds\Queue::clear - Removes all values
    • Ds\Queue::copy - Returns a shallow copy of the queue
    • Ds\Queue::count - Returns the number of values in the queue
    • Ds\Queue::isEmpty - Returns whether the queue is empty
    • Ds\Queue::jsonSerialize - Returns a representation that can be converted to JSON
    • Ds\Queue::peek - Returns the value at the front of the queue
    • Ds\Queue::pop - Removes and returns the value at the front of the queue
    • Ds\Queue::push - Pushes values into the queue
    • Ds\Queue::toArray - Converts the queue to an array
    • Ds\Queue::__construct - Creates a new instance
    • Ds\Sequence::allocate - Allocates enough memory for a required capacity
    • Ds\Sequence::apply - Updates all values by applying a callback function to each value
    • Ds\Sequence::capacity - Returns the current capacity
    • Ds\Sequence::contains - Determines if the sequence contains given values
    • Ds\Sequence::filter - Creates a new sequence using a callable to determine which values to include
    • Ds\Sequence::find - Attempts to find a value's index
    • Ds\Sequence::first - Returns the first value in the sequence
    • Ds\Sequence::get - Returns the value at a given index
    • Ds\Sequence::insert - Inserts values at a given index
    • Ds\Sequence::join - Joins all values together as a string
    • Ds\Sequence::last - Returns the last value
    • Ds\Sequence::map - Returns the result of applying a callback to each value
    • Ds\Sequence::merge - Returns the result of adding all given values to the sequence
    • Ds\Sequence::pop - Removes and returns the last value
    • Ds\Sequence::push - Adds values to the end of the sequence
    • Ds\Sequence::reduce - Reduces the sequence to a single value using a callback function
    • Ds\Sequence::remove - Removes and returns a value by index
    • Ds\Sequence::reverse - Reverses the sequence in-place
    • Ds\Sequence::reversed - Returns a reversed copy
    • Ds\Sequence::rotate - Rotates the sequence by a given number of rotations
    • Ds\Sequence::set - Updates a value at a given index
    • Ds\Sequence::shift - Removes and returns the first value
    • Ds\Sequence::slice - Returns a sub-sequence of a given range
    • Ds\Sequence::sort - Sorts the sequence in-place
    • Ds\Sequence::sorted - Returns a sorted copy
    • Ds\Sequence::sum - Returns the sum of all values in the sequence
    • Ds\Sequence::unshift - Adds values to the front of the sequence
    • Ds\Set::add - Adds values to the set
    • Ds\Set::allocate - Allocates enough memory for a required capacity
    • Ds\Set::capacity - Returns the current capacity
    • Ds\Set::clear - Removes all values
    • Ds\Set::contains - Determines if the set contains all values
    • Ds\Set::copy - Returns a shallow copy of the set
    • Ds\Set::count - Returns the number of values in the set
    • Ds\Set::diff - Creates a new set using values that aren't in another set
    • Ds\Set::filter - Creates a new set using a callable to determine which values to include
    • Ds\Set::first - Returns the first value in the set
    • Ds\Set::get - Returns the value at a given index
    • Ds\Set::intersect - Creates a new set by intersecting values with another set
    • Ds\Set::isEmpty - Returns whether the set is empty
    • Ds\Set::join - Joins all values together as a string
    • Ds\Set::jsonSerialize - Returns a representation that can be converted to JSON
    • Ds\Set::last - Returns the last value in the set
    • Ds\Set::merge - Returns the result of adding all given values to the set
    • Ds\Set::reduce - Reduces the set to a single value using a callback function
    • Ds\Set::remove - Removes all given values from the set
    • Ds\Set::reverse - Reverses the set in-place
    • Ds\Set::reversed - Returns a reversed copy
    • Ds\Set::slice - Returns a sub-set of a given range
    • Ds\Set::sort - Sorts the set in-place
    • Ds\Set::sorted - Returns a sorted copy
    • Ds\Set::sum - Returns the sum of all values in the set
    • Ds\Set::toArray - Converts the set to an array
    • Ds\Set::union - Creates a new set using values from the current instance and another set
    • Ds\Set::xor - Creates a new set using values in either the current instance or in another set, but not in both
    • Ds\Set::__construct - Creates a new instance
    • Ds\Stack::allocate - Allocates enough memory for a required capacity
    • Ds\Stack::capacity - Returns the current capacity
    • Ds\Stack::clear - Removes all values
    • Ds\Stack::copy - Returns a shallow copy of the stack
    • Ds\Stack::count - Returns the number of values in the stack
    • Ds\Stack::isEmpty - Returns whether the stack is empty
    • Ds\Stack::jsonSerialize - Returns a representation that can be converted to JSON
    • Ds\Stack::peek - Returns the value at the top of the stack
    • Ds\Stack::pop - Removes and returns the value at the top of the stack
    • Ds\Stack::push - Pushes values onto the stack
    • Ds\Stack::toArray - Converts the stack to an array
    • Ds\Stack::__construct - Creates a new instance
    • Ds\Vector::allocate - Allocates enough memory for a required capacity
    • Ds\Vector::apply - Updates all values by applying a callback function to each value
    • Ds\Vector::capacity - Returns the current capacity
    • Ds\Vector::clear - Removes all values
    • Ds\Vector::contains - Determines if the vector contains given values
    • Ds\Vector::copy - Returns a shallow copy of the vector
    • Ds\Vector::count - Returns the number of values in the collection
    • Ds\Vector::filter - Creates a new vector using a callable to determine which values to include
    • Ds\Vector::find - Attempts to find a value's index
    • Ds\Vector::first - Returns the first value in the vector
    • Ds\Vector::get - Returns the value at a given index
    • Ds\Vector::insert - Inserts values at a given index
    • Ds\Vector::isEmpty - Returns whether the vector is empty
    • Ds\Vector::join - Joins all values together as a string
    • Ds\Vector::jsonSerialize - Returns a representation that can be converted to JSON
    • Ds\Vector::last - Returns the last value
    • Ds\Vector::map - Returns the result of applying a callback to each value
    • Ds\Vector::merge - Returns the result of adding all given values to the vector
    • Ds\Vector::pop - Removes and returns the last value
    • Ds\Vector::push - Adds values to the end of the vector
    • Ds\Vector::reduce - Reduces the vector to a single value using a callback function
    • Ds\Vector::remove - Removes and returns a value by index
    • Ds\Vector::reverse - Reverses the vector in-place
    • Ds\Vector::reversed - Returns a reversed copy
    • Ds\Vector::rotate - Rotates the vector by a given number of rotations
    • Ds\Vector::set - Updates a value at a given index
    • Ds\Vector::shift - Removes and returns the first value
    • Ds\Vector::slice - Returns a sub-vector of a given range
    • Ds\Vector::sort - Sorts the vector in-place
    • Ds\Vector::sorted - Returns a sorted copy
    • Ds\Vector::sum - Returns the sum of all values in the vector
    • Ds\Vector::toArray - Converts the vector to an array
    • Ds\Vector::unshift - Adds values to the front of the vector
    • Ds\Vector::__construct - Creates a new instance
  • e
    • each - Bir diziden, gösterici konumundaki anahtar değer çiftini döndürdükten sonra göstericiyi bir ilerletir
    • easter_date - Verilen yıl için paskalya gece yarısının unix zaman damgasını döner
    • easter_days - Verilen yıl için Paskalya zamanına, 21 Marttan sonraki kalan gün sayısını verir.
    • echo - Bir veya daha fazla dizgeyi çıktılar
    • eio_busy - Artificially increase load. Could be useful in tests, benchmarking
    • eio_cancel - Cancels a request
    • eio_chmod - Change file/directory permissions
    • eio_chown - Change file/directory permissions
    • eio_close - Close file
    • eio_custom - Execute custom request like any other eio_* call
    • eio_dup2 - Duplicate a file descriptor
    • eio_event_loop - Polls libeio until all requests proceeded
    • eio_fallocate - Allows the caller to directly manipulate the allocated disk space for a file
    • eio_fchmod - Change file permissions
    • eio_fchown - Change file ownership
    • eio_fdatasync - Synchronize a file's in-core state with storage device
    • eio_fstat - Get file status
    • eio_fstatvfs - Get file system statistics
    • eio_fsync - Synchronize a file's in-core state with storage device
    • eio_ftruncate - Truncate a file
    • eio_futime - Change file last access and modification times
    • eio_get_event_stream - Get stream representing a variable used in internal communications with libeio
    • eio_get_last_error - Returns string describing the last error associated with a request resource
    • eio_grp - Creates a request group
    • eio_grp_add - Adds a request to the request group
    • eio_grp_cancel - Cancels a request group
    • eio_grp_limit - Set group limit
    • eio_init - (Re-)initialize Eio
    • eio_link - Create a hardlink for file
    • eio_lstat - Get file status
    • eio_mkdir - Create directory
    • eio_mknod - Create a special or ordinary file
    • eio_nop - Does nothing, except go through the whole request cycle
    • eio_npending - Returns number of finished, but unhandled requests
    • eio_nready - Returns number of not-yet handled requests
    • eio_nreqs - Returns number of requests to be processed
    • eio_nthreads - Returns number of threads currently in use
    • eio_open - Opens a file
    • eio_poll - Can be to be called whenever there are pending requests that need finishing
    • eio_read - Read from a file descriptor at given offset
    • eio_readahead - Perform file readahead into page cache
    • eio_readdir - Reads through a whole directory
    • eio_readlink - Read value of a symbolic link
    • eio_realpath - Get the canonicalized absolute pathname
    • eio_rename - Change the name or location of a file
    • eio_rmdir - Remove a directory
    • eio_seek - Repositions the offset of the open file associated with the fd argument to the argument offset according to the directive whence
    • eio_sendfile - Transfer data between file descriptors
    • eio_set_max_idle - Set maximum number of idle threads
    • eio_set_max_parallel - Set maximum parallel threads
    • eio_set_max_poll_reqs - Set maximum number of requests processed in a poll
    • eio_set_max_poll_time - Set maximum poll time
    • eio_set_min_parallel - Set minimum parallel thread number
    • eio_stat - Get file status
    • eio_statvfs - Get file system statistics
    • eio_symlink - Create a symbolic link
    • eio_sync - Commit buffer cache to disk
    • eio_syncfs - Calls Linux' syncfs syscall, if available
    • eio_sync_file_range - Sync a file segment with disk
    • eio_truncate - Truncate a file
    • eio_unlink - Delete a name and possibly the file it refers to
    • eio_utime - Change file last access and modification times
    • eio_write - Write to file
    • empty - Bir değişkenin boş olup olmadığını saptar
    • EmptyIterator::current - The current() method
    • EmptyIterator::key - The key() method
    • EmptyIterator::next - The next() method
    • EmptyIterator::rewind - The rewind() method
    • EmptyIterator::valid - Checks whether the current element is valid
    • enchant_broker_describe - Enumerates the Enchant providers
    • enchant_broker_dict_exists - Whether a dictionary exists or not. Using non-empty tag
    • enchant_broker_free - Free the broker resource and its dictionaries
    • enchant_broker_free_dict - Free a dictionary resource
    • enchant_broker_get_dict_path - Get the directory path for a given backend
    • enchant_broker_get_error - Returns the last error of the broker
    • enchant_broker_init - Create a new broker object capable of requesting
    • enchant_broker_list_dicts - Returns a list of available dictionaries
    • enchant_broker_request_dict - Create a new dictionary using a tag
    • enchant_broker_request_pwl_dict - Creates a dictionary using a PWL file
    • enchant_broker_set_dict_path - Set the directory path for a given backend
    • enchant_broker_set_ordering - Declares a preference of dictionaries to use for the language
    • enchant_dict_add - Add a word to personal word list
    • enchant_dict_add_to_personal - Takma Adı: enchant_dict_add
    • enchant_dict_add_to_session - Add 'word' to this spell-checking session
    • enchant_dict_check - Check whether a word is correctly spelled or not
    • enchant_dict_describe - Describes an individual dictionary
    • enchant_dict_get_error - Returns the last error of the current spelling-session
    • enchant_dict_is_added - Whether or not 'word' exists in this spelling-session
    • enchant_dict_is_in_session - Takma Adı: enchant_dict_is_added
    • enchant_dict_quick_check - Check the word is correctly spelled and provide suggestions
    • enchant_dict_store_replacement - Add a correction for a word
    • enchant_dict_suggest - Will return a list of values if any of those pre-conditions are not met
    • end - Bir dizinin dahili göstericisini sonuncu elemana konumlandırır
    • enum_exists - Sayılamanın tanımlı olup olmadığını sınar
    • Error::getCode - Hata koduyla döner
    • Error::getFile - Hatanın oluştuğu dosyanın ismini döndürür
    • Error::getLine - Hatanı oluştuğu satırın numarasını döndürür
    • Error::getMessage - Hata iletisini döndürür
    • Error::getPrevious - Önceki hata nesnesini döndürür
    • Error::getTrace - Yığıt dökümünü dizi olarak döndürür
    • Error::getTraceAsString - Yığıt dökümünü dize olarak döndürür
    • Error::__clone - Hatayı kopyalayamaz
    • Error::__construct - Bir hata nesnesi oluşturur
    • Error::__toString - Hatanın dizesel görünümü
    • ErrorException::getSeverity - İstisnanın önem derecesi ile döner
    • ErrorException::__construct - İstisna oluşturur
    • error_clear_last - Sonuncu hatayı temizler
    • error_get_last - Son oluşan hata hakkında bilgi verir
    • error_log - Tanımlı hata işleme yordamlarına bir hata iletisi gönderir
    • error_reporting - Hangi PHP hatalarının raporlanacağını tanımlar
    • escapeshellarg - Bir komutun bağımsız değişken dizgesini önceler
    • escapeshellcmd - Kabuk özel karakterlerini önceler
    • Ev::backend - Returns an integer describing the backend used by libev
    • Ev::depth - Returns recursion depth
    • Ev::embeddableBackends - Returns the set of backends that are embeddable in other event loops
    • Ev::feedSignal - Feed a signal event info Ev
    • Ev::feedSignalEvent - Feed signal event into the default loop
    • Ev::iteration - Return the number of times the default event loop has polled for new events
    • Ev::now - Returns the time when the last iteration of the default event loop has started
    • Ev::nowUpdate - Establishes the current time by querying the kernel, updating the time returned by Ev::now in the progress
    • Ev::recommendedBackends - Returns a bit mask of recommended backends for current platform
    • Ev::resume - Resume previously suspended default event loop
    • Ev::run - Begin checking for events and calling callbacks for the default loop
    • Ev::sleep - Block the process for the given number of seconds
    • Ev::stop - Stops the default event loop
    • Ev::supportedBackends - Returns the set of backends supported by current libev configuration
    • Ev::suspend - Suspend the default event loop
    • Ev::time - Returns the current time in fractional seconds since the epoch
    • Ev::verify - Performs internal consistency checks(for debugging)
    • eval - Bir dizgeyi bir PHP kodu olarak yorumlar
    • EvCheck::createStopped - Create instance of a stopped EvCheck watcher
    • EvCheck::__construct - Constructs the EvCheck watcher object
    • EvChild::createStopped - Create instance of a stopped EvCheck watcher
    • EvChild::set - Configures the watcher
    • EvChild::__construct - Constructs the EvChild watcher object
    • EvEmbed::createStopped - Create stopped EvEmbed watcher object
    • EvEmbed::set - Configures the watcher
    • EvEmbed::sweep - Make a single, non-blocking sweep over the embedded loop
    • EvEmbed::__construct - Constructs the EvEmbed object
    • Event::add - Makes event pending
    • Event::addSignal - Takma Adı: Event::add
    • Event::addTimer - Takma Adı: Event::add
    • Event::del - Makes event non-pending
    • Event::delSignal - Takma Adı: Event::del
    • Event::delTimer - Takma Adı: Event::del
    • Event::free - Make event non-pending and free resources allocated for this event
    • Event::getSupportedMethods - Returns array with of the names of the methods supported in this version of Libevent
    • Event::pending - Detects whether event is pending or scheduled
    • Event::set - Re-configures event
    • Event::setPriority - Set event priority
    • Event::setTimer - Re-configures timer event
    • Event::signal - Constructs signal event object
    • Event::timer - Constructs timer event object
    • Event::__construct - Constructs Event object
    • EventBase::dispatch - Dispatch pending events
    • EventBase::exit - Stop dispatching events
    • EventBase::free - Free resources allocated for this event base
    • EventBase::getFeatures - Returns bitmask of features supported
    • EventBase::getMethod - Returns event method in use
    • EventBase::getTimeOfDayCached - Returns the current event base time
    • EventBase::gotExit - Checks if the event loop was told to exit
    • EventBase::gotStop - Checks if the event loop was told to exit
    • EventBase::loop - Dispatch pending events
    • EventBase::priorityInit - Sets number of priorities per event base
    • EventBase::reInit - Re-initialize event base(after a fork)
    • EventBase::stop - Tells event_base to stop dispatching events
    • EventBase::__construct - Constructs EventBase object
    • EventBuffer::add - Append data to the end of an event buffer
    • EventBuffer::addBuffer - Move all data from a buffer provided to the current instance of EventBuffer
    • EventBuffer::appendFrom - Moves the specified number of bytes from a source buffer to the end of the current buffer
    • EventBuffer::copyout - Copies out specified number of bytes from the front of the buffer
    • EventBuffer::drain - Removes specified number of bytes from the front of the buffer without copying it anywhere
    • EventBuffer::enableLocking - Açıklama
    • EventBuffer::expand - Reserves space in buffer
    • EventBuffer::freeze - Prevent calls that modify an event buffer from succeeding
    • EventBuffer::lock - Acquires a lock on buffer
    • EventBuffer::prepend - Prepend data to the front of the buffer
    • EventBuffer::prependBuffer - Moves all data from source buffer to the front of current buffer
    • EventBuffer::pullup - Linearizes data within buffer and returns it's contents as a string
    • EventBuffer::read - Read data from an evbuffer and drain the bytes read
    • EventBuffer::readFrom - Read data from a file onto the end of the buffer
    • EventBuffer::readLine - Extracts a line from the front of the buffer
    • EventBuffer::search - Scans the buffer for an occurrence of a string
    • EventBuffer::searchEol - Scans the buffer for an occurrence of an end of line
    • EventBuffer::substr - Substracts a portion of the buffer data
    • EventBuffer::unfreeze - Re-enable calls that modify an event buffer
    • EventBuffer::unlock - Releases lock acquired by EventBuffer::lock
    • EventBuffer::write - Write contents of the buffer to a file or socket
    • EventBuffer::__construct - Constructs EventBuffer object
    • EventBufferEvent::close - Closes file descriptor associated with the current buffer event
    • EventBufferEvent::connect - Connect buffer event's file descriptor to given address or UNIX socket
    • EventBufferEvent::connectHost - Connects to a hostname with optionally asyncronous DNS resolving
    • EventBufferEvent::createPair - Creates two buffer events connected to each other
    • EventBufferEvent::disable - Disable events read, write, or both on a buffer event
    • EventBufferEvent::enable - Enable events read, write, or both on a buffer event
    • EventBufferEvent::free - Free a buffer event
    • EventBufferEvent::getDnsErrorString - Returns string describing the last failed DNS lookup attempt
    • EventBufferEvent::getEnabled - Returns bitmask of events currently enabled on the buffer event
    • EventBufferEvent::getInput - Returns underlying input buffer associated with current buffer event
    • EventBufferEvent::getOutput - Returns underlying output buffer associated with current buffer event
    • EventBufferEvent::read - Read buffer's data
    • EventBufferEvent::readBuffer - Drains the entire contents of the input buffer and places them into buf
    • EventBufferEvent::setCallbacks - Assigns read, write and event(status) callbacks
    • EventBufferEvent::setPriority - Assign a priority to a bufferevent
    • EventBufferEvent::setTimeouts - Set the read and write timeout for a buffer event
    • EventBufferEvent::setWatermark - Adjusts read and/or write watermarks
    • EventBufferEvent::sslError - Returns most recent OpenSSL error reported on the buffer event
    • EventBufferEvent::sslFilter - Create a new SSL buffer event to send its data over another buffer event
    • EventBufferEvent::sslGetCipherInfo - Returns a textual description of the cipher
    • EventBufferEvent::sslGetCipherName - Returns the current cipher name of the SSL connection
    • EventBufferEvent::sslGetCipherVersion - Returns version of cipher used by current SSL connection
    • EventBufferEvent::sslGetProtocol - Returns the name of the protocol used for current SSL connection
    • EventBufferEvent::sslRenegotiate - Tells a bufferevent to begin SSL renegotiation
    • EventBufferEvent::sslSocket - Creates a new SSL buffer event to send its data over an SSL on a socket
    • EventBufferEvent::write - Adds data to a buffer event's output buffer
    • EventBufferEvent::writeBuffer - Adds contents of the entire buffer to a buffer event's output buffer
    • EventBufferEvent::__construct - Constructs EventBufferEvent object
    • EventConfig::avoidMethod - Tells libevent to avoid specific event method
    • EventConfig::requireFeatures - Enters a required event method feature that the application demands
    • EventConfig::setFlags - Sets one or more flags to configure the eventual EventBase will be initialized
    • EventConfig::setMaxDispatchInterval - Prevents priority inversion
    • EventConfig::__construct - Constructs EventConfig object
    • EventDnsBase::addNameserverIp - Adds a nameserver to the DNS base
    • EventDnsBase::addSearch - Adds a domain to the list of search domains
    • EventDnsBase::clearSearch - Removes all current search suffixes
    • EventDnsBase::countNameservers - Gets the number of configured nameservers
    • EventDnsBase::loadHosts - Loads a hosts file (in the same format as /etc/hosts) from hosts file
    • EventDnsBase::parseResolvConf - Scans the resolv.conf-formatted file
    • EventDnsBase::setOption - Set the value of a configuration option
    • EventDnsBase::setSearchNdots - Set the 'ndots' parameter for searches
    • EventDnsBase::__construct - Constructs EventDnsBase object
    • EventHttp::accept - Makes an HTTP server accept connections on the specified socket stream or resource
    • EventHttp::addServerAlias - Adds a server alias to the HTTP server object
    • EventHttp::bind - Binds an HTTP server on the specified address and port
    • EventHttp::removeServerAlias - Removes server alias
    • EventHttp::setAllowedMethods - Sets the what HTTP methods are supported in requests accepted by this server, and passed to user callbacks
    • EventHttp::setCallback - Sets a callback for specified URI
    • EventHttp::setDefaultCallback - Sets default callback to handle requests that are not caught by specific callbacks
    • EventHttp::setMaxBodySize - Sets maximum request body size
    • EventHttp::setMaxHeadersSize - Sets maximum HTTP header size
    • EventHttp::setTimeout - Sets the timeout for an HTTP request
    • EventHttp::__construct - Constructs EventHttp object (the HTTP server)
    • EventHttpConnection::getBase - Returns event base associated with the connection
    • EventHttpConnection::getPeer - Gets the remote address and port associated with the connection
    • EventHttpConnection::makeRequest - Makes an HTTP request over the specified connection
    • EventHttpConnection::setCloseCallback - Set callback for connection close
    • EventHttpConnection::setLocalAddress - Sets the IP address from which HTTP connections are made
    • EventHttpConnection::setLocalPort - Sets the local port from which connections are made
    • EventHttpConnection::setMaxBodySize - Sets maximum body size for the connection
    • EventHttpConnection::setMaxHeadersSize - Sets maximum header size
    • EventHttpConnection::setRetries - Sets the retry limit for the connection
    • EventHttpConnection::setTimeout - Sets the timeout for the connection
    • EventHttpConnection::__construct - Constructs EventHttpConnection object
    • EventHttpRequest::addHeader - Adds an HTTP header to the headers of the request
    • EventHttpRequest::cancel - Cancels a pending HTTP request
    • EventHttpRequest::clearHeaders - Removes all output headers from the header list of the request
    • EventHttpRequest::closeConnection - Closes associated HTTP connection
    • EventHttpRequest::findHeader - Finds the value belonging a header
    • EventHttpRequest::free - Frees the object and removes associated events
    • EventHttpRequest::getBufferEvent - Returns EventBufferEvent object
    • EventHttpRequest::getCommand - Returns the request command(method)
    • EventHttpRequest::getConnection - Returns EventHttpConnection object
    • EventHttpRequest::getHost - Returns the request host
    • EventHttpRequest::getInputBuffer - Returns the input buffer
    • EventHttpRequest::getInputHeaders - Returns associative array of the input headers
    • EventHttpRequest::getOutputBuffer - Returns the output buffer of the request
    • EventHttpRequest::getOutputHeaders - Returns associative array of the output headers
    • EventHttpRequest::getResponseCode - Returns the response code
    • EventHttpRequest::getUri - Returns the request URI
    • EventHttpRequest::removeHeader - Removes an HTTP header from the headers of the request
    • EventHttpRequest::sendError - Send an HTML error message to the client
    • EventHttpRequest::sendReply - Send an HTML reply to the client
    • EventHttpRequest::sendReplyChunk - Send another data chunk as part of an ongoing chunked reply
    • EventHttpRequest::sendReplyEnd - Complete a chunked reply, freeing the request as appropriate
    • EventHttpRequest::sendReplyStart - Initiate a chunked reply
    • EventHttpRequest::__construct - Constructs EventHttpRequest object
    • EventListener::disable - Disables an event connect listener object
    • EventListener::enable - Enables an event connect listener object
    • EventListener::getBase - Returns event base associated with the event listener
    • EventListener::getSocketName - Retreives the current address to which the listener's socket is bound
    • EventListener::setCallback - The setCallback purpose
    • EventListener::setErrorCallback - Set event listener's error callback
    • EventListener::__construct - Creates new connection listener associated with an event base
    • EventSslContext::__construct - Constructs an OpenSSL context for use with Event classes
    • EventUtil::getLastSocketErrno - Returns the most recent socket error number
    • EventUtil::getLastSocketError - Returns the most recent socket error
    • EventUtil::getSocketFd - Returns numeric file descriptor of a socket, or stream
    • EventUtil::getSocketName - Retreives the current address to which the socket is bound
    • EventUtil::setSocketOption - Sets socket options
    • EventUtil::sslRandPoll - Generates entropy by means of OpenSSL's RAND_poll()
    • EventUtil::__construct - The abstract constructor
    • EvFork::createStopped - Creates a stopped instance of EvFork watcher class
    • EvFork::__construct - Constructs the EvFork watcher object
    • EvIdle::createStopped - Creates instance of a stopped EvIdle watcher object
    • EvIdle::__construct - Constructs the EvIdle watcher object
    • EvIo::createStopped - Create stopped EvIo watcher object
    • EvIo::set - Configures the watcher
    • EvIo::__construct - Constructs EvIo watcher object
    • EvLoop::backend - Returns an integer describing the backend used by libev
    • EvLoop::check - Creates EvCheck object associated with the current event loop instance
    • EvLoop::child - Creates EvChild object associated with the current event loop
    • EvLoop::defaultLoop - Returns or creates the default event loop
    • EvLoop::embed - Creates an instance of EvEmbed watcher associated with the current EvLoop object
    • EvLoop::fork - Creates EvFork watcher object associated with the current event loop instance
    • EvLoop::idle - Creates EvIdle watcher object associated with the current event loop instance
    • EvLoop::invokePending - Invoke all pending watchers while resetting their pending state
    • EvLoop::io - Create EvIo watcher object associated with the current event loop instance
    • EvLoop::loopFork - Must be called after a fork
    • EvLoop::now - Returns the current "event loop time"
    • EvLoop::nowUpdate - Establishes the current time by querying the kernel, updating the time returned by EvLoop::now in the progress
    • EvLoop::periodic - Creates EvPeriodic watcher object associated with the current event loop instance
    • EvLoop::prepare - Creates EvPrepare watcher object associated with the current event loop instance
    • EvLoop::resume - Resume previously suspended default event loop
    • EvLoop::run - Begin checking for events and calling callbacks for the loop
    • EvLoop::signal - Creates EvSignal watcher object associated with the current event loop instance
    • EvLoop::stat - Creates EvStat watcher object associated with the current event loop instance
    • EvLoop::stop - Stops the event loop
    • EvLoop::suspend - Suspend the loop
    • EvLoop::timer - Creates EvTimer watcher object associated with the current event loop instance
    • EvLoop::verify - Performs internal consistency checks(for debugging)
    • EvLoop::__construct - Constructs the event loop object
    • EvPeriodic::again - Simply stops and restarts the periodic watcher again
    • EvPeriodic::at - Returns the absolute time that this watcher is supposed to trigger next
    • EvPeriodic::createStopped - Create a stopped EvPeriodic watcher
    • EvPeriodic::set - Configures the watcher
    • EvPeriodic::__construct - Constructs EvPeriodic watcher object
    • EvPrepare::createStopped - Creates a stopped instance of EvPrepare watcher
    • EvPrepare::__construct - Constructs EvPrepare watcher object
    • EvSignal::createStopped - Create stopped EvSignal watcher object
    • EvSignal::set - Configures the watcher
    • EvSignal::__construct - Constructs EvSignal watcher object
    • EvStat::attr - Returns the values most recently detected by Ev
    • EvStat::createStopped - Create a stopped EvStat watcher object
    • EvStat::prev - Returns the previous set of values returned by EvStat::attr
    • EvStat::set - Configures the watcher
    • EvStat::stat - Initiates the stat call
    • EvStat::__construct - Constructs EvStat watcher object
    • EvTimer::again - Restarts the timer watcher
    • EvTimer::createStopped - Creates EvTimer stopped watcher object
    • EvTimer::set - Configures the watcher
    • EvTimer::__construct - Constructs an EvTimer watcher object
    • EvWatcher::clear - Clear watcher pending status
    • EvWatcher::feed - Feeds the given revents set into the event loop
    • EvWatcher::getLoop - Returns the loop responsible for the watcher
    • EvWatcher::invoke - Invokes the watcher callback with the given received events bit mask
    • EvWatcher::keepalive - Configures whether to keep the loop from returning
    • EvWatcher::setCallback - Sets new callback for the watcher
    • EvWatcher::start - Starts the watcher
    • EvWatcher::stop - Stops the watcher
    • EvWatcher::__construct - Abstract constructor of a watcher object
    • Exception::getCode - İstisnanın numarası ile döner
    • Exception::getFile - İstisnanın oluştuğu dosyanın adı ile döner
    • Exception::getLine - İstisnanın oluştuğu satırın numarası ile döner
    • Exception::getMessage - İstisna iletisi ile döner
    • Exception::getPrevious - Önceki Throwable nesnesini döndürür
    • Exception::getTrace - Yığıt iziyle döner
    • Exception::getTraceAsString - Yığıt izini bir dizge olarak döndürür
    • Exception::__clone - İstisna kopyası
    • Exception::__construct - İstisna oluşturur
    • Exception::__toString - İstisnanın dizgesel gösterimiyle döner
    • exec - Bir komut çalıştırır
    • Executable::execute - Execute statement
    • ExecutionStatus::__construct - ExecutionStatus constructor
    • exif_imagetype - Bir görüntünün türünü saptar
    • exif_read_data - Bir görüntü dosyasından EXIF başlıklarını okur
    • exif_tagname - Bir indis için başlık ismini döndürür
    • exif_thumbnail - Bir TIFF veya JPEG görüntüsünü içinde gömülü küçük örneği döndürür
    • exit - Bir ileti çıktılayıp çalışmakta olan betiği sonlandırır
    • exp - Calculates the exponent of e
    • expect_expectl - Waits until the output from a process matches one of the patterns, a specified time period has passed, or an EOF is seen
    • expect_popen - Execute command via Bourne shell, and open the PTY stream to the process
    • explode - Bir dizgeyi bir ayraca göre bölüp bir dizi haline getirir
    • expm1 - Returns exp($num) - 1, computed in a way that is accurate even when the value of number is close to zero
    • expression - Bind prepared statement variables as parameters
    • Expression::__construct - Expression constructor
    • extension_loaded - Belirtilen eklenti yüklü mü diye bakar
    • extract - Bir dizideki değişkenleri simge tablosuna dahil eder
    • ezmlm_hash - EZMLM için gereken ileti özetini hesaplar
  • f
    • FANNConnection::getFromNeuron - Returns the postions of starting neuron
    • FANNConnection::getToNeuron - Returns the postions of terminating neuron
    • FANNConnection::getWeight - Returns the connection weight
    • FANNConnection::setWeight - Sets the connections weight
    • FANNConnection::__construct - The connection constructor
    • fann_cascadetrain_on_data - Trains on an entire dataset, for a period of time using the Cascade2 training algorithm
    • fann_cascadetrain_on_file - Trains on an entire dataset read from file, for a period of time using the Cascade2 training algorithm
    • fann_clear_scaling_params - Clears scaling parameters
    • fann_copy - Creates a copy of a fann structure
    • fann_create_from_file - Constructs a backpropagation neural network from a configuration file
    • fann_create_shortcut - Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections
    • fann_create_shortcut_array - Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections
    • fann_create_sparse - Creates a standard backpropagation neural network, which is not fully connected
    • fann_create_sparse_array - Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes
    • fann_create_standard - Creates a standard fully connected backpropagation neural network
    • fann_create_standard_array - Creates a standard fully connected backpropagation neural network using an array of layer sizes
    • fann_create_train - Creates an empty training data struct
    • fann_create_train_from_callback - Creates the training data struct from a user supplied function
    • fann_descale_input - Scale data in input vector after get it from ann based on previously calculated parameters
    • fann_descale_output - Scale data in output vector after get it from ann based on previously calculated parameters
    • fann_descale_train - Descale input and output data based on previously calculated parameters
    • fann_destroy - Destroys the entire network and properly freeing all the associated memory
    • fann_destroy_train - Destructs the training data
    • fann_duplicate_train_data - Returns an exact copy of a fann train data
    • fann_get_activation_function - Returns the activation function
    • fann_get_activation_steepness - Returns the activation steepness for supplied neuron and layer number
    • fann_get_bias_array - Get the number of bias in each layer in the network
    • fann_get_bit_fail - The number of fail bits
    • fann_get_bit_fail_limit - Returns the bit fail limit used during training
    • fann_get_cascade_activation_functions - Returns the cascade activation functions
    • fann_get_cascade_activation_functions_count - Returns the number of cascade activation functions
    • fann_get_cascade_activation_steepnesses - Returns the cascade activation steepnesses
    • fann_get_cascade_activation_steepnesses_count - The number of activation steepnesses
    • fann_get_cascade_candidate_change_fraction - Returns the cascade candidate change fraction
    • fann_get_cascade_candidate_limit - Return the candidate limit
    • fann_get_cascade_candidate_stagnation_epochs - Returns the number of cascade candidate stagnation epochs
    • fann_get_cascade_max_cand_epochs - Returns the maximum candidate epochs
    • fann_get_cascade_max_out_epochs - Returns the maximum out epochs
    • fann_get_cascade_min_cand_epochs - Returns the minimum candidate epochs
    • fann_get_cascade_min_out_epochs - Returns the minimum out epochs
    • fann_get_cascade_num_candidates - Returns the number of candidates used during training
    • fann_get_cascade_num_candidate_groups - Returns the number of candidate groups
    • fann_get_cascade_output_change_fraction - Returns the cascade output change fraction
    • fann_get_cascade_output_stagnation_epochs - Returns the number of cascade output stagnation epochs
    • fann_get_cascade_weight_multiplier - Returns the weight multiplier
    • fann_get_connection_array - Get connections in the network
    • fann_get_connection_rate - Get the connection rate used when the network was created
    • fann_get_errno - Returns the last error number
    • fann_get_errstr - Returns the last errstr
    • fann_get_layer_array - Get the number of neurons in each layer in the network
    • fann_get_learning_momentum - Returns the learning momentum
    • fann_get_learning_rate - Returns the learning rate
    • fann_get_MSE - Reads the mean square error from the network
    • fann_get_network_type - Get the type of neural network it was created as
    • fann_get_num_input - Get the number of input neurons
    • fann_get_num_layers - Get the number of layers in the neural network
    • fann_get_num_output - Get the number of output neurons
    • fann_get_quickprop_decay - Returns the decay which is a factor that weights should decrease in each iteration during quickprop training
    • fann_get_quickprop_mu - Returns the mu factor
    • fann_get_rprop_decrease_factor - Returns the increase factor used during RPROP training
    • fann_get_rprop_delta_max - Returns the maximum step-size
    • fann_get_rprop_delta_min - Returns the minimum step-size
    • fann_get_rprop_delta_zero - Returns the initial step-size
    • fann_get_rprop_increase_factor - Returns the increase factor used during RPROP training
    • fann_get_sarprop_step_error_shift - Returns the sarprop step error shift
    • fann_get_sarprop_step_error_threshold_factor - Returns the sarprop step error threshold factor
    • fann_get_sarprop_temperature - Returns the sarprop temperature
    • fann_get_sarprop_weight_decay_shift - Returns the sarprop weight decay shift
    • fann_get_total_connections - Get the total number of connections in the entire network
    • fann_get_total_neurons - Get the total number of neurons in the entire network
    • fann_get_training_algorithm - Returns the training algorithm
    • fann_get_train_error_function - Returns the error function used during training
    • fann_get_train_stop_function - Returns the stop function used during training
    • fann_init_weights - Initialize the weights using Widrow + Nguyen’s algorithm
    • fann_length_train_data - Returns the number of training patterns in the train data
    • fann_merge_train_data - Merges the train data
    • fann_num_input_train_data - Returns the number of inputs in each of the training patterns in the train data
    • fann_num_output_train_data - Returns the number of outputs in each of the training patterns in the train data
    • fann_print_error - Prints the error string
    • fann_randomize_weights - Give each connection a random weight between min_weight and max_weight
    • fann_read_train_from_file - Reads a file that stores training data
    • fann_reset_errno - Resets the last error number
    • fann_reset_errstr - Resets the last error string
    • fann_reset_MSE - Resets the mean square error from the network
    • fann_run - Will run input through the neural network
    • fann_save - Saves the entire network to a configuration file
    • fann_save_train - Save the training structure to a file
    • fann_scale_input - Scale data in input vector before feed it to ann based on previously calculated parameters
    • fann_scale_input_train_data - Scales the inputs in the training data to the specified range
    • fann_scale_output - Scale data in output vector before feed it to ann based on previously calculated parameters
    • fann_scale_output_train_data - Scales the outputs in the training data to the specified range
    • fann_scale_train - Scale input and output data based on previously calculated parameters
    • fann_scale_train_data - Scales the inputs and outputs in the training data to the specified range
    • fann_set_activation_function - Sets the activation function for supplied neuron and layer
    • fann_set_activation_function_hidden - Sets the activation function for all of the hidden layers
    • fann_set_activation_function_layer - Sets the activation function for all the neurons in the supplied layer
    • fann_set_activation_function_output - Sets the activation function for the output layer
    • fann_set_activation_steepness - Sets the activation steepness for supplied neuron and layer number
    • fann_set_activation_steepness_hidden - Sets the steepness of the activation steepness for all neurons in the all hidden layers
    • fann_set_activation_steepness_layer - Sets the activation steepness for all of the neurons in the supplied layer number
    • fann_set_activation_steepness_output - Sets the steepness of the activation steepness in the output layer
    • fann_set_bit_fail_limit - Set the bit fail limit used during training
    • fann_set_callback - Sets the callback function for use during training
    • fann_set_cascade_activation_functions - Sets the array of cascade candidate activation functions
    • fann_set_cascade_activation_steepnesses - Sets the array of cascade candidate activation steepnesses
    • fann_set_cascade_candidate_change_fraction - Sets the cascade candidate change fraction
    • fann_set_cascade_candidate_limit - Sets the candidate limit
    • fann_set_cascade_candidate_stagnation_epochs - Sets the number of cascade candidate stagnation epochs
    • fann_set_cascade_max_cand_epochs - Sets the max candidate epochs
    • fann_set_cascade_max_out_epochs - Sets the maximum out epochs
    • fann_set_cascade_min_cand_epochs - Sets the min candidate epochs
    • fann_set_cascade_min_out_epochs - Sets the minimum out epochs
    • fann_set_cascade_num_candidate_groups - Sets the number of candidate groups
    • fann_set_cascade_output_change_fraction - Sets the cascade output change fraction
    • fann_set_cascade_output_stagnation_epochs - Sets the number of cascade output stagnation epochs
    • fann_set_cascade_weight_multiplier - Sets the weight multiplier
    • fann_set_error_log - Sets where the errors are logged to
    • fann_set_input_scaling_params - Calculate input scaling parameters for future use based on training data
    • fann_set_learning_momentum - Sets the learning momentum
    • fann_set_learning_rate - Sets the learning rate
    • fann_set_output_scaling_params - Calculate output scaling parameters for future use based on training data
    • fann_set_quickprop_decay - Sets the quickprop decay factor
    • fann_set_quickprop_mu - Sets the quickprop mu factor
    • fann_set_rprop_decrease_factor - Sets the decrease factor used during RPROP training
    • fann_set_rprop_delta_max - Sets the maximum step-size
    • fann_set_rprop_delta_min - Sets the minimum step-size
    • fann_set_rprop_delta_zero - Sets the initial step-size
    • fann_set_rprop_increase_factor - Sets the increase factor used during RPROP training
    • fann_set_sarprop_step_error_shift - Sets the sarprop step error shift
    • fann_set_sarprop_step_error_threshold_factor - Sets the sarprop step error threshold factor
    • fann_set_sarprop_temperature - Sets the sarprop temperature
    • fann_set_sarprop_weight_decay_shift - Sets the sarprop weight decay shift
    • fann_set_scaling_params - Calculate input and output scaling parameters for future use based on training data
    • fann_set_training_algorithm - Sets the training algorithm
    • fann_set_train_error_function - Sets the error function used during training
    • fann_set_train_stop_function - Sets the stop function used during training
    • fann_set_weight - Set a connection in the network
    • fann_set_weight_array - Set connections in the network
    • fann_shuffle_train_data - Shuffles training data, randomizing the order
    • fann_subset_train_data - Returns an copy of a subset of the train data
    • fann_test - Test with a set of inputs, and a set of desired outputs
    • fann_test_data - Test a set of training data and calculates the MSE for the training data
    • fann_train - Train one iteration with a set of inputs, and a set of desired outputs
    • fann_train_epoch - Train one epoch with a set of training data
    • fann_train_on_data - Trains on an entire dataset for a period of time
    • fann_train_on_file - Trains on an entire dataset, which is read from file, for a period of time
    • fastcgi_finish_request - Flushes all response data to the client
    • fbird_add_user - Takma Adı: ibase_add_user
    • fbird_affected_rows - Takma Adı: ibase_affected_rows
    • fbird_backup - Takma Adı: ibase_backup
    • fbird_blob_add - Takma Adı: ibase_blob_add
    • fbird_blob_cancel - Cancel creating blob
    • fbird_blob_close - Takma Adı: ibase_blob_close
    • fbird_blob_create - Takma Adı: ibase_blob_create
    • fbird_blob_echo - Takma Adı: ibase_blob_echo
    • fbird_blob_get - Takma Adı: ibase_blob_get
    • fbird_blob_import - Takma Adı: ibase_blob_import
    • fbird_blob_info - Takma Adı: ibase_blob_info
    • fbird_blob_open - Takma Adı: ibase_blob_open
    • fbird_close - Takma Adı: ibase_close
    • fbird_commit - Takma Adı: ibase_commit
    • fbird_commit_ret - Takma Adı: ibase_commit_ret
    • fbird_connect - Takma Adı: ibase_connect
    • fbird_db_info - Takma Adı: ibase_db_info
    • fbird_delete_user - Takma Adı: ibase_delete_user
    • fbird_drop_db - Takma Adı: ibase_drop_db
    • fbird_errcode - Takma Adı: ibase_errcode
    • fbird_errmsg - Takma Adı: ibase_errmsg
    • fbird_execute - Takma Adı: ibase_execute
    • fbird_fetch_assoc - Takma Adı: ibase_fetch_assoc
    • fbird_fetch_object - Takma Adı: ibase_fetch_object
    • fbird_fetch_row - Takma Adı: ibase_fetch_row
    • fbird_field_info - Takma Adı: ibase_field_info
    • fbird_free_event_handler - Takma Adı: ibase_free_event_handler
    • fbird_free_query - Takma Adı: ibase_free_query
    • fbird_free_result - Takma Adı: ibase_free_result
    • fbird_gen_id - Takma Adı: ibase_gen_id
    • fbird_maintain_db - Takma Adı: ibase_maintain_db
    • fbird_modify_user - Takma Adı: ibase_modify_user
    • fbird_name_result - Takma Adı: ibase_name_result
    • fbird_num_fields - Takma Adı: ibase_num_fields
    • fbird_num_params - Takma Adı: ibase_num_params
    • fbird_param_info - Takma Adı: ibase_param_info
    • fbird_pconnect - Takma Adı: ibase_pconnect
    • fbird_prepare - Takma Adı: ibase_prepare
    • fbird_query - Takma Adı: ibase_query
    • fbird_restore - Takma Adı: ibase_restore
    • fbird_rollback - Takma Adı: ibase_rollback
    • fbird_rollback_ret - Takma Adı: ibase_rollback_ret
    • fbird_server_info - Takma Adı: ibase_server_info
    • fbird_service_attach - Takma Adı: ibase_service_attach
    • fbird_service_detach - Takma Adı: ibase_service_detach
    • fbird_set_event_handler - Takma Adı: ibase_set_event_handler
    • fbird_trans - Takma Adı: ibase_trans
    • fbird_wait_event - Takma Adı: ibase_wait_event
    • fclose - Açık bir dosya tanıtıcısını kapatır
    • fdatasync - Synchronizes data (but not meta-data) to the file
    • fdf_add_doc_javascript - Adds javascript code to the FDF document
    • fdf_add_template - Adds a template into the FDF document
    • fdf_close - Close an FDF document
    • fdf_create - Create a new FDF document
    • fdf_enum_values - Call a user defined function for each document value
    • fdf_errno - Return error code for last fdf operation
    • fdf_error - Return error description for FDF error code
    • fdf_get_ap - Get the appearance of a field
    • fdf_get_attachment - Extracts uploaded file embedded in the FDF
    • fdf_get_encoding - Get the value of the /Encoding key
    • fdf_get_file - Get the value of the /F key
    • fdf_get_flags - Gets the flags of a field
    • fdf_get_opt - Gets a value from the opt array of a field
    • fdf_get_status - Get the value of the /STATUS key
    • fdf_get_value - Get the value of a field
    • fdf_get_version - Gets version number for FDF API or file
    • fdf_header - Sets FDF-specific output headers
    • fdf_next_field_name - Get the next field name
    • fdf_open - Open a FDF document
    • fdf_open_string - Read a FDF document from a string
    • fdf_remove_item - Sets target frame for form
    • fdf_save - Save a FDF document
    • fdf_save_string - Returns the FDF document as a string
    • fdf_set_ap - Set the appearance of a field
    • fdf_set_encoding - Sets FDF character encoding
    • fdf_set_file - Set PDF document to display FDF data in
    • fdf_set_flags - Sets a flag of a field
    • fdf_set_javascript_action - Sets an javascript action of a field
    • fdf_set_on_import_javascript - Adds javascript code to be executed when Acrobat opens the FDF
    • fdf_set_opt - Sets an option of a field
    • fdf_set_status - Set the value of the /STATUS key
    • fdf_set_submit_form_action - Sets a submit form action of a field
    • fdf_set_target_frame - Set target frame for form display
    • fdf_set_value - Set the value of a field
    • fdf_set_version - Sets version number for a FDF file
    • fdiv - Divides two numbers, according to IEEE 754
    • feof - Bir dosya tanıtıcısı üzerinde konum dosya sonunda mı diye bakar
    • FFI::addr - Creates an unmanaged pointer to C data
    • FFI::alignof - Gets the alignment
    • FFI::arrayType - Dynamically constructs a new C array type
    • FFI::cast - Performs a C type cast
    • FFI::cdef - Creates a new FFI object
    • FFI::free - Releases an unmanaged data structure
    • FFI::isNull - Checks whether a FFI\CData is a null pointer
    • FFI::load - Loads C declarations from a C header file
    • FFI::memcmp - Compares memory areas
    • FFI::memcpy - Copies one memory area to another
    • FFI::memset - Fills a memory area
    • FFI::new - Creates a C data structure
    • FFI::scope - Instantiates an FFI object with C declarations parsed during preloading
    • FFI::sizeof - Gets the size of C data or types
    • FFI::string - Creates a PHP string from a memory area
    • FFI::type - Creates an FFI\CType object from a C declaration
    • FFI::typeof - Gets the FFI\CType of FFI\CData
    • FFI\CType::getAlignment - Description
    • FFI\CType::getArrayElementType - Description
    • FFI\CType::getArrayLength - Description
    • FFI\CType::getAttributes - Description
    • FFI\CType::getEnumKind - Description
    • FFI\CType::getFuncABI - Description
    • FFI\CType::getFuncParameterCount - Description
    • FFI\CType::getFuncParameterType - Description
    • FFI\CType::getFuncReturnType - Description
    • FFI\CType::getKind - Description
    • FFI\CType::getName - Description
    • FFI\CType::getPointerType - Description
    • FFI\CType::getSize - Description
    • FFI\CType::getStructFieldNames - Description
    • FFI\CType::getStructFieldOffset - Description
    • FFI\CType::getStructFieldType - Description
    • fflush - Çıktıyı bir dosyaya boşaltır
    • fgetc - Dosya tanıtıcısından bir karakter döndürür
    • fgetcsv - Dosya tanıtıcısından CSV alanlarını çözümleyerek bir satır döndürür
    • fgets - Dosya tanıtıcısından bir satır döndürür
    • fgetss - Dosya tanıtıcısından bir satırı HTML etiketlerinden arındırarak döndürür
    • Fiber::getCurrent - Çalışmakta olan Fiber örneğini döndürür
    • Fiber::getReturn - Fiber tarafından döndürülen değeri döndürür
    • Fiber::isRunning - Fiber çalışıyor mu diye bakar
    • Fiber::isStarted - Fiber başlatılmış mı diye bakar
    • Fiber::isSuspended - Fiber askıda mı diye bakar
    • Fiber::isTerminated - Fiber sonlanmış mı diye bakar
    • Fiber::resume - Fiberin bir değerle çalışmasını sürdürmesini sağlar
    • Fiber::start - Fiberin çalışmasını başlatır
    • Fiber::suspend - Çalışmakta olan fiberi askıya alır
    • Fiber::throw - Fiberin çalışmasını bir istisna ile devam ettirir
    • Fiber::__construct - Yeni bir Fiber örneği oluşturur
    • FiberError::__construct - Doğrudan örneklemeye izin vermemek için kurucu
    • file - Dosya içeriğinin tamamını bir diziye okur
    • fileatime - Dosyaya son erişim zamanını döndürür
    • filectime - Dosyanın dosya düğümü değişiklik zamanını döndürür
    • filegroup - Dosyanın sahibi olan grubu döndürür
    • fileinode - Dosyanın düğüm numarasını döndürür
    • filemtime - Dosyanın değişiklik zamanını döndürür
    • fileowner - Dosya sahibini döndürür
    • fileperms - Dosya izinlerini döndürür
    • filesize - Dosya uzunluğunu döndürür
    • FilesystemIterator::current - The current file
    • FilesystemIterator::getFlags - Get the handling flags
    • FilesystemIterator::key - Retrieve the key for the current file
    • FilesystemIterator::next - Move to the next file
    • FilesystemIterator::rewind - Rewinds back to the beginning
    • FilesystemIterator::setFlags - Sets handling flags
    • FilesystemIterator::__construct - Constructs a new filesystem iterator
    • filetype - Dosya türünü döndürür
    • file_exists - Bir dosya veya dizinin mevcut olup olmadığına bakar
    • file_get_contents - Dosya içeriğinin tamamını bir dizge olarak döndürür
    • file_put_contents - Veriyi bir dosyaya yazar
    • FilterIterator::accept - Check whether the current element of the iterator is acceptable
    • FilterIterator::current - Get the current element value
    • FilterIterator::key - Get the current key
    • FilterIterator::next - Move the iterator forward
    • FilterIterator::rewind - Rewind the iterator
    • FilterIterator::valid - Check whether the current element is valid
    • FilterIterator::__construct - Construct a filterIterator
    • filter_has_var - Checks if variable of specified type exists
    • filter_id - Returns the filter ID belonging to a named filter
    • filter_input - Gets a specific external variable by name and optionally filters it
    • filter_input_array - Gets external variables and optionally filters them
    • filter_list - Returns a list of all supported filters
    • filter_var - Filters a variable with a specified filter
    • filter_var_array - Gets multiple variables and optionally filters them
    • finfo::buffer - finfo_buffer() işlevinin takma adıdır
    • finfo::file - finfo_file() işlevinin takma adıdır
    • finfo::set_flags - finfo_set_flags() işlevinin takma adıdır
    • finfo::__construct - finfo_open işlevinin takma adıdır
    • finfo_buffer - Bir dizge tamponu hakkında bilgi döndürür
    • finfo_close - Fileinfo özkaynağını kapatır
    • finfo_file - Bir dosya hakkında bilgi döndürür
    • finfo_open - Yeni bir fileinfo özkaynağı oluşturur
    • finfo_set_flags - Libmagic yapılandırma seçeneklerini ayarlar
    • floatval - Bir değişkenin gerçek sayı değerini döndürür
    • flock - Öneri niteliğinde taşınabilir dosya kilitleme
    • floor - Round fractions down
    • flush - Sistem çıktı tamponunu boşaltır
    • fmod - Returns the floating point remainder (modulo) of the division of the arguments
    • fnmatch - Dosya ismi belirtilen kalıpla eşleşiyor mu diye bakar
    • fopen - Bir dosya veya URL'yi açar
    • forward_static_call - Statik yöntem çağrısı yapar
    • forward_static_call_array - Bağımsız değişkenleri dizi olarak iletilen statik yöntemi çağırır
    • fpassthru - Bir dosya tanıtıcısında kalan verinin tamamını çıktılar
    • fpm_get_status - Returns the current FPM pool status
    • fprintf - Biçemli dizgeyi bir akıma yazar
    • fputcsv - Satırı CSV olarak biçemler ve dosya tanıtıcısına yazar
    • fputs - fwrite işlevinin takma adıdır
    • fread - Dosyayı ikil kipte okur
    • frenchtojd - Fransız İhtilali takvim tarihini, Jülyen Gün Sayısına çevirir
    • fscanf - Bir dosyadaki girdiyi belli bir biçeme göre çözümler
    • fseek - Dosya tanıtıcısında konumu bir yerden başka bir yere taşır
    • fsockopen - Bir internet veya Unix alan soketi bağlantısı açar
    • fstat - Bir açık dosya tanıtıcısı kullanarak bir dosya hakkında bilgi döndürür
    • fsync - Synchronizes changes to the file (including meta-data)
    • ftell - Dosya okuma/yazma konumlayıcının mevcut konumu ile döner
    • ftok - Convert a pathname and a project identifier to a System V IPC key
    • ftp_alloc - Karşıya dosya yüklemek için bir FTP sunucusuna yer ayırma isteği yapar
    • ftp_append - Bir dosyanın içeriğini FTP sunucusundaki başka bir dosyaya ekler
    • ftp_cdup - Üst dizine geçer
    • ftp_chdir - FTP sunucusundaki çalışma dizinini değiştirir
    • ftp_chmod - FTP üzerinden bir dosyanın erişim izinlerini değiştirir
    • ftp_close - Bir FTP bağlantısını kapatır
    • ftp_connect - Bir FTP bağlantısı açar
    • ftp_delete - Belirtilen dosyayı FTP sunucusundan siler
    • ftp_exec - FTP sunucusunda bir komut çalıştırma isteği yapar
    • ftp_fget - FTP sunucusundan dosyayı indirip bir dosya tanıtıcısına yazar
    • ftp_fput - FTP sunucusuna dosya tanıtıcısı belirtilen dosyayı yükler
    • ftp_get - FTP sunucusundan bir dosya indirir
    • ftp_get_option - Bir çalışma anı seçeneğinin değerini döndürür
    • ftp_login - FTP bağlantısında kullanıcı oturumu açar
    • ftp_mdtm - Belirtilen dosyanın son değişiklik zamanını döndürür
    • ftp_mkdir - FTP sunucusunda bir dizin oluşturur
    • ftp_mlsd - Belirtilen dizindeki dosyaların bir listesini döndürür
    • ftp_nb_continue - Dosya alımını/gönderimini (engellenmeyen kipte) kaldığı yerden devam ettirir
    • ftp_nb_fget - FTP sunucusundan dosyayı (engellenmeyen kipte) indirip bir dosya tanıtıcısına yazar
    • ftp_nb_fput - FTP sunucusuna (engellenmeyen kipte) dosya yüklemek için bir dosya tanıtıcısı kullanır
    • ftp_nb_get - FTP sunucusundan (engellenmeyen kipte) bir dosya indirir
    • ftp_nb_put - Bir dosyayı FTP sunucusuna (eşzamansız kipte) yükler
    • ftp_nlist - Belirtilen dizindeki dosyaların listesini döndürür
    • ftp_pasv - Edilgen kipi açıp kapar
    • ftp_put - FTP sunucusuna bir dosya yükler
    • ftp_pwd - Çalışılan dizinin ismini döndürür
    • ftp_quit - ftp_close işlevinin takma adıdır
    • ftp_raw - Bir FTP sunucusuna bir komut gönderir
    • ftp_rawlist - Belirtilen dizindeki dosyaların ayrıntılı bir listesini döndürür
    • ftp_rename - FTP sunucusundaki bir dosya veya dizinin adını değiştirir
    • ftp_rmdir - Bir dizini siler
    • ftp_set_option - Çalışma anı seçeneklerini belirler
    • ftp_site - Sunucuya bir SITE komutu gönderir
    • ftp_size - FTP sunucusundaki bir dosyanın boyunu döndürür
    • ftp_ssl_connect - Güvenli bir SSL-FTP bağlantısı açar
    • ftp_systype - Uzak FTP sunucusunun sistem türü tanıtıcısını döndürür
    • ftruncate - Bir dosyayı belli bir uzunlukta budar
    • function_exists - Eğer işlev tanımlanmış ise true döndürür
    • func_get_arg - Bağımsız değişken listesinden bir üyeyi döndürür
    • func_get_args - İşleve aktarılan bağımsız değişkenlerin listesini dizi olarak döndürür
    • func_num_args - İşleve aktarılan bağımsız değişken sayısını döndürür
    • fwrite - Dosyaya ikil kipte yazar
  • g
    • gc_collect_cycles - Çöp döngülerin toplanması için zorlar
    • gc_disable - Döngüsel gönderim toplayıcısını etkisiz kılar
    • gc_enable - Döngüsel gönderim toplayıcısını etkin kılar
    • gc_enabled - Döngüsel gönderim toplayıcısının durumunu döndürür
    • gc_mem_caches - Zend Motoru bellek yöneticisi tarafından kullanılan belleği geri kazanır
    • gc_status - Çöp toplayıcı hakkında bilgi döndürür
    • gd_info - Kurulu GD kütüphanesi hakkında bilgi verir
    • GearmanClient::addOptions - Add client options
    • GearmanClient::addServer - Add a job server to the client
    • GearmanClient::addServers - Add a list of job servers to the client
    • GearmanClient::addTask - Add a task to be run in parallel
    • GearmanClient::addTaskBackground - Add a background task to be run in parallel
    • GearmanClient::addTaskHigh - Add a high priority task to run in parallel
    • GearmanClient::addTaskHighBackground - Add a high priority background task to be run in parallel
    • GearmanClient::addTaskLow - Add a low priority task to run in parallel
    • GearmanClient::addTaskLowBackground - Add a low priority background task to be run in parallel
    • GearmanClient::addTaskStatus - Add a task to get status
    • GearmanClient::clearCallbacks - Clear all task callback functions
    • GearmanClient::clone - Create a copy of a GearmanClient object
    • GearmanClient::context - Get the application context
    • GearmanClient::data - Get the application data (deprecated)
    • GearmanClient::do - Run a single task and return a result [deprecated]
    • GearmanClient::doBackground - Run a task in the background
    • GearmanClient::doHigh - Run a single high priority task
    • GearmanClient::doHighBackground - Run a high priority task in the background
    • GearmanClient::doJobHandle - Get the job handle for the running task
    • GearmanClient::doLow - Run a single low priority task
    • GearmanClient::doLowBackground - Run a low priority task in the background
    • GearmanClient::doNormal - Run a single task and return a result
    • GearmanClient::doStatus - Get the status for the running task
    • GearmanClient::echo - Send data to all job servers to see if they echo it back [deprecated]
    • GearmanClient::error - Returns an error string for the last error encountered
    • GearmanClient::getErrno - Get an errno value
    • GearmanClient::jobStatus - Get the status of a background job
    • GearmanClient::ping - Send data to all job servers to see if they echo it back
    • GearmanClient::removeOptions - Remove client options
    • GearmanClient::returnCode - Get the last Gearman return code
    • GearmanClient::runTasks - Run a list of tasks in parallel
    • GearmanClient::setClientCallback - Callback function when there is a data packet for a task (deprecated)
    • GearmanClient::setCompleteCallback - Set a function to be called on task completion
    • GearmanClient::setContext - Set application context
    • GearmanClient::setCreatedCallback - Set a callback for when a task is queued
    • GearmanClient::setData - Set application data (deprecated)
    • GearmanClient::setDataCallback - Callback function when there is a data packet for a task
    • GearmanClient::setExceptionCallback - Set a callback for worker exceptions
    • GearmanClient::setFailCallback - Set callback for job failure
    • GearmanClient::setOptions - Set client options
    • GearmanClient::setStatusCallback - Set a callback for collecting task status
    • GearmanClient::setTimeout - Set socket I/O activity timeout
    • GearmanClient::setWarningCallback - Set a callback for worker warnings
    • GearmanClient::setWorkloadCallback - Set a callback for accepting incremental data updates
    • GearmanClient::timeout - Get current socket I/O activity timeout value
    • GearmanClient::wait - Wait for I/O activity on all connections in a client
    • GearmanClient::__construct - Create a GearmanClient instance
    • GearmanJob::complete - Send the result and complete status (deprecated)
    • GearmanJob::data - Send data for a running job (deprecated)
    • GearmanJob::exception - Send exception for running job (deprecated)
    • GearmanJob::fail - Send fail status (deprecated)
    • GearmanJob::functionName - Get function name
    • GearmanJob::handle - Get the job handle
    • GearmanJob::returnCode - Get last return code
    • GearmanJob::sendComplete - Send the result and complete status
    • GearmanJob::sendData - Send data for a running job
    • GearmanJob::sendException - Send exception for running job (exception)
    • GearmanJob::sendFail - Send fail status
    • GearmanJob::sendStatus - Send status
    • GearmanJob::sendWarning - Send a warning
    • GearmanJob::setReturn - Set a return value
    • GearmanJob::status - Send status (deprecated)
    • GearmanJob::unique - Get the unique identifier
    • GearmanJob::warning - Send a warning (deprecated)
    • GearmanJob::workload - Get workload
    • GearmanJob::workloadSize - Get size of work load
    • GearmanJob::__construct - Create a GearmanJob instance
    • GearmanTask::create - Create a task (deprecated)
    • GearmanTask::data - Get data returned for a task
    • GearmanTask::dataSize - Get the size of returned data
    • GearmanTask::function - Get associated function name (deprecated)
    • GearmanTask::functionName - Get associated function name
    • GearmanTask::isKnown - Determine if task is known
    • GearmanTask::isRunning - Test whether the task is currently running
    • GearmanTask::jobHandle - Get the job handle
    • GearmanTask::recvData - Read work or result data into a buffer for a task
    • GearmanTask::returnCode - Get the last return code
    • GearmanTask::sendData - Send data for a task (deprecated)
    • GearmanTask::sendWorkload - Send data for a task
    • GearmanTask::taskDenominator - Get completion percentage denominator
    • GearmanTask::taskNumerator - Get completion percentage numerator
    • GearmanTask::unique - Get the unique identifier for a task
    • GearmanTask::uuid - Get the unique identifier for a task (deprecated)
    • GearmanTask::__construct - Create a GearmanTask instance
    • GearmanWorker::addFunction - Register and add callback function
    • GearmanWorker::addOptions - Add worker options
    • GearmanWorker::addServer - Add a job server
    • GearmanWorker::addServers - Add job servers
    • GearmanWorker::clone - Create a copy of the worker
    • GearmanWorker::echo - Test job server response
    • GearmanWorker::error - Get the last error encountered
    • GearmanWorker::getErrno - Get errno
    • GearmanWorker::options - Get worker options
    • GearmanWorker::register - Register a function with the job server
    • GearmanWorker::removeOptions - Remove worker options
    • GearmanWorker::returnCode - Get last Gearman return code
    • GearmanWorker::setId - Give the worker an identifier so it can be tracked when asking gearmand for the list of available workers
    • GearmanWorker::setOptions - Set worker options
    • GearmanWorker::setTimeout - Set socket I/O activity timeout
    • GearmanWorker::timeout - Get socket I/O activity timeout
    • GearmanWorker::unregister - Unregister a function name with the job servers
    • GearmanWorker::unregisterAll - Unregister all function names with the job servers
    • GearmanWorker::wait - Wait for activity from one of the job servers
    • GearmanWorker::work - Wait for and perform jobs
    • GearmanWorker::__construct - Create a GearmanWorker instance
    • Gender\Gender::connect - Connect to an external name dictionary
    • Gender\Gender::country - Get textual country representation
    • Gender\Gender::get - Get gender of a name
    • Gender\Gender::isNick - Check if the name0 is an alias of the name1
    • Gender\Gender::similarNames - Get similar names
    • Gender\Gender::__construct - Construct the Gender object
    • Generator::current - Getirilen değeri döndürür
    • Generator::getReturn - Üretecin dönüş değerini döndürür
    • Generator::key - Getirilen anahtarı döndürür
    • Generator::next - Üretecin çalışmasını kaldığı yerden sürdürür
    • Generator::rewind - Yineleyiciyi başa sarar
    • Generator::send - Üretece bir değer gönderir
    • Generator::throw - Üreteç için bir istisna oluşturur
    • Generator::valid - Yineleyici kapanmış mı diye bakar
    • Generator::__wakeup - Dizeleştirememe istisnası
    • geoip_asnum_by_name - Get the Autonomous System Numbers (ASN)
    • geoip_continent_code_by_name - Get the two letter continent code
    • geoip_country_code3_by_name - Get the three letter country code
    • geoip_country_code_by_name - Get the two letter country code
    • geoip_country_name_by_name - Get the full country name
    • geoip_database_info - Get GeoIP Database information
    • geoip_db_avail - Determine if GeoIP Database is available
    • geoip_db_filename - Returns the filename of the corresponding GeoIP Database
    • geoip_db_get_all_info - Returns detailed information about all GeoIP database types
    • geoip_domain_by_name - Get the second level domain name
    • geoip_id_by_name - Get the Internet connection type
    • geoip_isp_by_name - Get the Internet Service Provider (ISP) name
    • geoip_netspeedcell_by_name - Get the Internet connection speed
    • geoip_org_by_name - Get the organization name
    • geoip_record_by_name - Returns the detailed City information found in the GeoIP Database
    • geoip_region_by_name - Get the country code and region
    • geoip_region_name_by_code - Returns the region name for some country and region code combo
    • geoip_setup_custom_directory - Set a custom directory for the GeoIP database
    • geoip_time_zone_by_country_and_region - Returns the time zone for some country and region code combo
    • getallheaders - Tüm HTTP istek başlıklarını getirir
    • getcwd - Geçerli çalışma dizinini döndürür
    • getdate - Tarih/zaman bilgisi getirir
    • getenv - Ortam değişkenlerinden birinin veya tümünün değerini döndürür
    • gethostbyaddr - Belirtilen IP adresine çözümlenen konak ismini döndürür
    • gethostbyname - Belirtilen konak adına ait IPv4 adresini döndürür
    • gethostbynamel - Belirtilen konak adına ait IPv4 adreslerini döndürür
    • gethostname - Konak ismini döndürür
    • getimagesize - Bir görüntünün boyutlarını döndürür
    • getimagesizefromstring - Dizgedeki görüntünün boyutunu döndürür
    • getlastmod - Çalışan betiğin son değişiklik zamanını döndürür
    • getmxrr - Belirtilen konak adı ile ilgili MX kaydını döndürür
    • getmygid - PHP betiğinin sahibinin grup kimliğini döndürür
    • getmyinode - Çalışan betiğin dosya düğümü numarasını döndürür
    • getmypid - PHP'nin süreç kimliğini (PID) döndürür
    • getmyuid - PHP betiğinin sahibinin kullanıcı kimliğini döndürür
    • getopt - Komut satırı bağımsız değişkenleri listesinden seçenekleri döndürür
    • getprotobyname - Protokol ismine karşılık düşen protokol numarasını verir
    • getprotobynumber - Protokol numarasına karşılık düşen protokol ismini verir
    • getrandmax - Show largest possible random value
    • getrusage - Geçerli özkaynak kullanımlarını döndürür
    • getservbyname - Belirtilen ağ hizmeti ve protokolle ilişkili port numarası ile döner
    • getservbyport - Belirtilen port ve protokolle ilgili ağ hizmeti ile döner
    • getSession - Connect to a MySQL server
    • gettext - Geçerli uygulama alanında bir iletiyi arar
    • gettimeofday - Geçerli zamanı getirir
    • gettype - Bir değişkenin türünü döndürür
    • get_browser - Kullanıcının tarayıcısının neler yapabildiğini söyler
    • get_called_class - Çağrıldığı duruk yöntemin sınıf ismini döndürür
    • get_cfg_var - Belirtilen PHP yönergesinin değerini döndürür
    • get_class - Bir nesnenin ait olduğu sınıfın ismini döndürür
    • get_class_methods - Sınıf yöntemlerinin isimlerini döndürür
    • get_class_vars - Sınıfın öntanımlı özelliklerini döndürür
    • get_current_user - PHP betiğinin sahibininin kullanıcı ismini döndürür
    • get_debug_type - Hata ayıklamaya uygun şekilde değişkenin tür adını döndürür
    • get_declared_classes - Tanımlı sınıfların isimlerini bir dizi olarak döndürür
    • get_declared_interfaces - Bildirilmiş tüm arayüzleri bir dizi olarak döndürür
    • get_declared_traits - Bildirilmiş tüm nitelikleri dizi olarak döndürür
    • get_defined_constants - Tüm sabitlerin isimlerini ve değerlerini içeren bir ilişkisel dizi döndürür
    • get_defined_functions - Tanımlanmış bütün işlevleri içeren bir dizi döndürür
    • get_defined_vars - Tüm tanımlı değişkenleri içeren bir dizi döndürür
    • get_extension_funcs - Bir eklentinin tüm işlevlerinin isimlerini içeren bir dizi döndürür
    • get_headers - Bir HTTP isteğine sunucunun verdiği yanıtta gönderilen tüm başlıkları döndürür
    • get_html_translation_table - htmlspecialchars ve htmlentities tarafından kullanılan dönüşüm tablosunu döndürür
    • get_included_files - Betiğe dahil edilen dosyaların isimlerini içeren bir dizi döndürür
    • get_include_path - include_path yönergesinin değerini döndürür
    • get_loaded_extensions - Derlenmiş ve yüklenmiş tüm modüllerin isimlerini içeren bir dizi döndürür
    • get_magic_quotes_gpc - magic_quotes_gpc yönergesinin değerini döndürür
    • get_magic_quotes_runtime - magic_quotes_runtime yönergesinin çalışma anı değerini döndürür
    • get_mangled_object_vars - Karışık nesne özelliği dizisi döndürür
    • get_meta_tags - Bir HTML dosyanın meta etiketlerindeki öznitelikleri çıkarıp bir dizi olarak döndürür
    • get_object_vars - Belirtilen nesnenin özelliklerini döndürür
    • get_parent_class - Nesne veya sınıfın ebeveyn sınıfının ismini döndürür
    • get_required_files - get_included_files işlevinin takma adıdır
    • get_resources - Etkin özkaynakları döndürür
    • get_resource_id - Belirtilen özkaynağın tamsayı belirteci döner
    • get_resource_type - Özkaynak türünü döndürür
    • glob - Bir kalıpla eşleşen dosya yollarını bulur
    • GlobIterator::count - Get the number of directories and files
    • GlobIterator::__construct - Construct a directory using glob
    • Gmagick::addimage - Adds new image to Gmagick object image list
    • Gmagick::addnoiseimage - Adds random noise to the image
    • Gmagick::annotateimage - Annotates an image with text
    • Gmagick::blurimage - Adds blur filter to image
    • Gmagick::borderimage - Surrounds the image with a border
    • Gmagick::charcoalimage - Simulates a charcoal drawing
    • Gmagick::chopimage - Removes a region of an image and trims
    • Gmagick::clear - Clears all resources associated to Gmagick object
    • Gmagick::commentimage - Adds a comment to your image
    • Gmagick::compositeimage - Composite one image onto another
    • Gmagick::cropimage - Extracts a region of the image
    • Gmagick::cropthumbnailimage - Creates a crop thumbnail
    • Gmagick::current - The current purpose
    • Gmagick::cyclecolormapimage - Displaces an image's colormap
    • Gmagick::deconstructimages - Returns certain pixel differences between images
    • Gmagick::despeckleimage - The despeckleimage purpose
    • Gmagick::destroy - The destroy purpose
    • Gmagick::drawimage - Renders the GmagickDraw object on the current image
    • Gmagick::edgeimage - Enhance edges within the image
    • Gmagick::embossimage - Returns a grayscale image with a three-dimensional effect
    • Gmagick::enhanceimage - Improves the quality of a noisy image
    • Gmagick::equalizeimage - Equalizes the image histogram
    • Gmagick::flipimage - Creates a vertical mirror image
    • Gmagick::flopimage - Creates a horizontal mirror image
    • Gmagick::frameimage - Adds a simulated three-dimensional border
    • Gmagick::gammaimage - Gamma-corrects an image
    • Gmagick::getcopyright - Returns the GraphicsMagick API copyright as a string
    • Gmagick::getfilename - The filename associated with an image sequence
    • Gmagick::getimagebackgroundcolor - Returns the image background color
    • Gmagick::getimageblueprimary - Returns the chromaticy blue primary point
    • Gmagick::getimagebordercolor - Returns the image border color
    • Gmagick::getimagechanneldepth - Gets the depth for a particular image channel
    • Gmagick::getimagecolors - Returns the color of the specified colormap index
    • Gmagick::getimagecolorspace - Gets the image colorspace
    • Gmagick::getimagecompose - Returns the composite operator associated with the image
    • Gmagick::getimagedelay - Gets the image delay
    • Gmagick::getimagedepth - Gets the depth of the image
    • Gmagick::getimagedispose - Gets the image disposal method
    • Gmagick::getimageextrema - Gets the extrema for the image
    • Gmagick::getimagefilename - Returns the filename of a particular image in a sequence
    • Gmagick::getimageformat - Returns the format of a particular image in a sequence
    • Gmagick::getimagegamma - Gets the image gamma
    • Gmagick::getimagegreenprimary - Returns the chromaticy green primary point
    • Gmagick::getimageheight - Returns the image height
    • Gmagick::getimagehistogram - Gets the image histogram
    • Gmagick::getimageindex - Gets the index of the current active image
    • Gmagick::getimageinterlacescheme - Gets the image interlace scheme
    • Gmagick::getimageiterations - Gets the image iterations
    • Gmagick::getimagematte - Check if the image has a matte channel
    • Gmagick::getimagemattecolor - Returns the image matte color
    • Gmagick::getimageprofile - Returns the named image profile
    • Gmagick::getimageredprimary - Returns the chromaticity red primary point
    • Gmagick::getimagerenderingintent - Gets the image rendering intent
    • Gmagick::getimageresolution - Gets the image X and Y resolution
    • Gmagick::getimagescene - Gets the image scene
    • Gmagick::getimagesignature - Generates an SHA-256 message digest
    • Gmagick::getimagetype - Gets the potential image type
    • Gmagick::getimageunits - Gets the image units of resolution
    • Gmagick::getimagewhitepoint - Returns the chromaticity white point
    • Gmagick::getimagewidth - Returns the width of the image
    • Gmagick::getpackagename - Returns the GraphicsMagick package name
    • Gmagick::getquantumdepth - Returns the Gmagick quantum depth as a string
    • Gmagick::getreleasedate - Returns the GraphicsMagick release date as a string
    • Gmagick::getsamplingfactors - Gets the horizontal and vertical sampling factor
    • Gmagick::getsize - Returns the size associated with the Gmagick object
    • Gmagick::getversion - Returns the GraphicsMagick API version
    • Gmagick::hasnextimage - Checks if the object has more images
    • Gmagick::haspreviousimage - Checks if the object has a previous image
    • Gmagick::implodeimage - Creates a new image as a copy
    • Gmagick::labelimage - Adds a label to an image
    • Gmagick::levelimage - Adjusts the levels of an image
    • Gmagick::magnifyimage - Scales an image proportionally 2x
    • Gmagick::mapimage - Replaces the colors of an image with the closest color from a reference image
    • Gmagick::medianfilterimage - Applies a digital filter
    • Gmagick::minifyimage - Scales an image proportionally to half its size
    • Gmagick::modulateimage - Control the brightness, saturation, and hue
    • Gmagick::motionblurimage - Simulates motion blur
    • Gmagick::newimage - Creates a new image
    • Gmagick::nextimage - Moves to the next image
    • Gmagick::normalizeimage - Enhances the contrast of a color image
    • Gmagick::oilpaintimage - Simulates an oil painting
    • Gmagick::previousimage - Move to the previous image in the object
    • Gmagick::profileimage - Adds or removes a profile from an image
    • Gmagick::quantizeimage - Analyzes the colors within a reference image
    • Gmagick::quantizeimages - The quantizeimages purpose
    • Gmagick::queryfontmetrics - Returns an array representing the font metrics
    • Gmagick::queryfonts - Returns the configured fonts
    • Gmagick::queryformats - Returns formats supported by Gmagick
    • Gmagick::radialblurimage - Radial blurs an image
    • Gmagick::raiseimage - Creates a simulated 3d button-like effect
    • Gmagick::read - Reads image from filename
    • Gmagick::readimage - Reads image from filename
    • Gmagick::readimageblob - Reads image from a binary string
    • Gmagick::readimagefile - The readimagefile purpose
    • Gmagick::reducenoiseimage - Smooths the contours of an image
    • Gmagick::removeimage - Removes an image from the image list
    • Gmagick::removeimageprofile - Removes the named image profile and returns it
    • Gmagick::resampleimage - Resample image to desired resolution
    • Gmagick::resizeimage - Scales an image
    • Gmagick::rollimage - Offsets an image
    • Gmagick::rotateimage - Rotates an image
    • Gmagick::scaleimage - Scales the size of an image
    • Gmagick::separateimagechannel - Separates a channel from the image
    • Gmagick::setCompressionQuality - Sets the object's default compression quality
    • Gmagick::setfilename - Sets the filename before you read or write the image
    • Gmagick::setimagebackgroundcolor - Sets the image background color
    • Gmagick::setimageblueprimary - Sets the image chromaticity blue primary point
    • Gmagick::setimagebordercolor - Sets the image border color
    • Gmagick::setimagechanneldepth - Sets the depth of a particular image channel
    • Gmagick::setimagecolorspace - Sets the image colorspace
    • Gmagick::setimagecompose - Sets the image composite operator
    • Gmagick::setimagedelay - Sets the image delay
    • Gmagick::setimagedepth - Sets the image depth
    • Gmagick::setimagedispose - Sets the image disposal method
    • Gmagick::setimagefilename - Sets the filename of a particular image in a sequence
    • Gmagick::setimageformat - Sets the format of a particular image
    • Gmagick::setimagegamma - Sets the image gamma
    • Gmagick::setimagegreenprimary - Sets the image chromaticity green primary point
    • Gmagick::setimageindex - Set the iterator to the position in the image list specified with the index parameter
    • Gmagick::setimageinterlacescheme - Sets the interlace scheme of the image
    • Gmagick::setimageiterations - Sets the image iterations
    • Gmagick::setimageprofile - Adds a named profile to the Gmagick object
    • Gmagick::setimageredprimary - Sets the image chromaticity red primary point
    • Gmagick::setimagerenderingintent - Sets the image rendering intent
    • Gmagick::setimageresolution - Sets the image resolution
    • Gmagick::setimagescene - Sets the image scene
    • Gmagick::setimagetype - Sets the image type
    • Gmagick::setimageunits - Sets the image units of resolution
    • Gmagick::setimagewhitepoint - Sets the image chromaticity white point
    • Gmagick::setsamplingfactors - Sets the image sampling factors
    • Gmagick::setsize - Sets the size of the Gmagick object
    • Gmagick::shearimage - Creating a parallelogram
    • Gmagick::solarizeimage - Applies a solarizing effect to the image
    • Gmagick::spreadimage - Randomly displaces each pixel in a block
    • Gmagick::stripimage - Strips an image of all profiles and comments
    • Gmagick::swirlimage - Swirls the pixels about the center of the image
    • Gmagick::thumbnailimage - Changes the size of an image
    • Gmagick::trimimage - Remove edges from the image
    • Gmagick::write - Takma Adı: Gmagick::writeimage
    • Gmagick::writeimage - Writes an image to the specified filename
    • Gmagick::__construct - The Gmagick constructor
    • GmagickDraw::annotate - Draws text on the image
    • GmagickDraw::arc - Draws an arc
    • GmagickDraw::bezier - Draws a bezier curve
    • GmagickDraw::ellipse - Draws an ellipse on the image
    • GmagickDraw::getfillcolor - Returns the fill color
    • GmagickDraw::getfillopacity - Returns the opacity used when drawing
    • GmagickDraw::getfont - Returns the font
    • GmagickDraw::getfontsize - Returns the font pointsize
    • GmagickDraw::getfontstyle - Returns the font style
    • GmagickDraw::getfontweight - Returns the font weight
    • GmagickDraw::getstrokecolor - Returns the color used for stroking object outlines
    • GmagickDraw::getstrokeopacity - Returns the opacity of stroked object outlines
    • GmagickDraw::getstrokewidth - Returns the width of the stroke used to draw object outlines
    • GmagickDraw::gettextdecoration - Returns the text decoration
    • GmagickDraw::gettextencoding - Returns the code set used for text annotations
    • GmagickDraw::line - Draws a line
    • GmagickDraw::point - Draws a point
    • GmagickDraw::polygon - Draws a polygon
    • GmagickDraw::polyline - Draws a polyline
    • GmagickDraw::rectangle - Draws a rectangle
    • GmagickDraw::rotate - Applies the specified rotation to the current coordinate space
    • GmagickDraw::roundrectangle - Draws a rounded rectangle
    • GmagickDraw::scale - Adjusts the scaling factor
    • GmagickDraw::setfillcolor - Sets the fill color to be used for drawing filled objects
    • GmagickDraw::setfillopacity - The setfillopacity purpose
    • GmagickDraw::setfont - Sets the fully-specified font to use when annotating with text
    • GmagickDraw::setfontsize - Sets the font pointsize to use when annotating with text
    • GmagickDraw::setfontstyle - Sets the font style to use when annotating with text
    • GmagickDraw::setfontweight - Sets the font weight
    • GmagickDraw::setstrokecolor - Sets the color used for stroking object outlines
    • GmagickDraw::setstrokeopacity - Specifies the opacity of stroked object outlines
    • GmagickDraw::setstrokewidth - Sets the width of the stroke used to draw object outlines
    • GmagickDraw::settextdecoration - Specifies a decoration
    • GmagickDraw::settextencoding - Specifies the text code set
    • GmagickPixel::getcolor - Returns the color
    • GmagickPixel::getcolorcount - Returns the color count associated with this color
    • GmagickPixel::getcolorvalue - Gets the normalized value of the provided color channel
    • GmagickPixel::setcolor - Sets the color
    • GmagickPixel::setcolorvalue - Sets the normalized value of one of the channels
    • GmagickPixel::__construct - The GmagickPixel constructor
    • gmdate - Bir tarih/saati GMT/UTC tarih/saati olarak biçemler
    • gmmktime - Bir GMT tarihi için Unix zaman damgasını döndürür
    • GMP::__construct - Create GMP number
    • GMP::__serialize - Serializes the GMP object
    • GMP::__unserialize - Deserializes the data parameter into a GMP object
    • gmp_abs - Absolute value
    • gmp_add - Add numbers
    • gmp_and - Bitwise AND
    • gmp_binomial - Calculates binomial coefficient
    • gmp_clrbit - Clear bit
    • gmp_cmp - Compare numbers
    • gmp_com - Calculates one's complement
    • gmp_div - Takma Adı: gmp_div_q
    • gmp_divexact - Exact division of numbers
    • gmp_div_q - Divide numbers
    • gmp_div_qr - Divide numbers and get quotient and remainder
    • gmp_div_r - Remainder of the division of numbers
    • gmp_export - Export to a binary string
    • gmp_fact - Factorial
    • gmp_gcd - Calculate GCD
    • gmp_gcdext - Calculate GCD and multipliers
    • gmp_hamdist - Hamming distance
    • gmp_import - Import from a binary string
    • gmp_init - Create GMP number
    • gmp_intval - Convert GMP number to integer
    • gmp_invert - Inverse by modulo
    • gmp_jacobi - Jacobi symbol
    • gmp_kronecker - Kronecker symbol
    • gmp_lcm - Calculate LCM
    • gmp_legendre - Legendre symbol
    • gmp_mod - Modulo operation
    • gmp_mul - Multiply numbers
    • gmp_neg - Negate number
    • gmp_nextprime - Find next prime number
    • gmp_or - Bitwise OR
    • gmp_perfect_power - Perfect power check
    • 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_random_bits - Random number
    • gmp_random_range - Get a uniformly selected integer
    • gmp_random_seed - Sets the RNG seed
    • gmp_root - Take the integer part of nth root
    • gmp_rootrem - Take the integer part and remainder of nth root
    • gmp_scan0 - Scan for 0
    • gmp_scan1 - Scan for 1
    • gmp_setbit - Set bit
    • gmp_sign - 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_testbit - Tests if a bit is set
    • gmp_xor - Bitwise XOR
    • gmstrftime - Yerel ayarlara göre tarih ve saati, UTC türüne çevirir
    • gnupg_adddecryptkey - Add a key for decryption
    • gnupg_addencryptkey - Add a key for encryption
    • gnupg_addsignkey - Add a key for signing
    • gnupg_cleardecryptkeys - Removes all keys which were set for decryption before
    • gnupg_clearencryptkeys - Removes all keys which were set for encryption before
    • gnupg_clearsignkeys - Removes all keys which were set for signing before
    • gnupg_decrypt - Decrypts a given text
    • gnupg_decryptverify - Decrypts and verifies a given text
    • gnupg_deletekey - Delete a key from the keyring
    • gnupg_encrypt - Encrypts a given text
    • gnupg_encryptsign - Encrypts and signs a given text
    • gnupg_export - Exports a key
    • gnupg_getengineinfo - Returns the engine info
    • gnupg_geterror - Returns the errortext, if a function fails
    • gnupg_geterrorinfo - Returns the error info
    • gnupg_getprotocol - Returns the currently active protocol for all operations
    • gnupg_gettrustlist - Search the trust items
    • gnupg_import - Imports a key
    • gnupg_init - Initialize a connection
    • gnupg_keyinfo - Returns an array with information about all keys that matches the given pattern
    • gnupg_listsignatures - List key signatures
    • gnupg_setarmor - Toggle armored output
    • gnupg_seterrormode - Sets the mode for error_reporting
    • gnupg_setsignmode - Sets the mode for signing
    • gnupg_sign - Signs a given text
    • gnupg_verify - Verifies a signed text
    • grapheme_extract - UTF-8 kodlanmış bir metin tamponundan öntanımlı sesletim kümelerinden oluşan bir dizilimi döndürür
    • grapheme_stripos - Harf büyüklüğüne duyarsız olarak bir dizgede ilk sesletim biriminin yerini bulur
    • grapheme_stristr - Harf büyüklüğüne duyarsız olarak bir dizgedeki ilk sesletim birimine göre ilk veya ikinci parça ile döner
    • grapheme_strlen - Dizgenin sesletim birimi cinsinden uzunluğunu döndürür
    • grapheme_strpos - Bir dizgede ilk sesletim biriminin yerini bulur
    • grapheme_strripos - Harf büyüklüğüne duyarsız olarak bir dizgedeki sonuncu sesletim biriminin yerini bulur
    • grapheme_strrpos - Bir dizgedeki sonuncu sesletim biriminin yerini bulur
    • grapheme_strstr - Bir dizgedeki ilk sesletim birimine göre ilk veya ikinci parça ile döner
    • grapheme_substr - Bir alt dizge döndürür
    • gregoriantojd - Gregoryen tarihini, Jülyen Gün Sayısına çevirir
    • gzclose - Bir açık gzipli dosya tanıtıcısını kapar
    • gzcompress - Bir dizgeyi sıkıştırır
    • gzdecode - Gzipli bir dizgenin sıkıştırmasını açar
    • gzdeflate - Bir dizgeyi deflate biçeminde sıkıştırır
    • gzencode - Gzipli bir dizge oluşturur
    • gzeof - Gzipli dosya tanıtıcında dosya sonunu sınar
    • gzfile - Gzipli dosyayı bir dizi içinde döndürür
    • gzgetc - Gzipli dosya göstericisindeki karakteri döndürür
    • gzgets - Gzipli dosya tanıtıcısından bir satır döndürür
    • gzgetss - Gzipli dosya tanıtıcısından bir satır okuyup HTML etiketlerinden arındırır
    • gzinflate - Deflate sıkıştırmalı bir verinin sıkıştırmasını açar
    • gzopen - Bir gzipli dosya açar
    • gzpassthru - Gzipli dosya tanıtıcısında kalan verinin tamamını çıktılar
    • gzputs - gzwrite işlevinin takma adıdır
    • gzread - Gzipli dosyayı ikil kipte okur
    • gzrewind - Gzipli dosya göstericisini dosya başlangıcına taşır
    • gzseek - Gzipli dosya göstericisini konumlar
    • gztell - Gzipli dosya tanıtıcısının okuma/yazma konumunu döndürür
    • gzuncompress - Sıkıştırılmış bir dizgenin sıkıştırmasını açar
    • gzwrite - Bir dizgeyi bir gzipli dosyaya ikil kipte yazar
  • h
    • hash - Bir ileti aşı üretir
    • HashContext::__construct - Doğrudan örneklemeye izin vermemek için özel kurucu
    • HashContext::__serialize - Serializes the HashContext object
    • HashContext::__unserialize - Deserializes the data parameter into a HashContext object
    • hash_algos - Kayıtlı aşlama algoritmalarının bir listesini döndürür
    • hash_copy - Aşlama bağlamını kopyalar
    • hash_equals - Zamanlama saldırısı güvenli dize karşılaştırması
    • hash_file - Belirtilen dosyanın içeriğinden bir ileti aşı üretir
    • hash_final - Bir ardışık aşlama işlemini bitirip üretilen aşı döndürür
    • hash_hkdf - Sağlanan anahtar girdisinden HKDF anahtar türevi oluşturur
    • hash_hmac - HMAC yöntemini kullanarak bir anahtarlı ileti aşı üretir
    • hash_hmac_algos - hash_hmac için uygun kayıtlı aşlama algoritmalarının listesini döndürür
    • hash_hmac_file - Bir dosyanın içeriğinden HMAC yöntemini kullanarak bir anahtarlı ileti aşı üretir
    • hash_init - Ardışık aşlama bağlamını ilklendirir
    • hash_pbkdf2 - Belirtilen bir parolanın PBKDF2 anahtar türevini döndürür
    • hash_update - Veriyi etkin bir aşlama bağlamına dahil eder
    • hash_update_file - Veriyi bir dosyadan etkin bir aşlama bağlamına dahil eder
    • hash_update_stream - Veriyi açık bir akımdan etkin bir aşlama bağlamına dahil eder
    • header - Ham bir HTTP başlığı gönderir
    • headers_list - Gönderilmiş (veya gönderilmeye hazır) yanıt başlıklarının listesiyle döner
    • headers_sent - Başlıklar gönderilmiş mi, gönderilmişse nerede gönderilmiş diye bakar
    • header_register_callback - Bir başlık işlevi çağırır
    • header_remove - Evvelce tanımlanmış başlıkları siler
    • hebrev - Mantıksal İbranice metni görsel metne dönüştürür
    • hebrevc - Mantıksal İbranice metni satırsonlarıyla birlikte görsel metne dönüştürür
    • hex2bin - Onaltılık bir dizgeyi ikil dizgeye dönüştürür
    • hexdec - Hexadecimal to decimal
    • highlight_file - Bir dosyadaki sözdizimini vurgular
    • highlight_string - Bir dizgedeki söz dizimini vurgular
    • hrtime - Yüksek çözünürlüklü sistem zamanını döndürür
    • HRTime\PerformanceCounter::getFrequency - Timer frequency in ticks per second
    • HRTime\PerformanceCounter::getTicks - Current ticks from the system
    • HRTime\PerformanceCounter::getTicksSince - Ticks elapsed since the given value
    • HRTime\StopWatch::getElapsedTicks - Get elapsed ticks for all intervals
    • HRTime\StopWatch::getElapsedTime - Get elapsed time for all intervals
    • HRTime\StopWatch::getLastElapsedTicks - Get elapsed ticks for the last interval
    • HRTime\StopWatch::getLastElapsedTime - Get elapsed time for the last interval
    • HRTime\StopWatch::isRunning - Whether the measurement is running
    • HRTime\StopWatch::start - Start time measurement
    • HRTime\StopWatch::stop - Stop time measurement
    • htmlentities - Dönüştürülebilecek tüm karakterleri HTML öğeleri haline getirir
    • htmlspecialchars - Özel karakterleri HTML öğeleri haline getirir
    • htmlspecialchars_decode - Özel HTML öğelerini gerisin geriye karakterlere dönüştürür
    • html_entity_decode - HTML öğelerini karşılığı olan karakterlere dönüştürür
    • http_build_query - URL kodlamalı sorgu dizgesi üretir
    • http_response_code - HTTP yanıt kodunu tanımlar veya siler
    • hypot - Calculate the length of the hypotenuse of a right-angle triangle
  • i
    • ibase_add_user - Add a user to a security database
    • 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_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 - Commit a transaction
    • ibase_commit_ret - Commit a transaction without closing it
    • ibase_connect - Open a connection to a database
    • ibase_db_info - Request statistics about a database
    • ibase_delete_user - Delete a user from a security database
    • 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_maintain_db - Execute a maintenance command on the database server
    • ibase_modify_user - Modify a user to a security database
    • 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_restore - Initiates a restore task in the service manager and returns immediately
    • ibase_rollback - Roll back a transaction
    • ibase_rollback_ret - Roll back a transaction without closing it
    • ibase_server_info - Request information about a database server
    • ibase_service_attach - Connect to the service manager
    • ibase_service_detach - Disconnect from the service manager
    • ibase_set_event_handler - Register a callback function to be called when events are posted
    • ibase_trans - Begin a transaction
    • ibase_wait_event - Wait for an event to be posted by the database
    • iconv - Dizgenin karakter kodlamasını dönüştürür
    • iconv_get_encoding - iconv eklentisinin dahili yapılandırma değişkenlerini döndürür
    • iconv_mime_decode - Bir MIME başlık alanının kodunu çözer
    • iconv_mime_decode_headers - Bir defada birden fazla MIME başlık alanını çözümler
    • iconv_mime_encode - Bir MIME başlık alanını tertipler
    • iconv_set_encoding - Karakter kodlaması dönüşümü için geçerli karakter kümesini tanımlar
    • iconv_strlen - Dizgenin karakter sayısı ile döner
    • iconv_strpos - Samanlıktaki ilk iğneyi bulur
    • iconv_strrpos - Samanlıktakı son iğneyi bulur
    • iconv_substr - Bir dizgenin bir alt dizgesini döndürür
    • idate - Yerel zaman/tarih kısmını tamsayı olarak biçimlendirir
    • idn_to_ascii - Alan adını IDNA ASCII biçimine dönüştürür
    • idn_to_utf8 - Alan adı kodlamasını IDNA ASCII'den UTF-8'e dönüştürür
    • igbinary_serialize - Generates a compact, storable binary representation of a value
    • igbinary_unserialize - Creates a PHP value from a stored representation from igbinary_serialize
    • ignore_user_abort - Bir istemci bağlantıyı terkettiğinde betiğin sonlandırılıp sonlandırılmayacağını belirler
    • image2wbmp - Görüntüyü tarayıcıya veya dosyaya yazar.
    • imageaffine - İsteğe bağlı bir kırpma alanı kullanarak, belirtilen görüntüye ilgin dönüşümü uygulayıp sonucu döndürür
    • imageaffinematrixconcat - İki ilgin dönüşüm matrisini birleştirir
    • imageaffinematrixget - İlgin dönüşüm matrisini döndürür
    • imagealphablending - Bir görüntü için harmanlama kipini etkinleştirir
    • imageantialias - Kenar yumuşatma işlevlerini uygulatır
    • imagearc - Bir yay çizer
    • imageavif - Görüntüyü tarayıcıya veya dosyaya yazar.
    • imagebmp - BMP görüntüyü tarayıcıya veya dosyaya çıktılar
    • imagechar - Yatay olarak bir karakter çizer
    • imagecharup - Düşey olarak bir karakter çizer
    • imagecolorallocate - Bir görüntü için bir renk ayırır
    • imagecolorallocatealpha - Bir görüntü için alfa kanallı bir renk ayırır
    • imagecolorat - Bir pikselin renk indisini döndürür
    • imagecolorclosest - Belirtilen rengin en yakın benzerinin indisini döndürür
    • imagecolorclosestalpha - Alfası ile birlikte belirtilen rengin en yakın benzerinin renk indisini verir
    • imagecolorclosesthwb - En yakın renk sıcaklığına, beyaz ve siyahlığa sahip renk indisini verir
    • imagecolordeallocate - Bir rengi tanımsız yapar
    • imagecolorexact - Belirtilen rengin indisini döndürür
    • imagecolorexactalpha - Alfası ile birlikte belirtilen rengin indisini verir
    • imagecolormatch - Bir görüntünün paletli sürümünün renklerini gerçek renkli sürümünün renkleriyle aynı yapar
    • imagecolorresolve - Belirtilen rengin veya en yakın benzerinin indisini döndürür
    • imagecolorresolvealpha - Alfası ile birlikte belirtilen rengin veya en yakın benzerinin renk indisini verir
    • imagecolorset - Bir palet indisi için renk tanımlar
    • imagecolorsforindex - Bir renk indisinin renk bilgisini döndürür
    • imagecolorstotal - Bir görüntü paletindeki renk sayısını döndürür
    • imagecolortransparent - Bir rengi şeffaflaştırır
    • imageconvolution - Bir konum ve katsayı ile 3x3'lük bir evrişim matrisini uygular
    • imagecopy - Bir resim parçasını kopyalar
    • imagecopymerge - Bir görüntüyü kopyalar ve karıştırır
    • imagecopymergegray - Bir görüntüyü kopyalar ve gri tonlama ile karıştırır
    • imagecopyresampled - Görüntünün bir parçasını örnekleyerek kopyalar ve boyutlandırır
    • imagecopyresized - Görüntünün bir parçasını kopyalar ve boyutlandırır
    • imagecreate - Yeni bir paletli görüntü oluşturur
    • imagecreatefromavif - Bir dosya veya URL'den yeni bir görüntü oluşturur.
    • imagecreatefrombmp - Bir dosya veya URL'den yeni bir görüntü oluşturur.
    • imagecreatefromgd - Bir GD dosyasından veya URL'sinden yeni bir görüntü oluşturur
    • imagecreatefromgd2 - Bir GD2 dosyasından veya URL'sinden yeni bir görüntü oluşturur
    • imagecreatefromgd2part - Bir GD2 parça dosyasından veya URL'sinden yeni bir görüntü oluşturur
    • imagecreatefromgif - Bir dosya veya URL'den yeni bir görüntü oluşturur.
    • imagecreatefromjpeg - Bir dosya veya URL'den yeni bir görüntü oluşturur.
    • imagecreatefrompng - Bir dosya veya URL'den yeni bir görüntü oluşturur.
    • imagecreatefromstring - Belirtilen dizgeden yeni bir görüntü oluşturur
    • imagecreatefromtga - Bir dosya veya URL'den yeni bir görüntü oluşturur.
    • imagecreatefromwbmp - Bir dosya veya URL'den yeni bir görüntü oluşturur.
    • imagecreatefromwebp - Bir dosya veya URL'den yeni bir görüntü oluşturur.
    • imagecreatefromxbm - Bir dosya veya URL'den yeni bir görüntü oluşturur.
    • imagecreatefromxpm - Bir dosya veya URL'den yeni bir görüntü oluşturur.
    • imagecreatetruecolor - Yeni bir gerçek renkli görüntü oluşturur
    • imagecrop - Görüntüyü belirtilen dikdörtgen ile kırpar
    • imagecropauto - Mevcut kiplerden birini kullanarak görüntüyü otomatik olarak kırpar
    • imagedashedline - Kesikli çizgi çizer
    • imagedestroy - Bir görüntüyü bellekten siler
    • imageellipse - Bir elips çizer
    • imagefill - Görüntüyü boyar
    • imagefilledarc - Bir yay çizer ve içini doldurur
    • imagefilledellipse - İçi dolu bir elips çizer
    • imagefilledpolygon - İçi dolu bir çokgen çizer
    • imagefilledrectangle - İçi dolu bir dikdörtgen çizer
    • imagefilltoborder - Belli bir bölgeyi belli bir renge boyar
    • imagefilter - Bir görüntüye bir süzgeç uygular
    • imageflip - Belirtilen kipi kullanarak görüntüyü ters çevirir
    • imagefontheight - Yazı tipi piksel yüksekliğini döndürür
    • imagefontwidth - Yazı tipi piksel genişliğini döndürür
    • imageftbbox - Bir FreeType2 yazı tipi ile yazılacak bir metnin çerçevesini hesaplar
    • imagefttext - Bir metni bir görüntüye bir FreeType 2 yazı tipini kullanarak yazar
    • imagegammacorrect - Bir GD görüntüye gamma düzeltmesi uygular
    • imagegd - Tarayıcıya veya bir dosyaya bir GD görüntü çıktılar
    • imagegd2 - Tarayıcıya veya bir dosyaya bir GD2 görüntü çıktılar
    • imagegetclip - Kırpma dikdörtgenini döndürür
    • imagegetinterpolation - Ara değerleme yöntemini döndürür
    • imagegif - Görüntüyü tarayıcıya veya dosyaya yazar.
    • imagegrabscreen - Ekran görüntüsünü yakalar
    • imagegrabwindow - Bir pencereyi yakalar
    • imageinterlace - Geçişimliliği açıp kapar
    • imageistruecolor - Bir görüntünün gerçek renkli olup olmadığını bulur
    • imagejpeg - Görüntüyü tarayıcıya veya dosyaya yazar.
    • imagelayereffect - Katmanlama etkisini kullanmak için alfa harmanlama seçeneğini ayarlar
    • imageline - Bir çizgi çizer
    • imageloadfont - Yeni bir bit eşlemli yazı tipi yükler
    • imageopenpolygon - Açık çokgen çizer
    • imagepalettecopy - Paleti bir görüntüden diğerine kopyalar
    • imagepalettetotruecolor - Palet tabanlı bir görüntüyü gerçek renge dönüştürür
    • imagepng - Tarayıcıya veya bir dosyaya bir PNG görüntü çıktılar
    • imagepolygon - Çokgen çizer
    • imagerectangle - Bir dikdörtgen çizer
    • imageresolution - Görüntünün çözünürlüğünü tanımlar veya döndürür
    • imagerotate - Bir görüntüyü belirtilen açıya göre döndürür
    • imagesavealpha - Görüntüleri kaydederken alfa kanalı bilgisinin saklanıp saklanmayacağını belirtir
    • imagescale - Görüntüyü belirtilen genişlik ve yüksekliği kullanarak oranlar
    • imagesetbrush - Çizgi çizmek için fırça görüntüsü oluşturur
    • imagesetclip - Kırpma dikdörtgenini tanımlar
    • imagesetinterpolation - Ara değerleme yöntemini tanımlar
    • imagesetpixel - Bir pikselin rengini değiştirir
    • imagesetstyle - Çizgi tarzını ayarlar
    • imagesetthickness - Çizgi kalınlığını ayarlar
    • imagesettile - Görüntüyü doldurmak için döşemeyi etkin kılar
    • imagestring - Bir dizgeyi yatay olarak yazar
    • imagestringup - Bir dizgeyi 90 derece döndürülmüş olarak yazar
    • imagesx - Görüntünün genişliğini döndürür
    • imagesy - Görüntünün yüksekliğini döndürür
    • imagetruecolortopalette - Gerçek renkli görüntüyü paletli görüntüye dönüştürür
    • imagettfbbox - TrueType yazıtipi kullanılan bir metnin çerçevesini döndürür
    • imagettftext - Metni görüntüye TrueType yazı tipi ile yazar
    • imagetypes - Kurulu PHP'nin desteklediği görüntü türlerini döndürür
    • imagewbmp - Görüntüyü tarayıcıya veya dosyaya yazar.
    • imagewebp - WebP görüntüyü tarayıcıya veya dosyaya çıktılar
    • imagexbm - Bir XBM görüntüyü tarayıcıya veya dosyaya çıktılar
    • image_type_to_extension - Resim türü ile ilgili dosya uzantısını döndürür
    • image_type_to_mime_type - getimagesize, exif_read_data, exif_thumbnail, exif_imagetype ile döndürülen resim türü ile ilgili MIME türünü döndürür
    • Imagick::adaptiveBlurImage - Görüntüyü uyarlamalı olarak bulanıklaştırır
    • Imagick::adaptiveResizeImage - Nirengi noktasına göre uyarlamalı olarak görüntüyü boyutlandırır
    • Imagick::adaptiveSharpenImage - Uyarlamalı olarak görüntüyü keskinleştirir
    • Imagick::adaptiveThresholdImage - Bir yoğunluk aralığına göre her piksel için bir eşik seçer
    • Imagick::addImage - Imagick görüntü listesine yeni bir görüntü ekler
    • Imagick::addNoiseImage - Görüntüye rasgele gürültü ekler
    • Imagick::affineTransformImage - Görüntüyü dönüştürür
    • Imagick::animateImages - Bir görüntüyü veya görüntüleri canlandırır
    • Imagick::annotateImage - Görüntüye bir metin çizer
    • Imagick::appendImages - Bir görüntü kümesini ekler
    • Imagick::autoLevelImage - Adjusts the levels of a particular image channel
    • Imagick::averageImages - Bir görüntü kümesinin ortalamasını alır
    • Imagick::blackThresholdImage - Eşiğin altında kalan tüm renkleri siyaha çevirir
    • Imagick::blueShiftImage - Mutes the colors of the image
    • Imagick::blurImage - Görüntüye bir bulanıklık süzgeci ekler
    • Imagick::borderImage - Görüntüye bir çerçeve çizer
    • Imagick::brightnessContrastImage - Change the brightness and/or contrast of an image
    • Imagick::charcoalImage - Kara kalem çizimi taklit eder
    • Imagick::chopImage - Bir görüntünün bir bölgesini silerek kırpar
    • Imagick::clampImage - Restricts the color range from 0 to the quantum depth.
    • Imagick::clear - Imagick nesnesi ile ilgili tüm özkaynakları temizler
    • Imagick::clipImage - 8BIM profilindeki ilk yol boyunca görüntüyü kırpar
    • Imagick::clipImagePath - Clips along the named paths from the 8BIM profile, if present
    • Imagick::clipPathImage - 8BIM profili boyunca isimli yolları kırpar
    • Imagick::clone - Imagick nesnesinin tam bir kopyasını yapar
    • Imagick::clutImage - Görüntünün renklerini değiştirir
    • Imagick::coalesceImages - Bir görüntü kümesini tek bir görüntü olarak birleştirir
    • Imagick::colorFloodfillImage - Hedefle eşleşen her pikselin rengini değiştirir
    • Imagick::colorizeImage - Görüntünün her pikseline dolgu rengini karıştırır
    • Imagick::colorMatrixImage - Apply color transformation to an image
    • Imagick::combineImages - Bir veya daha fazla görüntüyü tek bir resim halinde birleştirir
    • Imagick::commentImage - Görüntüye bir açıklama ekler
    • Imagick::compareImageChannels - Bir veya daha fazla görüntünün farkını döndürür
    • Imagick::compareImageLayers - Görüntü katmanlarını karşılaştırıp en iyilenmiş görüntüyü döndürür
    • Imagick::compareImages - Görüntüyü yeniden oluşturulan görüntü ile karşılaştırır
    • Imagick::compositeImage - Bir görüntüyü diğeriyle birleştirir
    • Imagick::contrastImage - Görüntünün zıtlığını değiştirir
    • Imagick::contrastStretchImage - Renkli bir görüntünün zıtlığını ayarlar
    • Imagick::convolveImage - Görüntüye bir evrişim çekirdeği uygular
    • Imagick::count - Get the number of images
    • Imagick::cropImage - Görüntünün bir bölgesini çıkarır
    • Imagick::cropThumbnailImage - Görüntünün kırpık bir örneğini oluşturur
    • Imagick::current - Geçerli Imagick nesnesini döndürür
    • Imagick::cycleColormapImage - Bir görüntünün renk eşleminin bir kısmını değiştirir
    • Imagick::decipherImage - Şifreli bir görüntünün şifresini çözer
    • Imagick::deconstructImages - Görüntüler arasındaki farklı piksellerin kapladığı en büyük alanı döndürür
    • Imagick::deleteImageArtifact - Delete image artifact
    • Imagick::deleteImageProperty - Deletes an image property
    • Imagick::deskewImage - Removes skew from the image
    • Imagick::despeckleImage - Görüntünün benekli görünümünü düzeltir
    • Imagick::destroy - Imagick nesnesini siler
    • Imagick::displayImage - Bir görüntüyü gösterir
    • Imagick::displayImages - Bir görüntü dizisini gösterir
    • Imagick::distortImage - Çeşitli yöntemlerle görüntüyü bozunuma uğratır
    • Imagick::drawImage - Belirtilen ImagickDraw nesnesini görüntüye uygular
    • Imagick::edgeImage - Görüntünün kenarlarını yuvarlatır
    • Imagick::embossImage - Üç boyutluluk etkisi vermek için görüntüyü gri tonlamaya dönüştürür
    • Imagick::encipherImage - Bir görüntüyü şifreler
    • Imagick::enhanceImage - Görüntü kalitesini arttırır
    • Imagick::equalizeImage - Görüntünün renk dağılımını dengeler
    • Imagick::evaluateImage - Görüntüye bir ifade uygular
    • Imagick::exportImagePixels - Exports raw image pixels
    • Imagick::extentImage - Görüntü boyutlarını belirler
    • Imagick::filter - Applies a custom convolution kernel to the image
    • Imagick::flattenImages - Bir görüntü dizisini tek bir görüntü halinde üstüste bindirir
    • Imagick::flipImage - Görüntünün düşeydeki yansımasını oluşturur
    • Imagick::floodFillPaintImage - Hedefle eşleşen piksellerin renklerini değiştirir
    • Imagick::flopImage - Görüntünün yataydaki yansımasını oluşturur
    • Imagick::forwardFourierTransformImage - Implements the discrete Fourier transform (DFT)
    • Imagick::frameImage - Üç boyutluluğu taklit ederek bir çerçeve ekler
    • Imagick::functionImage - Applies a function on the image
    • Imagick::fxImage - Bir ifadeyi görüntüdeki her piksele uygular
    • Imagick::gammaImage - Görüntünün gammasını düzeltir
    • Imagick::gaussianBlurImage - Görüntüyü bulanıklaştırır
    • Imagick::getColorspace - Gets the colorspace
    • Imagick::getCompression - Nesnenin sıkıştırma türünü döndürür
    • Imagick::getCompressionQuality - Nesnenin sıkıştırma seviyesini döndürür
    • Imagick::getCopyright - ImageMagick telif hakkı bilgisini döndürür
    • Imagick::getFilename - Görüntü dizisi ile ilişkili dosya ismini döndürür
    • Imagick::getFont - Yazıtipini döndürür
    • Imagick::getFormat - Imagick nesnesinin biçemini döndürür
    • Imagick::getGravity - Gets the gravity
    • Imagick::getHomeURL - ImageMagick sitesinin adresini döndürür
    • Imagick::getImage - Yeni bir Imagick nesnesi döndürür
    • Imagick::getImageAlphaChannel - Checks if the image has an alpha channel
    • Imagick::getImageArtifact - Get image artifact
    • Imagick::getImageAttribute - Returns a named attribute
    • Imagick::getImageBackgroundColor - Resmin artalan rengini döndürür
    • Imagick::getImageBlob - Görüntü dizisini ikil dizge olarak döndürür
    • Imagick::getImageBluePrimary - Görüntünün renk bileşenlerinden birincil mavi noktayı döndürür
    • Imagick::getImageBorderColor - Görüntünün çerçeve rengini döndürür
    • Imagick::getImageChannelDepth - Belirtilen kanalın derinliğini döndürür
    • Imagick::getImageChannelDistortion - Görüntünün kanallarını yeniden oluşturulan görüntüyle karşılaştırır
    • Imagick::getImageChannelDistortions - Gets channel distortions
    • Imagick::getImageChannelExtrema - Belirtilen kanalların uç değerlerini döndürür
    • Imagick::getImageChannelKurtosis - The getImageChannelKurtosis purpose
    • Imagick::getImageChannelMean - Kanal ortalama ve standart sapmasını döndürür
    • Imagick::getImageChannelRange - Gets channel range
    • Imagick::getImageChannelStatistics - Görüntüdeki her kanalın istatistiklerini döndürür
    • Imagick::getImageClipMask - Resim kırpma maskesini döndürür
    • Imagick::getImageColormapColor - Renk eşlemi indisi belirtilen rengi döndürür
    • Imagick::getImageColors - Görüntüdeki eşsiz renklerin sayısını döndürür
    • Imagick::getImageColorspace - Resmin renk uzayını döndürür
    • Imagick::getImageCompose - Görüntü ile ilgili birleştirme işlecini döndürür
    • Imagick::getImageCompression - Görüntünün sıkıştırma türünü döndürür
    • Imagick::getImageCompressionQuality - Görüntünün sıkıştırma seviyesini döndürür
    • Imagick::getImageDelay - Görüntü gecikmesini döndürür
    • Imagick::getImageDepth - Görüntü derinliğini döndürür
    • Imagick::getImageDispose - Görüntünün elden çıkarma yöntemini döndürür
    • Imagick::getImageDistortion - Görüntüyü yeniden oluşturulmuş bir görüntü ile karşılaştırır
    • Imagick::getImageExtrema - Görüntü ile ilgili uç değerleri döndürür
    • Imagick::getImageFilename - Bir görüntü dizisindeki belli bir görüntünün dosya ismini döndürür
    • Imagick::getImageFormat - Bir görüntü dizisindeki belli bir görüntünün biçemini döndürür
    • Imagick::getImageGamma - Görüntünün gammasını döndürür
    • Imagick::getImageGeometry - Görüntünün genişliğini ve yüksekliğini bir ilişkisel dizi olarak döndürür
    • Imagick::getImageGravity - Gets the image gravity
    • Imagick::getImageGreenPrimary - Görüntünün renk bileşenlerinden birincil yeşil noktayı döndürür
    • Imagick::getImageHeight - Görüntünün yüksekliğini döndürür
    • Imagick::getImageHistogram - Görüntünün renk dağılımını döndürür
    • Imagick::getImageIndex - Geçerli etkin görüntünün indisini döndürür
    • Imagick::getImageInterlaceScheme - Görüntünün geçişim şemasını döndürür
    • Imagick::getImageInterpolateMethod - Aradeğerleme yöntemini döndürür
    • Imagick::getImageIterations - Görüntü yineleme sayısını döndürür
    • Imagick::getImageLength - Görüntü uzunluğunu döndürür
    • Imagick::getImageMatte - Görüntünün bir matlık kanalı varsa true döndürür
    • Imagick::getImageMatteColor - Görüntünün matlık rengini döndürür
    • Imagick::getImageMimeType - Returns the image mime-type
    • Imagick::getImageOrientation - Görüntü baskı yönünü döndürür
    • Imagick::getImagePage - Sayfa geometrisini döndürür
    • Imagick::getImagePixelColor - Belirtilen pikselin rengini döndürür
    • Imagick::getImageProfile - İsimli görüntü profilini döndürür
    • Imagick::getImageProfiles - Görüntü profillerini döndürür
    • Imagick::getImageProperties - Görüntü özelliklerini döndürür
    • Imagick::getImageProperty - İsimli görüntü özelliğini döndürür
    • Imagick::getImageRedPrimary - Görüntünün renk bileşenlerinden birincil kırmızı noktasını döndürür
    • Imagick::getImageRegion - Görüntünün bir bölgesini çıkarır
    • Imagick::getImageRenderingIntent - Görüntüye komutların uygulanış tarzını döndürür
    • Imagick::getImageResolution - Görüntünün X ve Y çözünürlüklerini döndürür
    • Imagick::getImagesBlob - Tüm görüntü dizilerini bir ikil dizge olarak döndürür
    • Imagick::getImageScene - Görüntünün artalan dekorunu döndürür
    • Imagick::getImageSignature - Görüntünün SHA-256 aşını üretir
    • Imagick::getImageSize - Görüntü uzunluğunu bayt cinsinden döndürür
    • Imagick::getImageTicksPerSecond - Görüntünün saniyedeki tik sayısını döndürür
    • Imagick::getImageTotalInkDensity - Görüntünün belli bir renginin toplam yoğunluğunu döndürür
    • Imagick::getImageType - Olası görüntü türünü döndürür
    • Imagick::getImageUnits - Görüntü çözünürlük birimlerini döndürür
    • Imagick::getImageVirtualPixelMethod - Sanal piksel yöntemini döndürür
    • Imagick::getImageWhitePoint - Görüntünün renk bileşenlerinden beyaz noktayı döndürür
    • Imagick::getImageWidth - Görüntü genişliğini döndürür
    • Imagick::getInterlaceScheme - Nesne geçişim şemasını döndürür
    • Imagick::getIteratorIndex - Geçerli etkin görüntünün indisini döndürür
    • Imagick::getNumberImages - Nesnedeki görüntü sayısını döndürür
    • Imagick::getOption - Belirtilen anahtarla ilgili değeri döndürür
    • Imagick::getPackageName - ImageMagick paket ismini döndürür
    • Imagick::getPage - Sayfa geometrisini döndürür
    • Imagick::getPixelIterator - Bir MagickPixelIterator nesnesi döndürür
    • Imagick::getPixelRegionIterator - Bir görüntü bölümü için bir ImagickPixelIterator nesnesi döndürür
    • Imagick::getPointSize - Punto değerini döndürür
    • Imagick::getQuantum - Returns the ImageMagick quantum range
    • Imagick::getQuantumDepth - Parçacık derinliğini döndürür
    • Imagick::getQuantumRange - Imagick parçacık aralığını döndürür
    • Imagick::getRegistry - Get a StringRegistry entry
    • Imagick::getReleaseDate - ImageMagick dağıtım tarihini döndürür
    • Imagick::getResource - Belirtilen özkaynağın bellek kullanımını döndürür
    • Imagick::getResourceLimit - Belirtilen özkaynağın bellek kullanım sınırını döndürür
    • Imagick::getSamplingFactors - Yatay ve düşey örnekleme katsayısını döndürür
    • Imagick::getSize - Imagick nesnesi ile ilgili boyutları döndürür
    • Imagick::getSizeOffset - Boyut başlangıç noktasını döndürür
    • Imagick::getVersion - ImageMagick API sürümünü döndürür
    • Imagick::haldClutImage - Replaces colors in the image
    • Imagick::hasNextImage - Görüntünün sonrasında bir görüntü daha var mı diye bakar
    • Imagick::hasPreviousImage - Görüntünün öncesinde bir görüntü daha var mı diye bakar
    • Imagick::identifyFormat - Formats a string with image details
    • Imagick::identifyImage - Görüntünün özniteliklerini döndürerek görüntüyü tanımlar
    • Imagick::implodeImage - Görüntüyü kopyalamak suretiyle yeni bir görüntü oluşturur
    • Imagick::importImagePixels - Imports image pixels
    • Imagick::inverseFourierTransformImage - Implements the inverse discrete Fourier transform (DFT)
    • Imagick::labelImage - Görüntüye bir yafta ekler
    • Imagick::levelImage - Bir görüntünün seviyelerini ayarlar
    • Imagick::linearStretchImage - Görüntünün koyuluğunu doygunluk ile abartır
    • Imagick::liquidRescaleImage - Bir görüntüyü veya görüntüleri canlandırır
    • Imagick::listRegistry - List all the registry settings
    • Imagick::magnifyImage - En boy oranını koruyarak görüntüyü iki katına büyütür
    • Imagick::mapImage - Görüntünün renklerini belirtilen görüntüdeki en yakın renklerle değiştirir
    • Imagick::matteFloodfillImage - Bir rengin şeffaflık değerini değiştirir
    • Imagick::medianFilterImage - Görüntüye bir sayısal süzgeç uygular
    • Imagick::mergeImageLayers - Görüntü katmanlarını katıştırır
    • Imagick::minifyImage - En boy oranını koruyarak görüntüyü yarı boyutuna indirir
    • Imagick::modulateImage - Görüntünün parlaklık, doygunluk ve renk sıcaklığını denetler
    • Imagick::montageImage - Birleşik bir görüntü oluşturur
    • Imagick::morphImages - Bir görüntü dizisini başkalaşıma uğratır
    • Imagick::morphology - Applies a user supplied kernel to the image according to the given morphology method.
    • Imagick::mosaicImages - Görüntülerden bir mozaik oluşturur
    • Imagick::motionBlurImage - Hareket bulanıklığını taklit eder
    • Imagick::negateImage - Görüntünün renklerini negatiflerine dönüştürür
    • Imagick::newImage - Yeni bir görüntü oluşturur
    • Imagick::newPseudoImage - Yeni bir görüntü oluşturur
    • Imagick::nextImage - Bir sonraki görüntüye gider
    • Imagick::normalizeImage - Renkli bir görüntünün zıtlığını arttırır
    • Imagick::oilPaintImage - Yağlı boya resmi taklit eder
    • Imagick::opaquePaintImage - Hedef ile eşleşen piksellerin rengini değiştirir
    • Imagick::optimizeImageLayers - En iyilemek amacıyla görüntülerin tekrarlanan bölümlerini siler
    • Imagick::orderedPosterizeImage - Görüntüye kurallı titreklik uygular
    • Imagick::paintFloodfillImage - Belirtilen renkle eşleşen piksellerin rengini değiştirir
    • Imagick::paintOpaqueImage - Bir rengi bir başka renkle değiştirir
    • Imagick::paintTransparentImage - Görüntüdeki belli bir rengi dolgu rengiyle değiştirir
    • Imagick::pingImage - Temel görüntü özniteliklerini bir dosyadan okur
    • Imagick::pingImageBlob - Temel görüntü özniteliklerini bir dizgeden okur
    • Imagick::pingImageFile - Temel görüntü özniteliklerini bir akımdan okur
    • Imagick::polaroidImage - Polaroid resmi taklit eder
    • Imagick::posterizeImage - Görüntüdeki renkleri belli bir sayıya düşürür
    • Imagick::previewImages - Görüntü üzerinde yapılacak bir işlem için en uygun bağımsız değişkenin tespitini hızlandırır
    • Imagick::previousImage - Bir önceki görüntüye gider
    • Imagick::profileImage - Bir görüntüye profil ekler veya çıkarır
    • Imagick::quantizeImage - Belli bir görüntü içindeki renk miktarını bulur
    • Imagick::quantizeImages - Bir görüntü kümesi içindeki renk miktarını bulur
    • Imagick::queryFontMetrics - Yazı tipinin özelliklerini içeren bir dizi döndürür
    • Imagick::queryFonts - Yapılandırımış yazı tiplerini döndürür
    • Imagick::queryFormats - Imagick tarafından desteklenen biçemleri döndürür
    • Imagick::radialBlurImage - Görüntüye dairesel bulanıklık uygular
    • Imagick::raiseImage - 3 boyutlu düğme benzeri bir etki oluşturur
    • Imagick::randomThresholdImage - Yüksek zıtlığa sahip iki renkli görüntü oluşturur
    • Imagick::readImage - Görüntüyü dosyadar okur
    • Imagick::readImageBlob - Görüntüyü ikil bir dizgeden okur
    • Imagick::readImageFile - Görüntüyü akımdan okur
    • Imagick::readimages - Reads image from an array of filenames
    • Imagick::recolorImage - Görüntüyü yeniden renklendirir
    • Imagick::reduceNoiseImage - Görüntünün dış hatlarını yumuşatır
    • Imagick::remapImage - Remaps image colors
    • Imagick::removeImage - Görüntü kümesinden görüntü siler
    • Imagick::removeImageProfile - İsimli görüntü profilini silip döndürür
    • Imagick::render - Evvelce verilmiş tüm çizim komutlarını uygular
    • Imagick::resampleImage - Belirtilen çözünürlüğe göre görüntüyü yeniden örnekler
    • Imagick::resetImagePage - Görüntü sayfasını sıfırlar
    • Imagick::resizeImage - Görüntüyü boyutlandırır
    • Imagick::rollImage - Görüntünün başlangıç noktasını tanımlar
    • Imagick::rotateImage - Görüntüyü döndürür
    • Imagick::rotationalBlurImage - Rotational blurs an image
    • Imagick::roundCorners - Görüntünün köşelerini yuvarlatır
    • Imagick::sampleImage - Görüntüyü piksel örneklemeyle oranlar
    • Imagick::scaleImage - Görüntünün enboy oranını ayarlar
    • Imagick::segmentImage - Segments an image
    • Imagick::selectiveBlurImage - Selectively blur an image within a contrast threshold
    • Imagick::separateImageChannel - Görüntüden bir kanalı ayırır
    • Imagick::sepiaToneImage - Görüntüye kızıl kahverengi tonlama uygular
    • Imagick::setBackgroundColor - Nesnenin öntanımlı artalan rengini tanımlar
    • Imagick::setColorspace - Set colorspace
    • Imagick::setCompression - Nesnenin öntanımlı sıkıştırma türünü tanımlar
    • Imagick::setCompressionQuality - Nesnenin öntanımlı sıkıştırma seviyesini tanımlar
    • Imagick::setFilename - Görüntüye dosya ismi tanımlar
    • Imagick::setFirstIterator - Imagick yineleyiciyi ilk görüntüye konumlar
    • Imagick::setFont - Imagick nesnesinin yazı tipini tanımlar
    • Imagick::setFormat - Imagick nesnesinin biçemini tanımlar
    • Imagick::setGravity - Sets the gravity
    • Imagick::setImage - Nesnedeki görüntüyü değiştirir
    • Imagick::setImageAlphaChannel - Görüntünün şeffaflık kanalını tanımlar
    • Imagick::setImageArtifact - Set image artifact
    • Imagick::setImageAttribute - Sets an image attribute
    • Imagick::setImageBackgroundColor - Görüntünün artalan rengini tanımlar
    • Imagick::setImageBias - Görüntüyü evriştirmekte kullanılan yöntem için görüntü sapmasını tanımlar
    • Imagick::setImageBiasQuantum - Sets the image bias
    • Imagick::setImageBluePrimary - Görüntünün renk bileşenlerinden birincil mavi noktasını tanımlar
    • Imagick::setImageBorderColor - Görüntünün çerçeve rengini tanımlar
    • Imagick::setImageChannelDepth - Belli bir görüntü kanalının derinliğini tanımlar
    • Imagick::setImageClipMask - Görüntü kırpma maskesini tanımlar
    • Imagick::setImageColormapColor - Renk eşlemi indisi belirtilen rengi tanımlar
    • Imagick::setImageColorspace - Görüntünün renk uzayını tanımlar
    • Imagick::setImageCompose - Görüntü birleştirme işlecini tanımlar
    • Imagick::setImageCompression - Görüntü sıkıştırma seviyesini tanımlar
    • Imagick::setImageCompressionQuality - Görüntü sıkıştırma seviyesini belirler
    • Imagick::setImageDelay - Görüntü gecikmesini tanımlar
    • Imagick::setImageDepth - Görüntü derinliğini tanımlar
    • Imagick::setImageDispose - Görüntünün elden çıkarma yöntemini tanımlar
    • Imagick::setImageExtent - Görüntünün boyutlarını tanımlar
    • Imagick::setImageFilename - Belli bir görüntünün dosya ismini tanımlar
    • Imagick::setImageFormat - Belli bir görüntünün biçemini tanımlar
    • Imagick::setImageGamma - Görüntünün gammasını tanımlar
    • Imagick::setImageGravity - Sets the image gravity
    • Imagick::setImageGreenPrimary - Görüntünün renk bileşenlerinden birincil yeşil noktayı tanımlar
    • Imagick::setImageIndex - Yineleyici konumunu tanımlar
    • Imagick::setImageInterlaceScheme - Görüntü geçişim şemasını tanımlar
    • Imagick::setImageInterpolateMethod - Görüntünün aradeğer pikseli yöntemini tanımlar
    • Imagick::setImageIterations - Görüntü yineleme sayısını tanımlar
    • Imagick::setImageMatte - Görüntünün matlık kanalını ayarlar
    • Imagick::setImageMatteColor - Görüntünün şeffaf rengini tanımlar
    • Imagick::setImageOpacity - Görüntünün matlık seviyesini tanımlar
    • Imagick::setImageOrientation - Görüntünün baskı yönünü tanımlar
    • Imagick::setImagePage - Görüntünün sayfa geometrisini tanımlar
    • Imagick::setImageProfile - Imagick nesnesine isimli bir profil ekler
    • Imagick::setImageProperty - Bir görüntü özelliğini tanımlar
    • Imagick::setImageRedPrimary - Görüntünün renk bileşenlerinden birincil kırmızı noktayı tanımlar
    • Imagick::setImageRenderingIntent - Görüntüye komutların uygulanış tarzını belirler
    • Imagick::setImageResolution - Görüntünün çözünürlüğünü ayarlar
    • Imagick::setImageScene - Görüntünün dekorunu tanımlar
    • Imagick::setImageTicksPerSecond - Canlandırma hızını değiştirir
    • Imagick::setImageType - Görüntü türünü tanımlar
    • Imagick::setImageUnits - Görüntünün çözünürlük birimlerini tanımlar
    • Imagick::setImageVirtualPixelMethod - Görüntünün sanal piksel yöntemini tanımlar
    • Imagick::setImageWhitePoint - Renk berraklığının beyaz noktasını tanımlar
    • Imagick::setInterlaceScheme - Görüntü geçişim şemasını tanımlar
    • Imagick::setIteratorIndex - Yineleyici konumunu belirler
    • Imagick::setLastIterator - Son görüntüye bir Imagick yineleyicisi atar
    • Imagick::setOption - Bir seçenek tanımlar
    • Imagick::setPage - Imagick nesnesinin sayfa geometrisini tanımlar
    • Imagick::setPointSize - Yazı puntosunu belirler
    • Imagick::setProgressMonitor - Set a callback to be called during processing
    • Imagick::setRegistry - Sets the ImageMagick registry entry named key to value
    • Imagick::setResolution - Görüntü çözünürlüğünü tanımlar
    • Imagick::setResourceLimit - Belli bir özkaynağa sınır tanımlar
    • Imagick::setSamplingFactors - Görüntü örnekleme çarpanlarını ayarlar
    • Imagick::setSize - Imagick nesnesinin boyutlarını ayarlar
    • Imagick::setSizeOffset - Imagick nesnesinin başlangıcını ve boyutlarını ayarlar
    • Imagick::setType - Görüntünün tür özniteliğini tanımlar
    • Imagick::shadeImage - Üç boyutluluk etkisi oluşturur
    • Imagick::shadowImage - Görüntüde gölgeleri taklit eder
    • Imagick::sharpenImage - Görüntüyü netleştirir
    • Imagick::shaveImage - Görüntünün kenarındaki pikselleri rendeler
    • Imagick::shearImage - Bir paralalkenar oluşturur
    • Imagick::sigmoidalContrastImage - Bir resmin zıtlığını ayarlar
    • Imagick::sketchImage - Kara kalem çalışmasını taklit eder
    • Imagick::smushImages - Takes all images from the current image pointer to the end of the image list and smushs them
    • Imagick::solarizeImage - Görüntüye uzun pozlama etkisi uygular
    • Imagick::sparseColorImage - Interpolates colors
    • Imagick::spliceImage - Görüntüye düz bir renk ekler
    • Imagick::spreadImage - Bir kümedeki her pikseli rasgele gösterir
    • Imagick::statisticImage - Modifies image using a statistics function
    • Imagick::steganoImage - Görüntünün içine sayısal bir filigran gizler
    • Imagick::stereoImage - İki görüntüyü birleştirir
    • Imagick::stripImage - Görüntüden tüm profilleri ve açıklamaları ayıklar
    • Imagick::subImageMatch - Searches for a subimage in the current image and returns a similarity image
    • Imagick::swirlImage - Görüntünün merkezine yakın pikselleri girdap gibi döndürür
    • Imagick::textureImage - Doku görüntüsünü yatay ve düşeyde yineler
    • Imagick::thresholdImage - Bazı pikselleri belli bir eşiğe göre değiştir
    • Imagick::thumbnailImage - Görüntünün boyutlarını değiştirir
    • Imagick::tintImage - Görüntüdeki her piksele bir renk yöneyi uygular
    • Imagick::transformImage - Budama miktarını ve görüntü geometrisini ayarlamanın uygun yolu
    • Imagick::transformImageColorspace - Transforms an image to a new colorspace
    • Imagick::transparentPaintImage - Pikselleri şeffaflaştırır
    • Imagick::transposeImage - Görüntünün düşeydeki yansımasını oluşturur
    • Imagick::transverseImage - Görüntünün yataydaki yansımasını oluşturur
    • Imagick::trimImage - Görüntünün kenarlarını siler
    • Imagick::uniqueImageColors - Biri dışında tüm piksel renklerini iptal eder
    • Imagick::unsharpMaskImage - Görüntüyü netleştirir
    • Imagick::valid - Imagick nesnesinin geçerli olup olmadığını sınar
    • Imagick::vignetteImage - Görüntüye bir nakış süzgeci uygular
    • Imagick::waveImage - Görüntüye bir dalga süzgeci uygular
    • Imagick::whiteThresholdImage - Eşiğin üstündeki tüm piksellerin rengini beyaza zorlar
    • Imagick::writeImage - Görüntüyü belirtilen dosyaya yazar
    • Imagick::writeImageFile - Bir görüntüyü belirtilen dosya tanıtıcısına yazar
    • Imagick::writeImages - Bir görüntüyü veya görüntü kümesini dosyaya yazar
    • Imagick::writeImagesFile - Görüntü karelerini bir dosya tanıtıcısına yazar
    • Imagick::__construct - Imagick kurucusu
    • Imagick::__toString - Returns the image as a string
    • ImagickDraw::affine - Geçerli homojen koordinatlar matrisini ayarlar
    • ImagickDraw::annotation - Görüntünün üzerine bir metin çizer
    • ImagickDraw::arc - Bir yay çizer
    • ImagickDraw::bezier - Bir Bezier eğrisi çizer
    • ImagickDraw::circle - Bir daire çizer
    • ImagickDraw::clear - ImagickDraw nesnesini temizler
    • ImagickDraw::clone - Belirtilen ImagickDraw nesnesinin tam bir kopyasını yapar
    • ImagickDraw::color - Bir görüntüyü boyar
    • ImagickDraw::comment - Bir yöney çıktı akımına bir açıklama ekler
    • ImagickDraw::composite - Bir görüntüyü geçerli görüntüyle bileştirir
    • ImagickDraw::destroy - ImagickDraw yıkıcısı
    • ImagickDraw::ellipse - Görüntünün üzerine bir elips çizer
    • ImagickDraw::getClipPath - Geçerli yalıtım maskesi kimliğini döndürür
    • ImagickDraw::getClipRule - Yalıtım maskesi tarafından kullanılan çokgen dolgu kuralını döndürür
    • ImagickDraw::getClipUnits - Yalıtım maskesi birimlerinin yorumunu döndürür
    • ImagickDraw::getFillColor - Dolgu rengini döndürür
    • ImagickDraw::getFillOpacity - Çizimde kullanılan matlık değerini döndürür
    • ImagickDraw::getFillRule - Geçerli dolgu kuralını döndürür
    • ImagickDraw::getFont - Geçerli yazı tipini döndürür
    • ImagickDraw::getFontFamily - Yazı tipi ailesini döndürür
    • ImagickDraw::getFontSize - Yazı tipi yüksekliğini döndürür
    • ImagickDraw::getFontStretch - Gets the font stretch to use when annotating with text
    • ImagickDraw::getFontStyle - Yazı tipi tarzını döndürür
    • ImagickDraw::getFontWeight - Yazı tipi kalınlığını döndürür
    • ImagickDraw::getGravity - Metnin çekim yönünü döndürür
    • ImagickDraw::getStrokeAntialias - Nesne dış hatlarını çizmekte kullanılan vurgu yumuşatması ayarını döndürür
    • ImagickDraw::getStrokeColor - Nesne dış hatlarını çizmekte kullanılan vurgunun rengini döndürür
    • ImagickDraw::getStrokeDashArray - Kesikli çizgi örüntüsünü oluşturmakta kullanılan tireleri ve boşlukları içeren bir dizi döndürür
    • ImagickDraw::getStrokeDashOffset - Kesikli çizgi örüntüsünde tire başlangıcını döndürür
    • ImagickDraw::getStrokeLineCap - Kalın çizgilerdeki çizgi uçlarının şeklini döndürür
    • ImagickDraw::getStrokeLineJoin - Kalın çizgi ekleminin şeklini döndürür
    • ImagickDraw::getStrokeMiterLimit - Gönyenin kesildiği sınırı döndürür
    • ImagickDraw::getStrokeOpacity - Nesne dış hatlarını çizmekte kullanılan vurgunun matlığını döndürür
    • ImagickDraw::getStrokeWidth - Nesne dış hatlarını çizmekte kullanılan vurgu genişliğini döndürür
    • ImagickDraw::getTextAlignment - Metin hizalamasını döndürür
    • ImagickDraw::getTextAntialias - Geçerli metin yumuşatma ayarını döndürür
    • ImagickDraw::getTextDecoration - Metin süslemesi türünü döndürür
    • ImagickDraw::getTextEncoding - Metin çizerken kullanılan karakter kümesi ismini döndürür
    • ImagickDraw::getTextInterlineSpacing - Gets the text interword spacing
    • ImagickDraw::getTextInterwordSpacing - Gets the text interword spacing
    • ImagickDraw::getTextKerning - Gets the text kerning
    • ImagickDraw::getTextUnderColor - Metin artalanındaki rengi döndürür
    • ImagickDraw::getVectorGraphics - Yöney çizgesini içeren bir dizge döner
    • ImagickDraw::line - Bir çizgi çizer
    • ImagickDraw::matte - Görüntünün matlık kanalını boyar
    • ImagickDraw::pathClose - Geçerli hatta son elemanı ekler
    • ImagickDraw::pathCurveToAbsolute - Üçüncü dereceden bir Bezier eğrisi çizer
    • ImagickDraw::pathCurveToQuadraticBezierAbsolute - İkinci dereceden bir Bezier eğrisi çizer
    • ImagickDraw::pathCurveToQuadraticBezierRelative - İkinci dereceden bir Bezier eğrisi çizer
    • ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute - İkinci dereceden bir Bezier eğrisi çizer
    • ImagickDraw::pathCurveToQuadraticBezierSmoothRelative - İkinci dereceden bir Bezier eğrisi çizer
    • ImagickDraw::pathCurveToRelative - Üçüncü dereceden bir Bezier eğrisi çizer
    • ImagickDraw::pathCurveToSmoothAbsolute - Üçüncü dereceden bir Bezier eğrisi çizer
    • ImagickDraw::pathCurveToSmoothRelative - Üçüncü dereceden bir Bezier eğrisi çizer
    • ImagickDraw::pathEllipticArcAbsolute - Eliptik bir yay çizer
    • ImagickDraw::pathEllipticArcRelative - Bir eliptik yay çizer
    • ImagickDraw::pathFinish - Geçerli hattı sonlandırır
    • ImagickDraw::pathLineToAbsolute - Bir hat elemanı çizer
    • ImagickDraw::pathLineToHorizontalAbsolute - Yatay bir hat elemanı çizer
    • ImagickDraw::pathLineToHorizontalRelative - Yatay bir hat elemanı çizer
    • ImagickDraw::pathLineToRelative - Bir hat elemanı çizer
    • ImagickDraw::pathLineToVerticalAbsolute - Düşey bir hat elemanı çizer
    • ImagickDraw::pathLineToVerticalRelative - Bir düşey hat elemanı çizer
    • ImagickDraw::pathMoveToAbsolute - Yeni bir hat elemanı başlatır
    • ImagickDraw::pathMoveToRelative - Yeni bir hat elemanı başlatır
    • ImagickDraw::pathStart - Bir hat çizim listesinin başlangıcını bildirir
    • ImagickDraw::point - Bir nokta çizer
    • ImagickDraw::polygon - Bir çokgen çizer
    • ImagickDraw::polyline - Bir çoklu çizgi çizer
    • ImagickDraw::pop - Yığıttaki geçerli ImagickDraw nesnesini silip sonraki nesneyi döndürür
    • ImagickDraw::popClipPath - Bir yalıtım maskesi tanımını sonlandırır
    • ImagickDraw::popDefs - Bir tanım listesini sonlandırır
    • ImagickDraw::popPattern - Bir örüntü tanımını sonlandırır
    • ImagickDraw::push - Geçerli ImagickDraw nesnesini kopyalar ve yığıta basar
    • ImagickDraw::pushClipPath - Bir yalıtım maskesi tanımı başlatır
    • ImagickDraw::pushDefs - Bundan sonra çağrılacak yöntemlerin ImagickDraw::popDefs yöntemi çağrılıncaya kadar isimli elemanları tanımlayacağını belirtir
    • ImagickDraw::pushPattern - Bundan sonra çağrılacak yöntemlerin ImagickDraw::popPattern yöntemi çağrılıncaya kadar bir isimli örüntüyü tanımlayacağını belirtir
    • ImagickDraw::rectangle - Bir dikdörtgen çizer
    • ImagickDraw::render - Evvelce verilmiş tüm çizim komutlarını resme uygular
    • ImagickDraw::resetVectorGraphics - Resets the vector graphics
    • ImagickDraw::rotate - Geçerli koordinat sistemini belirtilen açıda döndürür
    • ImagickDraw::roundRectangle - Köşeleri yuvarlatılmış bir dikdörtgen çizer
    • ImagickDraw::scale - Enboy oranını ayarlar
    • ImagickDraw::setClipPath - Bir isimli yalıtım maskesini resimle ilişkilendirir
    • ImagickDraw::setClipRule - Yalıtım maskesi tarafından kullanılacak çokgen dolgu kuralını belirler
    • ImagickDraw::setClipUnits - Yalıtım maskesi birimlerinin yorumunu belirler
    • ImagickDraw::setFillAlpha - Dolgu dokusu veya dolgu rengi için kullanılacak şeffaflığı belirler
    • ImagickDraw::setFillColor - Dolgulu nesnelerin çiziminde kullanılacak dolgu rengini belirler
    • ImagickDraw::setFillOpacity - Dolgu dokusu veya dolgu rengi için kullanılacak matlığı belirler
    • ImagickDraw::setFillPatternURL - Nesne dolgu örüntüsü için kullanılacak adresi belirler
    • ImagickDraw::setFillRule - Çokgen çizerken kullanılacak dolgu kuralını belirler
    • ImagickDraw::setFont - Metni çizerken kullanılacak yazı tipini tam belirtimiyle belirler
    • ImagickDraw::setFontFamily - Yazı tipi ailesini belirler
    • ImagickDraw::setFontSize - Yazı tipi yüksekliğini belirler
    • ImagickDraw::setFontStretch - Yazı tipinin karakter genişliğini belirler
    • ImagickDraw::setFontStyle - Yazı tipi tarzını belirler
    • ImagickDraw::setFontWeight - Yazı tipi kalınlığını belirler
    • ImagickDraw::setGravity - Metnin çekim yönünü belirler
    • ImagickDraw::setResolution - Sets the resolution
    • ImagickDraw::setStrokeAlpha - Vurgulu nesne dış hatlarının şeffaflığını tanımlar
    • ImagickDraw::setStrokeAntialias - Vurgulu dış hatlara kenar yumuşatma uygulanıp uygulanmayacağını denetler
    • ImagickDraw::setStrokeColor - Nesne dış hatlarını vurgulamakta kullanılacak rengi tanımlar
    • ImagickDraw::setStrokeDashArray - Kesikli çizgi örüntüsünde tireleri ve boşlukları belirler
    • ImagickDraw::setStrokeDashOffset - Kesikli çizgi örüntüsünde tire başlangıcını belirler
    • ImagickDraw::setStrokeLineCap - Kalın çizgilerde çizgi uçlarının şeklini belirler
    • ImagickDraw::setStrokeLineJoin - Kalın çizgi ekleminin şeklini belirler
    • ImagickDraw::setStrokeMiterLimit - Gönyenin kesildiği sınırı tanımlar
    • ImagickDraw::setStrokeOpacity - Vurgulanmış nesne dış hatlarının matlığını tanımlar
    • ImagickDraw::setStrokePatternURL - Nesne dış hatlarının çiziminde kullanılacak örüntüyü tanımlar
    • ImagickDraw::setStrokeWidth - Nesne dış hatlarının çiziminde kullanılacak çizgi genişliğini tanımlar
    • ImagickDraw::setTextAlignment - Metni hizalar
    • ImagickDraw::setTextAntialias - Metne kenar yumuşatma uygulanıp uygulanmayacağını denetler
    • ImagickDraw::setTextDecoration - Bir karakter süslemesi tanımlar
    • ImagickDraw::setTextEncoding - Metin karakter kümesini tanımlar
    • ImagickDraw::setTextInterlineSpacing - Sets the text interline spacing
    • ImagickDraw::setTextInterwordSpacing - Sets the text interword spacing
    • ImagickDraw::setTextKerning - Sets the text kerning
    • ImagickDraw::setTextUnderColor - Metin çerçevesinin artalan rengini tanımlar
    • ImagickDraw::setVectorGraphics - Yöney çizgesini tanımlar
    • ImagickDraw::setViewbox - Tuval boyutunu uçtan uca tanımlar
    • ImagickDraw::skewX - Geçerli koordinat sistemini yatayda belirtilen açıda eğer
    • ImagickDraw::skewY - Geçerli koordinat sistemini düşeyde belirtilen açıda eğer
    • ImagickDraw::translate - Geçerli koordinat sisteminin başnoktasını değiştirir
    • ImagickDraw::__construct - ImagickDraw kurucusu
    • ImagickKernel::addKernel - Attach another kernel to a kernel list
    • ImagickKernel::addUnityKernel - Adds a Unity Kernel to the kernel list
    • ImagickKernel::fromBuiltIn - Create a kernel from a builtin in kernel
    • ImagickKernel::fromMatrix - Create a kernel from a 2d matrix of values
    • ImagickKernel::getMatrix - Get the 2d matrix of values used in this kernel
    • ImagickKernel::scale - Scales a kernel list by the given amount
    • ImagickKernel::separate - Separates a linked set of kernels and returns an array of ImagickKernels
    • ImagickPixel::clear - Nesne ile ilişkili özkaynakları temizler
    • ImagickPixel::destroy - Nesne ile ilgili özkaynakları serbest bırakır
    • ImagickPixel::getColor - Bir renk döndürür
    • ImagickPixel::getColorAsString - Rengi bir dizge olarak döndürür
    • ImagickPixel::getColorCount - Nesnenin renk sayısını döndürür
    • ImagickPixel::getColorQuantum - Returns the color of the pixel in an array as Quantum values
    • ImagickPixel::getColorValue - Belirtilen renk kanalının normalleştirilmiş değerini döndürür
    • ImagickPixel::getColorValueQuantum - Gets the quantum value of a color in the ImagickPixel
    • ImagickPixel::getHSL - ImagickPixel nesnesinin normalleştirilmiş HSL rengini döndürür
    • ImagickPixel::getIndex - Gets the colormap index of the pixel wand
    • ImagickPixel::isPixelSimilar - Check the distance between this color and another
    • ImagickPixel::isPixelSimilarQuantum - Returns whether two colors differ by less than the specified distance
    • ImagickPixel::isSimilar - İki renk arasındaki benzerliği hesaplar
    • ImagickPixel::setColor - Renk tanımlar
    • ImagickPixel::setColorCount - Sets the color count associated with this color
    • ImagickPixel::setColorValue - Renk kanallarından birinin normalleştirilmiş değerini belirler
    • ImagickPixel::setColorValueQuantum - Sets the quantum value of a color element of the ImagickPixel
    • ImagickPixel::setHSL - Normalleştirilmiş HSL rengini ayarlar
    • ImagickPixel::setIndex - Sets the colormap index of the pixel wand
    • ImagickPixel::__construct - ImagickPixel nesnesini oluşturur
    • ImagickPixelIterator::clear - Piksel yineleyici ile ilişkili özkaynakları temizler
    • ImagickPixelIterator::destroy - Piksel yineleyici ile ilişkili özkaynakları serbest bırakır
    • ImagickPixelIterator::getCurrentIteratorRow - Piksel yineleyicinin üzerinde bulunduğu ImagickPixel nesneleri satırını döndürür
    • ImagickPixelIterator::getIteratorRow - Piksel yineleyicinin üzerinde bulunduğu satırın numarasını döndürür
    • ImagickPixelIterator::getNextIteratorRow - Piksel yineleyicinin sonraki satırını döndürür
    • ImagickPixelIterator::getPreviousIteratorRow - Önceki satırı döndürür
    • ImagickPixelIterator::newPixelIterator - Yeni bir piksel yineleyici döndürür
    • ImagickPixelIterator::newPixelRegionIterator - Yeni bir bölgesel piksel yineleyicisi döndürür
    • ImagickPixelIterator::resetIterator - Piksel yineleyiciyi sıfırlar
    • ImagickPixelIterator::setIteratorFirstRow - Piksel yineleyiciyi ilk piksel satırına hizalar
    • ImagickPixelIterator::setIteratorLastRow - Piksel yineleyiciyi son piksel satırına hizalar
    • ImagickPixelIterator::setIteratorRow - Piksel yineleyiciyi satırını tanımlar
    • ImagickPixelIterator::syncIterator - Piksel yineleyiciyi eşzamanlar
    • ImagickPixelIterator::__construct - Bir ImagickPixelIterator nesnesi oluşturur
    • imap_8bit - 8 bitlik bir dizgeyi 7 bitlik (quoted-printable) bir dizgeye dönüştürür
    • imap_alerts - Oluşan tüm IMAP uyarı iletilerini döndürür
    • imap_append - Belirtilen posta kutusuna bir ileti ekler
    • imap_base64 - Base64 kodlu dizgeyi 8 bitlik dizgeye dönüştürür
    • imap_binary - 8 bitlik bir dizgeyi bir base64 dizgesine dönüştürür
    • imap_body - İleti gövdesini okur
    • imap_bodystruct - Belirtilen iletinin bir gövde bölümünün yapısını okur
    • imap_check - Posta kutusu bilgilerini döndürür
    • imap_clearflag_full - İletilerdeki imleri temizler
    • imap_close - IMAP akımını kapatır
    • imap_create - imap_createmailbox işlevinin takma adıdır
    • imap_createmailbox - Yeni bir posta kutusu oluşturur
    • imap_delete - Belirtilen iletiyi silindi olarak imler
    • imap_deletemailbox - Bir posta kutusunu siler
    • imap_errors - Oluşan tüm IMAP hatalarının iletilerini döndürür
    • imap_expunge - Silindi imli tüm iletileri gerçekten siler
    • imap_fetchbody - Belirtilen iletinin belli bir gövde bölümünü döndürür
    • imap_fetchheader - Bir iletinin başlığını döndürür
    • imap_fetchmime - İletinin belirli bir bölümü için MIME başlıklarını getirir
    • imap_fetchstructure - Belli bir iletinin yapısını okur
    • imap_fetchtext - imap_body işlevinin takma adıdır
    • imap_fetch_overview - Belirtilen iletinin başlıklarından belli bilgileri toplar
    • imap_gc - IMAP önbelleğini temizler
    • imap_getacl - Belirtilen posta kutusunun erişim izinlerini döndürür
    • imap_getmailboxes - Posta kutuları hakkında ayrıntılı bilgi döndürür
    • imap_getsubscribed - Üyesi olunan tüm posta kutularını listeler
    • imap_get_quota - Belirtilen kullanıcının kota ayarlarını döndürür
    • imap_get_quotaroot - Kullanıcının kendi kota ayarlarını döndürür
    • imap_header - imap_headerinfo işlevinin takma adıdır
    • imap_headerinfo - Belirtilen iletinin başlığını okur
    • imap_headers - Bir posta kutusu içindeki tüm iletilerin başlıklarını döndürür
    • imap_is_open - Check if the IMAP stream is still valid
    • imap_last_error - Geçerli sayfa isteği sırasında oluşan son IMAP hatasının açıklamasını döndürür
    • imap_list - Posta kutularını listeler
    • imap_listmailbox - imap_list işlevinin takma adıdır
    • imap_listscan - Belirtilen metin ile eşleşen posta kutularını listeler
    • imap_listsubscribed - imap_lsub işlevinin takma adıdır
    • imap_lsub - Üyesi olunan tüm posta kutularını listeler
    • imap_mail - Bir eposta iletisi gönderir
    • imap_mailboxmsginfo - Posta kutusu hakkında bilgi döndürür
    • imap_mail_compose - Zarfı ve gövdesi belirtilen MIME iletisini oluşturur
    • imap_mail_copy - Belirtilen iletileri bir posta kutusuna kopyalar
    • imap_mail_move - Belirtilen iletiyi bir posta kutusuna taşır
    • imap_mime_header_decode - MIME başlık elemanlarının kodlamasını açar
    • imap_msgno - Belirtilen eşsiz kimlik için ileti numarasını döndürür
    • imap_mutf7_to_utf8 - Değiştirilmiş bir UTF-7 dizgesini UTF-8 olarak kodlar
    • imap_num_msg - Posta kutusundaki ileti sayısını döndürür
    • imap_num_recent - Posta kutusuna en son gelen ileti sayısını döndürür
    • imap_open - Belirtilen posta kutusuna yeni bir IMAP akımı açar
    • imap_ping - Belirtilen IMAP akımı hala etkin mi diye bakar
    • imap_qprint - Bir 7 bitlik dizgeyi 8 bitlik dizgeye dönüştürür
    • imap_rename - imap_renamemailbox işlevinin takma adıdır
    • imap_renamemailbox - Posta kutusunun ismini değiştirir
    • imap_reopen - IMAP akımını yeni posta kutusunda yeniden açar
    • imap_rfc822_parse_adrlist - Bir adres dizgesini çözümler
    • imap_rfc822_parse_headers - Bir dizgedeki eposta başlıklarını çözümler
    • imap_rfc822_write_address - Posta kutusu, alan adı ve kişisel bilgi ile gerektiği gibi biçemlenmiş bir eposta adresi dönürür
    • imap_savebody - Belirtilen iletinin gövdesini bir dosyaya kaydeder
    • imap_scan - imap_listscan işlevinin takma adıdır
    • imap_scanmailbox - imap_listscan işlevinin takma adıdır
    • imap_search - Belirtilen kurala uyan iletileri bir dizi içinde döndürür
    • imap_setacl - Belirtilen posta kutusu ile ilgili erişim izinlerini tanımlar
    • imap_setflag_full - İletileri imler
    • imap_set_quota - Belirtilen posta kutusu için bir kota tanımlar
    • imap_sort - İletileri sıralar ve döndürür
    • imap_status - Bir posta kutusunun durum bilgisini döndürür
    • imap_subscribe - Bir posta kutusuna üyeliği başlatır
    • imap_thread - Bir iletinin konu ağacını döndürür
    • imap_timeout - IMAP zaman aşımını tanımlar veya döndürür
    • imap_uid - Numarası belirtilen iletiyle ilgili eşsiz kimliği döndürür
    • imap_undelete - Silindi diye imlenmiş bir iletinin imini kaldırır
    • imap_unsubscribe - Bir posta kutusundan üyeliği sonlandırır
    • imap_utf7_decode - Bir dizgenin karakter kodlamasını takviyeli UTF-7'den ISO-8859-1'e dönüştürür
    • imap_utf7_encode - ISO-8859-1 kodlu bir dizgenin kodlamasını takviyeli UTF-7'ye dönüştürür
    • imap_utf8 - MIME kodlu metni UTF-8'e dönüştürür
    • imap_utf8_to_mutf7 - UTF-8 dizgeyi değiştirilmiş UTF-7 olarak kodlar
    • implode - Dizi elemanlarını birleştirip bir dizge elde eder
    • inet_ntop - Bir IP adresinin in_addr gösterimini insan okuyabilir gösterime dönüştürür
    • inet_pton - İnsan okuyabilir bir IP adresini in_addr gösterimine dönüştürür
    • InfiniteIterator::next - Moves the inner Iterator forward or rewinds it
    • InfiniteIterator::__construct - Constructs an InfiniteIterator
    • inflate_add - Incrementally inflate encoded data
    • inflate_get_read_len - Get number of bytes read so far
    • inflate_get_status - Get decompression status
    • inflate_init - Initialize an incremental inflate context
    • ini_alter - ini_set işlevinin takma adıdır
    • ini_get - Bir yapılandırma yönergesinin değerini döndürür
    • ini_get_all - Tüm yapılandırma yönergelerini döndürür
    • ini_parse_quantity - Get interpreted size from ini shorthand syntax
    • ini_restore - Bir yapılandırma yönergesine eski değerini atar
    • ini_set - Bir yapılandırma yönergesine değer atar
    • inotify_add_watch - Add a watch to an initialized inotify instance
    • inotify_init - Initialize an inotify instance
    • inotify_queue_len - Return a number upper than zero if there are pending events
    • inotify_read - Read events from an inotify instance
    • inotify_rm_watch - Remove an existing watch from an inotify instance
    • intdiv - Integer division
    • interface_exists - Arayüz tanımlı mı diye bakar
    • InternalIterator::current - Geçerli öğeyi döndürür
    • InternalIterator::key - Geçerli öğenin anahtarını döndürür
    • InternalIterator::next - Sonraki öğeye ilerler
    • InternalIterator::rewind - Yineleyicinin ilk öğesine geri gider
    • InternalIterator::valid - Konumu doğrular
    • InternalIterator::__construct - Doğrudan örneklemeye izin vermemek için özel kurucu
    • IntlBreakIterator::createCharacterInstance - Create break iterator for boundaries of combining character sequences
    • IntlBreakIterator::createCodePointInstance - Create break iterator for boundaries of code points
    • IntlBreakIterator::createLineInstance - Create break iterator for logically possible line breaks
    • IntlBreakIterator::createSentenceInstance - Create break iterator for sentence breaks
    • IntlBreakIterator::createTitleInstance - Create break iterator for title-casing breaks
    • IntlBreakIterator::createWordInstance - Create break iterator for word breaks
    • IntlBreakIterator::current - Get index of current position
    • IntlBreakIterator::first - Set position to the first character in the text
    • IntlBreakIterator::following - Advance the iterator to the first boundary following specified offset
    • IntlBreakIterator::getErrorCode - Get last error code on the object
    • IntlBreakIterator::getErrorMessage - Get last error message on the object
    • IntlBreakIterator::getLocale - Get the locale associated with the object
    • IntlBreakIterator::getPartsIterator - Create iterator for navigating fragments between boundaries
    • IntlBreakIterator::getText - Get the text being scanned
    • IntlBreakIterator::isBoundary - Tell whether an offset is a boundary's offset
    • IntlBreakIterator::last - Set the iterator position to index beyond the last character
    • IntlBreakIterator::next - Advance the iterator the next boundary
    • IntlBreakIterator::preceding - Set the iterator position to the first boundary before an offset
    • IntlBreakIterator::previous - Set the iterator position to the boundary immediately before the current
    • IntlBreakIterator::setText - Set the text being scanned
    • IntlBreakIterator::__construct - Private constructor for disallowing instantiation
    • IntlCalendar::add - Add a (signed) amount of time to a field
    • IntlCalendar::after - Whether this object's time is after that of the passed object
    • IntlCalendar::before - Whether this object's time is before that of the passed object
    • IntlCalendar::clear - Clear a field or all fields
    • IntlCalendar::createInstance - Create a new IntlCalendar
    • IntlCalendar::equals - Compare time of two IntlCalendar objects for equality
    • IntlCalendar::fieldDifference - Calculate difference between given time and this object's time
    • IntlCalendar::fromDateTime - Create an IntlCalendar from a DateTime object or string
    • IntlCalendar::get - Get the value for a field
    • IntlCalendar::getActualMaximum - The maximum value for a field, considering the object's current time
    • IntlCalendar::getActualMinimum - The minimum value for a field, considering the object's current time
    • IntlCalendar::getAvailableLocales - Get array of locales for which there is data
    • IntlCalendar::getDayOfWeekType - Tell whether a day is a weekday, weekend or a day that has a transition between the two
    • IntlCalendar::getErrorCode - Get last error code on the object
    • IntlCalendar::getErrorMessage - Get last error message on the object
    • IntlCalendar::getFirstDayOfWeek - Get the first day of the week for the calendar's locale
    • IntlCalendar::getGreatestMinimum - Get the largest local minimum value for a field
    • IntlCalendar::getKeywordValuesForLocale - Get set of locale keyword values
    • IntlCalendar::getLeastMaximum - Get the smallest local maximum for a field
    • IntlCalendar::getLocale - Get the locale associated with the object
    • IntlCalendar::getMaximum - Get the global maximum value for a field
    • IntlCalendar::getMinimalDaysInFirstWeek - Get minimal number of days the first week in a year or month can have
    • IntlCalendar::getMinimum - Get the global minimum value for a field
    • IntlCalendar::getNow - Get number representing the current time
    • IntlCalendar::getRepeatedWallTimeOption - Get behavior for handling repeating wall time
    • IntlCalendar::getSkippedWallTimeOption - Get behavior for handling skipped wall time
    • IntlCalendar::getTime - Get time currently represented by the object
    • IntlCalendar::getTimeZone - Get the object's timezone
    • IntlCalendar::getType - Get the calendar type
    • IntlCalendar::getWeekendTransition - Get time of the day at which weekend begins or ends
    • IntlCalendar::inDaylightTime - Whether the object's time is in Daylight Savings Time
    • IntlCalendar::isEquivalentTo - Whether another calendar is equal but for a different time
    • IntlCalendar::isLenient - Whether date/time interpretation is in lenient mode
    • IntlCalendar::isSet - Whether a field is set
    • IntlCalendar::isWeekend - Whether a certain date/time is in the weekend
    • IntlCalendar::roll - Add value to field without carrying into more significant fields
    • IntlCalendar::set - Set a time field or several common fields at once
    • IntlCalendar::setDate - Set a date fields
    • IntlCalendar::setDateTime - Set a date and time fields
    • IntlCalendar::setFirstDayOfWeek - Set the day on which the week is deemed to start
    • IntlCalendar::setLenient - Set whether date/time interpretation is to be lenient
    • IntlCalendar::setMinimalDaysInFirstWeek - Set minimal number of days the first week in a year or month can have
    • IntlCalendar::setRepeatedWallTimeOption - Set behavior for handling repeating wall times at negative timezone offset transitions
    • IntlCalendar::setSkippedWallTimeOption - Set behavior for handling skipped wall times at positive timezone offset transitions
    • IntlCalendar::setTime - Set the calendar time in milliseconds since the epoch
    • IntlCalendar::setTimeZone - Set the timezone used by this calendar
    • IntlCalendar::toDateTime - Convert an IntlCalendar into a DateTime object
    • IntlCalendar::__construct - Private constructor for disallowing instantiation
    • IntlChar::charAge - Get the "age" of the code point
    • IntlChar::charDigitValue - Get the decimal digit value of a decimal digit character
    • IntlChar::charDirection - Get bidirectional category value for a code point
    • IntlChar::charFromName - Find Unicode character by name and return its code point value
    • IntlChar::charMirror - Get the "mirror-image" character for a code point
    • IntlChar::charName - Retrieve the name of a Unicode character
    • IntlChar::charType - Get the general category value for a code point
    • IntlChar::chr - Return Unicode character by code point value
    • IntlChar::digit - Get the decimal digit value of a code point for a given radix
    • IntlChar::enumCharNames - Enumerate all assigned Unicode characters within a range
    • IntlChar::enumCharTypes - Enumerate all code points with their Unicode general categories
    • IntlChar::foldCase - Perform case folding on a code point
    • IntlChar::forDigit - Get character representation for a given digit and radix
    • IntlChar::getBidiPairedBracket - Get the paired bracket character for a code point
    • IntlChar::getBlockCode - Get the Unicode allocation block containing a code point
    • IntlChar::getCombiningClass - Get the combining class of a code point
    • IntlChar::getFC_NFKC_Closure - Get the FC_NFKC_Closure property for a code point
    • IntlChar::getIntPropertyMaxValue - Get the max value for a Unicode property
    • IntlChar::getIntPropertyMinValue - Get the min value for a Unicode property
    • IntlChar::getIntPropertyValue - Get the value for a Unicode property for a code point
    • IntlChar::getNumericValue - Get the numeric value for a Unicode code point
    • IntlChar::getPropertyEnum - Get the property constant value for a given property name
    • IntlChar::getPropertyName - Get the Unicode name for a property
    • IntlChar::getPropertyValueEnum - Get the property value for a given value name
    • IntlChar::getPropertyValueName - Get the Unicode name for a property value
    • IntlChar::getUnicodeVersion - Get the Unicode version
    • IntlChar::hasBinaryProperty - Check a binary Unicode property for a code point
    • IntlChar::isalnum - Check if code point is an alphanumeric character
    • IntlChar::isalpha - Check if code point is a letter character
    • IntlChar::isbase - Check if code point is a base character
    • IntlChar::isblank - Check if code point is a "blank" or "horizontal space" character
    • IntlChar::iscntrl - Check if code point is a control character
    • IntlChar::isdefined - Check whether the code point is defined
    • IntlChar::isdigit - Check if code point is a digit character
    • IntlChar::isgraph - Check if code point is a graphic character
    • IntlChar::isIDIgnorable - Check if code point is an ignorable character
    • IntlChar::isIDPart - Check if code point is permissible in an identifier
    • IntlChar::isIDStart - Check if code point is permissible as the first character in an identifier
    • IntlChar::isISOControl - Check if code point is an ISO control code
    • IntlChar::isJavaIDPart - Check if code point is permissible in a Java identifier
    • IntlChar::isJavaIDStart - Check if code point is permissible as the first character in a Java identifier
    • IntlChar::isJavaSpaceChar - Check if code point is a space character according to Java
    • IntlChar::islower - Check if code point is a lowercase letter
    • IntlChar::isMirrored - Check if code point has the Bidi_Mirrored property
    • IntlChar::isprint - Check if code point is a printable character
    • IntlChar::ispunct - Check if code point is punctuation character
    • IntlChar::isspace - Check if code point is a space character
    • IntlChar::istitle - Check if code point is a titlecase letter
    • IntlChar::isUAlphabetic - Check if code point has the Alphabetic Unicode property
    • IntlChar::isULowercase - Check if code point has the Lowercase Unicode property
    • IntlChar::isupper - Check if code point has the general category "Lu" (uppercase letter)
    • IntlChar::isUUppercase - Check if code point has the Uppercase Unicode property
    • IntlChar::isUWhiteSpace - Check if code point has the White_Space Unicode property
    • IntlChar::isWhitespace - Check if code point is a whitespace character according to ICU
    • IntlChar::isxdigit - Check if code point is a hexadecimal digit
    • IntlChar::ord - Return Unicode code point value of character
    • IntlChar::tolower - Make Unicode character lowercase
    • IntlChar::totitle - Make Unicode character titlecase
    • IntlChar::toupper - Make Unicode character uppercase
    • IntlCodePointBreakIterator::getLastCodePoint - Get last code point passed over after advancing or receding the iterator
    • IntlDateFormatter::create - Bir tarih biçemleyici oluşturur
    • IntlDateFormatter::format - Tarih/saat değerini bir dizge olarak biçemler
    • IntlDateFormatter::formatObject - Formats an object
    • IntlDateFormatter::getCalendar - IntlDateFormatter tarafından kullanılan takvim türünü döndürür
    • IntlDateFormatter::getCalendarObject - Get copy of formatter's calendar object
    • IntlDateFormatter::getDateType - IntlDateFormatter tarafından kullanılan tarih gösterim türünü döndürür
    • IntlDateFormatter::getErrorCode - Son işlemin hata kodunu döndürür
    • IntlDateFormatter::getErrorMessage - Son işlemin hata iletisini döndürür
    • IntlDateFormatter::getLocale - Biçemleyicinin kullandığı yereli döndürür
    • IntlDateFormatter::getPattern - IntlDateFormatter tarafından kullanılan kalıbı döndürür
    • IntlDateFormatter::getTimeType - IntlDateFormatter tarafından kullanılan zaman gösterim türünü döndürür
    • IntlDateFormatter::getTimeZone - Get formatter's timezone
    • IntlDateFormatter::getTimeZoneId - IntlDateFormatter tarafından kullanılan zaman dilimi tantıcısını döndürür
    • IntlDateFormatter::isLenient - IntlDateFormatter esnek çözümleme mi yapıyor diye bakar
    • IntlDateFormatter::localtime - Tarih dizgesini alanlarına çözümler
    • IntlDateFormatter::parse - Dizgeyi bir zaman damgası değerine dönüştürür
    • IntlDateFormatter::setCalendar - Kullanılacak takvimi tanımlar
    • IntlDateFormatter::setLenient - Çözümleyiciye esneklik verir
    • IntlDateFormatter::setPattern - IntlDateFormatter tarafından kullanılan kalıbı tanımlar
    • IntlDateFormatter::setTimeZone - Sets formatter's timezone
    • IntlDatePatternGenerator::create - Creates a new IntlDatePatternGenerator instance
    • IntlDatePatternGenerator::getBestPattern - Determines the most suitable date/time format
    • IntlGregorianCalendar::createFromDate - Create a new IntlGregorianCalendar instance from date
    • IntlGregorianCalendar::createFromDateTime - Create a new IntlGregorianCalendar instance from date and time
    • IntlGregorianCalendar::getGregorianChange - Get the Gregorian Calendar change date
    • IntlGregorianCalendar::isLeapYear - Determine if the given year is a leap year
    • IntlGregorianCalendar::setGregorianChange - Set the Gregorian Calendar the change date
    • IntlGregorianCalendar::__construct - Create the Gregorian Calendar class
    • IntlIterator::current - Get the current element
    • IntlIterator::key - Get the current key
    • IntlIterator::next - Move forward to the next element
    • IntlIterator::rewind - Rewind the iterator to the first element
    • IntlIterator::valid - Check if current position is valid
    • IntlPartsIterator::getBreakIterator - Get IntlBreakIterator backing this parts iterator
    • IntlRuleBasedBreakIterator::getBinaryRules - Get the binary form of compiled rules
    • IntlRuleBasedBreakIterator::getRules - Get the rule set used to create this object
    • IntlRuleBasedBreakIterator::getRuleStatus - Get the largest status value from the break rules that determined the current break position
    • IntlRuleBasedBreakIterator::getRuleStatusVec - Get the status values from the break rules that determined the current break position
    • IntlRuleBasedBreakIterator::__construct - Create iterator from ruleset
    • IntlTimeZone::countEquivalentIDs - Get the number of IDs in the equivalency group that includes the given ID
    • IntlTimeZone::createDefault - Create a new copy of the default timezone for this host
    • IntlTimeZone::createEnumeration - Get an enumeration over time zone IDs associated with the given country or offset
    • IntlTimeZone::createTimeZone - Create a timezone object for the given ID
    • IntlTimeZone::createTimeZoneIDEnumeration - Get an enumeration over system time zone IDs with the given filter conditions
    • IntlTimeZone::fromDateTimeZone - Create a timezone object from DateTimeZone
    • IntlTimeZone::getCanonicalID - Get the canonical system timezone ID or the normalized custom time zone ID for the given time zone ID
    • IntlTimeZone::getDisplayName - Get a name of this time zone suitable for presentation to the user
    • IntlTimeZone::getDSTSavings - Get the amount of time to be added to local standard time to get local wall clock time
    • IntlTimeZone::getEquivalentID - Get an ID in the equivalency group that includes the given ID
    • IntlTimeZone::getErrorCode - Get last error code on the object
    • IntlTimeZone::getErrorMessage - Get last error message on the object
    • IntlTimeZone::getGMT - Create GMT (UTC) timezone
    • IntlTimeZone::getID - Get timezone ID
    • IntlTimeZone::getIDForWindowsID - Translate a Windows timezone into a system timezone
    • IntlTimeZone::getOffset - Get the time zone raw and GMT offset for the given moment in time
    • IntlTimeZone::getRawOffset - Get the raw GMT offset (before taking daylight savings time into account
    • IntlTimeZone::getRegion - Get the region code associated with the given system time zone ID
    • IntlTimeZone::getTZDataVersion - Get the timezone data version currently used by ICU
    • IntlTimeZone::getUnknown - Get the "unknown" time zone
    • IntlTimeZone::getWindowsID - Translate a system timezone into a Windows timezone
    • IntlTimeZone::hasSameRules - Check if this zone has the same rules and offset as another zone
    • IntlTimeZone::toDateTimeZone - Convert to DateTimeZone object
    • IntlTimeZone::useDaylightTime - Check if this time zone uses daylight savings time
    • IntlTimeZone::__construct - Private constructor to disallow direct instantiation
    • intl_error_name - Belirtilen hata kodunun simgesel ismini döndürür
    • intl_get_error_code - Son hatanın kodunu döndürür
    • intl_get_error_message - Son hatayı açıklayan bir dizge ile döner
    • intl_is_failure - Belirtilen hata kodunun bir başarısızlık göstergesi olup olmadığına bakar
    • intval - Bir değişkenin tamsayı değerini döndürür
    • in_array - Bir dizide bir değerin varlığını araştırır
    • ip2long - Noktalı IP adresi gösterimini içeren bir dizgeyi uzun tamsayıya dönüştürür
    • iptcembed - İkil IPTC verisini bir JPEG görüntünün içine gömer
    • iptcparse - Bir ikil IPTC bloğunu tekil etiketlere böler
    • isset - Değişken bildirilmiş ve null değil mi diye bakar
    • is_a - Nesne sınıfın mı yoksa üst sınıflarından birinin örneği mi diye bakar
    • is_array - Değişkenin bir dizi içerip içermediğine bakar
    • is_bool - Değişken boolean türünde mi diye bakar
    • is_callable - Bir değişkenin değerinin bir işlev olarak çağrılabilirliğini doğrular
    • is_countable - Değişken değerinin sayılabilirliğine bakar
    • is_dir - Bir dosyanın bir dizin olup olmadığını söyler
    • is_double - is_float işlevinin takma adıdır
    • is_executable - Bir dosyanın çalıştırılabilir bir dosya olup olmadığını söyler
    • is_file - Bir dosyanın sıradan bir dosya olup olmadığını söyler
    • is_finite - Checks whether a float is finite
    • is_float - Değişken float türünde mi diye bakar
    • is_infinite - Checks whether a float is infinite
    • is_int - Değişken bir tamsayı mı diye bakar
    • is_integer - is_int işlevinin takma adıdır
    • is_iterable - Değişkenin değerinin yinelenebilirliğine bakar
    • is_link - Dosya sembolik bağ ise bunu doğrular
    • is_long - is_int işlevinin takma adıdır
    • is_nan - Checks whether a float is NAN
    • is_null - Bir değişkenin değerinin null olup olmadığına bakar
    • is_numeric - Değişken bir sayı veya bir sayısal dizge mi diye bakar
    • is_object - Değişken object türünde mi diye bakar
    • is_readable - Bir dosyanın mevcut ve okunabilir olup olmadığını söyler
    • is_real - is_float işlevinin takma adıdır
    • is_resource - Değişken resource türünde mi diye bakar
    • is_scalar - Bir değişken sayıl mı diye bakar
    • is_soap_fault - Checks if a SOAP call has failed
    • is_string - Değişken string türünde mi diye bakar
    • is_subclass_of - Belirtilen sınıfın belirtilen nesnenin ebeveynlerinden biri mi yoksa onu gerçekleyen mi diye bakar
    • is_tainted - Checks whether a string is tainted
    • is_uploaded_file - Bir dosya HTTP POST üzerinden karşıya yüklenebilecekse bunu söyler
    • is_writable - Dosyanın yazılabilir kipte ise bunu doğrular
    • is_writeable - Dosya yazılabilir kipteyse bunu doğrular
    • Iterator::current - O anki elemanı döndürür
    • Iterator::key - O anki elemanın anahtarını döndürür
    • Iterator::next - Konumu sonraki elemana ilerletir
    • Iterator::rewind - Yineleyiciyi ilk elemana konumlandırır
    • Iterator::valid - O anki konum geçerli mi diye bakar
    • IteratorAggregate::getIterator - Harici bir yineleyici ile döner
    • IteratorIterator::current - Get the current value
    • IteratorIterator::getInnerIterator - Get the inner iterator
    • IteratorIterator::key - Get the key of the current element
    • IteratorIterator::next - Forward to the next element
    • IteratorIterator::rewind - Rewind to the first element
    • IteratorIterator::valid - Checks if the current element is valid
    • IteratorIterator::__construct - Create an iterator from anything that is traversable
    • iterator_apply - Call a function for every element in an iterator
    • iterator_count - Count the elements in an iterator
    • iterator_to_array - Copy the iterator into an array
  • j
    • JDDayOfWeek - Haftanın gününü verir
    • jdmonthname - Ay adını döndürür
    • jdtofrench - Jülyen gün sayısını, Fransız İhtilali takvimine çevirir
    • jdtogregorian - Jülyen Gün Sayısını, Gregoryen tarihine çevirir
    • jdtojewish - Jülyen Gün Sayısını, Yahudi takvimine çevirir
    • jdtojulian - Jülyen Gün Sayısını, Jülyen takvim tarihine çevirir
    • jdtounix - Jülyen Gün Sayısını, Unix zaman damgasına çevirir
    • jewishtojd - Yahudi takvimindeki bir tarihi, Jülyen Gün Sayısına çevirir
    • join - implode işlevinin takma adıdır
    • jpeg2wbmp - Bir JPEG dosyasını WBMP dosyasına dönüştürür
    • JsonSerializable::jsonSerialize - JSON için dizeleştirilecek veriyi belirtmek için
    • json_decode - Bir JSON dizgesini çözümler
    • json_encode - Değerin JSON karşılığını verir.
    • json_last_error - Oluşan son hatayı döndürür.
    • json_last_error_msg - Son json_encode() veya json_decode() çağrısının hata dizgesini döndürür
    • json_validate - Checks if a string contains valid JSON
    • juliantojd - Jülyen takvimindeki tarihi, Jülyen Gün Sayısına çevirir
  • k
    • key - Bir diziden gösterici konumundaki anahtarı döndürür
    • key_exists - array_key_exists işlevini takma adıdır
    • krsort - Bir diziyi anahtarlarına göre büyükten küçüğe doğru sıralar
    • ksort - Bir diziyi anahtarlarına göre küçükten büyüğe doğru sıralar
  • l
    • lcfirst - Bir dizgenin ilk karakterini küçük harf yapar
    • lcg_value - Combined linear congruential generator
    • lchgrp - Bir sembolik bağın grubunu değiştirir
    • lchown - Bir sembolik bağın sahibini değiştirir
    • ldap_8859_to_t61 - Translate 8859 characters to t61 characters
    • ldap_add - Add entries to LDAP directory
    • ldap_add_ext - Add entries to LDAP directory
    • ldap_bind - Bind to LDAP directory
    • ldap_bind_ext - Bind to LDAP directory
    • ldap_close - Takma Adı: ldap_unbind
    • ldap_compare - Compare value of attribute found in entry specified with DN
    • ldap_connect - Connect to an LDAP server
    • ldap_connect_wallet - Connect to an LDAP server
    • ldap_control_paged_result - Send LDAP pagination control
    • ldap_control_paged_result_response - Retrieve the LDAP pagination cookie
    • ldap_count_entries - Count the number of entries in a search
    • ldap_count_references - Counts the number of references in a search result
    • ldap_delete - Delete an entry from a directory
    • ldap_delete_ext - Delete an entry from a directory
    • ldap_dn2ufn - Convert DN to User Friendly Naming format
    • ldap_err2str - Convert LDAP error number into string error message
    • ldap_errno - Return the LDAP error number of the last LDAP command
    • ldap_error - Return the LDAP error message of the last LDAP command
    • ldap_escape - Escape a string for use in an LDAP filter or DN
    • ldap_exop - Performs an extended operation
    • ldap_exop_passwd - PASSWD extended operation helper
    • ldap_exop_refresh - Refresh extended operation helper
    • ldap_exop_sync - Performs an extended operation
    • ldap_exop_whoami - WHOAMI extended operation helper
    • ldap_explode_dn - Splits DN into its component parts
    • ldap_first_attribute - Return first attribute
    • ldap_first_entry - Return first result id
    • ldap_first_reference - Return first reference
    • ldap_free_result - Free result memory
    • ldap_get_attributes - Get attributes from a search result entry
    • ldap_get_dn - Get the DN of a result entry
    • ldap_get_entries - Get all result entries
    • ldap_get_option - Get the current value for given option
    • ldap_get_values - Get all values from a result entry
    • ldap_get_values_len - Get all binary values from a result entry
    • ldap_list - Single-level search
    • ldap_modify - Takma Adı: ldap_mod_replace
    • ldap_modify_batch - Batch and execute modifications on an LDAP entry
    • ldap_mod_add - Add attribute values to current attributes
    • ldap_mod_add_ext - Add attribute values to current attributes
    • ldap_mod_del - Delete attribute values from current attributes
    • ldap_mod_del_ext - Delete attribute values from current attributes
    • ldap_mod_replace - Replace attribute values with new ones
    • ldap_mod_replace_ext - Replace attribute values with new ones
    • ldap_next_attribute - Get the next attribute in result
    • ldap_next_entry - Get next result entry
    • ldap_next_reference - Get next reference
    • ldap_parse_exop - Parse result object from an LDAP extended operation
    • ldap_parse_reference - Extract information from reference entry
    • ldap_parse_result - Extract information from result
    • ldap_read - Read an entry
    • ldap_rename - Modify the name of an entry
    • ldap_rename_ext - Modify the name of an entry
    • ldap_sasl_bind - Bind to LDAP directory using SASL
    • ldap_search - Search LDAP tree
    • ldap_set_option - Set the value of the given option
    • ldap_set_rebind_proc - Set a callback function to do re-binds on referral chasing
    • ldap_sort - Sort LDAP result entries on the client side
    • ldap_start_tls - Start TLS
    • ldap_t61_to_8859 - Translate t61 characters to 8859 characters
    • ldap_unbind - Unbind from LDAP directory
    • levenshtein - İki dizge arasındaki Levenştayn mesafesini hesaplar
    • libxml_clear_errors - libxml hata tamponunu temizler
    • libxml_disable_entity_loader - Harici öğeleri yükleme yeteneğini iptal eder
    • libxml_get_errors - Hataları içeren bir dizi döndürür
    • libxml_get_external_entity_loader - Get the current external entity loader
    • libxml_get_last_error - libxml'den son hatayı döndürür
    • libxml_set_external_entity_loader - Öntanımlı harici öğe yükleyiciyi değiştirir
    • libxml_set_streams_context - Yüklenecek veya yazılacak sonraki libxml belgesinin akım bağlamını belirler
    • libxml_use_internal_errors - libxml hatalarını kapatarak kullanıcı tanımlı hataları mümkün kılar
    • LimitIterator::current - Get current element
    • LimitIterator::getPosition - Return the current position
    • LimitIterator::key - Get current key
    • LimitIterator::next - Move the iterator forward
    • LimitIterator::rewind - Rewind the iterator to the specified starting offset
    • LimitIterator::seek - Seek to the given position
    • LimitIterator::valid - Check whether the current element is valid
    • LimitIterator::__construct - Construct a LimitIterator
    • link - Sabit bir bağ oluşturur
    • linkinfo - Bir bağ hakkında bilgi verir
    • list - Değişkenlere bir dizi gibi atama yapar
    • Locale::acceptFromHttp - HTTP "Accept-Language" başlığıyla en iyi eşleşen yereli bulmaya çalışır
    • Locale::canonicalize - Canonicalize the locale string
    • Locale::composeLocale - Doğru sıralanmış yerel ile döner
    • Locale::filterMatches - Bir dil yaftasının bir yerelle eşleşip eşleşmediğine bakar
    • Locale::getAllVariants - Girdi yerelindeki tüm lehçeleri döndürür
    • Locale::getDefault - Öntanımlı yerel değerini döndürür
    • Locale::getDisplayLanguage - Girdi yerelindeki anadil kodunun yerelleştirilmiş ismini döndürür
    • Locale::getDisplayName - Girdi yerelinin yerelleştirilmiş ismini döndürür
    • Locale::getDisplayRegion - Girdi yereli için yerelleştirilmiş ülke ismini döndürür
    • Locale::getDisplayScript - Girdi yereli yazı türünün yerelleştirilmiş ismini döndürür
    • Locale::getDisplayVariant - Girdi yereli lehçesinin yerelleştirilmiş ismini döndürür
    • Locale::getKeywords - Girdi yerelindeki anahtar sözcükleri döndürür
    • Locale::getPrimaryLanguage - Girdi yerelinden anadil kodunu döndürür
    • Locale::getRegion - Girdi yerelinden ülke kodunu döndürür
    • Locale::getScript - Girdi yereli için yazı yaftasını döndürür
    • Locale::lookup - En iyi eşleşen dili bulmak için dil yaftası listesini araştırır
    • Locale::parseLocale - Yerel yaftasını oluşturan alt yaftaları içeren bir dizi döndürür
    • Locale::setDefault - Öntanımlı çalışma anı yerelini tanımlar
    • localeconv - Sayısal biçemleme bilgisini döndürür
    • localtime - Yerel zamanı getirir
    • log - Natural logarithm
    • log1p - Returns log(1 + number), computed in a way that is accurate even when the value of number is close to zero
    • log10 - Base-10 logarithm
    • long2ip - Bir (IPv4) uzun tamsayılı ağ adresini noktalı gösterimi içeren bir dizgeye dönüştürür
    • lstat - Bir dosya veya sembolik bağ hakkında bilgi verir
    • ltrim - Dizgenin başındaki boşlukları (veya diğer karakterleri) budar
    • Lua::assign - Assign a PHP variable to Lua
    • Lua::call - Call Lua functions
    • Lua::eval - Evaluate a string as Lua code
    • Lua::getVersion - The getversion purpose
    • Lua::include - Parse a Lua script file
    • Lua::registerCallback - Register a PHP function to Lua
    • Lua::__construct - Lua constructor
    • LuaClosure::__invoke - Invoke luaclosure
    • LuaSandbox::callFunction - Call a function in a Lua global variable
    • LuaSandbox::disableProfiler - Disable the profiler
    • LuaSandbox::enableProfiler - Enable the profiler.
    • LuaSandbox::getCPUUsage - Fetch the current CPU time usage of the Lua environment
    • LuaSandbox::getMemoryUsage - Fetch the current memory usage of the Lua environment
    • LuaSandbox::getPeakMemoryUsage - Fetch the peak memory usage of the Lua environment
    • LuaSandbox::getProfilerFunctionReport - Fetch profiler data
    • LuaSandbox::getVersionInfo - Return the versions of LuaSandbox and Lua
    • LuaSandbox::loadBinary - Load a precompiled binary chunk into the Lua environment
    • LuaSandbox::loadString - Load Lua code into the Lua environment
    • LuaSandbox::pauseUsageTimer - Pause the CPU usage timer
    • LuaSandbox::registerLibrary - Register a set of PHP functions as a Lua library
    • LuaSandbox::setCPULimit - Set the CPU time limit for the Lua environment
    • LuaSandbox::setMemoryLimit - Set the memory limit for the Lua environment
    • LuaSandbox::unpauseUsageTimer - Unpause the timer paused by LuaSandbox::pauseUsageTimer
    • LuaSandbox::wrapPhpFunction - Wrap a PHP callable in a LuaSandboxFunction
    • LuaSandboxFunction::call - Call a Lua function
    • LuaSandboxFunction::dump - Dump the function as a binary blob
    • LuaSandboxFunction::__construct - Unused
    • lzf_compress - LZF sıkıştırma işlemi
    • lzf_decompress - LZF sıkıştırmasını açma işlemi
    • lzf_optimized_for - LZF eklentisinin neye göre en iyilendirildiğini bildirir
  • m
    • mail - Eposta gönderir
    • mailparse_determine_best_xfer_encoding - Gets the best way of encoding
    • mailparse_msg_create - Create a mime mail resource
    • mailparse_msg_extract_part - Extracts/decodes a message section
    • mailparse_msg_extract_part_file - Extracts/decodes a message section
    • mailparse_msg_extract_whole_part_file - Extracts a message section including headers without decoding the transfer encoding
    • mailparse_msg_free - Frees a MIME resource
    • mailparse_msg_get_part - Returns a handle on a given section in a mimemessage
    • mailparse_msg_get_part_data - Returns an associative array of info about the message
    • mailparse_msg_get_structure - Returns an array of mime section names in the supplied message
    • mailparse_msg_parse - Incrementally parse data into buffer
    • mailparse_msg_parse_file - Parses a file
    • mailparse_rfc822_parse_addresses - Parse RFC 822 compliant addresses
    • 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
    • max - Find highest value
    • mb_check_encoding - Dizgelerin belirtilen kodlama için geçerli olup olmadığını sınar
    • mb_chr - Unicode karakter koduna göre karakteri döndürür
    • mb_convert_case - Bir dizgeye büyük-küçük harf dönüşümü uygular
    • mb_convert_encoding - Karakter kodlaması dönüşümü yapar
    • mb_convert_kana - Bir "kana" dizgeyi diğerine ("zen-kaku", "han-kaku" vs.) dönüştürür
    • mb_convert_variables - Değişken içeriğinin karakter kodlamasını dönüştürür
    • mb_decode_mimeheader - MIME başlık alanındaki dizgeyi dönüştürür
    • mb_decode_numericentity - HTML sayısal karakter gösterimini karaktere dönüştürür
    • mb_detect_encoding - Karakter kodlamasını algılar
    • mb_detect_order - Karakter kodlaması algılama sırasını tanımlar/döndürür
    • mb_encode_mimeheader - Dizgeyi MIME başlığı için kodlar
    • mb_encode_numericentity - Karakter kodlarını HTML sayısal karakter gösterimlerine dönüştürür
    • mb_encoding_aliases - Bilinen bir kodlama türünün takma adını döndürür
    • mb_ereg - Düzenli ifadeyi çok baytlı karakter desteğiyle eşleştirir
    • mb_eregi - Harf büyüklüğüne duyarsız çok baytlı düzenli ifade eşleştirmesi uygular
    • mb_eregi_replace - Harf büyüklüğüne duyarsız çok baytlı karakter destekli düzenli ifade yer değiştirmesi yapar
    • mb_ereg_match - Çok baytlı dizge için düzenli ifadeyi eşleştirir
    • mb_ereg_replace - Çok baytlı karakter destekli düzenli ifade yer değiştirmesi yapar
    • mb_ereg_replace_callback - Bir düzenli ifade araması yapıp bir geriçağırım kullanarak çok baytlı yer değiştirme uygular
    • mb_ereg_search - Evvelce tanımlanmış çok baytlı dizge için çok baytlı düzenli ifade eşleştirmesi yapar
    • mb_ereg_search_getpos - Sonraki düzenli ifade eşleşmesi için başlangıç konumunu döndürür
    • mb_ereg_search_getregs - Sonuncu çok baytlı düzenli ifade eşleşmesinin sonucunu döndürür
    • mb_ereg_search_init - Çok baytlı düzenli ifade eşleşmesi için kullanılacak dizge ve düzenli ifadeyi tanımlar
    • mb_ereg_search_pos - Evvelce tanımlanmış çok baytlı dizge için çok baytlı düzenli ifadenin eşleşen parçasının uzunluğunu ve konumunu döndürür
    • mb_ereg_search_regs - Çok baytlı düzenli ifadenin eşleşen parçası ile döner
    • mb_ereg_search_setpos - Sonraki düzenli ifade eşleşmesinin başlangıç noktasını tanımlar
    • mb_get_info - Mbstring bağımsız değişkenlerinin dahili ayarlarını döndürür
    • mb_http_input - HTTP girdi karakter kodlamasını algılar
    • mb_http_output - HTTP çıktı karakter kodlamasını tanımlar/döndürür
    • mb_internal_encoding - Dahili karakter kodlamasını tanımlar/döndürür
    • mb_language - Geçerli dili tanımlar/döndürür
    • mb_list_encodings - Desteklenen kodlamaların tamamını bir dizi olarak döndürür
    • mb_ord - Karakterin Unicode karakter kodunu döndürür
    • mb_output_handler - Çıktı tamporundaki karakter kodlamasını dönüştüren geriçağırım işlevi
    • mb_parse_str - GET/POST/COOKIE verisini çözümler ve küresel değişkenleri tanımlar
    • mb_preferred_mime_name - MIME karakter kümesi dizgesini döndürür
    • mb_regex_encoding - Çok baytlı düzenli ifade işlevleri için geçerli kodlamayı dizge olarak atar/döndürür
    • mb_regex_set_options - mbregex işlevleri için öntanımlı seçenekleri tanımlar/döndürür
    • mb_scrub - Bozuk bayt dizilerini yedek karakterle değiştirir
    • mb_send_mail - Kodlanmış olarak posta gönderir
    • mb_split - Çok baytlı bir dizgeyi düzenli ifade ile parçalara ayırır
    • mb_strcut - Dizgenin başlangıcı ve uzunluğu belirtilen parçası ile döner
    • mb_strimwidth - Dizgeyi belirtilen genişlikte kırpar
    • mb_stripos - Harf büyüklüğüne duyarsız olarak, bir dizgenin içinde başka bir dizgeye ilk rastlanılan noktanın indisini döndürür
    • mb_stristr - Harf büyüklüğüne duyarsız olarak, bir dizgenin içinde başka bir dizgeye ilk rastlanılan noktaya göre dizgenin ilk veya son bölümü ile döner
    • mb_strlen - Dizge uzunluğu ile döner
    • mb_strpos - Bir dizgenin içinde başka bir dizgeye ilk rastlanılan noktanın indisini döndürür
    • mb_strrchr - Bir dizgenin içinde bulunan bir karaktere göre dizgenin ilk veya son bölümü ile döner
    • mb_strrichr - Harf büyüklüğüne duyarsız olarak bir dizgenin içinde bulunan bir karaktere göre dizgenin ilk veya son bölümü ile döner
    • mb_strripos - Bir dizgenin içinde harf büyüklüğüne duyarsız olarak başka bir dizgeye son rastlanılan noktanın indisini döndürür
    • mb_strrpos - Bir dizgenin içinde başka bir dizgeye son rastlanılan noktanın indisini döndürür
    • mb_strstr - Bir dizgenin içinde başka bir dizgeye ilk rastlanılan noktaya göre dizgenin ilk veya son bölümü ile döner
    • mb_strtolower - Dizgeyi küçük harfli yapar
    • mb_strtoupper - Dizgeyi büyük harfli yapar
    • mb_strwidth - Dizge genişliğini döndürür
    • mb_str_pad - Pad a multibyte string to a certain length with another multibyte string
    • mb_str_split - Belirtilen çok baytlı dizgenin karakterlerini içeren bir dizi döndürür
    • mb_substitute_character - İkame karakteri atar/döndürür
    • mb_substr - Dizgenin bir alt dizgesini alır
    • mb_substr_count - Mevcut alt dizgelerin sayısı ile döner
    • mcrypt_create_iv - Rasgele bir kaynaktan bir ilklendirme vektörü (IV) oluşturur
    • mcrypt_decrypt - Belirtilen bağımsız değişkenlerle şifreli bir metnin şifresini çözer
    • mcrypt_encrypt - Salt metin veriyi belirtilen bağımsız değişkenlerle şifreler
    • mcrypt_enc_get_algorithms_name - Açık algoritmanın adını döndürür
    • mcrypt_enc_get_block_size - Açık algoritmanın küme boyunu döndürür
    • mcrypt_enc_get_iv_size - Açık algoritmanın ilklendirme vektörü uzunluğunu döndürür
    • mcrypt_enc_get_key_size - Açık kipin desteklediği azami anahtar uzunluğunu döndürür
    • mcrypt_enc_get_modes_name - Açık kipin ismini döndürür
    • mcrypt_enc_get_supported_key_sizes - Açık algoritmanın desteklediği anahtar boylarını listeler
    • mcrypt_enc_is_block_algorithm - Açık kipin algoritması bir küme algoritması mı diye bakar
    • mcrypt_enc_is_block_algorithm_mode - Açık kipte şifreleme kümeler halinde mi yapılıyor diye bakar
    • mcrypt_enc_is_block_mode - Açık kip küme çıktılayan türde mi diye bakar
    • mcrypt_enc_self_test - Şifreleme tanıtıcısı ile belirtilen modülün kendi kendini sınamasını sağlar
    • mcrypt_generic - Veriyi şifreler
    • mcrypt_generic_deinit - Bir şifreleme tanıtıcısını yeniden ilklendirir
    • mcrypt_generic_init - Şifreleme için gerekli tüm tamponları ilklendirir
    • mcrypt_get_block_size - Belirtilen şifrenin küme uzunluğunu döndürür
    • mcrypt_get_cipher_name - Belirtilen şifrenin ismini döndürür
    • mcrypt_get_iv_size - Belirtilen şifre ve kipe özgü IV uzunluğunu döndürür
    • mcrypt_get_key_size - Belirtilen şifrenin anahtar uzunluğunu döndürür
    • mcrypt_list_algorithms - Desteklenen şifreleri listeler
    • mcrypt_list_modes - Desteklenen kiplerin listesini döndürür
    • mcrypt_module_close - Şifreleme tanıtıcısını kapatır
    • mcrypt_module_get_algo_block_size - Belirtilen algoritmanın küme boyunu döndürür
    • mcrypt_module_get_algo_key_size - Belirtilen algoritmanın desteklediği azami anahtar uzunluğunu döndürür
    • mcrypt_module_get_supported_key_sizes - Belirtilen algoritmanın desteklediği anahtar boyutlarını listeler
    • mcrypt_module_is_block_algorithm - Belirtilen algoritma bir küme algoritması mı diye bakar
    • mcrypt_module_is_block_algorithm_mode - Belirtilen kip, küme algoritmaları ile kullanılabiliryor mu diye bakar
    • mcrypt_module_is_block_mode - Belirtilen kip bir küme kipi mi diye bakar
    • mcrypt_module_open - Kullanılacak kipi ve algoritma modülünü açar
    • mcrypt_module_self_test - Belirtilen modülün kendini kendini sınamasını sağlar
    • md5 - Bir dizgenin md5 özetini hesaplar
    • md5_file - Belirtilen dosyanın md5 özetini hesaplar
    • mdecrypt_generic - Verinin şifresini çözer
    • Memcache::add - Add an item to the server
    • Memcache::addServer - Add a memcached server to connection pool
    • Memcache::close - Close memcached server connection
    • Memcache::connect - Open memcached server connection
    • Memcache::decrement - Decrement item's value
    • Memcache::delete - Delete item from the server
    • Memcache::flush - Flush all existing items at the server
    • Memcache::get - Retrieve item from the server
    • Memcache::getExtendedStats - Get statistics from all servers in pool
    • Memcache::getServerStatus - Returns server status
    • Memcache::getStats - Get statistics of the server
    • Memcache::getVersion - Return version of the server
    • Memcache::increment - Increment item's value
    • Memcache::pconnect - Open memcached server persistent connection
    • Memcache::replace - Replace value of the existing item
    • Memcache::set - Store data at the server
    • Memcache::setCompressThreshold - Enable automatic compression of large values
    • Memcache::setServerParams - Changes server parameters and status at runtime
    • Memcached::add - Add an item under a new key
    • Memcached::addByKey - Add an item under a new key on a specific server
    • Memcached::addServer - Add a server to the server pool
    • Memcached::addServers - Add multiple servers to the server pool
    • Memcached::append - Append data to an existing item
    • Memcached::appendByKey - Append data to an existing item on a specific server
    • Memcached::cas - Compare and swap an item
    • Memcached::casByKey - Compare and swap an item on a specific server
    • Memcached::decrement - Decrement numeric item's value
    • Memcached::decrementByKey - Decrement numeric item's value, stored on a specific server
    • Memcached::delete - Delete an item
    • Memcached::deleteByKey - Delete an item from a specific server
    • Memcached::deleteMulti - Delete multiple items
    • Memcached::deleteMultiByKey - Delete multiple items from a specific server
    • Memcached::fetch - Fetch the next result
    • Memcached::fetchAll - Fetch all the remaining results
    • Memcached::flush - Invalidate all items in the cache
    • Memcached::get - Retrieve an item
    • Memcached::getAllKeys - Gets the keys stored on all the servers
    • Memcached::getByKey - Retrieve an item from a specific server
    • Memcached::getDelayed - Request multiple items
    • Memcached::getDelayedByKey - Request multiple items from a specific server
    • Memcached::getMulti - Retrieve multiple items
    • Memcached::getMultiByKey - Retrieve multiple items from a specific server
    • Memcached::getOption - Retrieve a Memcached option value
    • Memcached::getResultCode - Return the result code of the last operation
    • Memcached::getResultMessage - Return the message describing the result of the last operation
    • Memcached::getServerByKey - Map a key to a server
    • Memcached::getServerList - Get the list of the servers in the pool
    • Memcached::getStats - Get server pool statistics
    • Memcached::getVersion - Get server pool version info
    • Memcached::increment - Increment numeric item's value
    • Memcached::incrementByKey - Increment numeric item's value, stored on a specific server
    • Memcached::isPersistent - Check if a persitent connection to memcache is being used
    • Memcached::isPristine - Check if the instance was recently created
    • Memcached::prepend - Prepend data to an existing item
    • Memcached::prependByKey - Prepend data to an existing item on a specific server
    • Memcached::quit - Close any open connections
    • Memcached::replace - Replace the item under an existing key
    • Memcached::replaceByKey - Replace the item under an existing key on a specific server
    • Memcached::resetServerList - Clears all servers from the server list
    • Memcached::set - Store an item
    • Memcached::setByKey - Store an item on a specific server
    • Memcached::setMulti - Store multiple items
    • Memcached::setMultiByKey - Store multiple items on a specific server
    • Memcached::setOption - Set a Memcached option
    • Memcached::setOptions - Set Memcached options
    • Memcached::setSaslAuthData - Set the credentials to use for authentication
    • Memcached::touch - Set a new expiration on an item
    • Memcached::touchByKey - Set a new expiration on an item on a specific server
    • Memcached::__construct - Create a Memcached instance
    • memcache_debug - Turn debug output on/off
    • memory_get_peak_usage - PHP'ye ayrılan belleğin azami miktarını döndürür
    • memory_get_usage - PHP'ye ayrılan belleğin miktarını döndürür
    • memory_reset_peak_usage - Reset the peak memory usage
    • MessageFormatter::create - Yeni bir ileti biçemleyici nesne oluşturur
    • MessageFormatter::format - İleti biçemler
    • MessageFormatter::formatMessage - İletiyi çabuk biçemler
    • MessageFormatter::getErrorCode - Son işlemin hata kodunu döndürür
    • MessageFormatter::getErrorMessage - Son işlemin hata iletisini döndürür
    • MessageFormatter::getLocale - Biçemleyicinin oluşturulduğu yereli döndürür
    • MessageFormatter::getPattern - Biçemleyici tarafından kullanılan kalıbı döndürür
    • MessageFormatter::parse - Girdi dizgesini kalıba uygun olarak çözümler
    • MessageFormatter::parseMessage - Girdi dizgesini hızla çözümler
    • MessageFormatter::setPattern - Biçemleyici tarafından kullanılacak kalıbı tanımlar
    • metaphone - Bir dizgenin metafon anahtarını hesaplar
    • method_exists - Bir sınıf yöntemi mevcut mu diye bakar
    • mhash - İleti aşını hesaplar
    • mhash_count - Kullanılabilecek en yüksek algoritmanın kimliğini döndürür
    • mhash_get_block_size - Belirtilen algoritmanın küme boyunu döndürür
    • mhash_get_hash_name - Belirtilen algoritmanın ismini döndürür
    • mhash_keygen_s2k - Bir anahtar üretir
    • microtime - Geçerli Unix zaman damgasını mikrosaniye olarak döndürür
    • mime_content_type - Bir dosya için MIME içerik türünü saptar
    • min - Find lowest value
    • mkdir - Dizin oluşturur
    • mktime - Bir tarih için Unix zaman damgasını döndürür
    • money_format - Bir sayıyı para olarak biçemler
    • MongoDB\BSON\Binary::getData - Returns the Binary's data
    • MongoDB\BSON\Binary::getType - Returns the Binary's type
    • MongoDB\BSON\Binary::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\Binary::serialize - Serialize a Binary
    • MongoDB\BSON\Binary::unserialize - Unserialize a Binary
    • MongoDB\BSON\Binary::__construct - Construct a new Binary
    • MongoDB\BSON\Binary::__toString - Returns the Binary's data
    • MongoDB\BSON\BinaryInterface::getData - Returns the BinaryInterface's data
    • MongoDB\BSON\BinaryInterface::getType - Returns the BinaryInterface's type
    • MongoDB\BSON\BinaryInterface::__toString - Returns the BinaryInterface's data
    • MongoDB\BSON\DBPointer::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\DBPointer::serialize - Serialize a DBPointer
    • MongoDB\BSON\DBPointer::unserialize - Unserialize a DBPointer
    • MongoDB\BSON\DBPointer::__construct - Construct a new DBPointer (unused)
    • MongoDB\BSON\DBPointer::__toString - Returns an empty string
    • MongoDB\BSON\Decimal128::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\Decimal128::serialize - Serialize a Decimal128
    • MongoDB\BSON\Decimal128::unserialize - Unserialize a Decimal128
    • MongoDB\BSON\Decimal128::__construct - Construct a new Decimal128
    • MongoDB\BSON\Decimal128::__toString - Returns the string representation of this Decimal128
    • MongoDB\BSON\Decimal128Interface::__toString - Returns the string representation of this Decimal128Interface
    • MongoDB\BSON\Document::fromBSON - Construct a new document instance from a BSON string
    • MongoDB\BSON\Document::fromJSON - Construct a new document instance from a JSON string
    • MongoDB\BSON\Document::fromPHP - Construct a new document instance from PHP data
    • MongoDB\BSON\Document::get - Returns the value of a key in the document
    • MongoDB\BSON\Document::getIterator - Returns an iterator for the BSON document
    • MongoDB\BSON\Document::has - Returns whether a key is present in the document
    • MongoDB\BSON\Document::offsetExists - Returns whether a key is present in the document
    • MongoDB\BSON\Document::offsetGet - Returns the value of a key in the document
    • MongoDB\BSON\Document::offsetSet - Implementation of ArrayAccess
    • MongoDB\BSON\Document::offsetUnset - Implementation of ArrayAccess
    • MongoDB\BSON\Document::serialize - Serialize a Document
    • MongoDB\BSON\Document::toCanonicalExtendedJSON - Returns the Canonical Extended JSON representation of the BSON document
    • MongoDB\BSON\Document::toPHP - Returns the PHP representation of the BSON document
    • MongoDB\BSON\Document::toRelaxedExtendedJSON - Returns the Relaxed Extended JSON representation of the BSON document
    • MongoDB\BSON\Document::unserialize - Unserialize a BSON document
    • MongoDB\BSON\Document::__construct - Construct a new BSON document (unused)
    • MongoDB\BSON\Document::__toString - Returns the string representation of this BSON Document
    • MongoDB\BSON\fromJSON - Returns the BSON representation of a JSON value
    • MongoDB\BSON\fromPHP - Returns the BSON representation of a PHP value
    • MongoDB\BSON\Int64::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\Int64::serialize - Serialize an Int64
    • MongoDB\BSON\Int64::unserialize - Unserialize an Int64
    • MongoDB\BSON\Int64::__construct - Construct a new Int64
    • MongoDB\BSON\Int64::__toString - Returns the string representation of this Int64
    • MongoDB\BSON\Iterator::current - Returns the current element
    • MongoDB\BSON\Iterator::key - Returns the key of the current element
    • MongoDB\BSON\Iterator::next - Advances the iterator to next element
    • MongoDB\BSON\Iterator::rewind - Rewinds the Iterator to the first element
    • MongoDB\BSON\Iterator::valid - Checks if current position is valid
    • MongoDB\BSON\Iterator::__construct - Construct a new BSON iterator (unused)
    • MongoDB\BSON\Javascript::getCode - Returns the Javascript's code
    • MongoDB\BSON\Javascript::getScope - Returns the Javascript's scope document
    • MongoDB\BSON\Javascript::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\Javascript::serialize - Serialize a Javascript
    • MongoDB\BSON\Javascript::unserialize - Unserialize a Javascript
    • MongoDB\BSON\Javascript::__construct - Construct a new Javascript
    • MongoDB\BSON\Javascript::__toString - Returns the Javascript's code
    • MongoDB\BSON\JavascriptInterface::getCode - Returns the JavascriptInterface's code
    • MongoDB\BSON\JavascriptInterface::getScope - Returns the JavascriptInterface's scope document
    • MongoDB\BSON\JavascriptInterface::__toString - Returns the JavascriptInterface's code
    • MongoDB\BSON\MaxKey::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\MaxKey::serialize - Serialize a MaxKey
    • MongoDB\BSON\MaxKey::unserialize - Unserialize a MaxKey
    • MongoDB\BSON\MaxKey::__construct - Construct a new MaxKey
    • MongoDB\BSON\MinKey::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\MinKey::serialize - Serialize a MinKey
    • MongoDB\BSON\MinKey::unserialize - Unserialize a MinKey
    • MongoDB\BSON\MinKey::__construct - Construct a new MinKey
    • MongoDB\BSON\ObjectId::getTimestamp - Returns the timestamp component of this ObjectId
    • MongoDB\BSON\ObjectId::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\ObjectId::serialize - Serialize an ObjectId
    • MongoDB\BSON\ObjectId::unserialize - Unserialize an ObjectId
    • MongoDB\BSON\ObjectId::__construct - Construct a new ObjectId
    • MongoDB\BSON\ObjectId::__toString - Returns the hexidecimal representation of this ObjectId
    • MongoDB\BSON\ObjectIdInterface::getTimestamp - Returns the timestamp component of this ObjectIdInterface
    • MongoDB\BSON\ObjectIdInterface::__toString - Returns the hexidecimal representation of this ObjectIdInterface
    • MongoDB\BSON\PackedArray::fromPHP - Construct a new BSON array instance from PHP data
    • MongoDB\BSON\PackedArray::get - Returns the value of an index in the array
    • MongoDB\BSON\PackedArray::getIterator - Returns an iterator for the BSON array
    • MongoDB\BSON\PackedArray::has - Returns whether a index is present in the array
    • MongoDB\BSON\PackedArray::offsetExists - Returns whether a index is present in the array
    • MongoDB\BSON\PackedArray::offsetGet - Returns the value of an index in the array
    • MongoDB\BSON\PackedArray::offsetSet - Implementation of ArrayAccess
    • MongoDB\BSON\PackedArray::offsetUnset - Implementation of ArrayAccess
    • MongoDB\BSON\PackedArray::serialize - Serialize a BSON array
    • MongoDB\BSON\PackedArray::toPHP - Returns the PHP representation of the BSON array
    • MongoDB\BSON\PackedArray::unserialize - Unserialize a BSON array
    • MongoDB\BSON\PackedArray::__construct - Construct a new BSON array (unused)
    • MongoDB\BSON\PackedArray::__toString - Returns the string representation of this BSON array
    • MongoDB\BSON\Persistable::bsonSerialize - Provides an array or document to serialize as BSON
    • MongoDB\BSON\Regex::getFlags - Returns the Regex's flags
    • MongoDB\BSON\Regex::getPattern - Returns the Regex's pattern
    • MongoDB\BSON\Regex::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\Regex::serialize - Serialize a Regex
    • MongoDB\BSON\Regex::unserialize - Unserialize a Regex
    • MongoDB\BSON\Regex::__construct - Construct a new Regex
    • MongoDB\BSON\Regex::__toString - Returns the string representation of this Regex
    • MongoDB\BSON\RegexInterface::getFlags - Returns the RegexInterface's flags
    • MongoDB\BSON\RegexInterface::getPattern - Returns the RegexInterface's pattern
    • MongoDB\BSON\RegexInterface::__toString - Returns the string representation of this RegexInterface
    • MongoDB\BSON\Serializable::bsonSerialize - Provides an array or document to serialize as BSON
    • MongoDB\BSON\Symbol::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\Symbol::serialize - Serialize a Symbol
    • MongoDB\BSON\Symbol::unserialize - Unserialize a Symbol
    • MongoDB\BSON\Symbol::__construct - Construct a new Symbol (unused)
    • MongoDB\BSON\Symbol::__toString - Returns the Symbol as a string
    • MongoDB\BSON\Timestamp::getIncrement - Returns the increment component of this Timestamp
    • MongoDB\BSON\Timestamp::getTimestamp - Returns the timestamp component of this Timestamp
    • MongoDB\BSON\Timestamp::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\Timestamp::serialize - Serialize a Timestamp
    • MongoDB\BSON\Timestamp::unserialize - Unserialize a Timestamp
    • MongoDB\BSON\Timestamp::__construct - Construct a new Timestamp
    • MongoDB\BSON\Timestamp::__toString - Returns the string representation of this Timestamp
    • MongoDB\BSON\TimestampInterface::getIncrement - Returns the increment component of this TimestampInterface
    • MongoDB\BSON\TimestampInterface::getTimestamp - Returns the timestamp component of this TimestampInterface
    • MongoDB\BSON\TimestampInterface::__toString - Returns the string representation of this TimestampInterface
    • MongoDB\BSON\toCanonicalExtendedJSON - Returns the Canonical Extended JSON representation of a BSON value
    • MongoDB\BSON\toJSON - Returns the Legacy Extended JSON representation of a BSON value
    • MongoDB\BSON\toPHP - Returns the PHP representation of a BSON value
    • MongoDB\BSON\toRelaxedExtendedJSON - Returns the Relaxed Extended JSON representation of a BSON value
    • MongoDB\BSON\Undefined::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\Undefined::serialize - Serialize a Undefined
    • MongoDB\BSON\Undefined::unserialize - Unserialize a Undefined
    • MongoDB\BSON\Undefined::__construct - Construct a new Undefined (unused)
    • MongoDB\BSON\Undefined::__toString - Returns an empty string
    • MongoDB\BSON\Unserializable::bsonUnserialize - Constructs the object from a BSON array or document
    • MongoDB\BSON\UTCDateTime::jsonSerialize - Returns a representation that can be converted to JSON
    • MongoDB\BSON\UTCDateTime::serialize - Serialize a UTCDateTime
    • MongoDB\BSON\UTCDateTime::toDateTime - Returns the DateTime representation of this UTCDateTime
    • MongoDB\BSON\UTCDateTime::toDateTimeImmutable - Returns the DateTimeImmutable representation of this UTCDateTime
    • MongoDB\BSON\UTCDateTime::unserialize - Unserialize a UTCDateTime
    • MongoDB\BSON\UTCDateTime::__construct - Construct a new UTCDateTime
    • MongoDB\BSON\UTCDateTime::__toString - Returns the string representation of this UTCDateTime
    • MongoDB\BSON\UTCDateTimeInterface::toDateTime - Returns the DateTime representation of this UTCDateTimeInterface
    • MongoDB\BSON\UTCDateTimeInterface::__toString - Returns the string representation of this UTCDateTimeInterface
    • MongoDB\Driver\BulkWrite::count - Count number of write operations in the bulk
    • MongoDB\Driver\BulkWrite::delete - Add a delete operation to the bulk
    • MongoDB\Driver\BulkWrite::insert - Add an insert operation to the bulk
    • MongoDB\Driver\BulkWrite::update - Add an update operation to the bulk
    • MongoDB\Driver\BulkWrite::__construct - Create a new BulkWrite
    • MongoDB\Driver\ClientEncryption::addKeyAltName - Adds an alternate name to a key document
    • MongoDB\Driver\ClientEncryption::createDataKey - Creates a key document
    • MongoDB\Driver\ClientEncryption::decrypt - Decrypt a value
    • MongoDB\Driver\ClientEncryption::deleteKey - Deletes a key document
    • MongoDB\Driver\ClientEncryption::encrypt - Encrypt a value
    • MongoDB\Driver\ClientEncryption::encryptExpression - Encrypts a match or aggregate expression
    • MongoDB\Driver\ClientEncryption::getKey - Gets a key document
    • MongoDB\Driver\ClientEncryption::getKeyByAltName - Gets a key document by an alternate name
    • MongoDB\Driver\ClientEncryption::getKeys - Gets all key documents
    • MongoDB\Driver\ClientEncryption::removeKeyAltName - Removes an alternate name from a key document
    • MongoDB\Driver\ClientEncryption::rewrapManyDataKey - Rewraps data keys
    • MongoDB\Driver\ClientEncryption::__construct - Create a new ClientEncryption object
    • MongoDB\Driver\Command::__construct - Create a new Command
    • MongoDB\Driver\Cursor::current - Returns the current element
    • MongoDB\Driver\Cursor::getId - Returns the ID for this cursor
    • MongoDB\Driver\Cursor::getServer - Returns the server associated with this cursor
    • MongoDB\Driver\Cursor::isDead - Checks if the cursor is exhausted or may have additional results
    • MongoDB\Driver\Cursor::key - Returns the current result's index within the cursor
    • MongoDB\Driver\Cursor::next - Advances the cursor to the next result
    • MongoDB\Driver\Cursor::rewind - Rewind the cursor to the first result
    • MongoDB\Driver\Cursor::setTypeMap - Sets a type map to use for BSON unserialization
    • MongoDB\Driver\Cursor::toArray - Returns an array containing all results for this cursor
    • MongoDB\Driver\Cursor::valid - Checks if the current position in the cursor is valid
    • MongoDB\Driver\Cursor::__construct - Create a new Cursor (not used)
    • MongoDB\Driver\CursorId::serialize - Serialize a CursorId
    • MongoDB\Driver\CursorId::unserialize - Unserialize a CursorId
    • MongoDB\Driver\CursorId::__construct - Create a new CursorId (not used)
    • MongoDB\Driver\CursorId::__toString - String representation of the cursor ID
    • MongoDB\Driver\CursorInterface::getId - Returns the ID for this cursor
    • MongoDB\Driver\CursorInterface::getServer - Returns the server associated with this cursor
    • MongoDB\Driver\CursorInterface::isDead - Checks if the cursor may have additional results
    • MongoDB\Driver\CursorInterface::setTypeMap - Sets a type map to use for BSON unserialization
    • MongoDB\Driver\CursorInterface::toArray - Returns an array containing all results for this cursor
    • MongoDB\Driver\Exception\CommandException::getResultDocument - Returns the result document for the failed command
    • MongoDB\Driver\Exception\RuntimeException::hasErrorLabel - Returns whether an error label is associated with an exception
    • MongoDB\Driver\Exception\WriteException::getWriteResult - Returns the WriteResult for the failed write operation
    • MongoDB\Driver\Manager::addSubscriber - Registers a monitoring event subscriber with this Manager
    • MongoDB\Driver\Manager::createClientEncryption - Create a new ClientEncryption object
    • MongoDB\Driver\Manager::executeBulkWrite - Execute one or more write operations
    • MongoDB\Driver\Manager::executeCommand - Execute a database command
    • MongoDB\Driver\Manager::executeQuery - Execute a database query
    • MongoDB\Driver\Manager::executeReadCommand - Execute a database command that reads
    • MongoDB\Driver\Manager::executeReadWriteCommand - Execute a database command that reads and writes
    • MongoDB\Driver\Manager::executeWriteCommand - Execute a database command that writes
    • MongoDB\Driver\Manager::getEncryptedFieldsMap - Return the encryptedFieldsMap auto encryption option for the Manager
    • MongoDB\Driver\Manager::getReadConcern - Return the ReadConcern for the Manager
    • MongoDB\Driver\Manager::getReadPreference - Return the ReadPreference for the Manager
    • MongoDB\Driver\Manager::getServers - Return the servers to which this manager is connected
    • MongoDB\Driver\Manager::getWriteConcern - Return the WriteConcern for the Manager
    • MongoDB\Driver\Manager::removeSubscriber - Unregisters a monitoring event subscriber with this Manager
    • MongoDB\Driver\Manager::selectServer - Select a server matching a read preference
    • MongoDB\Driver\Manager::startSession - Start a new client session for use with this client
    • MongoDB\Driver\Manager::__construct - Create new MongoDB Manager
    • MongoDB\Driver\Monitoring\addSubscriber - Registers a monitoring event subscriber globally
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getCommandName - Returns the command name
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getDatabaseName - Returns the database on which the command was executed
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getDurationMicros - Returns the command's duration in microseconds
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getError - Returns the Exception associated with the failed command
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId - Returns the command's operation ID
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getReply - Returns the command reply document
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId - Returns the command's request ID
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getServer - Returns the Server on which the command was executed
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getServerConnectionId - Returns the server connection ID for the command
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getServiceId - Returns the load balancer service ID for the command
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getCommand - Returns the command document
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getCommandName - Returns the command name
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getDatabaseName - Returns the database on which the command was executed
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId - Returns the command's operation ID
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId - Returns the command's request ID
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getServer - Returns the Server on which the command was executed
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getServerConnectionId - Returns the server connection ID for the command
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getServiceId - Returns the load balancer service ID for the command
    • MongoDB\Driver\Monitoring\CommandSubscriber::commandFailed - Notification method for a failed command
    • MongoDB\Driver\Monitoring\CommandSubscriber::commandStarted - Notification method for a started command
    • MongoDB\Driver\Monitoring\CommandSubscriber::commandSucceeded - Notification method for a successful command
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getCommandName - Returns the command name
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getDatabaseName - Returns the database on which the command was executed
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getDurationMicros - Returns the command's duration in microseconds
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId - Returns the command's operation ID
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getReply - Returns the command reply document
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId - Returns the command's request ID
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer - Returns the Server on which the command was executed
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServerConnectionId - Returns the server connection ID for the command
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServiceId - Returns the load balancer service ID for the command
    • MongoDB\Driver\Monitoring\LogSubscriber::log - Notification method for a log message
    • MongoDB\Driver\Monitoring\removeSubscriber - Unregisters a monitoring event subscriber globally
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverChanged - Notification method for a server description change
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverClosed - Notification method for closing a server
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatFailed - Notification method for a failed server heartbeat
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatStarted - Notification method for a started server heartbeat
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatSucceeded - Notification method for a successful server heartbeat
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverOpening - Notification method for opening a server
    • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyChanged - Notification method for a topology description change
    • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyClosed - Notification method for closing the topology
    • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyOpening - Notification method for opening the topology
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getHost - Returns the hostname of the server
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getNewDescription - Returns the new description for the server
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getPort - Returns the port on which this server is listening
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getPreviousDescription - Returns the previous description for the server
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getTopologyId - Returns the topology ID associated with this server
    • MongoDB\Driver\Monitoring\ServerClosedEvent::getHost - Returns the hostname of the server
    • MongoDB\Driver\Monitoring\ServerClosedEvent::getPort - Returns the port on which this server is listening
    • MongoDB\Driver\Monitoring\ServerClosedEvent::getTopologyId - Returns the topology ID associated with this server
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getDurationMicros - Returns the heartbeat's duration in microseconds
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getError - Returns the Exception associated with the failed heartbeat
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getHost - Returns the hostname of the server
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getPort - Returns the port on which this server is listening
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::isAwaited - Returns whether the heartbeat used a streaming protocol
    • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getHost - Returns the hostname of the server
    • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getPort - Returns the port on which this server is listening
    • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::isAwaited - Returns whether the heartbeat used a streaming protocol
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getDurationMicros - Returns the heartbeat's duration in microseconds
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getHost - Returns the hostname of the server
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getPort - Returns the port on which this server is listening
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getReply - Returns the heartbeat reply document
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::isAwaited - Returns whether the heartbeat used a streaming protocol
    • MongoDB\Driver\Monitoring\ServerOpeningEvent::getHost - Returns the hostname of the server
    • MongoDB\Driver\Monitoring\ServerOpeningEvent::getPort - Returns the port on which this server is listening
    • MongoDB\Driver\Monitoring\ServerOpeningEvent::getTopologyId - Returns the topology ID associated with this server
    • MongoDB\Driver\Monitoring\TopologyChangedEvent::getNewDescription - Returns the new description for the topology
    • MongoDB\Driver\Monitoring\TopologyChangedEvent::getPreviousDescription - Returns the previous description for the topology
    • MongoDB\Driver\Monitoring\TopologyChangedEvent::getTopologyId - Returns the topology ID
    • MongoDB\Driver\Monitoring\TopologyClosedEvent::getTopologyId - Returns the topology ID
    • MongoDB\Driver\Monitoring\TopologyOpeningEvent::getTopologyId - Returns the topology ID
    • MongoDB\Driver\Query::__construct - Create a new Query
    • MongoDB\Driver\ReadConcern::bsonSerialize - Returns an object for BSON serialization
    • MongoDB\Driver\ReadConcern::getLevel - Returns the ReadConcern's "level" option
    • MongoDB\Driver\ReadConcern::isDefault - Checks if this is the default read concern
    • MongoDB\Driver\ReadConcern::serialize - Serialize a ReadConcern
    • MongoDB\Driver\ReadConcern::unserialize - Unserialize a ReadConcern
    • MongoDB\Driver\ReadConcern::__construct - Create a new ReadConcern
    • MongoDB\Driver\ReadPreference::bsonSerialize - Returns an object for BSON serialization
    • MongoDB\Driver\ReadPreference::getHedge - Returns the ReadPreference's "hedge" option
    • MongoDB\Driver\ReadPreference::getMaxStalenessSeconds - Returns the ReadPreference's "maxStalenessSeconds" option
    • MongoDB\Driver\ReadPreference::getMode - Returns the ReadPreference's "mode" option
    • MongoDB\Driver\ReadPreference::getModeString - Returns the ReadPreference's "mode" option as a string
    • MongoDB\Driver\ReadPreference::getTagSets - Returns the ReadPreference's "tagSets" option
    • MongoDB\Driver\ReadPreference::serialize - Serialize a ReadPreference
    • MongoDB\Driver\ReadPreference::unserialize - Unserialize a ReadPreference
    • MongoDB\Driver\ReadPreference::__construct - Create a new ReadPreference
    • MongoDB\Driver\Server::executeBulkWrite - Execute one or more write operations on this server
    • MongoDB\Driver\Server::executeCommand - Execute a database command on this server
    • MongoDB\Driver\Server::executeQuery - Execute a database query on this server
    • MongoDB\Driver\Server::executeReadCommand - Execute a database command that reads on this server
    • MongoDB\Driver\Server::executeReadWriteCommand - Execute a database command that reads and writes on this server
    • MongoDB\Driver\Server::executeWriteCommand - Execute a database command that writes on this server
    • MongoDB\Driver\Server::getHost - Returns the hostname of this server
    • MongoDB\Driver\Server::getInfo - Returns an array of information describing this server
    • MongoDB\Driver\Server::getLatency - Returns the latency of this server in milliseconds
    • MongoDB\Driver\Server::getPort - Returns the port on which this server is listening
    • MongoDB\Driver\Server::getServerDescription - Returns a ServerDescription for this server
    • MongoDB\Driver\Server::getTags - Returns an array of tags describing this server in a replica set
    • MongoDB\Driver\Server::getType - Returns an integer denoting the type of this server
    • MongoDB\Driver\Server::isArbiter - Checks if this server is an arbiter member of a replica set
    • MongoDB\Driver\Server::isHidden - Checks if this server is a hidden member of a replica set
    • MongoDB\Driver\Server::isPassive - Checks if this server is a passive member of a replica set
    • MongoDB\Driver\Server::isPrimary - Checks if this server is a primary member of a replica set
    • MongoDB\Driver\Server::isSecondary - Checks if this server is a secondary member of a replica set
    • MongoDB\Driver\Server::__construct - Create a new Server (not used)
    • MongoDB\Driver\ServerApi::bsonSerialize - Returns an object for BSON serialization
    • MongoDB\Driver\ServerApi::serialize - Serialize a ServerApi
    • MongoDB\Driver\ServerApi::unserialize - Unserialize a ServerApi
    • MongoDB\Driver\ServerApi::__construct - Create a new ServerApi instance
    • MongoDB\Driver\ServerDescription::getHelloResponse - Returns the server's most recent "hello" response
    • MongoDB\Driver\ServerDescription::getHost - Returns the hostname of this server
    • MongoDB\Driver\ServerDescription::getLastUpdateTime - Returns the server's last update time in microseconds
    • MongoDB\Driver\ServerDescription::getPort - Returns the port on which this server is listening
    • MongoDB\Driver\ServerDescription::getRoundTripTime - Returns the server's round trip time in milliseconds
    • MongoDB\Driver\ServerDescription::getType - Returns a string denoting the type of this server
    • MongoDB\Driver\Session::abortTransaction - Aborts a transaction
    • MongoDB\Driver\Session::advanceClusterTime - Advances the cluster time for this session
    • MongoDB\Driver\Session::advanceOperationTime - Advances the operation time for this session
    • MongoDB\Driver\Session::commitTransaction - Commits a transaction
    • MongoDB\Driver\Session::endSession - Terminates a session
    • MongoDB\Driver\Session::getClusterTime - Returns the cluster time for this session
    • MongoDB\Driver\Session::getLogicalSessionId - Returns the logical session ID for this session
    • MongoDB\Driver\Session::getOperationTime - Returns the operation time for this session
    • MongoDB\Driver\Session::getServer - Returns the server to which this session is pinned
    • MongoDB\Driver\Session::getTransactionOptions - Returns options for the currently running transaction
    • MongoDB\Driver\Session::getTransactionState - Returns the current transaction state for this session
    • MongoDB\Driver\Session::isDirty - Returns whether the session has been marked as dirty
    • MongoDB\Driver\Session::isInTransaction - Returns whether a multi-document transaction is in progress
    • MongoDB\Driver\Session::startTransaction - Starts a transaction
    • MongoDB\Driver\Session::__construct - Create a new Session (not used)
    • MongoDB\Driver\TopologyDescription::getServers - Returns the servers in the topology
    • MongoDB\Driver\TopologyDescription::getType - Returns a string denoting the type of this topology
    • MongoDB\Driver\TopologyDescription::hasReadableServer - Returns whether the topology has a readable server
    • MongoDB\Driver\TopologyDescription::hasWritableServer - Returns whether the topology has a writable server
    • MongoDB\Driver\WriteConcern::bsonSerialize - Returns an object for BSON serialization
    • MongoDB\Driver\WriteConcern::getJournal - Returns the WriteConcern's "journal" option
    • MongoDB\Driver\WriteConcern::getW - Returns the WriteConcern's "w" option
    • MongoDB\Driver\WriteConcern::getWtimeout - Returns the WriteConcern's "wtimeout" option
    • MongoDB\Driver\WriteConcern::isDefault - Checks if this is the default write concern
    • MongoDB\Driver\WriteConcern::serialize - Serialize a WriteConcern
    • MongoDB\Driver\WriteConcern::unserialize - Unserialize a WriteConcern
    • MongoDB\Driver\WriteConcern::__construct - Create a new WriteConcern
    • MongoDB\Driver\WriteConcernError::getCode - Returns the WriteConcernError's error code
    • MongoDB\Driver\WriteConcernError::getInfo - Returns metadata document for the WriteConcernError
    • MongoDB\Driver\WriteConcernError::getMessage - Returns the WriteConcernError's error message
    • MongoDB\Driver\WriteError::getCode - Returns the WriteError's error code
    • MongoDB\Driver\WriteError::getIndex - Returns the index of the write operation corresponding to this WriteError
    • MongoDB\Driver\WriteError::getInfo - Returns metadata document for the WriteError
    • MongoDB\Driver\WriteError::getMessage - Returns the WriteError's error message
    • MongoDB\Driver\WriteResult::getDeletedCount - Returns the number of documents deleted
    • MongoDB\Driver\WriteResult::getInsertedCount - Returns the number of documents inserted (excluding upserts)
    • MongoDB\Driver\WriteResult::getMatchedCount - Returns the number of documents selected for update
    • MongoDB\Driver\WriteResult::getModifiedCount - Returns the number of existing documents updated
    • MongoDB\Driver\WriteResult::getServer - Returns the server associated with this write result
    • MongoDB\Driver\WriteResult::getUpsertedCount - Returns the number of documents inserted by an upsert
    • MongoDB\Driver\WriteResult::getUpsertedIds - Returns an array of identifiers for upserted documents
    • MongoDB\Driver\WriteResult::getWriteConcernError - Returns any write concern error that occurred
    • MongoDB\Driver\WriteResult::getWriteErrors - Returns any write errors that occurred
    • MongoDB\Driver\WriteResult::isAcknowledged - Returns whether the write was acknowledged
    • move_uploaded_file - Karşıya yüklenen bir dosyayı yeni bir yere taşır
    • mqseries_back - MQSeries MQBACK
    • mqseries_begin - MQseries MQBEGIN
    • mqseries_close - MQSeries MQCLOSE
    • mqseries_cmit - MQSeries MQCMIT
    • mqseries_conn - MQSeries MQCONN
    • mqseries_connx - MQSeries MQCONNX
    • mqseries_disc - MQSeries MQDISC
    • mqseries_get - MQSeries MQGET
    • mqseries_inq - MQSeries MQINQ
    • mqseries_open - MQSeries MQOPEN
    • mqseries_put - MQSeries MQPUT
    • mqseries_put1 - MQSeries MQPUT1
    • mqseries_set - MQSeries MQSET
    • mqseries_strerror - Returns the error message corresponding to a result code (MQRC)
    • msg_get_queue - Create or attach to a message queue
    • msg_queue_exists - Check whether a message queue exists
    • msg_receive - Receive a message from a message queue
    • msg_remove_queue - Destroy a message queue
    • msg_send - Send a message to a message queue
    • msg_set_queue - Set information in the message queue data structure
    • msg_stat_queue - Returns information from the message queue data structure
    • mt_getrandmax - Show largest possible random value
    • mt_rand - Generate a random value via the Mersenne Twister Random Number Generator
    • mt_srand - Seeds the Mersenne Twister Random Number Generator
    • MultipleIterator::attachIterator - Attaches iterator information
    • MultipleIterator::containsIterator - Checks if an iterator is attached
    • MultipleIterator::countIterators - Gets the number of attached iterator instances
    • MultipleIterator::current - Gets the registered iterator instances
    • MultipleIterator::detachIterator - Detaches an iterator
    • MultipleIterator::getFlags - Gets the flag information
    • MultipleIterator::key - Gets the registered iterator instances
    • MultipleIterator::next - Moves all attached iterator instances forward
    • MultipleIterator::rewind - Rewinds all attached iterator instances
    • MultipleIterator::setFlags - Sets flags
    • MultipleIterator::valid - Checks the validity of sub iterators
    • MultipleIterator::__construct - Constructs a new MultipleIterator
    • mysqli::$affected_rows - Gets the number of affected rows in a previous MySQL operation
    • mysqli::$client_info - Get MySQL client info
    • mysqli::$client_version - Returns the MySQL client version as an integer
    • mysqli::$connect_errno - Returns the error code from last connect call
    • mysqli::$connect_error - Returns a description of the last connection error
    • mysqli::$errno - Returns the error code for the most recent function call
    • mysqli::$error - Returns a string description of the last error
    • mysqli::$error_list - Returns a list of errors from the last command executed
    • mysqli::$field_count - Returns the number of columns for the most recent query
    • mysqli::$host_info - Returns a string representing the type of connection used
    • mysqli::$info - Retrieves information about the most recently executed query
    • mysqli::$insert_id - Returns the value generated for an AUTO_INCREMENT column by the last query
    • mysqli::$protocol_version - Returns the version of the MySQL protocol used
    • mysqli::$server_info - Returns the version of the MySQL server
    • mysqli::$server_version - Returns the version of the MySQL server as an integer
    • mysqli::$sqlstate - Returns the SQLSTATE error from previous MySQL operation
    • mysqli::$thread_id - Returns the thread ID for the current connection
    • mysqli::$warning_count - Returns the number of warnings from the last query for the given link
    • mysqli::autocommit - Turns on or off auto-committing database modifications
    • mysqli::begin_transaction - Starts a transaction
    • mysqli::change_user - Changes the user of the specified database connection
    • mysqli::character_set_name - Returns the current character set of the database connection
    • mysqli::close - Closes a previously opened database connection
    • mysqli::commit - Commits the current transaction
    • mysqli::debug - Performs debugging operations
    • mysqli::dump_debug_info - Dump debugging information into the log
    • mysqli::escape_string - Takma Adı: mysqli_real_escape_string
    • mysqli::execute_query - Prepares, binds parameters, and executes SQL statement
    • mysqli::get_charset - Returns a character set object
    • mysqli::get_connection_stats - Returns statistics about the client connection
    • mysqli::get_warnings - Get result of SHOW WARNINGS
    • mysqli::init - Initializes MySQLi and returns an object for use with mysqli_real_connect()
    • mysqli::kill - Asks the server to kill a MySQL thread
    • mysqli::more_results - Check if there are any more query results from a multi query
    • mysqli::multi_query - Performs one or more queries on the database
    • mysqli::next_result - Prepare next result from multi_query
    • mysqli::options - Set options
    • mysqli::ping - Pings a server connection, or tries to reconnect if the connection has gone down
    • mysqli::poll - Poll connections
    • mysqli::prepare - Prepares an 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 an SQL statement, taking into account the current charset of the connection
    • mysqli::real_query - Execute an SQL query
    • mysqli::reap_async_query - Get result from async query
    • mysqli::refresh - Refreshes
    • mysqli::release_savepoint - Removes the named savepoint from the set of savepoints of the current transaction
    • mysqli::rollback - Rolls back current transaction
    • mysqli::savepoint - Set a named transaction savepoint
    • mysqli::select_db - Selects the default database for database queries
    • mysqli::set_charset - Sets the client character set
    • mysqli::set_opt - Takma Adı: mysqli_options
    • mysqli::ssl_set - Used for establishing secure connections using SSL
    • mysqli::stat - Gets the current system status
    • mysqli::stmt_init - Initializes a statement and returns an object for use with mysqli_stmt_prepare
    • mysqli::store_result - Transfers a result set from the last query
    • mysqli::thread_safe - Returns whether thread safety is given or not
    • mysqli::use_result - Initiate a result set retrieval
    • mysqli::__construct - Open a new connection to the MySQL server
    • mysqli_connect - Takma Adı: mysqli::__construct
    • mysqli_driver::$report_mode - Sets mysqli error reporting mode
    • mysqli_driver::embedded_server_end - Stop embedded server
    • mysqli_driver::embedded_server_start - Initialize and start embedded server
    • mysqli_execute - Takma Adı: mysqli_stmt_execute
    • mysqli_get_client_stats - Returns client per-process statistics
    • mysqli_get_links_stats - Return information about open and cached links
    • mysqli_report - Takma Adı: mysqli_driver->report_mode
    • mysqli_result::$current_field - Get current field offset of a result pointer
    • mysqli_result::$field_count - Gets the number of fields in the result set
    • mysqli_result::$lengths - Returns the lengths of the columns of the current row in the result set
    • mysqli_result::$num_rows - Gets the number of rows in the result set
    • mysqli_result::data_seek - Adjusts the result pointer to an arbitrary row in the result
    • mysqli_result::fetch_all - Fetch all result rows as an associative array, a numeric array, or both
    • mysqli_result::fetch_array - Fetch the next row of a result set as an associative, a numeric array, or both
    • mysqli_result::fetch_assoc - Fetch the next row of a result set as an associative array
    • mysqli_result::fetch_column - Fetch a single column from the next row of a result set
    • mysqli_result::fetch_field - Returns the next field in the result set
    • mysqli_result::fetch_fields - Returns an array of objects representing the fields in a result set
    • mysqli_result::fetch_field_direct - Fetch meta-data for a single field
    • mysqli_result::fetch_object - Fetch the next row of a result set as an object
    • mysqli_result::fetch_row - Fetch the next row of a result set as an enumerated array
    • mysqli_result::field_seek - Set result pointer to a specified field offset
    • mysqli_result::free - Frees the memory associated with a result
    • mysqli_result::getIterator - Retrieve an external iterator
    • mysqli_result::__construct - Constructs a mysqli_result object
    • mysqli_sql_exception::getSqlState - Returns the SQLSTATE error code
    • mysqli_stmt::$affected_rows - Returns the total number of rows changed, deleted, inserted, or matched by the last statement executed
    • 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::$error_list - Returns a list of errors from the last statement executed
    • mysqli_stmt::$field_count - Returns the number of columns in the given statement
    • mysqli_stmt::$insert_id - Get the ID generated from the previous INSERT operation
    • mysqli_stmt::$num_rows - Returns the number of rows fetched from the server
    • mysqli_stmt::$param_count - Returns the number of parameters for the given statement
    • mysqli_stmt::$sqlstate - Returns SQLSTATE error from previous statement operation
    • mysqli_stmt::attr_get - Used to get the current value of a statement attribute
    • mysqli_stmt::attr_set - Used to modify the behavior of a prepared 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 - Adjusts the result pointer to an arbitrary row in the buffered result
    • mysqli_stmt::execute - Executes a prepared statement
    • 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::get_result - Gets a result set from a prepared statement as a mysqli_result object
    • mysqli_stmt::get_warnings - Get result of SHOW WARNINGS
    • mysqli_stmt::more_results - Check if there are more query results from a multiple query
    • mysqli_stmt::next_result - Reads the next result from a multiple query
    • mysqli_stmt::prepare - Prepares an SQL statement for execution
    • mysqli_stmt::reset - Resets a prepared statement
    • mysqli_stmt::result_metadata - Returns result set metadata from a prepared statement
    • mysqli_stmt::send_long_data - Send data in blocks
    • mysqli_stmt::store_result - Stores a result set in an internal buffer
    • mysqli_stmt::__construct - Constructs a new mysqli_stmt object
    • mysqli_warning::next - Fetch next warning
    • mysqli_warning::__construct - Private constructor to disallow direct instantiation
    • mysql_affected_rows - Önceki MySQL işleminde etkilenen satırların sayısını al
    • mysql_client_encoding - Karakter kümesinin adını döndürür
    • mysql_close - MySQL bağlantısını kapatır
    • mysql_connect - MySQL Sunucusuna bir bağlantı açar
    • mysql_create_db - Bir MySQL veritabanı oluşturur
    • mysql_data_seek - Move internal result pointer
    • mysql_db_name - mysql_list_dbs çağrısından veritabanı adını alır
    • mysql_db_query - Veritabanını seçer ve bir sorgu çalıştırır
    • mysql_drop_db - Drop (delete) a MySQL database
    • mysql_errno - Returns the numerical value of the error message from previous MySQL operation
    • mysql_error - Returns the text of the error message from previous MySQL operation
    • mysql_escape_string - Escapes a string for use in a mysql_query
    • mysql_fetch_array - Fetch a result row as an associative array, a numeric array, or both
    • mysql_fetch_assoc - Fetch a result row as an associative array
    • mysql_fetch_field - Get column information from a result and return as an object
    • mysql_fetch_lengths - Bir sonuçtaki her bir çıktının uzunluğunu al
    • mysql_fetch_object - Fetch a result row as an object
    • mysql_fetch_row - Get a result row as an enumerated array
    • mysql_field_flags - Get the flags associated with the specified field in a result
    • mysql_field_len - Belirtilen alanın uzunluğunu döndürür
    • mysql_field_name - Get the name of the specified field in a result
    • mysql_field_seek - Sonuç göstericisini belirtilen alan konumuna ayarla
    • mysql_field_table - Belirtilen alanı içeren tablonun adını al
    • mysql_field_type - Get the type of the specified field in a result
    • mysql_free_result - Sonuç belleğini serbest bırakır
    • mysql_get_client_info - MySQL istemci sürüm bilgisini al
    • mysql_get_host_info - MySQL konak bilgisini al
    • mysql_get_proto_info - MySQL protokol sürüm bilgisini al
    • mysql_get_server_info - MySQL sunucu bilgisini al
    • mysql_info - En son sorgu hakkında bilgi al
    • mysql_insert_id - Get the ID generated in the last query
    • mysql_list_dbs - Bir MySQL sunucusundaki kullanılabilir veritabanlarını listeler
    • mysql_list_fields - MySQL tablosunun alanlarını listeler
    • mysql_list_processes - MySQL süreçlerini listeler
    • mysql_list_tables - Bir MySQL veritabanındaki tabloları listele
    • mysql_num_fields - Sonuçtaki alan sayısını al
    • mysql_num_rows - Sonuçtaki satır sayısını al
    • mysql_pconnect - Open a persistent connection to a MySQL server
    • mysql_ping - Bir sunucu bağlantısına ping at, bağlantı yoksa tekrar bağlan
    • mysql_query - Send a MySQL query
    • mysql_real_escape_string - Escapes special characters in a string for use in an SQL statement
    • mysql_result - Get result data
    • mysql_select_db - Bir MySQL veritabanı seçer
    • mysql_set_charset - Sets the client character set
    • mysql_stat - Geçerli sunucu durumunu döndürür
    • mysql_tablename - Alanın tablo adını al
    • mysql_thread_id - Geçerli evre numarasını döndür
    • mysql_unbuffered_query - Sonuç kümesi tamponlanmayan ve alınmayan bir SQL sorgusu gönderir
    • mysql_xdevapi\Client::close - Close client
  • n
    • natcasesort - Bir diziyi harf büyüklüğüne duyarsız "doğal sıralama" algoritmasıyla sıralar
    • natsort - Bir diziyi "doğal sıralama" algoritmasıyla sıralar
    • net_get_interfaces - Get network interfaces
    • next - Dahili dizi göstericisini bir ilerletir
    • ngettext - gettext işlevinin çoğul biçemli sürümü
    • nl2br - Dizgedeki tüm satırsonlarının yerine HTML satır katlayıcıları yerleştirilir
    • nl_langinfo - Dili ve yerel bilgisini sorgular
    • NoRewindIterator::current - Get the current value
    • NoRewindIterator::key - Get the current key
    • NoRewindIterator::next - Forward to the next element
    • NoRewindIterator::rewind - Prevents the rewind operation on the inner iterator
    • NoRewindIterator::valid - Validates the iterator
    • NoRewindIterator::__construct - Construct a NoRewindIterator
    • Normalizer::getRawDecomposition - Gets the Decomposition_Mapping property for the given UTF-8 encoded code point
    • Normalizer::isNormalized - Belirtilen dizge normalleştirilmiş mi diye bakar
    • Normalizer::normalize - Belirtilen girdiyi normalleştirir ve dizge olarak döndürür
    • NumberFormatter::create - Bir sayı biçemleyici oluşturur
    • NumberFormatter::format - Bir sayıyı biçemler
    • NumberFormatter::formatCurrency - Bir para değerini biçemler
    • NumberFormatter::getAttribute - Bir sayısal öznitelikle döner
    • NumberFormatter::getErrorCode - Biçemleyicinin son hata numarası ile döner
    • NumberFormatter::getErrorMessage - Biçemleyicinin son hata iletisini döndürür
    • NumberFormatter::getLocale - Biçemleyici yerelin ismi ile döner
    • NumberFormatter::getPattern - Biçemleyici tarafından kullanılan kalıp dizgesi ile döner
    • NumberFormatter::getSymbol - Simge değeri ile döner
    • NumberFormatter::getTextAttribute - Bir metin öznitelik ile döner
    • NumberFormatter::parse - Bir sayı dizgesini sayıya dönüştürür
    • NumberFormatter::parseCurrency - Bir para gösteriminin sayısal değeri ile döner
    • NumberFormatter::setAttribute - Bir öznitelik tanımlar
    • NumberFormatter::setPattern - Biçemleyici kalıbı tanımlar
    • NumberFormatter::setSymbol - Bir simge değeri tanımlar
    • NumberFormatter::setTextAttribute - Bir metin öznitelik tanımlar
    • number_format - Sayıyı binlik bölümlere ayırır
  • o
    • OAuth::disableDebug - Turn off verbose debugging
    • OAuth::disableRedirects - Turn off redirects
    • OAuth::disableSSLChecks - Turn off SSL checks
    • OAuth::enableDebug - Turn on verbose debugging
    • OAuth::enableRedirects - Turn on redirects
    • OAuth::enableSSLChecks - Turn on SSL checks
    • OAuth::fetch - Fetch an OAuth protected resource
    • OAuth::generateSignature - Generate a signature
    • OAuth::getAccessToken - Fetch an access token
    • OAuth::getCAPath - Gets CA information
    • OAuth::getLastResponse - Get the last response
    • OAuth::getLastResponseHeaders - Get headers for last response
    • OAuth::getLastResponseInfo - Get HTTP information about the last response
    • OAuth::getRequestHeader - Generate OAuth header string signature
    • OAuth::getRequestToken - Fetch a request token
    • OAuth::setAuthType - Set authorization type
    • OAuth::setCAPath - Set CA path and info
    • OAuth::setNonce - Set the nonce for subsequent requests
    • OAuth::setRequestEngine - The setRequestEngine purpose
    • OAuth::setRSACertificate - Set the RSA certificate
    • OAuth::setSSLChecks - Tweak specific SSL checks for requests
    • OAuth::setTimestamp - Set the timestamp
    • OAuth::setToken - Sets the token and secret
    • OAuth::setVersion - Set the OAuth version
    • OAuth::__construct - Create a new OAuth object
    • OAuth::__destruct - The destructor
    • OAuthProvider::addRequiredParameter - Add required parameters
    • OAuthProvider::callconsumerHandler - Calls the consumerNonceHandler callback
    • OAuthProvider::callTimestampNonceHandler - Calls the timestampNonceHandler callback
    • OAuthProvider::calltokenHandler - Calls the tokenNonceHandler callback
    • OAuthProvider::checkOAuthRequest - Check an oauth request
    • OAuthProvider::consumerHandler - Set the consumerHandler handler callback
    • OAuthProvider::generateToken - Generate a random token
    • OAuthProvider::is2LeggedEndpoint - is2LeggedEndpoint
    • OAuthProvider::isRequestTokenEndpoint - Sets isRequestTokenEndpoint
    • OAuthProvider::removeRequiredParameter - Remove a required parameter
    • OAuthProvider::reportProblem - Report a problem
    • OAuthProvider::setParam - Set a parameter
    • OAuthProvider::setRequestTokenPath - Set request token path
    • OAuthProvider::timestampNonceHandler - Set the timestampNonceHandler handler callback
    • OAuthProvider::tokenHandler - Set the tokenHandler handler callback
    • OAuthProvider::__construct - Constructs a new OAuthProvider object
    • oauth_get_sbs - Generate a Signature Base String
    • oauth_urlencode - Encode a URI to RFC 3986
    • ob_clean - Çıktı tamponunu temizler (siler)
    • ob_end_clean - Çıktı tamponunu temizler (siler) ve tamponu kapatır
    • ob_end_flush - Çıktı tamponunu boşaltır (gönderir) ve tamponu kapatır
    • ob_flush - Çıktı tamponunu boşaltır (gönderir)
    • ob_get_clean - Geçerli çıktı tamponun içeriğini döndürüp tamponu siler
    • ob_get_contents - Çıktı tamponunun içeriği ile döner
    • ob_get_flush - Çıktı tamponunu boşaltır, içeriğini bir dizge olarak döndürür ve çıktı tamponlamasını kapatır
    • ob_get_length - Çıktı tamponunundaki içeriğin uzunluğunu döndürür
    • ob_get_level - Çıktı tamponlama mekanizmasının iç içelik seviyesini döndürür
    • ob_get_status - Çıktı tamponlarının durumu ile döner
    • ob_gzhandler - ob_start callback function to gzip output buffer
    • ob_iconv_handler - Çıktı tamponu eylemcisi olarak karakter kodlaması dönüşümü yapar
    • ob_implicit_flush - Örtük boşaltmayı açar/kapar
    • ob_list_handlers - Kullanımdaki çıktı eylemcileri listeler
    • ob_start - Çıktı tamponlamasını başlatır
    • ob_tidyhandler - Tampon onarımı için ob_start geriçağırım işlevi
    • ocibindbyname - Takma Adı: oci_bind_by_name
    • ocicancel - Takma Adı: oci_cancel
    • ocicloselob - Takma Adı: OCILob::close
    • ocicollappend - Takma Adı: OCICollection::append
    • ocicollassign - Takma Adı: OCICollection::assign
    • ocicollassignelem - Takma Adı: OCICollection::assignElem
    • OCICollection::append - Appends element to the collection
    • OCICollection::assign - Assigns a value to the collection from another existing collection
    • OCICollection::assignElem - Assigns a value to the element of the collection
    • OCICollection::free - Frees the resources associated with the collection object
    • OCICollection::getElem - Returns value of the element
    • OCICollection::max - Returns the maximum number of elements in the collection
    • OCICollection::size - Returns size of the collection
    • OCICollection::trim - Trims elements from the end of the collection
    • ocicollgetelem - Takma Adı: OCICollection::getElem
    • ocicollmax - Takma Adı: OCICollection::max
    • ocicollsize - Takma Adı: OCICollection::size
    • ocicolltrim - Takma Adı: OCICollection::trim
    • ocicolumnisnull - Takma Adı: oci_field_is_null
    • ocicolumnname - Takma Adı: oci_field_name
    • ocicolumnprecision - Takma Adı: oci_field_precision
    • ocicolumnscale - Takma Adı: oci_field_scale
    • ocicolumnsize - Takma Adı: oci_field_size
    • ocicolumntype - Takma Adı: oci_field_type
    • ocicolumntyperaw - Takma Adı: oci_field_type_raw
    • ocicommit - Takma Adı: oci_commit
    • ocidefinebyname - Takma Adı: oci_define_by_name
    • ocierror - Takma Adı: oci_error
    • ociexecute - Takma Adı: oci_execute
    • ocifetch - Takma Adı: oci_fetch
    • ocifetchinto - Obsolete variant of oci_fetch_array, oci_fetch_object, oci_fetch_assoc and oci_fetch_row
    • ocifetchstatement - Takma Adı: oci_fetch_all
    • ocifreecollection - Takma Adı: OCICollection::free
    • ocifreecursor - Takma Adı: oci_free_statement
    • ocifreedesc - Takma Adı: OCILob::free
    • ocifreestatement - Takma Adı: oci_free_statement
    • ociinternaldebug - Takma Adı: oci_internal_debug
    • ociloadlob - Takma Adı: OCILob::load
    • OCILob::append - Appends data from the large object to another large object
    • OCILob::close - Closes LOB descriptor
    • OCILob::eof - Tests for end-of-file on a large object's descriptor
    • OCILob::erase - Erases a specified portion of the internal LOB data
    • OCILob::export - Exports LOB's contents to a file
    • OCILob::flush - Flushes/writes buffer of the LOB to the server
    • OCILob::free - Frees resources associated with the LOB descriptor
    • OCILob::getBuffering - Returns current state of buffering for the large object
    • OCILob::import - Imports file data to the LOB
    • OCILob::load - Returns large object's contents
    • OCILob::read - Reads part of the large object
    • OCILob::rewind - Moves the internal pointer to the beginning of the large object
    • OCILob::save - Saves data to the large object
    • OCILob::saveFile - Takma Adı: OCILob::import
    • OCILob::seek - Sets the internal pointer of the large object
    • OCILob::setBuffering - Changes current state of buffering for the large object
    • OCILob::size - Returns size of large object
    • OCILob::tell - Returns the current position of internal pointer of large object
    • OCILob::truncate - Truncates large object
    • OCILob::write - Writes data to the large object
    • OCILob::writeTemporary - Writes a temporary large object
    • OCILob::writeToFile - Takma Adı: OCILob::export
    • ocilogoff - Takma Adı: oci_close
    • ocilogon - Takma Adı: oci_connect
    • ocinewcollection - Takma Adı: oci_new_collection
    • ocinewcursor - Takma Adı: oci_new_cursor
    • ocinewdescriptor - Takma Adı: oci_new_descriptor
    • ocinlogon - Takma Adı: oci_new_connect
    • ocinumcols - Takma Adı: oci_num_fields
    • ociparse - Takma Adı: oci_parse
    • ociplogon - Takma Adı: oci_pconnect
    • ociresult - Takma Adı: oci_result
    • ocirollback - Takma Adı: oci_rollback
    • ocirowcount - Takma Adı: oci_num_rows
    • ocisavelob - Takma Adı: OCILob::save
    • ocisavelobfile - Takma Adı: OCILob::import
    • ociserverversion - Takma Adı: oci_server_version
    • ocisetprefetch - Takma Adı: oci_set_prefetch
    • ocistatementtype - Takma Adı: oci_statement_type
    • ociwritelobtofile - Takma Adı: OCILob::export
    • ociwritetemporarylob - Takma Adı: OCILob::writeTemporary
    • oci_bind_array_by_name - Binds a PHP array to an Oracle PL/SQL array parameter
    • oci_bind_by_name - Binds a PHP variable to an Oracle placeholder
    • oci_cancel - Cancels reading from cursor
    • oci_client_version - Returns the Oracle client library version
    • oci_close - Closes an Oracle connection
    • oci_commit - Commits the outstanding database transaction
    • oci_connect - Connect to an Oracle database
    • oci_define_by_name - Associates a PHP variable with a column for query fetches
    • oci_error - Returns the last error found
    • oci_execute - Executes a statement
    • oci_fetch - Fetches the next row from a query into internal buffers
    • oci_fetch_all - Fetches multiple rows from a query into a two-dimensional array
    • oci_fetch_array - Returns the next row from a query as an associative or numeric array
    • oci_fetch_assoc - Returns the next row from a query as an associative array
    • oci_fetch_object - Returns the next row from a query as an object
    • oci_fetch_row - Returns the next row from a query as a numeric array
    • oci_field_is_null - Checks if a field in the currently fetched row is null
    • oci_field_name - Returns the name of a field from the statement
    • oci_field_precision - Tell the precision of a field
    • oci_field_scale - Tell the scale of the field
    • oci_field_size - Returns field's size
    • oci_field_type - Returns a field's data type name
    • oci_field_type_raw - Tell the raw Oracle data type of the field
    • oci_free_descriptor - Frees a descriptor
    • oci_free_statement - Frees all resources associated with statement or cursor
    • oci_get_implicit_resultset - Returns the next child statement resource from a parent statement resource that has Oracle Database Implicit Result Sets
    • oci_internal_debug - Enables or disables internal debug output
    • oci_lob_copy - Copies large object
    • oci_lob_is_equal - Compares two LOB/FILE locators for equality
    • oci_new_collection - Allocates new collection object
    • oci_new_connect - Connect to the Oracle server using a unique connection
    • oci_new_cursor - Allocates and returns a new cursor (statement handle)
    • oci_new_descriptor - Initializes a new empty LOB or FILE descriptor
    • oci_num_fields - Returns the number of result columns in a statement
    • oci_num_rows - Returns number of rows affected during statement execution
    • oci_parse - Prepares an Oracle statement for execution
    • oci_password_change - Changes password of Oracle's user
    • oci_pconnect - Connect to an Oracle database using a persistent connection
    • oci_register_taf_callback - Register a user-defined callback function for Oracle Database TAF
    • oci_result - Returns field's value from the fetched row
    • oci_rollback - Rolls back the outstanding database transaction
    • oci_server_version - Returns the Oracle Database version
    • oci_set_action - Sets the action name
    • oci_set_call_timeout - Sets a millisecond timeout for database calls
    • oci_set_client_identifier - Sets the client identifier
    • oci_set_client_info - Sets the client information
    • oci_set_db_operation - Sets the database operation
    • oci_set_edition - Sets the database edition
    • oci_set_module_name - Sets the module name
    • oci_set_prefetch - Sets number of rows to be prefetched by queries
    • oci_set_prefetch_lob - Sets the amount of data prefetched for each CLOB or BLOB.
    • oci_statement_type - Returns the type of a statement
    • oci_unregister_taf_callback - Unregister a user-defined callback function for Oracle Database TAF
    • octdec - Octal to decimal
    • odbc_alan_adı - Sütun ismini döndürür
    • odbc_autocommit - Ototeslim kipini açıp kapar
    • odbc_binmode - İkil sütun verileri ile çalışmayı etkin kılar
    • odbc_close - Bir ODBC bağlantısını kapatır
    • odbc_close_all - Tüm ODBC bağlantılarını kapatır
    • odbc_columnprivileges - Belirtilen tablo ile ilgili izinleri ve sütunları listeler
    • odbc_columns - Belirtilen tablolardaki sütun isimlerini listeler
    • odbc_commit - Bir ODBC hareket listesi gönderir
    • odbc_connect - Bir veri kaynağına bağlanır
    • odbc_connection_string_is_quoted - Determines if an ODBC connection string value is quoted
    • odbc_connection_string_quote - Quotes an ODBC connection string value
    • odbc_connection_string_should_quote - Determines if an ODBC connection string value should be quoted
    • odbc_cursor - İmleç ismini döndürür
    • odbc_data_source - Kullanılabilir DSN'ler hakkında bilgi döndürür
    • odbc_do - odbc_exec işlevinin takma adıdır
    • odbc_error - Son hata kodunu döndürür
    • odbc_errormsg - Son hata iletisini döndürür
    • odbc_exec - SQL deyimini doğrudan çalıştırır
    • odbc_execute - Bir hazır deyimi çalıştırır
    • odbc_fetch_array - Sonuç satırını bir ilişkisel dizi olarak döndürür
    • odbc_fetch_into - Sonuç satırını bir dizi olarak döndürür
    • odbc_fetch_object - Sonuç satırını bir nesne olarak döndürür
    • odbc_fetch_row - Bir satır döndürür
    • odbc_field_len - Bir alanın uzunluğunu (hassasiyetini) döndürür
    • odbc_field_num - Sütun numarasını döndürür
    • odbc_field_precision - odbc_field_len işlevinin takma adıdır
    • odbc_field_scale - Bir alanın skalasını döndürür
    • odbc_field_type - Bir alanın veri türünü döndürür
    • odbc_foreignkeys - Bir tablonun yabancı anahtarlarını listeler
    • odbc_free_result - Bir sonuç ile ilgili özkaynakları serbest bırakır
    • odbc_gettypeinfo - Veri kaynağınca desteklenen veri türleri hakkında bilgi döndürür
    • odbc_longreadlen - LONG sütunlarla çalışmayı etkin kılar
    • odbc_next_result - Kullanılabilecek çok sayıda sonuç var mı diye bakar
    • odbc_num_fields - Bir sonuçtaki sütun sayısını döndürür
    • odbc_num_rows - Bir sonuçtaki satır sayısını döndürür
    • odbc_pconnect - Bir kalıcı veritabanı bağlantısı açar
    • odbc_prepare - Çalıştırılmak üzere bir deyim hazırlar
    • odbc_primarykeys - Bir tablonun birincil anahtarlarını döndürür
    • odbc_procedurecolumns - Yordamların bağımsız değişkenleri hakkında bilgi döndürür
    • odbc_procedures - Belirtilen veri kaynağında saklı yordamların listesini döndürür
    • odbc_result - Sonuçtan veri döndürür
    • odbc_result_all - Sonucu bir HTML tablosu olarak basar
    • odbc_rollback - Bir hareketi başa döndürür
    • odbc_setoption - ODBC ayarlarını yapar
    • odbc_specialcolumns - Özel sütunları döndürür
    • odbc_statistics - Bir tablo hakkındaki istatistikleri döndürür
    • odbc_tableprivileges - Tabloları izinleriyle birlikte listeler
    • odbc_tables - Belli bir veri kaynağında bulunan tablo isimlerini döndürür
    • opcache_compile_file - Compiles and caches a PHP script without executing it
    • opcache_get_configuration - Get configuration information about the cache
    • opcache_get_status - Get status information about the cache
    • opcache_invalidate - Invalidates a cached script
    • opcache_is_script_cached - Tells whether a script is cached in OPCache
    • opcache_reset - Resets the contents of the opcode cache
    • openal_buffer_create - Generate OpenAL buffer
    • openal_buffer_data - Load a buffer with data
    • openal_buffer_destroy - Destroys an OpenAL buffer
    • openal_buffer_get - Retrieve an OpenAL buffer property
    • openal_buffer_loadwav - Load a .wav file into a buffer
    • openal_context_create - Create an audio processing context
    • openal_context_current - Make the specified context current
    • openal_context_destroy - Destroys a context
    • openal_context_process - Process the specified context
    • openal_context_suspend - Suspend the specified context
    • openal_device_close - Close an OpenAL device
    • openal_device_open - Initialize the OpenAL audio layer
    • openal_listener_get - Retrieve a listener property
    • openal_listener_set - Set a listener property
    • openal_source_create - Generate a source resource
    • openal_source_destroy - Destroy a source resource
    • openal_source_get - Retrieve an OpenAL source property
    • openal_source_pause - Pause the source
    • openal_source_play - Start playing the source
    • openal_source_rewind - Rewind the source
    • openal_source_set - Set source property
    • openal_source_stop - Stop playing the source
    • openal_stream - Begin streaming on a source
    • opendir - Belirtilen dizin için bir tanıtıcı döndürür
    • openlog - Sistem günlükçüsüne erişim için bağlantı açar
    • openssl_cipher_iv_length - Gets the cipher iv length
    • openssl_cipher_key_length - Gets the cipher key length
    • openssl_cms_decrypt - Decrypt a CMS message
    • openssl_cms_encrypt - Encrypt a CMS message
    • openssl_cms_read - Export the CMS file to an array of PEM certificates
    • openssl_cms_sign - Bir dosyayı imzalar
    • openssl_cms_verify - Belirtilen CMS imzasını doğrular
    • openssl_csr_export - Belirtilen CSR'yi bir dizge olarak döndürür
    • openssl_csr_export_to_file - Belirtilen CSR'yi bir dosyaya kaydeder
    • openssl_csr_get_public_key - Bir CSR'nin açık anahtarını döndürür
    • openssl_csr_get_subject - Bir CSR'nin öznesini döndürür
    • openssl_csr_new - Bir sertifika imzalama isteği (CSR) üretir
    • openssl_csr_sign - Bir CSR'yi başka bir sertifika (veya kendisi) ile imzalayıp bir sertifika üretir
    • openssl_decrypt - Verinin şifresini çözer
    • openssl_dh_compute_key - Uzak DH genel anahtarının ve yerel DH anahtarının genel değeri için paylaşılan gizi hesaplar
    • openssl_digest - Bir özet hesaplar
    • openssl_encrypt - Veriyi şifreler
    • openssl_error_string - OpenSSL hata iletisini döndürür
    • openssl_free_key - Anahtar özkaynağını serbest bırakır
    • openssl_get_cert_locations - Retrieve the available certificate locations
    • openssl_get_cipher_methods - Kullanılabilecek şifreleme yöntemlerini döndürür
    • openssl_get_curve_names - Gets list of available curve names for ECC
    • openssl_get_md_methods - Kullanılabilecek özet yöntemlerini döndürür
    • openssl_get_privatekey - openssl_pkey_get_private işlevinin takma adıdır
    • openssl_get_publickey - openssl_pkey_get_public işlevinin takma adıdır
    • openssl_open - Mühürlü veriyi açar
    • openssl_pbkdf2 - Generates a PKCS5 v2 PBKDF2 string
    • openssl_pkcs7_decrypt - S/MIME şifreli bir iletinin şifresini çözer
    • openssl_pkcs7_encrypt - Bir S/MIME iletiyi şifreler
    • openssl_pkcs7_read - Export the PKCS7 file to an array of PEM certificates
    • openssl_pkcs7_sign - Bir S/MIME iletiyi imzalar
    • openssl_pkcs7_verify - S/MIME imzalı bir iletinin imzasını doğrular
    • openssl_pkcs12_export - PKCS#12 uyumlu sertifika deposu dosyasını bir değişkene yerleştirir
    • openssl_pkcs12_export_to_file - Bir PKCS#12 uyumlu sertifika deposunu bir dosyaya kaydeder
    • openssl_pkcs12_read - Bir PKCS#12 Sertifika Deposunu bir diziye çözümler
    • openssl_pkey_derive - Computes shared secret for public value of remote and local DH or ECDH key
    • openssl_pkey_export - Bir anahtarın ihraç edilebilir gösterimini bir dizge olarak döndürür
    • openssl_pkey_export_to_file - Bir anahtarın ihraç edilebilir gösterimini bir dosyaya kaydeder
    • openssl_pkey_free - Bir gizli anahtarı serbest bırakır
    • openssl_pkey_get_details - Anahtarla ilgili ayrıntıları bir dizi içinde döndürür
    • openssl_pkey_get_private - Gizli anahtarı döndürür
    • openssl_pkey_get_public - Genel anahtarı sertifikadan elde edip kullanıma hazırlar
    • openssl_pkey_new - Yeni bir gizli anahtar üretir
    • openssl_private_decrypt - Genel anahtarla şifrelenmiş verinin şifresini gizli anahtarla çözer
    • openssl_private_encrypt - Veriyi gizli anahtarla şifreler
    • openssl_public_decrypt - Gizli anahtarla şifrelenmiş verinin şifresini genel anahtarla çözer
    • openssl_public_encrypt - Veriyi genel anahtarla şifreler
    • openssl_random_pseudo_bytes - Yarı-rasgele bayt dizesi üretir
    • openssl_seal - Veriyi mühürler (şifreler)
    • openssl_sign - İmza üretir
    • openssl_spki_export - Exports a valid PEM formatted public key signed public key and challenge
    • openssl_spki_export_challenge - Exports the challenge associated with a signed public key and challenge
    • openssl_spki_new - Generate a new signed public key and challenge
    • openssl_spki_verify - Verifies a signed public key and challenge
    • openssl_verify - İmzayı doğrular
    • openssl_x509_checkpurpose - Sertifikanın belli bir amaçla kulanılıp kullanılmayacağına bakar
    • openssl_x509_check_private_key - Bir gizli anahtarın bir sertifikaya karşılık olup olmadığına bakar
    • openssl_x509_export - Belirtilen sertifikayı dizge olarak döndürür
    • openssl_x509_export_to_file - Belirtilen sertifikayı bir dosyaya kaydeder
    • openssl_x509_fingerprint - Calculates the fingerprint, or digest, of a given X.509 certificate
    • openssl_x509_free - Sertifika özkaynağını serbest bırakır
    • openssl_x509_parse - Bir X509 sertifikasını çözümleyip bilgileri bir dizi içinde döndürür
    • openssl_x509_read - X.509 sertifikasını çözümleyip sertifika için nesne döndürür
    • openssl_x509_verify - Verifies digital signature of x509 certificate against a public key
    • ord - Dizgenin ilk baytını 0-255 arasında bir değere dönüştürür
    • OuterIterator::getInnerIterator - Returns the inner iterator for the current entry
    • output_add_rewrite_var - URL yeniden yazım değerlerini ekler
    • output_reset_rewrite_vars - URL yeniden yazma değerlerini sıfırlar
    • Override::__construct - Construct a new Override attribute instance
  • p
    • pack - Veriyi ikil bir dizge halinde paketler
    • parallel\bootstrap - Bootstrapping
    • parallel\Channel::close - Closing
    • parallel\Channel::make - Access
    • parallel\Channel::open - Access
    • parallel\Channel::recv - Sharing
    • parallel\Channel::send - Sharing
    • parallel\Channel::__construct - Channel Construction
    • parallel\Events::addChannel - Targets
    • parallel\Events::addFuture - Targets
    • parallel\Events::poll - Polling
    • parallel\Events::remove - Targets
    • parallel\Events::setBlocking - Behaviour
    • parallel\Events::setInput - Input
    • parallel\Events::setTimeout - Behaviour
    • parallel\Events\Input::add - Inputs
    • parallel\Events\Input::clear - Inputs
    • parallel\Events\Input::remove - Inputs
    • parallel\Future::cancel - Cancellation
    • parallel\Future::cancelled - State Detection
    • parallel\Future::done - State Detection
    • parallel\Future::value - Resolution
    • parallel\run - Execution
    • parallel\Runtime::close - Runtime Graceful Join
    • parallel\Runtime::kill - Runtime Join
    • parallel\Runtime::run - Execution
    • parallel\Runtime::__construct - Runtime Construction
    • parallel\Sync::get - Access
    • parallel\Sync::notify - Synchronization
    • parallel\Sync::set - Access
    • parallel\Sync::wait - Synchronization
    • parallel\Sync::__construct - Construction
    • parallel\Sync::__invoke - Synchronization
    • ParentIterator::accept - Determines acceptability
    • ParentIterator::getChildren - Return the inner iterator's children contained in a ParentIterator
    • ParentIterator::hasChildren - Check whether the inner iterator's current element has children
    • ParentIterator::next - Move the iterator forward
    • ParentIterator::rewind - Rewind the iterator
    • ParentIterator::__construct - Constructs a ParentIterator
    • Parle\Lexer::advance - Process next lexer rule
    • Parle\Lexer::build - Finalize the lexer rule set
    • Parle\Lexer::callout - Define token callback
    • Parle\Lexer::consume - Pass the data for processing
    • Parle\Lexer::dump - Dump the state machine
    • Parle\Lexer::getToken - Retrieve the current token
    • Parle\Lexer::insertMacro - Insert regex macro
    • Parle\Lexer::push - Add a lexer rule
    • Parle\Lexer::reset - Reset lexer
    • Parle\Parser::advance - Process next parser rule
    • Parle\Parser::build - Finalize the grammar rules
    • Parle\Parser::consume - Consume the data for processing
    • Parle\Parser::dump - Dump the grammar
    • Parle\Parser::errorInfo - Retrieve the error information
    • Parle\Parser::left - Declare a token with left-associativity
    • Parle\Parser::nonassoc - Declare a token with no associativity
    • Parle\Parser::precedence - Declare a precedence rule
    • Parle\Parser::push - Add a grammar rule
    • Parle\Parser::reset - Reset parser state
    • Parle\Parser::right - Declare a token with right-associativity
    • Parle\Parser::sigil - Retrieve a matching part of a rule
    • Parle\Parser::sigilCount - Number of elements in matched rule
    • Parle\Parser::sigilName - Retrieve a rule or token name
    • Parle\Parser::token - Declare a token
    • Parle\Parser::tokenId - Get token id
    • Parle\Parser::trace - Trace the parser operation
    • Parle\Parser::validate - Validate input
    • Parle\RLexer::advance - Process next lexer rule
    • Parle\RLexer::build - Finalize the lexer rule set
    • Parle\RLexer::callout - Define token callback
    • Parle\RLexer::consume - Pass the data for processing
    • Parle\RLexer::dump - Dump the state machine
    • Parle\RLexer::getToken - Retrieve the current token
    • Parle\RLexer::insertMacro - Insert regex macro
    • Parle\RLexer::push - Add a lexer rule
    • Parle\RLexer::pushState - Push a new start state
    • Parle\RLexer::reset - Reset lexer
    • Parle\RParser::advance - Process next parser rule
    • Parle\RParser::build - Finalize the grammar rules
    • Parle\RParser::consume - Consume the data for processing
    • Parle\RParser::dump - Dump the grammar
    • Parle\RParser::errorInfo - Retrieve the error information
    • Parle\RParser::left - Declare a token with left-associativity
    • Parle\RParser::nonassoc - Declare a token with no associativity
    • Parle\RParser::precedence - Declare a precedence rule
    • Parle\RParser::push - Add a grammar rule
    • Parle\RParser::reset - Reset parser state
    • Parle\RParser::right - Declare a token with right-associativity
    • Parle\RParser::sigil - Retrieve a matching part of a rule
    • Parle\RParser::sigilCount - Number of elements in matched rule
    • Parle\RParser::sigilName - Retrieve a rule or token name
    • Parle\RParser::token - Declare a token
    • Parle\RParser::tokenId - Get token id
    • Parle\RParser::trace - Trace the parser operation
    • Parle\RParser::validate - Validate input
    • Parle\Stack::pop - Pop an item from the stack
    • Parle\Stack::push - Push an item into the stack
    • parse_ini_file - Bir yapılandırma dosyasını çözümler
    • parse_ini_string - Bir yapılandırma dizgesini çözümler
    • parse_str - Dizge içindeki değişkenleri çözümler
    • parse_url - Bir URL'yi bileşenlerine ayırır
    • passthru - Harici bir programı çalıştırır ve çıktısını ham olarak gösterir
    • password_algos - Kullanılabilen parola aşlama algortimalarının kimliklerini döndürür
    • password_get_info - Belirtilen aş hakkında bilgi döndürür
    • password_hash - Parola aşı oluşturur
    • password_needs_rehash - Belirtilen aş ile belirtilen seçeneklerin eşleşmesini doğrular
    • password_verify - Parola ile aş eşleşmesini doğrular
    • pathinfo - Bir dosya yolu hakkında bilgi döndürür
    • pclose - Bir süreç tanıtıcısını kapatır
    • pcntl_alarm - Belli bir süre sonra SIGALRM sinyali gönderir
    • pcntl_async_signals - Eşzamansız sinyal işlemeyi devreye sokar/iptal eder veya eski durumu döndürür
    • pcntl_errno - pcntl_get_last_error işlevinin takma adıdır
    • pcntl_exec - Belirtilen programı geçerli süreç ortamında çalıştırır
    • pcntl_fork - Çalışan süreci çatallar
    • pcntl_getpriority - Bir sürecin önceliğini döndürür
    • pcntl_get_last_error - Başarısız olan son pcntl işlevi için atanan hata numarasını döndürür
    • pcntl_rfork - Manipulates process resources
    • pcntl_setpriority - Sürecin önceliğini değiştirir
    • pcntl_signal - Bir sinyal eylemci belirtir
    • pcntl_signal_dispatch - Askıdaki sinyaller için sinyal eylemciyi çağırır
    • pcntl_signal_get_handler - Belirtilen sinyal için geçerli işleyiciyi döndürür
    • pcntl_sigprocmask - Sinyalleri ekler, siler veya engeller
    • pcntl_sigtimedwait - Sinyalleri zaman aşımı dolana kadar bekler
    • pcntl_sigwaitinfo - Belirtilen sinyalleri bekler
    • pcntl_strerror - Belirtilen hata kodu ile ilişkili sistem hata iletisini döndürür
    • pcntl_unshare - Dissociates parts of the process execution context
    • pcntl_wait - Çatallanmış bir çocuğun durum kodu için bekler
    • pcntl_waitpid - Bir çocuk sürecin çıkmasını bekler ve durum kodunu döndürür
    • pcntl_wexitstatus - Sonlanmış çocuk sürecin dönüş kodunu döndürür
    • pcntl_wifexited - Durum kodunun normal bir çıkışı mı işaret ettiğine bakar
    • pcntl_wifsignaled - Durum kodunun bir sinyal sebebiyle bir sonlanmayı mı işaret ettiğine bakar
    • pcntl_wifstopped - Çocuk sürecin durmuş olup olmadığına bakar
    • pcntl_wstopsig - Çocuk sürecin durmasına sebep olan sinyali döndürür
    • pcntl_wtermsig - Çocuk sürecin sonlanmasına sebep olan sinyali döndürür
    • PDO::beginTransaction - Bir toplu hareketi ilklendirir
    • PDO::commit - Bir toplu hareketi veritabanına gönderir
    • PDO::cubrid_schema - Get the requested schema information
    • PDO::errorCode - Veritabanındaki son işlemle ilgili SQLSTATE kodunu döndürür
    • PDO::errorInfo - Veritabanındaki son işlemle ilgili hata bilgisini döndürür
    • PDO::exec - Belirtilen SQL deyimini çalıştırır ve etkilenen satır sayısını döndürür
    • PDO::getAttribute - Bir veritabanı bağlantı özniteliğinin değerini döndürür
    • PDO::getAvailableDrivers - Kullanılabilen PDO sürücülerini içeren bir dizi döndürür
    • PDO::inTransaction - Checks if inside a transaction
    • PDO::lastInsertId - Son yerleştirilen satırın veya sıradaki değerin kimliğini döndürür
    • PDO::pgsqlCopyFromArray - Copy data from PHP array into table
    • PDO::pgsqlCopyFromFile - Copy data from file into table
    • PDO::pgsqlCopyToArray - Copy data from database table into PHP array
    • PDO::pgsqlCopyToFile - Copy data from table into file
    • PDO::pgsqlGetNotify - Get asynchronous notification
    • PDO::pgsqlGetPid - Get the server PID
    • PDO::pgsqlLOBCreate - Creates a new large object
    • PDO::pgsqlLOBOpen - Opens an existing large object stream
    • PDO::pgsqlLOBUnlink - Deletes the large object
    • PDO::prepare - Çalıştırılmak üzere bir deyimi hazırlar ve bir deyim nesnesi olarak döndürür
    • PDO::query - Bir SQL deyimini yer tutucular olmaksızın hazırlar ve çalıştırır
    • PDO::quote - Bir sorguda kullanılmak üzere bir dizgeyi önceler
    • PDO::rollBack - Bir toplu hareketi geri alır
    • PDO::setAttribute - Bir öznitelik tanımlar
    • PDO::sqliteCreateAggregate - Registers an aggregating User Defined Function for use in SQL statements
    • PDO::sqliteCreateCollation - Registers a User Defined Function for use as a collating function in SQL statements
    • PDO::sqliteCreateFunction - Registers a User Defined Function for use in SQL statements
    • PDO::__construct - Bir veritabanı bağlantısını temsil eden bir PDO nesnesi oluşturur
    • PDOStatement::bindColumn - Bir sütunu bir PHP değişkeni ile ilişkilendirir
    • PDOStatement::bindParam - Bir bağımsız değişkeni belirtilen değişkenle ilişkilendirir
    • PDOStatement::bindValue - Bir değeri bir bağımsız değişken ile ilişkilendirir
    • PDOStatement::closeCursor - Göstericiyi kapatarak deyimin tekrar çalıştırılabilmesini sağlar
    • PDOStatement::columnCount - Sonuç kümesindeki sütun sayısını döndürür
    • PDOStatement::debugDumpParams - Bir SQL hazır komutunu dökümler
    • PDOStatement::errorCode - Deyim üzerindeki son işlemle ilgili SQLSTATE hata kodunu döndürür
    • PDOStatement::errorInfo - Deyim üzerindeki son işlemle ilgili hata bilgisini döndürür
    • PDOStatement::execute - Bir hazır deyimi çalıştırır
    • PDOStatement::fetch - Sonuç kümesindeki sonraki satırı döndürür
    • PDOStatement::fetchAll - Sonuç kümesinde kalan satırları döndürür
    • PDOStatement::fetchColumn - Sonuç kümesindeki sonraki satırdan tek bir sütun döndürür
    • PDOStatement::fetchObject - Sonraki satırı alır ve bir nesne olarak döndürür
    • PDOStatement::getAttribute - Bir deyim özniteliğini döndürür
    • PDOStatement::getColumnMeta - Sonuç kümesindeki bir sütunla ilgili temel veriyi döndürür
    • PDOStatement::getIterator - Gets result set iterator
    • PDOStatement::nextRowset - Çok satır kümeli bir sonuçtaki sonraki satır kümesini geçerli satır kümesi yapar
    • PDOStatement::rowCount - Son SQL deyiminden etkilenen satır sayısını döndürür
    • PDOStatement::setAttribute - Bir deyim özniteliğini tanımlar
    • PDOStatement::setFetchMode - Deyim için öntanımlı veri alım kipini belirler
    • PDO_CUBRID DSN - Connecting to CUBRID databases
    • PDO_DBLIB DSN - Microsoft SQL Sunucusu ve Sybase veritabanlarına bağlantı
    • PDO_FIREBIRD DSN - Firebird veritabanı bağlantısı
    • PDO_IBM DSN - IBM veritabanı bağlantısı
    • PDO_INFORMIX DSN - Informix veritabanı bağlantısı
    • PDO_MYSQL DSN - MySQL veritabanı bağlantısı
    • PDO_OCI DSN - Oracle veritabanlarına bağlantı
    • PDO_ODBC DSN - ODBC veya DB2 veritabanlarına bağlantı
    • PDO_PGSQL DSN - PostgreSQL veritabanı bağlantısı
    • PDO_SQLITE DSN - SQLite veritabanı bağlantısı
    • PDO_SQLSRV DSN - Connecting to MS SQL Server and SQL Azure databases
    • pfsockopen - Kalıcı bir internet veya Unix alan soketi bağlantısı açar
    • pg_affected_rows - Returns number of affected records (tuples)
    • pg_cancel_query - Cancel an asynchronous query
    • pg_client_encoding - Gets the client encoding
    • pg_close - Closes a PostgreSQL connection
    • pg_connect - Open a PostgreSQL connection
    • pg_connection_busy - Get connection is busy or not
    • pg_connection_reset - Reset connection (reconnect)
    • pg_connection_status - Get connection status
    • pg_connect_poll - Poll the status of an in-progress asynchronous PostgreSQL connection attempt
    • pg_consume_input - Reads input on the connection
    • pg_convert - Convert associative array values into forms suitable for SQL statements
    • pg_copy_from - Insert records into a table from an array
    • pg_copy_to - Copy a table to an array
    • pg_dbname - Get the database name
    • pg_delete - Deletes records
    • pg_end_copy - Sync with PostgreSQL backend
    • pg_escape_bytea - Escape a string for insertion into a bytea field
    • pg_escape_identifier - Escape a identifier for insertion into a text field
    • pg_escape_literal - Escape a literal for insertion into a text field
    • pg_escape_string - Escape a string for query
    • pg_execute - Sends a request to execute a prepared statement with given parameters, and waits for the result
    • pg_fetch_all - Fetches all rows from a result as an array
    • pg_fetch_all_columns - Fetches all rows in a particular result column as an array
    • pg_fetch_array - Fetch a row as an array
    • pg_fetch_assoc - Fetch a row as an associative array
    • pg_fetch_object - Fetch a row as an object
    • pg_fetch_result - Returns values from a result instance
    • pg_fetch_row - Get a row as an enumerated array
    • pg_field_is_null - Test if a field is SQL NULL
    • pg_field_name - Returns the name of a field
    • pg_field_num - Returns the field number of the named field
    • pg_field_prtlen - Returns the printed length
    • pg_field_size - Returns the internal storage size of the named field
    • pg_field_table - Returns the name or oid of the tables field
    • pg_field_type - Returns the type name for the corresponding field number
    • pg_field_type_oid - Returns the type ID (OID) for the corresponding field number
    • pg_flush - Flush outbound query data on the connection
    • pg_free_result - Free result memory
    • pg_get_notify - Gets SQL NOTIFY message
    • pg_get_pid - Gets the backend's process ID
    • pg_get_result - Get asynchronous query result
    • pg_host - Returns the host name associated with the connection
    • pg_insert - Insert array into table
    • pg_last_error - Get the last error message string of a connection
    • pg_last_notice - Returns the last notice message from PostgreSQL server
    • pg_last_oid - Returns the last row's OID
    • pg_lo_close - Close a large object
    • pg_lo_create - Create a large object
    • pg_lo_export - Export a large object to file
    • pg_lo_import - Import a large object from file
    • pg_lo_open - Open a large object
    • pg_lo_read - Read a large object
    • pg_lo_read_all - Reads an entire large object and send straight to browser
    • pg_lo_seek - Seeks position within a large object
    • pg_lo_tell - Returns current seek position a of large object
    • pg_lo_truncate - Truncates a large object
    • pg_lo_unlink - Delete a large object
    • pg_lo_write - Write to a large object
    • pg_meta_data - Get meta data for table
    • pg_num_fields - Returns the number of fields in a result
    • pg_num_rows - Returns the number of rows in a result
    • pg_options - Get the options associated with the connection
    • pg_parameter_status - Looks up a current parameter setting of the server
    • pg_pconnect - Open a persistent PostgreSQL connection
    • pg_ping - Ping database connection
    • pg_port - Return the port number associated with the connection
    • pg_prepare - Submits a request to create a prepared statement with the given parameters, and waits for completion
    • pg_put_line - Send a NULL-terminated string to PostgreSQL backend
    • pg_query - Execute a query
    • pg_query_params - Submits a command to the server and waits for the result, with the ability to pass parameters separately from the SQL command text
    • pg_result_error - Get error message associated with result
    • pg_result_error_field - Returns an individual field of an error report
    • pg_result_seek - Set internal row offset in result instance
    • pg_result_status - Get status of query result
    • pg_select - Select records
    • pg_send_execute - Sends a request to execute a prepared statement with given parameters, without waiting for the result(s)
    • pg_send_prepare - Sends a request to create a prepared statement with the given parameters, without waiting for completion
    • pg_send_query - Sends asynchronous query
    • pg_send_query_params - Submits a command and separate parameters to the server without waiting for the result(s)
    • pg_set_client_encoding - Set the client encoding
    • pg_set_error_context_visibility - Determines the visibility of the context's error messages returned by pg_last_error and pg_result_error
    • pg_set_error_verbosity - Determines the verbosity of messages returned by pg_last_error and pg_result_error
    • pg_socket - Get a read only handle to the socket underlying a PostgreSQL connection
    • pg_trace - Enable tracing a PostgreSQL connection
    • pg_transaction_status - Returns the current in-transaction status of the server
    • pg_tty - Return the TTY name associated with the connection
    • pg_unescape_bytea - Unescape binary for bytea type
    • pg_untrace - Disable tracing of a PostgreSQL connection
    • pg_update - Update table
    • pg_version - Returns an array with client, protocol and server version (when available)
    • Phar::addEmptyDir - Add an empty directory to the phar archive
    • Phar::addFile - Add a file from the filesystem to the phar archive
    • Phar::addFromString - Add a file from a string to the phar archive
    • Phar::apiVersion - Returns the api version
    • Phar::buildFromDirectory - Construct a phar archive from the files within a directory
    • Phar::buildFromIterator - Construct a phar archive from an iterator
    • Phar::canCompress - Returns whether phar extension supports compression using either zlib or bzip2
    • Phar::canWrite - Returns whether phar extension supports writing and creating phars
    • Phar::compress - Compresses the entire Phar archive using Gzip or Bzip2 compression
    • Phar::compressFiles - Compresses all files in the current Phar archive
    • Phar::convertToData - Convert a phar archive to a non-executable tar or zip file
    • Phar::convertToExecutable - Convert a phar archive to another executable phar archive file format
    • Phar::copy - Copy a file internal to the phar archive to another new file within the phar
    • Phar::count - Returns the number of entries (files) in the Phar archive
    • Phar::createDefaultStub - Create a phar-file format specific stub
    • Phar::decompress - Decompresses the entire Phar archive
    • Phar::decompressFiles - Decompresses all files in the current Phar archive
    • Phar::delete - Delete a file within a phar archive
    • Phar::delMetadata - Deletes the global metadata of the phar
    • Phar::extractTo - Extract the contents of a phar archive to a directory
    • Phar::getAlias - Get the alias for Phar
    • Phar::getMetadata - Returns phar archive meta-data
    • Phar::getModified - Return whether phar was modified
    • Phar::getPath - Get the real path to the Phar archive on disk
    • Phar::getSignature - Return MD5/SHA1/SHA256/SHA512/OpenSSL signature of a Phar archive
    • Phar::getStub - Return the PHP loader or bootstrap stub of a Phar archive
    • Phar::getSupportedCompression - Return array of supported compression algorithms
    • Phar::getSupportedSignatures - Return array of supported signature types
    • Phar::getVersion - Return version info of Phar archive
    • Phar::hasMetadata - Returns whether phar has global meta-data
    • Phar::interceptFileFuncs - Instructs phar to intercept fopen, file_get_contents, opendir, and all of the stat-related functions
    • Phar::isBuffering - Used to determine whether Phar write operations are being buffered, or are flushing directly to disk
    • Phar::isCompressed - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
    • Phar::isFileFormat - Returns true if the phar archive is based on the tar/phar/zip file format depending on the parameter
    • Phar::isValidPharFilename - Returns whether the given filename is a valid phar filename
    • Phar::isWritable - Returns true if the phar archive can be modified
    • Phar::loadPhar - Loads any phar archive with an alias
    • Phar::mapPhar - Reads the currently executed file (a phar) and registers its manifest
    • Phar::mount - Mount an external path or file to a virtual location within the phar archive
    • Phar::mungServer - Defines a list of up to 4 $_SERVER variables that should be modified for execution
    • Phar::offsetExists - Determines whether a file exists in the phar
    • Phar::offsetGet - Gets a PharFileInfo object for a specific file
    • Phar::offsetSet - Set the contents of an internal file to those of an external file
    • Phar::offsetUnset - Remove a file from a phar
    • Phar::running - Returns the full path on disk or full phar URL to the currently executing Phar archive
    • Phar::setAlias - Set the alias for the Phar archive
    • Phar::setDefaultStub - Used to set the PHP loader or bootstrap stub of a Phar archive to the default loader
    • Phar::setMetadata - Sets phar archive meta-data
    • Phar::setSignatureAlgorithm - Set the signature algorithm for a phar and apply it
    • Phar::setStub - Used to set the PHP loader or bootstrap stub of a Phar archive
    • Phar::startBuffering - Start buffering Phar write operations, do not modify the Phar object on disk
    • Phar::stopBuffering - Stop buffering write requests to the Phar archive, and save changes to disk
    • Phar::unlinkArchive - Completely remove a phar archive from disk and from memory
    • Phar::webPhar - Routes a request from a web browser to an internal file within the phar archive
    • Phar::__construct - Construct a Phar archive object
    • Phar::__destruct - Destructs a Phar archive object
    • PharData::addEmptyDir - Add an empty directory to the tar/zip archive
    • PharData::addFile - Add a file from the filesystem to the tar/zip archive
    • PharData::addFromString - Add a file from a string to the tar/zip archive
    • PharData::buildFromDirectory - Construct a tar/zip archive from the files within a directory
    • PharData::buildFromIterator - Construct a tar or zip archive from an iterator
    • PharData::compress - Compresses the entire tar/zip archive using Gzip or Bzip2 compression
    • PharData::compressFiles - Compresses all files in the current tar/zip archive
    • PharData::convertToData - Convert a phar archive to a non-executable tar or zip file
    • PharData::convertToExecutable - Convert a non-executable tar/zip archive to an executable phar archive
    • PharData::copy - Copy a file internal to the phar archive to another new file within the phar
    • PharData::decompress - Decompresses the entire Phar archive
    • PharData::decompressFiles - Decompresses all files in the current zip archive
    • PharData::delete - Delete a file within a tar/zip archive
    • PharData::delMetadata - Deletes the global metadata of a zip archive
    • PharData::extractTo - Extract the contents of a tar/zip archive to a directory
    • PharData::isWritable - Returns true if the tar/zip archive can be modified
    • PharData::offsetSet - Set the contents of a file within the tar/zip to those of an external file or string
    • PharData::offsetUnset - Remove a file from a tar/zip archive
    • PharData::setAlias - Dummy function (Phar::setAlias is not valid for PharData)
    • PharData::setDefaultStub - Dummy function (Phar::setDefaultStub is not valid for PharData)
    • PharData::setMetadata - Sets phar archive meta-data
    • PharData::setSignatureAlgorithm - Set the signature algorithm for a phar and apply it
    • PharData::setStub - Dummy function (Phar::setStub is not valid for PharData)
    • PharData::__construct - Construct a non-executable tar or zip archive object
    • PharData::__destruct - Destructs a non-executable tar or zip archive object
    • PharFileInfo::chmod - Sets file-specific permission bits
    • PharFileInfo::compress - Compresses the current Phar entry with either zlib or bzip2 compression
    • PharFileInfo::decompress - Decompresses the current Phar entry within the phar
    • PharFileInfo::delMetadata - Deletes the metadata of the entry
    • PharFileInfo::getCompressedSize - Returns the actual size of the file (with compression) inside the Phar archive
    • PharFileInfo::getContent - Get the complete file contents of the entry
    • PharFileInfo::getCRC32 - Returns CRC32 code or throws an exception if CRC has not been verified
    • PharFileInfo::getMetadata - Returns file-specific meta-data saved with a file
    • PharFileInfo::getPharFlags - Returns the Phar file entry flags
    • PharFileInfo::hasMetadata - Returns the metadata of the entry
    • PharFileInfo::isCompressed - Returns whether the entry is compressed
    • PharFileInfo::isCRCChecked - Returns whether file entry has had its CRC verified
    • PharFileInfo::setMetadata - Sets file-specific meta-data saved with a file
    • PharFileInfo::__construct - Construct a Phar entry object
    • PharFileInfo::__destruct - Destructs a Phar entry object
    • phpcredits - PHP'ya katkıda bulunanları gösterir
    • phpdbg_break_file - Inserts a breakpoint at a line in a file
    • phpdbg_break_function - Inserts a breakpoint at entry to a function
    • phpdbg_break_method - Inserts a breakpoint at entry to a method
    • phpdbg_break_next - Inserts a breakpoint at the next opcode
    • phpdbg_clear - Clears all breakpoints
    • phpdbg_color - Sets the color of certain elements
    • phpdbg_end_oplog - Açıklama
    • phpdbg_exec - Attempts to set the execution context
    • phpdbg_get_executable - Açıklama
    • phpdbg_prompt - Sets the command prompt
    • phpdbg_start_oplog - Açıklama
    • phpinfo - PHP yapılandırması hakkında bilgi çıktılar
    • PhpToken::getTokenName - Dizgeciğin ismini döndürür
    • PhpToken::is - Dizgecik belirtilen çeşit mi diye bakar
    • PhpToken::isIgnorable - Dizgeciğin PHP çözümleyicisi tarafından yoksayılabilir olup olmadığına bakar
    • PhpToken::tokenize - Belirtilen kaynağı PhpToken nesneleri tarafından temsil edilen PHP dizgeciklerine böler
    • PhpToken::__construct - Yeni bir PhpToken nesnesi döndürür
    • PhpToken::__toString - Dizgeciğin metinsel gösterimini döndürür
    • phpversion - Çalışan PHP'nin sürümünü döndürür
    • php_ini_loaded_file - Yüklü php.ini dosyasının dosya yolunu döndürür
    • php_ini_scanned_files - Ek ini dizininden ayrıştırılan dosyaların listesi ile döner
    • php_sapi_name - HTTP sunucusu ile PHP arasındaki arayüzün türünü döndürür
    • php_strip_whitespace - Boşlukları ve açıklamaları ayıklanmış kaynak kodla döner
    • php_uname - PHP'nin çalıştığı işletim sistemi hakkında bilgi döndürür
    • php_user_filter::filter - Süzgeç uygulanırken çağrılır
    • php_user_filter::onClose - Süzgeç kapanışında çağrılır
    • php_user_filter::onCreate - Süzgeç oluşturulurken çağrılır
    • pi - Get value of pi
    • png2wbmp - Bir PNG dosyasını WBMP dosyasına dönüştürür
    • Pool::collect - Collect references to completed tasks
    • Pool::resize - Resize the Pool
    • Pool::shutdown - Shutdown all workers
    • Pool::submit - Submits an object for execution
    • Pool::submitTo - Submits a task to a specific worker for execution
    • Pool::__construct - Creates a new Pool of Workers
    • popen - Bir süreç tanıtıcısı açar
    • pos - current işlevinin takma adıdır
    • posix_access - Bir dosyanın izinlerine bakar
    • posix_ctermid - Denetim uçbiriminin dosya yolunu döndürür
    • posix_eaccess - Determine accessibility of a file
    • posix_errno - posix_get_last_error işlevinin takma adıdır
    • posix_fpathconf - Returns the value of a configurable limit
    • posix_getcwd - Çalışılan dizinin tam yolunu döndürür
    • posix_getegid - Çalışan sürecin etkin grup kimliğini döndürür
    • posix_geteuid - Çalışan sürecin etkin kullanıcı kimliğini döndürür
    • posix_getgid - Çalışan sürecin gerçek grup kimliğini döndürür
    • posix_getgrgid - Grup kimliği belirtilen grup hakkında bilgi verir
    • posix_getgrnam - İsmi belirtilen grup hakkında bilgi verir
    • posix_getgroups - Çalışan sürecin üyesi olduğu grupları döndürür
    • posix_getlogin - Oturumu açan kullanıcının ismini döndürür
    • posix_getpgid - Süreç kimliği belirtilen sürecin süreç grup kimliğini döndürür
    • posix_getpgrp - Çalışan sürecin süreç grup kimliğini döndürür
    • posix_getpid - Çalışan sürecin süreç kimliğini döndürür
    • posix_getppid - Üst süreç kimliğini döndürür
    • posix_getpwnam - Kullanıcı adı belirtilen kullanıcı hakkında bilgi döndürür
    • posix_getpwuid - Kullanıcı kimliği belirtilen kullanıcı hakkında bilgi döndürür
    • posix_getrlimit - Sistem özkaynak sınırları hakkında bilgi verir
    • posix_getsid - Geçerli sürecin oturum kimliğini döndürür
    • posix_getuid - Geçerli sürecin gerçek kullanıcı kimliğini döndürür
    • posix_get_last_error - Başarısız olan son POSIX işlevinden atanan hata numarasını döndürür
    • posix_initgroups - Grup erişim listesini hesaplar
    • posix_isatty - Dosya tanıtıcısı bir etkileşimli uçbirimle ilişkili mi diye bakar
    • posix_kill - Bir sürece bir sinyal gönderir
    • posix_mkfifo - Bir isimli boru dosyası (FIFO) oluşturur
    • posix_mknod - Özel veya sıralı (POSIX.1) bir dosya oluşturur
    • posix_pathconf - Returns the value of a configurable limit
    • posix_setegid - Geçerli sürecin etkin grup kimliğini belirler
    • posix_seteuid - Geçerli sürecin etkin kullanıcı kimliğini belirler
    • posix_setgid - Geçerli sürecin grup kimliğini tanımlar
    • posix_setpgid - İş denetimi için süreç grup kimliğini tanımlar
    • posix_setrlimit - Sistem özkaynak sınırlarını tanımlar
    • posix_setsid - Geçerli süreci bir oturumun lider süreci haline getirir
    • posix_setuid - Geçerli sürecin kullanıcı kimliğini tanımlar
    • posix_strerror - Belirtilen hata kodu ile ilgili sistem hata iletisini döndürür
    • posix_sysconf - Returns system runtime information
    • posix_times - Süreçle ilgili işlemci zamanlarını döndürür
    • posix_ttyname - Uçbirim aygıt ismini belirler
    • posix_uname - Sistem hakkında bilgi verir
    • pow - Exponential expression
    • preg_filter - Bir düzenli ifade arama ve değiştirmesi yapar
    • preg_grep - Düzenli ifadeyle eşleşenleri içeren bir dizi döndürür
    • preg_last_error - Son PCRE düzenli ifade aramasından dönen hatayı döndürür
    • preg_last_error_msg - Son PCRE düzenli ifade işleminin hata iletisini döndürür
    • preg_match - Bir düzenli ifadeyi eşleştirmeye çalışır
    • preg_match_all - Kapsamlı bir düzenli ifade eşleştirmesi yapar
    • preg_quote - Düzenli ifadelerin özel karakterlerini önceler
    • preg_replace - Düzenli ifadeye göre dizgede değişiklik yapar
    • preg_replace_callback - Geriçağırım işlevi kullanarak düzenli ifadeye göre dizgede değişiklik yapar
    • preg_replace_callback_array - Geriçağırım kullanarak düzenli ifade arama ve değiştirmesi yapar
    • preg_split - Dizgeyi düzenli ifadeye göre böler
    • prev - Dahili dizi göstericisini bir geriletir
    • print - Bir dizge çıktılar
    • printf - Biçemli bir dizge çıktılar
    • print_r - Bir değişkenin insanlarca okunabilecek gösterimini basar
    • proc_close - proc_open tarafından açılmış bir süreci kapatır ve sürecin çıkış kodunu döndürür
    • proc_get_status - proc_open tarafından açılmış bir süreç hakkında bilgi döndürür
    • proc_nice - Çalışan sürecin önceliğini değiştirir
    • proc_open - Bir komutu çalıştırır ve G/Ç için bir dosya tanıtıcı açar
    • proc_terminate - proc_open ile açılmış bir süreci öldürür
    • property_exists - Bir nesne veya sınıfın belirtilen özelliğe sahip olup olmadığına bakar
    • pspell_add_to_personal - Add the word to a personal wordlist
    • pspell_add_to_session - Add the word to the wordlist in the current session
    • pspell_check - Check a word
    • pspell_clear_session - Clear the current session
    • pspell_config_create - Create a config used to open a dictionary
    • pspell_config_data_dir - Location of language data files
    • pspell_config_dict_dir - Location of the main word list
    • pspell_config_ignore - Ignore words less than N characters long
    • pspell_config_mode - Change the mode number of suggestions returned
    • pspell_config_personal - Set a file that contains personal wordlist
    • pspell_config_repl - Set a file that contains replacement pairs
    • pspell_config_runtogether - Consider run-together words as valid compounds
    • pspell_config_save_repl - Determine whether to save a replacement pairs list along with the wordlist
    • pspell_new - Load a new dictionary
    • pspell_new_config - Load a new dictionary with settings based on a given config
    • pspell_new_personal - Load a new dictionary with personal wordlist
    • pspell_save_wordlist - Save the personal wordlist to a file
    • pspell_store_replacement - Store a replacement pair for a word
    • pspell_suggest - Suggest spellings of a word
    • ps_add_bookmark - Add bookmark to current page
    • ps_add_launchlink - Adds link which launches file
    • ps_add_locallink - Adds link to a page in the same document
    • ps_add_note - Adds note to current page
    • ps_add_pdflink - Adds link to a page in a second pdf document
    • ps_add_weblink - Adds link to a web location
    • ps_arc - Draws an arc counterclockwise
    • ps_arcn - Draws an arc clockwise
    • ps_begin_page - Start a new page
    • ps_begin_pattern - Start a new pattern
    • ps_begin_template - Start a new template
    • ps_circle - Draws a circle
    • ps_clip - Clips drawing to current path
    • ps_close - Closes a PostScript document
    • ps_closepath - Closes path
    • ps_closepath_stroke - Closes and strokes path
    • ps_close_image - Closes image and frees memory
    • ps_continue_text - Continue text in next line
    • ps_curveto - Draws a curve
    • ps_delete - Deletes all resources of a PostScript document
    • ps_end_page - End a page
    • ps_end_pattern - End a pattern
    • ps_end_template - End a template
    • ps_fill - Fills the current path
    • ps_fill_stroke - Fills and strokes the current path
    • ps_findfont - Loads a font
    • ps_get_buffer - Fetches the full buffer containig the generated PS data
    • ps_get_parameter - Gets certain parameters
    • ps_get_value - Gets certain values
    • ps_hyphenate - Hyphenates a word
    • ps_include_file - Reads an external file with raw PostScript code
    • ps_lineto - Draws a line
    • ps_makespotcolor - Create spot color
    • ps_moveto - Sets current point
    • ps_new - Creates a new PostScript document object
    • ps_open_file - Opens a file for output
    • ps_open_image - Reads an image for later placement
    • ps_open_image_file - Opens image from file
    • ps_open_memory_image - Takes an GD image and returns an image for placement in a PS document
    • ps_place_image - Places image on the page
    • ps_rect - Draws a rectangle
    • ps_restore - Restore previously save context
    • ps_rotate - Sets rotation factor
    • ps_save - Save current context
    • ps_scale - Sets scaling factor
    • ps_setcolor - Sets current color
    • ps_setdash - Sets appearance of a dashed line
    • ps_setflat - Sets flatness
    • ps_setfont - Sets font to use for following output
    • ps_setgray - Sets gray value
    • ps_setlinecap - Sets appearance of line ends
    • ps_setlinejoin - Sets how contected lines are joined
    • ps_setlinewidth - Sets width of a line
    • ps_setmiterlimit - Sets the miter limit
    • ps_setoverprintmode - Sets overprint mode
    • ps_setpolydash - Sets appearance of a dashed line
    • ps_set_border_color - Sets color of border for annotations
    • ps_set_border_dash - Sets length of dashes for border of annotations
    • ps_set_border_style - Sets border style of annotations
    • ps_set_info - Sets information fields of document
    • ps_set_parameter - Sets certain parameters
    • ps_set_text_pos - Sets position for text output
    • ps_set_value - Sets certain values
    • ps_shading - Creates a shading for later use
    • ps_shading_pattern - Creates a pattern based on a shading
    • ps_shfill - Fills an area with a shading
    • ps_show - Output text
    • ps_show2 - Output a text at current position
    • ps_show_boxed - Output text in a box
    • ps_show_xy - Output text at given position
    • ps_show_xy2 - Output text at position
    • ps_stringwidth - Gets width of a string
    • ps_string_geometry - Gets geometry of a string
    • ps_stroke - Draws the current path
    • ps_symbol - Output a glyph
    • ps_symbol_name - Gets name of a glyph
    • ps_symbol_width - Gets width of a glyph
    • ps_translate - Sets translation
    • putenv - Bir ortam değişkenine değer atar
  • q
    • QuickHashIntHash::add - This method adds a new entry to the hash
    • QuickHashIntHash::delete - This method deletes an entry from the hash
    • QuickHashIntHash::exists - This method checks whether a key is part of the hash
    • QuickHashIntHash::get - This method retrieves a value from the hash by its key
    • QuickHashIntHash::getSize - Returns the number of elements in the hash
    • QuickHashIntHash::loadFromFile - This factory method creates a hash from a file
    • QuickHashIntHash::loadFromString - This factory method creates a hash from a string
    • QuickHashIntHash::saveToFile - This method stores an in-memory hash to disk
    • QuickHashIntHash::saveToString - This method returns a serialized version of the hash
    • QuickHashIntHash::set - This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
    • QuickHashIntHash::update - This method updates an entry in the hash with a new value
    • QuickHashIntHash::__construct - Creates a new QuickHashIntHash object
    • QuickHashIntSet::add - This method adds a new entry to the set
    • QuickHashIntSet::delete - This method deletes an entry from the set
    • QuickHashIntSet::exists - This method checks whether a key is part of the set
    • QuickHashIntSet::getSize - Returns the number of elements in the set
    • QuickHashIntSet::loadFromFile - This factory method creates a set from a file
    • QuickHashIntSet::loadFromString - This factory method creates a set from a string
    • QuickHashIntSet::saveToFile - This method stores an in-memory set to disk
    • QuickHashIntSet::saveToString - This method returns a serialized version of the set
    • QuickHashIntSet::__construct - Creates a new QuickHashIntSet object
    • QuickHashIntStringHash::add - This method adds a new entry to the hash
    • QuickHashIntStringHash::delete - This method deletes an entry from the hash
    • QuickHashIntStringHash::exists - This method checks whether a key is part of the hash
    • QuickHashIntStringHash::get - This method retrieves a value from the hash by its key
    • QuickHashIntStringHash::getSize - Returns the number of elements in the hash
    • QuickHashIntStringHash::loadFromFile - This factory method creates a hash from a file
    • QuickHashIntStringHash::loadFromString - This factory method creates a hash from a string
    • QuickHashIntStringHash::saveToFile - This method stores an in-memory hash to disk
    • QuickHashIntStringHash::saveToString - This method returns a serialized version of the hash
    • QuickHashIntStringHash::set - This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
    • QuickHashIntStringHash::update - This method updates an entry in the hash with a new value
    • QuickHashIntStringHash::__construct - Creates a new QuickHashIntStringHash object
    • QuickHashStringIntHash::add - This method adds a new entry to the hash
    • QuickHashStringIntHash::delete - This method deletes an entry from the hash
    • QuickHashStringIntHash::exists - This method checks whether a key is part of the hash
    • QuickHashStringIntHash::get - This method retrieves a value from the hash by its key
    • QuickHashStringIntHash::getSize - Returns the number of elements in the hash
    • QuickHashStringIntHash::loadFromFile - This factory method creates a hash from a file
    • QuickHashStringIntHash::loadFromString - This factory method creates a hash from a string
    • QuickHashStringIntHash::saveToFile - This method stores an in-memory hash to disk
    • QuickHashStringIntHash::saveToString - This method returns a serialized version of the hash
    • QuickHashStringIntHash::set - This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
    • QuickHashStringIntHash::update - This method updates an entry in the hash with a new value
    • QuickHashStringIntHash::__construct - Creates a new QuickHashStringIntHash object
    • quoted_printable_decode - ASCII olarak basılabilir (quoted-printable) bir dizgenin 8 bitlik sürümünü döndürür
    • quoted_printable_encode - 8 bitlik bir dizgenin ASCII olarak basılabilir (quoted-printable) sürümünü döndürür
    • quotemeta - Özel anlamı olan karakterleri tersbölü ile önceler
  • r
    • rad2deg - Converts the radian number to the equivalent number in degrees
    • radius_acct_open - Creates a Radius handle for accounting
    • radius_add_server - Adds a server
    • radius_auth_open - Creates a Radius handle for authentication
    • radius_close - Frees all ressources
    • radius_config - Causes the library to read the given configuration file
    • radius_create_request - Create accounting or authentication request
    • radius_cvt_addr - Converts raw data to IP-Address
    • radius_cvt_int - Converts raw data to integer
    • radius_cvt_string - Converts raw data to string
    • radius_demangle - Demangles data
    • radius_demangle_mppe_key - Derives mppe-keys from mangled data
    • radius_get_attr - Extracts an attribute
    • radius_get_tagged_attr_data - Extracts the data from a tagged attribute
    • radius_get_tagged_attr_tag - Extracts the tag from a tagged attribute
    • radius_get_vendor_attr - Extracts a vendor specific attribute
    • radius_put_addr - Attaches an IP address attribute
    • radius_put_attr - Attaches a binary attribute
    • radius_put_int - Attaches an integer attribute
    • radius_put_string - Attaches a string attribute
    • radius_put_vendor_addr - Attaches a vendor specific IP address attribute
    • radius_put_vendor_attr - Attaches a vendor specific binary attribute
    • radius_put_vendor_int - Attaches a vendor specific integer attribute
    • radius_put_vendor_string - Attaches a vendor specific string attribute
    • radius_request_authenticator - Returns the request authenticator
    • radius_salt_encrypt_attr - Salt-encrypts a value
    • radius_send_request - Sends the request and waits for a reply
    • radius_server_secret - Returns the shared secret
    • radius_strerror - Returns an error message
    • rand - Generate a random integer
    • Random\Engine::generate - Generates randomness
    • Random\Engine\Mt19937::generate - Generate 32 bits of randomness
    • Random\Engine\Mt19937::__construct - Constructs a new Mt19937 engine
    • Random\Engine\Mt19937::__debugInfo - Returns the internal state of the engine
    • Random\Engine\Mt19937::__serialize - Serializes the Mt19937 object
    • Random\Engine\Mt19937::__unserialize - Deserializes the data parameter into a Mt19937 object
    • Random\Engine\PcgOneseq128XslRr64::generate - Generate 64 bits of randomness
    • Random\Engine\PcgOneseq128XslRr64::jump - Efficiently move the engine ahead multiple steps
    • Random\Engine\PcgOneseq128XslRr64::__construct - Constructs a new PCG Oneseq 128 XSL RR 64 engine
    • Random\Engine\PcgOneseq128XslRr64::__debugInfo - Returns the internal state of the engine
    • Random\Engine\PcgOneseq128XslRr64::__serialize - Serializes the PcgOneseq128XslRr64 object
    • Random\Engine\PcgOneseq128XslRr64::__unserialize - Deserializes the data parameter into a PcgOneseq128XslRr64 object
    • Random\Engine\Secure::generate - Generate cryptographically secure randomness
    • Random\Engine\Xoshiro256StarStar::generate - Generate 64 bits of randomness
    • Random\Engine\Xoshiro256StarStar::jump - Efficiently move the engine ahead by 2^128 steps
    • Random\Engine\Xoshiro256StarStar::jumpLong - Efficiently move the engine ahead by 2^192 steps
    • Random\Engine\Xoshiro256StarStar::__construct - Constructs a new xoshiro256** engine
    • Random\Engine\Xoshiro256StarStar::__debugInfo - Returns the internal state of the engine
    • Random\Engine\Xoshiro256StarStar::__serialize - Serializes the Xoshiro256StarStar object
    • Random\Engine\Xoshiro256StarStar::__unserialize - Deserializes the data parameter into a Xoshiro256StarStar object
    • Random\Randomizer::getBytes - Get random bytes
    • Random\Randomizer::getBytesFromString - Get random bytes from a source string
    • Random\Randomizer::getFloat - Get a uniformly selected float
    • Random\Randomizer::getInt - Get a uniformly selected integer
    • Random\Randomizer::nextFloat - Get a float from the right-open interval [0.0, 1.0)
    • Random\Randomizer::nextInt - Get a positive integer
    • Random\Randomizer::pickArrayKeys - Select random array keys
    • Random\Randomizer::shuffleArray - Get a permutation of an array
    • Random\Randomizer::shuffleBytes - Get a byte-wise permutation of a string
    • Random\Randomizer::__construct - Constructs a new Randomizer
    • Random\Randomizer::__serialize - Serializes the Randomizer object
    • Random\Randomizer::__unserialize - Deserializes the data parameter into a Randomizer object
    • random_bytes - Get cryptographically secure random bytes
    • random_int - Get a cryptographically secure, uniformly selected integer
    • range - Belli bir eleman aralığını içeren bir dizi oluşturur
    • RarArchive::close - Close RAR archive and free all resources
    • RarArchive::getComment - Get comment text from the RAR archive
    • RarArchive::getEntries - Get full list of entries from the RAR archive
    • RarArchive::getEntry - Get entry object from the RAR archive
    • RarArchive::isBroken - Test whether an archive is broken (incomplete)
    • RarArchive::isSolid - Check whether the RAR archive is solid
    • RarArchive::open - Open RAR archive
    • RarArchive::setAllowBroken - Whether opening broken archives is allowed
    • RarArchive::__toString - Get text representation
    • RarEntry::extract - Extract entry from the archive
    • RarEntry::getAttr - Get attributes of the entry
    • RarEntry::getCrc - Get CRC of the entry
    • RarEntry::getFileTime - Get entry last modification time
    • RarEntry::getHostOs - Get entry host OS
    • RarEntry::getMethod - Get pack method of the entry
    • RarEntry::getName - Get name of the entry
    • RarEntry::getPackedSize - Get packed size of the entry
    • RarEntry::getStream - Get file handler for entry
    • RarEntry::getUnpackedSize - Get unpacked size of the entry
    • RarEntry::getVersion - Get minimum version of RAR program required to unpack the entry
    • RarEntry::isDirectory - Test whether an entry represents a directory
    • RarEntry::isEncrypted - Test whether an entry is encrypted
    • RarEntry::__toString - Get text representation of entry
    • RarException::isUsingExceptions - Check whether error handling with exceptions is in use
    • RarException::setUsingExceptions - Activate and deactivate error handling with exceptions
    • rar_wrapper_cache_stats - Cache hits and misses for the URL wrapper
    • rawurldecode - URL kodlamalı dizgenin kodlamasını kaldırır
    • rawurlencode - RFC 3986'ya uygun URL kodlaması yapar
    • readdir - Dizinden bir girdinin ismini okur
    • readfile - Bir dosyayı çıktılar
    • readgzfile - Bir .gz dosyası çıktılar
    • readline - Reads a line
    • readline_add_history - Adds a line to the history
    • readline_callback_handler_install - Initializes the readline callback interface and terminal, prints the prompt and returns immediately
    • readline_callback_handler_remove - Removes a previously installed callback handler and restores terminal settings
    • readline_callback_read_char - Reads a character and informs the readline callback interface when a line is received
    • readline_clear_history - Clears the history
    • readline_completion_function - Registers a completion function
    • readline_info - Gets/sets various internal readline variables
    • readline_list_history - Lists the history
    • readline_on_new_line - Inform readline that the cursor has moved to a new line
    • readline_read_history - Reads the history
    • readline_redisplay - Redraws the display
    • readline_write_history - Writes the history
    • readlink - Bir sembolik bağın hedefi ile döner
    • read_exif_data - exif_read_data işlevinin takma adıdır
    • realpath - Normalleştirilmiş mutlak dosya yolunu döndürür
    • realpath_cache_get - Mutlak dosya yolu önbellek girdilerini döndürür
    • realpath_cache_size - Mutlak dosya yolu önbellek boyunu döndürür
    • recode - recode_string işlevinin takma adıdır
    • recode_file - Dosyadan dosyaya karakter kodlaması dönüşümü yapar
    • recode_string - Yapılan isteğe bağlı olarak bir dizgeyi yeniden kodlar
    • RecursiveArrayIterator::getChildren - Returns an iterator for the current entry if it is an array or an object
    • RecursiveArrayIterator::hasChildren - Returns whether current entry is an array or an object
    • RecursiveCachingIterator::getChildren - Return the inner iterator's children as a RecursiveCachingIterator
    • RecursiveCachingIterator::hasChildren - Check whether the current element of the inner iterator has children
    • RecursiveCachingIterator::__construct - Construct
    • RecursiveCallbackFilterIterator::getChildren - Return the inner iterator's children contained in a RecursiveCallbackFilterIterator
    • RecursiveCallbackFilterIterator::hasChildren - Check whether the inner iterator's current element has children
    • RecursiveCallbackFilterIterator::__construct - Create a RecursiveCallbackFilterIterator from a RecursiveIterator
    • RecursiveDirectoryIterator::getChildren - Returns an iterator for the current entry if it is a directory
    • RecursiveDirectoryIterator::getSubPath - Get sub path
    • RecursiveDirectoryIterator::getSubPathname - Get sub path and name
    • 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
    • RecursiveDirectoryIterator::__construct - Constructs a RecursiveDirectoryIterator
    • RecursiveFilterIterator::getChildren - Return the inner iterator's children contained in a RecursiveFilterIterator
    • RecursiveFilterIterator::hasChildren - Check whether the inner iterator's current element has children
    • RecursiveFilterIterator::__construct - Create a RecursiveFilterIterator from a RecursiveIterator
    • RecursiveIterator::getChildren - Returns an iterator for the current entry
    • RecursiveIterator::hasChildren - Returns if an iterator can be created for the current entry
    • RecursiveIteratorIterator::beginChildren - Begin children
    • RecursiveIteratorIterator::beginIteration - Begin Iteration
    • RecursiveIteratorIterator::callGetChildren - Get children
    • RecursiveIteratorIterator::callHasChildren - Has children
    • RecursiveIteratorIterator::current - Access the current element value
    • RecursiveIteratorIterator::endChildren - End children
    • RecursiveIteratorIterator::endIteration - End Iteration
    • RecursiveIteratorIterator::getDepth - Get the current depth of the recursive iteration
    • RecursiveIteratorIterator::getInnerIterator - Get inner iterator
    • RecursiveIteratorIterator::getMaxDepth - Get max depth
    • RecursiveIteratorIterator::getSubIterator - The current active sub iterator
    • RecursiveIteratorIterator::key - Access the current key
    • RecursiveIteratorIterator::next - Move forward to the next element
    • RecursiveIteratorIterator::nextElement - Next element
    • RecursiveIteratorIterator::rewind - Rewind the iterator to the first element of the top level inner iterator
    • RecursiveIteratorIterator::setMaxDepth - Set max depth
    • RecursiveIteratorIterator::valid - Check whether the current position is valid
    • RecursiveIteratorIterator::__construct - Construct a RecursiveIteratorIterator
    • RecursiveRegexIterator::getChildren - Returns an iterator for the current entry
    • RecursiveRegexIterator::hasChildren - Returns whether an iterator can be obtained for the current entry
    • RecursiveRegexIterator::__construct - Creates a new RecursiveRegexIterator
    • RecursiveTreeIterator::beginChildren - Begin children
    • RecursiveTreeIterator::beginIteration - Begin iteration
    • RecursiveTreeIterator::callGetChildren - Get children
    • RecursiveTreeIterator::callHasChildren - Has children
    • RecursiveTreeIterator::current - Get current element
    • RecursiveTreeIterator::endChildren - End children
    • RecursiveTreeIterator::endIteration - End iteration
    • RecursiveTreeIterator::getEntry - Get current entry
    • RecursiveTreeIterator::getPostfix - Get the postfix
    • RecursiveTreeIterator::getPrefix - Get the prefix
    • RecursiveTreeIterator::key - Get the key of the current element
    • RecursiveTreeIterator::next - Move to next element
    • RecursiveTreeIterator::nextElement - Next element
    • RecursiveTreeIterator::rewind - Rewind iterator
    • RecursiveTreeIterator::setPostfix - Set postfix
    • RecursiveTreeIterator::setPrefixPart - Set a part of the prefix
    • RecursiveTreeIterator::valid - Check validity
    • RecursiveTreeIterator::__construct - Construct a RecursiveTreeIterator
    • Reflection::export - Sınıfı ihraç eder
    • Reflection::getModifierNames - Değiştirici isimlerini döndürür
    • ReflectionAttribute::getArguments - Gets arguments passed to attribute
    • ReflectionAttribute::getName - Gets attribute name
    • ReflectionAttribute::getTarget - Returns the target of the attribute as bitmask
    • ReflectionAttribute::isRepeated - Returns whether the attribute of this name has been repeated on a code element
    • ReflectionAttribute::newInstance - Instantiates the attribute class represented by this ReflectionAttribute class and arguments
    • ReflectionAttribute::__construct - Private constructor to disallow direct instantiation
    • ReflectionClass::export - Bir sınıf ihraç eder
    • ReflectionClass::getAttributes - Gets Attributes
    • ReflectionClass::getConstant - Tanımlı sabiti döndürür
    • ReflectionClass::getConstants - Sabitleri döndürür
    • ReflectionClass::getConstructor - Sınıfın kurucusunu döndürür
    • ReflectionClass::getDefaultProperties - Sınıftaki öntanımlı özellikleri (miras alınanlar dahil) döndürür
    • ReflectionClass::getDocComment - Belgelendirici açıklamaları döndürür
    • ReflectionClass::getEndLine - Son satırın numarasını döndürür
    • ReflectionClass::getExtension - Sınıfı tanımlayan eklenti için bir ReflectionExtension örneği döndürür
    • ReflectionClass::getExtensionName - Sınıfı tanımlayan eklentinin ismini döndürür
    • ReflectionClass::getFileName - Sınıfın tanımlandığı dosyanın adını döndürür
    • ReflectionClass::getInterfaceNames - Arayüz isimlerini döndürür
    • ReflectionClass::getInterfaces - Arayüzleri döndürür
    • ReflectionClass::getMethod - Bir sınıf yöntemi için bir ReflectionMethod nesnesi döndürür
    • ReflectionClass::getMethods - Yöntemleri dizi olarak döndürür
    • ReflectionClass::getModifiers - Sınıf değiştiricilerini döndürür
    • ReflectionClass::getName - Sınıf ismini döndürür
    • ReflectionClass::getNamespaceName - İsim alanı ismini döndürür
    • ReflectionClass::getParentClass - Ebeveyn sınıfı döndürür
    • ReflectionClass::getProperties - Özellikleri döndürür
    • ReflectionClass::getProperty - Bir sınıf özelliği için bir ReflectionProperty döndürür
    • ReflectionClass::getReflectionConstant - Bir sınıfın sabiti için ReflectionClassConstant sınıfı
    • ReflectionClass::getReflectionConstants - Sınıf sabitlerini döndürür
    • ReflectionClass::getShortName - Kısa adı döndürür
    • ReflectionClass::getStartLine - Başlangıç satır numarasını döndürür
    • ReflectionClass::getStaticProperties - Duruk özellikleri döndürür
    • ReflectionClass::getStaticPropertyValue - Duruk özelliğin değerini döndürür
    • ReflectionClass::getTraitAliases - Returns an array of trait aliases
    • ReflectionClass::getTraitNames - Returns an array of names of traits used by this class
    • ReflectionClass::getTraits - Returns an array of traits used by this class
    • ReflectionClass::hasConstant - Sabit tanımlı mı diye bakar
    • ReflectionClass::hasMethod - Yöntem tanımlı mı diye bakar
    • ReflectionClass::hasProperty - Özellik tanımlı mı diye bakar
    • ReflectionClass::implementsInterface - Arayüz gerçeklenmiş mi diye bakar
    • ReflectionClass::inNamespace - Sınıf isim alanında mı diye bakar
    • ReflectionClass::isAbstract - Sınıf soyut mu diye bakar
    • ReflectionClass::isAnonymous - Checks if class is anonymous
    • ReflectionClass::isCloneable - Returns whether this class is cloneable
    • ReflectionClass::isEnum - Returns whether this is an enum
    • ReflectionClass::isFinal - Sınıf bir final sınıf mı diye bakar
    • ReflectionClass::isInstance - Sınıf bir nesne örneği mi diye bakar
    • ReflectionClass::isInstantiable - Sınıf örneklenebilir mi diye bakar
    • ReflectionClass::isInterface - Nesne bir arayüz mü diye bakar
    • ReflectionClass::isInternal - Sınıf yerleşik mi yoksa kullanıcı tanımlı mı diye bakar
    • ReflectionClass::isIterable - Sınıf yinelenebilir mi diye bakar
    • ReflectionClass::isIterateable - ReflectionClass::isIterable için takma ada
    • ReflectionClass::isReadOnly - Checks if class is readonly
    • ReflectionClass::isSubclassOf - Sınıf bir alt sınıf mı diye bakar
    • ReflectionClass::isTrait - Returns whether this is a trait
    • ReflectionClass::isUserDefined - Sınıf bir kullanıcı tanımlı sınıf mı diye bakar
    • ReflectionClass::newInstance - Belirtilen bağımsız değişkenlerden yeni bir sınıf örneği oluşturur
    • ReflectionClass::newInstanceArgs - Belirtilen bağımsız değişkenlerden yeni bir sınıf örneği oluşturur
    • ReflectionClass::newInstanceWithoutConstructor - Creates a new class instance without invoking the constructor
    • ReflectionClass::setStaticPropertyValue - Statik özelliğe değer atar
    • ReflectionClass::__construct - Bir ReflectionClass nesnesi oluşturur
    • ReflectionClass::__toString - ReflectionClass nesnesinin dizgesel gösterimini döndürür
    • ReflectionClassConstant::export - Export
    • ReflectionClassConstant::getAttributes - Gets Attributes
    • ReflectionClassConstant::getDeclaringClass - Gets declaring class
    • ReflectionClassConstant::getDocComment - Gets doc comments
    • ReflectionClassConstant::getModifiers - Gets the class constant modifiers
    • ReflectionClassConstant::getName - Get name of the constant
    • ReflectionClassConstant::getValue - Gets value
    • ReflectionClassConstant::isEnumCase - Checks if class constant is an Enum case
    • ReflectionClassConstant::isFinal - Checks if class constant is final
    • ReflectionClassConstant::isPrivate - Checks if class constant is private
    • ReflectionClassConstant::isProtected - Checks if class constant is protected
    • ReflectionClassConstant::isPublic - Checks if class constant is public
    • ReflectionClassConstant::__construct - Constructs a ReflectionClassConstant
    • ReflectionClassConstant::__toString - Returns the string representation of the ReflectionClassConstant object
    • ReflectionEnum::getBackingType - Gets the backing type of an Enum, if any
    • ReflectionEnum::getCase - Returns a specific case of an Enum
    • ReflectionEnum::getCases - Returns a list of all cases on an Enum
    • ReflectionEnum::hasCase - Checks for a case on an Enum
    • ReflectionEnum::isBacked - Determines if an Enum is a Backed Enum
    • ReflectionEnum::__construct - Instantiates a ReflectionEnum object
    • ReflectionEnumBackedCase::getBackingValue - Gets the scalar value backing this Enum case
    • ReflectionEnumBackedCase::__construct - Instantiates a ReflectionEnumBackedCase object
    • ReflectionEnumUnitCase::getEnum - Gets the reflection of the enum of this case
    • ReflectionEnumUnitCase::getValue - Gets the enum case object described by this reflection object
    • ReflectionEnumUnitCase::__construct - Instantiates a ReflectionEnumUnitCase object
    • ReflectionExtension::export - Sınıfı ihraç eder
    • ReflectionExtension::getClasses - Eklentinin sınıflarını döndürür
    • ReflectionExtension::getClassNames - Eklentide tanımlı sınıf isimlerini döndürür
    • ReflectionExtension::getConstants - Eklentinin sabitlerini döndürür
    • ReflectionExtension::getDependencies - Bağımlılıkları döndürür
    • ReflectionExtension::getFunctions - Eklenti işlevlerini döndürür
    • ReflectionExtension::getINIEntries - Eklentinin ini girdilerini döndürür
    • ReflectionExtension::getName - Eklenti ismini döndürür
    • ReflectionExtension::getVersion - Eklentinin sürüm bilgisini döndürür
    • ReflectionExtension::info - Eklenti bilgilerini basar
    • ReflectionExtension::isPersistent - Returns whether this extension is persistent
    • ReflectionExtension::isTemporary - Returns whether this extension is temporary
    • ReflectionExtension::__clone - Reflection nesneleri kopyalanamaz
    • ReflectionExtension::__construct - Bir ReflectionExtension nesnesi oluşturur
    • ReflectionExtension::__toString - Dizgesel tepkiyi görselleştirir
    • ReflectionFiber::getCallable - Gets the callable used to create the Fiber
    • ReflectionFiber::getExecutingFile - Get the file name of the current execution point
    • ReflectionFiber::getExecutingLine - Get the line number of the current execution point
    • ReflectionFiber::getFiber - Get the reflected Fiber instance
    • ReflectionFiber::getTrace - Get the backtrace of the current execution point
    • ReflectionFiber::__construct - Constructs a ReflectionFiber object
    • ReflectionFunction::export - İşlevi ihraç eder
    • ReflectionFunction::getClosure - Returns a dynamically created closure for the function
    • ReflectionFunction::invoke - İşlevi çağırır
    • ReflectionFunction::invokeArgs - İşlev bağımsız değişkenlerini çağırır
    • ReflectionFunction::isAnonymous - Checks if a function is anonymous
    • ReflectionFunction::isDisabled - İşlevin iptal edilip edilmediğine bakar
    • ReflectionFunction::__construct - Bir ReflectionFunction nesnesi oluşturur
    • ReflectionFunction::__toString - İşlevin bağımsız değişken satırını dizgeleştirerek döndürür
    • ReflectionFunctionAbstract::getAttributes - Gets Attributes
    • ReflectionFunctionAbstract::getClosureScopeClass - Returns the scope class associated with the closure
    • ReflectionFunctionAbstract::getClosureThis - Returns this pointer bound to closure
    • ReflectionFunctionAbstract::getClosureUsedVariables - Returns an array of the used variables in the Closure
    • ReflectionFunctionAbstract::getDocComment - Belgelendirici açıklamaları döndürür
    • ReflectionFunctionAbstract::getEndLine - Son satır numarasını döndürür
    • ReflectionFunctionAbstract::getExtension - Eklenti bilgilerini döndürür
    • ReflectionFunctionAbstract::getExtensionName - Eklenti ismini döndürür
    • ReflectionFunctionAbstract::getFileName - İşlevin tanımladığı dosyanın ismini döndürür
    • ReflectionFunctionAbstract::getName - İşlev ismini döndürür
    • ReflectionFunctionAbstract::getNamespaceName - İsim alanı adını döndürür
    • ReflectionFunctionAbstract::getNumberOfParameters - Bağımsız değişken sayısını döndürür
    • ReflectionFunctionAbstract::getNumberOfRequiredParameters - Zorunlu bağımsız değişken sayısını döndürür
    • ReflectionFunctionAbstract::getParameters - Bağımsız değişkenleri döndürür
    • ReflectionFunctionAbstract::getReturnType - Gets the specified return type of a function
    • ReflectionFunctionAbstract::getShortName - İşlevin kısa ismini döndürür
    • ReflectionFunctionAbstract::getStartLine - Başlangıç satır numarasını döndürür
    • ReflectionFunctionAbstract::getStaticVariables - Duruk değişkenleri döndürür
    • ReflectionFunctionAbstract::getTentativeReturnType - Returns the tentative return type associated with the function
    • ReflectionFunctionAbstract::hasReturnType - Checks if the function has a specified return type
    • ReflectionFunctionAbstract::hasTentativeReturnType - Returns whether the function has a tentative return type
    • ReflectionFunctionAbstract::inNamespace - İşlev isim alanına ait mi diye bakar
    • ReflectionFunctionAbstract::isClosure - Bir anonim işlev mi diye bakar
    • ReflectionFunctionAbstract::isDeprecated - Kullanımı önerilmiyor mu diye bakar
    • ReflectionFunctionAbstract::isGenerator - Returns whether this function is a generator
    • ReflectionFunctionAbstract::isInternal - İşlev yerleşik mi diye bakar
    • ReflectionFunctionAbstract::isStatic - Checks if the function is static
    • ReflectionFunctionAbstract::isUserDefined - İşlev kullanıcı tanımlı bir işlev mi diye bakar
    • ReflectionFunctionAbstract::isVariadic - Checks if the function is variadic
    • ReflectionFunctionAbstract::returnsReference - İşlev dönüş değeri gönderimli mi diye bakar
    • ReflectionFunctionAbstract::__clone - İşlevi kopyalar
    • ReflectionFunctionAbstract::__toString - Nesnenin dizgesel tepkisini görselleştirir
    • ReflectionGenerator::getExecutingFile - Gets the file name of the currently executing generator
    • ReflectionGenerator::getExecutingGenerator - Gets the executing Generator object
    • ReflectionGenerator::getExecutingLine - Gets the currently executing line of the generator
    • ReflectionGenerator::getFunction - Gets the function name of the generator
    • ReflectionGenerator::getThis - Gets the $this value of the generator
    • ReflectionGenerator::getTrace - Gets the trace of the executing generator
    • ReflectionGenerator::__construct - Constructs a ReflectionGenerator object
    • ReflectionIntersectionType::getTypes - Returns the types included in the intersection type
    • ReflectionMethod::createFromMethodName - Creates a new ReflectionMethod
    • ReflectionMethod::export - Bir yöntem ihraç eder
    • ReflectionMethod::getClosure - Returns a dynamically created closure for the method
    • ReflectionMethod::getDeclaringClass - Yansıtılan yöntemin bildirildiği sınıfı döndürür
    • ReflectionMethod::getModifiers - Erişim değiştiricileri döndürür
    • ReflectionMethod::getPrototype - Yöntem bildirimini (varsa) döndürür
    • ReflectionMethod::hasPrototype - Returns whether a method has a prototype
    • ReflectionMethod::invoke - Yöntemi çağırır
    • ReflectionMethod::invokeArgs - Bağımsız değişkenlerini dizi içinde aktararak yöntemi çağırır
    • ReflectionMethod::isAbstract - Yöntem soyut mu diye bakar
    • ReflectionMethod::isConstructor - Yöntem bir kurucu mu diye bakar
    • ReflectionMethod::isDestructor - Yöntem bir yıkıcı mı diye bakar
    • ReflectionMethod::isFinal - Yöntem final olarak mı bildirilmiş diye bakar
    • ReflectionMethod::isPrivate - Yöntem private olarak mı bildirilmiş diye bakar
    • ReflectionMethod::isProtected - Yöntem protected olarak mı bildirilmiş diye bakar
    • ReflectionMethod::isPublic - Yöntem public olarak mı bildirilmiş diye bakar
    • ReflectionMethod::setAccessible - Set method accessibility
    • ReflectionMethod::__construct - Yeni bir ReflectionMethod nesnesi oluşturur
    • ReflectionMethod::__toString - Yansıtılan yöntemin dizgesel gösterimini döndürür
    • ReflectionNamedType::getName - Get the name of the type as a string
    • ReflectionNamedType::isBuiltin - Checks if it is a built-in type
    • ReflectionObject::export - Sınıfı ihraç eder
    • ReflectionObject::__construct - Bir ReflectionObject nesnesi oluşturur
    • ReflectionParameter::allowsNull - null değere izin veriliyor mu diye bakar
    • ReflectionParameter::canBePassedByValue - Returns whether this parameter can be passed by value
    • ReflectionParameter::export - Sınıfı ihraç eder
    • ReflectionParameter::getAttributes - Gets Attributes
    • ReflectionParameter::getClass - Yansıtılan bağımsız değişkenin ReflectionClass örneğini döndürür
    • ReflectionParameter::getDeclaringClass - Bildiren sınıfı döndürür
    • ReflectionParameter::getDeclaringFunction - Bildiren işlevi döndürür
    • ReflectionParameter::getDefaultValue - Bağımsız değişkenin öntanımlı değerini döndürür
    • ReflectionParameter::getDefaultValueConstantName - Returns the default value's constant name if default value is constant or null
    • ReflectionParameter::getName - Bağımsız değişkenin ismini döndürür
    • ReflectionParameter::getPosition - Bağımsız değişkenin konumunu döndürür
    • ReflectionParameter::getType - Gets a parameter's type
    • ReflectionParameter::hasType - Checks if parameter has a type
    • ReflectionParameter::isArray - Bağımsız değişken değeri bir dizi mi olacak diye bakar
    • ReflectionParameter::isCallable - Returns whether parameter MUST be callable
    • ReflectionParameter::isDefaultValueAvailable - Öntanımlı bir değerin kullanılabilir olup olmadığına bakar
    • ReflectionParameter::isDefaultValueConstant - Returns whether the default value of this parameter is a constant
    • ReflectionParameter::isOptional - Bağımsız değişken seçimlik mi diye bakar
    • ReflectionParameter::isPassedByReference - Bağımsız değişken gönderimli aktarılabilir mi diye bakar
    • ReflectionParameter::isVariadic - Checks if the parameter is variadic
    • ReflectionParameter::__clone - Nesneyi kopyalar
    • ReflectionParameter::__construct - Bir ReflectionParameter nesnesi oluşturur
    • ReflectionParameter::__toString - Dizgesel tepkiyi görselleştirir
    • ReflectionProperty::export - Özelliği ihraç eder
    • ReflectionProperty::getAttributes - Gets Attributes
    • ReflectionProperty::getDeclaringClass - Bildiren sınıfı döndürür
    • ReflectionProperty::getDefaultValue - Returns the default value declared for a property
    • ReflectionProperty::getDocComment - Özellik açıklamalarını döndürür
    • ReflectionProperty::getModifiers - Erişim değiştiricileri döndürür
    • ReflectionProperty::getName - Özelliğin ismini döndürür
    • ReflectionProperty::getType - Gets a property's type
    • ReflectionProperty::getValue - Özelliğin değerini döndürür
    • ReflectionProperty::hasDefaultValue - Checks if property has a default value declared
    • ReflectionProperty::hasType - Checks if property has a type
    • ReflectionProperty::isDefault - Özellik öntanımlı mı diye bakar
    • ReflectionProperty::isInitialized - Checks whether a property is initialized
    • ReflectionProperty::isPrivate - Özellik private olarak mı bildirilmiş diye bakar
    • ReflectionProperty::isPromoted - Checks if property is promoted
    • ReflectionProperty::isProtected - Özellik protected olarak mı bildirilmiş diye bakar
    • ReflectionProperty::isPublic - Özellik public olarak mı bildirilmiş diye bakar
    • ReflectionProperty::isReadOnly - Checks if property is readonly
    • ReflectionProperty::isStatic - Özellik duruk mu diye bakar
    • ReflectionProperty::setAccessible - Özelliği erişilebilir kılar
    • ReflectionProperty::setValue - Özelliğe değer atar
    • ReflectionProperty::__clone - Özelliği kopyalar
    • ReflectionProperty::__construct - Bir ReflectionProperty nesnesi oluşturur
    • ReflectionProperty::__toString - Dizgesel gösterimi döndürür
    • ReflectionReference::fromArrayElement - Create a ReflectionReference from an array element
    • ReflectionReference::getId - Get unique ID of a reference
    • ReflectionReference::__construct - Private constructor to disallow direct instantiation
    • ReflectionType::allowsNull - Checks if null is allowed
    • ReflectionType::__toString - To string
    • ReflectionUnionType::getTypes - Returns the types included in the union type
    • ReflectionZendExtension::export - Export
    • ReflectionZendExtension::getAuthor - Gets author
    • ReflectionZendExtension::getCopyright - Gets copyright
    • ReflectionZendExtension::getName - Gets name
    • ReflectionZendExtension::getURL - Gets URL
    • ReflectionZendExtension::getVersion - Gets version
    • ReflectionZendExtension::__clone - Clone handler
    • ReflectionZendExtension::__construct - Constructs a ReflectionZendExtension object
    • ReflectionZendExtension::__toString - To string handler
    • Reflector::export - Sınıfı ihraç eder
    • RegexIterator::accept - Get accept status
    • RegexIterator::getFlags - Get flags
    • RegexIterator::getMode - Returns operation mode
    • RegexIterator::getPregFlags - Returns the regular expression flags
    • RegexIterator::getRegex - Returns current regular expression
    • RegexIterator::setFlags - Sets the flags
    • RegexIterator::setMode - Sets the operation mode
    • RegexIterator::setPregFlags - Sets the regular expression flags
    • RegexIterator::__construct - Create a new RegexIterator
    • register_shutdown_function - Betiğin işi bittiğinde çalıştırılacak işlevi tanımlar
    • register_tick_function - Her tikte çalıştırılacak işlevi tanımlar
    • rename - Bir dosya veya dizinin ismini değiştirir
    • reset - Bir dizinin dahili göstericisini ilk elemana konumlar
    • ResourceBundle::count - Get number of elements in the bundle
    • ResourceBundle::create - Create a resource bundle
    • ResourceBundle::get - Get data from the bundle
    • ResourceBundle::getErrorCode - Get bundle's last error code
    • ResourceBundle::getErrorMessage - Get bundle's last error message
    • ResourceBundle::getLocales - Get supported locales
    • restore_error_handler - Bir önceki hata eylemcisini devreye sokar
    • restore_exception_handler - Bir önceki istisna eylemcisini devreye sokar
    • restore_include_path - include_path yönergesini eski değerine ayarlar
    • Result::getAffectedItemsCount - Get affected row count
    • Result::getAutoIncrementValue - Get autoincremented value
    • Result::getGeneratedIds - Get generated ids
    • Result::getWarnings - Get warnings from last operation
    • Result::getWarningsCount - Get warning count from last operation
    • Result::__construct - Result constructor
    • ReturnTypeWillChange::__construct - Yeni bir ReturnTypeWillChange özniteliği örneği oluşturur
    • rewind - Bir dosya tanıtıcısında konumu başa taşır
    • rewinddir - Dizin tanıtıcısını dizin başlangıcına konumlar
    • rmdir - Dizin siler
    • rnp_backend_string - Return cryptographic backend library name
    • rnp_backend_version - Return cryptographic backend library version
    • rnp_decrypt - Decrypt PGP message
    • rnp_dump_packets - Dump OpenPGP packets stream information in humand-readable format
    • rnp_dump_packets_to_json - Dump OpenPGP packets stream information to the JSON string
    • rnp_ffi_create - Create the top-level object used for interacting with the library
    • rnp_ffi_destroy - Destroy the top-level object used for interacting with the library
    • rnp_ffi_set_pass_provider - Set password provider callback function
    • rnp_import_keys - Import keys from PHP string to the keyring and receive JSON describing new/updated keys
    • rnp_import_signatures - Import standalone signatures to the keyring and receive JSON describing updated keys
    • rnp_key_export - Export a key
    • rnp_key_export_autocrypt - Export minimal key for autocrypt feature (just 5 packets: key, uid, signature, encryption subkey, signature)
    • rnp_key_export_revocation - Generate and export primary key revocation signature
    • rnp_key_get_info - Get information about the key
    • rnp_key_remove - Remove a key from keyring(s)
    • rnp_key_revoke - Revoke a key or subkey by generating and adding revocation signature
    • rnp_list_keys - Enumerate all keys present in a keyring by specified identifer type
    • rnp_load_keys - Load keys from PHP string
    • rnp_load_keys_from_path - Load keys from specified path
    • rnp_locate_key - Search for the key
    • rnp_op_encrypt - Encrypt message
    • rnp_op_generate_key - Generate key
    • rnp_op_sign - Perform signing operation on a binary data, return embedded signature(s)
    • rnp_op_sign_cleartext - Perform signing operation on a textual data, return cleartext signed message
    • rnp_op_sign_detached - Perform signing operation, return detached signature(s)
    • rnp_op_verify - Verify embedded or cleartext signatures
    • rnp_op_verify_detached - Verify detached signatures
    • rnp_save_keys - Save keys to PHP string
    • rnp_save_keys_to_path - Save keys to specified path
    • rnp_supported_features - Get supported features in JSON format
    • rnp_version_string - RNP library version
    • rnp_version_string_full - Full version string of RNP library
    • round - Rounds a float
    • RowResult::fetchAll - Get all rows from result
    • RowResult::fetchOne - Get row from result
    • RowResult::getColumnNames - Get all column names
    • RowResult::getColumns - Get column metadata
    • RowResult::getColumnsCount - Get column count
    • RowResult::getWarnings - Get warnings from last operation
    • RowResult::getWarningsCount - Get warning count from last operation
    • RowResult::__construct - RowResult constructor
    • rpmaddtag - Add tag retrieved in query
    • rpmdbinfo - Get information from installed RPM
    • rpmdbsearch - Search RPM packages
    • rpmgetsymlink - Get target of a symlink
    • rpminfo - Get information from a RPM file
    • rpmvercmp - RPM version comparison
    • RRDCreator::addArchive - Adds RRA - archive of data values for each data source
    • RRDCreator::addDataSource - Adds data source definition for RRD database
    • RRDCreator::save - Saves the RRD database to a file
    • RRDCreator::__construct - Creates new RRDCreator instance
    • rrdc_disconnect - Close any outstanding connection to rrd caching daemon
    • RRDGraph::save - Saves the result of query into image
    • RRDGraph::saveVerbose - Saves the RRD database query into image and returns the verbose information about generated graph
    • RRDGraph::setOptions - Sets the options for rrd graph export
    • RRDGraph::__construct - Creates new RRDGraph instance
    • RRDUpdater::update - Update the RRD database file
    • RRDUpdater::__construct - Creates new RRDUpdater instance
    • rrd_create - Creates rrd database file
    • rrd_error - Gets latest error message
    • rrd_fetch - Fetch the data for graph as array
    • rrd_first - Gets the timestamp of the first sample from rrd file
    • rrd_graph - Creates image from a data
    • rrd_info - Gets information about rrd file
    • rrd_last - Gets unix timestamp of the last sample
    • rrd_lastupdate - Gets information about last updated data
    • rrd_restore - Restores the RRD file from XML dump
    • rrd_tune - Tunes some RRD database file header options
    • rrd_update - Updates the RRD database
    • rrd_version - Gets information about underlying rrdtool library
    • rrd_xport - Exports the information about RRD database
    • rsort - Bir diziyi büyükten küçüğe doğru sıralar
    • rtrim - Dizgenin sonundaki boşlukları (veya diğer karakterleri) budar
    • runkit7_constant_add - Similar to define(), but allows defining in class definitions as well
    • runkit7_constant_redefine - Redefine an already defined constant
    • runkit7_constant_remove - Remove/Delete an already defined constant
    • runkit7_function_add - Add a new function, similar to create_function
    • runkit7_function_copy - Copy a function to a new function name
    • runkit7_function_redefine - Replace a function definition with a new implementation
    • runkit7_function_remove - Remove a function definition
    • runkit7_function_rename - Change a function's name
    • runkit7_import - Process a PHP file importing function and class definitions, overwriting where appropriate
    • runkit7_method_add - Dynamically adds a new method to a given class
    • runkit7_method_copy - Copies a method from class to another
    • runkit7_method_redefine - Dynamically changes the code of the given method
    • runkit7_method_remove - Dynamically removes the given method
    • runkit7_method_rename - Dynamically changes the name of the given method
    • runkit7_object_id - Return the integer object handle for given object
    • runkit7_superglobals - Return numerically indexed array of registered superglobals
    • runkit7_zval_inspect - Returns information about the passed in value with data types, reference counts, etc
  • s
    • sapi_windows_cp_conv - Dizgenin karakter kümesini değiştirir
    • sapi_windows_cp_get - Geçerli karakter kümesini döndürür
    • sapi_windows_cp_is_utf8 - Karakter kümesinin UTF-8 uyumluluğuna bakar
    • sapi_windows_cp_set - Sürece karakter kümesi tanımlar
    • sapi_windows_generate_ctrl_event - Belirtilen sürece bir CTRL olayı gönderir
    • sapi_windows_set_ctrl_handler - CTRL olayı işleyiciyi tanımlar veya kaldırır
    • sapi_windows_vt100_support - Windows konsolunun çıktı tamponu ile ilişkili belirtilen akım için VT100 desteği atar veya döndürür
    • scandir - Belirtilen dizindeki alt dizinleri ve dosyaları listeler
    • Schema::createCollection - Add collection to schema
    • Schema::dropCollection - Drop collection from schema
    • Schema::existsInDatabase - Check if exists in database
    • Schema::getCollection - Get collection from schema
    • Schema::getCollectionAsTable - Get collection as a Table object
    • Schema::getCollections - Get all schema collections
    • Schema::getName - Get schema name
    • Schema::getSession - Get schema session
    • Schema::getTable - Get schema table
    • Schema::getTables - Get schema tables
    • Schema::__construct - Schema constructor
    • SchemaObject::getSchema - Get schema object
    • scoutapm_get_calls - Returns a list of instrumented calls that have occurred
    • scoutapm_list_instrumented_functions - List functions scoutapm will instrument.
    • SeasLog::alert - Record alert log information
    • SeasLog::analyzerCount - Get log count by level, log_path and key_word
    • SeasLog::analyzerDetail - Get log detail by level, log_path, key_word, start, limit, order
    • SeasLog::closeLoggerStream - Manually release stream flow from logger
    • SeasLog::critical - Record critical log information
    • SeasLog::debug - Record debug log information
    • SeasLog::emergency - Record emergency log information
    • SeasLog::error - Record error log information
    • SeasLog::flushBuffer - Flush logs buffer, dump to appender file, or send to remote api with tcp/udp
    • SeasLog::getBasePath - Get SeasLog base path.
    • SeasLog::getBuffer - Get the logs buffer in memory as array
    • SeasLog::getBufferEnabled - Determin if buffer enabled
    • SeasLog::getDatetimeFormat - Get SeasLog datetime format style
    • SeasLog::getLastLogger - Get SeasLog last logger path
    • SeasLog::getRequestID - Get SeasLog request_id differentiated requests
    • SeasLog::getRequestVariable - Get SeasLog request variable
    • SeasLog::info - Record info log information
    • SeasLog::log - The Common Record Log Function
    • SeasLog::notice - Record notice log information
    • SeasLog::setBasePath - Set SeasLog base path
    • SeasLog::setDatetimeFormat - Set SeasLog datetime format style
    • SeasLog::setLogger - Set SeasLog logger name
    • SeasLog::setRequestID - Set SeasLog request_id differentiated requests
    • SeasLog::setRequestVariable - Manually set SeasLog request variable
    • SeasLog::warning - Record warning log information
    • SeasLog::__construct - Description
    • SeasLog::__destruct - Description
    • seaslog_get_author - Get SeasLog author.
    • seaslog_get_version - Get SeasLog version.
    • SeekableIterator::seek - Seeks to a position
    • sem_acquire - Acquire a semaphore
    • sem_get - Get a semaphore id
    • sem_release - Release a semaphore
    • sem_remove - Remove a semaphore
    • SensitiveParameter::__construct - Yeni bir SensitiveParameter özniteliği örneği oluşturur
    • SensitiveParameterValue::getValue - Hassas değeri döndürür
    • SensitiveParameterValue::__construct - Yeni bir SensitiveParameterValue nesnesi oluşturur
    • SensitiveParameterValue::__debugInfo - Hassas değeri yanlışlıkla açığa çıkmaya karşı korur
    • Serializable::serialize - Nesnenin dizgesel gösterimiyle döner
    • Serializable::unserialize - Dizgeleştirilmiş nesneyi yeniden oluşturur
    • serialize - Bir değerin saklanabilir bir gösterimini üretir
    • Session::close - Close session
    • Session::commit - Commit transaction
    • Session::createSchema - Create new schema
    • Session::dropSchema - Drop a schema
    • Session::generateUUID - Get new UUID
    • Session::getDefaultSchema - Get default schema name
    • Session::getSchema - Get a new schema object
    • Session::getSchemas - Get the schemas
    • Session::getServerVersion - Get server version
    • Session::listClients - Get client list
    • Session::quoteName - Add quotes
    • Session::releaseSavepoint - Release set savepoint
    • Session::rollback - Rollback transaction
    • Session::rollbackTo - Rollback transaction to savepoint
    • Session::setSavepoint - Create savepoint
    • Session::sql - Create SQL query
    • Session::startTransaction - Start transaction
    • Session::__construct - Description constructor
    • SessionHandler::close - Oturumu kapatır
    • SessionHandler::create_sid - Yeni oturum kimliğini döndürür
    • SessionHandler::destroy - Oturumu siler
    • SessionHandler::gc - Eski oturumu çöpe atar
    • SessionHandler::open - Oturumu ilklendirir
    • SessionHandler::read - Oturum verisini okur
    • SessionHandler::write - Oturum verisini yazar
    • SessionHandlerInterface::close - Oturumu kapatır
    • SessionHandlerInterface::destroy - Oturumu siler
    • SessionHandlerInterface::gc - Eski oturumları çöpe atar
    • SessionHandlerInterface::open - Oturumu ilklendirir
    • SessionHandlerInterface::read - Oturum verisini okur
    • SessionHandlerInterface::write - Oturum verisini yazar
    • SessionIdInterface::create_sid - Oturum kimliğini oluşturur
    • SessionUpdateTimestampHandlerInterface::updateTimestamp - Zaman damgasını günceller
    • SessionUpdateTimestampHandlerInterface::validateId - Oturum kimliğinin geçerliliğini saptar
    • session_abort - Oturum dizisi değişikliklerini atıp oturumu bitirir
    • session_cache_expire - Önbelleğe alınan oturumun ömrünü tanımlar veya döndürür
    • session_cache_limiter - Geçerli önbellek sınırlayıcısını döndürür ve/veya tanımlar
    • session_commit - session_write_close işlevinin takma adıdır
    • session_create_id - Yeni bir oturum kimliği oluşturur
    • session_decode - Oturum verisini kodlanmış oturum dizgesinden elde eder
    • session_destroy - Bir oturumla ilişkilendirilmiş tüm veriyi yokeder
    • session_encode - Geçerli oturum verisini dizgeleştirerek döndürür
    • session_gc - Oturum verisi çöpünü toplar
    • session_get_cookie_params - Oturum çerezi bağımsız değişkenlerini döndürür
    • session_id - Geçerli oturum kimliğini döndürür ve/veya tanımlar
    • session_module_name - Geçerli oturum modülünü döndürür ve/veya tanımlar
    • session_name - Geçerli oturum ismini döndürür ve/veya tanımlar
    • session_regenerate_id - Geçerli oturum kimliğini yenisiyle değiştirir
    • session_register_shutdown - Oturum kapanma işlevini kaydeder
    • session_reset - Oturum dizisini özgün değerlerle yeniden ilklendirir
    • session_save_path - Geçerli oturum kayıt yolunu tanımlar ve/veya döndürür
    • session_set_cookie_params - Oturum çerezi bağımsız değişkenlerini tanımlar
    • session_set_save_handler - Kullanıcı seviyesi oturum saklama işlevlerini bildirir
    • session_start - Yeni bir oturum başlatır veya eskisini yeniden devreye sokar
    • session_status - Geçerli oturum durumunu döndürür
    • session_unset - Free all session variables
    • session_write_close - Oturum verisini yazıp oturumu kapatır
    • setcookie - Bir çerez gönderir
    • setlocale - Yereli ayarlar
    • setrawcookie - Bir çerezi değerini URL kodlamasından geçirmeden gönderir
    • settype - Bir değişkenin türünü belirler
    • set_error_handler - Kullanıcı tanımlı bir hata işleyici bildirir
    • set_exception_handler - Kullanıcı tanımlı bir istisna işleyici bildirir
    • set_file_buffer - stream_set_write_buffer işlevinin takma adıdır
    • set_include_path - include_path yönergesinin çalışma anı değerini belirler
    • set_time_limit - Azami çalıştırma süresini sınırlar
    • sha1 - Bir dizgenin sha1 aşını hesaplar
    • sha1_file - Bir dosyanın sha1 aşını hesaplar
    • shell_exec - Komutu kabukta çalıştırır ve çıktısının tamamını bir dizge olarak döndürür
    • shmop_close - Close shared memory block
    • shmop_delete - Delete shared memory block
    • shmop_open - Create or open shared memory block
    • shmop_read - Read data from shared memory block
    • shmop_size - Get size of shared memory block
    • shmop_write - Write data into shared memory block
    • shm_attach - Creates or open a shared memory segment
    • shm_detach - Disconnects from shared memory segment
    • shm_get_var - Returns a variable from shared memory
    • shm_has_var - Check whether a specific entry exists
    • shm_put_var - Inserts or updates a variable in shared memory
    • shm_remove - Removes shared memory from Unix systems
    • shm_remove_var - Removes a variable from shared memory
    • show_source - highlight_file işlevinin takma adıdır
    • shuffle - Bir diziyi karar
    • simdjson_decode - Decodes a JSON string
    • simdjson_is_valid - Check if a JSON string is valid
    • simdjson_key_count - Returns the value at a JSON pointer.
    • simdjson_key_exists - Check if the JSON contains the value referred to by a JSON pointer.
    • simdjson_key_value - Decodes the value of a JSON string located at the requested JSON pointer.
    • similar_text - İki dizge arasındaki benzerliği hesaplar
    • SimpleXMLElement::addAttribute - XML elemanına bir öznitelik ekler
    • SimpleXMLElement::addChild - XML düğümüne bir çocuk düğüm ekler
    • SimpleXMLElement::asXML - Nesnenin içerdiği belgeyi iyi biçemli bir XML dizge olarak döndürür
    • SimpleXMLElement::attributes - Bir elemanın özniteliklerine erişim sağlar
    • SimpleXMLElement::children - Belirtilen düğümün çocuklarını bulur
    • SimpleXMLElement::count - Counts the children of an element
    • SimpleXMLElement::current - Returns the current element
    • SimpleXMLElement::getChildren - Returns the sub-elements of the current element
    • SimpleXMLElement::getDocNamespaces - Belgede bildirilmiş isim alanlarını döndürür
    • SimpleXMLElement::getName - XML eleman ismi döndürür
    • SimpleXMLElement::getNamespaces - Belgede kullanılan isim alanlarını döndürür
    • SimpleXMLElement::hasChildren - Checks whether the current element has sub elements
    • SimpleXMLElement::key - Return current key
    • SimpleXMLElement::next - Move to next element
    • SimpleXMLElement::registerXPathNamespace - Sonraki XPath ifadesi için bir önek/isim alanı bağlamı oluşturur
    • SimpleXMLElement::rewind - Rewind to the first element
    • SimpleXMLElement::saveXML - Takma Adı: SimpleXMLElement::asXML
    • SimpleXMLElement::valid - Check whether the current element is valid
    • SimpleXMLElement::xpath - Bir XML veri üzerinde bir XPath sorgusu çalıştırır
    • SimpleXMLElement::__construct - Yeni bir SimpleXMLElement nesnesi oluşturur
    • SimpleXMLElement::__toString - Returns the string content
    • simplexml_import_dom - Bir DOM düğümü alıp bir SimpleXMLElement nesnesi döndürür
    • simplexml_load_file - Bir XML dosyasının içeriğini bir nesne haline getirir
    • simplexml_load_string - Bir XML dizgesini bir nesne haline getirir
    • sin - Sine
    • sinh - Hyperbolic sine
    • sizeof - count işlevinin takma adıdır
    • sleep - Çalışmayı geciktirir
    • snmp2_get - Fetch an SNMP object
    • snmp2_getnext - Fetch the SNMP object which follows the given object id
    • snmp2_real_walk - Return all objects including their respective object ID within the specified one
    • snmp2_set - Set the value of an SNMP object
    • snmp2_walk - Fetch all the SNMP objects from an agent
    • snmp3_get - Fetch an SNMP object
    • snmp3_getnext - Fetch the SNMP object which follows the given object id
    • snmp3_real_walk - Return all objects including their respective object ID within the specified one
    • snmp3_set - Set the value of an SNMP object
    • snmp3_walk - Fetch all the SNMP objects from an agent
    • SNMP::close - Close SNMP session
    • SNMP::get - Fetch an SNMP object
    • SNMP::getErrno - Get last error code
    • SNMP::getError - Get last error message
    • SNMP::getnext - Fetch an SNMP object which follows the given object id
    • SNMP::set - Set the value of an SNMP object
    • SNMP::setSecurity - Configures security-related SNMPv3 session parameters
    • SNMP::walk - Fetch SNMP object subtree
    • SNMP::__construct - Creates SNMP instance representing session to remote SNMP agent
    • snmpget - Fetch an SNMP object
    • snmpgetnext - Fetch the SNMP object which follows the given object id
    • snmprealwalk - Return all objects including their respective object ID within the specified one
    • snmpset - Set the value of an SNMP object
    • snmpwalk - Fetch all the SNMP objects from an agent
    • snmpwalkoid - Query for a tree of information about a network entity
    • snmp_get_quick_print - Fetches the current value of the NET-SNMP library's quick_print setting
    • snmp_get_valueretrieval - Return the method how the SNMP values will be returned
    • snmp_read_mib - Reads and parses a MIB file into the active MIB tree
    • snmp_set_enum_print - Return all values that are enums with their enum value instead of the raw integer
    • snmp_set_oid_numeric_print - Takma Adı: snmp_set_oid_output_format
    • snmp_set_oid_output_format - Set the OID output format
    • snmp_set_quick_print - Set the value of enable within the NET-SNMP library
    • snmp_set_valueretrieval - Specify the method how the SNMP values will be returned
    • SoapClient::__call - Calls a SOAP function (deprecated)
    • SoapClient::__construct - SoapClient constructor
    • SoapClient::__doRequest - Performs a SOAP request
    • SoapClient::__getCookies - Get list of cookies
    • SoapClient::__getFunctions - Returns list of available SOAP functions
    • SoapClient::__getLastRequest - Returns last SOAP request
    • SoapClient::__getLastRequestHeaders - Returns the SOAP headers from the last request
    • SoapClient::__getLastResponse - Returns last SOAP response
    • SoapClient::__getLastResponseHeaders - Returns the SOAP headers from the last response
    • SoapClient::__getTypes - Returns a list of SOAP types
    • SoapClient::__setCookie - Defines a cookie for SOAP requests
    • SoapClient::__setLocation - Sets the location of the Web service to use
    • SoapClient::__setSoapHeaders - Sets SOAP headers for subsequent calls
    • SoapClient::__soapCall - Calls a SOAP function
    • SoapFault::__construct - SoapFault constructor
    • SoapFault::__toString - Obtain a string representation of a SoapFault
    • SoapHeader::__construct - SoapHeader constructor
    • SoapParam::__construct - SoapParam constructor
    • SoapServer::addFunction - Adds one or more functions to handle SOAP requests
    • SoapServer::addSoapHeader - Add a SOAP header to the response
    • SoapServer::fault - Issue SoapServer fault indicating an error
    • SoapServer::getFunctions - Returns list of defined functions
    • SoapServer::handle - Handles a SOAP request
    • SoapServer::setClass - Sets the class which handles SOAP requests
    • SoapServer::setObject - Sets the object which will be used to handle SOAP requests
    • SoapServer::setPersistence - Sets SoapServer persistence mode
    • SoapServer::__construct - SoapServer constructor
    • SoapVar::__construct - SoapVar constructor
    • socket_accept - Soket üzerinden bağlantı kabul eder
    • socket_addrinfo_bind - Create and bind to a socket from a given addrinfo
    • socket_addrinfo_connect - Create and connect to a socket from a given addrinfo
    • socket_addrinfo_explain - Get information about addrinfo
    • socket_addrinfo_lookup - Get array with contents of getaddrinfo about the given hostname
    • socket_atmark - Determines whether socket is at out-of-band mark
    • socket_bind - Soketi bir isimle ilişkilendirir
    • socket_clear_error - Soket üzerindeki hatayı veya son hata kodunu siler
    • socket_close - Socket nesnesini kapatır
    • socket_cmsg_space - Calculate message buffer size
    • socket_connect - Soket üzerinde bir bağlantıyı ilklendirir
    • socket_create - Bir soket oluşturur (iletişim için bir uç)
    • socket_create_listen - Bağlantı kabul etmek için port üzerinde bir soket açar
    • socket_create_pair - Ayrılması olanaksız bir soket çifti oluşturur ve bunları bir dizide saklar
    • socket_export_stream - Export a socket into a stream that encapsulates a socket
    • socket_getopt - Takma Adı: socket_get_option
    • socket_getpeername - Belirtilen soketin yerel tarafını sorgulayıp soket türüne göre ya bir konak/port çifti ya da bir Unix dosya yolu döndürür
    • socket_getsockname - Belirtilen soketin yerel tarafını sorgulayıp soket türüne göre ya bir konak/port çifti ya da bir Unix dosya yolu döndürür
    • socket_get_option - Soketle ilgili bir seçeneğin değerini döndürür
    • socket_get_status - Takma Adı: stream_get_meta_data
    • socket_import_stream - Import a stream
    • socket_last_error - Soket üzerindeki son hatanın kodunu döndürür
    • socket_listen - Bir soketi bağlantı kabul etmek için dinler
    • socket_read - Bir soketten belli sayıda bayta kadar okuma yapar
    • socket_recv - Bağlı bir soketten veri alır
    • socket_recvfrom - Bağlantılı olsun olmasın bir soketten veri alır
    • socket_recvmsg - Read a message
    • socket_select - Belirtilen soket dizileri üzerinde belirtilen zaman aşımı ile select() sistem çağrısını çalıştırır
    • socket_send - Bağlı bir sokete veri gönderir
    • socket_sendmsg - Send a message
    • socket_sendto - Bağlı olsun olmasın bir sokete ileti gönderir
    • socket_setopt - Takma Adı: socket_set_option
    • socket_set_block - Soketi engelleme kipine sokar
    • socket_set_blocking - Takma Adı: stream_set_blocking
    • socket_set_nonblock - Belirtilen dosya tanıtıcısı için beklememe kipini etkinleştirir
    • socket_set_option - Soketle ilgili seçenekleri belirler
    • socket_set_timeout - Takma Adı: stream_set_timeout
    • socket_shutdown - Bir soketi almaya, göndermeye veya her ikisine kapatır
    • socket_strerror - Bir soket hatasıyla ilgili açıklamayı döndürür
    • socket_write - Bir sokete yazar
    • socket_wsaprotocol_info_export - Exports the WSAPROTOCOL_INFO Structure
    • socket_wsaprotocol_info_import - Imports a Socket from another Process
    • socket_wsaprotocol_info_release - Releases an exported WSAPROTOCOL_INFO Structure
    • sodium_add - Add large numbers
    • sodium_base642bin - Decodes a base64-encoded string into raw binary.
    • sodium_bin2base64 - Encodes a raw binary string with base64.
    • sodium_bin2hex - Encode to hexadecimal
    • sodium_compare - Compare large numbers
    • sodium_crypto_aead_aes256gcm_decrypt - Verify then decrypt a message with AES-256-GCM
    • sodium_crypto_aead_aes256gcm_encrypt - Encrypt then authenticate with AES-256-GCM
    • sodium_crypto_aead_aes256gcm_is_available - Check if hardware supports AES256-GCM
    • sodium_crypto_aead_aes256gcm_keygen - Generate a random AES-256-GCM key
    • sodium_crypto_aead_chacha20poly1305_decrypt - Verify then decrypt with ChaCha20-Poly1305
    • sodium_crypto_aead_chacha20poly1305_encrypt - Encrypt then authenticate with ChaCha20-Poly1305
    • sodium_crypto_aead_chacha20poly1305_ietf_decrypt - Verify that the ciphertext includes a valid tag
    • sodium_crypto_aead_chacha20poly1305_ietf_encrypt - Encrypt a message
    • sodium_crypto_aead_chacha20poly1305_ietf_keygen - Generate a random ChaCha20-Poly1305 (IETF) key.
    • sodium_crypto_aead_chacha20poly1305_keygen - Generate a random ChaCha20-Poly1305 key.
    • sodium_crypto_aead_xchacha20poly1305_ietf_decrypt - (Preferred) Verify then decrypt with XChaCha20-Poly1305
    • sodium_crypto_aead_xchacha20poly1305_ietf_encrypt - (Preferred) Encrypt then authenticate with XChaCha20-Poly1305
    • sodium_crypto_aead_xchacha20poly1305_ietf_keygen - Generate a random XChaCha20-Poly1305 key.
    • sodium_crypto_auth - Compute a tag for the message
    • sodium_crypto_auth_keygen - Generate a random key for sodium_crypto_auth
    • sodium_crypto_auth_verify - Verifies that the tag is valid for the message
    • sodium_crypto_box - Authenticated public-key encryption
    • sodium_crypto_box_keypair - Randomly generate a secret key and a corresponding public key
    • sodium_crypto_box_keypair_from_secretkey_and_publickey - Create a unified keypair string from a secret key and public key
    • sodium_crypto_box_open - Authenticated public-key decryption
    • sodium_crypto_box_publickey - Extract the public key from a crypto_box keypair
    • sodium_crypto_box_publickey_from_secretkey - Calculate the public key from a secret key
    • sodium_crypto_box_seal - Anonymous public-key encryption
    • sodium_crypto_box_seal_open - Anonymous public-key decryption
    • sodium_crypto_box_secretkey - Extracts the secret key from a crypto_box keypair
    • sodium_crypto_box_seed_keypair - Deterministically derive the key pair from a single key
    • sodium_crypto_core_ristretto255_add - Adds an element
    • sodium_crypto_core_ristretto255_from_hash - Maps a vector
    • sodium_crypto_core_ristretto255_is_valid_point - Determines if a point on the ristretto255 curve
    • sodium_crypto_core_ristretto255_random - Generates a random key
    • sodium_crypto_core_ristretto255_scalar_add - Adds a scalar value
    • sodium_crypto_core_ristretto255_scalar_complement - The sodium_crypto_core_ristretto255_scalar_complement purpose
    • sodium_crypto_core_ristretto255_scalar_invert - Inverts a scalar value
    • sodium_crypto_core_ristretto255_scalar_mul - Multiplies a scalar value
    • sodium_crypto_core_ristretto255_scalar_negate - Negates a scalar value
    • sodium_crypto_core_ristretto255_scalar_random - Generates a random key
    • sodium_crypto_core_ristretto255_scalar_reduce - Reduces a scalar value
    • sodium_crypto_core_ristretto255_scalar_sub - Subtracts a scalar value
    • sodium_crypto_core_ristretto255_sub - Subtracts an element
    • sodium_crypto_generichash - Get a hash of the message
    • sodium_crypto_generichash_final - Complete the hash
    • sodium_crypto_generichash_init - Initialize a hash for streaming
    • sodium_crypto_generichash_keygen - Generate a random generichash key
    • sodium_crypto_generichash_update - Add message to a hash
    • sodium_crypto_kdf_derive_from_key - Derive a subkey
    • sodium_crypto_kdf_keygen - Generate a random root key for the KDF interface
    • sodium_crypto_kx_client_session_keys - Calculate the client-side session keys.
    • sodium_crypto_kx_keypair - Creates a new sodium keypair
    • sodium_crypto_kx_publickey - Extract the public key from a crypto_kx keypair
    • sodium_crypto_kx_secretkey - Extract the secret key from a crypto_kx keypair.
    • sodium_crypto_kx_seed_keypair - Description
    • sodium_crypto_kx_server_session_keys - Calculate the server-side session keys.
    • sodium_crypto_pwhash - Derive a key from a password, using Argon2
    • sodium_crypto_pwhash_scryptsalsa208sha256 - Derives a key from a password, using scrypt
    • sodium_crypto_pwhash_scryptsalsa208sha256_str - Get an ASCII encoded hash
    • sodium_crypto_pwhash_scryptsalsa208sha256_str_verify - Verify that the password is a valid password verification string
    • sodium_crypto_pwhash_str - Get an ASCII-encoded hash
    • sodium_crypto_pwhash_str_needs_rehash - Determine whether or not to rehash a password
    • sodium_crypto_pwhash_str_verify - Verifies that a password matches a hash
    • sodium_crypto_scalarmult - Compute a shared secret given a user's secret key and another user's public key
    • sodium_crypto_scalarmult_base - Takma Adı: sodium_crypto_box_publickey_from_secretkey
    • sodium_crypto_scalarmult_ristretto255 - Computes a shared secret
    • sodium_crypto_scalarmult_ristretto255_base - Calculates the public key from a secret key
    • sodium_crypto_secretbox - Authenticated shared-key encryption
    • sodium_crypto_secretbox_keygen - Generate random key for sodium_crypto_secretbox
    • sodium_crypto_secretbox_open - Authenticated shared-key decryption
    • sodium_crypto_secretstream_xchacha20poly1305_init_pull - Initialize a secretstream context for decryption
    • sodium_crypto_secretstream_xchacha20poly1305_init_push - Initialize a secretstream context for encryption
    • sodium_crypto_secretstream_xchacha20poly1305_keygen - Generate a random secretstream key.
    • sodium_crypto_secretstream_xchacha20poly1305_pull - Decrypt a chunk of data from an encrypted stream
    • sodium_crypto_secretstream_xchacha20poly1305_push - Encrypt a chunk of data so that it can safely be decrypted in a streaming API
    • sodium_crypto_secretstream_xchacha20poly1305_rekey - Explicitly rotate the key in the secretstream state
    • sodium_crypto_shorthash - Compute a short hash of a message and key
    • sodium_crypto_shorthash_keygen - Get random bytes for key
    • sodium_crypto_sign - Sign a message
    • sodium_crypto_sign_detached - Sign the message
    • sodium_crypto_sign_ed25519_pk_to_curve25519 - Convert an Ed25519 public key to a Curve25519 public key
    • sodium_crypto_sign_ed25519_sk_to_curve25519 - Convert an Ed25519 secret key to a Curve25519 secret key
    • sodium_crypto_sign_keypair - Randomly generate a secret key and a corresponding public key
    • sodium_crypto_sign_keypair_from_secretkey_and_publickey - Join a secret key and public key together
    • sodium_crypto_sign_open - Check that the signed message has a valid signature
    • sodium_crypto_sign_publickey - Extract the Ed25519 public key from a keypair
    • sodium_crypto_sign_publickey_from_secretkey - Extract the Ed25519 public key from the secret key
    • sodium_crypto_sign_secretkey - Extract the Ed25519 secret key from a keypair
    • sodium_crypto_sign_seed_keypair - Deterministically derive the key pair from a single key
    • sodium_crypto_sign_verify_detached - Verify signature for the message
    • sodium_crypto_stream - Generate a deterministic sequence of bytes from a seed
    • sodium_crypto_stream_keygen - Generate a random sodium_crypto_stream key.
    • sodium_crypto_stream_xchacha20 - Expands the key and nonce into a keystream of pseudorandom bytes
    • sodium_crypto_stream_xchacha20_keygen - Returns a secure random key
    • sodium_crypto_stream_xchacha20_xor - Encrypts a message using a nonce and a secret key (no authentication)
    • sodium_crypto_stream_xchacha20_xor_ic - Encrypts a message using a nonce and a secret key (no authentication)
    • sodium_crypto_stream_xor - Encrypt a message without authentication
    • sodium_hex2bin - Decodes a hexadecimally encoded binary string
    • sodium_increment - Increment large number
    • sodium_memcmp - Test for equality in constant-time
    • sodium_memzero - Overwrite a string with NUL characters
    • sodium_pad - Add padding data
    • sodium_unpad - Remove padding data
    • SolrClient::addDocument - Adds a document to the index
    • SolrClient::addDocuments - Adds a collection of SolrInputDocument instances to the index
    • SolrClient::commit - Finalizes all add/deletes made to the index
    • SolrClient::deleteById - Delete by Id
    • SolrClient::deleteByIds - Deletes by Ids
    • SolrClient::deleteByQueries - Removes all documents matching any of the queries
    • SolrClient::deleteByQuery - Deletes all documents matching the given query
    • SolrClient::getById - Get Document By Id. Utilizes Solr Realtime Get (RTG)
    • SolrClient::getByIds - Get Documents by their Ids. Utilizes Solr Realtime Get (RTG)
    • SolrClient::getDebug - Returns the debug data for the last connection attempt
    • SolrClient::getOptions - Returns the client options set internally
    • SolrClient::optimize - Defragments the index
    • SolrClient::ping - Checks if Solr server is still up
    • SolrClient::query - Sends a query to the server
    • SolrClient::request - Sends a raw update request
    • SolrClient::rollback - Rollbacks all add/deletes made to the index since the last commit
    • SolrClient::setResponseWriter - Sets the response writer used to prepare the response from Solr
    • SolrClient::setServlet - Changes the specified servlet type to a new value
    • SolrClient::system - Retrieve Solr Server information
    • SolrClient::threads - Checks the threads status
    • SolrClient::__construct - Constructor for the SolrClient object
    • SolrClient::__destruct - Destructor for SolrClient
    • SolrClientException::getInternalInfo - Returns internal information where the Exception was thrown
    • SolrCollapseFunction::getField - Returns the field that is being collapsed on
    • SolrCollapseFunction::getHint - Returns collapse hint
    • SolrCollapseFunction::getMax - Returns max parameter
    • SolrCollapseFunction::getMin - Returns min parameter
    • SolrCollapseFunction::getNullPolicy - Returns null policy
    • SolrCollapseFunction::getSize - Returns size parameter
    • SolrCollapseFunction::setField - Sets the field to collapse on
    • SolrCollapseFunction::setHint - Sets collapse hint
    • SolrCollapseFunction::setMax - Selects the group heads by the max value of a numeric field or function query
    • SolrCollapseFunction::setMin - Sets the initial size of the collapse data structures when collapsing on a numeric field only
    • SolrCollapseFunction::setNullPolicy - Sets the NULL Policy
    • SolrCollapseFunction::setSize - Sets the initial size of the collapse data structures when collapsing on a numeric field only
    • SolrCollapseFunction::__construct - Constructor
    • SolrCollapseFunction::__toString - Returns a string representing the constructed collapse function
    • SolrDisMaxQuery::addBigramPhraseField - Adds a Phrase Bigram Field (pf2 parameter)
    • SolrDisMaxQuery::addBoostQuery - Adds a boost query field with value and optional boost (bq parameter)
    • SolrDisMaxQuery::addPhraseField - Adds a Phrase Field (pf parameter)
    • SolrDisMaxQuery::addQueryField - Add a query field with optional boost (qf parameter)
    • SolrDisMaxQuery::addTrigramPhraseField - Adds a Trigram Phrase Field (pf3 parameter)
    • SolrDisMaxQuery::addUserField - Adds a field to User Fields Parameter (uf)
    • SolrDisMaxQuery::removeBigramPhraseField - Removes phrase bigram field (pf2 parameter)
    • SolrDisMaxQuery::removeBoostQuery - Removes a boost query partial by field name (bq)
    • SolrDisMaxQuery::removePhraseField - Removes a Phrase Field (pf parameter)
    • SolrDisMaxQuery::removeQueryField - Removes a Query Field (qf parameter)
    • SolrDisMaxQuery::removeTrigramPhraseField - Removes a Trigram Phrase Field (pf3 parameter)
    • SolrDisMaxQuery::removeUserField - Removes a field from The User Fields Parameter (uf)
    • SolrDisMaxQuery::setBigramPhraseFields - Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter
    • SolrDisMaxQuery::setBigramPhraseSlop - Sets Bigram Phrase Slop (ps2 parameter)
    • SolrDisMaxQuery::setBoostFunction - Sets a Boost Function (bf parameter)
    • SolrDisMaxQuery::setBoostQuery - Directly Sets Boost Query Parameter (bq)
    • SolrDisMaxQuery::setMinimumMatch - Set Minimum "Should" Match (mm)
    • SolrDisMaxQuery::setPhraseFields - Sets Phrase Fields and their boosts (and slops) using pf2 parameter
    • SolrDisMaxQuery::setPhraseSlop - Sets the default slop on phrase queries (ps parameter)
    • SolrDisMaxQuery::setQueryAlt - Set Query Alternate (q.alt parameter)
    • SolrDisMaxQuery::setQueryPhraseSlop - Specifies the amount of slop permitted on phrase queries explicitly included in the user's query string (qf parameter)
    • SolrDisMaxQuery::setTieBreaker - Sets Tie Breaker parameter (tie parameter)
    • SolrDisMaxQuery::setTrigramPhraseFields - Directly Sets Trigram Phrase Fields (pf3 parameter)
    • SolrDisMaxQuery::setTrigramPhraseSlop - Sets Trigram Phrase Slop (ps3 parameter)
    • SolrDisMaxQuery::setUserFields - Sets User Fields parameter (uf)
    • SolrDisMaxQuery::useDisMaxQueryParser - Switch QueryParser to be DisMax Query Parser
    • SolrDisMaxQuery::useEDisMaxQueryParser - Switch QueryParser to be EDisMax
    • SolrDisMaxQuery::__construct - Class Constructor
    • SolrDocument::addField - Adds a field to the document
    • SolrDocument::clear - Drops all the fields in the document
    • SolrDocument::current - Retrieves the current field
    • SolrDocument::deleteField - Removes a field from the document
    • SolrDocument::fieldExists - Checks if a field exists in the document
    • SolrDocument::getChildDocuments - Returns an array of child documents (SolrDocument)
    • SolrDocument::getChildDocumentsCount - Returns the number of child documents
    • SolrDocument::getField - Retrieves a field by name
    • SolrDocument::getFieldCount - Returns the number of fields in this document
    • SolrDocument::getFieldNames - Returns an array of fields names in the document
    • SolrDocument::getInputDocument - Returns a SolrInputDocument equivalent of the object
    • SolrDocument::hasChildDocuments - Checks whether the document has any child documents
    • SolrDocument::key - Retrieves the current key
    • SolrDocument::merge - Merges source to the current SolrDocument
    • SolrDocument::next - Moves the internal pointer to the next field
    • SolrDocument::offsetExists - Checks if a particular field exists
    • SolrDocument::offsetGet - Retrieves a field
    • SolrDocument::offsetSet - Adds a field to the document
    • SolrDocument::offsetUnset - Removes a field
    • SolrDocument::reset - Takma Adı: SolrDocument::clear
    • SolrDocument::rewind - Resets the internal pointer to the beginning
    • SolrDocument::serialize - Used for custom serialization
    • SolrDocument::sort - Sorts the fields in the document
    • SolrDocument::toArray - Returns an array representation of the document
    • SolrDocument::unserialize - Custom serialization of SolrDocument objects
    • SolrDocument::valid - Checks if the current position internally is still valid
    • SolrDocument::__clone - Creates a copy of a SolrDocument object
    • SolrDocument::__construct - Constructor
    • SolrDocument::__destruct - Destructor
    • SolrDocument::__get - Access the field as a property
    • SolrDocument::__isset - Checks if a field exists
    • SolrDocument::__set - Adds another field to the document
    • SolrDocument::__unset - Removes a field from the document
    • SolrDocumentField::__construct - Constructor
    • SolrDocumentField::__destruct - Destructor
    • SolrException::getInternalInfo - Returns internal information where the Exception was thrown
    • SolrGenericResponse::__construct - Constructor
    • SolrGenericResponse::__destruct - Destructor
    • SolrIllegalArgumentException::getInternalInfo - Returns internal information where the Exception was thrown
    • SolrIllegalOperationException::getInternalInfo - Returns internal information where the Exception was thrown
    • SolrInputDocument::addChildDocument - Adds a child document for block indexing
    • SolrInputDocument::addChildDocuments - Adds an array of child documents
    • SolrInputDocument::addField - Adds a field to the document
    • SolrInputDocument::clear - Resets the input document
    • SolrInputDocument::deleteField - Removes a field from the document
    • SolrInputDocument::fieldExists - Checks if a field exists
    • SolrInputDocument::getBoost - Retrieves the current boost value for the document
    • SolrInputDocument::getChildDocuments - Returns an array of child documents (SolrInputDocument)
    • SolrInputDocument::getChildDocumentsCount - Returns the number of child documents
    • SolrInputDocument::getField - Retrieves a field by name
    • SolrInputDocument::getFieldBoost - Retrieves the boost value for a particular field
    • SolrInputDocument::getFieldCount - Returns the number of fields in the document
    • SolrInputDocument::getFieldNames - Returns an array containing all the fields in the document
    • SolrInputDocument::hasChildDocuments - Returns true if the document has any child documents
    • SolrInputDocument::merge - Merges one input document into another
    • SolrInputDocument::reset - Takma Adı: SolrInputDocument::clear
    • SolrInputDocument::setBoost - Sets the boost value for this document
    • SolrInputDocument::setFieldBoost - Sets the index-time boost value for a field
    • SolrInputDocument::sort - Sorts the fields within the document
    • SolrInputDocument::toArray - Returns an array representation of the input document
    • SolrInputDocument::__clone - Creates a copy of a SolrDocument
    • SolrInputDocument::__construct - Constructor
    • SolrInputDocument::__destruct - Destructor
    • SolrModifiableParams::__construct - Constructor
    • SolrModifiableParams::__destruct - Destructor
    • SolrObject::getPropertyNames - Returns an array of all the names of the properties
    • SolrObject::offsetExists - Checks if the property exists
    • SolrObject::offsetGet - Used to retrieve a property
    • SolrObject::offsetSet - Sets the value for a property
    • SolrObject::offsetUnset - Unsets the value for the property
    • SolrObject::__construct - Creates Solr object
    • SolrObject::__destruct - Destructor
    • SolrParams::add - Takma Adı: SolrParams::addParam
    • SolrParams::addParam - Adds a parameter to the object
    • SolrParams::get - Takma Adı: SolrParams::getParam
    • SolrParams::getParam - Returns a parameter value
    • SolrParams::getParams - Returns an array of non URL-encoded parameters
    • SolrParams::getPreparedParams - Returns an array of URL-encoded parameters
    • SolrParams::serialize - Used for custom serialization
    • SolrParams::set - Takma Adı: SolrParams::setParam
    • SolrParams::setParam - Sets the parameter to the specified value
    • SolrParams::toString - Returns all the name-value pair parameters in the object
    • SolrParams::unserialize - Used for custom serialization
    • SolrPingResponse::getResponse - Returns the response from the server
    • SolrPingResponse::__construct - Constructor
    • SolrPingResponse::__destruct - Destructor
    • SolrQuery::addExpandFilterQuery - Overrides main filter query, determines which documents to include in the main group
    • SolrQuery::addExpandSortField - Orders the documents within the expanded groups (expand.sort parameter)
    • SolrQuery::addFacetDateField - Maps to facet.date
    • SolrQuery::addFacetDateOther - Adds another facet.date.other parameter
    • SolrQuery::addFacetField - Adds another field to the facet
    • SolrQuery::addFacetQuery - Adds a facet query
    • SolrQuery::addField - Specifies which fields to return in the result
    • SolrQuery::addFilterQuery - Specifies a filter query
    • SolrQuery::addGroupField - Add a field to be used to group results
    • SolrQuery::addGroupFunction - Allows grouping results based on the unique values of a function query (group.func parameter)
    • SolrQuery::addGroupQuery - Allows grouping of documents that match the given query
    • SolrQuery::addGroupSortField - Add a group sort field (group.sort parameter)
    • SolrQuery::addHighlightField - Maps to hl.fl
    • SolrQuery::addMltField - Sets a field to use for similarity
    • SolrQuery::addMltQueryField - Maps to mlt.qf
    • SolrQuery::addSortField - Used to control how the results should be sorted
    • SolrQuery::addStatsFacet - Requests a return of sub results for values within the given facet
    • SolrQuery::addStatsField - Maps to stats.field parameter
    • SolrQuery::collapse - Collapses the result set to a single document per group
    • SolrQuery::getExpand - Returns true if group expanding is enabled
    • SolrQuery::getExpandFilterQueries - Returns the expand filter queries
    • SolrQuery::getExpandQuery - Returns the expand query expand.q parameter
    • SolrQuery::getExpandRows - Returns The number of rows to display in each group (expand.rows)
    • SolrQuery::getExpandSortFields - Returns an array of fields
    • SolrQuery::getFacet - Returns the value of the facet parameter
    • SolrQuery::getFacetDateEnd - Returns the value for the facet.date.end parameter
    • SolrQuery::getFacetDateFields - Returns all the facet.date fields
    • SolrQuery::getFacetDateGap - Returns the value of the facet.date.gap parameter
    • SolrQuery::getFacetDateHardEnd - Returns the value of the facet.date.hardend parameter
    • SolrQuery::getFacetDateOther - Returns the value for the facet.date.other parameter
    • SolrQuery::getFacetDateStart - Returns the lower bound for the first date range for all date faceting on this field
    • SolrQuery::getFacetFields - Returns all the facet fields
    • SolrQuery::getFacetLimit - Returns the maximum number of constraint counts that should be returned for the facet fields
    • SolrQuery::getFacetMethod - Returns the value of the facet.method parameter
    • SolrQuery::getFacetMinCount - Returns the minimum counts for facet fields should be included in the response
    • SolrQuery::getFacetMissing - Returns the current state of the facet.missing parameter
    • SolrQuery::getFacetOffset - Returns an offset into the list of constraints to be used for pagination
    • SolrQuery::getFacetPrefix - Returns the facet prefix
    • SolrQuery::getFacetQueries - Returns all the facet queries
    • SolrQuery::getFacetSort - Returns the facet sort type
    • SolrQuery::getFields - Returns the list of fields that will be returned in the response
    • SolrQuery::getFilterQueries - Returns an array of filter queries
    • SolrQuery::getGroup - Returns true if grouping is enabled
    • SolrQuery::getGroupCachePercent - Returns group cache percent value
    • SolrQuery::getGroupFacet - Returns the group.facet parameter value
    • SolrQuery::getGroupFields - Returns group fields (group.field parameter values)
    • SolrQuery::getGroupFormat - Returns the group.format value
    • SolrQuery::getGroupFunctions - Returns group functions (group.func parameter values)
    • SolrQuery::getGroupLimit - Returns the group.limit value
    • SolrQuery::getGroupMain - Returns the group.main value
    • SolrQuery::getGroupNGroups - Returns the group.ngroups value
    • SolrQuery::getGroupOffset - Returns the group.offset value
    • SolrQuery::getGroupQueries - Returns all the group.query parameter values
    • SolrQuery::getGroupSortFields - Returns the group.sort value
    • SolrQuery::getGroupTruncate - Returns the group.truncate value
    • SolrQuery::getHighlight - Returns the state of the hl parameter
    • SolrQuery::getHighlightAlternateField - Returns the highlight field to use as backup or default
    • SolrQuery::getHighlightFields - Returns all the fields that Solr should generate highlighted snippets for
    • SolrQuery::getHighlightFormatter - Returns the formatter for the highlighted output
    • SolrQuery::getHighlightFragmenter - Returns the text snippet generator for highlighted text
    • SolrQuery::getHighlightFragsize - Returns the number of characters of fragments to consider for highlighting
    • SolrQuery::getHighlightHighlightMultiTerm - Returns whether or not to enable highlighting for range/wildcard/fuzzy/prefix queries
    • SolrQuery::getHighlightMaxAlternateFieldLength - Returns the maximum number of characters of the field to return
    • SolrQuery::getHighlightMaxAnalyzedChars - Returns the maximum number of characters into a document to look for suitable snippets
    • SolrQuery::getHighlightMergeContiguous - Returns whether or not the collapse contiguous fragments into a single fragment
    • SolrQuery::getHighlightRegexMaxAnalyzedChars - Returns the maximum number of characters from a field when using the regex fragmenter
    • SolrQuery::getHighlightRegexPattern - Returns the regular expression for fragmenting
    • SolrQuery::getHighlightRegexSlop - Returns the deviation factor from the ideal fragment size
    • SolrQuery::getHighlightRequireFieldMatch - Returns if a field will only be highlighted if the query matched in this particular field
    • SolrQuery::getHighlightSimplePost - Returns the text which appears after a highlighted term
    • SolrQuery::getHighlightSimplePre - Returns the text which appears before a highlighted term
    • SolrQuery::getHighlightSnippets - Returns the maximum number of highlighted snippets to generate per field
    • SolrQuery::getHighlightUsePhraseHighlighter - Returns the state of the hl.usePhraseHighlighter parameter
    • SolrQuery::getMlt - Returns whether or not MoreLikeThis results should be enabled
    • SolrQuery::getMltBoost - Returns whether or not the query will be boosted by the interesting term relevance
    • SolrQuery::getMltCount - Returns the number of similar documents to return for each result
    • SolrQuery::getMltFields - Returns all the fields to use for similarity
    • SolrQuery::getMltMaxNumQueryTerms - Returns the maximum number of query terms that will be included in any generated query
    • SolrQuery::getMltMaxNumTokens - Returns the maximum number of tokens to parse in each document field that is not stored with TermVector support
    • SolrQuery::getMltMaxWordLength - Returns the maximum word length above which words will be ignored
    • SolrQuery::getMltMinDocFrequency - Returns the treshold frequency at which words will be ignored which do not occur in at least this many docs
    • SolrQuery::getMltMinTermFrequency - Returns the frequency below which terms will be ignored in the source document
    • SolrQuery::getMltMinWordLength - Returns the minimum word length below which words will be ignored
    • SolrQuery::getMltQueryFields - Returns the query fields and their boosts
    • SolrQuery::getQuery - Returns the main query
    • SolrQuery::getRows - Returns the maximum number of documents
    • SolrQuery::getSortFields - Returns all the sort fields
    • SolrQuery::getStart - Returns the offset in the complete result set
    • SolrQuery::getStats - Returns whether or not stats is enabled
    • SolrQuery::getStatsFacets - Returns all the stats facets that were set
    • SolrQuery::getStatsFields - Returns all the statistics fields
    • SolrQuery::getTerms - Returns whether or not the TermsComponent is enabled
    • SolrQuery::getTermsField - Returns the field from which the terms are retrieved
    • SolrQuery::getTermsIncludeLowerBound - Returns whether or not to include the lower bound in the result set
    • SolrQuery::getTermsIncludeUpperBound - Returns whether or not to include the upper bound term in the result set
    • SolrQuery::getTermsLimit - Returns the maximum number of terms Solr should return
    • SolrQuery::getTermsLowerBound - Returns the term to start at
    • SolrQuery::getTermsMaxCount - Returns the maximum document frequency
    • SolrQuery::getTermsMinCount - Returns the minimum document frequency to return in order to be included
    • SolrQuery::getTermsPrefix - Returns the term prefix
    • SolrQuery::getTermsReturnRaw - Whether or not to return raw characters
    • SolrQuery::getTermsSort - Returns an integer indicating how terms are sorted
    • SolrQuery::getTermsUpperBound - Returns the term to stop at
    • SolrQuery::getTimeAllowed - Returns the time in milliseconds allowed for the query to finish
    • SolrQuery::removeExpandFilterQuery - Removes an expand filter query
    • SolrQuery::removeExpandSortField - Removes an expand sort field from the expand.sort parameter
    • SolrQuery::removeFacetDateField - Removes one of the facet date fields
    • SolrQuery::removeFacetDateOther - Removes one of the facet.date.other parameters
    • SolrQuery::removeFacetField - Removes one of the facet.date parameters
    • SolrQuery::removeFacetQuery - Removes one of the facet.query parameters
    • SolrQuery::removeField - Removes a field from the list of fields
    • SolrQuery::removeFilterQuery - Removes a filter query
    • SolrQuery::removeHighlightField - Removes one of the fields used for highlighting
    • SolrQuery::removeMltField - Removes one of the moreLikeThis fields
    • SolrQuery::removeMltQueryField - Removes one of the moreLikeThis query fields
    • SolrQuery::removeSortField - Removes one of the sort fields
    • SolrQuery::removeStatsFacet - Removes one of the stats.facet parameters
    • SolrQuery::removeStatsField - Removes one of the stats.field parameters
    • SolrQuery::setEchoHandler - Toggles the echoHandler parameter
    • SolrQuery::setEchoParams - Determines what kind of parameters to include in the response
    • SolrQuery::setExpand - Enables/Disables the Expand Component
    • SolrQuery::setExpandQuery - Sets the expand.q parameter
    • SolrQuery::setExpandRows - Sets the number of rows to display in each group (expand.rows). Server Default 5
    • SolrQuery::setExplainOther - Sets the explainOther common query parameter
    • SolrQuery::setFacet - Maps to the facet parameter. Enables or disables facetting
    • SolrQuery::setFacetDateEnd - Maps to facet.date.end
    • SolrQuery::setFacetDateGap - Maps to facet.date.gap
    • SolrQuery::setFacetDateHardEnd - Maps to facet.date.hardend
    • SolrQuery::setFacetDateStart - Maps to facet.date.start
    • SolrQuery::setFacetEnumCacheMinDefaultFrequency - Sets the minimum document frequency used for determining term count
    • SolrQuery::setFacetLimit - Maps to facet.limit
    • SolrQuery::setFacetMethod - Specifies the type of algorithm to use when faceting a field
    • SolrQuery::setFacetMinCount - Maps to facet.mincount
    • SolrQuery::setFacetMissing - Maps to facet.missing
    • SolrQuery::setFacetOffset - Sets the offset into the list of constraints to allow for pagination
    • SolrQuery::setFacetPrefix - Specifies a string prefix with which to limits the terms on which to facet
    • SolrQuery::setFacetSort - Determines the ordering of the facet field constraints
    • SolrQuery::setGroup - Enable/Disable result grouping (group parameter)
    • SolrQuery::setGroupCachePercent - Enables caching for result grouping
    • SolrQuery::setGroupFacet - Sets group.facet parameter
    • SolrQuery::setGroupFormat - Sets the group format, result structure (group.format parameter)
    • SolrQuery::setGroupLimit - Specifies the number of results to return for each group. The server default value is 1
    • SolrQuery::setGroupMain - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple
    • SolrQuery::setGroupNGroups - If true, Solr includes the number of groups that have matched the query in the results
    • SolrQuery::setGroupOffset - Sets the group.offset parameter
    • SolrQuery::setGroupTruncate - If true, facet counts are based on the most relevant document of each group matching the query
    • SolrQuery::setHighlight - Enables or disables highlighting
    • SolrQuery::setHighlightAlternateField - Specifies the backup field to use
    • SolrQuery::setHighlightFormatter - Specify a formatter for the highlight output
    • SolrQuery::setHighlightFragmenter - Sets a text snippet generator for highlighted text
    • SolrQuery::setHighlightFragsize - The size of fragments to consider for highlighting
    • SolrQuery::setHighlightHighlightMultiTerm - Use SpanScorer to highlight phrase terms
    • SolrQuery::setHighlightMaxAlternateFieldLength - Sets the maximum number of characters of the field to return
    • SolrQuery::setHighlightMaxAnalyzedChars - Specifies the number of characters into a document to look for suitable snippets
    • SolrQuery::setHighlightMergeContiguous - Whether or not to collapse contiguous fragments into a single fragment
    • SolrQuery::setHighlightRegexMaxAnalyzedChars - Specify the maximum number of characters to analyze
    • SolrQuery::setHighlightRegexPattern - Specify the regular expression for fragmenting
    • SolrQuery::setHighlightRegexSlop - Sets the factor by which the regex fragmenter can stray from the ideal fragment size
    • SolrQuery::setHighlightRequireFieldMatch - Require field matching during highlighting
    • SolrQuery::setHighlightSimplePost - Sets the text which appears after a highlighted term
    • SolrQuery::setHighlightSimplePre - Sets the text which appears before a highlighted term
    • SolrQuery::setHighlightSnippets - Sets the maximum number of highlighted snippets to generate per field
    • SolrQuery::setHighlightUsePhraseHighlighter - Whether to highlight phrase terms only when they appear within the query phrase
    • SolrQuery::setMlt - Enables or disables moreLikeThis
    • SolrQuery::setMltBoost - Set if the query will be boosted by the interesting term relevance
    • SolrQuery::setMltCount - Set the number of similar documents to return for each result
    • SolrQuery::setMltMaxNumQueryTerms - Sets the maximum number of query terms included
    • SolrQuery::setMltMaxNumTokens - Specifies the maximum number of tokens to parse
    • SolrQuery::setMltMaxWordLength - Sets the maximum word length
    • SolrQuery::setMltMinDocFrequency - Sets the mltMinDoc frequency
    • SolrQuery::setMltMinTermFrequency - Sets the frequency below which terms will be ignored in the source docs
    • SolrQuery::setMltMinWordLength - Sets the minimum word length
    • SolrQuery::setOmitHeader - Exclude the header from the returned results
    • SolrQuery::setQuery - Sets the search query
    • SolrQuery::setRows - Specifies the maximum number of rows to return in the result
    • SolrQuery::setShowDebugInfo - Flag to show debug information
    • SolrQuery::setStart - Specifies the number of rows to skip
    • SolrQuery::setStats - Enables or disables the Stats component
    • SolrQuery::setTerms - Enables or disables the TermsComponent
    • SolrQuery::setTermsField - Sets the name of the field to get the Terms from
    • SolrQuery::setTermsIncludeLowerBound - Include the lower bound term in the result set
    • SolrQuery::setTermsIncludeUpperBound - Include the upper bound term in the result set
    • SolrQuery::setTermsLimit - Sets the maximum number of terms to return
    • SolrQuery::setTermsLowerBound - Specifies the Term to start from
    • SolrQuery::setTermsMaxCount - Sets the maximum document frequency
    • SolrQuery::setTermsMinCount - Sets the minimum document frequency
    • SolrQuery::setTermsPrefix - Restrict matches to terms that start with the prefix
    • SolrQuery::setTermsReturnRaw - Return the raw characters of the indexed term
    • SolrQuery::setTermsSort - Specifies how to sort the returned terms
    • SolrQuery::setTermsUpperBound - Sets the term to stop at
    • SolrQuery::setTimeAllowed - The time allowed for search to finish
    • SolrQuery::__construct - Constructor
    • SolrQuery::__destruct - Destructor
    • SolrQueryResponse::__construct - Constructor
    • SolrQueryResponse::__destruct - Destructor
    • SolrResponse::getDigestedResponse - Returns the XML response as serialized PHP data
    • SolrResponse::getHttpStatus - Returns the HTTP status of the response
    • SolrResponse::getHttpStatusMessage - Returns more details on the HTTP status
    • SolrResponse::getRawRequest - Returns the raw request sent to the Solr server
    • SolrResponse::getRawRequestHeaders - Returns the raw request headers sent to the Solr server
    • SolrResponse::getRawResponse - Returns the raw response from the server
    • SolrResponse::getRawResponseHeaders - Returns the raw response headers from the server
    • SolrResponse::getRequestUrl - Returns the full URL the request was sent to
    • SolrResponse::getResponse - Returns a SolrObject representing the XML response from the server
    • SolrResponse::setParseMode - Sets the parse mode
    • SolrResponse::success - Was the request a success
    • SolrServerException::getInternalInfo - Returns internal information where the Exception was thrown
    • SolrUpdateResponse::__construct - Constructor
    • SolrUpdateResponse::__destruct - Destructor
    • SolrUtils::digestXmlResponse - Parses an response XML string into a SolrObject
    • SolrUtils::escapeQueryChars - Escapes a lucene query string
    • SolrUtils::getSolrVersion - Returns the current version of the Solr extension
    • SolrUtils::queryPhrase - Prepares a phrase from an unescaped lucene string
    • solr_get_version - Returns the current version of the Apache Solr extension
    • sort - Bir diziyi küçükten büyüğe doğru sıralar
    • soundex - Bir dizgenin sestek anahtarını hesaplar
    • SplDoublyLinkedList::add - Add/insert a new value at the specified index
    • SplDoublyLinkedList::bottom - Peeks at the node from the beginning of the doubly linked list
    • SplDoublyLinkedList::count - Counts the number of elements in the doubly linked list
    • SplDoublyLinkedList::current - Return current array entry
    • SplDoublyLinkedList::getIteratorMode - Returns the mode of iteration
    • SplDoublyLinkedList::isEmpty - Checks whether the doubly linked list is empty
    • SplDoublyLinkedList::key - Return current node index
    • SplDoublyLinkedList::next - Move to next entry
    • SplDoublyLinkedList::offsetExists - Returns whether the requested $index exists
    • SplDoublyLinkedList::offsetGet - Returns the value at the specified $index
    • SplDoublyLinkedList::offsetSet - Sets the value at the specified $index to $value
    • SplDoublyLinkedList::offsetUnset - Unsets the value at the specified $index
    • SplDoublyLinkedList::pop - Pops a node from the end of the doubly linked list
    • SplDoublyLinkedList::prev - Move to previous entry
    • SplDoublyLinkedList::push - Pushes an element at the end of the doubly linked list
    • SplDoublyLinkedList::rewind - Rewind iterator back to the start
    • SplDoublyLinkedList::serialize - Serializes the storage
    • SplDoublyLinkedList::setIteratorMode - Sets the mode of iteration
    • SplDoublyLinkedList::shift - Shifts a node from the beginning of the doubly linked list
    • SplDoublyLinkedList::top - Peeks at the node from the end of the doubly linked list
    • SplDoublyLinkedList::unserialize - Unserializes the storage
    • SplDoublyLinkedList::unshift - Prepends the doubly linked list with an element
    • SplDoublyLinkedList::valid - Check whether the doubly linked list contains more nodes
    • SplFileInfo::getATime - Gets last access time of the file
    • SplFileInfo::getBasename - Gets the base name of the file
    • SplFileInfo::getCTime - Gets the inode change time
    • SplFileInfo::getExtension - Gets the file extension
    • SplFileInfo::getFileInfo - Gets an SplFileInfo object for the file
    • SplFileInfo::getFilename - Gets the filename
    • SplFileInfo::getGroup - Gets the file group
    • SplFileInfo::getInode - Gets the inode for the file
    • SplFileInfo::getLinkTarget - Gets the target of a link
    • SplFileInfo::getMTime - Gets the last modified time
    • SplFileInfo::getOwner - Gets the owner of the file
    • SplFileInfo::getPath - Gets the path without filename
    • SplFileInfo::getPathInfo - Gets an SplFileInfo object for the path
    • SplFileInfo::getPathname - Gets the path to the file
    • SplFileInfo::getPerms - Gets file permissions
    • SplFileInfo::getRealPath - Gets absolute path to file
    • SplFileInfo::getSize - Gets file size
    • SplFileInfo::getType - Gets file type
    • SplFileInfo::isDir - Tells if the file is a directory
    • SplFileInfo::isExecutable - Tells if the file is executable
    • SplFileInfo::isFile - Tells if the object references a regular file
    • SplFileInfo::isLink - Tells if the file is a link
    • SplFileInfo::isReadable - Tells if file is readable
    • SplFileInfo::isWritable - Tells if the entry is writable
    • SplFileInfo::openFile - Gets an SplFileObject object for the file
    • SplFileInfo::setFileClass - Sets the class used with SplFileInfo::openFile
    • SplFileInfo::setInfoClass - Sets the class used with SplFileInfo::getFileInfo and SplFileInfo::getPathInfo
    • SplFileInfo::__construct - Construct a new SplFileInfo object
    • SplFileInfo::__toString - Returns the path to the file as a string
    • SplFileObject::current - Retrieve current line of file
    • SplFileObject::eof - Reached end of file
    • SplFileObject::fflush - Flushes the output to the file
    • SplFileObject::fgetc - Gets character from file
    • SplFileObject::fgetcsv - Gets line from file and parse as CSV fields
    • SplFileObject::fgets - Gets line from file
    • SplFileObject::fgetss - Gets line from file and strip HTML tags
    • SplFileObject::flock - Portable file locking
    • SplFileObject::fpassthru - Output all remaining data on a file pointer
    • SplFileObject::fputcsv - Write a field array as a CSV line
    • SplFileObject::fread - Read from file
    • SplFileObject::fscanf - Parses input from file according to a format
    • SplFileObject::fseek - Seek to a position
    • SplFileObject::fstat - Gets information about the file
    • SplFileObject::ftell - Return current file position
    • SplFileObject::ftruncate - Truncates the file to a given length
    • SplFileObject::fwrite - Write to file
    • SplFileObject::getChildren - No purpose
    • SplFileObject::getCsvControl - Get the delimiter, enclosure and escape character for CSV
    • SplFileObject::getCurrentLine - Takma Adı: SplFileObject::fgets
    • SplFileObject::getFlags - Gets flags for the SplFileObject
    • SplFileObject::getMaxLineLen - Get maximum line length
    • SplFileObject::hasChildren - SplFileObject does not have children
    • SplFileObject::key - Get line number
    • SplFileObject::next - Read next line
    • SplFileObject::rewind - Rewind the file to the first line
    • SplFileObject::seek - Seek to specified line
    • SplFileObject::setCsvControl - Set the delimiter, enclosure and escape character for CSV
    • SplFileObject::setFlags - Sets flags for the SplFileObject
    • SplFileObject::setMaxLineLen - Set maximum line length
    • SplFileObject::valid - Not at EOF
    • SplFileObject::__construct - Construct a new file object
    • SplFileObject::__toString - Returns the current line as a string
    • SplFixedArray::count - Returns the size of the array
    • SplFixedArray::current - Return current array entry
    • SplFixedArray::fromArray - Import a PHP array in a SplFixedArray instance
    • SplFixedArray::getIterator - Retrieve the iterator to go through the array
    • SplFixedArray::getSize - Gets the size of the array
    • SplFixedArray::jsonSerialize - Returns a representation that can be converted to JSON
    • SplFixedArray::key - Return current array index
    • SplFixedArray::next - Move to next entry
    • SplFixedArray::offsetExists - Returns whether the requested index exists
    • SplFixedArray::offsetGet - Returns the value at the specified index
    • SplFixedArray::offsetSet - Sets a new value at a specified index
    • SplFixedArray::offsetUnset - Unsets the value at the specified $index
    • SplFixedArray::rewind - Rewind iterator back to the start
    • SplFixedArray::setSize - Change the size of an array
    • SplFixedArray::toArray - Returns a PHP array from the fixed array
    • SplFixedArray::valid - Check whether the array contains more elements
    • SplFixedArray::__construct - Constructs a new fixed array
    • SplFixedArray::__serialize - Serializes the SplFixedArray object
    • SplFixedArray::__unserialize - Deserializes the data parameter into an SplFixedArray object
    • SplFixedArray::__wakeup - Reinitialises the array after being unserialised
    • SplHeap::compare - Compare elements in order to place them correctly in the heap while sifting up
    • SplHeap::count - Counts the number of elements in the heap
    • SplHeap::current - Return current node pointed by the iterator
    • SplHeap::extract - Extracts a node from top of the heap and sift up
    • SplHeap::insert - Inserts an element in the heap by sifting it up
    • SplHeap::isCorrupted - Tells if the heap is in a corrupted state
    • SplHeap::isEmpty - Checks whether the heap is empty
    • SplHeap::key - Return current node index
    • SplHeap::next - Move to the next node
    • SplHeap::recoverFromCorruption - Recover from the corrupted state and allow further actions on the heap
    • SplHeap::rewind - Rewind iterator back to the start (no-op)
    • SplHeap::top - Peeks at the node from the top of the heap
    • SplHeap::valid - Check whether the heap contains more nodes
    • SplMaxHeap::compare - Compare elements in order to place them correctly in the heap while sifting up
    • SplMinHeap::compare - Compare elements in order to place them correctly in the heap while sifting up
    • SplObjectStorage::addAll - Adds all objects from another storage
    • SplObjectStorage::attach - Adds an object in the storage
    • SplObjectStorage::contains - Checks if the storage contains a specific object
    • SplObjectStorage::count - Returns the number of objects in the storage
    • SplObjectStorage::current - Returns the current storage entry
    • SplObjectStorage::detach - Removes an object from the storage
    • SplObjectStorage::getHash - Calculate a unique identifier for the contained objects
    • SplObjectStorage::getInfo - Returns the data associated with the current iterator entry
    • SplObjectStorage::key - Returns the index at which the iterator currently is
    • SplObjectStorage::next - Move to the next entry
    • SplObjectStorage::offsetExists - Checks whether an object exists in the storage
    • SplObjectStorage::offsetGet - Returns the data associated with an object
    • SplObjectStorage::offsetSet - Associates data to an object in the storage
    • SplObjectStorage::offsetUnset - Removes an object from the storage
    • SplObjectStorage::removeAll - Removes objects contained in another storage from the current storage
    • SplObjectStorage::removeAllExcept - Removes all objects except for those contained in another storage from the current storage
    • SplObjectStorage::rewind - Rewind the iterator to the first storage element
    • SplObjectStorage::serialize - Serializes the storage
    • SplObjectStorage::setInfo - Sets the data associated with the current iterator entry
    • SplObjectStorage::unserialize - Unserializes a storage from its string representation
    • SplObjectStorage::valid - Returns if the current iterator entry is valid
    • SplObserver::update - Receive update from subject
    • SplPriorityQueue::compare - Compare priorities in order to place elements correctly in the heap while sifting up
    • SplPriorityQueue::count - Counts the number of elements in the queue
    • SplPriorityQueue::current - Return current node pointed by the iterator
    • SplPriorityQueue::extract - Extracts a node from top of the heap and sift up
    • SplPriorityQueue::getExtractFlags - Get the flags of extraction
    • SplPriorityQueue::insert - Inserts an element in the queue by sifting it up
    • SplPriorityQueue::isCorrupted - Tells if the priority queue is in a corrupted state
    • SplPriorityQueue::isEmpty - Checks whether the queue is empty
    • SplPriorityQueue::key - Return current node index
    • SplPriorityQueue::next - Move to the next node
    • SplPriorityQueue::recoverFromCorruption - Recover from the corrupted state and allow further actions on the queue
    • SplPriorityQueue::rewind - Rewind iterator back to the start (no-op)
    • SplPriorityQueue::setExtractFlags - Sets the mode of extraction
    • SplPriorityQueue::top - Peeks at the node from the top of the queue
    • SplPriorityQueue::valid - Check whether the queue contains more nodes
    • SplQueue::dequeue - Dequeues a node from the queue
    • SplQueue::enqueue - Adds an element to the queue
    • SplSubject::attach - Attach an SplObserver
    • SplSubject::detach - Detach an observer
    • SplSubject::notify - Notify an observer
    • SplTempFileObject::__construct - Construct a new temporary file object
    • spl_autoload - Default implementation for __autoload()
    • spl_autoload_call - Try all registered __autoload() functions to load the requested class
    • spl_autoload_extensions - Register and return default file extensions for spl_autoload
    • spl_autoload_functions - Return all registered __autoload() functions
    • spl_autoload_register - Register given function as __autoload() implementation
    • spl_autoload_unregister - Unregister given function as __autoload() implementation
    • spl_classes - Return available SPL classes
    • spl_object_hash - Return hash id for given object
    • spl_object_id - Return the integer object handle for given object
    • Spoofchecker::areConfusable - Checks if given strings can be confused
    • Spoofchecker::isSuspicious - Checks if a given text contains any suspicious characters
    • Spoofchecker::setAllowedLocales - Locales to use when running checks
    • Spoofchecker::setChecks - Set the checks to run
    • Spoofchecker::setRestrictionLevel - Set the restriction level
    • Spoofchecker::__construct - Constructor
    • sprintf - Biçemli bir dizge döndürür
    • SQLite3::backup - Backup one database to another database
    • SQLite3::busyTimeout - Sets the busy connection handler
    • SQLite3::changes - Veritabanında son SQL deyimi ile işlem gören satır sayısını döndürür
    • SQLite3::close - Veritabanı bağlantısını kapatır
    • SQLite3::createAggregate - Toparlayıcı bir SQL işlevi olarak kullanılmak üzere bir PHP işlevini kayda geçirir
    • SQLite3::createCollation - Registers a PHP function for use as an SQL collating function
    • SQLite3::createFunction - Sayıl bir SQL işlevi olarak kullanılmak üzere bir PHP işlevini kayda geçirir
    • SQLite3::enableExceptions - Enable throwing exceptions
    • SQLite3::escapeString - Gerektiği gibi öncelenmiş bir dizge döndürür
    • SQLite3::exec - Sonuç döndürmeyen bir SQL sorgusu çalıştırır
    • SQLite3::lastErrorCode - Başarısız olan son SQLite isteğinin sayısal sonuç kodunu döndürür
    • SQLite3::lastErrorMsg - Başarısız olan son SQLite isteği ile ilgili İngilizce iletiyi döndürür
    • SQLite3::lastInsertRowID - Veritabanına en son yerleştirilen satırın kimliğini döndürür
    • SQLite3::loadExtension - Belirtilen SQLite eklenti kütüphanesini yüklemeye çalışır
    • SQLite3::open - Bir SQLite veritabanını açar
    • SQLite3::openBlob - Opens a stream resource to read a BLOB
    • SQLite3::prepare - Çalıştırılmak üzere bir SQL sorgusu hazırlar
    • SQLite3::query - Bir SQL sorgusu çalıştırır
    • SQLite3::querySingle - Bir sorgu çalıştırıp tek bir sonuç döndürür
    • SQLite3::setAuthorizer - Configures a callback to be used as an authorizer to limit what a statement can do
    • SQLite3::version - SQLite3 kütüphanesinin sürüm numarasını dizge ve sayı olarak döndürür
    • SQLite3::__construct - Yeni bir SQLite3 nesnesini ilklendirdikten sonra bir SQLite veritabanını açar
    • SQLite3Result::close - Hazır deyimi kapatır
    • SQLite3Result::columnName - Numarası belirtilen sütunun ismini döndürür
    • SQLite3Result::columnType - Numarası belirtilen sütunun türünü döndürür
    • SQLite3Result::fetchArray - Sonuç satırını bir dizi olarak döndürür
    • SQLite3Result::finalize - Sonuç kümesini kapatır
    • SQLite3Result::numColumns - Sonuç kümesindeki sütun sayısını döndürür
    • SQLite3Result::reset - Sonuç kümesindeki geçerli satırı ilk satır yapar
    • SQLite3Result::__construct - Constructs an SQLite3Result
    • SQLite3Stmt::bindParam - Bir PHP değişkenini bir SQL değişkeni ile ilişkilendirir
    • SQLite3Stmt::bindValue - Bir bağımsız değişkenin değerini bir deyim değişkeni ile ilişkilendirir
    • SQLite3Stmt::clear - Tüm bağımsız değişken ilişkilendirmelerini temizler
    • SQLite3Stmt::execute - Hazır deyimi çalıştırır ve sonuç kümesini bir nesne olarak döndürür
    • SQLite3Stmt::getSQL - Get the SQL of the statement
    • SQLite3Stmt::paramCount - Hazır deyimdeki değişken sayısını döndürür
    • SQLite3Stmt::readOnly - Returns whether a statement is definitely read only
    • SQLite3Stmt::reset - Hazır deyimi sıfırlar
    • SQLite3Stmt::__construct - Constructs an SQLite3Stmt object
    • sqlsrv_begin_transaction - Begins a database transaction
    • sqlsrv_cancel - Cancels a statement
    • sqlsrv_client_info - Returns information about the client and specified connection
    • sqlsrv_close - Closes an open connection and releases resourses associated with the connection
    • sqlsrv_commit - Commits a transaction that was begun with sqlsrv_begin_transaction
    • sqlsrv_configure - Changes the driver error handling and logging configurations
    • sqlsrv_connect - Opens a connection to a Microsoft SQL Server database
    • sqlsrv_errors - Returns error and warning information about the last SQLSRV operation performed
    • sqlsrv_execute - Executes a statement prepared with sqlsrv_prepare
    • sqlsrv_fetch - Makes the next row in a result set available for reading
    • sqlsrv_fetch_array - Returns a row as an array
    • sqlsrv_fetch_object - Retrieves the next row of data in a result set as an object
    • sqlsrv_field_metadata - Retrieves metadata for the fields of a statement prepared by sqlsrv_prepare or sqlsrv_query
    • sqlsrv_free_stmt - Frees all resources for the specified statement
    • sqlsrv_get_config - Returns the value of the specified configuration setting
    • sqlsrv_get_field - Gets field data from the currently selected row
    • sqlsrv_has_rows - Indicates whether the specified statement has rows
    • sqlsrv_next_result - Makes the next result of the specified statement active
    • sqlsrv_num_fields - Retrieves the number of fields (columns) on a statement
    • sqlsrv_num_rows - Retrieves the number of rows in a result set
    • sqlsrv_prepare - Prepares a query for execution
    • sqlsrv_query - Prepares and executes a query
    • sqlsrv_rollback - Rolls back a transaction that was begun with sqlsrv_begin_transaction
    • sqlsrv_rows_affected - Returns the number of rows modified by the last INSERT, UPDATE, or DELETE query executed
    • sqlsrv_send_stream_data - Sends data from parameter streams to the server
    • sqlsrv_server_info - Returns information about the server
    • SqlStatement::bind - Bind statement parameters
    • SqlStatement::execute - Execute the operation
    • SqlStatement::getNextResult - Get next result
    • SqlStatement::getResult - Get result
    • SqlStatement::hasMoreResults - Check for more results
    • SqlStatement::__construct - Description constructor
    • SqlStatementResult::fetchAll - Get all rows from result
    • SqlStatementResult::fetchOne - Get single row
    • SqlStatementResult::getAffectedItemsCount - Get affected row count
    • SqlStatementResult::getColumnNames - Get column names
    • SqlStatementResult::getColumns - Get columns
    • SqlStatementResult::getColumnsCount - Get column count
    • SqlStatementResult::getGeneratedIds - Get generated ids
    • SqlStatementResult::getLastInsertId - Get last insert id
    • SqlStatementResult::getWarnings - Get warnings from last operation
    • SqlStatementResult::getWarningsCount - Get warning count from last operation
    • SqlStatementResult::hasData - Check if result has data
    • SqlStatementResult::nextResult - Get next result
    • SqlStatementResult::__construct - Description constructor
    • sqrt - Square root
    • srand - Seed the random number generator
    • sscanf - Girdi dizgesini belli bir biçeme göre yorumlar
    • ssdeep_fuzzy_compare - Calculates the match score between two fuzzy hash signatures
    • ssdeep_fuzzy_hash - Create a fuzzy hash from a string
    • ssdeep_fuzzy_hash_filename - Create a fuzzy hash from a file
    • ssh2_auth_agent - Authenticate over SSH using the ssh agent
    • ssh2_auth_hostbased_file - Bir genel konak anahtarı kullanarak kimlik doğrulaması yapar
    • ssh2_auth_none - "none" kimlik doğrulaması yapar
    • ssh2_auth_password - Parola kullanarak kimlik doğrulaması yapar
    • ssh2_auth_pubkey_file - Bir genel anahtar kullanarak kimlik doğrulaması yapar
    • ssh2_connect - Bir SSH sunucusuna bağlanır
    • ssh2_disconnect - Close a connection to a remote SSH server
    • ssh2_exec - Uzak sunucu üzerinde bir komut çalıştırır
    • ssh2_fetch_stream - Başka bir veri akımı döndürür
    • ssh2_fingerprint - Uzak sunucunu parmakizini döndürür
    • ssh2_forward_accept - Accept a connection created by a listener
    • ssh2_forward_listen - Bind a port on the remote server and listen for connections
    • ssh2_methods_negotiated - Müzakere yöntemlerini listeler
    • ssh2_poll - Poll the channels/listeners/streams for events
    • ssh2_publickey_add - Yetkili bir genel anahtar ekler
    • ssh2_publickey_init - Genel anahtar alt sistemini ilklendirir
    • ssh2_publickey_list - Yetkili genel anahtarları listeler
    • ssh2_publickey_remove - Bir genel anahtarı siler
    • ssh2_scp_recv - SCP üzerinden bir dosya alır
    • ssh2_scp_send - SCP üzerinden bir dosya gönderir
    • ssh2_send_eof - Send EOF to stream
    • ssh2_sftp - SFTP alt sistemini ilklendirir
    • ssh2_sftp_chmod - Changes file mode
    • ssh2_sftp_lstat - Uzak sunucudaki bir sembolik bağın durum bilgisini döndürür
    • ssh2_sftp_mkdir - Uzak konakta bir dizin oluşturur
    • ssh2_sftp_readlink - Bir sembolik bağın hedefini döndürür
    • ssh2_sftp_realpath - Belirtilen dosya yolu dizgesinden gerçek yolu elde eder
    • ssh2_sftp_rename - Bir uzak dosyanın ismini değiştirir
    • ssh2_sftp_rmdir - Karşıdan bir dizin siler
    • ssh2_sftp_stat - Uzak dosya sistemindeki bir dosyanın durum bilgisini döndürür
    • ssh2_sftp_symlink - Karşıda bir sembolik bağ oluşturur
    • ssh2_sftp_unlink - Bir dosyayı siler
    • ssh2_shell - Bir etkileşimli kabuk isteği yapar
    • ssh2_tunnel - Uzak bir sunucuya doğru bir tünel açar
    • stat - Bir dosya hakkında bilgi döndürür
    • Statement::getNextResult - Get next result
    • Statement::getResult - Get result
    • Statement::hasMoreResults - Check if more results
    • Statement::__construct - Description constructor
    • stats_absolute_deviation - Returns the absolute deviation of an array of values
    • stats_cdf_beta - Calculates any one parameter of the beta distribution given values for the others
    • stats_cdf_binomial - Calculates any one parameter of the binomial distribution given values for the others
    • stats_cdf_cauchy - Calculates any one parameter of the Cauchy distribution given values for the others
    • stats_cdf_chisquare - Calculates any one parameter of the chi-square distribution given values for the others
    • stats_cdf_exponential - Calculates any one parameter of the exponential distribution given values for the others
    • stats_cdf_f - Calculates any one parameter of the F distribution given values for the others
    • stats_cdf_gamma - Calculates any one parameter of the gamma distribution given values for the others
    • stats_cdf_laplace - Calculates any one parameter of the Laplace distribution given values for the others
    • stats_cdf_logistic - Calculates any one parameter of the logistic distribution given values for the others
    • stats_cdf_negative_binomial - Calculates any one parameter of the negative binomial distribution given values for the others
    • stats_cdf_noncentral_chisquare - Calculates any one parameter of the non-central chi-square distribution given values for the others
    • stats_cdf_noncentral_f - Calculates any one parameter of the non-central F distribution given values for the others
    • stats_cdf_noncentral_t - Calculates any one parameter of the non-central t-distribution give values for the others
    • stats_cdf_normal - Calculates any one parameter of the normal distribution given values for the others
    • stats_cdf_poisson - Calculates any one parameter of the Poisson distribution given values for the others
    • stats_cdf_t - Calculates any one parameter of the t-distribution given values for the others
    • stats_cdf_uniform - Calculates any one parameter of the uniform distribution given values for the others
    • stats_cdf_weibull - Calculates any one parameter of the Weibull distribution given values for the others
    • stats_covariance - Computes the covariance of two data sets
    • stats_dens_beta - Probability density function of the beta distribution
    • stats_dens_cauchy - Probability density function of the Cauchy distribution
    • stats_dens_chisquare - Probability density function of the chi-square distribution
    • stats_dens_exponential - Probability density function of the exponential distribution
    • stats_dens_f - Probability density function of the F distribution
    • stats_dens_gamma - Probability density function of the gamma distribution
    • stats_dens_laplace - Probability density function of the Laplace distribution
    • stats_dens_logistic - Probability density function of the logistic distribution
    • stats_dens_normal - Probability density function of the normal distribution
    • stats_dens_pmf_binomial - Probability mass function of the binomial distribution
    • stats_dens_pmf_hypergeometric - Probability mass function of the hypergeometric distribution
    • stats_dens_pmf_negative_binomial - Probability mass function of the negative binomial distribution
    • stats_dens_pmf_poisson - Probability mass function of the Poisson distribution
    • stats_dens_t - Probability density function of the t-distribution
    • stats_dens_uniform - Probability density function of the uniform distribution
    • stats_dens_weibull - Probability density function of the Weibull distribution
    • stats_harmonic_mean - Returns the harmonic mean of an array of values
    • stats_kurtosis - Computes the kurtosis of the data in the array
    • stats_rand_gen_beta - Generates a random deviate from the beta distribution
    • stats_rand_gen_chisquare - Generates a random deviate from the chi-square distribution
    • stats_rand_gen_exponential - Generates a random deviate from the exponential distribution
    • stats_rand_gen_f - Generates a random deviate from the F distribution
    • stats_rand_gen_funiform - Generates uniform float between low (exclusive) and high (exclusive)
    • stats_rand_gen_gamma - Generates a random deviate from the gamma distribution
    • stats_rand_gen_ibinomial - Generates a random deviate from the binomial distribution
    • stats_rand_gen_ibinomial_negative - Generates a random deviate from the negative binomial distribution
    • stats_rand_gen_int - Generates random integer between 1 and 2147483562
    • stats_rand_gen_ipoisson - Generates a single random deviate from a Poisson distribution
    • stats_rand_gen_iuniform - Generates integer uniformly distributed between LOW (inclusive) and HIGH (inclusive)
    • stats_rand_gen_noncentral_chisquare - Generates a random deviate from the non-central chi-square distribution
    • stats_rand_gen_noncentral_f - Generates a random deviate from the noncentral F distribution
    • stats_rand_gen_noncentral_t - Generates a single random deviate from a non-central t-distribution
    • stats_rand_gen_normal - Generates a single random deviate from a normal distribution
    • stats_rand_gen_t - Generates a single random deviate from a t-distribution
    • stats_rand_get_seeds - Get the seed values of the random number generator
    • stats_rand_phrase_to_seeds - Generate two seeds for the RGN random number generator
    • stats_rand_ranf - Generates a random floating point number between 0 and 1
    • stats_rand_setall - Set seed values to the random generator
    • stats_skew - Computes the skewness of the data in the array
    • stats_standard_deviation - Returns the standard deviation
    • stats_stat_binomial_coef - Returns a binomial coefficient
    • stats_stat_correlation - Returns the Pearson correlation coefficient of two data sets
    • stats_stat_factorial - Returns the factorial of an integer
    • stats_stat_independent_t - Returns the t-value from the independent two-sample t-test
    • stats_stat_innerproduct - Returns the inner product of two vectors
    • stats_stat_paired_t - Returns the t-value of the dependent t-test for paired samples
    • stats_stat_percentile - Returns the percentile value
    • stats_stat_powersum - Returns the power sum of a vector
    • stats_variance - Returns the variance
    • Stomp::abort - Rolls back a transaction in progress
    • Stomp::ack - Acknowledges consumption of a message
    • Stomp::begin - Starts a transaction
    • Stomp::commit - Commits a transaction in progress
    • Stomp::error - Gets the last stomp error
    • Stomp::getReadTimeout - Gets read timeout
    • Stomp::getSessionId - Gets the current stomp session ID
    • Stomp::hasFrame - Indicates whether or not there is a frame ready to read
    • Stomp::readFrame - Reads the next frame
    • Stomp::send - Sends a message
    • Stomp::setReadTimeout - Sets read timeout
    • Stomp::subscribe - Registers to listen to a given destination
    • Stomp::unsubscribe - Removes an existing subscription
    • Stomp::__construct - Opens a connection
    • Stomp::__destruct - Closes stomp connection
    • StompException::getDetails - Get exception details
    • StompFrame::__construct - Constructor
    • stomp_connect_error - Returns a string description of the last connect error
    • stomp_version - Gets the current stomp extension version
    • strcasecmp - İkil olarak güvenilir ve harf büyüklüğüne duyarsız dizge karşılaştırması yapar
    • strchr - strstr işlevinin takma adıdır
    • strcmp - İkil olarak güvenilir dizge karşılaştırması yapar
    • strcoll - Yerele göre dizge karşılaştırma
    • strcspn - Maske ile eşleşMEyen ilk parçanın uzunluğunu bulur
    • streamWrapper::dir_closedir - Dizin tanıtıcısını kapatır
    • streamWrapper::dir_opendir - Dizin tanıtıcısı açar
    • streamWrapper::dir_readdir - Dizinden bir girdi okur
    • streamWrapper::dir_rewinddir - Dizin tanıtıcısını dizin başlangıcına konumlar
    • streamWrapper::mkdir - Bir dizin oluşturur
    • streamWrapper::rename - Bir dosya veya dizinin ismini değiştirir
    • streamWrapper::rmdir - Bir dizini siler
    • streamWrapper::stream_cast - Temel özkaynağı döndürür
    • streamWrapper::stream_close - Bir özkaynağı kapatır
    • streamWrapper::stream_eof - Dosya göstericisinin dosya sonunda olup olmadığına bakar
    • streamWrapper::stream_flush - Çıktıyı boşaltır
    • streamWrapper::stream_lock - Tavsiye niteliğinde dosya kilitleme
    • streamWrapper::stream_metadata - Akım meta verilerini değiştir
    • streamWrapper::stream_open - Bir dosya veya URL açar
    • streamWrapper::stream_read - Akımdan veri okur
    • streamWrapper::stream_seek - Akım üzerinde belli bir konuma gidilir
    • streamWrapper::stream_set_option - Akım seçeneklerini değiştirir
    • streamWrapper::stream_stat - Bir dosya özkaynağı hakkında bilgi döndürür
    • streamWrapper::stream_tell - Bir akımdan geçerli konumu döndürür
    • streamWrapper::stream_truncate - Akımı sondan kırpar
    • streamWrapper::stream_write - Akıma yazar
    • streamWrapper::unlink - Bir dosyayı siler
    • streamWrapper::url_stat - Bir dosya hakkında bilgi döndürür
    • streamWrapper::__construct - Yeni bir akım sarmalayıcı oluşturur
    • streamWrapper::__destruct - Mevcut bir akım sarmalayıcısını yok eder
    • stream_bucket_append - Zincirin sonuna bir bakla ekler
    • stream_bucket_make_writeable - Üzerinde işlem yapmak için zincirden bir bakla nesnesi döndürür
    • stream_bucket_new - Geçerli akımda kullanmak için yeni bir bakla oluşturur
    • stream_bucket_prepend - Zincirin başına bir bakla ekler
    • stream_context_create - Bir akım bağlamı oluşturur
    • stream_context_get_default - Öntanımlı akım bağlamını döndürür
    • stream_context_get_options - Bir akım/sarmalayıcı/bağlam için atanmış seçenekleri döndürür
    • stream_context_get_params - Bir bağlamın bağımsız değişkenlerini döndürür
    • stream_context_set_default - Akımları içeren öntanımlı bağlamı tanımlar
    • stream_context_set_option - Bir akım/sarmalayıcı/bağlam için bir seçenek tanımlar
    • stream_context_set_options - Sets options on the specified context
    • stream_context_set_params - Bir akım/sarmalayıcı/bağlam için bağımsız değişkenleri tanımlar
    • stream_copy_to_stream - Veriyi bir akımdan diğerine kopyalar
    • stream_filter_append - Süzgeç zincirinin sonuna bir süzgeç ekler
    • stream_filter_prepend - Süzgeç zincirinin başına bir süzgeç ekler
    • stream_filter_register - Kullanıcı tanımlı bir akım süzgecini etkin kılar
    • stream_filter_remove - Akımdan bir süzgeci kaldırır
    • stream_get_contents - Akımdan kalanı bir dizgeye okur
    • stream_get_filters - Etkin süzgeçlerin listesini döndürür
    • stream_get_line - Akımdan belirtilen ayraca kadar bir satır döndürür
    • stream_get_meta_data - Akımdan başlıkları/meta verileri döndürür
    • stream_get_transports - Etkin soket aktarımlarının listesini döndürür
    • stream_get_wrappers - Etkin akımların listesini döndürür
    • stream_isatty - Akımın bir TTY olup olmadığına bakar
    • stream_is_local - Akım, bir yerel akımsa true döner
    • stream_notification_callback - notification bağlam bağımsız değişkeni için bir geri çağırım işlevi
    • stream_register_wrapper - stream_wrapper_register işlevinin takma adıdır
    • stream_resolve_include_path - Göreli dosya adını mutlak yoluna çözümler
    • stream_select - Belirtilen akım dizisi üzerinde saniye ve mikrosaniye ile belirtilen zaman aşımıyla select() sistem çağrısının eşdeğeri olarak çalışır
    • stream_set_blocking - Akımın engelleme kipini ayarlar
    • stream_set_chunk_size - Akım blok boyutunu tanımlar
    • stream_set_read_buffer - Akıma dosya okuma tamponu tanımlar
    • stream_set_timeout - Akımın zaman aşımı süresini ayarlar
    • stream_set_write_buffer - Belirtilen akımda dosya yazma tamponunu ayarlar
    • stream_socket_accept - stream_socket_server ile oluşturulmuş bir soketten bağlantı kabul eder
    • stream_socket_client - Bir Genel Ağ veya Unix alan soketi bağlantısı açar
    • stream_socket_enable_crypto - Bağlı bir soket üzerinde şifrelemeyi açıp kapatır
    • stream_socket_get_name - Yerel veya uzak soketin ismini döndürür
    • stream_socket_pair - Soket akımlarınca ayırt edilebilen bir bağlantı çifti oluşturur
    • stream_socket_recvfrom - Bağlı olsun ya da olmasın bir soketten veri alır
    • stream_socket_sendto - Bir sokete bağlı olsun ya da olmasın, bir ileti gönderir
    • stream_socket_server - Bir Genel Ağ veya Unix alan sunucusu soketi oluşturur
    • stream_socket_shutdown - Çift yönlü bağlantıyı kapatır
    • stream_supports_lock - Akımın kilitlemeyi destekleyip desteklemediğine bakar
    • stream_wrapper_register - Bir PHP sınıfı olarak gerçeklenmiş bir URL sarmalayıcısını etkin kılar
    • stream_wrapper_restore - İptal edilmiş yerleşik bir sarmalayıcıyı tekrar etkin kılar
    • stream_wrapper_unregister - Bir URL sarmalayıcısını iptal eder
    • strftime - Format a local time/date according to locale settings
    • Stringable::__toString - Nesnenin dizgesel gösterimini döndürür
    • stripcslashes - addcslashes ile öncelenmiş dizgeyi eski haline getirir
    • stripos - Harf büyüklüğüne duyarsız olarak bir alt dizgenin ilkinin konumunu bulur
    • stripslashes - Bir dizgeden tersbölüleri ayıklar
    • strip_tags - Bir dizgeden HTML ve PHP etiketlerini ayıklar
    • stristr - Harf büyüklüğüne duyarsız olarak ilk alt dizgeyi bulur
    • strlen - Dizge uzunluğunu döndürür
    • strnatcasecmp - "Doğal sıralama" algoritmasını kullanarak dizgeleri harf büyüklüğüne duyarsız olarak karşılaştırır
    • strnatcmp - "Doğal sıralama" algoritmasını kullanarak dizgeleri karşılaştırır
    • strncasecmp - İlk n karakteri ikil ve harf büyüklüğüne duyarsız olarak karşılaştırır
    • strncmp - İlk n karakteri ikil olarak karşılaştırır
    • strpbrk - Belirtilen karakterleri bir dizge içinde arar
    • strpos - Bir alt dizgenin ilkinin konumunu bulur
    • strptime - strftime işleviyle üretilen zaman ve tarihleri çözümler
    • strrchr - Bir dizgede belli bir karakterin sonuncusuna göre dizgenin bir parçasıyla döner
    • strrev - Bir dizgeyi ters çevirir
    • strripos - Bir dizgede harf büyüklüğüne duyarsız olarak bir alt dizgenin sonuncusunu bulur
    • strrpos - Bir dizgede bir karakterin sonuncusunu bulur
    • strspn - Dizgenin, maskenin tüm karakterleri ile eşleşen ilk parçasının uzunluğunu bulur
    • strstr - İlk alt dizgeyi bulur
    • strtok - Dizgeyi bir dizgeciğe göre böler
    • strtolower - Bir dizgenin harflerini küçük harfe çevirir
    • strtotime - Parse about any English textual datetime description into a Unix timestamp
    • strtoupper - Bir dizgenin harflerini büyük harfe çevirir
    • strtr - Belli karakterleri veya alt dizgeleri değiştirir
    • strval - Bir değişkenin dizgesel değerini döndürür
    • str_contains - Bir dizge içinde belirtilen alt dizgeyi arar
    • str_decrement - Decrement an alphanumeric string
    • str_ends_with - Bir dizge belirtilen alt dizge ile bitiyor mu diye bakar
    • str_getcsv - Bir CSV dizgesinin girdilerini bir dizinin elemanlarına paylaştırır
    • str_increment - Increment an alphanumeric string
    • str_ireplace - Bir alt dizgenin bütün örneklerini yenisiyle değiştirirken harf büyüklüklerini dikkate almaz
    • str_pad - Bir dizgeyi belli bir uzunlukta diğer dizgeyle doldurur
    • str_repeat - Bir dizgeyi yineler
    • str_replace - Bir alt dizgenin bütün örneklerini yenisiyle değiştirir
    • str_rot13 - Bir dizgeye rot13 dönüşümü uygular
    • str_shuffle - Bir dizgenin karakterlerini devşirir
    • str_split - Bir dizgeyi bir diziye dönüştürür
    • str_starts_with - Bir dizge belirtilen alt dizge ile başlıyor mu diye bakar
    • str_word_count - Bir dizgedeki sözcükler hakkında bilgi verir
    • substr - Dizgenin bir kısmını döndürür
    • substr_compare - İki dizgenin belli bir konumdan itibaren belli uzunluktaki parçalarını bayt bayt karşılaştırır
    • substr_count - Bir dizge içinde belli bir alt dizgeden kaç tane bulunduğunu bulur
    • substr_replace - Bir dizgenin belli bir bölümünü değiştirir
    • SVM::crossvalidate - Test training params on subsets of the training data
    • SVM::getOptions - Return the current training parameters
    • SVM::setOptions - Set training parameters
    • SVM::train - Create a SVMModel based on training data
    • SVM::__construct - Construct a new SVM object
    • SVMModel::checkProbabilityModel - Returns true if the model has probability information
    • SVMModel::getLabels - Get the labels the model was trained on
    • SVMModel::getNrClass - Returns the number of classes the model was trained with
    • SVMModel::getSvmType - Get the SVM type the model was trained with
    • SVMModel::getSvrProbability - Get the sigma value for regression types
    • SVMModel::load - Load a saved SVM Model
    • SVMModel::predict - Predict a value for previously unseen data
    • SVMModel::predict_probability - Return class probabilities for previous unseen data
    • SVMModel::save - Save a model to a file
    • SVMModel::__construct - Construct a new SVMModel
    • svn_add - Schedules the addition of an item in a working directory
    • svn_auth_get_parameter - Retrieves authentication parameter
    • svn_auth_set_parameter - Sets an authentication parameter
    • svn_blame - Get the SVN blame for a file
    • svn_cat - Returns the contents of a file in a repository
    • svn_checkout - Checks out a working copy from the repository
    • svn_cleanup - Recursively cleanup a working copy directory, finishing incomplete operations and removing locks
    • svn_client_version - Returns the version of the SVN client libraries
    • svn_commit - Sends changes from the local working copy to the repository
    • svn_delete - Delete items from a working copy or repository
    • svn_diff - Recursively diffs two paths
    • svn_export - Export the contents of a SVN directory
    • svn_fs_abort_txn - Aborts a transaction
    • svn_fs_apply_text - Creates and returns a stream that will be used to replace
    • svn_fs_begin_txn2 - Create a new transaction
    • svn_fs_change_node_prop - Return true if everything is ok, false otherwise
    • svn_fs_check_path - Determines what kind of item lives at path in a given repository fsroot
    • svn_fs_contents_changed - Return true if content is different, false otherwise
    • svn_fs_copy - Copies a file or a directory
    • svn_fs_delete - Deletes a file or a directory
    • svn_fs_dir_entries - Enumerates the directory entries under path; returns a hash of dir names to file type
    • svn_fs_file_contents - Returns a stream to access the contents of a file from a given version of the fs
    • svn_fs_file_length - Returns the length of a file from a given version of the fs
    • svn_fs_is_dir - Determines if a path points to a directory
    • svn_fs_is_file - Determines if a path points to a file
    • svn_fs_make_dir - Creates a new empty directory
    • svn_fs_make_file - Creates a new empty file
    • svn_fs_node_created_rev - Returns the revision in which path under fsroot was created
    • svn_fs_node_prop - Returns the value of a property for a node
    • svn_fs_props_changed - Return true if props are different, false otherwise
    • svn_fs_revision_prop - Fetches the value of a named property
    • svn_fs_revision_root - Get a handle on a specific version of the repository root
    • svn_fs_txn_root - Creates and returns a transaction root
    • svn_fs_youngest_rev - Returns the number of the youngest revision in the filesystem
    • svn_import - Imports an unversioned path into a repository
    • svn_log - Returns the commit log messages of a repository URL
    • svn_ls - Returns list of directory contents in repository URL, optionally at revision number
    • svn_mkdir - Creates a directory in a working copy or repository
    • svn_repos_create - Create a new subversion repository at path
    • svn_repos_fs - Gets a handle on the filesystem for a repository
    • svn_repos_fs_begin_txn_for_commit - Create a new transaction
    • svn_repos_fs_commit_txn - Commits a transaction and returns the new revision
    • svn_repos_hotcopy - Make a hot-copy of the repos at repospath; copy it to destpath
    • svn_repos_open - Open a shared lock on a repository
    • svn_repos_recover - Run recovery procedures on the repository located at path
    • svn_revert - Revert changes to the working copy
    • svn_status - Returns the status of working copy files and directories
    • svn_update - Update working copy
    • Swoole\Async::dnsLookup - Async and non-blocking hostname to IP lookup.
    • Swoole\Async::read - Read file stream asynchronously.
    • Swoole\Async::readFile - Read a file asynchronously.
    • Swoole\Async::set - Update the async I/O options.
    • Swoole\Async::write - Write data to a file stream asynchronously.
    • Swoole\Async::writeFile - Description
    • Swoole\Atomic::add - Add a number to the value to the atomic object.
    • Swoole\Atomic::cmpset - Compare and set the value of the atomic object.
    • Swoole\Atomic::get - Get the current value of the atomic object.
    • Swoole\Atomic::set - Set a new value to the atomic object.
    • Swoole\Atomic::sub - Subtract a number to the value of the atomic object.
    • Swoole\Atomic::__construct - Construct a swoole atomic object.
    • Swoole\Buffer::append - Append the string or binary data at the end of the memory buffer and return the new size of memory allocated.
    • Swoole\Buffer::clear - Reset the memory buffer.
    • Swoole\Buffer::expand - Expand the size of memory buffer.
    • Swoole\Buffer::read - Read data from the memory buffer based on offset and length.
    • Swoole\Buffer::recycle - Release the memory to OS which is not used by the memory buffer.
    • Swoole\Buffer::substr - Read data from the memory buffer based on offset and length. Or remove data from the memory buffer.
    • Swoole\Buffer::write - Write data to the memory buffer. The memory allocated for the buffer will not be changed.
    • Swoole\Buffer::__construct - Fixed size memory blocks allocation.
    • Swoole\Buffer::__destruct - Destruct the Swoole memory buffer.
    • Swoole\Buffer::__toString - Get the string value of the memory buffer.
    • Swoole\Channel::pop - Read and pop data from swoole channel.
    • Swoole\Channel::push - Write and push data into Swoole channel.
    • Swoole\Channel::stats - Get stats of swoole channel.
    • Swoole\Channel::__construct - Construct a Swoole Channel
    • Swoole\Channel::__destruct - Destruct a Swoole channel.
    • Swoole\Client::close - Close the connection established.
    • Swoole\Client::connect - Connect to the remote TCP or UDP port.
    • Swoole\Client::getpeername - Get the remote socket name of the connection.
    • Swoole\Client::getsockname - Get the local socket name of the connection.
    • Swoole\Client::isConnected - Check if the connection is established.
    • Swoole\Client::on - Add callback functions triggered by events.
    • Swoole\Client::pause - Pause receiving data.
    • Swoole\Client::pipe - Redirect the data to another file descriptor.
    • Swoole\Client::recv - Receive data from the remote socket.
    • Swoole\Client::resume - Resume receiving data.
    • Swoole\Client::send - Send data to the remote TCP socket.
    • Swoole\Client::sendfile - Send file to the remote TCP socket.
    • Swoole\Client::sendto - Send data to the remote UDP address.
    • Swoole\Client::set - Set the Swoole client parameters before the connection is established.
    • Swoole\Client::sleep - Remove the TCP client from system event loop.
    • Swoole\Client::wakeup - Add the TCP client back into the system event loop.
    • Swoole\Client::__construct - Create Swoole sync or async TCP/UDP client, with or without SSL.
    • Swoole\Client::__destruct - Destruct the Swoole client.
    • Swoole\Connection\Iterator::count - Count connections.
    • Swoole\Connection\Iterator::current - Return current connection entry.
    • Swoole\Connection\Iterator::key - Return key of the current connection.
    • Swoole\Connection\Iterator::next - Move to the next connection.
    • Swoole\Connection\Iterator::offsetExists - Check if offet exists.
    • Swoole\Connection\Iterator::offsetGet - Offset to retrieve.
    • Swoole\Connection\Iterator::offsetSet - Assign a Connection to the specified offset.
    • Swoole\Connection\Iterator::offsetUnset - Unset an offset.
    • Swoole\Connection\Iterator::rewind - Rewinds iterator
    • Swoole\Connection\Iterator::valid - Check if current position is valid.
    • Swoole\Coroutine::call_user_func - Call a callback given by the first parameter
    • Swoole\Coroutine::call_user_func_array - Call a callback with an array of parameters
    • Swoole\Coroutine::cli_wait - Description
    • Swoole\Coroutine::create - Description
    • Swoole\Coroutine::getuid - Description
    • Swoole\Coroutine::resume - Description
    • Swoole\Coroutine::suspend - Description
    • Swoole\Coroutine\Client::close - Description
    • Swoole\Coroutine\Client::connect - Description
    • Swoole\Coroutine\Client::getpeername - Description
    • Swoole\Coroutine\Client::getsockname - Description
    • Swoole\Coroutine\Client::isConnected - Description
    • Swoole\Coroutine\Client::recv - Description
    • Swoole\Coroutine\Client::send - Description
    • Swoole\Coroutine\Client::sendfile - Description
    • Swoole\Coroutine\Client::sendto - Description
    • Swoole\Coroutine\Client::set - Description
    • Swoole\Coroutine\Client::__construct - Description
    • Swoole\Coroutine\Client::__destruct - Description
    • Swoole\Coroutine\Http\Client::addFile - Description
    • Swoole\Coroutine\Http\Client::close - Description
    • Swoole\Coroutine\Http\Client::execute - Description
    • Swoole\Coroutine\Http\Client::get - Description
    • Swoole\Coroutine\Http\Client::getDefer - Description
    • Swoole\Coroutine\Http\Client::isConnected - Description
    • Swoole\Coroutine\Http\Client::post - Description
    • Swoole\Coroutine\Http\Client::recv - Description
    • Swoole\Coroutine\Http\Client::set - Description
    • Swoole\Coroutine\Http\Client::setCookies - Description
    • Swoole\Coroutine\Http\Client::setData - Description
    • Swoole\Coroutine\Http\Client::setDefer - Description
    • Swoole\Coroutine\Http\Client::setHeaders - Description
    • Swoole\Coroutine\Http\Client::setMethod - Description
    • Swoole\Coroutine\Http\Client::__construct - Description
    • Swoole\Coroutine\Http\Client::__destruct - Description
    • Swoole\Coroutine\MySQL::close - Description
    • Swoole\Coroutine\MySQL::connect - Description
    • Swoole\Coroutine\MySQL::getDefer - Description
    • Swoole\Coroutine\MySQL::query - Description
    • Swoole\Coroutine\MySQL::recv - Description
    • Swoole\Coroutine\MySQL::setDefer - Description
    • Swoole\Coroutine\MySQL::__construct - Description
    • Swoole\Coroutine\MySQL::__destruct - Description
    • Swoole\Event::add - Add new callback functions of a socket into the EventLoop.
    • Swoole\Event::defer - Add a callback function to the next event loop.
    • Swoole\Event::del - Remove all event callback functions of a socket.
    • Swoole\Event::exit - Exit the eventloop, only available at client side.
    • Swoole\Event::set - Update the event callback functions of a socket.
    • Swoole\Event::wait - Description
    • Swoole\Event::write - Write data to the socket.
    • Swoole\Http\Client::addFile - Add a file to the post form.
    • Swoole\Http\Client::close - Close the http connection.
    • Swoole\Http\Client::download - Download a file from the remote server.
    • Swoole\Http\Client::execute - Send the HTTP request after setting the parameters.
    • Swoole\Http\Client::get - Send GET http request to the remote server.
    • Swoole\Http\Client::isConnected - Check if the HTTP connection is connected.
    • Swoole\Http\Client::on - Register callback function by event name.
    • Swoole\Http\Client::post - Send POST http request to the remote server.
    • Swoole\Http\Client::push - Push data to websocket client.
    • Swoole\Http\Client::set - Update the HTTP client parameters.
    • Swoole\Http\Client::setCookies - Set the http request cookies.
    • Swoole\Http\Client::setData - Set the HTTP request body data.
    • Swoole\Http\Client::setHeaders - Set the HTTP request headers.
    • Swoole\Http\Client::setMethod - Set the HTTP request method.
    • Swoole\Http\Client::upgrade - Upgrade to websocket protocol.
    • Swoole\Http\Client::__construct - Construct the async HTTP client.
    • Swoole\Http\Client::__destruct - Destruct the HTTP client.
    • Swoole\Http\Request::rawcontent - Get the raw HTTP POST body.
    • Swoole\Http\Request::__destruct - Destruct the HTTP request.
    • Swoole\Http\Response::cookie - Set the cookies of the HTTP response.
    • Swoole\Http\Response::end - Send data for the HTTP request and finish the response.
    • Swoole\Http\Response::gzip - Enable the gzip of response content.
    • Swoole\Http\Response::header - Set the HTTP response headers.
    • Swoole\Http\Response::initHeader - Init the HTTP response header.
    • Swoole\Http\Response::rawcookie - Set the raw cookies to the HTTP response.
    • Swoole\Http\Response::sendfile - Send file through the HTTP response.
    • Swoole\Http\Response::status - Set the status code of the HTTP response.
    • Swoole\Http\Response::write - Append HTTP body content to the HTTP response.
    • Swoole\Http\Response::__destruct - Destruct the HTTP response.
    • Swoole\Http\Server::on - Bind callback function to HTTP server by event name.
    • Swoole\Http\Server::start - Start the swoole http server.
    • Swoole\Lock::lock - Try to acquire the lock. It will block if the lock is not available.
    • Swoole\Lock::lock_read - Lock a read-write lock for reading.
    • Swoole\Lock::trylock - Try to acquire the lock and return straight away even the lock is not available.
    • Swoole\Lock::trylock_read - Try to lock a read-write lock for reading and return straight away even the lock is not available.
    • Swoole\Lock::unlock - Release the lock.
    • Swoole\Lock::__construct - Construct a memory lock.
    • Swoole\Lock::__destruct - Destory a Swoole memory lock.
    • Swoole\Mmap::open - Map a file into memory and return the stream resource which can be used by PHP stream operations.
    • Swoole\MySQL::close - Close the async MySQL connection.
    • Swoole\MySQL::connect - Connect to the remote MySQL server.
    • Swoole\MySQL::getBuffer - Description
    • Swoole\MySQL::on - Register callback function based on event name.
    • Swoole\MySQL::query - Run the SQL query.
    • Swoole\MySQL::__construct - Construct an async MySQL client.
    • Swoole\MySQL::__destruct - Destory the async MySQL client.
    • Swoole\Process::alarm - High precision timer which triggers signal with fixed interval.
    • Swoole\Process::close - Close the pipe to the child process.
    • Swoole\Process::daemon - Change the process to be a daemon process.
    • Swoole\Process::exec - Execute system commands.
    • Swoole\Process::exit - Stop the child processes.
    • Swoole\Process::freeQueue - Destroy the message queue created by swoole_process::useQueue.
    • Swoole\Process::kill - Send signal to the child process.
    • Swoole\Process::name - Set name of the process.
    • Swoole\Process::pop - Read and pop data from the message queue.
    • Swoole\Process::push - Write and push data into the message queue.
    • Swoole\Process::read - Read data sending to the process.
    • Swoole\Process::signal - Send signal to the child processes.
    • Swoole\Process::start - Start the process.
    • Swoole\Process::statQueue - Get the stats of the message queue used as the communication method between processes.
    • Swoole\Process::useQueue - Create a message queue as the communication method between the parent process and child processes.
    • Swoole\Process::wait - Wait for the events of child processes.
    • Swoole\Process::write - Write data into the pipe and communicate with the parent process or child processes.
    • Swoole\Process::__construct - Construct a process.
    • Swoole\Process::__destruct - Destroy the process.
    • Swoole\Redis\Server::format - Description
    • Swoole\Redis\Server::setHandler - Description
    • Swoole\Redis\Server::start - Description
    • Swoole\Serialize::pack - Serialize the data.
    • Swoole\Serialize::unpack - Unserialize the data.
    • Swoole\Server::addlistener - Add a new listener to the server.
    • Swoole\Server::addProcess - Add a user defined swoole_process to the server.
    • Swoole\Server::after - Trigger a callback function after a period of time.
    • Swoole\Server::bind - Bind the connection to a user defined user ID.
    • Swoole\Server::clearTimer - Stop and destroy a timer.
    • Swoole\Server::close - Close a connection to the client.
    • Swoole\Server::confirm - Check status of the connection.
    • Swoole\Server::connection_info - Get the connection info by file description.
    • Swoole\Server::connection_list - Get all of the established connections.
    • Swoole\Server::defer - Delay execution of the callback function at the end of current EventLoop.
    • Swoole\Server::exist - Check if the connection is existed.
    • Swoole\Server::finish - Used in task process for sending result to the worker process when the task is finished.
    • Swoole\Server::getClientInfo - Get the connection info by file description.
    • Swoole\Server::getClientList - Get all of the established connections.
    • Swoole\Server::getLastError - Get the error code of the most recent error.
    • Swoole\Server::heartbeat - Check all the connections on the server.
    • Swoole\Server::listen - Listen on the given IP and port, socket type.
    • Swoole\Server::on - Register a callback function by event name.
    • Swoole\Server::pause - Stop receiving data from the connection.
    • Swoole\Server::protect - Set the connection to be protected mode.
    • Swoole\Server::reload - Restart all the worker process.
    • Swoole\Server::resume - Start receving data from the connection.
    • Swoole\Server::send - Send data to the client.
    • Swoole\Server::sendfile - Send file to the connection.
    • Swoole\Server::sendMessage - Send message to worker processes by ID.
    • Swoole\Server::sendto - Send data to the remote UDP address.
    • Swoole\Server::sendwait - Send data to the remote socket in the blocking way.
    • Swoole\Server::set - Set the runtime settings of the swoole server.
    • Swoole\Server::shutdown - Shutdown the master server process, this function can be called in worker processes.
    • Swoole\Server::start - Start the Swoole server.
    • Swoole\Server::stats - Get the stats of the Swoole server.
    • Swoole\Server::stop - Stop the Swoole server.
    • Swoole\Server::task - Send data to the task worker processes.
    • Swoole\Server::taskwait - Send data to the task worker processes in blocking way.
    • Swoole\Server::taskWaitMulti - Execute multiple tasks concurrently.
    • Swoole\Server::tick - Repeats a given function at every given time-interval.
    • Swoole\Server::__construct - Construct a Swoole server.
    • Swoole\Server\Port::on - Register callback functions by event.
    • Swoole\Server\Port::set - Set protocol of the server port.
    • Swoole\Server\Port::__construct - Construct a server port
    • Swoole\Server\Port::__destruct - Destory server port
    • Swoole\Table::column - Set the data type and size of the columns.
    • Swoole\Table::count - Count the rows in the table, or count all the elements in the table if $mode = 1.
    • Swoole\Table::create - Create the swoole memory table.
    • Swoole\Table::current - Get the current row.
    • Swoole\Table::decr - Decrement the value in the Swoole table by $row_key and $column_key.
    • Swoole\Table::del - Delete a row in the Swoole table by $row_key.
    • Swoole\Table::destroy - Destroy the Swoole table.
    • Swoole\Table::exist - Check if a row is existed by $row_key.
    • Swoole\Table::get - Get the value in the Swoole table by $row_key and $column_key.
    • Swoole\Table::incr - Increment the value by $row_key and $column_key.
    • Swoole\Table::key - Get the key of current row.
    • Swoole\Table::next - Iterator the next row.
    • Swoole\Table::rewind - Rewind the iterator.
    • Swoole\Table::set - Update a row of the table by $row_key.
    • Swoole\Table::valid - Check if the current row is valid.
    • Swoole\Table::__construct - Construct a Swoole memory table with fixed size.
    • Swoole\Timer::after - Trigger a callback function after a period of time.
    • Swoole\Timer::clear - Delete a timer by timer ID.
    • Swoole\Timer::exists - Check if a timer is existed.
    • Swoole\Timer::tick - Repeats a given function at every given time-interval.
    • Swoole\WebSocket\Server::exist - Check if the file descriptor exists.
    • Swoole\WebSocket\Server::on - Register event callback function
    • Swoole\WebSocket\Server::pack - Get a pack of binary data to send in a single frame.
    • Swoole\WebSocket\Server::push - Push data to the remote client.
    • Swoole\WebSocket\Server::unpack - Unpack the binary data received from the client.
    • swoole_async_dns_lookup - Async and non-blocking hostname to IP lookup
    • swoole_async_read - Read file stream asynchronously
    • swoole_async_readfile - Read a file asynchronously
    • swoole_async_set - Update the async I/O options
    • swoole_async_write - Write data to a file stream asynchronously
    • swoole_async_writefile - Write data to a file asynchronously
    • swoole_clear_error - Clear errors in the socket or on the last error code
    • swoole_client_select - Get the file description which are ready to read/write or error
    • swoole_cpu_num - Get the number of CPU
    • swoole_errno - Get the error code of the latest system call
    • swoole_error_log - Output error messages to the log
    • swoole_event_add - Add new callback functions of a socket into the EventLoop
    • swoole_event_defer - Add callback function to the next event loop
    • swoole_event_del - Remove all event callback functions of a socket
    • swoole_event_exit - Exit the eventloop, only available at the client side
    • swoole_event_set - Update the event callback functions of a socket
    • swoole_event_wait - Start the event loop
    • swoole_event_write - Write data to a socket
    • swoole_get_local_ip - Get the IPv4 IP addresses of each NIC on the machine
    • swoole_last_error - Get the lastest error message
    • swoole_load_module - Load a swoole extension
    • swoole_select - Select the file descriptions which are ready to read/write or error in the eventloop
    • swoole_set_process_name - Set the process name
    • swoole_strerror - Convert the Errno into error messages
    • swoole_timer_after - Trigger a one time callback function in the future
    • swoole_timer_exists - Check if a timer callback function is existed
    • swoole_timer_tick - Trigger a timer tick callback function by time interval
    • swoole_version - Get the version of Swoole
    • symlink - Bir sembolik bağ oluşturur
    • SyncEvent::fire - Fires/sets the event
    • SyncEvent::reset - Resets a manual event
    • SyncEvent::wait - Waits for the event to be fired/set
    • SyncEvent::__construct - Constructs a new SyncEvent object
    • SyncMutex::lock - Waits for an exclusive lock
    • SyncMutex::unlock - Unlocks the mutex
    • SyncMutex::__construct - Constructs a new SyncMutex object
    • SyncReaderWriter::readlock - Waits for a read lock
    • SyncReaderWriter::readunlock - Releases a read lock
    • SyncReaderWriter::writelock - Waits for an exclusive write lock
    • SyncReaderWriter::writeunlock - Releases a write lock
    • SyncReaderWriter::__construct - Constructs a new SyncReaderWriter object
    • SyncSemaphore::lock - Decreases the count of the semaphore or waits
    • SyncSemaphore::unlock - Increases the count of the semaphore
    • SyncSemaphore::__construct - Constructs a new SyncSemaphore object
    • SyncSharedMemory::first - Check to see if the object is the first instance system-wide of named shared memory
    • SyncSharedMemory::read - Copy data from named shared memory
    • SyncSharedMemory::size - Returns the size of the named shared memory
    • SyncSharedMemory::write - Copy data to named shared memory
    • SyncSharedMemory::__construct - Constructs a new SyncSharedMemory object
    • syslog - Bir sistem günlüğü iletisi üretir
    • system - Belirtilen harici komutu çalıştırır ve çıktısını gösterir
    • sys_getloadavg - Ortalama sistem yükünü döndürür
    • sys_get_temp_dir - Geçici dosyalar için kullanılan dizini döndürür
  • t
    • Table::count - Get row count
    • Table::delete - Delete rows from table
    • Table::existsInDatabase - Check if table exists in database
    • Table::getName - Get table name
    • Table::getSchema - Get table schema
    • Table::getSession - Get table session
    • Table::insert - Insert table rows
    • Table::isView - Check if table is view
    • Table::select - Select rows from table
    • Table::update - Update rows in table
    • Table::__construct - Table constructor
    • TableDelete::bind - Bind delete query parameters
    • TableDelete::execute - Execute delete query
    • TableDelete::limit - Limit deleted rows
    • TableDelete::orderby - Set delete sort criteria
    • TableDelete::where - Set delete search condition
    • TableDelete::__construct - TableDelete constructor
    • TableInsert::execute - Execute insert query
    • TableInsert::values - Add insert row values
    • TableInsert::__construct - TableInsert constructor
    • TableSelect::bind - Bind select query parameters
    • TableSelect::execute - Execute select statement
    • TableSelect::groupBy - Set select grouping criteria
    • TableSelect::having - Set select having condition
    • TableSelect::limit - Limit selected rows
    • TableSelect::lockExclusive - Execute EXCLUSIVE LOCK
    • TableSelect::lockShared - Execute SHARED LOCK
    • TableSelect::offset - Set limit offset
    • TableSelect::orderby - Set select sort criteria
    • TableSelect::where - Set select search condition
    • TableSelect::__construct - TableSelect constructor
    • TableUpdate::bind - Bind update query parameters
    • TableUpdate::execute - Execute update query
    • TableUpdate::limit - Limit update row count
    • TableUpdate::orderby - Set sorting criteria
    • TableUpdate::set - Add field to be updated
    • TableUpdate::where - Set search filter
    • TableUpdate::__construct - TableUpdate constructor
    • taint - Taint a string
    • tan - Tangent
    • tanh - Hyperbolic tangent
    • tcpwrap_check - Bir tcpwrap sınaması yapar
    • tempnam - Eşsiz bir isimle dosya oluşturur
    • textdomain - Öntanımlı uygulama adını tanımlar
    • Thread::getCreatorId - Identification
    • Thread::getCurrentThread - Identification
    • Thread::getCurrentThreadId - Identification
    • Thread::getThreadId - Identification
    • Thread::isJoined - State Detection
    • Thread::isStarted - State Detection
    • Thread::join - Synchronization
    • Thread::start - Execution
    • Threaded::chunk - Manipulation
    • Threaded::count - Manipulation
    • Threaded::extend - Runtime Manipulation
    • Threaded::isRunning - State Detection
    • Threaded::isTerminated - State Detection
    • Threaded::merge - Manipulation
    • Threaded::notify - Synchronization
    • Threaded::notifyOne - Synchronization
    • Threaded::pop - Manipulation
    • Threaded::run - Execution
    • Threaded::shift - Manipulation
    • Threaded::synchronized - Synchronization
    • Threaded::wait - Synchronization
    • Throwable::getCode - İstisna numarasını döndürür
    • Throwable::getFile - Nesnenin oluşturulduğu dosyanın ismini döndürür
    • Throwable::getLine - Nesnenin örneklendiği satır numarasını döndürür
    • Throwable::getMessage - İleti döndürür
    • Throwable::getPrevious - Önceki Throwable sınıfıyla döner
    • Throwable::getTrace - Yığıt izini döndürür
    • Throwable::getTraceAsString - Yığıt izini bir dize olarak döndürür
    • Throwable::__toString - Yavrulanan nesnenin dize gösterimini döndürür
    • tidy::$errorBuffer - Belge çözümlenirken oluşan uyarıları ve hataları döndür
    • tidy::body - Çözümleme ağacının <body> etiketiyle başlayan tidyNode nesnesini döndürür
    • tidy::cleanRepair - Çözümlenen imlenim üzerinde bakım ve onarım yapar
    • tidy::diagnose - Çözümlenen veya onarılan imlenim üzerinde tanılama yapar
    • tidy::getConfig - Geçerli Tidy yapılandırmasını döndürür
    • tidy::getHtmlVer - Belgenin algılanan HTML sürümünü döndürür
    • tidy::getOpt - Belirtilen yapılandırma seçeneğinin değerini döndürür
    • tidy::getOptDoc - Belirtilen seçenekle ilgili belgeyi döndürür
    • tidy::getRelease - Tidy kütüphanesinin dağıtım tarihini döndürür
    • tidy::getStatus - Belgenin durumunu döndürür
    • tidy::head - Çözümleme ağacının <head> etiketiyle başlayan tidyNode nesnesini döndürür
    • tidy::html - Çözümleme ağacının <html> etiketiyle başlayan tidyNode nesnesini döndürür
    • tidy::isXhtml - Belge bir XHTML belge mi diye bakar
    • tidy::isXml - Belge salt bir XML (HTML/XHTML değil) belge mi diye bakar
    • tidy::parseFile - Belirtilen URI veya dosyadaki imlenimi çözümler
    • tidy::parseString - Bir dizge olarak belirtilen bir belgeyi çözümler
    • tidy::repairFile - Bir dosyayı onarıp bir dizge olarak döndürür
    • tidy::repairString - Seçimlik bir yapılandırma dosyasını kullanarak bir dizgeyi onarır
    • tidy::root - Çözümleme ağacının kökünü temsil eden bir tidyNode nesnesi döndürür
    • tidy::__construct - Yeni bir tidy nesnesi oluşturur
    • tidyNode::getParent - Geçerli düğümün ebeveynini döndürür
    • tidyNode::hasChildren - Düğümün çocukları olup olmadığına bakar
    • tidyNode::hasSiblings - Düğümün kardeşleri olup olmadığına bakar
    • tidyNode::isAsp - Düğümün bir ASP düğümü olup olmadığına bakar
    • tidyNode::isComment - Düğüm bir açıklama düğümü mü diye bakar
    • tidyNode::isHtml - Düğümün bir eleman düğümü olup olmadığına bakar
    • tidyNode::isJste - Düğümün bir JSTE düğümü olup olmadığına bakar
    • tidyNode::isPhp - Düğümün bir PHP düğümü olup olmadığına bakar
    • tidyNode::isText - Düğümün bir metin düğümü olup olmadığına bakar
    • tidyNode::__construct - Doğrudan örneklemeyi engellemek için özel kurucu
    • tidy_access_count - Belgede saptanan Tidy erişilebilirlik uyarılarının sayısını döndürür
    • tidy_config_count - Belgede saptanan Tidy yapılandırma hatalarının sayısını döndürür
    • tidy_error_count - Belgede saptanan Tidy hatalarının sayısını döndürür
    • tidy_get_output - Çözümlenen Tidy imlenimini bir dizge olarak döndürür
    • tidy_warning_count - Belgede saptanan Tidy uyarılarının sayısını döndürür
    • time - Geçerli Unix zaman damgasını döndürür
    • timezone_abbreviations_list - DateTimeZone::listAbbreviations işlevinin takma adıdır
    • timezone_identifiers_list - DateTimeZone::listIdentifiers işlevinin takma adıdır
    • timezone_location_get - DateTimeZone::getLocation işlevinin takma adıdır
    • timezone_name_from_abbr - Kısaltmasından ve UTC farkından tahminen zaman diliminin adını döndürür
    • timezone_name_get - DateTimeZone::getName işlevinin takma adıdır
    • timezone_offset_get - DateTimeZone::getOffset işlevinin takma adıdır
    • timezone_open - DateTimeZone::__construct için takma ad
    • timezone_transitions_get - DateTimeZone::getTransitions işlevinin takma adıdır
    • timezone_version_get - timezonedb sürümünü döndürür
    • time_nanosleep - Çalışmayı saniye ve nanosaniye cinsinden geciktirir
    • time_sleep_until - Belirtilen zamana kadar betiği uyutur
    • tmpfile - Geçici bir dosya oluşturur
    • token_get_all - Belirtilen kaynağı PHP dizgeciklerine ayırır
    • token_name - Belirtilen PHP dizgeciğinin simgesel ismini döndürür
    • touch - Dosyanın erişim ve değişiklik zamanını ayarlar
    • trader_acos - Vector Trigonometric ACos
    • trader_ad - Chaikin A/D Line
    • trader_add - Vector Arithmetic Add
    • trader_adosc - Chaikin A/D Oscillator
    • trader_adx - Average Directional Movement Index
    • trader_adxr - Average Directional Movement Index Rating
    • trader_apo - Absolute Price Oscillator
    • trader_aroon - Aroon
    • trader_aroonosc - Aroon Oscillator
    • trader_asin - Vector Trigonometric ASin
    • trader_atan - Vector Trigonometric ATan
    • trader_atr - Average True Range
    • trader_avgprice - Average Price
    • trader_bbands - Bollinger Bands
    • trader_beta - Beta
    • trader_bop - Balance Of Power
    • trader_cci - Commodity Channel Index
    • trader_cdl2crows - Two Crows
    • trader_cdl3blackcrows - Three Black Crows
    • trader_cdl3inside - Three Inside Up/Down
    • trader_cdl3linestrike - Three-Line Strike
    • trader_cdl3outside - Three Outside Up/Down
    • trader_cdl3starsinsouth - Three Stars In The South
    • trader_cdl3whitesoldiers - Three Advancing White Soldiers
    • trader_cdlabandonedbaby - Abandoned Baby
    • trader_cdladvanceblock - Advance Block
    • trader_cdlbelthold - Belt-hold
    • trader_cdlbreakaway - Breakaway
    • trader_cdlclosingmarubozu - Closing Marubozu
    • trader_cdlconcealbabyswall - Concealing Baby Swallow
    • trader_cdlcounterattack - Counterattack
    • trader_cdldarkcloudcover - Dark Cloud Cover
    • trader_cdldoji - Doji
    • trader_cdldojistar - Doji Star
    • trader_cdldragonflydoji - Dragonfly Doji
    • trader_cdlengulfing - Engulfing Pattern
    • trader_cdleveningdojistar - Evening Doji Star
    • trader_cdleveningstar - Evening Star
    • trader_cdlgapsidesidewhite - Up/Down-gap side-by-side white lines
    • trader_cdlgravestonedoji - Gravestone Doji
    • trader_cdlhammer - Hammer
    • trader_cdlhangingman - Hanging Man
    • trader_cdlharami - Harami Pattern
    • trader_cdlharamicross - Harami Cross Pattern
    • trader_cdlhighwave - High-Wave Candle
    • trader_cdlhikkake - Hikkake Pattern
    • trader_cdlhikkakemod - Modified Hikkake Pattern
    • trader_cdlhomingpigeon - Homing Pigeon
    • trader_cdlidentical3crows - Identical Three Crows
    • trader_cdlinneck - In-Neck Pattern
    • trader_cdlinvertedhammer - Inverted Hammer
    • trader_cdlkicking - Kicking
    • trader_cdlkickingbylength - Kicking - bull/bear determined by the longer marubozu
    • trader_cdlladderbottom - Ladder Bottom
    • trader_cdllongleggeddoji - Long Legged Doji
    • trader_cdllongline - Long Line Candle
    • trader_cdlmarubozu - Marubozu
    • trader_cdlmatchinglow - Matching Low
    • trader_cdlmathold - Mat Hold
    • trader_cdlmorningdojistar - Morning Doji Star
    • trader_cdlmorningstar - Morning Star
    • trader_cdlonneck - On-Neck Pattern
    • trader_cdlpiercing - Piercing Pattern
    • trader_cdlrickshawman - Rickshaw Man
    • trader_cdlrisefall3methods - Rising/Falling Three Methods
    • trader_cdlseparatinglines - Separating Lines
    • trader_cdlshootingstar - Shooting Star
    • trader_cdlshortline - Short Line Candle
    • trader_cdlspinningtop - Spinning Top
    • trader_cdlstalledpattern - Stalled Pattern
    • trader_cdlsticksandwich - Stick Sandwich
    • trader_cdltakuri - Takuri (Dragonfly Doji with very long lower shadow)
    • trader_cdltasukigap - Tasuki Gap
    • trader_cdlthrusting - Thrusting Pattern
    • trader_cdltristar - Tristar Pattern
    • trader_cdlunique3river - Unique 3 River
    • trader_cdlupsidegap2crows - Upside Gap Two Crows
    • trader_cdlxsidegap3methods - Upside/Downside Gap Three Methods
    • trader_ceil - Vector Ceil
    • trader_cmo - Chande Momentum Oscillator
    • trader_correl - Pearson's Correlation Coefficient (r)
    • trader_cos - Vector Trigonometric Cos
    • trader_cosh - Vector Trigonometric Cosh
    • trader_dema - Double Exponential Moving Average
    • trader_div - Vector Arithmetic Div
    • trader_dx - Directional Movement Index
    • trader_ema - Exponential Moving Average
    • trader_errno - Get error code
    • trader_exp - Vector Arithmetic Exp
    • trader_floor - Vector Floor
    • trader_get_compat - Get compatibility mode
    • trader_get_unstable_period - Get unstable period
    • trader_ht_dcperiod - Hilbert Transform - Dominant Cycle Period
    • trader_ht_dcphase - Hilbert Transform - Dominant Cycle Phase
    • trader_ht_phasor - Hilbert Transform - Phasor Components
    • trader_ht_sine - Hilbert Transform - SineWave
    • trader_ht_trendline - Hilbert Transform - Instantaneous Trendline
    • trader_ht_trendmode - Hilbert Transform - Trend vs Cycle Mode
    • trader_kama - Kaufman Adaptive Moving Average
    • trader_linearreg - Linear Regression
    • trader_linearreg_angle - Linear Regression Angle
    • trader_linearreg_intercept - Linear Regression Intercept
    • trader_linearreg_slope - Linear Regression Slope
    • trader_ln - Vector Log Natural
    • trader_log10 - Vector Log10
    • trader_ma - Moving average
    • trader_macd - Moving Average Convergence/Divergence
    • trader_macdext - MACD with controllable MA type
    • trader_macdfix - Moving Average Convergence/Divergence Fix 12/26
    • trader_mama - MESA Adaptive Moving Average
    • trader_mavp - Moving average with variable period
    • trader_max - Highest value over a specified period
    • trader_maxindex - Index of highest value over a specified period
    • trader_medprice - Median Price
    • trader_mfi - Money Flow Index
    • trader_midpoint - MidPoint over period
    • trader_midprice - Midpoint Price over period
    • trader_min - Lowest value over a specified period
    • trader_minindex - Index of lowest value over a specified period
    • trader_minmax - Lowest and highest values over a specified period
    • trader_minmaxindex - Indexes of lowest and highest values over a specified period
    • trader_minus_di - Minus Directional Indicator
    • trader_minus_dm - Minus Directional Movement
    • trader_mom - Momentum
    • trader_mult - Vector Arithmetic Mult
    • trader_natr - Normalized Average True Range
    • trader_obv - On Balance Volume
    • trader_plus_di - Plus Directional Indicator
    • trader_plus_dm - Plus Directional Movement
    • trader_ppo - Percentage Price Oscillator
    • trader_roc - Rate of change : ((price/prevPrice)-1)*100
    • trader_rocp - Rate of change Percentage: (price-prevPrice)/prevPrice
    • trader_rocr - Rate of change ratio: (price/prevPrice)
    • trader_rocr100 - Rate of change ratio 100 scale: (price/prevPrice)*100
    • trader_rsi - Relative Strength Index
    • trader_sar - Parabolic SAR
    • trader_sarext - Parabolic SAR - Extended
    • trader_set_compat - Set compatibility mode
    • trader_set_unstable_period - Set unstable period
    • trader_sin - Vector Trigonometric Sin
    • trader_sinh - Vector Trigonometric Sinh
    • trader_sma - Simple Moving Average
    • trader_sqrt - Vector Square Root
    • trader_stddev - Standard Deviation
    • trader_stoch - Stochastic
    • trader_stochf - Stochastic Fast
    • trader_stochrsi - Stochastic Relative Strength Index
    • trader_sub - Vector Arithmetic Subtraction
    • trader_sum - Summation
    • trader_t3 - Triple Exponential Moving Average (T3)
    • trader_tan - Vector Trigonometric Tan
    • trader_tanh - Vector Trigonometric Tanh
    • trader_tema - Triple Exponential Moving Average
    • trader_trange - True Range
    • trader_trima - Triangular Moving Average
    • trader_trix - 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA
    • trader_tsf - Time Series Forecast
    • trader_typprice - Typical Price
    • trader_ultosc - Ultimate Oscillator
    • trader_var - Variance
    • trader_wclprice - Weighted Close Price
    • trader_willr - Williams' %R
    • trader_wma - Weighted Moving Average
    • trait_exists - Niteliğin mevcudiyetine bakar
    • Transliterator::create - Create a transliterator
    • Transliterator::createFromRules - Create transliterator from rules
    • Transliterator::createInverse - Create an inverse transliterator
    • Transliterator::getErrorCode - Get last error code
    • Transliterator::getErrorMessage - Get last error message
    • Transliterator::listIDs - Get transliterator IDs
    • Transliterator::transliterate - Transliterate a string
    • Transliterator::__construct - Private constructor to deny instantiation
    • trigger_error - Kullanıcı seviyesinde bir hata/uyarı/bilgi iletisi üretir
    • trim - Dizgenin başındaki ve sonundaki boşlukları (veya diğer karakterleri) budar
  • u
    • uasort - Bir diziyi kullanıcı tanımlı bir işlev kullanarak indislerine göre sıralarken anahtar/değer ilişkisini korur
    • ucfirst - Dizgenin ilk karakterini büyük harfe çevirir
    • UConverter::convert - Convert string from one charset to another
    • UConverter::fromUCallback - Default "from" callback function
    • UConverter::getAliases - Get the aliases of the given name
    • UConverter::getAvailable - Get the available canonical converter names
    • UConverter::getDestinationEncoding - Get the destination encoding
    • UConverter::getDestinationType - Get the destination converter type
    • UConverter::getErrorCode - Get last error code on the object
    • UConverter::getErrorMessage - Get last error message on the object
    • UConverter::getSourceEncoding - Get the source encoding
    • UConverter::getSourceType - Get the source converter type
    • UConverter::getStandards - Get standards associated to converter names
    • UConverter::getSubstChars - Get substitution chars
    • UConverter::reasonText - Get string representation of the callback reason
    • UConverter::setDestinationEncoding - Set the destination encoding
    • UConverter::setSourceEncoding - Set the source encoding
    • UConverter::setSubstChars - Set the substitution chars
    • UConverter::toUCallback - Default "to" callback function
    • UConverter::transcode - Convert a string from one character encoding to another
    • UConverter::__construct - Create UConverter object
    • ucwords - Dizgedeki her sözcüğün ilk harfini büyük harf yapar
    • UI\Area::onDraw - Draw Callback
    • UI\Area::onKey - Key Callback
    • UI\Area::onMouse - Mouse Callback
    • UI\Area::redraw - Redraw Area
    • UI\Area::scrollTo - Area Scroll
    • UI\Area::setSize - Set Size
    • UI\Control::destroy - Destroy Control
    • UI\Control::disable - Disable Control
    • UI\Control::enable - Enable Control
    • UI\Control::getParent - Get Parent Control
    • UI\Control::getTopLevel - Get Top Level
    • UI\Control::hide - Hide Control
    • UI\Control::isEnabled - Determine if Control is enabled
    • UI\Control::isVisible - Determine if Control is visible
    • UI\Control::setParent - Set Parent Control
    • UI\Control::show - Control Show
    • UI\Controls\Box::append - Append Control
    • UI\Controls\Box::delete - Delete Control
    • UI\Controls\Box::getOrientation - Get Orientation
    • UI\Controls\Box::isPadded - Padding Detection
    • UI\Controls\Box::setPadded - Set Padding
    • UI\Controls\Box::__construct - Construct a new Box
    • UI\Controls\Button::getText - Get Text
    • UI\Controls\Button::onClick - Click Handler
    • UI\Controls\Button::setText - Set Text
    • UI\Controls\Button::__construct - Construct a new Button
    • UI\Controls\Check::getText - Get Text
    • UI\Controls\Check::isChecked - Checked Detection
    • UI\Controls\Check::onToggle - Toggle Callback
    • UI\Controls\Check::setChecked - Set Checked
    • UI\Controls\Check::setText - Set Text
    • UI\Controls\Check::__construct - Construct a new Check
    • UI\Controls\ColorButton::getColor - Get Color
    • UI\Controls\ColorButton::onChange - Change Handler
    • UI\Controls\ColorButton::setColor - Set Color
    • UI\Controls\Combo::append - Append Option
    • UI\Controls\Combo::getSelected - Get Selected Option
    • UI\Controls\Combo::onSelected - Selected Handler
    • UI\Controls\Combo::setSelected - Set Selected Option
    • UI\Controls\EditableCombo::append - Append Option
    • UI\Controls\EditableCombo::getText - Get Text
    • UI\Controls\EditableCombo::onChange - Change Handler
    • UI\Controls\EditableCombo::setText - Set Text
    • UI\Controls\Entry::getText - Get Text
    • UI\Controls\Entry::isReadOnly - Detect Read Only
    • UI\Controls\Entry::onChange - Change Handler
    • UI\Controls\Entry::setReadOnly - Set Read Only
    • UI\Controls\Entry::setText - Set Text
    • UI\Controls\Entry::__construct - Construct a new Entry
    • UI\Controls\Form::append - Append Control
    • UI\Controls\Form::delete - Delete Control
    • UI\Controls\Form::isPadded - Padding Detection
    • UI\Controls\Form::setPadded - Set Padding
    • UI\Controls\Grid::append - Append Control
    • UI\Controls\Grid::isPadded - Padding Detection
    • UI\Controls\Grid::setPadded - Set Padding
    • UI\Controls\Group::append - Append Control
    • UI\Controls\Group::getTitle - Get Title
    • UI\Controls\Group::hasMargin - Margin Detection
    • UI\Controls\Group::setMargin - Set Margin
    • UI\Controls\Group::setTitle - Set Title
    • UI\Controls\Group::__construct - Construct a new Group
    • UI\Controls\Label::getText - Get Text
    • UI\Controls\Label::setText - Set Text
    • UI\Controls\Label::__construct - Construct a new Label
    • UI\Controls\MultilineEntry::append - Append Text
    • UI\Controls\MultilineEntry::getText - Get Text
    • UI\Controls\MultilineEntry::isReadOnly - Read Only Detection
    • UI\Controls\MultilineEntry::onChange - Change Handler
    • UI\Controls\MultilineEntry::setReadOnly - Set Read Only
    • UI\Controls\MultilineEntry::setText - Set Text
    • UI\Controls\MultilineEntry::__construct - Construct a new Multiline Entry
    • UI\Controls\Picker::__construct - Construct a new Picker
    • UI\Controls\Progress::getValue - Get Value
    • UI\Controls\Progress::setValue - Set Value
    • UI\Controls\Radio::append - Append Option
    • UI\Controls\Radio::getSelected - Get Selected Option
    • UI\Controls\Radio::onSelected - Selected Handler
    • UI\Controls\Radio::setSelected - Set Selected Option
    • UI\Controls\Separator::__construct - Construct a new Separator
    • UI\Controls\Slider::getValue - Get Value
    • UI\Controls\Slider::onChange - Change Handler
    • UI\Controls\Slider::setValue - Set Value
    • UI\Controls\Slider::__construct - Construct a new Slider
    • UI\Controls\Spin::getValue - Get Value
    • UI\Controls\Spin::onChange - Change Handler
    • UI\Controls\Spin::setValue - Set Value
    • UI\Controls\Spin::__construct - Construct a new Spin
    • UI\Controls\Tab::append - Append Page
    • UI\Controls\Tab::delete - Delete Page
    • UI\Controls\Tab::hasMargin - Margin Detection
    • UI\Controls\Tab::insertAt - Insert Page
    • UI\Controls\Tab::pages - Page Count
    • UI\Controls\Tab::setMargin - Set Margin
    • UI\Draw\Brush::getColor - Get Color
    • UI\Draw\Brush::setColor - Set Color
    • UI\Draw\Brush::__construct - Construct a new Brush
    • UI\Draw\Brush\Gradient::addStop - Stop Manipulation
    • UI\Draw\Brush\Gradient::delStop - Stop Manipulation
    • UI\Draw\Brush\Gradient::setStop - Stop Manipulation
    • UI\Draw\Brush\LinearGradient::__construct - Construct a Linear Gradient
    • UI\Draw\Brush\RadialGradient::__construct - Construct a new Radial Gradient
    • UI\Draw\Color::getChannel - Color Manipulation
    • UI\Draw\Color::setChannel - Color Manipulation
    • UI\Draw\Color::__construct - Construct new Color
    • UI\Draw\Matrix::invert - Invert Matrix
    • UI\Draw\Matrix::isInvertible - Invertible Detection
    • UI\Draw\Matrix::multiply - Multiply Matrix
    • UI\Draw\Matrix::rotate - Rotate Matrix
    • UI\Draw\Matrix::scale - Scale Matrix
    • UI\Draw\Matrix::skew - Skew Matrix
    • UI\Draw\Matrix::translate - Translate Matrix
    • UI\Draw\Path::addRectangle - Draw a Rectangle
    • UI\Draw\Path::arcTo - Draw an Arc
    • UI\Draw\Path::bezierTo - Draw Bezier Curve
    • UI\Draw\Path::closeFigure - Close Figure
    • UI\Draw\Path::end - Finalize Path
    • UI\Draw\Path::lineTo - Draw a Line
    • UI\Draw\Path::newFigure - Draw Figure
    • UI\Draw\Path::newFigureWithArc - Draw Figure with Arc
    • UI\Draw\Path::__construct - Construct a new Path
    • UI\Draw\Pen::clip - Clip a Path
    • UI\Draw\Pen::fill - Fill a Path
    • UI\Draw\Pen::restore - Restore
    • UI\Draw\Pen::save - Save
    • UI\Draw\Pen::stroke - Stroke a Path
    • UI\Draw\Pen::transform - Matrix Transform
    • UI\Draw\Pen::write - Draw Text at Point
    • UI\Draw\Stroke::getCap - Get Line Cap
    • UI\Draw\Stroke::getJoin - Get Line Join
    • UI\Draw\Stroke::getMiterLimit - Get Miter Limit
    • UI\Draw\Stroke::getThickness - Get Thickness
    • UI\Draw\Stroke::setCap - Set Line Cap
    • UI\Draw\Stroke::setJoin - Set Line Join
    • UI\Draw\Stroke::setMiterLimit - Set Miter Limit
    • UI\Draw\Stroke::setThickness - Set Thickness
    • UI\Draw\Stroke::__construct - Construct a new Stroke
    • UI\Draw\Text\Font::getAscent - Font Metrics
    • UI\Draw\Text\Font::getDescent - Font Metrics
    • UI\Draw\Text\Font::getLeading - Font Metrics
    • UI\Draw\Text\Font::getUnderlinePosition - Font Metrics
    • UI\Draw\Text\Font::getUnderlineThickness - Font Metrics
    • UI\Draw\Text\Font::__construct - Construct a new Font
    • UI\Draw\Text\Font\Descriptor::getFamily - Get Font Family
    • UI\Draw\Text\Font\Descriptor::getItalic - Style Detection
    • UI\Draw\Text\Font\Descriptor::getSize - Size Detection
    • UI\Draw\Text\Font\Descriptor::getStretch - Style Detection
    • UI\Draw\Text\Font\Descriptor::getWeight - Weight Detection
    • UI\Draw\Text\Font\Descriptor::__construct - Construct a new Font Descriptor
    • UI\Draw\Text\Font\fontFamilies - Retrieve Font Families
    • UI\Draw\Text\Layout::setColor - Set Color
    • UI\Draw\Text\Layout::setWidth - Set Width
    • UI\Draw\Text\Layout::__construct - Construct a new Text Layout
    • UI\Executor::kill - Stop Executor
    • UI\Executor::onExecute - Execution Callback
    • UI\Executor::setInterval - Interval Manipulation
    • UI\Executor::__construct - Construct a new Executor
    • UI\Menu::append - Append Menu Item
    • UI\Menu::appendAbout - Append About Menu Item
    • UI\Menu::appendCheck - Append Checkable Menu Item
    • UI\Menu::appendPreferences - Append Preferences Menu Item
    • UI\Menu::appendQuit - Append Quit Menu Item
    • UI\Menu::appendSeparator - Append Menu Item Separator
    • UI\Menu::__construct - Construct a new Menu
    • UI\MenuItem::disable - Disable Menu Item
    • UI\MenuItem::enable - Enable Menu Item
    • UI\MenuItem::isChecked - Detect Checked
    • UI\MenuItem::onClick - On Click Callback
    • UI\MenuItem::setChecked - Set Checked
    • UI\Point::at - Size Coercion
    • UI\Point::getX - Retrieves X
    • UI\Point::getY - Retrieves Y
    • UI\Point::setX - Set X
    • UI\Point::setY - Set Y
    • UI\Point::__construct - Construct a new Point
    • UI\quit - Quit UI Loop
    • UI\run - Enter UI Loop
    • UI\Size::getHeight - Retrieves Height
    • UI\Size::getWidth - Retrives Width
    • UI\Size::of - Point Coercion
    • UI\Size::setHeight - Set Height
    • UI\Size::setWidth - Set Width
    • UI\Size::__construct - Construct a new Size
    • UI\Window::add - Add a Control
    • UI\Window::error - Show Error Box
    • UI\Window::getSize - Get Window Size
    • UI\Window::getTitle - Get Title
    • UI\Window::hasBorders - Border Detection
    • UI\Window::hasMargin - Margin Detection
    • UI\Window::isFullScreen - Full Screen Detection
    • UI\Window::msg - Show Message Box
    • UI\Window::onClosing - Closing Callback
    • UI\Window::open - Open Dialog
    • UI\Window::save - Save Dialog
    • UI\Window::setBorders - Border Use
    • UI\Window::setFullScreen - Full Screen Use
    • UI\Window::setMargin - Margin Use
    • UI\Window::setSize - Set Size
    • UI\Window::setTitle - Window Title
    • UI\Window::__construct - Construct a new Window
    • uksort - Bir diziyi kullanıcı tanımlı bir işlev kullanarak anahtarlarına göre sıralar
    • umask - Geçerli izin maskesini değiştirir
    • uniqid - Eşsiz bir kimlik dizgesi üretir
    • UnitEnum::cases - Bir sayılamadan kılıf listesi oluşturur
    • unixtojd - Unix zaman damgasını, Jülyen Gün Sayısına çevirir
    • unlink - Bir dosyayı siler
    • unpack - Paketlenmiş bir ikil dizgeden verileri ayrıştırır
    • unregister_tick_function - Her tikte çalıştırılacak işlevi tanımsız yapar
    • unserialize - Bir PHP değerini saklanmış gösteriminden oluşturur
    • unset - Belirtilen değişkeni bildirimsiz yapar
    • untaint - Untaint strings
    • uopz_add_function - Adds non-existent function or method
    • uopz_allow_exit - Allows control over disabled exit opcode
    • uopz_backup - Backup a function
    • uopz_compose - Compose a class
    • uopz_copy - Copy a function
    • uopz_delete - Delete a function
    • uopz_del_function - Deletes previously added function or method
    • uopz_extend - Extend a class at runtime
    • uopz_flags - Get or set flags on function or class
    • uopz_function - Creates a function at runtime
    • uopz_get_exit_status - Retrieve the last set exit status
    • uopz_get_hook - Gets previously set hook on function or method
    • uopz_get_mock - Get the current mock for a class
    • uopz_get_property - Gets value of class or instance property
    • uopz_get_return - Gets a previous set return value for a function
    • uopz_get_static - Gets the static variables from function or method scope
    • uopz_implement - Implements an interface at runtime
    • uopz_overload - Overload a VM opcode
    • uopz_redefine - Redefine a constant
    • uopz_rename - Rename a function at runtime
    • uopz_restore - Restore a previously backed up function
    • uopz_set_hook - Sets hook to execute when entering a function or method
    • uopz_set_mock - Use mock instead of class for new objects
    • uopz_set_property - Sets value of existing class or instance property
    • uopz_set_return - Provide a return value for an existing function
    • uopz_set_static - Sets the static variables in function or method scope
    • uopz_undefine - Undefine a constant
    • uopz_unset_hook - Removes previously set hook on function or method
    • uopz_unset_mock - Unset previously set mock
    • uopz_unset_return - Unsets a previously set return value for a function
    • urldecode - URL kodlamalı dizgenin kodlamasını çözer
    • urlencode - Dizgeye URL kodlaması uygular
    • user_error - trigger_error işlevinin takma adıdır
    • use_soap_error_handler - Set whether to use the SOAP error handler
    • usleep - Çalışmayı mikrosaniye cinsinden geciktirir
    • usort - Bir diziyi kullanıcı tanımlı bir işlev kullanarak değerlerine göre sıralar
    • utf8_decode - Dizgenin kodlamasını ISO-8859-1'den' UTF-8'e dönüştürür
    • utf8_encode - ISO-8859-1 dizgeyi UTF-8'e dönüştürür
  • v
    • V8Js::executeString - Execute a string as Javascript code
    • V8Js::getExtensions - Return an array of registered extensions
    • V8Js::getPendingException - Return pending uncaught Javascript exception
    • V8Js::registerExtension - Register Javascript extensions for V8Js
    • V8Js::__construct - Construct a new V8Js object
    • V8JsException::getJsFileName - The getJsFileName purpose
    • V8JsException::getJsLineNumber - The getJsLineNumber purpose
    • V8JsException::getJsSourceLine - The getJsSourceLine purpose
    • V8JsException::getJsTrace - The getJsTrace purpose
    • variant::__construct - variant nesnesi oluşturur
    • variant_abs - Bir değerin mutlak değerini döndürür
    • variant_add - İki varyant değeri birleştirir ve sonucu geri döndürür
    • variant_and - İki varyant üzerinde ikilik VE işlemi yapar
    • variant_cast - Varyantı başka türde bir varyant nesneye dönüştürür
    • variant_cat - İki varyant değeri birleştirir ve sonucu geri döndürür
    • variant_cmp - İki varyant değerini karşılaştırır
    • variant_date_from_timestamp - Unix zaman damgasının varyant tarih gösterimini döndürür
    • variant_date_to_timestamp - Varyant tarih/zaman değerini Unix zaman damgasına çevirir
    • variant_div - İki varyant değerin bölme sonucunu döndürür
    • variant_eqv - İki varyant arasında ikilik denklik karşılaştırması yapar
    • variant_fix - Varyantın tamsayı kısmını geri döndürür
    • variant_get_type - Varyant nesnenin türünü geri döndürür
    • variant_idiv - Varyant değerleri tamsayıya çevirir ve bölme yaparak sonucu döndürür
    • variant_imp - İki varyant üzerinde ikilik çıkarım yapar
    • variant_int - Değerin tamsayı kısmını döndürür
    • variant_mod - İki varyantın bölme işleminden kalanı geri döndürür
    • variant_mul - İki varyant değerleri için çarpma işlemi yapar
    • variant_neg - Bir değer üzerinde mantıksal değil işlemi yapar
    • variant_not - Bir varyant üzerinde ikilik değil işlemi yapar
    • variant_or - İki varyant üzerinde mantıksal ayırma işlemi yapar
    • variant_pow - Üs alma işlemi yaparak sonucu döndürür
    • variant_round - Bir varyantı verilen ondalık basamağa yuvarlar
    • variant_set - Varyant nesnesine yeni bir değer verir
    • variant_set_type - Varyantı başka bir türe "yerinde" dönüştürür
    • variant_sub - Sağ varyant değerini sol varyant değerinden çıkartır
    • variant_xor - İki varyant arasında mantıksal çıkarma yapar
    • VarnishAdmin::auth - Authenticate on a varnish instance
    • VarnishAdmin::ban - Ban URLs using a VCL expression
    • VarnishAdmin::banUrl - Ban an URL using a VCL expression
    • VarnishAdmin::clearPanic - Clear varnish instance panic messages
    • VarnishAdmin::connect - Connect to a varnish instance administration interface
    • VarnishAdmin::disconnect - Disconnect from a varnish instance administration interface
    • VarnishAdmin::getPanic - Get the last panic message on a varnish instance
    • VarnishAdmin::getParams - Fetch current varnish instance configuration parameters
    • VarnishAdmin::isRunning - Check if the varnish slave process is currently running
    • VarnishAdmin::setCompat - Set the class compat configuration param
    • VarnishAdmin::setHost - Set the class host configuration param
    • VarnishAdmin::setIdent - Set the class ident configuration param
    • VarnishAdmin::setParam - Set configuration param on the current varnish instance
    • VarnishAdmin::setPort - Set the class port configuration param
    • VarnishAdmin::setSecret - Set the class secret configuration param
    • VarnishAdmin::setTimeout - Set the class timeout configuration param
    • VarnishAdmin::start - Start varnish worker process
    • VarnishAdmin::stop - Stop varnish worker process
    • VarnishAdmin::__construct - VarnishAdmin constructor
    • VarnishLog::getLine - Get next log line
    • VarnishLog::getTagName - Get the log tag string representation by its index
    • VarnishLog::__construct - Varnishlog constructor
    • VarnishStat::getSnapshot - Get the current varnish instance statistics snapshot
    • VarnishStat::__construct - VarnishStat constructor
    • var_dump - Bir değişkenle ilgili bilgiyi dökümler
    • var_export - Bir değişkenin çözümlenebilir dizge gösterimini döndürür veya çıktılar
    • var_representation - Returns a short, readable, parsable string representation of a variable
    • version_compare - PHP standardına uygun hale getirilmiş iki sürüm numarası dizgesini karşılaştırır
    • vfprintf - Biçemli dizgeyi bir akıma yazar
    • virtual - Bir Apache alt isteği gerçekleştirir
    • vprintf - Biçemli bir dizge çıktılar
    • vsprintf - Biçemli bir dizge döndürür
    • Vtiful\Kernel\Excel::addSheet - Vtiful\Kernel\Excel addSheet
    • Vtiful\Kernel\Excel::autoFilter - Vtiful\Kernel\Excel autoFilter
    • Vtiful\Kernel\Excel::constMemory - Vtiful\Kernel\Excel constMemory
    • Vtiful\Kernel\Excel::data - Vtiful\Kernel\Excel data
    • Vtiful\Kernel\Excel::fileName - Vtiful\Kernel\Excel fileName
    • Vtiful\Kernel\Excel::getHandle - Vtiful\Kernel\Excel getHandle
    • Vtiful\Kernel\Excel::header - Vtiful\Kernel\Excel header
    • Vtiful\Kernel\Excel::insertFormula - Vtiful\Kernel\Excel insertFormula
    • Vtiful\Kernel\Excel::insertImage - Vtiful\Kernel\Excel insertImage
    • Vtiful\Kernel\Excel::insertText - Vtiful\Kernel\Excel insertText
    • Vtiful\Kernel\Excel::mergeCells - Vtiful\Kernel\Excel mergeCells
    • Vtiful\Kernel\Excel::output - Vtiful\Kernel\Excel output
    • Vtiful\Kernel\Excel::setColumn - Vtiful\Kernel\Excel setColumn
    • Vtiful\Kernel\Excel::setRow - Vtiful\Kernel\Excel setRow
    • Vtiful\Kernel\Excel::__construct - Vtiful\Kernel\Excel constructor
    • Vtiful\Kernel\Format::align - Vtiful\Kernel\Format align
    • Vtiful\Kernel\Format::bold - Vtiful\Kernel\Format bold
    • Vtiful\Kernel\Format::italic - Vtiful\Kernel\Format italic
    • Vtiful\Kernel\Format::underline - Vtiful\Kernel\Format underline
  • w
    • Warning::__construct - Warning constructor
    • wddx_add_vars - Tanıtıcısı belirtilen WDDX paketine değişken ekler
    • wddx_deserialize - WDDX paketini nesneleştirir
    • wddx_packet_end - Tanıtıcısı belirtilen WDDX paketini kapatır
    • wddx_packet_start - Bir veri yapısı içeren yeni bir WDDX paketi başlatır
    • wddx_serialize_value - Tek bir değeri bir WDDX paketi içinde dizgeleştirir
    • wddx_serialize_vars - Değişkenleri bir WDDX paketi olarak dizgeleştirir
    • WeakMap::count - Haritadaki canlı girdileri sayar
    • WeakMap::getIterator - Harici bir yineleyici ile döner
    • WeakMap::offsetExists - Haritada belli bir nesnenin varlığına bakar
    • WeakMap::offsetGet - Belirli bir nesnenin işaret ettiği değeri verir
    • WeakMap::offsetSet - Yeni bir anahtar-değer çiftiyle haritayı günceller
    • WeakMap::offsetUnset - Haritadan bir girdiyi siler
    • WeakReference::create - Yeni bir zayıf gönderim oluşturur
    • WeakReference::get - Zayıf gönderimli bir nesne döndürür
    • WeakReference::__construct - Örneklemeye izin vermeyen kurucu
    • win32_continue_service - Resumes a paused service
    • win32_create_service - Hizmet yönetim veritabanında yeni bir hizmet girdisi oluşturur
    • win32_delete_service - Bir hizmet girdisini Hizmet yönetim veritabanından siler
    • win32_get_last_control_message - Hizmete gönderilmiş son denetim kodunu döndürür
    • win32_pause_service - Pauses a service
    • win32_query_service_status - Bir hizmetin durumunu sorgular
    • win32_send_custom_control - Send a custom control to the service
    • win32_set_service_exit_code - Define or return the exit code for the current running service
    • win32_set_service_exit_mode - Define or return the exit mode for the current running service
    • win32_set_service_status - Hizmet durumunu günceller
    • win32_start_service - Bir hizmeti başlatır
    • win32_start_service_ctrl_dispatcher - Hizmet yöneticisine ismi belirtilen hizmet gibi davranacak bir betik tanıtır
    • win32_stop_service - Bir hizmeti durdurur
    • wincache_fcache_fileinfo - Retrieves information about files cached in the file cache
    • wincache_fcache_meminfo - Retrieves information about file cache memory usage
    • wincache_lock - Acquires an exclusive lock on a given key
    • wincache_ocache_fileinfo - Retrieves information about files cached in the opcode cache
    • wincache_ocache_meminfo - Retrieves information about opcode cache memory usage
    • wincache_refresh_if_changed - Refreshes the cache entries for the cached files
    • wincache_rplist_fileinfo - Retrieves information about resolve file path cache
    • wincache_rplist_meminfo - Retrieves information about memory usage by the resolve file path cache
    • wincache_scache_info - Retrieves information about files cached in the session cache
    • wincache_scache_meminfo - Retrieves information about session cache memory usage
    • wincache_ucache_add - Adds a variable in user cache only if variable does not already exist in the cache
    • wincache_ucache_cas - Compares the variable with old value and assigns new value to it
    • wincache_ucache_clear - Deletes entire content of the user cache
    • wincache_ucache_dec - Decrements the value associated with the key
    • wincache_ucache_delete - Deletes variables from the user cache
    • wincache_ucache_exists - Checks if a variable exists in the user cache
    • wincache_ucache_get - Gets a variable stored in the user cache
    • wincache_ucache_inc - Increments the value associated with the key
    • wincache_ucache_info - Retrieves information about data stored in the user cache
    • wincache_ucache_meminfo - Retrieves information about user cache memory usage
    • wincache_ucache_set - Adds a variable in user cache and overwrites a variable if it already exists in the cache
    • wincache_unlock - Releases an exclusive lock on a given key
    • wkhtmltox\Image\Converter::convert - Perform Image conversion
    • wkhtmltox\Image\Converter::getVersion - Determine version of Converter
    • wkhtmltox\Image\Converter::__construct - Create a new Image converter
    • wkhtmltox\PDF\Converter::add - Add an object for conversion
    • wkhtmltox\PDF\Converter::convert - Perform PDF conversion
    • wkhtmltox\PDF\Converter::getVersion - Determine version of Converter
    • wkhtmltox\PDF\Converter::__construct - Create a new PDF converter
    • wkhtmltox\PDF\Object::__construct - Create a new PDF Object
    • wordwrap - Bir dizgeyi belli bir uzunlukta katlar
    • Worker::collect - Collect references to completed tasks
    • Worker::getStacked - Gets the remaining stack size
    • Worker::isShutdown - State Detection
    • Worker::shutdown - Shutdown the worker
    • Worker::stack - Stacking work
    • Worker::unstack - Unstacking work
  • x
    • xattr_get - Bir özniteliğin değerini döndürür
    • xattr_list - Ek özniteliklerin listesini döndürür
    • xattr_remove - Bir ek özniteliği siler
    • xattr_set - Bir ek özniteliği tanımlar
    • xattr_supported - Dosya sistemi ek öznitelikleri destekliyor mu diye bakar
    • xdiff_file_bdiff - İki dosyanın ikil farkını alır
    • xdiff_file_bdiff_size - Belirtilen ikil yama uygulanarak oluşturulacak dosyanın boyutunu döndürür
    • xdiff_file_bpatch - Bir dosyaya bir ikil yama uygular
    • xdiff_file_diff - İki dosyanın tekil farkını alır
    • xdiff_file_diff_binary - xdiff_file_bdiff işlevinin takma adıdır
    • xdiff_file_merge3 - Üç dosyayı tek dosya haline getirir
    • xdiff_file_patch - Bir dosyaya bir tekil yama uygular
    • xdiff_file_patch_binary - xdiff_file_bpatch işlevinin takma adıdır
    • xdiff_file_rabdiff - Rabin'in çok terimli parmakizi algoritmasını kullanarak iki dizgenin ikil olarak farkını alır
    • xdiff_string_bdiff - İki dizgenin ikil farkını alır
    • xdiff_string_bdiff_size - Belirtilen ikil yama uygulanarak oluşturulacak dosyanın boyutunu döndürür
    • xdiff_string_bpatch - Bir dizgeyi bir ikil fark dizgesiyle yamar
    • xdiff_string_diff - İki dizgenin tekil farkını alır
    • xdiff_string_diff_binary - xdiff_string_bdiff işlevinin takma adıdır
    • xdiff_string_merge3 - Üç dizgeyi tek bir dizge haline getirir
    • xdiff_string_patch - Bir dizgeyi bir tekil fark dizgesi ile yamar
    • xdiff_string_patch_binary - xdiff_string_bpatch işlevinin takma adıdır
    • xdiff_string_rabdiff - Rabin'in çok terimli parmakizi algoritmasını kullanarak iki dizgenin ikil olarak farkını alır
    • xhprof_disable - Stops xhprof profiler
    • xhprof_enable - Start xhprof profiler
    • xhprof_sample_disable - Stops xhprof sample profiler
    • xhprof_sample_enable - Start XHProf profiling in sampling mode
    • XMLDiff\Base::diff - Produce diff of two XML documents
    • XMLDiff\Base::merge - Produce new XML document based on diff
    • XMLDiff\Base::__construct - Constructor
    • XMLDiff\DOM::diff - Diff two DOMDocument objects
    • XMLDiff\DOM::merge - Produce merged DOMDocument
    • XMLDiff\File::diff - Diff two XML files
    • XMLDiff\File::merge - Produce merged XML document
    • XMLDiff\Memory::diff - Diff two XML documents
    • XMLDiff\Memory::merge - Produce merged XML document
    • XMLReader::close - XMLReader girdisini kapatır
    • XMLReader::expand - Geçerli düğümün bir kopyasını bir DOM nesnesi olarak döndürür
    • XMLReader::getAttribute - İsmi belirtilen özniteliğin değerini döndürür
    • XMLReader::getAttributeNo - İndisi belirtilen özniteliğin değerini döndürür
    • XMLReader::getAttributeNs - İsmi ve isim alanı belirtilen özniteliğin değerini döndürür
    • XMLReader::getParserProperty - Belirtilen özelliğin tanımlı olup olmadığına bakar
    • XMLReader::isValid - Çözümlenen düğümün geçerliliğini sınar
    • XMLReader::lookupNamespace - Bir önek için isim alanına bakar
    • XMLReader::moveToAttribute - İmleci ismi belirtilen özniteliğe konumlar
    • XMLReader::moveToAttributeNo - İmleci indisi belirtilen özniteliğe götürür
    • XMLReader::moveToAttributeNs - İmleci isimli özniteliğe götürür
    • XMLReader::moveToElement - İmleci geçerli özniteliğin ebeveyn elemanına konumlar
    • XMLReader::moveToFirstAttribute - İmleci ilk özniteliğe konumlar
    • XMLReader::moveToNextAttribute - İmleci sonraki özniteliğe konumlar
    • XMLReader::next - Alt ağaçların tümünü atlayıp sonraki düğüme gider
    • XMLReader::open - Çözemlenecek XML belgeyi içeren adresi belirler
    • XMLReader::read - Belgedeki sonraki düğüme gidilir
    • XMLReader::readInnerXml - Geçerli düğümün içeriğini okur
    • XMLReader::readOuterXml - Geçerli düğümün içeriğini düğümün kendisiyle birlikte okur
    • XMLReader::readString - Geçerli düğümün içeriğini bir dizge olarak okur
    • XMLReader::setParserProperty - Çözümleyici seçeneklerini tanımlar
    • XMLReader::setRelaxNGSchema - Belgeyi RelaxNG şemasına göre doğrular
    • XMLReader::setRelaxNGSchemaSource - Belgeyi dizge olarak belirtilen RelaxNG şemasına göre doğrular
    • XMLReader::setSchema - Belgeyi XSD şemasına göre doğrular
    • XMLReader::XML - Çözümlenecek XML belge içeriği belirtilir
    • xmlrpc_decode - XML'i doğal PHP türlerine dönüştürür
    • xmlrpc_decode_request - XML'i doğal PHP türlerine dönüştürür
    • xmlrpc_encode - Bir PHP değeri için XML üretir
    • xmlrpc_encode_request - Bir yöntem çağrısı için XML üretir
    • xmlrpc_get_type - Bir PHP değerinin xmlrpc türünü döndürür
    • xmlrpc_is_fault - Bir dizinin bir XMLRPC hatasını gösterip göstermediğini tespit eder
    • xmlrpc_parse_method_descriptions - XML'i bir yöntem açıklamaları listesine dönüştürür
    • xmlrpc_server_add_introspection_data - Kendiliğinden üretilen belgeleme ekler
    • xmlrpc_server_call_method - XML isteklerini ve yöntem çağrılarını çözümler
    • xmlrpc_server_create - Bir xmlrpc sunucusu oluşturur
    • xmlrpc_server_destroy - Sunucuya ayrılan özkaynakları serbest bırakır
    • xmlrpc_server_register_introspection_callback - Belge üretimi için bir PHP işlevi atar
    • xmlrpc_server_register_method - Belirtilen yöntemle eşleşen özkaynak için bir PHP işlevi atar
    • xmlrpc_set_type - Bir PHP dizge değeri için xmlrpc türünü base64 veya datetime türüne dönüştürür
    • XMLWriter::endAttribute - Geçerli özniteliği sonlandırır
    • XMLWriter::endCdata - Geçerli CDATA bölümünü kapatır
    • XMLWriter::endComment - Geçerli açıklamayı kapatır
    • XMLWriter::endDocument - Geçerli belgeyi sonlandırır
    • XMLWriter::endDtd - Geçerli DTD'yi kapatır
    • XMLWriter::endDtdAttlist - Geçerli DTD öznitelik listesi bildirimini kapatır
    • XMLWriter::endDtdElement - Geçerli DTD eleman bildirimini kapatır
    • XMLWriter::endDtdEntity - Geçerli DTD öğe bildirimini kapatır
    • XMLWriter::endElement - Geçerli elemanı kapatır
    • XMLWriter::endPi - Geçerli işlem komutunu kapatır
    • XMLWriter::flush - Geçerli tamponu boşaltır
    • XMLWriter::fullEndElement - Geçerli elemanı kapatır
    • XMLWriter::openMemory - Dizge çıktılamak için belleği kullanmak üzere yeni bir XMLWriter nesnesi oluşturur
    • XMLWriter::openUri - Çıktı için kaynak adresini kullanarak yeni bir XMLWriter nesnesi oluşturur
    • XMLWriter::outputMemory - Geçerli tamponu döndürür
    • XMLWriter::setIndent - Girintilemeyi açıp kapar
    • XMLWriter::setIndentString - Girintileme için kullanılacak dizgeyi belirler
    • XMLWriter::startAttribute - Bir öznitelik başlatır
    • XMLWriter::startAttributeNs - İsim alanlı bir öznitelik başlatır
    • XMLWriter::startCdata - Bir CDATA bölümü başlatır
    • XMLWriter::startComment - Bir açıklama başlatır
    • XMLWriter::startDocument - Belgenin XML bildirimini yazar
    • XMLWriter::startDtd - Bir DTD başlangıç etiketi oluşturur
    • XMLWriter::startDtdAttlist - Bir DTD öznitelik listesi bildirimini başlatır
    • XMLWriter::startDtdElement - Bir DTD eleman bildirimini başlatır
    • XMLWriter::startDtdEntity - Bir DTD öğe bildirimini başlatır
    • XMLWriter::startElement - Bir eleman başlangıç etiketi oluşturur
    • XMLWriter::startElementNs - Bir isim alanlı eleman başlangıç etiketi oluşturur
    • XMLWriter::startPi - Bir işlem komutu başlangıç etiketi oluşturur
    • XMLWriter::text - Bir metni yazar
    • XMLWriter::writeAttribute - Öznitelik yazar
    • XMLWriter::writeAttributeNs - İsim alanlı öznitelik yazar
    • XMLWriter::writeCdata - CDATA yazar
    • XMLWriter::writeComment - Açıklama yazar
    • XMLWriter::writeDtd - DTD'yi' yazar
    • XMLWriter::writeDtdAttlist - DTD öznitelik listesi yazar
    • XMLWriter::writeDtdElement - DTD elemanını yazar
    • XMLWriter::writeDtdEntity - DTD öğesini yazar
    • XMLWriter::writeElement - Elemanı içeriğiyle birlikte yazar
    • XMLWriter::writeElementNs - İsim alanlı elemanı içeriğiyle birlikte yazar
    • XMLWriter::writePi - Bir işlem komutu (PI) yazar
    • XMLWriter::writeRaw - Ham XML metni yazar
    • xml_error_string - XML çözümleyici hata iletisini döndürür
    • xml_get_current_byte_index - XML çözümleyicinin geçerli bayt indisini döndürür
    • xml_get_current_column_number - XML çözümleyicide hatanın oluştuğu satırdaki sütun numarasını döndürür
    • xml_get_current_line_number - XML çözümleyicide hatanın oluştuğu satırı döndürür
    • xml_get_error_code - XML çözümleyici hata kodunu döndürür
    • xml_parse - Bir XML belgeyi çözümler
    • xml_parser_create - Bir XML çözümleyici oluşturur
    • xml_parser_create_ns - İsim alanı destekli bir XML çözümleyici oluşturur
    • xml_parser_free - XML çözümleyiciyi serbest bırakır
    • xml_parser_get_option - XML ayrıştırıcı seçeneklerini döndürür
    • xml_parser_set_option - XML ayrıştırıcı seçeneklerini belirler
    • xml_parse_into_struct - XML veriyi çözümleyip sonucu bir dizi içinde döndürür
    • xml_set_character_data_handler - Karakter verisi işleyiciyi belirler
    • xml_set_default_handler - Öntanımlı işleyiciyi belirler
    • xml_set_element_handler - Açılış ve kapanış etiketi işleyicileri belirler
    • xml_set_end_namespace_decl_handler - İsim alanı bildirimi sonlandırma işleyiciyi belirler
    • xml_set_external_entity_ref_handler - Harici öğe gönderimi işleyiciyi belirler
    • xml_set_notation_decl_handler - Gösterim bildirimi işleyiciyi belirler
    • xml_set_object - XML ayrıştırıcı, nesne içinde kullanılır
    • xml_set_processing_instruction_handler - İşlem komutu (PI) işleyicisini belirler
    • xml_set_start_namespace_decl_handler - İsim alanı bildirimi başlatma işleyicisini belirler
    • xml_set_unparsed_entity_decl_handler - Ayrıştırılmayan öğe bildirimi işleyicisini belirler
    • XSLTProcessor::getParameter - Bir bağımsız değişkenin değerini döndürür
    • XSLTProcessor::getSecurityPrefs - Güvenlik tercihlerini döndürür
    • XSLTProcessor::hasExsltSupport - PHP, EXSLT desteğine sahip mi diye bakar
    • XSLTProcessor::importStylesheet - Biçembent ithal eder
    • XSLTProcessor::registerPHPFunctions - XSLT işlevleri olarak PHP işlevlerinin kullanılması yeteneğini etkin kılar
    • XSLTProcessor::removeParameter - Bağımsız değişken siler
    • XSLTProcessor::setParameter - Bir bağımsız değişkene bir değer atar
    • XSLTProcessor::setProfiling - Profil çıktı dosyasını belirler
    • XSLTProcessor::setSecurityPrefs - Güvenlik tercihlerini tanımlar
    • XSLTProcessor::transformToDoc - Belgeyi dönüştürür
    • XSLTProcessor::transformToUri - Dönüşüm sonucunu bir dosyaya yazar
    • XSLTProcessor::transformToXML - Dönüşümü bir dizge olarak döndürür
    • XSLTProcessor::__construct - Yeni bir XSLTProcessor nesnesi oluşturur
  • y
    • Yac::add - Store into cache
    • Yac::delete - Remove items from cache
    • Yac::dump - Dump cache
    • Yac::flush - Flush the cache
    • Yac::get - Retrieve values from cache
    • Yac::info - Status of cache
    • Yac::set - Store into cache
    • Yac::__construct - Constructor
    • Yac::__get - Getter
    • Yac::__set - Setter
    • Yaconf::get - Retrieve a item
    • Yaconf::has - Determine if a item exists
    • Yaf_Action_Abstract::execute - Action entry point
    • Yaf_Action_Abstract::getController - Retrieve controller object
    • Yaf_Action_Abstract::getControllerName - Get controller name
    • Yaf_Application::app - Retrieve an Application instance
    • Yaf_Application::bootstrap - Call bootstrap
    • Yaf_Application::clearLastError - Clear the last error info
    • Yaf_Application::environ - Retrive environ
    • Yaf_Application::execute - Execute a callback
    • Yaf_Application::getAppDirectory - Get the application directory
    • Yaf_Application::getConfig - Retrive the config instance
    • Yaf_Application::getDispatcher - Get Yaf_Dispatcher instance
    • Yaf_Application::getLastErrorMsg - Get message of the last occurred error
    • Yaf_Application::getLastErrorNo - Get code of last occurred error
    • Yaf_Application::getModules - Get defined module names
    • Yaf_Application::run - Start Yaf_Application
    • Yaf_Application::setAppDirectory - Change the application directory
    • Yaf_Application::__construct - Yaf_Application constructor
    • Yaf_Application::__destruct - The __destruct purpose
    • Yaf_Config_Abstract::get - Getter
    • Yaf_Config_Abstract::readonly - Find a config whether readonly
    • Yaf_Config_Abstract::set - Setter
    • Yaf_Config_Abstract::toArray - Cast to array
    • Yaf_Config_Ini::count - Count all elements in Yaf_Config.ini
    • Yaf_Config_Ini::current - Retrieve the current value
    • Yaf_Config_Ini::key - Fetch current element's key
    • Yaf_Config_Ini::next - Advance the internal pointer
    • Yaf_Config_Ini::offsetExists - The offsetExists purpose
    • Yaf_Config_Ini::offsetGet - The offsetGet purpose
    • Yaf_Config_Ini::offsetSet - The offsetSet purpose
    • Yaf_Config_Ini::offsetUnset - The offsetUnset purpose
    • Yaf_Config_Ini::readonly - The readonly purpose
    • Yaf_Config_Ini::rewind - The rewind purpose
    • Yaf_Config_Ini::toArray - Return config as a PHP array
    • Yaf_Config_Ini::valid - The valid purpose
    • Yaf_Config_Ini::__construct - Yaf_Config_Ini constructor
    • Yaf_Config_Ini::__get - Retrieve a element
    • Yaf_Config_Ini::__isset - Determine if a key is exists
    • Yaf_Config_Ini::__set - The __set purpose
    • Yaf_Config_Simple::count - The count purpose
    • Yaf_Config_Simple::current - The current purpose
    • Yaf_Config_Simple::key - The key purpose
    • Yaf_Config_Simple::next - The next purpose
    • Yaf_Config_Simple::offsetExists - The offsetExists purpose
    • Yaf_Config_Simple::offsetGet - The offsetGet purpose
    • Yaf_Config_Simple::offsetSet - The offsetSet purpose
    • Yaf_Config_Simple::offsetUnset - The offsetUnset purpose
    • Yaf_Config_Simple::readonly - The readonly purpose
    • Yaf_Config_Simple::rewind - The rewind purpose
    • Yaf_Config_Simple::toArray - Returns a PHP array
    • Yaf_Config_Simple::valid - The valid purpose
    • Yaf_Config_Simple::__construct - The __construct purpose
    • Yaf_Config_Simple::__get - The __get purpose
    • Yaf_Config_Simple::__isset - The __isset purpose
    • Yaf_Config_Simple::__set - The __set purpose
    • Yaf_Controller_Abstract::display - The display purpose
    • Yaf_Controller_Abstract::forward - Forward to another action
    • Yaf_Controller_Abstract::getInvokeArg - The getInvokeArg purpose
    • Yaf_Controller_Abstract::getInvokeArgs - The getInvokeArgs purpose
    • Yaf_Controller_Abstract::getModuleName - Get module name
    • Yaf_Controller_Abstract::getName - Get self name
    • Yaf_Controller_Abstract::getRequest - Retrieve current request object
    • Yaf_Controller_Abstract::getResponse - Retrieve current response object
    • Yaf_Controller_Abstract::getView - Retrieve the view engine
    • Yaf_Controller_Abstract::getViewpath - The getViewpath purpose
    • Yaf_Controller_Abstract::init - Controller initializer
    • Yaf_Controller_Abstract::initView - The initView purpose
    • Yaf_Controller_Abstract::redirect - Redirect to a URL
    • Yaf_Controller_Abstract::render - Render view template
    • Yaf_Controller_Abstract::setViewpath - The setViewpath purpose
    • Yaf_Controller_Abstract::__construct - Yaf_Controller_Abstract constructor
    • Yaf_Dispatcher::autoRender - Switch on/off autorendering
    • Yaf_Dispatcher::catchException - Switch on/off exception catching
    • Yaf_Dispatcher::disableView - Disable view rendering
    • Yaf_Dispatcher::dispatch - Dispatch a request
    • Yaf_Dispatcher::enableView - Enable view rendering
    • Yaf_Dispatcher::flushInstantly - Switch on/off the instant flushing
    • Yaf_Dispatcher::getApplication - Retrieve the application
    • Yaf_Dispatcher::getDefaultAction - Retrive the default action name
    • Yaf_Dispatcher::getDefaultController - Retrive the default controller name
    • Yaf_Dispatcher::getDefaultModule - Retrive the default module name
    • Yaf_Dispatcher::getInstance - Retrive the dispatcher instance
    • Yaf_Dispatcher::getRequest - Retrive the request instance
    • Yaf_Dispatcher::getRouter - Retrive router instance
    • Yaf_Dispatcher::initView - Initialize view and return it
    • Yaf_Dispatcher::registerPlugin - Register a plugin
    • Yaf_Dispatcher::returnResponse - The returnResponse purpose
    • Yaf_Dispatcher::setDefaultAction - Change default action name
    • Yaf_Dispatcher::setDefaultController - Change default controller name
    • Yaf_Dispatcher::setDefaultModule - Change default module name
    • Yaf_Dispatcher::setErrorHandler - Set error handler
    • Yaf_Dispatcher::setRequest - The setRequest purpose
    • Yaf_Dispatcher::setView - Set a custom view engine
    • Yaf_Dispatcher::throwException - Switch on/off exception throwing
    • Yaf_Dispatcher::__construct - Yaf_Dispatcher constructor
    • Yaf_Exception::getPrevious - The getPrevious purpose
    • Yaf_Exception::__construct - The __construct purpose
    • Yaf_Loader::autoload - The autoload purpose
    • Yaf_Loader::clearLocalNamespace - The clearLocalNamespace purpose
    • Yaf_Loader::getInstance - The getInstance purpose
    • Yaf_Loader::getLibraryPath - Get the library path
    • Yaf_Loader::getLocalNamespace - Retrive all register namespaces info
    • Yaf_Loader::getNamespacePath - Retieve path of a registered namespace
    • Yaf_Loader::import - The import purpose
    • Yaf_Loader::isLocalName - The isLocalName purpose
    • Yaf_Loader::registerLocalNamespace - Register local class prefix
    • Yaf_Loader::registerNamespace - Register namespace with searching path
    • Yaf_Loader::setLibraryPath - Change the library path
    • Yaf_Loader::__construct - The __construct purpose
    • Yaf_Plugin_Abstract::dispatchLoopShutdown - The dispatchLoopShutdown purpose
    • Yaf_Plugin_Abstract::dispatchLoopStartup - Hook before dispatch loop
    • Yaf_Plugin_Abstract::postDispatch - The postDispatch purpose
    • Yaf_Plugin_Abstract::preDispatch - The preDispatch purpose
    • Yaf_Plugin_Abstract::preResponse - The preResponse purpose
    • Yaf_Plugin_Abstract::routerShutdown - The routerShutdown purpose
    • Yaf_Plugin_Abstract::routerStartup - RouterStartup hook
    • Yaf_Registry::del - Remove an item from registry
    • Yaf_Registry::get - Retrieve an item from registry
    • Yaf_Registry::has - Check whether an item exists
    • Yaf_Registry::set - Add an item into registry
    • Yaf_Registry::__construct - Yaf_Registry implements singleton
    • Yaf_Request_Abstract::clearParams - Remove all params
    • Yaf_Request_Abstract::getActionName - The getActionName purpose
    • Yaf_Request_Abstract::getBaseUri - The getBaseUri purpose
    • Yaf_Request_Abstract::getControllerName - The getControllerName purpose
    • Yaf_Request_Abstract::getEnv - Retrieve ENV varialbe
    • Yaf_Request_Abstract::getException - The getException purpose
    • Yaf_Request_Abstract::getLanguage - Retrieve client's preferred language
    • Yaf_Request_Abstract::getMethod - Retrieve the request method
    • Yaf_Request_Abstract::getModuleName - The getModuleName purpose
    • Yaf_Request_Abstract::getParam - Retrieve calling parameter
    • Yaf_Request_Abstract::getParams - Retrieve all calling parameters
    • Yaf_Request_Abstract::getRequestUri - The getRequestUri purpose
    • Yaf_Request_Abstract::getServer - Retrieve SERVER variable
    • Yaf_Request_Abstract::isCli - Determine if request is CLI request
    • Yaf_Request_Abstract::isDispatched - Determin if the request is dispatched
    • Yaf_Request_Abstract::isGet - Determine if request is GET request
    • Yaf_Request_Abstract::isHead - Determine if request is HEAD request
    • Yaf_Request_Abstract::isOptions - Determine if request is OPTIONS request
    • Yaf_Request_Abstract::isPost - Determine if request is POST request
    • Yaf_Request_Abstract::isPut - Determine if request is PUT request
    • Yaf_Request_Abstract::isRouted - Determin if request has been routed
    • Yaf_Request_Abstract::isXmlHttpRequest - Determine if request is AJAX request
    • Yaf_Request_Abstract::setActionName - Set action name
    • Yaf_Request_Abstract::setBaseUri - Set base URI
    • Yaf_Request_Abstract::setControllerName - Set controller name
    • Yaf_Request_Abstract::setDispatched - The setDispatched purpose
    • Yaf_Request_Abstract::setModuleName - Set module name
    • Yaf_Request_Abstract::setParam - Set a calling parameter to a request
    • Yaf_Request_Abstract::setRequestUri - The setRequestUri purpose
    • Yaf_Request_Abstract::setRouted - The setRouted purpose
    • Yaf_Request_Http::get - Retrieve variable from client
    • Yaf_Request_Http::getCookie - Retrieve Cookie variable
    • Yaf_Request_Http::getFiles - The getFiles purpose
    • Yaf_Request_Http::getPost - Retrieve POST variable
    • Yaf_Request_Http::getQuery - Fetch a query parameter
    • Yaf_Request_Http::getRaw - Retrieve Raw request body
    • Yaf_Request_Http::getRequest - The getRequest purpose
    • Yaf_Request_Http::isXmlHttpRequest - Determin if request is Ajax Request
    • Yaf_Request_Http::__construct - Constructor of Yaf_Request_Http
    • Yaf_Request_Simple::get - The get purpose
    • Yaf_Request_Simple::getCookie - The getCookie purpose
    • Yaf_Request_Simple::getFiles - The getFiles purpose
    • Yaf_Request_Simple::getPost - The getPost purpose
    • Yaf_Request_Simple::getQuery - The getQuery purpose
    • Yaf_Request_Simple::getRequest - The getRequest purpose
    • Yaf_Request_Simple::isXmlHttpRequest - Determin if request is AJAX request
    • Yaf_Request_Simple::__construct - Constructor of Yaf_Request_Simple
    • Yaf_Response_Abstract::appendBody - Append to response body
    • Yaf_Response_Abstract::clearBody - Discard all exists response body
    • Yaf_Response_Abstract::clearHeaders - Discard all set headers
    • Yaf_Response_Abstract::getBody - Retrieve a exists content
    • Yaf_Response_Abstract::getHeader - The getHeader purpose
    • Yaf_Response_Abstract::prependBody - The prependBody purpose
    • Yaf_Response_Abstract::response - Send response
    • Yaf_Response_Abstract::setAllHeaders - The setAllHeaders purpose
    • Yaf_Response_Abstract::setBody - Set content to response
    • Yaf_Response_Abstract::setHeader - Set reponse header
    • Yaf_Response_Abstract::setRedirect - The setRedirect purpose
    • Yaf_Response_Abstract::__construct - The __construct purpose
    • Yaf_Response_Abstract::__destruct - The __destruct purpose
    • Yaf_Response_Abstract::__toString - Retrieve all bodys as string
    • Yaf_Router::addConfig - Add config-defined routes into Router
    • Yaf_Router::addRoute - Add new Route into Router
    • Yaf_Router::getCurrentRoute - Get the effective route name
    • Yaf_Router::getRoute - Retrieve a route by name
    • Yaf_Router::getRoutes - Retrieve registered routes
    • Yaf_Router::route - The route purpose
    • Yaf_Router::__construct - Yaf_Router constructor
    • Yaf_Route_Interface::assemble - Assemble a request
    • Yaf_Route_Interface::route - Route a request
    • Yaf_Route_Map::assemble - Assemble a url
    • Yaf_Route_Map::route - The route purpose
    • Yaf_Route_Map::__construct - The __construct purpose
    • Yaf_Route_Regex::assemble - Assemble a url
    • Yaf_Route_Regex::route - The route purpose
    • Yaf_Route_Regex::__construct - Yaf_Route_Regex constructor
    • Yaf_Route_Rewrite::assemble - Assemble a url
    • Yaf_Route_Rewrite::route - The route purpose
    • Yaf_Route_Rewrite::__construct - Yaf_Route_Rewrite constructor
    • Yaf_Route_Simple::assemble - Assemble a url
    • Yaf_Route_Simple::route - Route a request
    • Yaf_Route_Simple::__construct - Yaf_Route_Simple constructor
    • Yaf_Route_Static::assemble - Assemble a url
    • Yaf_Route_Static::match - The match purpose
    • Yaf_Route_Static::route - Route a request
    • Yaf_Route_Supervar::assemble - Assemble a url
    • Yaf_Route_Supervar::route - The route purpose
    • Yaf_Route_Supervar::__construct - The __construct purpose
    • Yaf_Session::count - The count purpose
    • Yaf_Session::current - The current purpose
    • Yaf_Session::del - The del purpose
    • Yaf_Session::getInstance - The getInstance purpose
    • Yaf_Session::has - The has purpose
    • Yaf_Session::key - The key purpose
    • Yaf_Session::next - The next purpose
    • Yaf_Session::offsetExists - The offsetExists purpose
    • Yaf_Session::offsetGet - The offsetGet purpose
    • Yaf_Session::offsetSet - The offsetSet purpose
    • Yaf_Session::offsetUnset - The offsetUnset purpose
    • Yaf_Session::rewind - The rewind purpose
    • Yaf_Session::start - The start purpose
    • Yaf_Session::valid - The valid purpose
    • Yaf_Session::__construct - Constructor of Yaf_Session
    • Yaf_Session::__get - The __get purpose
    • Yaf_Session::__isset - The __isset purpose
    • Yaf_Session::__set - The __set purpose
    • Yaf_Session::__unset - The __unset purpose
    • Yaf_View_Interface::assign - Assign value to View engine
    • Yaf_View_Interface::display - Render and output a template
    • Yaf_View_Interface::getScriptPath - The getScriptPath purpose
    • Yaf_View_Interface::render - Render a template
    • Yaf_View_Interface::setScriptPath - The setScriptPath purpose
    • Yaf_View_Simple::assign - Assign values
    • Yaf_View_Simple::assignRef - The assignRef purpose
    • Yaf_View_Simple::clear - Clear Assigned values
    • Yaf_View_Simple::display - Render and display
    • Yaf_View_Simple::eval - Render template
    • Yaf_View_Simple::getScriptPath - Get templates directory
    • Yaf_View_Simple::render - Render template
    • Yaf_View_Simple::setScriptPath - Set tempaltes directory
    • Yaf_View_Simple::__construct - Constructor of Yaf_View_Simple
    • Yaf_View_Simple::__get - Retrieve assigned variable
    • Yaf_View_Simple::__isset - The __isset purpose
    • Yaf_View_Simple::__set - Set value to engine
    • yaml_emit - Returns the YAML representation of a value
    • yaml_emit_file - Send the YAML representation of a value to a file
    • yaml_parse - Parse a YAML stream
    • yaml_parse_file - Parse a YAML stream from a file
    • yaml_parse_url - Parse a Yaml stream from a URL
    • Yar_Client::setOpt - Set calling contexts
    • Yar_Client::__call - Call service
    • Yar_Client::__construct - Create a client
    • Yar_Client_Exception::getType - Retrieve exception's type
    • Yar_Concurrent_Client::call - Register a concurrent call
    • Yar_Concurrent_Client::loop - Send all calls
    • Yar_Concurrent_Client::reset - Clean all registered calls
    • Yar_Server::handle - Start RPC Server
    • Yar_Server::__construct - Register a server
    • Yar_Server_Exception::getType - Retrieve exception's type
    • yaz_addinfo - Ek hata bilgisi döndürür
    • yaz_ccl_conf - CCL çözümleyecisini yapılandırır
    • yaz_ccl_parse - CCL çözümleyiciyi devreye sokar
    • yaz_close - YAZ bağlantısını kapatır
    • yaz_connect - Bir Z39.50 sunucusuna bir bağlantı düzenler
    • yaz_database - Bir oturum içindeki veritabanlarını belirler
    • yaz_element - Alım için eleman kümesi ismi tanımlar
    • yaz_errno - Hata numarasını döndürür
    • yaz_error - Hatanın açıklaması döner
    • yaz_es - Bir ek hizmet isteği (Extended Service Request) düzenler
    • yaz_es_result - Ek hizmetlerin sonucunu döndürür
    • yaz_get_option - Bir bağlantı seçeneğinin değerini döndürür
    • yaz_hits - Son arama ile eşleşenlerin sayısını döndürür
    • yaz_itemorder - Bir ILL-Request paketli Z39.50 Item Order için hazırlık yapar
    • yaz_present - Bir alım (Z39.50 present) düzenler
    • yaz_range - Edinilecek kayıtlar için bir aralık belirler
    • yaz_record - Bir kayıt döndürür
    • yaz_scan - Bir tarama düzenler
    • yaz_scan_result - Tarama sonucunu döndürür
    • yaz_schema - Alım için şema belirtir
    • yaz_search - Bir arama düzenler
    • yaz_set_option - Bağlantı ile ilgili seçenekleri belirler
    • yaz_sort - Sıralama kuralını belirler
    • yaz_syntax - Alım için tercih edilen kayıt sözdizimini belirler
    • yaz_wait - Z39.50 isteklerinin tamamlanmasını bekler
  • z
    • zend_thread_id - Geçerli evre için eşsiz bir betimleyici döndürür
    • zend_version - Zend motorunun sürümünü döndürür
    • ZipArchive::addEmptyDir - Yeni bir dizin ekler
    • ZipArchive::addFile - Yolu belirtilen dosyayı arşive ekler
    • ZipArchive::addFromString - İsmi ve içeriği belirtilen dosyayı arşive ekler
    • ZipArchive::addGlob - Add files from a directory by glob pattern
    • ZipArchive::addPattern - Add files from a directory by PCRE pattern
    • ZipArchive::clearError - Clear the status error message, system and/or zip messages
    • ZipArchive::close - Etkin (açık veya oluşturulmuş) arşivi kapatır
    • ZipArchive::count - Counts the number of files in the archive
    • ZipArchive::deleteIndex - İndisi belirtilen girdiyi arşivden siler
    • ZipArchive::deleteName - İsmi belirtilen girdiyi siler
    • ZipArchive::extractTo - Arşiv içeriğini çıkarır
    • ZipArchive::getArchiveComment - Zip arşivinin açıklamasını döndürür
    • ZipArchive::getArchiveFlag - Returns the value of a Zip archive global flag
    • ZipArchive::getCommentIndex - İndisi belirtilen girdinin açıklamasını döndürür
    • ZipArchive::getCommentName - İsmi belirtilen girdinin açıklamasını döndürür
    • ZipArchive::getExternalAttributesIndex - Retrieve the external attributes of an entry defined by its index
    • ZipArchive::getExternalAttributesName - Retrieve the external attributes of an entry defined by its name
    • ZipArchive::getFromIndex - İndisi belirtilen girdinin içeriğini döndürür
    • ZipArchive::getFromName - İsmi belirtilen girdinin içeriğini döndürür
    • ZipArchive::getNameIndex - İndisi belirtilen girdinin ismini döndürür
    • ZipArchive::GetStatusString - Durum hata iletilerini, sistem ve/veya zip iletilerini döndürür
    • ZipArchive::getStream - İsmi belirtilen girdi için dosya tanıtıcısı (salt okunur) döndürür
    • ZipArchive::getStreamIndex - Get a file handler to the entry defined by its index (read only)
    • ZipArchive::getStreamName - Get a file handler to the entry defined by its name (read only)
    • ZipArchive::isCompressionMethodSupported - Check if a compression method is supported by libzip
    • ZipArchive::isEncryptionMethodSupported - Check if a encryption method is supported by libzip
    • ZipArchive::locateName - İsmi belirtilen girdinin indisini döndürür
    • ZipArchive::open - Bir ZIP dosya arşivi açar
    • ZipArchive::registerCancelCallback - Register a callback to allow cancellation during archive close.
    • ZipArchive::registerProgressCallback - Register a callback to provide updates during archive close.
    • ZipArchive::renameIndex - İndisi belirtilen girdinin ismini değiştirir
    • ZipArchive::renameName - İsmi belirtilen girdinin ismini değiştirir
    • ZipArchive::replaceFile - Replace file in ZIP archive with a given path
    • ZipArchive::setArchiveComment - Bir ZIP arşivine açıklama ekler
    • ZipArchive::setArchiveFlag - Set a global flag of a ZIP archive
    • ZipArchive::setCommentIndex - İndisi belirtilen girdiye bir açıklama ekler
    • ZipArchive::setCommentName - İsmi belirtilen girdiye bir açıklama ekler
    • ZipArchive::setCompressionIndex - Set the compression method of an entry defined by its index
    • ZipArchive::setCompressionName - Set the compression method of an entry defined by its name
    • ZipArchive::setEncryptionIndex - Set the encryption method of an entry defined by its index
    • ZipArchive::setEncryptionName - Set the encryption method of an entry defined by its name
    • ZipArchive::setExternalAttributesIndex - Set the external attributes of an entry defined by its index
    • ZipArchive::setExternalAttributesName - Set the external attributes of an entry defined by its name
    • ZipArchive::setMtimeIndex - Set the modification time of an entry defined by its index
    • ZipArchive::setMtimeName - Set the modification time of an entry defined by its name
    • ZipArchive::setPassword - Set the password for the active archive
    • ZipArchive::statIndex - İndisi belirtilen girdiyle ilgili bilgileri döndürür
    • ZipArchive::statName - İsmi belirtilen girdiyle ilgili bilgileri döndürür
    • ZipArchive::unchangeAll - Arşivde yapılmış değişikliklerin tamamını geri alır
    • ZipArchive::unchangeArchive - Arşiv bilgilerinde yapılmış değişiklikleri geri alır
    • ZipArchive::unchangeIndex - İndisi belirtilen girdideki değişiklikleri geri alır
    • ZipArchive::unchangeName - İsmi belirtilen girdideki değişiklikleri geri alır
    • zip_close - Bir ZIP dosya arşivini kapatır
    • zip_entry_close - Bir dizin girdisini kapatır
    • zip_entry_compressedsize - Dizin girdisinin sıkıştırılmış uzunluğunu döndürür
    • zip_entry_compressionmethod - Dizin girdisinin sıkıştırma yöntemini döndürür
    • zip_entry_filesize - Bir dizin girdisinin uzunluğunu döndürür
    • zip_entry_name - Bir dizin girdisinin ismini döndürür
    • zip_entry_open - Okumak için bir dizin girdisi açar
    • zip_entry_read - Bir açık dizin girdisini okur
    • zip_open - Bir ZIP dosya arşivi açar
    • zip_read - Bir ZIP dosya arşivindeki bir sonraki girdiyi okur
    • zlib_decode - Uncompress any raw/gzip/zlib encoded data
    • zlib_encode - Compress data with the specified encoding
    • zlib_get_coding_type - Çıktı sıkıştırması için kullanılan kodlama türünü döndürür
    • ZMQ::__construct - ZMQ constructor
    • ZMQContext::getOpt - Get context option
    • ZMQContext::getSocket - Create a new socket
    • ZMQContext::isPersistent - Whether the context is persistent
    • ZMQContext::setOpt - Set a socket option
    • ZMQContext::__construct - Construct a new ZMQContext object
    • ZMQDevice::getIdleTimeout - Get the idle timeout
    • ZMQDevice::getTimerTimeout - Get the timer timeout
    • ZMQDevice::run - Run the new device
    • ZMQDevice::setIdleCallback - Set the idle callback function
    • ZMQDevice::setIdleTimeout - Set the idle timeout
    • ZMQDevice::setTimerCallback - Set the timer callback function
    • ZMQDevice::setTimerTimeout - Set the timer timeout
    • ZMQDevice::__construct - Construct a new device
    • ZMQPoll::add - Add item to the poll set
    • ZMQPoll::clear - Clear the poll set
    • ZMQPoll::count - Count items in the poll set
    • ZMQPoll::getLastErrors - Get poll errors
    • ZMQPoll::poll - Poll the items
    • ZMQPoll::remove - Remove item from poll set
    • ZMQSocket::bind - Bind the socket
    • ZMQSocket::connect - Connect the socket
    • ZMQSocket::disconnect - Disconnect a socket
    • ZMQSocket::getEndpoints - Get list of endpoints
    • ZMQSocket::getPersistentId - Get the persistent id
    • ZMQSocket::getSocketType - Get the socket type
    • ZMQSocket::getSockOpt - Get socket option
    • ZMQSocket::isPersistent - Whether the socket is persistent
    • ZMQSocket::recv - Receives a message
    • ZMQSocket::recvMulti - Receives a multipart message
    • ZMQSocket::send - Sends a message
    • ZMQSocket::sendmulti - Sends a multipart message
    • ZMQSocket::setSockOpt - Set a socket option
    • ZMQSocket::unbind - Unbind the socket
    • ZMQSocket::__construct - Construct a new ZMQSocket
    • Zookeeper::addAuth - Specify application credentials
    • Zookeeper::close - Close the zookeeper handle and free up any resources
    • Zookeeper::connect - Create a handle to used communicate with zookeeper
    • Zookeeper::create - Create a node synchronously
    • Zookeeper::delete - Delete a node in zookeeper synchronously
    • Zookeeper::exists - Checks the existence of a node in zookeeper synchronously
    • Zookeeper::get - Gets the data associated with a node synchronously
    • Zookeeper::getAcl - Gets the acl associated with a node synchronously
    • Zookeeper::getChildren - Lists the children of a node synchronously
    • Zookeeper::getClientId - Return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)
    • Zookeeper::getConfig - Get instance of ZookeeperConfig
    • Zookeeper::getRecvTimeout - Return the timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE). This value may change after a server re-connect
    • Zookeeper::getState - Get the state of the zookeeper connection
    • Zookeeper::isRecoverable - Checks if the current zookeeper connection state can be recovered
    • Zookeeper::set - Sets the data associated with a node
    • Zookeeper::setAcl - Sets the acl associated with a node synchronously
    • Zookeeper::setDebugLevel - Sets the debugging level for the library
    • Zookeeper::setDeterministicConnOrder - Enable/disable quorum endpoint order randomization
    • Zookeeper::setLogStream - Sets the stream to be used by the library for logging
    • Zookeeper::setWatcher - Set a watcher function
    • Zookeeper::__construct - Create a handle to used communicate with zookeeper
    • ZookeeperConfig::add - Add servers to the ensemble
    • ZookeeperConfig::get - Gets the last committed configuration of the ZooKeeper cluster as it is known to the server to which the client is connected, synchronously
    • ZookeeperConfig::remove - Remove servers from the ensemble
    • ZookeeperConfig::set - Change ZK cluster ensemble membership and roles of ensemble peers
    • zookeeper_dispatch - Calls callbacks for pending operations
  • _
    • _ - Takma Adı: gettext
    • __autoload - Tanımsız sınıfı yüklemeye çalışır
    • __halt_compiler - Derleyicinin çalışmasını durdurur

User Contributed Notes

There are no user contributed notes for this page.


Örnekler Dizini

Kılavuzdaki tüm örneklerin bir listesi

  • Example#0 - - Başlangıç olarak bir örnek
  • Example#1 - - İlk PHP betiği: merhaba.php
  • Example#2 - - PHP ile sistem bilgisine ulaşmak
  • Example#3 - - Bir değişkeni (dizi öğesini) yazdırmak
  • Example#4 - - Denetim yapılarının ve işlevlerin kullanım örneği
  • Example#5 - - HTML ve PHP kiplerini karıştırmak
  • Example#6 - - Örnek HTML formu
  • Example#7 - - Formdan veri yazdırmak
  • Example#8 - - lighttpd.conf'tan bir bölüm
  • Example#9 - - FastCGI Yanıtçılarının Çatallanması
  • Example#10 - - Uzak FCGI örneklerine bağlanmak
  • Example#11 - - OpenBSD Paket Kurulum Örneği
  • Example#12 - - Apache2 ile kurulum örneği
  • Example#13 - - PHP kurulduktan sonra Apache2'nin dirdirilip yeniden başlatılması
  • Example#14 - - Ek PHP paketleri listesinin alınma yöntemleri
  • Example#15 - - MySQL ve cURL PHP modüllerinin kurulumu
  • Example#16 - Önerilen OpCache Yapılandırması
  • Example#17 - Önerilen WinCache Yapılandırması
  • Example#18 - IIS ve PHP'yi yapılandırmak için komut satırı kullanımı
  • Example#19 - Kayıt Defteri değişiklikleri
  • Example#20 - Apache 2.x işleyicisi olarak PHP
  • Example#21 - CGI olarak PHP ve Apache 2.x
  • Example#22 - PHP'yi FastCGI altında çalıştırmak için Apache yapılandırması
  • Example#23 - Passing environment variables and PHP settings to a pool
  • Example#24 - set PHP settings in nginx.conf
  • Example#25 - - phpinfo kullanımı
  • Example#26 - - php.ini Ortam Değişkenleri
  • Example#27 - - php.ini örneği
  • Example#28 - - Apache yapılandırma örneği
  • Example#29 - - PHP Açılış ve Kapanış Etiketleri
  • Example#30 - - Koşul kullanan gelişmiş önceleme
  • Example#31 - - Sondaki satırsonu karakterini kapsayan kapanış etiketini gösteren örnek
  • Example#32 - - Tamsayı değişmezler
  • Example#33 - - 32 bitlik sistemlerde tamsayı taşması
  • Example#34 - 64 bitlik sistemlerde tamsayı taşması
  • Example#35 - - PHP 7.3.0 ve sonrası için Yorumlu Metin örneği
  • Example#36 - - Kapanış betimleyicisi, dizedeki tüm satırlardan daha uzun girintilenmemeli
  • Example#37 - - Kapanış betimleyicisin girintilenirken sekmeler ve boşluklar birlikte kullanılmamalı
  • Example#38 - - Kapanış betimleyicisinden sonra devam eden ifade
  • Example#39 - - Metin içindeki kapanış betimleyici dizesi ParseError yavrulatır
  • Example#40 - - PHP 7.3.0 öncesi için geçersiz örnek
  • Example#41 - - PHP 7.3.0 öncesi için bile geçerli örnek
  • Example#42 - - Yorumlu metin örneği
  • Example#43 - - Bağımsız değişkenlerde yorumlu metin kullanımı
  • Example#44 - - Statik değer olarak yorumlu metin kullanımı
  • Example#45 - - Yorumlu metin bildiriminde çift tırnak kullanımı
  • Example#46 - - Yorumsuz metin örneği
  • Example#47 - - Değişkenli yorumsuz metin örneği
  • Example#48 - - Statik veri örneği
  • Example#49 - - Basit sözdizimi örneği
  • Example#50 - - Negatif sayısal indisler
  • Example#51 - - Bazı dize örnekleri
  • Example#52 - - Geçersiz dize başlangıçları örneği
  • Example#53 - - Basit bir dizi
  • Example#54 - - Tür Çarpıtma ve Üzerine Yazma örneği
  • Example#55 - - Karışık int ve string anahtarlar
  • Example#56 - - Anahtarsız indisli diziler
  • Example#57 - - Tüm elemanlar için birer anahtar belirtilmeyebilir
  • Example#58 - - Karmaşık Tür Çarpıtma ve Geçersizleştirme örneği
  • Example#59 - - Dizi elemenlarına erişim
  • Example#60 - - Dizi başvurusu
  • Example#61 - - Basit dizi genişletmesi
  • Example#62 - - Yinelenen anahtarlarla dizi genişletme
  • Example#63 - - array kullanımı
  • Example#64 - - Döngü içinde elemen değiştirme
  • Example#65 - - Derlem
  • Example#66 - - İndisi 1'den başlatmak
  • Example#67 - - Diziyi doldurmak
  • Example#68 - - Dizi elemanlarının sıraya sokulması
  • Example#69 - - İç içe ve çok boyutlu diziler
  • Example#70 - - Geriçağırım işlev örnekleri
  • Example#71 - - Örtme kullanan Geriçağırım örneği
  • Example#72 - - Yinelenebilir üreteç dönüş türü örneği
  • Example#73 - - Atıf olarak aktarılan tür bildirimli bağımsız değişkenler
  • Example#74 - - Bağımsız değişkenlerin null olabilmesinin eski yolu
  • Example#75 - - Temel sınıf türü bildirimi
  • Example#76 - - Temel arayüz türü bildirimi
  • Example#77 - - Temel dönüş türü bildirimi
  • Example#78 - - Bir nesne döndürmek
  • Example#79 - - Null olabilen bağımsız değişken bildirimi
  • Example#80 - - Null olabilen dönüş türü bildirimi
  • Example#81 - - Bağımsız değişken değerlerinde katı kodlama
  • Example#82 - - Bağımsız değişken değerlerinde zorlayıcı kodlama
  • Example#83 - - Dönüş değerlerinde katı kodlama
  • Example#84 - - Sınıf özellik türü bildirimi
  • Example#85 - - Birleşimin türlerinden birine zorlama örneği
  • Example#86 - - İlklendirilmemiş değişkenlerin öntanımlı değerleri
  • Example#87 - - global kullanımı
  • Example#88 - - global yerine $GLOBALS kullanımı
  • Example#89 - - Süper küreselleri ve etki alanlarını gösteren örnek
  • Example#90 - - Statik değişkenlere ihtiyacı gösteren örnek
  • Example#91 - - Statik değişkenlerin kullanım örneği
  • Example#92 - - Kendini çağıran işlevlerle statik değişkenler
  • Example#93 - - Statik değişkenlerin bildirimi
  • Example#94 - - Miras alınan yöntemlerde statik değişken kullanımı
  • Example#95 - - Değişken özellik örneği
  • Example#96 - - Basit bir HTML formu
  • Example#97 - - Basit bir POST HTML formundan bilgiye erişim
  • Example#98 - - Daha karmaşık form değişkenleri
  • Example#99 - - setcookie örneği
  • Example#100 - - Geçerli ve geçersiz sabit isimleri
  • Example#101 - - Sabitlerin Tanımlanması
  • Example#102 - - Sabitlerin const ile tanımlanması
  • Example#103 - - Öncelik yönü
  • Example#104 - - Tanımsız değerlendirme sırası
  • Example#105 - +, - ve . aynı önceliğe sahiptir (PHP 8.0.0 öncesi)
  • Example#106 - - PERL dizge artırım örneği
  • Example#107 - - float türüne dönüştürülen abecesayısal dizge
  • Example#108 - - Gönderimli atama
  • Example#109 - - Tamsayılar üzerinde bitsel işlemler
  • Example#110 - - Dizgeler üzerinde bitsel işlemler
  • Example#111 - - Tamsayılarda bit kaydırma
  • Example#112 - - Bool/null karşılaştırması
  • Example#113 - - Özetle Standard Dizi Karşılaştırması
  • Example#114 - - Öntanımlı bir değer atama
  • Example#115 - - İç içe üç terimli davranışı
  • Example#116 - - Kısa üç terimli zinciri
  • Example#117 - - Öntanımlı değer atama
  • Example#118 - - İçiçe null kaynaşma işleci
  • Example#119 - - Örneklerle mantıksal işleçler
  • Example#120 - - Dizilerin karşılaştırılması
  • Example#121 - - instanceof ve sınıflar
  • Example#122 - - Miras alınan sınıflar ve instanceof kullanımı
  • Example#123 - - Bir sınıfın örneği olmayan bir sınıfın instanceof ile sınanması
  • Example#124 - - Arayüzler için instanceof kullanımı
  • Example#125 - - Başka değişkenlerle instanceof kullanımı
  • Example#126 - - Değişkenleri sınamak için instanceof kullanımı
  • Example#127 - - Sabit kullanımını sınamak için instanceof kullanımı
  • Example#128 - - Keyfi ifadelerde instanceof kullanımı
  • Example#129 - - switch yapısı
  • Example#130 - match temel kullanım örneği
  • Example#131 - match ifadesinin yapısı
  • Example#132 - - Başarısız eşleşme hatası örneği
  • Example#133 - - Tamsayı aralıklarında dallanmak için genelleştirilmiş eşleşme ifadelerinin kullanılması
  • Example#134 - - Dize içeriklerde dallanmak için genelleştirilmiş eşleşme ifadelerinin kullanılması
  • Example#135 - - Tik kullanım örneği
  • Example#136 - - Betik için kodlama belirtmek
  • Example#137 - - Basit bir include örneği
  • Example#138 - - İşlev içi include kullanımı
  • Example#139 - - HTTP üzerinden include
  • Example#140 - - include dönüş değerinin karşılaştırılması
  • Example#141 - - include ve return deyimleri
  • Example#142 - - Bir PHP dosyasını bir dizgeye dahil etmek için tampon kullanımı
  • Example#143 - - goto örneği
  • Example#144 - - Döngüden goto ile çıkma örneği
  • Example#145 - - Bu çalışmaz
  • Example#146 - - İşlev kullanımını gösteren sözde kod
  • Example#147 - - Koşula bağlı işlevler
  • Example#148 - - İşlev içinde işlev
  • Example#149 - - Kendini çağıran işlev
  • Example#150 - - İşlevlere dizi aktarımı
  • Example#151 - - Virgül ile sonlanan işlev bağımsız değişkenleri örneği
  • Example#152 - - Gönderimli işlev bağımsız değişkenlerinin aktarımı
  • Example#153 - - İşlev içinde öntanımlı bağımsız değişken kullanımı
  • Example#154 - - Sayıl olmayan türlerin öntanımlı değer olarak kullanımı
  • Example#155 - - Öntanımlı değer olarak nesne kullanımı (PHP 8.1.0 ve sonrası)
  • Example#156 - - Öntanımlı bağımsız değişkenlerin hatalı kullanımı
  • Example#157 - - Öntanımlı bağımsız değişkenlerin doğru kullanımı
  • Example#158 - - Öntanımlı işlev bağımsız değişkenlerinin doğru kullanımı
  • Example#159 - - Seçimliklerin zorunlu bağımsız değişkenlerden sonra bildirimi
  • Example#160 - - Değişken uzunlukta bağımsız değişkenler için ... kullanımı
  • Example#161 - -Bağımsız değişkenlere erişmek için ... kullanımı
  • Example#162 - Değişken bağımsız değişkenlerde tür bildirimi
  • Example#163 - - İsimli bağımsız değişken sözdizimi
  • Example#164 - - Konumsal ve isimli bağımsız değişkenler
  • Example#165 - - Farklı bağımsız değişken sırasıyla yukarıdaki örnek
  • Example#166 - - İsimli bağımsız değişkenlerle konumsal bağımsız değişkenleri birleştirmek
  • Example#167 - - Aynı bağımsız değişkenin birden fazla kullanımında Error yavrulanması
  • Example#168 - - Genişletme sonrası isimli bağımsız değişken kullanımı
  • Example#169 - - return kullanımı
  • Example#170 - - Çok sayıda değeri bir diziyle döndürmek
  • Example#171 - - Bir işlevden gönderim döndürmek
  • Example#172 - - Değişken işlev örneği
  • Example#173 - - Değişken yöntem örneği
  • Example#174 - Statik özellikli yöntem çağrısı örneği
  • Example#175 - Karmaşık çağrılar
  • Example#176 -
  • Example#177 - - Anonim işlev örneği
  • Example#178 - - Değişkene anonim işlev atama örneği
  • Example#179 - Değikenleri üst etki alanından miras almak
  • Example#180 - - Anonim işlevler ve etki alanı
  • Example#181 - $this'in otomatik bağlanması
  • Example#182 - - Statik anonim bir işlevin içinde $this kullanmaya çalışmak
  • Example#183 - - Statik anonim bir işleve bir nesne bağlamaya çalışmak
  • Example#184 - - Ok işlevleri otomatik olarak değişkenleri üst etki alanından daima değerleriyle alır
  • Example#185 - - Ok işlevleri otomatik olarak değişkenleri iç içe olsalar bile üst etki alanından daima değerleriyle alır
  • Example#186 - - Ok işlevi örnekleri
  • Example#187 - - Dış etki alanındaki değerler ok işlevleri kullanılarak değiştirilemez
  • Example#188 - - Basit birinci sınıf çağrılabilir sözdizimi
  • Example#189 - - Geleneksel çağrılabilir ile CallableExpr(...) karşılaştırması
  • Example#190 -
  • Example#191 - - Basit bir sınıf tanımı
  • Example#192 - - $this sözde değişkeninin kullanımı
  • Example#193 -
  • Example#194 -
  • Example#195 - - Bir sınıf örneğinin oluşturulması
  • Example#196 - - Keyfi ifadelerle örnekleme
  • Example#197 - - Nesne Atama
  • Example#198 - - Yeni nesneler oluşturmak
  • Example#199 - - Yeni oluşturulmuş bir nesnenin üyesine erişim
  • Example#200 - - Özelliğe erişim ya da yöntem çağrısı
  • Example#201 - - Bir özelliğe atanmış bir anonim işlevi çağırmak
  • Example#202 - - Basit bir sınıfın miras alınması
  • Example#203 - - Uyumlu çocuk yöntemler
  • Example#204 - - Bir çocuk yöntem bir bağımsız değişkeni kaldırdığında ölümcül hata oluşur
  • Example#205 - - Bir çocuk yöntem isteğe bağlı bir bağımsız değişkeni zorunlu kıldığında ölümcül hata oluşur
  • Example#206 - - Bir çocuk sınıfta isimli bağımsız değişkenler yeniden adlandırıldığında hata oluşur
  • Example#207 - - Sınıf adı çözünürlüğü
  • Example#208 - - Eksik sınıf adı çözümlemesi
  • Example#209 - - Nesne adı çözümlemesi
  • Example#210 - - Güvenli Null İşleci
  • Example#211 - - Özellik bildirimi
  • Example#212 - - Tür ile özellik bildirimi
  • Example#213 - - Özelliklere erişim
  • Example#214 - - Salt-okunur özellik örneği
  • Example#215 - - Salt-okunur özelliklerde hatalı ilklendirme örneği
  • Example#216 -
  • Example#217 -
  • Example#218 -
  • Example#219 - - Bir sabitin tanımlanması ve kullanımı
  • Example#220 - - İsim alanlı ::class örneği
  • Example#221 - - Sınıf sabitinde ifade kullanımı
  • Example#222 - - Sınıf sabiti görünürlük değiştiricileri (PHP 7.1.0 ve sonrası)
  • Example#223 - - Otomatik yükleme örneği
  • Example#224 - - Başka bir otomatik yükleme örneği
  • Example#225 - - Miras almada kurucuların kullanımı
  • Example#226 - - Kurucu bağımsız değişkenlerinin kullanımı
  • Example#227 - - Kurucu özelliği tanıtımının kullanımı
  • Example#228 - Using new in initializers
  • Example#229 - - Statik kurucu yöntemlerinin kullanımı
  • Example#230 - - Yıkıcı Örneği
  • Example#231 - - Özellik bildirimi
  • Example#232 - - Yöntem bildirimi
  • Example#233 - - PHP 7.1.0 ve sonrasında sabit bildirimleri
  • Example#234 - - Aynı nesne türündeki özel üyelere erişim
  • Example#235 - Inheritance Example
  • Example#236 - - Dönüş türünü bildirmeyen geçersiz kılma yöntemi
  • Example#237 - - Yanlış dönüş türü bildiren geçersiz kılma yöntemi
  • Example#238 - - Yanlış dönüş türü bildiren ama kullanımı önerilmiyor uyarısı vermeyen geçersiz kılma yöntemi
  • Example#239 - - Sınıf tanımı dışında ::
  • Example#240 - - Sınıf tanımı içinde ::
  • Example#241 - - Ebeveynin yöntemini çağırmak
  • Example#242 - - Statik yöntem örneği
  • Example#243 - - Statik özellik örneği
  • Example#244 - - Soyut sınıf örneği
  • Example#245 - -Soyut sınıf örneği
  • Example#246 - - Arayüz örneği
  • Example#247 - - Genişletilebilir Arayüzler
  • Example#248 - - Çoklu arayüzlerle özgüllük uyumluluğu
  • Example#249 - - Çok sayıda arayüz oluşturma
  • Example#250 - - Arayüzler ve sabitleri
  • Example#251 - - Soyut sınıflı arayüzler
  • Example#252 - - Aynı anda genişletme ve gerçekleme
  • Example#253 - - Nitelik örneği
  • Example#254 - - Öncelik sırası örneği
  • Example#255 - - Bir diğer öncelik sırası örneği
  • Example#256 - - Çok sayıda niteliğin kullanımı
  • Example#257 - - Çelişki çözümleme örneği
  • Example#258 - - Yöntem görünürlüğünü değiştirme örneği
  • Example#259 - - Niteliklerden nitelik oluşturma örneği
  • Example#260 - - Gereksinimlerin soyut yöntemlerle ifadesi
  • Example#261 - - Statik Değişkenler
  • Example#262 - - Statik Yöntemler
  • Example#263 - - Statik Özellikler
  • Example#264 - - Özellik tanımlama örneği
  • Example#265 - - Çelişki yaratma örneği
  • Example#266 - - Sabitlerin Tanımlanması
  • Example#267 - - Çelişki Çözümleme
  • Example#268 - - __get(),
    __set(),
    __isset() ve
    __unset() ile
    aşırı yükleme örneği
  • Example#269 - - __call() ve __callStatic() ile aşırı yüklü örneklenmiş yöntemler
  • Example#270 - - Basit Nesne Yineleme
  • Example#271 - - Uyutma ve uyandırma
  • Example#272 - - Dizileştirme ve Nesneleştirme
  • Example#273 - - Basit bir örnek
  • Example#274 - - __invoke() kullanımı
  • Example#275 - - __invoke() kullanımı
  • Example#276 - - __set_state() kullanımı
  • Example#277 - - __debugInfo() kullanımı
  • Example#278 - - final yöntem örneği
  • Example#279 - - final sınıf örneği
  • Example#280 - - PHP 8.1.0 ve sonrasında Final sabit örneği
  • Example#281 - - Bir nesnenin kopyalanması
  • Example#282 - - Yeni kopyalanmış nesnenin üyesine erişim
  • Example#283 - - Nesne karşılaştırma örneği
  • Example#284 - - self:: kullanımı
  • Example#285 - - static:: kullanımı
  • Example#286 - - Statik olmayan bağlamda static:: kullanımı
  • Example#287 - - Ötelenen ve ötelenmeyen çağrılar
  • Example#288 - - Gönderimler ve Nesneler
  • Example#289 - - İsim alanı söz dizimi örneği
  • Example#290 - - Tek bir isim alanı bildirimi
  • Example#291 - - Tek bir isim alanı bildirimi
  • Example#292 - - Tek bir isim alanının hiyerarşik bildirimi
  • Example#293 - - Birden fazla isim alanın ayrımsız ardarda bildirilmesi
  • Example#294 - - Birden fazla isim alanın ayraçlı olarak bildirilmesi
  • Example#295 - - Birden fazla isim alanın isim alansız kodla birlikte bildirilmesi
  • Example#296 - - Birden fazla isim alanın isim alansız kodla birlikte bildirilmesi
  • Example#297 - - Küresel sınıf, işlev ve sabitlere bir isim alanı içinden erişim
  • Example#298 - - Dinamik olarak erişilen elemanlar
  • Example#299 - - Dinamik olarak erişilen isim alanlı elemanlar
  • Example#300 - - İsim alanlı kod, __NAMESPACE__ örneği
  • Example#301 - - Küresel kod, __NAMESPACE__ örneği
  • Example#302 - - Dinamik isim oluşturmak için __NAMESPACE__ kullanımı
  • Example#303 - - Bir isim alanı içinde namespace işleci
  • Example#304 - - Küresel kod içinde namespace işleci
  • Example#305 - - use işleci ile ithal/takma ad kullanımı
  • Example#306 - - use işleci ile rumuz/ithal, çoklu use kullanımı
  • Example#307 - - İthal işlemi ve dinamik isimler
  • Example#308 - - İthal işlemi ve tamamen nitelenmiş isimler
  • Example#309 - - Usülsüz ithal kuralı
  • Example#310 - - Küresel alan belirtiminin kullanımı
  • Example#311 - - Küresel sınıflara bir isim alanı içinde erişim
  • Example#312 - - Bir isim alanı içinde son çare olarak küresel işlev ve sabitlerin kullanımı
  • Example#313 - - Örneklerle İsim Çözünürlüğü
  • Example#314 - - Küresel sınıflara bir isim alanı dışından erişim
  • Example#315 - - Küresel sınıflara bir isim alanı dışından erişim
  • Example#316 - - İsim alanı içinden yerleşik sınıflara erişim
  • Example#317 - - İsim alanındaki dahili sınıf, işlev ve sabitlere erişim
  • Example#318 - - Tamamen nitelenmiş isimler
  • Example#319 - - Nitelenmiş isimler
  • Example#320 - - Nitelenmemiş sınıf isimleri
  • Example#321 - - Nitelenmemiş işlev veya sabit isimleri
  • Example#322 - - İsim alanlı isimleri çift tırnaklar arasında kullanmak tehlikelidir
  • Example#323 - - Tanımsız sabitler
  • Example#324 - - Tanımsız sabitler
  • Example#325 - - Basit sınırlı değerler
  • Example#326 - - Daha ileri özel değerler
  • Example#327 - - Hata raporlamayı istisnalara dönüştürme örneği
  • Example#328 - - Bir İstisna Oluşturmak
  • Example#329 - - Bir finally bloğu ile istisnanın işleme sokulması
  • Example#330 - - finally bloğu ile return arasındaki etkileşim örneği
  • Example#331 - - İç içe istisnalar
  • Example#332 - Çoklu catch istisna eldesi
  • Example#333 - - Yakalama değişkeninin olmayışı
  • Example#334 - - Bir ifade olarak throw
  • Example#335 - - Yerleşik Exception sınıfı
  • Example#336 - - Exception sınıfının genişletilmesi
  • Example#337 - - Temel kullanım örneği
  • Example#338 - - range işlevini bir üreteç olarak gerçeklemek
  • Example#339 - - Basit bir yield örneği
  • Example#340 - - Bir anahtar/değer çifti üretimi
  • Example#341 - - null üretmek
  • Example#342 - - Değerleri başvuruya göre üretmek
  • Example#343 - - iterator_to_array ile yield from
  • Example#344 - - yield from için temel kullanım
  • Example#345 - - yield from ve dönen değerler
  • Example#346 - - Bir arayüzün isteğe bağlı yöntemlerini özniteliklerle gerçeklemek
  • Example#347 - - Öznitelik Sözdizimi
  • Example#348 - - Özniteliklerin Yansıtma Arayüzü kullanılarak Okunması
  • Example#349 - - Yansıtma Arayüzünü kullanarak istenen özniteliklerin okunması
  • Example#350 - - Basit Öznitelik sınıfı
  • Example#351 - - Özniteliklerin kullanılabileceği yerleri kısıtlamak için hedef belirtiminin kullanımı
  • Example#352 - - Özniteliğin bir bildirimle defalarca kullanılabilmesi için IS_REPEATABLE kullanımı
  • Example#353 - - Gönderimlerin tanımlanmamış değişkenlerle kullanımı
  • Example#354 - - İşlev içinde küresel değişkenlere gönderim
  • Example#355 - - foreach döngüsü içinde gönderim
  • Example#356 - - $GLOBALS örneği
  • Example#357 - - $GLOBALS dizisini yeniden yazmak hataya yol açar.
  • Example#358 - - $_SERVER örneği
  • Example#359 - - $_GET örneği
  • Example#360 - - $_POST örneği
  • Example#361 - - $_ENV örneği
  • Example#362 - $_COOKIE örneği
  • Example#363 - - $php_errormsg örneği
  • Example#364 - - $http_response_header örneği
  • Example#365 - - $argc örneği
  • Example#366 - - $argv örneği
  • Example#367 - - Exception::getMessage örneği
  • Example#368 - - Exception::getPrevious örneği
  • Example#369 - - Exception::getCode örneği
  • Example#370 - - Exception::getFile örneği
  • Example#371 - - Exception::getLine örneği
  • Example#372 - - Exception::getTrace örneği
  • Example#373 - - Exception::getTraceAsString örneği
  • Example#374 - - Exception::__toString örneği
  • Example#375 - - Hata iletilerinin set_error_handler ile ErrorException içinde döndürülmesi
  • Example#376 - - ErrorException::getSeverity örneği
  • Example#377 - - Error::getMessage örneği
  • Example#378 - - Error::getPrevious örneği
  • Example#379 - - Error::getCode örneği
  • Example#380 - - Error::getFile örneği
  • Example#381 - - Error::getLine örneği
  • Example#382 - - Error::getTrace örneği
  • Example#383 - - Error::getTraceAsString örneği
  • Example#384 - - Error::__toString örneği
  • Example#385 - Temel Kullanımı
  • Example#386 - - Temel kullanımı
  • Example#387 - Temel kullanım
  • Example#388 - - ArrayAccess::offsetExists örneği
  • Example#389 - - Temel kullanım
  • Example#390 - - Closure::bind örneği
  • Example#391 - - Closure::bindTo örneği
  • Example#392 - - Closure::call örneği
  • Example#393 - - Tür dönüşümüyle nesneye dönüştürerek örnekleme
  • Example#394 - - json_decode ile örnekleme
  • Example#395 - - Dinamik özelliklerin bildirilmesi
  • Example#396 - - Generator::getReturn örneği
  • Example#397 - - Generator::key örneği
  • Example#398 - - Değer yerleştirmek içinGenerator::send kullanımı
  • Example#399 - - Bir üreteçte istisna yavrulama
  • Example#400 - - Temel WeakReference Kullanımı
  • Example#401 - - Weakmap kullanım örneği
  • Example#402 - - Stringable Temel Kullanımı
  • Example#403 - - Temel kullanım örneği
  • Example#404 - - Temel kullanım örneği
  • Example#405 - - Temel kullanım örneği
  • Example#406 - - var_dump işlevine SensitiveParameterValue nesnesinin aktarılması
  • Example#407 - - SensitiveParameterValue::getValue örneği
  • Example#408 - - Temel bindto kullanım örneği
  • Example#409 - - Bir sayfayı çekip veriyi POST ile göndermek
  • Example#410 - - Başlıklar ve içerik alınırken yönlendirmeleri yoksaymak
  • Example#411 - - Basit password kullanım örneği
  • Example#412 - - Yönlendirmelerin ardından nereye geldiğimizi saptamak
  • Example#413 - - php://temp/maxmemory
  • Example#414 - - php://filter/resource=<süzülecek akım>
  • Example#415 - - php://filter/read=<okuma zincirine uygulanacak süzgeç listesi>
  • Example#416 - - php://filter/write=<yazma zincirine uygulanacak süzgeç listesi>
  • Example#417 - - php://memory ve php://temp yeniden kullanılamaz
  • Example#418 - - data:// içeriğini basmak
  • Example#419 - - Ortam türünü alıp getirmek
  • Example#420 - - Temel kullanım
  • Example#421 - - Etkin bir bağlantıda bir akım açmak
  • Example#422 - - Bu $session değişkeni hazır tutulmalıdır!
  • Example#423 - - Bir RAR arşinde gezinmek
  • Example#424 - - Şifreli bir dosyanın açılması (başlık şifreleme)
  • Example#425 - - Değişkenler başınıza iş açabilir...
  • Example#426 - ... Bir dosya sistemi saldırısı
  • Example#427 - - Daha güvenilir bir dosya silme betiği
  • Example#428 - - Daha da güvenilir bir dosya silme betiği
  • Example#429 - - Boş baytlardan olumsuz etkilenen bir betik
  • Example#430 - - Girdiyi doğru şekilde ele almak
  • Example#431 - Hashing password field
  • Example#432 - Splitting the result set into pages ... and making superusers (PostgreSQL)
  • Example#433 - Listing out articles ... and some passwords (any database server)
  • Example#434 - From resetting a password ... to gaining more privileges (any database server)
  • Example#435 - Attacking the database host operating system (MSSQL Server)
  • Example#436 - Avoiding SQL injection by using PDO prepared statements
  • Example#437 - Attacking Variables with a custom HTML page
  • Example#438 - Exploiting common debugging variables
  • Example#439 - Finding dangerous variables with E_ALL
  • Example#440 - - Tehlikeli Değişken Kullanımı
  • Example#441 - - PHP'yi başka bir dil olarak göstermek
  • Example#442 - - PHP uzantısı olarak bilinmeyen bir uzantı kullanmak
  • Example#443 - - PHP uzantısı olarak HTML uzantılarını kullanmak
  • Example#444 - - Temel HTTP Kimlik Doğrulaması örneği
  • Example#445 - - Özet HTTP Kimlik Doğrulaması örneği
  • Example#446 - - Yeni kullanıcı adı va parolası girmeye zorlayan bir HTTP kimlik doğrulama örneği
  • Example#447 - - Karşıya Dosya Yükleme Formu
  • Example#448 - - Dosya yüklemelerinin doğrulanması
  • Example#449 - - Dosya dizisi yükleme
  • Example#450 - - Çoklu dosya yükleme
  • Example#451 - - Dizinin tamamen karşıya yüklenmesi
  • Example#452 - - HTTP PUT dosyalarının kaydedilmesi
  • Example#453 - - Uzak sayfanın başlığını elde etmek
  • Example#454 - - Veriyi uzak sunucuda saklamak
  • Example#455 - - CLI SAPI farkını gösteren örnek:
  • Example#456 -
  • Example#457 - - Yerleşik (ve yüklü) PHP ve Zend modüllerinin listelenmesi
  • Example#458 - - Çift tırnak kullanımında bir çözümleme hatasının gösterilmesi
  • Example#459 - - Kabuğun değişken dönüşümü yapmasını engellemek için tek tırnakların kullanımı
  • Example#460 - - Bir projedeki satır sayısını saymak için -B, -R ve -E seçeneklerinin kullanımı
  • Example#461 - - PHP ve Zend sürümleri ile SAPI ismini çıktılamak için -v kullanımı
  • Example#462 - - --ini örneği
  • Example#463 - - Temel --rf kullanımı
  • Example#464 - - --rc örneği
  • Example#465 - - --re örneği
  • Example#466 - - --ri örneği
  • Example#467 - - PHP betiğini kabuk betiği olarak çalıştırmak
  • Example#468 - - Komut satırından çalıştırılması planlanan betik (betik.php)
  • Example#469 - - Bir komut satırı PHP betiği çalıştırmak için yığın dosyası (betik.bat)
  • Example#470 - - Etkileşimli kabuk kullanarak kod çalıştırmak
  • Example#471 - - Kod tamamlama
  • Example#472 - - Etkileşimli kabukta php.ini ayarlarını değiştirmek
  • Example#473 - - HTTP sunucusunun başlatılması
  • Example#474 - - Belge kök dizini belirterek başlatma
  • Example#475 - - Yönlendirici betik belirtmek
  • Example#476 - - CLI Sunucusunda kullanmadan önce betiği sınamak
  • Example#477 - - Desteklenmeyen Dosya Türlerinin İşlenmesi
  • Example#478 - - CLI sunucusuna uzak makinelerden erişim
  • Example#479 - Creating a new zval container
  • Example#480 - Displaying zval information
  • Example#481 - Increasing refcount of a zval
  • Example#482 - Decreasing zval refcount
  • Example#483 - Creating a array zval
  • Example#484 - Adding already existing element to an array
  • Example#485 - Removing an element from an array
  • Example#486 - Adding the array itself as an element of it self
  • Example#487 - Unsetting $a
  • Example#488 - Memory usage example
  • Example#489 - GC performance influences
  • Example#490 - Running the above script
  • Example#491 - Recompiling PHP to enable GC benchmarking
  • Example#492 - GC statistics
  • Example#493 - all_probes.d for tracing all PHP Static Probes with DTrace
  • Example#494 - all_probes.stp for tracing all PHP Static Probes with SystemTap
  • Example#495 - A apcu_add example
  • Example#496 - A apcu_cache_info example
  • Example#497 - apcu_cas example
  • Example#498 - apcu_dec example
  • Example#499 - A apcu_delete example
  • Example#500 - An apcu_entry example
  • Example#501 - apcu_exists example
  • Example#502 - A apcu_fetch example
  • Example#503 - apcu_inc example
  • Example#504 - A apcu_key_info example
  • Example#505 - A apcu_sma_info example
  • Example#506 - A apcu_store example
  • Example#507 - A APCUIterator::__construct example
  • Example#508 - Bir betikte hataların yakalanıp işleme sokulması
  • Example#509 - - debug_backtrace örneği
  • Example#510 - - debug_print_backtrace örneği
  • Example#511 - - error_clear_last örneği
  • Example#512 - - error_get_last örneği
  • Example#513 - - error_log örnekleri
  • Example#514 - - error_reporting örnekleri
  • Example#515 - - restore_error_handler örneği
  • Example#516 - - restore_exception_handler örneği
  • Example#517 - - set_error_handler ve trigger_error ile hataların ele alınması
  • Example#518 - - set_exception_handler örneği
  • Example#519 - - trigger_error örneği
  • Example#520 - Calling a function from shared library
  • Example#521 - Calling a function, returning a structure through an argument
  • Example#522 - Accessing existing C variables
  • Example#523 - Creating and Modifying C variables
  • Example#524 - Working with C arrays
  • Example#525 - Working with C enums
  • Example#526 - Assigning a PHP Closure to a C function pointer
  • Example#527 - - Çıktı Denetimi örneği
  • Example#528 - - Çıktının yeniden yazılması örneği
  • Example#529 - - ob_end_clean örneği
  • Example#530 - - ob_end_flush örneği
  • Example#531 - - Basit bir ob_get_clean örneği
  • Example#532 - - ob_get_contents örneği
  • Example#533 - - ob_get_flush örneği
  • Example#534 - - ob_get_length örneği
  • Example#535 - - ob_list_handlers işlevi
  • Example#536 - - Kullanıcı tanımlı geriçağırım işlevi örneği
  • Example#537 - - Çıktı tamponunun silinmesini önleyen kod örneği
  • Example#538 - - output_add_rewrite_var örneği
  • Example#539 - - output_reset_rewrite_vars örneği
  • Example#540 - - Özel bir sav olmaksızın beklentiler
  • Example#541 - - Özel bir sav varken beklentiler
  • Example#542 - - Başarısız bir savın özel bir işleyici ile işlenmesi
  • Example#543 - - Açıklama basmak için özel işleyici kullanımı
  • Example#544 - - assert_options örneği
  • Example#545 - - cli_get_process_title örneği
  • Example#546 - - cli_set_process_title örneği
  • Example#547 - - dl örnekleri
  • Example#548 - - extension_loaded örneği
  • Example#549 - - gc_enabled örneği
  • Example#550 - - gc_status örneği
  • Example#551 - - get_current_user örneği
  • Example#552 - - get_defined_constants örneği
  • Example#553 - - XML işlevlerinin listesi
  • Example#554 - - get_include_path örneği
  • Example#555 - - get_included_files örneği
  • Example#556 - - get_loaded_extensions örneği
  • Example#557 - - Tür'süz get_resources örneği
  • Example#558 - - Tür'lüget_resources örneği
  • Example#559 - - getenv örneği
  • Example#560 - - getlastmod örneği
  • Example#561 - - getopt örneği - temeller
  • Example#562 - - getopt ve uzun seçenekler
  • Example#563 - - getopt ve çoklu-tek seçenek
  • Example#564 - getopt ve kalan_indisi kullanımı
  • Example#565 - - getrusage örneği
  • Example#566 - - ini_get örnekleri
  • Example#567 - - ini_get_all örnekleri
  • Example#568 - - Ayrıntısız listeleme
  • Example#569 - A few ini_parse_quantity examples
  • Example#570 - - ini_restore örneği
  • Example#571 - - Bir INI yönergesine değer atamak
  • Example#572 - - memory_get_usage örneği
  • Example#573 - memory_reset_peak_usage example
  • Example#574 - - php_ini_loaded_file örneği
  • Example#575 - - Dönen ini dosyalarının listelenmesi
  • Example#576 - - php_sapi_name örneği
  • Example#577 - - php_uname örnekleri
  • Example#578 - - İşletim sistemine göre bazı sabit örnekleri
  • Example#579 - - Genel katkıcıların listelenmesi
  • Example#580 - - Çekirdek geliştiricilerin ve belgelendirme ekibinin listelenmesi
  • Example#581 - - Tüm katkıcıların listelenmesi
  • Example#582 - - phpinfo örneği
  • Example#583 - - phpversion örneği
  • Example#584 - - PHP_VERSION_ID örneği
  • Example#585 - - Bir ortam değişkeninin atanması
  • Example#586 - - restore_include_path örneği
  • Example#587 - - set_include_path örneği
  • Example#588 - - İçerilecek dosyaların aranacağı yollara bir yenisini eklemek
  • Example#589 - - sys_get_temp_dir örneği
  • Example#590 - - version_compare örnekleri
  • Example#591 - - zend_thread_id örneği
  • Example#592 - - zend_version örneği
  • Example#593 - Custom Superglobals with runkit.superglobal=_FOO,_BAR in php.ini
  • Example#594 - A runkit7_function_add example
  • Example#595 - A runkit7_function_copy example
  • Example#596 - A runkit7_function_redefine example
  • Example#597 - runkit7_method_add example
  • Example#598 - runkit7_method_copy example
  • Example#599 - runkit7_method_redefine example
  • Example#600 - runkit7_method_remove example
  • Example#601 - runkit7_method_rename example
  • Example#602 - runkit7_zval_inspect example
  • Example#603 - Basic uopz_add_function Usage
  • Example#604 - uopz_allow_exit example
  • Example#605 - uopz_backup example
  • Example#606 - uopz_compose example
  • Example#607 - uopz_copy example
  • Example#608 - Basic uopz_del_function Usage
  • Example#609 - uopz_delete example
  • Example#610 - uopz_delete class example
  • Example#611 - uopz_extend example
  • Example#612 - uopz_flags example
  • Example#613 - "Unfinalize" a Class
  • Example#614 - uopz_function example
  • Example#615 - uopz_function class example
  • Example#616 - uopz_get_exit_status example
  • Example#617 - Basic uopz_get_hook Usage
  • Example#618 - uopz_get_mock example
  • Example#619 - Basic uopz_get_property Usage
  • Example#620 - uopz_get_return example
  • Example#621 - Basic uopz_get_static Usage
  • Example#622 - uopz_implement example
  • Example#623 - uopz_overload example
  • Example#624 - uopz_redefine example
  • Example#625 - uopz_rename example
  • Example#626 - uopz_rename class example
  • Example#627 - uopz_restore example
  • Example#628 - Basic uopz_set_hook Usage
  • Example#629 - uopz_set_mock example
  • Example#630 - uopz_set_mock example
  • Example#631 - uopz_set_mock and static members
  • Example#632 - Basic uopz_set_property Usage
  • Example#633 - uopz_set_return example
  • Example#634 - uopz_set_return example
  • Example#635 - uopz_set_return class example
  • Example#636 - Basic uopz_set_static Usage
  • Example#637 - uopz_undefine example
  • Example#638 - Basic uopz_unset_hook Usage
  • Example#639 - uopz_unset_mock example
  • Example#640 - uopz_unset_return example
  • Example#641 - wincache.ignorelist example
  • Example#642 - Authentication configuration for wincache.php
  • Example#643 - Enabling WinCache session handler
  • Example#644 - Enabling WinCache functions reroutes
  • Example#645 - Reroute.ini file content
  • Example#646 - A wincache_fcache_fileinfo example
  • Example#647 - A wincache_fcache_meminfo example
  • Example#648 - Using wincache_lock
  • Example#649 - A wincache_ocache_fileinfo example
  • Example#650 - A wincache_ocache_meminfo example
  • Example#651 - A wincache_refresh_if_changed example
  • Example#652 - A wincache_rplist_fileinfo example
  • Example#653 - A wincache_rplist_meminfo example
  • Example#654 - A wincache_scache_info example
  • Example#655 - A wincache_scache_meminfo example
  • Example#656 - wincache_ucache_add with key as a string
  • Example#657 - wincache_ucache_add with key as an array
  • Example#658 - Using wincache_ucache_cas
  • Example#659 - using wincache_ucache_clear
  • Example#660 - Using wincache_ucache_dec
  • Example#661 - Using wincache_ucache_delete with key as a string
  • Example#662 - Usingwincache_ucache_delete with key as an array
  • Example#663 - Using wincache_ucache_delete with key as an array where some elements cannot be deleted
  • Example#664 - Using wincache_ucache_exists
  • Example#665 - wincache_ucache_get with key as a string
  • Example#666 - wincache_ucache_get with key as an array
  • Example#667 - Using wincache_ucache_inc
  • Example#668 - Using wincache_ucache_info
  • Example#669 - A wincache_ucache_meminfo example
  • Example#670 - wincache_ucache_set with key as a string
  • Example#671 - wincache_ucache_set with key as an array
  • Example#672 - Using wincache_unlock
  • Example#673 - Xhprof example with the optional GUI
  • Example#674 - xhprof_disable example
  • Example#675 - xhprof_enable examples
  • Example#676 - xhprof_sample_disable example
  • Example#677 - Make sure the item is stored
  • Example#678 - Using CHAP passwords
  • Example#679 - radius_acct_open example
  • Example#680 - radius_add_server example
  • Example#681 - radius_auth_open example
  • Example#682 - radius_create_request example
  • Example#683 - radius_cvt_addr example
  • Example#684 - radius_cvt_int example
  • Example#685 - radius_cvt_string example
  • Example#686 - radius_get_attr example
  • Example#687 - radius_get_tagged_attr_data example
  • Example#688 - radius_get_tagged_attr_tag example
  • Example#689 - radius_get_vendor_attr example
  • Example#690 - radius_put_attr example
  • Example#691 - radius_put_int example
  • Example#692 - radius_put_string example
  • Example#693 - radius_put_vendor_attr example
  • Example#694 - readline Example
  • Example#695 - Readline Callback Interface Example
  • Example#696 - - Basit bzip2 örneği
  • Example#697 - - Veri sıkıştırma
  • Example#698 - - Bir dizgenin sıkıştırmasının açılması
  • Example#699 - - bzerror örneği
  • Example#700 - - bzopen örneği
  • Example#701 - - bzread örneği
  • Example#702 - - bzwrite örneği
  • Example#703 - Using an external file
  • Example#704 - Using a file within a phar archive
  • Example#705 - Converting a phar archive from phar to tar file format
  • Example#706 - phar.cache_list usage example
  • Example#707 - A Phar::addEmptyDir example
  • Example#708 - A Phar::addFile example
  • Example#709 - A Phar::addFromString example
  • Example#710 - A Phar::apiVersion example
  • Example#711 - A Phar::buildFromDirectory example
  • Example#712 - A Phar::buildFromIterator with SplFileInfo
  • Example#713 - A Phar::buildFromIterator with other iterators
  • Example#714 - A Phar::canCompress example
  • Example#715 - A Phar::canWrite example
  • Example#716 - A Phar::compress example
  • Example#717 - A Phar::compressFiles example
  • Example#718 - A Phar::__construct example
  • Example#719 - A Phar::convertToData example
  • Example#720 - A Phar::convertToExecutable example
  • Example#721 - A Phar::copy example
  • Example#722 - A Phar::count example
  • Example#723 - A Phar::createDefaultStub example
  • Example#724 - A Phar::decompress example
  • Example#725 - A Phar::decompressFiles example
  • Example#726 - A Phar::delMetaData example
  • Example#727 - A Phar::delete example
  • Example#728 - A Phar::extractTo example
  • Example#729 - A Phar::getMetadata example
  • Example#730 - A Phar::getStub example
  • Example#731 - A Phar::hasMetadata example
  • Example#732 - A Phar::interceptFileFuncs example
  • Example#733 - A Phar::interceptFileFuncs example
  • Example#734 - A Phar::isBuffering example
  • Example#735 - A Phar::isCompressed example
  • Example#736 - A Phar::loadPhar example
  • Example#737 - A Phar::mapPhar example
  • Example#738 - A Phar::mount example
  • Example#739 - A Phar::mungServer example
  • Example#740 - A Phar::offsetExists example
  • Example#741 - Phar::offsetGet example
  • Example#742 - A Phar::offsetSet example
  • Example#743 - A Phar::offsetUnset example
  • Example#744 - A Phar::running example
  • Example#745 - A Phar::setAlias example
  • Example#746 - A Phar::setDefaultStub example
  • Example#747 - A Phar::setMetadata example
  • Example#748 - A Phar::setStub example
  • Example#749 - A Phar::startBuffering example
  • Example#750 - A Phar::stopBuffering example
  • Example#751 - A Phar::unlinkArchive example
  • Example#752 - A Phar::webPhar example
  • Example#753 - A PharData::addEmptyDir example
  • Example#754 - A PharData::addFile example
  • Example#755 - A PharData::addFromString example
  • Example#756 - A PharData::buildFromDirectory example
  • Example#757 - A PharData::buildFromIterator with SplFileInfo
  • Example#758 - A PharData::buildFromIterator with other iterators
  • Example#759 - A PharData::compress example
  • Example#760 - A PharData::compressFiles example
  • Example#761 - A PharData::__construct example
  • Example#762 - A PharData::convertToData example
  • Example#763 - A PharData::convertToExecutable example
  • Example#764 - A PharData::copy example
  • Example#765 - A PharData::decompress example
  • Example#766 - A PharData::decompressFiles example
  • Example#767 - A PharData::delMetaData example
  • Example#768 - A PharData::delete example
  • Example#769 - A PharData::extractTo example
  • Example#770 - A PharData::offsetSet example
  • Example#771 - A PharData::offsetUnset example
  • Example#772 - A Phar::setMetadata example
  • Example#773 - A PharFileInfo::chmod example
  • Example#774 - A PharFileInfo::compress example
  • Example#775 - A PharFileInfo::__construct example
  • Example#776 - A PharFileInfo::decompress example
  • Example#777 - A PharFileInfo::delMetaData example
  • Example#778 - A PharFileInfo::getCRC32 example
  • Example#779 - A PharFileInfo::getCompressedSize example
  • Example#780 - A PharFileInfo::getMetadata example
  • Example#781 - A PharFileInfo::getPharFlags example
  • Example#782 - A PharFileInfo::isCRCChecked example
  • Example#783 - A PharFileInfo::isCompressed example
  • Example#784 - A PharFileInfo::setMetadata example
  • Example#785 - Rar installation
  • Example#786 - On-the-fly decompression
  • Example#787 - RAR extension filesystem extraction example
  • Example#788 - Nesne yönelimli kullanım
  • Example#789 - Yordamsal kullanım
  • Example#790 - Nesne yönelimli kullanım
  • Example#791 - Yordamsal kullanım
  • Example#792 - Nesne yönelimli kullanım
  • Example#793 - Yordamsal kullanım
  • Example#794 - Nesne yönelimli kullanım
  • Example#795 - Yordamsal kullanım
  • Example#796 - Nesne yönelimli kullanım
  • Example#797 - Yordamsal kullanım
  • Example#798 - Nesne yönelimli kullanım
  • Example#799 - Yordamsal kullanım
  • Example#800 - Nesne yönelimli kullanım
  • Example#801 - Yordamsal kullanım
  • Example#802 - Volume Callback
  • Example#803 - Nesne yönelimli kullanım
  • Example#804 - Yordamsal kullanım
  • Example#805 - RarArchive::__toString example
  • Example#806 - RarEntry::extract example
  • Example#807 - How to extract all files in archive:
  • Example#808 - RarEntry::getAttr example
  • Example#809 - RarEntry::getHostOs example (version >= 2.0.0)
  • Example#810 - RarEntry::getHostOs example (version <= 1.0.0)
  • Example#811 - RarEntry::getMethod example
  • Example#812 - RarEntry::getName example
  • Example#813 - RarEntry::getPackedSize example
  • Example#814 - RarEntry::getStream example
  • Example#815 - RarEntry::getUnpackedSize example
  • Example#816 - RarEntry::getVersion example
  • Example#817 - RarException::isUsingExceptions example
  • Example#818 - RarException::setUsingExceptions example
  • Example#819 - - Bir Zip arşivi oluşturmak
  • Example#820 - - Arşiv bilgilerinin dökümü ve listelenmesi
  • Example#821 - - Zip akım sarmalayıcı; bir OpenOffice meta bilgisini okur
  • Example#822 - - Zip kullanım örneği (PHP 4)
  • Example#823 - - Bir arşivde boş bir dizin oluşturmak
  • Example#824 - - Aç ve ekle
  • Example#825 - - Arşive yeni bir girdi eklemek
  • Example#826 - - Bir dosyayı arşivdeki bir dizine eklemek
  • Example#827 - ZipArchive::addGlob example
  • Example#828 - ZipArchive::addPattern example
  • Example#829 - - İndisini kullanarak arşivden bir dosya silmek
  • Example#830 - - İsmini kullanarak arşivden bir dosya silmek
  • Example#831 - - Tüm girdileri çıkarmak
  • Example#832 - - İki girdi çıkarmak
  • Example#833 - - Bir arşiv açıklamasını basmak
  • Example#834 - Test if archive is a torrentzip format
  • Example#835 - - Bir girdinin açıklamasını basmak
  • Example#836 - - Bir girdinin açıklamasını basmak
  • Example#837 - Extract all entries with Unix rights
  • Example#838 - - Dosya içeriğini basmak
  • Example#839 - - Dosya içeriğinin basılması
  • Example#840 - - Bir zip girdisindeki resimde dönüşüm
  • Example#841 - - ZipArchive::getNameIndex örneği
  • Example#842 - - Girdi içeriğini fread ile alıp saklamak
  • Example#843 - - fopen ve zip akım sarmalayıcı kullanmak dışında yukarıdaki ile aynı
  • Example#844 - - Akım sarmalayıcı ve resim, XML işleviyle de kullanılabilir
  • Example#845 - Get the entry contents with fread and store it
  • Example#846 - Get the entry contents with fread and store it
  • Example#847 - - Bir arşiv oluşturup üzerinde ZipArchive::locateName kullanmak
  • Example#848 - - Bir arşivi açıp içeriğini dökmek
  • Example#849 - - Bir arşiv oluşturmak
  • Example#850 - - Geçici bir arşiv oluşturma
  • Example#851 - Archive a file
  • Example#852 - Archive a file
  • Example#853 - - Bir girdinin ismini değiştirmek
  • Example#854 - - Bir girdinin ismini değiştirmek
  • Example#855 - Open and replace
  • Example#856 - - Bir arşiv oluşturup bir açıklama eklemek
  • Example#857 - Create a torrentzip archive
  • Example#858 - - Bir arşiv açıp bir girdiye açıklama eklemek
  • Example#859 - - Bir arşiv açıp bir girdiye açıklama eklemek
  • Example#860 - Add files with different compression methods to an archive
  • Example#861 - Add files with different compression methods to an archive
  • Example#862 - Add file and set compression method
  • Example#863 - Archive and encrypt a file
  • Example#864 - Archive a file, with its Unix rights
  • Example#865 - Archive a file
  • Example#866 - Archive a file
  • Example#867 - - Bir girdiyle ilgili bilgilerin dökümü
  • Example#868 - - Bir girdiyle ilgili bilgilerin dökümü
  • Example#869 - - Küçük bir Zlib örneği
  • Example#870 - - Ardışık sıkıştırma ve açma arayüzü örneği
  • Example#871 - - gzclose örneği
  • Example#872 - - gzcompress örneği
  • Example#873 - - gzdeflate örneği
  • Example#874 - - Bir gzip dosyası oluşturmak
  • Example#875 - - gzeof örneği
  • Example#876 - - gzfile örneği
  • Example#877 - - gzgetc örneği
  • Example#878 - - gzgets örneği
  • Example#879 - - gzgetss örneği
  • Example#880 - - gzinflate örneği
  • Example#881 - - gzopen örneği
  • Example#882 - - gzpassthru örneği
  • Example#883 - - gzread örneği
  • Example#884 - - gzseek örneği
  • Example#885 - - gzuncompress örneği
  • Example#886 - - gzwrite örneği
  • Example#887 - ob_gzhandler example
  • Example#888 - zlib_encode example
  • Example#889 - - hash örneği
  • Example#890 - - hash_algos örneği
  • Example#891 - - hash_copy örneği
  • Example#892 - - hash_equals örneği
  • Example#893 - - hash_file örneği
  • Example#894 - - hash_hkdf örneği
  • Example#895 - - hash_hmac örneği
  • Example#896 - - hash_hmac_algos örneği
  • Example#897 - - hash_hmac_file örneği
  • Example#898 - - Ardışık aşlama örneği
  • Example#899 - - hash_pbkdf2 genel kullanım örneği
  • Example#900 - - hash_update_stream örneği
  • Example#901 - - mcrypt_create_iv örneği
  • Example#902 - - mcrypt_enc_get_algorithms_name örneği
  • Example#903 - - mcrypt_enc_get_modes_name örneği
  • Example#904 - - mcrypt_enc_get_supported_key_sizes örneği
  • Example#905 - - mcrypt_encrypt örneği
  • Example#906 - - mcrypt_get_block_size örneği
  • Example#907 - - mcrypt_get_cipher_name örneği
  • Example#908 - - mcrypt_get_iv_size örneği
  • Example#909 - - mcrypt_get_key_size örneği
  • Example#910 - - mcrypt_list_algorithms örneği
  • Example#911 - - mcrypt_list_modes örneği
  • Example#912 - - mcrypt_module_open örnekleri
  • Example#913 - - Şifreleme için mcrypt_module_open kullanımı
  • Example#914 - - mcrypt_module_self_test örneği
  • Example#915 - - mdecrypt_generic örneği
  • Example#916 - - Bir dizgenin MD5 ve HMAC aşlarını hesaplayıp sonuçları birer onaltılık dizge olarak çıktılar
  • Example#917 - - Tüm algoritmaları sıradan geçmek
  • Example#918 - - mhash_get_block_size örneği
  • Example#919 - - mhash_get_hash_name örneği
  • Example#920 - openssl_cipher_iv_length example
  • Example#921 - openssl_cipher_key_length example
  • Example#922 - - openssl_cms_sign örneği
  • Example#923 - - openssl_csr_export() örneği
  • Example#924 - - openssl_csr_export_to_file() örneği
  • Example#925 - - openssl_csr_get_public_key() örneği
  • Example#926 - - openssl_csr_get_subject() örneği
  • Example#927 - - Öz-imzalı sertifika üretimi
  • Example#928 - - Öz-imzalı ECC sertifikası oluşrurmak (PHP 7.1.0 ve üstü)
  • Example#929 - - openssl_csr_sign örneği - PEM imzalama (Kendi Sertifika Yetkilinizi nasıl oluşturursunuz?)
  • Example#930 - - Paylaşımlı gizi hesaplamak
  • Example#931 - - DH genel/gizli anahtar çiftinin PHP ile üretilmesi
  • Example#932 - - PHP 7.1+ için GCM kipinde AES Kimlik Kanıtlamalı Şifreleme örneği
  • Example#933 - - PHP 7.1 öncesi için GCM kipinde AES Kimlik Kanıtlamalı Şifreleme örneği
  • Example#934 - - openssl_error_string örneği
  • Example#935 - openssl_get_cert_locations example
  • Example#936 - - openssl_get_cipher_methods örneği
  • Example#937 - openssl_get_curve_names example
  • Example#938 - - openssl_get_md_methods örneği
  • Example#939 - - openssl_open örneği
  • Example#940 - openssl_pbkdf2() example
  • Example#941 - - openssl_pkcs12_read örneği
  • Example#942 - - openssl_pkcs7_decrypt örneği
  • Example#943 - - openssl_pkcs7_encrypt örneği
  • Example#944 - Get a PEM array from a P7B file
  • Example#945 - - openssl_pkcs7_sign örneği
  • Example#946 - openssl_pkey_derive example
  • Example#947 - - Genel anahtarın gizli anahtardan elde edilmesi
  • Example#948 - - openssl_random_pseudo_bytes örneği
  • Example#949 - - openssl_seal örneği
  • Example#950 - - openssl_sign örneği
  • Example#951 - - openssl_sign örneği
  • Example#952 - openssl_spki_export example
  • Example#953 - openssl_spki_export example from <keygen>
  • Example#954 - openssl_spki_export_challenge example
  • Example#955 - openssl_spki_export_challenge example from <keygen>
  • Example#956 - openssl_spki_new example
  • Example#957 - openssl_spki_verify example
  • Example#958 - openssl_spki_verify example from <keygen>
  • Example#959 - - openssl_verify örneği
  • Example#960 - - openssl_verify örneği
  • Example#961 - openssl_x509_verify example
  • Example#962 - - password temel kullanım örneği
  • Example#963 - - password_hash örneği
  • Example#964 - - Maliyet belirtilen password_hash örneği
  • Example#965 - - password_hash iyi bir maliyet bulma örneği
  • Example#966 - - Argon2i kullanılan password_hash örneği
  • Example#967 - - password_needs_rehash kullanımı
  • Example#968 - - password_verify örneği
  • Example#969 - RNP clearsign example
  • Example#970 - simple callback function example
  • Example#971 - sodium_crypto_box_seal example
  • Example#972 - sodium_crypto_box_seal_open example
  • Example#973 - sodium_crypto_core_ristretto255_add example
  • Example#974 - sodium_crypto_core_ristretto255_from_hash example
  • Example#975 - sodium_crypto_core_ristretto255_is_valid_point example
  • Example#976 - sodium_crypto_core_ristretto255_random example
  • Example#977 - sodium_crypto_core_ristretto255_scalar_add example
  • Example#978 - sodium_crypto_core_ristretto255_scalar_invert example
  • Example#979 - sodium_crypto_core_ristretto255_scalar_negate example
  • Example#980 - sodium_crypto_core_ristretto255_scalar_random example
  • Example#981 - sodium_crypto_core_ristretto255_scalar_sub example
  • Example#982 - sodium_crypto_core_ristretto255_sub example
  • Example#983 - sodium_crypto_generichash_final example
  • Example#984 - sodium_crypto_generichash_init example
  • Example#985 - sodium_crypto_generichash_update example
  • Example#986 - sodium_crypto_kx_keypair usage
  • Example#987 - sodium_crypto_pwhash example
  • Example#988 - sodium_crypto_pwhash_str example
  • Example#989 - sodium_crypto_secretbox example
  • Example#990 - sodium_crypto_secretbox_keygen example
  • Example#991 - Comparing sodium_crypto_secretbox_keygen with random_bytes
  • Example#992 - sodium_crypto_secretbox_open example
  • Example#993 - sodium_crypto_secretstream_xchacha20poly1305_init_pull example
  • Example#994 - sodium_crypto_secretstream_xchacha20poly1305_init_push example
  • Example#995 - sodium_crypto_stream_xchacha20_xor_ic example
  • Example#996 - DBA example
  • Example#997 - Traversing a database
  • Example#998 - dba_handlers Example
  • Example#999 - - Sütunlar için Liste Ayrıcalıkları
  • Example#1000 - - Tablo sütunlarının listesi
  • Example#1001 - DSN'siz bağlantı
  • Example#1002 - odbc_connection_string_quote example
  • Example#1003 - - Kulanılabilir DSN'lerin listesi'
  • Example#1004 - - odbc_execute ve odbc_prepare örneği
  • Example#1005 - - odbc_fetch_into örnekleri
  • Example#1006 - - odbc_next_result örneği
  • Example#1007 - - odbc_execute ve odbc_prepare örneği
  • Example#1008 - - Sütundaki birincil anahtarların listesi
  • Example#1009 - - Saklı bir yordamın sütun listesi
  • Example#1010 - - Veritabanındaki saklı yordamların listesi
  • Example#1011 - - odbc_result örnekleri
  • Example#1012 - - odbc_setoption örnekleri
  • Example#1013 - - Tablo istatistikleri listesi
  • Example#1014 - Tablo ayrıcalıkları listesi
  • Example#1015 - - Katalogdaki tabloların listesi
  • Example#1016 - - PDO::ATTR_DRIVER_NAME kullanımı
  • Example#1017 - - MySQL'e bağlanma
  • Example#1018 - - Bağlantı hatalarının ele alınışı
  • Example#1019 - - Bir bağlantının kapatılışı
  • Example#1020 - - Kalıcı bağlantılar
  • Example#1021 - - Bir toplu hareket betiğinin çalıştırılması
  • Example#1022 - - Hazır deyimlerle bağımsız değişken ismine göre veri girişi
  • Example#1023 - - Hazır deyimlerle bağımsız değişken indisine göre veri girişi
  • Example#1024 - - Hazır deyimle veri almak
  • Example#1025 - - Bir saklı yordamın çıktı bağımsız değişkeni ile kullanımı
  • Example#1026 - - Bir saklı yordamın girdi/çıktı bağımsız değişkeni ile kullanımı
  • Example#1027 - - Geçersiz bağımsız değişken kullanımı
  • Example#1028 - - PDO örneği oluşturup hata kipini atamak
  • Example#1029 - - PDO örneği oluşturup kurucudaki hata kipini atamak
  • Example#1030 - - Veritabanındaki bir resmin gösterilmesi
  • Example#1031 - - Bir resmin veritabanına yerleştirilmesi
  • Example#1032 - - Oracle'da bir resmi veritabanına yerleştirmek
  • Example#1033 - - Bir toplu hareketi geri almak
  • Example#1034 - - Temel bir hareket teslimatı
  • Example#1035 - - Bir toplu hareketin teslim edilmesi
  • Example#1036 - - Sürücü isteğiyle PDO örneğinin oluşturulması
  • Example#1037 - - URI isteğiyle PDO örneğinin oluşturulması
  • Example#1038 - - Bir takma ad kullanarak PDO örneğinin oluşturulması
  • Example#1039 - - Bir SQLSTATE kodunun döndürülmesi
  • Example#1040 - - Bir DB2 veiitabanına kurulan bir PDO_ODBC bağlantısıyla ilgili hata bilgisinin gösterilmesi
  • Example#1041 - - Bir DELETE deyiminin çalıştırılması
  • Example#1042 - - Veritabanı bağlantı özniteliklerinin öğrenilmesi
  • Example#1043 - - PDO::getAvailableDrivers örneği
  • Example#1044 - - İsimli bağımsız değişkenli SQL deyim şablonu
  • Example#1045 - - Soru imli SQL deyim şablonu
  • Example#1046 - - Soru imi öncelemeli SQL deyim şablonu
  • Example#1047 - - Yer tutucu içermeyen SQL deyimi kullanılan PDO::query örneği
  • Example#1048 - - Normal bir dizgeyi öncelemek
  • Example#1049 - - Tehlikeli bir dizgeyi öncelemek
  • Example#1050 - - Karmaşık bir dizgeyi öncelemek
  • Example#1051 - - Bir toplu hareketin geri alınması
  • Example#1052 - - Sonuç kümesi çıktısının PHP değişkenleri ile ilişkilendirilmesi
  • Example#1053 - - İsimli bağımsız değişkenlerle PDOStatement::bindParam örneği
  • Example#1054 - - Soru imli bağımsız değişkenlerle PDOStatement::bindParam örneği
  • Example#1055 - - Girdi/Çıktı bağımsız değişkeni kullanımı
  • Example#1056 - - İsimli bağımsız değişkenlerle PDOStatement::bindValue örneği
  • Example#1057 - - Soru imli bağımsız değişkenlerle PDOStatement::bindValue örneği
  • Example#1058 - - PDOStatement::closeCursor örneği
  • Example#1059 - - Sütunları saymak
  • Example#1060 - - İsimli bağımsız değişkenlerle PDOStatement::debugDumpParams örneği
  • Example#1061 - - İsimsiz bağımsız değişkenlerle PDOStatement::debugDumpParams örneği
  • Example#1062 - - SQLSTATE kodunun döndürülmesi
  • Example#1063 - - Bir DB2 veritabanına açılan bir ODBC bağlantısından hata bilgisinin alınması
  • Example#1064 - - İlişkili değişken ve değerlerle bir hazır deyimin çalıştırılması
  • Example#1065 - - İsimli değerler dizisi ile hazır bir deyimin çalıştırılması
  • Example#1066 - - - Konumlu değerler dizisi ile bir hazır deyimin çalıştırılması
  • Example#1067 - Soru imli bir hazır deyimin çalıştırılması
  • Example#1068 - - IN yan tümcesi için dizi kullanarak bir hazır deyimin çalıştırılması
  • Example#1069 - - Farklı kiplerle satırların döndürülmesi
  • Example#1070 - - Satırları bir kaydırılabilir gösterici ile döndürmek
  • Example#1071 - - Oluşturma sırası
  • Example#1072 - - Bir sonuç kümesinde kalan tüm satırları almak
  • Example#1073 - - Sonuç kümesinden tek bir sütunun tüm değerlerini almak
  • Example#1074 - - Tüm değerleri tek bir sütuna göre gruplamak
  • Example#1075 - - Her sonuç için bir sınıf örneklemek
  • Example#1076 - - Her sonuç için bir işlev çağırmak
  • Example#1077 - - Sonraki satırın ilk sütununu döndürmek
  • Example#1078 - - Sütun temel verilerinin alınması
  • Example#1079 - - Bir kayıtlı yordamdan dönen çok sayıda satır kümesine erişim
  • Example#1080 - - Silinen satır sayısının döndürülmesi
  • Example#1081 - - Bir SELECT deyiminden etkilenen satırların sayılması
  • Example#1082 - - Veri alım kipinin belirlenmesi
  • Example#1083 - Insert LOBs in CUBRID PDO
  • Example#1084 - Fetch LOBs in CUBRID PDO
  • Example#1085 - Insert set in CUBRID PDO with default data type.
  • Example#1086 - Specify data type when insert set in CUBRID PDO
  • Example#1087 - PDO_CUBRID DSN examples
  • Example#1088 - A PDO::cubrid_schema example
  • Example#1089 - - PDO_DBLIB DSN örnekleri
  • Example#1090 - - Yol belirtilen PDO_FIREBIRD DSN örneği
  • Example#1091 - - Port ve yol belirtilen PDO_FIREBIRD DSN örneği
  • Example#1092 - - Debian üzerinde localhost ve employee.fdb yolu belirtilen PDO_FIREBIRD DSN örneği
  • Example#1093 - - dialect=1 veritabanına bağlanan PDO_FIREBIRD DSN örneği
  • Example#1094 - - db2cli.ini kullanarak PDO_IBM DSN örneği
  • Example#1095 - - Bağlantı dizgeli PDO_IBM DSN'si örneği
  • Example#1096 - - odbc.ini kullanan PDO_INFORMIX DSN örneği
  • Example#1097 - - Bağlantı dizgeli PDO_INFORMIX DSN örneği
  • Example#1098 - - MySQL sürücüsünde tamponlu kipi zorlamak
  • Example#1099 - - PDO_MYSQL DSN örnekleri
  • Example#1100 - PDO_SQLSRV DSN examples
  • Example#1101 - - PDO_OCI DSN örnekleri
  • Example#1102 - - PDO_ODBC DSN örneği (ODBC sürücüsünün yöneticisi)
  • Example#1103 - - PDO_ODBC DSN örneği (IBM DB2 katalogsuz bağlantısı)
  • Example#1104 - - PDO_ODBC DSN örneği (Microsoft Access katalogsuz bağlantısı)
  • Example#1105 - - PDO_PGSQL DSN örneği
  • Example#1106 - A PDO::pgsqlLOBCreate example
  • Example#1107 - A PDO::pgsqlLOBOpen example
  • Example#1108 - A PDO::pgsqlLOBUnlink example
  • Example#1109 - - PDO_SQLITE DSN örnekleri
  • Example#1110 - max_length aggregation function example
  • Example#1111 - PDO::sqliteCreateCollation example
  • Example#1112 - PDO::sqliteCreateFunction example
  • Example#1113 - Example of Data Retrieval
  • Example#1114 - Example of Data Insertion
  • Example#1115 - cubrid_bind example
  • Example#1116 - cubrid_bind BLOB/CLOB example
  • Example#1117 - cubrid_bind BLOB/CLOB example
  • Example#1118 - cubrid_close_prepare example
  • Example#1119 - cubrid_close_request example
  • Example#1120 - cubrid_col_get example
  • Example#1121 - cubrid_col_size example
  • Example#1122 - cubrid_column_names example
  • Example#1123 - cubrid_column_types example
  • Example#1124 - cubrid_commit example
  • Example#1125 - cubrid_connect example
  • Example#1126 - cubrid_connect_with_url url without properties example
  • Example#1127 - cubrid_connect_with_url url with properties example
  • Example#1128 - cubrid_current_oid example
  • Example#1129 - cubrid_disconnect example
  • Example#1130 - cubrid_drop example
  • Example#1131 - cubrid_error_code example
  • Example#1132 - cubrid_error_code_facility example
  • Example#1133 - cubrid_error_msg example
  • Example#1134 - cubrid_execute example
  • Example#1135 - cubrid_fetch example
  • Example#1136 - cubrid_free_result example
  • Example#1137 - cubrid_get example
  • Example#1138 - cubrid_get_charset example
  • Example#1139 - cubrid_get_class_name example
  • Example#1140 - cubrid_get_client_info example
  • Example#1141 - cubrid_get_db_parameter example
  • Example#1142 - cubrid_get_query_timeout example
  • Example#1143 - cubrid_get_server_info example
  • Example#1144 - cubrid_insert_id example
  • Example#1145 - cubrid_is_instance example
  • Example#1146 - cubrid_lob_close example
  • Example#1147 - cubrid_lob_export example
  • Example#1148 - cubrid_lob_get example
  • Example#1149 - cubrid_lob_send example
  • Example#1150 - cubrid_lob_size example
  • Example#1151 - cubrid_lob2_bind example
  • Example#1152 - cubrid_lob2_export example
  • Example#1153 - cubrid_lob2_export example
  • Example#1154 - cubrid_lob2_read example 1
  • Example#1155 - cubrid_lob2_read example 2
  • Example#1156 - cubrid_lob2_seek example
  • Example#1157 - cubrid_lob2_seek64 example
  • Example#1158 - cubrid_lob2_write example 1
  • Example#1159 - cubrid_lob2_write example 2
  • Example#1160 - cubrid_lock_read example
  • Example#1161 - cubrid_lock_write example
  • Example#1162 - cubrid_move_cursor example
  • Example#1163 - cubrid_next_result example
  • Example#1164 - cubrid_num_cols example
  • Example#1165 - cubrid_num_rows example
  • Example#1166 - cubrid_connect example
  • Example#1167 - cubrid_pconnect_with_url url without properties example
  • Example#1168 - cubrid_pconnect_with_url url with properties example
  • Example#1169 - cubrid_prepare example
  • Example#1170 - cubrid_put example
  • Example#1171 - cubrid_rollback example
  • Example#1172 - cubrid_schema example
  • Example#1173 - cubrid_seq_drop example
  • Example#1174 - cubrid_seq_insert example
  • Example#1175 - cubrid_seq_put example
  • Example#1176 - cubrid_set_add example
  • Example#1177 - cubrid_get_db_parameter example
  • Example#1178 - cubrid_set_drop example
  • Example#1179 - cubrid_version example
  • Example#1180 - cubrid_affected_rows example
  • Example#1181 - cubrid_client_encoding example
  • Example#1182 - cubrid_close example
  • Example#1183 - cubrid_data_seek example
  • Example#1184 - cubrid_db_name example
  • Example#1185 - cubrid_errno example
  • Example#1186 - cubrid_error example
  • Example#1187 - cubrid_fetch_array example
  • Example#1188 - cubrid_fetch_assoc example
  • Example#1189 - cubrid_fetch_field example
  • Example#1190 - cubrid_fetch_lengths example
  • Example#1191 - cubrid_fetch_object example
  • Example#1192 - cubrid_fetch_row example
  • Example#1193 - cubrid_field_flags example
  • Example#1194 - cubrid_field_len example
  • Example#1195 - cubrid_field_name example
  • Example#1196 - cubrid_field_seek example
  • Example#1197 - cubrid_field_table example
  • Example#1198 - cubrid_field_type example
  • Example#1199 - cubrid_list_dbs example
  • Example#1200 - cubrid_num_fields example
  • Example#1201 - cubrid_ping example
  • Example#1202 - Invalid Query
  • Example#1203 - Valid Query
  • Example#1204 - cubrid_real_escape_string example
  • Example#1205 - cubrid_result example
  • Example#1206 - cubrid_unbuffered_query example
  • Example#1207 - cubrid_load_from_glo example
  • Example#1208 - cubrid_new_glo example
  • Example#1209 - cubrid_save_to_glo example
  • Example#1210 - cubrid_send_glo example
  • Example#1211 - Inserting a record in a dBase database
  • Example#1212 - Closing a dBase database file
  • Example#1213 - Creating a dBase database file
  • Example#1214 - Showing header information for a dBase database file
  • Example#1215 - Listing all the registered members in the database
  • Example#1216 - dbase_numfields Example
  • Example#1217 - Looping over all the records of the database
  • Example#1218 - Opening a dBase database file
  • Example#1219 - Emptying a dBase database
  • Example#1220 - Updating a record in the database
  • Example#1221 - ibase_backup example
  • Example#1222 - ibase_backup example with arguments
  • Example#1223 - ibase_blob_get example
  • Example#1224 - ibase_blob_import example
  • Example#1225 - ibase_connect example
  • Example#1226 - ibase_execute example
  • Example#1227 - ibase_fetch_object example
  • Example#1228 - ibase_field_info example
  • Example#1229 - ibase_name_result example
  • Example#1230 - ibase_num_fields example
  • Example#1231 - ibase_query example
  • Example#1232 - ibase_restore example
  • Example#1233 - ibase_restore example with arguments
  • Example#1234 - ibase_service_attach example
  • Example#1235 - ibase_service_attach example
  • Example#1236 - ibase_service_attach example using hostname/port syntax
  • Example#1237 - ibase_service_detach example
  • Example#1238 - ibase_set_event_handler example
  • Example#1239 - Retrieving the AUTOCOMMIT value for a connection
  • Example#1240 - Setting the AUTOCOMMIT value for a connection
  • Example#1241 - Binding PHP variables to a prepared statement
  • Example#1242 - Calling stored procedures with IN and OUT parameters
  • Example#1243 - Inserting a binary large object (BLOB) directly from a file
  • Example#1244 - A db2_client_info example
  • Example#1245 - Closing a connection
  • Example#1246 - Retrieving an SQLSTATE value for a failed connection attempt
  • Example#1247 - Retrieving the error message returned by a failed connection attempt
  • Example#1248 - Creating a cataloged connection
  • Example#1249 - Creating an uncataloged connection
  • Example#1250 - Creating a connection with autocommit off by default
  • Example#1251 - i5/OS best performance
  • Example#1252 - Using trusted context
  • Example#1253 - A db2_escape_string example
  • Example#1254 - Creating a table with db2_exec
  • Example#1255 - Executing a SELECT statement with a scrollable cursor
  • Example#1256 - Returning XML data as an SQL ResultSet
  • Example#1257 - Performing a "JOIN" with XML data
  • Example#1258 - Returning SQL data as part of a larger XML document
  • Example#1259 - Preparing and executing an SQL statement with parameter markers
  • Example#1260 - Calling a stored procedure with an OUT parameter
  • Example#1261 - Returning XML data as an SQL ResultSet
  • Example#1262 - Performing a "JOIN" with XML data
  • Example#1263 - Returning SQL data as part of a larger XML document
  • Example#1264 - Iterating through a forward-only cursor
  • Example#1265 - Retrieving specific rows with db2_fetch_array from a scrollable cursor
  • Example#1266 - Iterating through a forward-only cursor
  • Example#1267 - Retrieving specific rows with db2_fetch_assoc from a scrollable cursor
  • Example#1268 - Iterating through a forward-only cursor
  • Example#1269 - Retrieving specific rows with db2_fetch_both from a scrollable cursor
  • Example#1270 - A db2_fetch_object example
  • Example#1271 - Iterating through a result set
  • Example#1272 - i5/OS recommended alternatives to db2_fetch_row/db2_result
  • Example#1273 - Setting and retrieving parameters through a connection resource
  • Example#1274 - A db2_last_insert_id example
  • Example#1275 - Iterating through different types of data
  • Example#1276 - Calling a stored procedure that returns multiple result sets
  • Example#1277 - Retrieving the number of fields in a result set
  • Example#1278 - Closing a persistent connection
  • Example#1279 - A db2_pconnect example
  • Example#1280 - Using trusted context
  • Example#1281 - Preparing and executing an SQL statement with parameter markers
  • Example#1282 - A db2_result example
  • Example#1283 - Rolling back a DELETE statement
  • Example#1284 - A db2_server_info example
  • Example#1285 - Setting one parameter with a connection resource
  • Example#1286 - Setting multiple parameters with a connection resource
  • Example#1287 - Setting multiple parameters with an invalid key
  • Example#1288 - Setting multiple parameters with an invalid value
  • Example#1289 - Setting multiple parameters with a connection resource and the wrong type
  • Example#1290 - Setting multiple parameters with the wrong resource
  • Example#1291 - Putting it all together
  • Example#1292 - i5/OS cursors are read-only
  • Example#1293 - MongoDB\Driver\Manager::__construct basic example
  • Example#1294 - MongoDB\Driver\Manager::__construct basic examples
  • Example#1295 - MongoDB\Driver\Manager::executeBulkWrite example
  • Example#1296 - MongoDB\Driver\Manager::executeCommand with a command returning a single result document
  • Example#1297 - MongoDB\Driver\Manager::executeCommand with a command returning a cursor
  • Example#1298 - Limiting execution time for a command
  • Example#1299 - MongoDB\Driver\Manager::executeQuery example
  • Example#1300 - Limiting execution time for a query
  • Example#1301 - MongoDB\Driver\Manager::getReadConcern example
  • Example#1302 - MongoDB\Driver\Manager::getReadPreference example
  • Example#1303 - MongoDB\Driver\Manager::getServers example
  • Example#1304 - MongoDB\Driver\Manager::getWriteConcern example
  • Example#1305 - Composing MongoDB\Driver\Command to provide a helper to create collections
  • Example#1306 - MongoDB\Driver\Command::__construct example
  • Example#1307 - MongoDB\Driver\Command::__construct example
  • Example#1308 - MongoDB\Driver\Query::__construct example
  • Example#1309 - Mixed write operations are grouped by type
  • Example#1310 - Ordered write operations causing an error
  • Example#1311 - MongoDB\Driver\BulkWrite::__construct example
  • Example#1312 - MongoDB\Driver\BulkWrite::count example
  • Example#1313 - MongoDB\Driver\BulkWrite::delete example
  • Example#1314 - MongoDB\Driver\BulkWrite::insert example
  • Example#1315 - MongoDB\Driver\BulkWrite::update example
  • Example#1316 - Declare an API version on a manager
  • Example#1317 - Declare a strict API version on a manager
  • Example#1318 - MongoDB\Driver\WriteConcern::bsonSerialize with majority write concern
  • Example#1319 - MongoDB\Driver\WriteConcern::bsonSerialize with wtimeout and journal
  • Example#1320 - MongoDB\Driver\WriteConcern::__construct example
  • Example#1321 - MongoDB\Driver\WriteConcern::getJournal example
  • Example#1322 - MongoDB\Driver\WriteConcern::getW example
  • Example#1323 - MongoDB\Driver\WriteConcern::getWtimeout example
  • Example#1324 - MongoDB\Driver\WriteConcern::isDefault example
  • Example#1325 - MongoDB\Driver\ReadPreference::bsonSerialize with primary read preference
  • Example#1326 - MongoDB\Driver\ReadPreference::bsonSerialize with secondary read preference and tag sets
  • Example#1327 - MongoDB\Driver\ReadPreference::bsonSerialize with secondary read preference and max staleness
  • Example#1328 - MongoDB\Driver\ReadPreference::__construct example
  • Example#1329 - MongoDB\Driver\ReadPreference::getMaxStalenessSeconds example
  • Example#1330 - MongoDB\Driver\ReadPreference::getMode example
  • Example#1331 - MongoDB\Driver\ReadPreference::getModeString example
  • Example#1332 - MongoDB\Driver\ReadPreference::getTagSets example
  • Example#1333 - MongoDB\Driver\ReadConcern::bsonSerialize with empty read concern
  • Example#1334 - MongoDB\Driver\ReadConcern::bsonSerialize with local read concern
  • Example#1335 - MongoDB\Driver\ReadConcern::__construct example
  • Example#1336 - MongoDB\Driver\ReadConcern::getLevel example
  • Example#1337 - MongoDB\Driver\ReadConcern::isDefault example
  • Example#1338 - Reading a result set
  • Example#1339 - Reading a result set for a tailable cursor
  • Example#1340 - MongoDB\Driver\Cursor::getId example
  • Example#1341 - MongoDB\Driver\Cursor::getServer example
  • Example#1342 - MongoDB\Driver\Cursor::isDead example
  • Example#1343 - MongoDB\Driver\Cursor::setTypeMap example
  • Example#1344 - MongoDB\Driver\Cursor::toArray example
  • Example#1345 - MongoDB\Driver\CursorId::__toString example
  • Example#1346 - MongoDB\Driver\Server::getHost example
  • Example#1347 - MongoDB\Driver\Server::getInfo example
  • Example#1348 - MongoDB\Driver\Server::getLatency example
  • Example#1349 - MongoDB\Driver\Server::getPort example
  • Example#1350 - MongoDB\Driver\WriteConcernError::getCode example
  • Example#1351 - MongoDB\Driver\WriteConcernError::getInfo example
  • Example#1352 - MongoDB\Driver\WriteConcernError::getMessage example
  • Example#1353 - MongoDB\Driver\WriteError::getCode example
  • Example#1354 - MongoDB\Driver\WriteError::getIndex example
  • Example#1355 - MongoDB\Driver\WriteError::getMessage example
  • Example#1356 - MongoDB\Driver\WriteResult::getDeletedCount example
  • Example#1357 - MongoDB\Driver\WriteResult::getInsertedCount example
  • Example#1358 - MongoDB\Driver\WriteResult::getMatchedCount example
  • Example#1359 - MongoDB\Driver\WriteResult::getModifiedCount example
  • Example#1360 - MongoDB\Driver\WriteResult::getServer example
  • Example#1361 - MongoDB\Driver\WriteResult::getUpsertedCount example
  • Example#1362 - MongoDB\Driver\WriteResult::getUpsertedIds example
  • Example#1363 - MongoDB\Driver\WriteResult::getWriteConcernError example
  • Example#1364 - MongoDB\Driver\WriteResult::getWriteErrors with a single error
  • Example#1365 - MongoDB\Driver\WriteResult::getWriteErrors with multiple errors
  • Example#1366 - MongoDB\Driver\WriteResult::isAcknowledged with acknowledged write concern
  • Example#1367 - MongoDB\Driver\WriteResult::isAcknowledged with unacknowledged write concern
  • Example#1368 - MongoDB\BSON\fromJSON example
  • Example#1369 - MongoDB\BSON\fromPHP example
  • Example#1370 - MongoDB\BSON\toCanonicalExtendedJSON example
  • Example#1371 - MongoDB\BSON\toJSON example
  • Example#1372 - MongoDB\BSON\toPHP example
  • Example#1373 - MongoDB\BSON\toRelaxedExtendedJSON example
  • Example#1374 - MongoDB\BSON\Document::toCanonicalExtendedJSON example
  • Example#1375 - MongoDB\BSON\Document::toRelaxedExtendedJSON example
  • Example#1376 - MongoDB\BSON\Binary::__construct example
  • Example#1377 - MongoDB\BSON\Binary::getData example
  • Example#1378 - MongoDB\BSON\Binary::getType example
  • Example#1379 - MongoDB\BSON\Binary::__toString example
  • Example#1380 - MongoDB\BSON\Decimal128::__construct example
  • Example#1381 - MongoDB\BSON\Decimal128::__toString example
  • Example#1382 - MongoDB\BSON\Javascript::__construct example
  • Example#1383 - MongoDB\BSON\Javascript::getCode example
  • Example#1384 - MongoDB\BSON\Javascript::getScope example
  • Example#1385 - MongoDB\BSON\Javascript::__toString example
  • Example#1386 - MongoDB\BSON\MaxKey::__construct example
  • Example#1387 - MongoDB\BSON\MinKey::__construct example
  • Example#1388 - MongoDB\BSON\ObjectId::__construct example
  • Example#1389 - MongoDB\BSON\ObjectId::getTimestamp example
  • Example#1390 - MongoDB\BSON\ObjectId::__toString example
  • Example#1391 - MongoDB\BSON\Regex::__construct example
  • Example#1392 - MongoDB\BSON\Regex::getFlags example
  • Example#1393 - MongoDB\BSON\Regex::getPattern example
  • Example#1394 - MongoDB\BSON\Regex::__toString example
  • Example#1395 - MongoDB\BSON\Timestamp::__construct example
  • Example#1396 - MongoDB\BSON\Timestamp::__toString example
  • Example#1397 - MongoDB\BSON\UTCDateTime::__construct example
  • Example#1398 - MongoDB\BSON\UTCDatetime::toDateTime example
  • Example#1399 - MongoDB\BSON\UTCDatetime::toDateTimeImmutable example
  • Example#1400 - MongoDB\BSON\UTCDateTime::__toString example
  • Example#1401 - MongoDB\BSON\Serializable::bsonSerialize returning an associative array for root document
  • Example#1402 - MongoDB\BSON\Serializable::bsonSerialize returning a sequential array for root document
  • Example#1403 - MongoDB\BSON\Serializable::bsonSerialize returning an associative array for document field
  • Example#1404 - MongoDB\BSON\Serializable::bsonSerialize returning a sequential array for document field
  • Example#1405 - MongoDB\BSON\Unserializable::bsonUnserialize example
  • Example#1406 - MongoDB\BSON\Int64::__toString example
  • Example#1407 - MongoDB\Driver\Exception\WriteException::getWriteResult example
  • Example#1408 - Comparing the MySQL APIs
  • Example#1409 - Comparing prepared statements
  • Example#1410 - Configure commands for using mysqlnd or libmysqlclient
  • Example#1411 - Unbuffered query example: mysqli
  • Example#1412 - Unbuffered query example: pdo_mysql
  • Example#1413 - Problems with setting the character set with SQL
  • Example#1414 - Setting the character set example: mysqli
  • Example#1415 - Setting the character set example: pdo_mysql
  • Example#1416 - Easy migration from the old mysql extension
  • Example#1417 - Object-oriented and procedural interface
  • Example#1418 - Bad coding style
  • Example#1419 - Special meaning of localhost
  • Example#1420 - Setting defaults
  • Example#1421 - Executing queries
  • Example#1422 - Navigation through buffered results
  • Example#1423 - Navigation through unbuffered results
  • Example#1424 - Text protocol returns strings by default
  • Example#1425 - Native data types with mysqlnd and connection option
  • Example#1426 - Prepared statement
  • Example#1427 - INSERT prepared once, executed multiple times
  • Example#1428 - Less round trips using multi-INSERT SQL
  • Example#1429 - Native datatypes
  • Example#1430 - Output variable binding
  • Example#1431 - Using mysqli_result to fetch results
  • Example#1432 - Buffered result set for flexible read out
  • Example#1433 - Calling a stored procedure
  • Example#1434 - Using session variables
  • Example#1435 - Fetching results from stored procedures
  • Example#1436 - Stored Procedures and Prepared Statements
  • Example#1437 - Stored Procedures and Prepared Statements using bind API
  • Example#1438 - Multiple Statements
  • Example#1439 - SQL Injection
  • Example#1440 - Setting autocommit mode with SQL and through the API
  • Example#1441 - Commit and rollback
  • Example#1442 - Accessing result set meta data
  • Example#1443 - Prepared statements metadata
  • Example#1444 - $mysqli->affected_rows example
  • Example#1445 - mysqli::autocommit example
  • Example#1446 - mysqli::begin_transaction example
  • Example#1447 - mysqli::change_user example
  • Example#1448 - mysqli::character_set_name example
  • Example#1449 - mysqli::close example
  • Example#1450 - $mysqli->connect_errno example
  • Example#1451 - $mysqli->connect_error example
  • Example#1452 - mysqli::__construct example
  • Example#1453 - Extending mysqli class
  • Example#1454 - Manual error handling
  • Example#1455 - Generating a Trace File
  • Example#1456 - $mysqli->errno example
  • Example#1457 - $mysqli->error example
  • Example#1458 - $mysqli->error_list example
  • Example#1459 - mysqli::execute_query example
  • Example#1460 - $mysqli->field_count example
  • Example#1461 - mysqli::get_charset example
  • Example#1462 - mysqli_get_client_info
  • Example#1463 - mysqli_get_client_version
  • Example#1464 - A mysqli_get_connection_stats example
  • Example#1465 - $mysqli->host_info example
  • Example#1466 - $mysqli->protocol_version example
  • Example#1467 - $mysqli->server_info example
  • Example#1468 - $mysqli->server_version example
  • Example#1469 - $mysqli->info example
  • Example#1470 - $mysqli->insert_id example
  • Example#1471 - mysqli::kill example
  • Example#1472 - mysqli::multi_query example
  • Example#1473 - mysqli::ping example
  • Example#1474 - A mysqli_poll example
  • Example#1475 - mysqli::prepare example
  • Example#1476 - mysqli::query example
  • Example#1477 - mysqli::real_connect example
  • Example#1478 - mysqli::real_escape_string example
  • Example#1479 - mysqli::select_db example
  • Example#1480 - mysqli::set_charset example
  • Example#1481 - $mysqli->sqlstate example
  • Example#1482 - mysqli::stat example
  • Example#1483 - $mysqli->thread_id example
  • Example#1484 - mysqli::use_result example
  • Example#1485 - $mysqli->warning_count example
  • Example#1486 - mysqli_stmt_affected_rows example
  • Example#1487 - mysqli_stmt::bind_param example
  • Example#1488 - Using ... to provide arguments
  • Example#1489 - Nesne yönelimli kullanım
  • Example#1490 - Yordamsal kullanım
  • Example#1491 - Nesne yönelimli kullanım
  • Example#1492 - Yordamsal kullanım
  • Example#1493 - Nesne yönelimli kullanım
  • Example#1494 - Yordamsal kullanım
  • Example#1495 - Nesne yönelimli kullanım
  • Example#1496 - Yordamsal kullanım
  • Example#1497 - Nesne yönelimli kullanım
  • Example#1498 - Yordamsal kullanım
  • Example#1499 - Execute a prepared statement with bound variables
  • Example#1500 - Execute a prepared statement with an array of values
  • Example#1501 - Nesne yönelimli kullanım
  • Example#1502 - Yordamsal kullanım
  • Example#1503 - Nesne yönelimli kullanım
  • Example#1504 - Yordamsal kullanım
  • Example#1505 - Nesne yönelimli kullanım
  • Example#1506 - Yordamsal kullanım
  • Example#1507 - Nesne yönelimli kullanım
  • Example#1508 - Yordamsal kullanım
  • Example#1509 - Nesne yönelimli kullanım
  • Example#1510 - Yordamsal kullanım
  • Example#1511 - mysqli_stmt::prepare example
  • Example#1512 - Nesne yönelimli kullanım
  • Example#1513 - Yordamsal kullanım
  • Example#1514 - Nesne yönelimli kullanım
  • Example#1515 - Nesne yönelimli kullanım
  • Example#1516 - Yordamsal kullanım
  • Example#1517 - Nesne yönelimli kullanım
  • Example#1518 - Yordamsal kullanım
  • Example#1519 - Creation of a mysqli_result object
  • Example#1520 - Nesne yönelimli kullanım
  • Example#1521 - Yordamsal kullanım
  • Example#1522 - mysqli::data_seek example
  • Example#1523 - Adjusting the result pointer when iterating
  • Example#1524 - mysqli_result::fetch_all example
  • Example#1525 - mysqli_result::fetch_array example
  • Example#1526 - mysqli_result::fetch_assoc example
  • Example#1527 - Comparison of mysqli_result iterator and mysqli_result::fetch_assoc usage
  • Example#1528 - mysqli_result::fetch_column example
  • Example#1529 - Nesne yönelimli kullanım
  • Example#1530 - Yordamsal kullanım
  • Example#1531 - Nesne yönelimli kullanım
  • Example#1532 - Yordamsal kullanım
  • Example#1533 - Nesne yönelimli kullanım
  • Example#1534 - Yordamsal kullanım
  • Example#1535 - mysqli_result::fetch_object example
  • Example#1536 - mysqli_result::fetch_row example
  • Example#1537 - Nesne yönelimli kullanım
  • Example#1538 - Yordamsal kullanım
  • Example#1539 - Nesne yönelimli kullanım
  • Example#1540 - Yordamsal kullanım
  • Example#1541 - Nesne yönelimli kullanım
  • Example#1542 - Yordamsal kullanım
  • Example#1543 - Nesne yönelimli kullanım
  • Example#1544 - Yordamsal kullanım
  • Example#1545 - Nesne yönelimli kullanım
  • Example#1546 - Yordamsal kullanım
  • Example#1547 - Error reporting except bad index errors
  • Example#1548 - A mysqli_get_client_stats example
  • Example#1549 - Connecting to a MySQL Server
  • Example#1550 - Creating a Schema and Collection on the MySQL Server
  • Example#1551 - Storing and Retrieving Data
  • Example#1552 - Fetching and Iterating Multiple Documents
  • Example#1553 - mysql_xdevapi\Expression example
  • Example#1554 - URI examples
  • Example#1555 - mysql_xdevapi\getSession example
  • Example#1556 - mysql_xdevapi\RowResult::getWarnings example
  • Example#1557 - mysql_xdevapi\RowResult::getWarningsCount example
  • Example#1558 - mysql_xdevapi\Client::__construct example
  • Example#1559 - mysql_xdevapi\Collection::add example
  • Example#1560 - mysql_xdevapi\Collection::addOrReplaceOne example
  • Example#1561 - mysql_xdevapi\Collection::getOne example
  • Example#1562 - mysql_xdevapi\Collection::count example
  • Example#1563 - mysql_xdevapi\Collection::createIndex example
  • Example#1564 - mysql_xdevapi\Collection::dropIndex example
  • Example#1565 - mysql_xdevapi\Collection::existsInDatabase example
  • Example#1566 - mysql_xdevapi\Collection::find example
  • Example#1567 - mysql_xdevapi\Collection::getName example
  • Example#1568 - mysql_xdevapi\Collection::getOne example
  • Example#1569 - mysql_xdevapi\Collection::getSchema example
  • Example#1570 - mysql_xdevapi\Collection::getSession example
  • Example#1571 - mysql_xdevapi\Collection::modify example
  • Example#1572 - mysql_xdevapi\Collection::remove example
  • Example#1573 - mysql_xdevapi\Collection::removeOne example
  • Example#1574 - mysql_xdevapi\Collection::replaceOne example
  • Example#1575 - mysql_xdevapi\CollectionAdd::__construct example
  • Example#1576 - mysql_xdevapi\CollectionAdd::execute example
  • Example#1577 - mysql_xdevapi\CollectionFind::bind example
  • Example#1578 - CollectionFind example
  • Example#1579 - CollectionFind example
  • Example#1580 - mysql_xdevapi\CollectionFind::fields example
  • Example#1581 - mysql_xdevapi\CollectionFind::groupBy example
  • Example#1582 - mysql_xdevapi\CollectionFind::having example
  • Example#1583 - mysql_xdevapi\CollectionFind::limit example
  • Example#1584 - mysql_xdevapi\CollectionFind::lockExclusive example
  • Example#1585 - mysql_xdevapi\CollectionFind::lockShared example
  • Example#1586 - mysql_xdevapi\CollectionFind::offset example
  • Example#1587 - mysql_xdevapi\CollectionFind::sort example
  • Example#1588 - mysql_xdevapi\CollectionModify::arrayAppend example
  • Example#1589 - mysql_xdevapi\CollectionModify::arrayInsert example
  • Example#1590 - mysql_xdevapi\CollectionModify::bind example
  • Example#1591 - mysql_xdevapi\CollectionModify::__construct example
  • Example#1592 - mysql_xdevapi\CollectionModify::execute example
  • Example#1593 - mysql_xdevapi\CollectionModify::limit example
  • Example#1594 - mysql_xdevapi\CollectionModify::patch example
  • Example#1595 - mysql_xdevapi\CollectionModify::replace example
  • Example#1596 - mysql_xdevapi\CollectionModify::set example
  • Example#1597 - mysql_xdevapi\CollectionModify::skip example
  • Example#1598 - mysql_xdevapi\CollectionModify::sort example
  • Example#1599 - mysql_xdevapi\CollectionModify::unset example
  • Example#1600 - mysql_xdevapi\CollectionRemove::bind example
  • Example#1601 - mysql_xdevapi\Collection::remove example
  • Example#1602 - mysql_xdevapi\CollectionRemove::execute example
  • Example#1603 - mysql_xdevapi\CollectionRemove::limit example
  • Example#1604 - mysql_xdevapi\CollectionRemove::sort example
  • Example#1605 - mysql_xdevapi\ColumnResult::__construct example
  • Example#1606 - mysql_xdevapi\ColumnResult::getCharacterSetName example
  • Example#1607 - mysql_xdevapi\ColumnResult::getCollationName example
  • Example#1608 - mysql_xdevapi\ColumnResult::getColumnLabel example
  • Example#1609 - mysql_xdevapi\ColumnResult::getColumnName example
  • Example#1610 - mysql_xdevapi\ColumnResult::getFractionalDigits example
  • Example#1611 - mysql_xdevapi\ColumnResult::getLength example
  • Example#1612 - mysql_xdevapi\ColumnResult::getSchemaName example
  • Example#1613 - mysql_xdevapi\ColumnResult::getTableLabel example
  • Example#1614 - mysql_xdevapi\ColumnResult::getTableName example
  • Example#1615 - mysql_xdevapi\ColumnResult::getType example
  • Example#1616 - mysql_xdevapi\ColumnResult::isNumberSigned example
  • Example#1617 - mysql_xdevapi\ColumnResult::isPadded example
  • Example#1618 - mysql_xdevapi\CrudOperationBindable::bind example
  • Example#1619 - mysql_xdevapi\CrudOperationLimitable::limit example
  • Example#1620 - mysql_xdevapi\CrudOperationSkippable::skip example
  • Example#1621 - mysql_xdevapi\CrudOperationSortable::sort example
  • Example#1622 - mysql_xdevapi\DatabaseObject::existsInDatabase example
  • Example#1623 - mysql_xdevapi\DatabaseObject::getName example
  • Example#1624 - mysql_xdevapi\DatabaseObject::getSession example
  • Example#1625 - A DocResult example
  • Example#1626 - mysql_xdevapi\DocResult::fetchAll example
  • Example#1627 - mysql_xdevapi\DocResult::fetchOne example
  • Example#1628 - mysql_xdevapi\DocResult::getWarnings example
  • Example#1629 - mysql_xdevapi\DocResult::getWarningsCount example
  • Example#1630 - execute() examples
  • Example#1631 - mysql_xdevapi\ExecutionStatus::__construct example
  • Example#1632 - mysql_xdevapi\Expression::__construct example
  • Example#1633 - mysql_xdevapi\Result::__construct example
  • Example#1634 - mysql_xdevapi\Result::getAffectedItemsCount example
  • Example#1635 - mysql_xdevapi\Result::getAutoIncrementValue example
  • Example#1636 - mysql_xdevapi\Result::getGeneratedIds example
  • Example#1637 - mysql_xdevapi\RowResult::getWarnings example
  • Example#1638 - mysql_xdevapi\RowResult::getWarningsCount example
  • Example#1639 - mysql_xdevapi\RowResult::__construct example
  • Example#1640 - mysql_xdevapi\RowResult::fetchAll example
  • Example#1641 - mysql_xdevapi\RowResult::fetchOne example
  • Example#1642 - mysql_xdevapi\RowResult::getColumnsCount example
  • Example#1643 - mysql_xdevapi\RowResult::getColumnNames example
  • Example#1644 - mysql_xdevapi\RowResult::getColumns example
  • Example#1645 - mysql_xdevapi\RowResult::getWarnings example
  • Example#1646 - mysql_xdevapi\RowResult::getWarningsCount example
  • Example#1647 - mysql_xdevapi\Schema::__construct example
  • Example#1648 - mysql_xdevapi\Schema::createCollection example
  • Example#1649 - mysql_xdevapi\Schema::createCollection example
  • Example#1650 - mysql_xdevapi\Schema::dropCollection example
  • Example#1651 - mysql_xdevapi\Schema::existsInDatabase example
  • Example#1652 - mysql_xdevapi\Schema::getCollection example
  • Example#1653 - mysql_xdevapi\Schema::getCollectionAsTable example
  • Example#1654 - mysql_xdevapi\Schema::getCollections example
  • Example#1655 - mysql_xdevapi\Schema::getName example
  • Example#1656 - mysql_xdevapi\Schema::getSession example
  • Example#1657 - mysql_xdevapi\Schema::getTable example
  • Example#1658 - mysql_xdevapi\Schema::getTables example
  • Example#1659 - mysql_xdevapi\Session::getSchema example
  • Example#1660 - mysql_xdevapi\Session::close example
  • Example#1661 - mysql_xdevapi\Session::commit example
  • Example#1662 - mysql_xdevapi\Session::__construct example
  • Example#1663 - mysql_xdevapi\Session::createSchema example
  • Example#1664 - mysql_xdevapi\Session::dropSchema example
  • Example#1665 - mysql_xdevapi\Session::generateUuid example
  • Example#1666 - mysql_xdevapi\Session::getSchema example
  • Example#1667 - mysql_xdevapi\Session::getSchema example
  • Example#1668 - mysql_xdevapi\Session::getSchemas example
  • Example#1669 - mysql_xdevapi\Session::getServerVersion example
  • Example#1670 - mysql_xdevapi\Session::listClients example
  • Example#1671 - mysql_xdevapi\Session::quoteName example
  • Example#1672 - mysql_xdevapi\Session::releaseSavepoint example
  • Example#1673 - mysql_xdevapi\Session::rollback example
  • Example#1674 - mysql_xdevapi\Session::rollbackTo example
  • Example#1675 - mysql_xdevapi\Session::setSavepoint example
  • Example#1676 - mysql_xdevapi\Session::sql example
  • Example#1677 - mysql_xdevapi\Session::startTransaction example
  • Example#1678 - mysql_xdevapi\SqlStatement::bind example
  • Example#1679 - mysql_xdevapi\SqlStatement::__construct example
  • Example#1680 - mysql_xdevapi\SqlStatement::execute example
  • Example#1681 - mysql_xdevapi\SqlStatement::getNextResult example
  • Example#1682 - mysql_xdevapi\SqlStatement::getResult example
  • Example#1683 - mysql_xdevapi\SqlStatement::hasMoreResults example
  • Example#1684 - mysql_xdevapi\SqlStatementResult::__construct example
  • Example#1685 - mysql_xdevapi\SqlStatementResult::fetchAll example
  • Example#1686 - mysql_xdevapi\SqlStatementResult::fetchOne example
  • Example#1687 - mysql_xdevapi\SqlStatementResult::getAffectedItemsCount example
  • Example#1688 - mysql_xdevapi\SqlStatementResult::getColumnsCount example
  • Example#1689 - mysql_xdevapi\SqlStatementResult::getColumnNames example
  • Example#1690 - mysql_xdevapi\SqlStatementResult::getColumns example
  • Example#1691 - mysql_xdevapi\SqlStatementResult::getGeneratedIds example
  • Example#1692 - mysql_xdevapi\SqlStatementResult::getLastInsertId example
  • Example#1693 - mysql_xdevapi\SqlStatementResult::getWarnings example
  • Example#1694 - mysql_xdevapi\SqlStatementResult::getWarningsCount example
  • Example#1695 - mysql_xdevapi\SqlStatementResult::hasData example
  • Example#1696 - mysql_xdevapi\SqlStatementResult::nextResult example
  • Example#1697 - mysql_xdevapi\Statement::__construct example
  • Example#1698 - mysql_xdevapi\Statement::getNextResult example
  • Example#1699 - mysql_xdevapi\Statement::getResult example
  • Example#1700 - mysql_xdevapi\Statement::hasMoreResults example
  • Example#1701 - mysql_xdevapi\Table::__construct example
  • Example#1702 - mysql_xdevapi\Table::count example
  • Example#1703 - mysql_xdevapi\Table::delete example
  • Example#1704 - mysql_xdevapi\Table::existsInDatabase example
  • Example#1705 - mysql_xdevapi\Table::getName example
  • Example#1706 - mysql_xdevapi\Table::getSchema example
  • Example#1707 - mysql_xdevapi\Table::getSession example
  • Example#1708 - mysql_xdevapi\Table::insert example
  • Example#1709 - mysql_xdevapi\Table::isView example
  • Example#1710 - mysql_xdevapi\Table::count example
  • Example#1711 - mysql_xdevapi\Table::update example
  • Example#1712 - mysql_xdevapi\TableDelete::bind example
  • Example#1713 - mysql_xdevapi\TableDelete::__construct example
  • Example#1714 - mysql_xdevapi\TableDelete::execute example
  • Example#1715 - mysql_xdevapi\TableDelete::limit example
  • Example#1716 - mysql_xdevapi\TableDelete::orderBy example
  • Example#1717 - mysql_xdevapi\TableDelete::where example
  • Example#1718 - mysql_xdevapi\TableInsert::__construct example
  • Example#1719 - mysql_xdevapi\TableInsert::execute example
  • Example#1720 - mysql_xdevapi\TableInsert::values example
  • Example#1721 - mysql_xdevapi\TableSelect::bind example
  • Example#1722 - mysql_xdevapi\TableSelect::__construct example
  • Example#1723 - mysql_xdevapi\TableSelect::execute example
  • Example#1724 - mysql_xdevapi\TableSelect::groupBy example
  • Example#1725 - mysql_xdevapi\TableSelect::having example
  • Example#1726 - mysql_xdevapi\TableSelect::limit example
  • Example#1727 - mysql_xdevapi\TableSelect::lockExclusive example
  • Example#1728 - mysql_xdevapi\TableSelect::lockShared example
  • Example#1729 - mysql_xdevapi\TableSelect::offset example
  • Example#1730 - mysql_xdevapi\TableSelect::orderBy example
  • Example#1731 - mysql_xdevapi\TableSelect::where example
  • Example#1732 - mysql_xdevapi\TableUpdate::bind example
  • Example#1733 - mysql_xdevapi\TableUpdate::__construct example
  • Example#1734 - mysql_xdevapi\TableUpdate::execute example
  • Example#1735 - mysql_xdevapi\TableUpdate::limit example
  • Example#1736 - mysql_xdevapi\TableUpdate::orderby example
  • Example#1737 - mysql_xdevapi\TableUpdate::set example
  • Example#1738 - mysql_xdevapi\TableUpdate::where example
  • Example#1739 - mysql_xdevapi\Warning::__construct example
  • Example#1740 - - MySQL eklentisi örneği
  • Example#1741 - - mysql_affected_rows örneği
  • Example#1742 - - Hareket kullananılan mysql_affected_rows örneği
  • Example#1743 - - mysql_client_encoding örneği
  • Example#1744 - - mysql_close örneği
  • Example#1745 - - mysql_connect örneği
  • Example#1746 - - konak_adı:port sözdizimini kullanan mysql_connect örneği
  • Example#1747 - - ":/bir/yol/soket" sözdizimini kullanan mysql_connect örneği
  • Example#1748 - - mysql_create_db yerine kullanılacak kod örneği
  • Example#1749 - mysql_data_seek example
  • Example#1750 - - mysql_db_name örneği
  • Example#1751 - - mysql_db_query yerine kullanılabilecek kod örneği
  • Example#1752 - mysql_drop_db alternative example
  • Example#1753 - mysql_errno example
  • Example#1754 - mysql_error example
  • Example#1755 - mysql_escape_string example
  • Example#1756 - Query with aliased duplicate field names
  • Example#1757 - mysql_fetch_array with MYSQL_NUM
  • Example#1758 - mysql_fetch_array with MYSQL_ASSOC
  • Example#1759 - mysql_fetch_array with MYSQL_BOTH
  • Example#1760 - An expanded mysql_fetch_assoc example
  • Example#1761 - mysql_fetch_field example
  • Example#1762 - - mysql_fetch_lengths örneği
  • Example#1763 - mysql_fetch_object example
  • Example#1764 - mysql_fetch_object example
  • Example#1765 - Fetching one row with mysql_fetch_row
  • Example#1766 - A mysql_field_flags example
  • Example#1767 - - mysql_field_len örneği
  • Example#1768 - mysql_field_name example
  • Example#1769 - - mysql_field_table örneği
  • Example#1770 - mysql_field_type example
  • Example#1771 - - mysql_free_result örneği
  • Example#1772 - - mysql_get_client_info örneği
  • Example#1773 - - mysql_get_host_info örneği
  • Example#1774 - - mysql_get_proto_info örneği
  • Example#1775 - - mysql_get_server_info örneği
  • Example#1776 - - İlgili MySQL Deyimleri
  • Example#1777 - mysql_insert_id example
  • Example#1778 - - mysql_list_dbs kullanmama örneği
  • Example#1779 - - mysql_list_fields yerine kullanılabilecek kod örneği
  • Example#1780 - - mysql_list_processes örneği
  • Example#1781 - - mysql_list_tables yerine kullanılabilecek kod örneği
  • Example#1782 - - mysql_num_fields örneği
  • Example#1783 - - mysql_num_rows örneği
  • Example#1784 - - mysql_ping örneği
  • Example#1785 - Invalid Query
  • Example#1786 - Valid Query
  • Example#1787 - Simple mysql_real_escape_string example
  • Example#1788 - mysql_real_escape_string requires a connection example
  • Example#1789 - An example SQL Injection Attack
  • Example#1790 - mysql_result example
  • Example#1791 - - mysql_select_db örneği
  • Example#1792 - - mysql_stat örneği
  • Example#1793 - - Bir başka mysql_stat örneği
  • Example#1794 - - mysql_tablename örneği
  • Example#1795 - - mysql_thread_id örneği
  • Example#1796 - Examples of code snippets that cause an explicit close
  • Example#1797 - Examples of code snippets that cause an implicit close
  • Example#1798 - Usage examples
  • Example#1799 - Basic query
  • Example#1800 - Inserting with bind variables
  • Example#1801 - Binding in the WHERE clause of a query
  • Example#1802 - Inserting and fetching a CLOB
  • Example#1803 - Using a PL/SQL stored function
  • Example#1804 - Using a PL/SQL stored procedure
  • Example#1805 - Calling a PL/SQL function that returns a REF CURSOR
  • Example#1806 - Registering a TAF callback
  • Example#1807 - user_oci8_probes.d for tracing all user-level PHP OCI8 Static Probes with DTrace
  • Example#1808 - oci_bind_array_by_name example
  • Example#1809 - Inserting data with oci_bind_by_name
  • Example#1810 - Binding once for multiple executions
  • Example#1811 - Binding with a foreach loop
  • Example#1812 - Binding in a WHERE clause
  • Example#1813 - Binding with a LIKE clause
  • Example#1814 - Binding with REGEXP_LIKE
  • Example#1815 - Binding Multiple Values in an IN Clause
  • Example#1816 - Binding a ROWID returned by a query
  • Example#1817 - Binding a ROWID on INSERT
  • Example#1818 - Binding for a PL/SQL stored function
  • Example#1819 - Binding parameters for a PL/SQL stored procedure
  • Example#1820 - Binding a CLOB column
  • Example#1821 - Binding a PL/SQL BOOLEAN
  • Example#1822 - oci_client_version example
  • Example#1823 - Closing a connection
  • Example#1824 - Database connections are not closed until all references are closed
  • Example#1825 - Closing a connection opened more than once
  • Example#1826 - Connections are closed when variables go out of scope
  • Example#1827 - oci_commit example
  • Example#1828 - Basic oci_connect using Easy Connect syntax
  • Example#1829 - Basic oci_connect using a Network Connect name
  • Example#1830 - oci_connect with an explicit character set
  • Example#1831 - Using multiple calls to oci_connect
  • Example#1832 - oci_define_by_name example
  • Example#1833 - oci_define_by_name with case sensitive column names
  • Example#1834 - oci_define_by_name with LOB columns
  • Example#1835 - oci_define_by_name with an explicit type
  • Example#1836 - Displaying the Oracle error message after a connection error
  • Example#1837 - Displaying the Oracle error message after a parsing error
  • Example#1838 - Displaying the Oracle error message, the problematic statement, and the position of the problem of an execution error
  • Example#1839 - oci_execute for queries
  • Example#1840 - oci_execute without specifying a mode example
  • Example#1841 - oci_execute with OCI_NO_AUTO_COMMIT example
  • Example#1842 - oci_execute with different commit modes example
  • Example#1843 - oci_execute with OCI_DESCRIBE_ONLY example
  • Example#1844 - oci_fetch with defined variables
  • Example#1845 - oci_fetch with oci_result
  • Example#1846 - oci_fetch_all example
  • Example#1847 - oci_fetch_all example with OCI_FETCHSTATEMENT_BY_ROW
  • Example#1848 - oci_fetch_all with OCI_NUM
  • Example#1849 - oci_fetch_array with OCI_BOTH
  • Example#1850 - oci_fetch_array with OCI_NUM
  • Example#1851 - oci_fetch_array with OCI_ASSOC
  • Example#1852 - oci_fetch_array with OCI_RETURN_NULLS
  • Example#1853 - oci_fetch_array with OCI_RETURN_LOBS
  • Example#1854 - oci_fetch_array with case sensitive column names
  • Example#1855 - oci_fetch_array with columns having duplicate names
  • Example#1856 - oci_fetch_array with DATE columns
  • Example#1857 - oci_fetch_array with REF CURSOR
  • Example#1858 - Pagination with oci_fetch_array using a LIMIT-like query
  • Example#1859 - oci_fetch_array with Oracle Database Implicit Result Sets
  • Example#1860 - oci_fetch_assoc Example
  • Example#1861 - oci_fetch_object example
  • Example#1862 - oci_fetch_object with case sensitive column names
  • Example#1863 - oci_fetch_object with LOBs
  • Example#1864 - oci_fetch_row Example
  • Example#1865 - oci_field_name example
  • Example#1866 - oci_field_name example
  • Example#1867 - oci_field_precision Example
  • Example#1868 - oci_field_scale Example
  • Example#1869 - oci_field_size example
  • Example#1870 - oci_field_type example
  • Example#1871 - oci_field_type_raw Example
  • Example#1872 - Fetching Implicit Result Sets in a loop
  • Example#1873 - Getting child statement handles individually
  • Example#1874 - Explicitly setting the Prefetch Count
  • Example#1875 - Implicit Result Set example without using oci_get_implicit_resultset
  • Example#1876 - oci_new_connect example
  • Example#1877 - Binding a REF CURSOR in an Oracle stored procedure call
  • Example#1878 - oci_new_descriptor example
  • Example#1879 - oci_new_descriptor example
  • Example#1880 - oci_num_fields example
  • Example#1881 - oci_num_rows example
  • Example#1882 - oci_parse example for SQL statements
  • Example#1883 - oci_parse example for PL/SQL statements
  • Example#1884 - oci_password_change example changing the password of an already connected user
  • Example#1885 - oci_password_change example of connecting and changing the password in one step
  • Example#1886 - Basic oci_pconnect Example using Easy Connect syntax
  • Example#1887 - oci_fetch with oci_result
  • Example#1888 - oci_rollback example
  • Example#1889 - Rolling back to a SAVEPOINT example
  • Example#1890 - oci_server_version example
  • Example#1891 - Setting the action
  • Example#1892 - Setting the timeout
  • Example#1893 - Setting the client identifier to the application user
  • Example#1894 - Setting the client information
  • Example#1895 - Setting the DBOP
  • Example#1896 - Two scripts can use different versions of myfunc() at the same time
  • Example#1897 - Setting the module name
  • Example#1898 - Changing the default prefetch value for a query
  • Example#1899 - Changing the default prefetch for a REF CURSOR fetch
  • Example#1900 - Setting the prefetch value when passing a REF CURSOR back to Oracle
  • Example#1901 - Changing the LOB prefetch value for a query
  • Example#1902 - oci_statement_type example
  • Example#1903 - PostgreSQL extension overview example
  • Example#1904 - PostgreSQL user defined functions example
  • Example#1905 - pg_affected_rows example
  • Example#1906 - pg_cancel_query example
  • Example#1907 - pg_client_encoding example
  • Example#1908 - pg_close example
  • Example#1909 - Using pg_connect
  • Example#1910 - pg_connection_busy example
  • Example#1911 - pg_connection_reset example
  • Example#1912 - pg_connection_status example
  • Example#1913 - pg_convert example
  • Example#1914 - pg_copy_from example
  • Example#1915 - pg_copy_to example
  • Example#1916 - pg_dbname example
  • Example#1917 - pg_delete example
  • Example#1918 - pg_end_copy example
  • Example#1919 - pg_escape_bytea example
  • Example#1920 - pg_escape_identifier example
  • Example#1921 - pg_escape_literal example
  • Example#1922 - pg_escape_string example
  • Example#1923 - Using pg_execute
  • Example#1924 - PostgreSQL fetch all
  • Example#1925 - pg_fetch_all_columns example
  • Example#1926 - pg_fetch_array example
  • Example#1927 - pg_fetch_assoc example
  • Example#1928 - pg_fetch_object example
  • Example#1929 - pg_fetch_result example
  • Example#1930 - pg_fetch_row example
  • Example#1931 - pg_field_is_null example
  • Example#1932 - Getting information about fields
  • Example#1933 - Getting information about fields
  • Example#1934 - Getting information about fields
  • Example#1935 - Getting information about fields
  • Example#1936 - Getting table information about a field
  • Example#1937 - Getting information about fields
  • Example#1938 - Getting information about fields
  • Example#1939 - pg_free_result example
  • Example#1940 - PostgreSQL NOTIFY message
  • Example#1941 - PostgreSQL backend PID
  • Example#1942 - pg_get_result example
  • Example#1943 - pg_host example
  • Example#1944 - pg_insert example
  • Example#1945 - pg_last_error example
  • Example#1946 - pg_last_notice example
  • Example#1947 - pg_last_oid example
  • Example#1948 - pg_lo_close example
  • Example#1949 - pg_lo_create example
  • Example#1950 - pg_lo_export example
  • Example#1951 - pg_lo_import example
  • Example#1952 - pg_lo_open example
  • Example#1953 - pg_lo_read example
  • Example#1954 - pg_lo_read_all example
  • Example#1955 - pg_lo_seek example
  • Example#1956 - pg_lo_tell example
  • Example#1957 - pg_lo_truncate example
  • Example#1958 - pg_lo_unlink example
  • Example#1959 - pg_lo_write example
  • Example#1960 - Getting table metadata
  • Example#1961 - pg_num_fields example
  • Example#1962 - pg_num_rows example
  • Example#1963 - pg_options example
  • Example#1964 - pg_parameter_status example
  • Example#1965 - Using pg_pconnect
  • Example#1966 - pg_ping example
  • Example#1967 - pg_port example
  • Example#1968 - Using pg_prepare
  • Example#1969 - pg_put_line example
  • Example#1970 - pg_query example
  • Example#1971 - Using pg_query with multiple statements
  • Example#1972 - Using pg_query_params
  • Example#1973 - pg_result_error example
  • Example#1974 - pg_result_error_field example
  • Example#1975 - pg_result_seek example
  • Example#1976 - pg_result_status example
  • Example#1977 - pg_select example
  • Example#1978 - Using pg_send_execute
  • Example#1979 - Using pg_send_prepare
  • Example#1980 - pg_send_query example
  • Example#1981 - Using pg_send_query_params
  • Example#1982 - pg_set_client_encoding example
  • Example#1983 - pg_set_error_context_visibility example
  • Example#1984 - pg_set_error_verbosity example
  • Example#1985 - pg_trace example
  • Example#1986 - pg_transaction_status example
  • Example#1987 - pg_tty example
  • Example#1988 - pg_unescape_bytea example
  • Example#1989 - pg_untrace example
  • Example#1990 - pg_update example
  • Example#1991 - pg_version example
  • Example#1992 - Backup an existing database
  • Example#1993 - - SQLite3::changes örneği
  • Example#1994 - - SQLite3::close örneği
  • Example#1995 - - SQLite3::__construct örneği
  • Example#1996 - - en_uzun toparlayıcı işlev örneği
  • Example#1997 - SQLite3::createCollation example
  • Example#1998 - - SQLite3::createFunction örneği
  • Example#1999 - SQLite3::enableExceptions example
  • Example#2000 - - SQLite3::exec örneği
  • Example#2001 - - SQLite3::loadExtension örneği
  • Example#2002 - - SQLite3::open örneği
  • Example#2003 - SQLite3::openBlob example
  • Example#2004 - Incrementally writing a BLOB
  • Example#2005 - - SQLite3::prepare örneği
  • Example#2006 - - SQLite3::query örneği
  • Example#2007 - - SQLite3::querySingle örneği
  • Example#2008 - SQLite3::setAuthorizer example
  • Example#2009 - - SQLite3::version örneği
  • Example#2010 - - SQLite3Stmt::bindParam kullanımı
  • Example#2011 - - SQLite3Stmt::bindValue örneği
  • Example#2012 - Inspecting the expanded SQL
  • Example#2013 - sqlsrv_begin_transaction example
  • Example#2014 - sqlsrv_cancel example
  • Example#2015 - sqlsrv_client_info example
  • Example#2016 - sqlsrv_close example
  • Example#2017 - sqlsrv_commit example
  • Example#2018 - Connect using Windows Authentication.
  • Example#2019 - Connect by specifying a user name and password.
  • Example#2020 - Connect on a specified port.
  • Example#2021 - functionname example
  • Example#2022 - sqlsrv_execute example
  • Example#2023 - sqlsrv_fetch example
  • Example#2024 - Retrieving an associative array.
  • Example#2025 - Retrieving a numeric array.
  • Example#2026 - sqlsrv_fetch_object example
  • Example#2027 - sqlsrv_field_metadata example
  • Example#2028 - sqlsrv_free_stmt example
  • Example#2029 - sqlsrv_get_field example
  • Example#2030 - sqlsrv_has_rows example
  • Example#2031 - sqlsrv_next_result example
  • Example#2032 - sqlsrv_num_fields example
  • Example#2033 - sqlsrv_num_rows example
  • Example#2034 - sqlsrv_prepare example
  • Example#2035 - sqlsrv_query example
  • Example#2036 - sqlsrv_rollback example
  • Example#2037 - sqlsrv_rows_affected example
  • Example#2038 - sqlsrv_send_stream_data example
  • Example#2039 - sqlsrv_server_info example
  • Example#2040 - cal_days_in_month örneği
  • Example#2041 - cal_from_jd örneği
  • Example#2042 - cal_info örneği
  • Example#2043 - easter_date örneği
  • Example#2044 - - easter_date ile DateTime kullanımı
  • Example#2045 - easter_days örneği
  • Example#2046 - Takvim işlevleri örneği
  • Example#2047 - - Taşma durumu
  • Example#2048 - jdtojewish örneği
  • Example#2049 - DateTimeImmutable::add/sub add intervals which cover elapsed time
  • Example#2050 - DateTimeImmutable::modify and strtotime increment or decrement individual component values
  • Example#2051 - Adding or subtracting times can over- or underflow dates
  • Example#2052 - Creating a mutable date time object
  • Example#2053 - Creating a mutable date time object
  • Example#2054 - DateTime::modify example
  • Example#2055 - Beware when adding or subtracting months
  • Example#2056 - All formats of Date and Time are supported
  • Example#2057 - DateTime::setTimeZone example
  • Example#2058 - DateTimeImmutable::add example
  • Example#2059 - Further DateTimeImmutable::add examples
  • Example#2060 - Beware when adding months
  • Example#2061 - DateTimeImmutable::__construct example
  • Example#2062 - Intricacies of DateTimeImmutable::__construct
  • Example#2063 - Changing the associated timezone
  • Example#2064 - Using a relative date/time string
  • Example#2065 - DateTimeImmutable::createFromFormat example
  • Example#2066 - Using predefined format constants with DateTimeImmutable::createFromFormat
  • Example#2067 - Intricacies of DateTimeImmutable::createFromFormat
  • Example#2068 - Format string with literal characters
  • Example#2069 - Overflow behaviour
  • Example#2070 - Overflowing day name behaviour
  • Example#2071 - Detecting overflown dates
  • Example#2072 - Greedy parsing behaviour
  • Example#2073 - Creating an immutable date time object
  • Example#2074 - Creating an immutable date time object
  • Example#2075 - DateTimeImmutable::getLastErrors example
  • Example#2076 - DateTimeImmutable::modify example
  • Example#2077 - Beware when adding or subtracting months
  • Example#2078 - DateTimeImmutable::setDate example
  • Example#2079 - Values exceeding ranges are added to their parent values
  • Example#2080 - DateTimeImmutable::setISODate example
  • Example#2081 - Values exceeding ranges are added to their parent values
  • Example#2082 - Finding the month a week is in
  • Example#2083 - DateTimeImmutable::setTime example
  • Example#2084 - Values exceeding ranges are added to their parent values
  • Example#2085 - DateTimeImmutable::setTimestamp example
  • Example#2086 - DateTimeImmutable::setTimeZone example
  • Example#2087 - DateTimeImmutable::sub example
  • Example#2088 - Further DateTimeImmutable::sub examples
  • Example#2089 - Beware when subtracting months
  • Example#2090 - DateTimeImmutable::diff example
  • Example#2091 - DateTimeInterface::diff during DST changeover
  • Example#2092 - DateTimeInterface::diff range
  • Example#2093 - DateTime object comparison
  • Example#2094 - DateTimeInterface::format example
  • Example#2095 - More examples
  • Example#2096 - Escaping characters while formatting
  • Example#2097 - DateTime::getOffset example
  • Example#2098 - DateTime::getTimestamp example
  • Example#2099 - Retrieving timestamp with milli and microsecond resolution
  • Example#2100 - DateTime::getTimezone example
  • Example#2101 - - DateTimeZone oluşturmak ve DateTimeImmutable nesnesine eklemek
  • Example#2102 - - DateTimeZone örneklenirken hataların yakalanması
  • Example#2103 - - DateTimeZone::getLocation örneği
  • Example#2104 - DateTimeZone::getOffset examples
  • Example#2105 - A timezone_transitions_get example
  • Example#2106 - A timezone_transitions_get example with timestampBegin set
  • Example#2107 - A timezone_abbreviations_list example
  • Example#2108 - A DateTimeZone::listIdentifiers example
  • Example#2109 - Listing identifiers for a specific region
  • Example#2110 - Listing identifiers for multiple regions
  • Example#2111 - Listing identifiers for a single country
  • Example#2112 - - DateInterval nesnelerinin oluşturulması ve kullanılması
  • Example#2113 - - DateInterval örneği
  • Example#2114 - - Geçerli tarih aralıklarının çözümlenmesi
  • Example#2115 - - Birleşik ve negatif tarih aralıklarının çözümlenmesi
  • Example#2116 - - Özel göreli tarih aralıklarının çözümlenmesi
  • Example#2117 - - DateInterval örneği
  • Example#2118 - - DateInterval ve büyük değerler
  • Example#2119 - - DateInterval ve DateTime::diff ile %a ve %d değiştiricileri
  • Example#2120 - - DatePeriod örneği
  • Example#2121 - - DatePeriod::EXCLUDE_START_DATE ile DatePeriod örneği
  • Example#2122 - - Bir yıldaki tüm son Perşembeleri gösteren DatePeriod örneği
  • Example#2123 - DatePeriod::createFromISO8601String example
  • Example#2124 - DatePeriod::getDateInterval example
  • Example#2125 - DatePeriod::getEndDate example
  • Example#2126 - DatePeriod::getEndDate without an end date
  • Example#2127 - Different values for DatePeriod::getRecurrences
  • Example#2128 - DatePeriod::getStartDate example
  • Example#2129 - - checkdate örneği
  • Example#2130 - - date örnekleri
  • Example#2131 - - date işlevinde önceleme karakterleri
  • Example#2132 - - date ve mktime örneği
  • Example#2133 - - date Biçemlemesi
  • Example#2134 - - Öntanımlı zaman diliminin getirilmesi
  • Example#2135 - - Zaman diliminin kısaltmasının getirilmesi
  • Example#2136 - - Öntanımlı zaman dilimini almak
  • Example#2137 - - Kapsamlı bir tarihzaman dizgesi ile date_parse örneği
  • Example#2138 - - Zaman dilimi kısaltması içeren date_parse örneği
  • Example#2139 - - Zaman dilimi belirteci ile date_parse örneği
  • Example#2140 - - Kısa bir dizge ile date_parse örneği
  • Example#2141 - - Göreli biçimlerle date_parse örneği
  • Example#2142 - - Yan etkili date_parse örneği
  • Example#2143 - - date_parse_from_format örneği
  • Example#2144 - - Uyarılı date_parse_from_format örneği
  • Example#2145 - - Hatalı date_parse_from_format örneği
  • Example#2146 - - date_sun_info örneği
  • Example#2147 - - Biraz işlemle Kutup gecesi
  • Example#2148 - - Gece yarısı güneşi (Tromsø, Norveç)
  • Example#2149 - - Gün uzunluğunun hesaplanması (Alanya)
  • Example#2150 - - date_sunrise örneği
  • Example#2151 - - Güneşin doğmaması
  • Example#2152 - - date_sunset örneği
  • Example#2153 - - Güneşin doğmaması
  • Example#2154 - - getdate örneği
  • Example#2155 - - gettimeofday örneği
  • Example#2156 - - gmdate örneği
  • Example#2157 - - gmmktime temel örneği
  • Example#2158 - - gmstrftime örneği
  • Example#2159 - - idate örneği
  • Example#2160 - - localtime örneği
  • Example#2161 - - Zamanlama betiği
  • Example#2162 - microtime and REQUEST_TIME_FLOAT
  • Example#2163 - - Basit bir mktime örneği
  • Example#2164 - - mktime örneği
  • Example#2165 - - Ayın son günü
  • Example#2166 - strftime locale examples
  • Example#2167 - ISO 8601:1988 week number example
  • Example#2168 - Cross platform compatible example using the %e modifier
  • Example#2169 - Display all known and unknown formats
  • Example#2170 - - strptime örneği
  • Example#2171 - A strtotime example
  • Example#2172 - Checking for failure
  • Example#2173 - - time örneği
  • Example#2174 - - timezone_name_from_abbr örneği
  • Example#2175 - - timezonedb sürümünün öğrenilmesi
  • Example#2176 - Measure several code blocks execution and get the total
  • Example#2177 - - Açık bir dosya tanıtıcısının kapatılması
  • Example#2178 - - Bir kilidin atanması ve silinmesi
  • Example#2179 - - Bir dosya tanıtıcısının açılması
  • Example#2180 - - Bir dosyada belli bir konuma gitmek
  • Example#2181 - - Bir seri portun hızının ayarlanması
  • Example#2182 - - chdir örneği
  • Example#2183 - - chroot örneği
  • Example#2184 - - closedir örneği
  • Example#2185 - - dir örneği
  • Example#2186 - - getcwd örneği
  • Example#2187 - - opendir örneği
  • Example#2188 - - Bir dizin içeriğinin listelenmesi
  • Example#2189 - - . ve .. girdileri ayıklanarak dizin içeriğinin listelenmesi
  • Example#2190 - - Basit bir scandir örneği
  • Example#2191 - - finfo_buffer örneği
  • Example#2192 - - finfo_file örneği
  • Example#2193 - - Nesne yönelimli kullanım örneği
  • Example#2194 - - Yordamsal kullanım örneği
  • Example#2195 - - mime_content_type örneği
  • Example#2196 - - basename örneği
  • Example#2197 - - Bir dosyanın grubunun değiştirilmesi
  • Example#2198 - - chown örneği
  • Example#2199 - - clearstatcache örneği
  • Example#2200 - - copy örneği
  • Example#2201 - - dirname örneği
  • Example#2202 - - disk_free_space örneği
  • Example#2203 - - disk_total_space örneği
  • Example#2204 - - Basit bir fclose örneği
  • Example#2205 - fdatasync example
  • Example#2206 - - Geçersiz dosya tanıtıcılı feof örneği
  • Example#2207 - - fflush kullanarak dosyaya yazma örneği
  • Example#2208 - - fgetc örneği
  • Example#2209 - - Bir CSV dosyasının okunup basılması
  • Example#2210 - - Bir dosyanın satır satır okunması
  • Example#2211 - - Bir PHP dosyasının satır satır okunması
  • Example#2212 - - file örneği
  • Example#2213 - - Bir dosyanın varlığının sınanması
  • Example#2214 - - Site başsayfasının kaynak kodunun çıktılanması
  • Example#2215 - - include_path içinde arama
  • Example#2216 - - Bir dosyanın belli bir bölümünün okunması
  • Example#2217 - - Akım bağlamı kullanımı
  • Example#2218 - - Basit kullanım örneği
  • Example#2219 - - Seçenek kullanımı
  • Example#2220 - - fileatime örneği
  • Example#2221 - - filectime örneği
  • Example#2222 - - Bir dosyanın grubunun bulunması
  • Example#2223 - - Bir dosyanın düğüm numarasının geçerli dosya ile karşılaştırılması
  • Example#2224 - - filemtime örneği
  • Example#2225 - - Bir dosyanın sahibinin bulunması
  • Example#2226 - - İzinlerin sekizlik değer olarak gösterilmesi
  • Example#2227 - - Tüm izinlerin gösterilmesi
  • Example#2228 - - filesize örneği
  • Example#2229 - - filetype örneği
  • Example#2230 - - flock örneği
  • Example#2231 - - LOCK_NB kullanarak flock
  • Example#2232 - - Bir renk isminin bir kabuk dosya kalıbıyla eşleştirilmesi
  • Example#2233 - - fopen örnekleri
  • Example#2234 - - İkil dosyalarla fpassthru kullanımı
  • Example#2235 - - fputcsv örneği
  • Example#2236 - - Basit bir fread örneği
  • Example#2237 - -İkil fread örneği
  • Example#2238 - - Uzak fread örnekleri
  • Example#2239 - - fscanf örneği
  • Example#2240 - - kişiler.txt içeriği
  • Example#2241 - - fseek örneği
  • Example#2242 - - fstat örneği
  • Example#2243 - fsync example
  • Example#2244 - - ftell örneği
  • Example#2245 - - Dosya boyutunu sınırlama örneği
  • Example#2246 - - Basit bir fwrite örneği
  • Example#2247 - glob işlevini opendir ve arkadaşları ile değiştirmenin uygun yolu
  • Example#2248 - - is_dir örneği
  • Example#2249 - - is_executable örneği
  • Example#2250 - - is_file örneği
  • Example#2251 - - Sembolik bağ oluşturulup sınamak
  • Example#2252 - - is_readable örneği
  • Example#2253 - - is_uploaded_file örneği
  • Example#2254 - - is_writable örneği
  • Example#2255 - - is_writable örneği
  • Example#2256 - - Bir sembolik bağın grubunun değiştirilmesi
  • Example#2257 - - Bir sembolik bağın sahibinin değiştirilmesi
  • Example#2258 - - Basit bir sabit bağ oluşturma örneği
  • Example#2259 - - linkinfo örneği
  • Example#2260 - - stat ve lstat karşılaştırması
  • Example#2261 - - mkdir örneği
  • Example#2262 - mkdir işlevinin ardışık bağımsız değişkeni ile kullanımı
  • Example#2263 - - Çok sayıda dosyanın karşıya yüklenmesi
  • Example#2264 - - misal.ini içeriği
  • Example#2265 - - parse_ini_file örneği
  • Example#2266 - - Bir php.ini dosyasının parse_ini_file ile çözümlenmesi
  • Example#2267 - Ara Değerler
  • Example#2268 - Öncelleme Karakterleri
  • Example#2269 - - pathinfo örneği
  • Example#2270 - - Uzantısız ve boş uzantılı farkını gösteren pathinfo örneği
  • Example#2271 - - pathinfo ve uzantı-dosya
  • Example#2272 - - pathinfo dizi başvurusunu kaldırma örneği
  • Example#2273 - - pclose örneği
  • Example#2274 - - popen örneği
  • Example#2275 - - Hata döndüren popen örneği
  • Example#2276 - - readfile kullanarak dosya indirmeyi zorlamak
  • Example#2277 - - readlink örneği
  • Example#2278 - - realpath örneği
  • Example#2279 - - Windows'ta realpath
  • Example#2280 - - realpath_cache_get örneği
  • Example#2281 - - realpath_cache_size örneği
  • Example#2282 - - renameörneği
  • Example#2283 - - rewind üste yazma örneği
  • Example#2284 - - rmdir örneği
  • Example#2285 - - stat örneği
  • Example#2286 - - stat bilgisinin touch ile birlikte kullanımı
  • Example#2287 - - Bir sembolik bağ oluşturmak
  • Example#2288 - - tempnam örneği
  • Example#2289 - - tmpfile örneği
  • Example#2290 - - touch örneği
  • Example#2291 - -touch ve zaman kullanımı
  • Example#2292 - - umask örneği
  • Example#2293 - - Basit unlink kullanımı
  • Example#2294 - Example usage of inotify
  • Example#2295 - - Yönetici dosyayı imzalamış mı diye bakmak
  • Example#2296 - - Bir dosyanın tüm özniteliklerini listelemek
  • Example#2297 - - Bir dosyanın ek özniteliklerinin tamamını silmek
  • Example#2298 - - Bir .wav dosyasında ek öznitelik tanımlamak
  • Example#2299 - - xattr_supported örneği
  • Example#2300 - - xdiff_file_bdiff örneği
  • Example#2301 - - xdiff_file_bdiff_size örneği
  • Example#2302 - - xdiff_file_bpatch örneği
  • Example#2303 - - xdiff_file_diff örneği
  • Example#2304 - - xdiff_file_diff_binary örneği
  • Example#2305 - - xdiff_file_merge3 örneği
  • Example#2306 - - xdiff_file_patch örneği
  • Example#2307 - - Yamayı geri alma örneği
  • Example#2308 - - xdiff_file_patch_binary örneği
  • Example#2309 - - xdiff_file_rabdiff örneği
  • Example#2310 - - xdiff_string_bdiff_size örneği
  • Example#2311 - - xdiff_string_diff örneği
  • Example#2312 - - xdiff_string_patch örneği
  • Example#2313 - Enchant Usage Example
  • Example#2314 - List the backends provided by the given broker
  • Example#2315 - A enchant_broker_dict_exists example
  • Example#2316 - List all available dictionaries for one broker
  • Example#2317 - A enchant_broker_request_dict example
  • Example#2318 - Adding a word to a PWL
  • Example#2319 - A enchant_dict_describe example
  • Example#2320 - A enchant_dict_quick_check example
  • Example#2321 - A enchant_dict_suggest example
  • Example#2322 - Usage example.
  • Example#2323 - Using Gender\Gender::country
  • Example#2324 - - bindtextdomain örneği
  • Example#2325 - - gettext örneği
  • Example#2326 - ngettext örneği
  • Example#2327 - - iconv örneği
  • Example#2328 - - iconv_get_encoding örneği
  • Example#2329 - - iconv_mime_decode örneği
  • Example#2330 - - iconv_mime_decode_headers örneği
  • Example#2331 - - iconv_mime_encode örneği
  • Example#2332 - - iconv_set_encoding örneği
  • Example#2333 - - ob_iconv_handler örneği
  • Example#2334 - - Yordamsal API kullanım örneği
  • Example#2335 - - Nesne yönelimli API kullanım örneği
  • Example#2336 - - FRENCH_COLLATION kuralları
  • Example#2337 - - ALTERNATE_HANDLING kuralları
  • Example#2338 - - CASE_FIRST kuralları
  • Example#2339 - - CASE_LEVEL kuralları
  • Example#2340 - - collator_asort örneği
  • Example#2341 - - collator_compare örneği
  • Example#2342 - - Aksansız veya büyük/küçük harfe duyarlı olmayan dizeleri karşılaştırma
  • Example#2343 - - Collator::__construct örneği
  • Example#2344 - - collator_create örneği
  • Example#2345 - - collator_get_attribute örneği
  • Example#2346 - - collator_get_error_code örneği
  • Example#2347 - - collator_get_error_message örneği
  • Example#2348 - - collator_get_locale örneği
  • Example#2349 - collator_get_sort_keyexample
  • Example#2350 - - collator_get_strength örneği
  • Example#2351 - - collator_set_attribute örneği
  • Example#2352 - - collator_set_strength örneği
  • Example#2353 - - collator_sort örneği
  • Example#2354 - - collator_sort_with_sort_keys örneği
  • Example#2355 - - numfmt_create örneği
  • Example#2356 - - Nesne yönelimli kullanım örneği
  • Example#2357 - - numfmt_format örneği
  • Example#2358 - - Nesne yönelimli kullanım örneği
  • Example#2359 - - numfmt_format_currency örneği
  • Example#2360 - - Nesne yönelimli kullanım örneği
  • Example#2361 - - numfmt_get_attribute örneği
  • Example#2362 - - Nesne yönelimli kullanım örneği
  • Example#2363 - - numfmt_get_error_code örneği
  • Example#2364 - - Nesne yönelimli kullanım örneği
  • Example#2365 - - numfmt_get_error_message örneği
  • Example#2366 - - Nesne yönelimli kullanım örneği
  • Example#2367 - - numfmt_get_locale örneği
  • Example#2368 - - numfmt_get_pattern örneği
  • Example#2369 - - Nesne yönelimli kullanım örneği
  • Example#2370 - - numfmt_get_symbol örneği
  • Example#2371 - - Nesne yönelimli kullanım örneği
  • Example#2372 - - numfmt_get_text_attribute örneği
  • Example#2373 - - Nesne yönelimli kullanım örneği
  • Example#2374 - - numfmt_parse örneği
  • Example#2375 - - Nesne yönelimli kullanım örneği
  • Example#2376 - - numfmt_parse_currency örneği
  • Example#2377 - - Nesne yönelimli kullanım örneği
  • Example#2378 - - numfmt_set_attribute örneği
  • Example#2379 - - Nesne yönelimli kullanım örneği
  • Example#2380 - numfmt_set_pattern örneği
  • Example#2381 - - Nesne yönelimli kullanım örneği
  • Example#2382 - - numfmt_set_symbol örneği
  • Example#2383 - - Nesne yönelimli kullanım örneği
  • Example#2384 - - Yordamsal kullanım örneği
  • Example#2385 - - Nesne yönelimli kullanım örneği
  • Example#2386 - - locale_accept_from_http örneği
  • Example#2387 - - Nesne yönelimli kullanım örneği
  • Example#2388 - - locale_compose örneği
  • Example#2389 - - Nesne yönelimli kullanım örneği
  • Example#2390 - - Alt yafta sınırlaması
  • Example#2391 - - locale_filter_matches örneği
  • Example#2392 - - Nesne yönelimli kullanım örneği
  • Example#2393 - - locale_get_all_variants örneği
  • Example#2394 - - Nesne yönelimli kullanım örneği
  • Example#2395 - - locale_get_default örneği
  • Example#2396 - - Nesne yönelimli kullanım örneği
  • Example#2397 - - locale_get_display_language örneği
  • Example#2398 - - Nesne yönelimli kullanım örneği
  • Example#2399 - - locale_get_display_name örneği
  • Example#2400 - - Nesne yönelimli kullanım örneği
  • Example#2401 - - locale_get_display_region örneği
  • Example#2402 - - Nesne yönelimli kullanım örneği
  • Example#2403 - - locale_get_display_script örneği
  • Example#2404 - - Nesne yönelimli kullanım örneği
  • Example#2405 - - locale_get_display_variant örneği
  • Example#2406 - - Nesne yönelimli kullanım örneği
  • Example#2407 - - locale_get_keywords örneği
  • Example#2408 - - Nesne yönelimli kullanım örneği
  • Example#2409 - - locale_get_primary_language örneği
  • Example#2410 - - Nesne yönelimli kullanım örneği
  • Example#2411 - - locale_get_region örneği
  • Example#2412 - - Nesne yönelimli kullanım örneği
  • Example#2413 - locale_get_script örneği
  • Example#2414 - - Nesne yönelimli kullanım örneği
  • Example#2415 - - locale_lookup örneği
  • Example#2416 - - Nesne yönelimli kullanım örneği
  • Example#2417 - - locale_parse örneği
  • Example#2418 - - Nesne yönelimli kullanım örneği
  • Example#2419 - - locale_set_default örneği
  • Example#2420 - - Nesne yönelimli kullanım örneği
  • Example#2421 - Normalizer::getRawDecomposition example
  • Example#2422 - - normalizer_is_normalized örneği
  • Example#2423 - - Nesne yönelimli örnek
  • Example#2424 - - normalizer_normalize örneği
  • Example#2425 - - Nesne yönelimli örnek
  • Example#2426 - - msgfmt_create örneği
  • Example#2427 - - Nesne yönelimli örnek
  • Example#2428 - - msgfmt_format örneği
  • Example#2429 - - Nesne yönelimli örnek
  • Example#2430 - - msgfmt_format_message örneği
  • Example#2431 - - Nesne yönelimli örnek
  • Example#2432 - - ICU'ya para birimini ortak ve dar para birimi simgesiyle biçimlendirme talimatı vermek
  • Example#2433 - - msgfmt_get_error_message örneği
  • Example#2434 - - Nesne yönelimli örnek
  • Example#2435 - - msgfmt_get_locale örneği
  • Example#2436 - - Nesne yönelimli örnek
  • Example#2437 - - msgfmt_get_pattern örneği
  • Example#2438 - - Nesne yönelimli örnek
  • Example#2439 - - msgfmt_parse örneği
  • Example#2440 - - Nesne yönelimli örnek
  • Example#2441 - - msgfmt_parse_message örneği
  • Example#2442 - - Nesne yönelimli örnek
  • Example#2443 - - msgfmt_set_pattern örneği
  • Example#2444 - - Nesne yönelimli örnek
  • Example#2445 - IntlCalendar::add
  • Example#2446 - IntlCalendar::after
  • Example#2447 - IntlCalendar::clear examples
  • Example#2448 - IntlCalendar::createInstance
  • Example#2449 - IntlCalendar::equals
  • Example#2450 - IntlCalendar::fieldDifference
  • Example#2451 - IntlCalendar::fromDateTime
  • Example#2452 - IntlCalendar::get
  • Example#2453 - IntlCalendar::getActualMaximum
  • Example#2454 - IntlCalendar::getAvailableLocales
  • Example#2455 - IntlCalendar::getDayOfWeekType
  • Example#2456 - IntlCalendar::getErrorCode and IntlCalendar::getErrorMessage
  • Example#2457 - IntlCalendar::getErrorMessage
  • Example#2458 - IntlCalendar::getFirstDayOfWeek
  • Example#2459 - IntlCalendar::getKeyworkValuesForLocale
  • Example#2460 - Maxima examples
  • Example#2461 - IntlCalendar::getLocale
  • Example#2462 - IntlCalendar::getMinimalDaysInFirstWeek
  • Example#2463 - IntlCalendar::getNow
  • Example#2464 - IntlCalendar::getRepeatedWallTimeOption
  • Example#2465 - IntlCalendar::getSkippedWallTimeOption
  • Example#2466 - IntlCalendar::getTime
  • Example#2467 - IntlCalendar::getTimeZone
  • Example#2468 - IntlCalendar::getType
  • Example#2469 - IntlCalendar::inDaylightTime
  • Example#2470 - IntlCalendar::isEquivalentTo
  • Example#2471 - IntlCalendar::isLenient
  • Example#2472 - IntlCalendar::isWeekend
  • Example#2473 - IntlCalendar::roll
  • Example#2474 - IntlCalendar::set
  • Example#2475 - IntlCalendar::setDate example
  • Example#2476 - IntlCalendar::setDateTime example
  • Example#2477 - IntlCalendar::setFirstDayOfWeek
  • Example#2478 - IntlCalendar::setTime
  • Example#2479 - IntlCalendar::setTimeZone
  • Example#2480 - IntlCalendar::toDateTime
  • Example#2481 - IntlGregorianCalendar::createFromDate example
  • Example#2482 - IntlGregorianCalendar::createFromDateTime example
  • Example#2483 - - datefmt_create örneği
  • Example#2484 - - Nesne yönelimli kullanım örneği
  • Example#2485 - - datefmt_format örneği
  • Example#2486 - - Nesne yönelimli kullanım örneği
  • Example#2487 - - IntlCalendar nesnesi ile
  • Example#2488 - IntlDateFormatter::formatObject examples
  • Example#2489 - - datefmt_get_calendar örneği
  • Example#2490 - - Nesne yönelimli kullanım örneği
  • Example#2491 - - datefmt_get_datetype örneği
  • Example#2492 - - Nesne yönelimli kullanım örneği
  • Example#2493 - - datefmt_get_error_code örneği
  • Example#2494 - - Nesne yönelimli kullanım örneği
  • Example#2495 - - datefmt_get_error_message örneği
  • Example#2496 - - Nesne yönelimli kullanım örneği
  • Example#2497 - - datefmt_get_locale örneği
  • Example#2498 - - Nesne yönelimli kullanım örneği
  • Example#2499 - - datefmt_get_pattern örneği
  • Example#2500 - - Nesne yönelimli kullanım örneği
  • Example#2501 - - datefmt_get_timetype örneği
  • Example#2502 - - Nesne yönelimli kullanım örneği
  • Example#2503 - - datefmt_get_timezone_id örneği
  • Example#2504 - - Nesne yönelimli kullanım örneği
  • Example#2505 - IntlDateFormatter::getCalendarObject example
  • Example#2506 - IntlDateFormatter::getTimeZone examples
  • Example#2507 - - datefmt_is_lenient örneği
  • Example#2508 - - Nesne yönelimli kullanım örneği
  • Example#2509 - - datefmt_localtime örneği
  • Example#2510 - - Nesne yönelimli kullanım örneği
  • Example#2511 - - Nesne yönelimli kullanım örneği
  • Example#2512 - - datefmt_parse örneği
  • Example#2513 - - datefmt_set_calendar örneği
  • Example#2514 - - Nesne yönelimli kullanım örneği
  • Example#2515 - - IntlCalendar nesneli örnek
  • Example#2516 - - datefmt_set_lenient örneği
  • Example#2517 - - Nesne yönelimli kullanım örneği
  • Example#2518 - - datefmt_set_pattern örneği
  • Example#2519 - - Nesne yönelimli kullanım örneği
  • Example#2520 - IntlDateFormatter::setTimeZone examples
  • Example#2521 - resourcebundle_count example
  • Example#2522 - OO example
  • Example#2523 - resourcebundle_create example
  • Example#2524 - ResourceBundle::create example
  • Example#2525 - resourcebundle_get example
  • Example#2526 - OO example
  • Example#2527 - resourcebundle_get_error_code example
  • Example#2528 - OO example
  • Example#2529 - resourcebundle_get_error_message example
  • Example#2530 - OO example
  • Example#2531 - resourcebundle_locales example
  • Example#2532 - OO example
  • Example#2533 - Spoofchecker::areConfusable example
  • Example#2534 - Spoofchecker::isSuspicious example
  • Example#2535 - Retrieving the registered transliterator IDs
  • Example#2536 - Converting escaped UTF-16 code units
  • Example#2537 - IntlDatePatternGenerator::getBestPattern example
  • Example#2538 - Converting from UTF-8 to UTF-16 and back
  • Example#2539 - Invalid characters in input
  • Example#2540 - Characters which cannot be encoded
  • Example#2541 - - grapheme_extract örneği
  • Example#2542 - - grapheme_stripos örneği
  • Example#2543 - - grapheme_stristr örneği
  • Example#2544 - - grapheme_strlen örneği
  • Example#2545 - - grapheme_strpos örneği
  • Example#2546 - - grapheme_strripos örneği
  • Example#2547 - - grapheme_strrpos örneği
  • Example#2548 - - grapheme_strstr örneği
  • Example#2549 - - grapheme_substr örneği
  • Example#2550 - - idn_to_ascii örneği
  • Example#2551 - - idn_to_utf8 örneği
  • Example#2552 - Farklı karakter kodlarının denenmesi
  • Example#2553 - Farklı karakter kodlarının denenmesi
  • Example#2554 - Farklı karakter kodlarının denenmesi
  • Example#2555 - Farklı karakter kodlarının denenmesi
  • Example#2556 - Farklı karakter kodlarının denenmesi
  • Example#2557 - Farklı karakter kodlarının denenmesi
  • Example#2558 - Farklı karakter kodlarının denenmesi
  • Example#2559 - Farklı karakter kodlarının denenmesi
  • Example#2560 - Farklı karakter kodlarının denenmesi
  • Example#2561 - Enumerating over a sample range of code points
  • Example#2562 - Enumerating over a sample range of code points
  • Example#2563 - Farklı karakter kodlarının denenmesi
  • Example#2564 - Farklı karakter kodlarının denenmesi
  • Example#2565 - Farklı karakter kodlarının denenmesi
  • Example#2566 - Farklı karakter kodlarının denenmesi
  • Example#2567 - Farklı karakter kodlarının denenmesi
  • Example#2568 - Farklı özelliklerin denenmesi
  • Example#2569 - Farklı özelliklerin denenmesi
  • Example#2570 - Farklı özelliklerin denenmesi
  • Example#2571 - Farklı karakter kodlarının denenmesi
  • Example#2572 - Farklı özelliklerin denenmesi
  • Example#2573 - Farklı özelliklerin denenmesi
  • Example#2574 - Farklı özelliklerin denenmesi
  • Example#2575 - Farklı özelliklerin denenmesi
  • Example#2576 - Farklı özelliklerin denenmesi
  • Example#2577 - Farklı özelliklerin denenmesi
  • Example#2578 - Farklı karakter kodlarının denenmesi
  • Example#2579 - Farklı karakter kodlarının denenmesi
  • Example#2580 - Farklı karakter kodlarının denenmesi
  • Example#2581 - Farklı karakter kodlarının denenmesi
  • Example#2582 - Farklı karakter kodlarının denenmesi
  • Example#2583 - Farklı karakter kodlarının denenmesi
  • Example#2584 - Farklı karakter kodlarının denenmesi
  • Example#2585 - Farklı karakter kodlarının denenmesi
  • Example#2586 - Farklı karakter kodlarının denenmesi
  • Example#2587 - Farklı karakter kodlarının denenmesi
  • Example#2588 - Farklı karakter kodlarının denenmesi
  • Example#2589 - Farklı karakter kodlarının denenmesi
  • Example#2590 - Farklı karakter kodlarının denenmesi
  • Example#2591 - Farklı karakter kodlarının denenmesi
  • Example#2592 - Farklı karakter kodlarının denenmesi
  • Example#2593 - Farklı karakter kodlarının denenmesi
  • Example#2594 - Farklı karakter kodlarının denenmesi
  • Example#2595 - Farklı karakter kodlarının denenmesi
  • Example#2596 - Farklı karakter kodlarının denenmesi
  • Example#2597 - Farklı karakter kodlarının denenmesi
  • Example#2598 - Farklı karakter kodlarının denenmesi
  • Example#2599 - Farklı karakter kodlarının denenmesi
  • Example#2600 - Farklı karakter kodlarının denenmesi
  • Example#2601 - Farklı karakter kodlarının denenmesi
  • Example#2602 - Farklı karakter kodlarının denenmesi
  • Example#2603 - Farklı karakter kodlarının denenmesi
  • Example#2604 - Farklı karakter kodlarının denenmesi
  • Example#2605 - Farklı karakter kodlarının denenmesi
  • Example#2606 - Farklı karakter kodlarının denenmesi
  • Example#2607 - Farklı karakter kodlarının denenmesi
  • Example#2608 - Farklı karakter kodlarının denenmesi
  • Example#2609 - Farklı karakter kodlarının denenmesi
  • Example#2610 - - intl_error_name örneği
  • Example#2611 - - intl_get_error_code örneği
  • Example#2612 - - intl_get_error_message örneği
  • Example#2613 - - intl_is_failure örneği
  • Example#2614 - - php.ini ayar örnekleri
  • Example#2615 - - EUC-JP kullanıcıları için php.ini ayarları
  • Example#2616 - - SJIS kullanıcıları için php.ini ayarları
  • Example#2617 - - HTTP girdi dönüşümünün php.ini'de kapatılması
  • Example#2618 - - php.ini ayarları örneği
  • Example#2619 - - Betik örneği
  • Example#2620 - - Farklı karakter kodlarının denenmesi
  • Example#2621 - - mb_convert_case yerel ayarlara bakmaz
  • Example#2622 - - Latin harfleri kullanılmayan mb_convert_case örneği
  • Example#2623 - - mb_convert_encoding örneği
  • Example#2624 - - mb_convert_kana örneği
  • Example#2625 - - mb_convert_variables örneği
  • Example#2626 - - bölge örneği
  • Example#2627 - - JavaScript dizgeyi önceleyen map örneği
  • Example#2628 - - mb_detect_encoding örneği
  • Example#2629 - - katı bağımsız değişkeninin etkisi
  • Example#2630 - - Çok sayıda kodlama eşleştiğinde sıralamanın etkisi
  • Example#2631 - - mb_detect_order örnekleri
  • Example#2632 - - Yararsız algılama sırası
  • Example#2633 - - mb_encode_mimeheader örneği
  • Example#2634 - - bölge örneği
  • Example#2635 - - mb_encode_numericentity örneği
  • Example#2636 - - mb_encoding_aliases örneği
  • Example#2637 - - mb_ereg_replace_callback örneği
  • Example#2638 - - Anonim işlev kullanan mb_ereg_replace_callback örneği
  • Example#2639 - - mb_internal_encoding örneği
  • Example#2640 - - mb_list_encodings örneği
  • Example#2641 - Temel bir mb_ord örneği
  • Example#2642 - - mb_output_handler örneği
  • Example#2643 - - mb_preferred_mime_name örneği
  • Example#2644 - mb_str_pad example
  • Example#2645 - - mb_strimwidth örneği
  • Example#2646 - - mb_strtolower yerele duyarsızlık örneği
  • Example#2647 - - Latin olmayan karakterlerle mb_strtolower örneği
  • Example#2648 - - mb_strtoupper yerele duyarsızlık örneği
  • Example#2649 - - Latin olmayan karakterlerle mb_strtoupper örneği
  • Example#2650 - - mb_strwidth örneği
  • Example#2651 - - mb_substitute_character örneği
  • Example#2652 - - mb_substr_count örneği
  • Example#2653 - pspell_add_to_personal
  • Example#2654 - pspell_check Example
  • Example#2655 - pspell_add_to_personal Example
  • Example#2656 - pspell_config_create
  • Example#2657 - pspell_config_ignore
  • Example#2658 - pspell_config_mode Example
  • Example#2659 - pspell_config_personal
  • Example#2660 - pspell_config_repl
  • Example#2661 - pspell_config_runtogether
  • Example#2662 - pspell_new
  • Example#2663 - pspell_new_config
  • Example#2664 - pspell_new_personal
  • Example#2665 - pspell_add_to_personal
  • Example#2666 - pspell_store_replacement
  • Example#2667 - pspell_suggest example
  • Example#2668 - - Basit bir recode_file örneği
  • Example#2669 - - Basit bir recode_string örneği
  • Example#2670 - - exif_imagetype örneği
  • Example#2671 - - exif_read_data örneği
  • Example#2672 - - PHP 7.2.0 itibariyle exif_read_data akımları destekliyor
  • Example#2673 - - exif_tagname örneği
  • Example#2674 - - exif_thumbnail örneği
  • Example#2675 - - PHP ile PNG oluşturma örneği
  • Example#2676 - - Alfa kanallarını kullanarak resme damga basma örneği
  • Example#2677 - imagecopymerge kullanarak yarı geçirgen filigran oluşturma örneği
  • Example#2678 - gd_info kullanımı
  • Example#2679 - - getimagesize ve MIME türleri
  • Example#2680 - - getimagesize dosya örneği
  • Example#2681 - - getimagesize (URL)
  • Example#2682 - - IPTC döndüren getimagesize() örneği
  • Example#2683 - - getimagesizefromstring örneği
  • Example#2684 - - image_type_to_extension örneği
  • Example#2685 - - image_type_to_mime_type örneği
  • Example#2686 - - image2wbmp örneği
  • Example#2687 - - imageaffinematrixconcat örneği
  • Example#2688 - - imageaffinematrixget örneği
  • Example#2689 - - imagealphablending örneği
  • Example#2690 - - Kenar yumuşatmalı çizginin normal çizgiyle karşılaştırılması
  • Example#2691 - - imagearc ile çember çizmek
  • Example#2692 - - BMP dosyası kaydı
  • Example#2693 - - imagechar örneği
  • Example#2694 - - imagecharup örneği
  • Example#2695 - - imagecolorallocate örneği
  • Example#2696 - - imagecolorallocatealpha örneği
  • Example#2697 - - imagecolorallocatealpha ile kullanmak için alfa değerlerini dönüştürmek
  • Example#2698 - - Hesapla RGB değeri bileşenlerine ayırmak
  • Example#2699 - - imagecolorsforindex ile RGB değeri bileşenlerine ayırmak
  • Example#2700 - - Bir görüntüde renk aramak
  • Example#2701 - - Bir görüntüde renk aramak
  • Example#2702 - - imagecolorclosesthwb örneği
  • Example#2703 - - imagecolordeallocate örneği
  • Example#2704 - - GD logosunun renklerini öğrenelim
  • Example#2705 - - GD logosunun renklerini öğrenelim
  • Example#2706 - - imagecolormatch örneği
  • Example#2707 - - Bir görüntüdeki renkleri öğrenmek için imagecoloresolve kullanımı
  • Example#2708 - - Bir görüntüdeki renkleri öğrenmek için imagecolorresolvealpha kullanımı
  • Example#2709 - - imagecolorset örneği
  • Example#2710 - - imagecolorsforindex örneği
  • Example#2711 - - imagecolorstotal örneği
  • Example#2712 - - imagecolortransparent örneği
  • Example#2713 - - PHP.net logosuna kabartma etkisi vermek
  • Example#2714 - - Gauss bulanıklığı
  • Example#2715 - - PHP.net logosunun kırpılması
  • Example#2716 - - PHP.net logo'sunun iki kopyasının %75 şeffaflıkla karıştırılması
  • Example#2717 - - imagecopymergegray örneği
  • Example#2718 - - Basit örnek
  • Example#2719 - - Bir görüntünün orantılı olarak örneklenmesi
  • Example#2720 - - Bir görüntünün boyutlandırılması
  • Example#2721 - - Yeni bir GD görüntü akımı oluşturup bir görüntü çıktılamak
  • Example#2722 - - imagecreatefrombmp ile BMP -> PNG dönüşümü
  • Example#2723 - - imagecreatefromgd örneği
  • Example#2724 - - imagecreatefromgd2 örneği
  • Example#2725 - - imagecreatefromgd2part örneği
  • Example#2726 - - Bir GIF yüklerken oluşan bir hatanın ele alınması
  • Example#2727 - - Bir JPEG yüklerken oluşan bir hatanın ele alınması
  • Example#2728 - - Bir PNG yüklerken oluşan bir hatanın ele alınması
  • Example#2729 - - imagecreatefromstring örneği
  • Example#2730 - - Bir WBMP yüklerken oluşan bir hatanın ele alınması
  • Example#2731 - - imagecreatefromwebp ile WebP -> JPEG dönüşümü
  • Example#2732 - - imagecreatefromxbm örneği
  • Example#2733 - - imagecreatefromxpm örneği
  • Example#2734 - Yeni bir GD2 görüntü akımı oluşturup bir görüntü çıktılamak
  • Example#2735 - - imagecrop örneği
  • Example#2736 - - Otomatik kırpmanın doğru kullanımı
  • Example#2737 - - imagedashedline örneği
  • Example#2738 - - Başka bir imagedashedline örneği
  • Example#2739 - - PHP 8.0.0 öncesinde imagedestroy örneği
  • Example#2740 - - imageellipse örneği
  • Example#2741 - - imagefill örneği
  • Example#2742 - - 3 boyutlu bir pasta oluşturmak
  • Example#2743 - - imagefilledellipse örneği
  • Example#2744 - - imagefilledpolygon örneği
  • Example#2745 - - imagefilledrectangle örneği
  • Example#2746 - - Bir elipsi belli bir renge boyamak
  • Example#2747 - - imagefilter gri tonlama örneği
  • Example#2748 - - imagefilter parlaklık örneği
  • Example#2749 - - imagefilter renklendirme örneği
  • Example#2750 - imagefilter negatiflik örneği
  • Example#2751 - imagefilter mozaikleştirme örneği
  • Example#2752 - - imagefilter saçılma örneği
  • Example#2753 - - Görüntüyü dikey olarak ters çevirmek
  • Example#2754 - - Görüntüyü yatay olarak ters çevirmek
  • Example#2755 - - Yerleşik yazı tipleri üzerinde imagefontheight
  • Example#2756 - - imagefontheight ile imageloadfont işlevinin birlikte kullanımı
  • Example#2757 - - Yerleşik yazı tipleri üzerinde imagefontwidth
  • Example#2758 - - imagefontwidth ile imageloadfont işlevinin birlikte kullanımı
  • Example#2759 - - imageftbbox örneği
  • Example#2760 - - imagefttext örneği
  • Example#2761 - - imagegammacorrect örneği
  • Example#2762 - - Bir GD görüntünün çıktılanması
  • Example#2763 - - Bir GD görüntünün kaydedilmesi
  • Example#2764 - - Bir GD2 görüntünün çıktılanması
  • Example#2765 - - Bir GD2 görüntünün kaydedilmesi
  • Example#2766 - - imagegetclip örneği
  • Example#2767 - - imagegif ile bir görüntüyü çıktılamak
  • Example#2768 - - Bir PNG görüntüyü imagegif ile bir GIF görüntüye dönüştürmek
  • Example#2769 - - imagegrabscreen örneği
  • Example#2770 - - imagegrabwindow örneği
  • Example#2771 - - imageinterlace ile geçişimi etkin kılmak
  • Example#2772 - - imageistruecolor ile görüntünün gerçek renkli olup olmadığının saptanması
  • Example#2773 - - Bir JPEG görüntüyü tarayıcıya çıktılamak
  • Example#2774 - - Bir JPEG görüntüyü bir dosyaya kaydetmek
  • Example#2775 - - Görüntüyü %75 kaliteyle tarayıcıya çıktılamak
  • Example#2776 - - imagelayereffect örneği
  • Example#2777 - - Kalın bir çizgi çizelim
  • Example#2778 - - imageloadfont örneği
  • Example#2779 - - imageopenpolygon örneği
  • Example#2780 - - imagepalettecopy örneği
  • Example#2781 - Görüntü nesnesini gerçek renkliye dönüştürmek
  • Example#2782 - - imagepolygon örneği
  • Example#2783 - - imagerectangle örneği
  • Example#2784 - - Bir görüntünün çözünürlüğünü tanımlamak ve döndürmek
  • Example#2785 - - Bir remin 180° döndürülmesi
  • Example#2786 - - Temel imagesavealpha kullanımı
  • Example#2787 - - imagesetbrush örneği
  • Example#2788 - - imagesetinterpolation örneği
  • Example#2789 - - imagesetpixel örneği
  • Example#2790 - - imagesetstyle örneği
  • Example#2791 - - imagesetthickness örneği
  • Example#2792 - - imagesettile örneği
  • Example#2793 - - imagestring örneği
  • Example#2794 - - imagestringup örneği
  • Example#2795 - - imagesx örneği
  • Example#2796 - - imagesy örneği
  • Example#2797 - - Gerçek renkli görüntüyü paletli görüntüye dönüştürmek
  • Example#2798 - - imagettfbbox örneği
  • Example#2799 - - imagettftext örneği
  • Example#2800 - - PNG desteğinin sınanması
  • Example#2801 - - Bir WBMP görüntüyü çıktılamak
  • Example#2802 - - Bir WBMP görüntünün kaydedilmesi
  • Example#2803 - - Görüntüyü farklı bir artalan rengi ile çıktılamak
  • Example#2804 - - WebP görüntünün dosyaya kaydedilmesi
  • Example#2805 - - Bir XBM dosyasının kaydedilmesi
  • Example#2806 - - XBM dosyasını farklı bir artalan rengi ile çıktılamak
  • Example#2807 - - IPTC verisinin bir JPEG içine gömülmesi
  • Example#2808 - - getimagesize ile iptcparse kullanımı
  • Example#2809 - - jpeg2wbmp örneği
  • Example#2810 - - png2wbmp örneği
  • Example#2811 - Gmagick Example
  • Example#2812 - Gmagick::despeckleimage example
  • Example#2813 - Gmagick::setCompressionQuality
  • Example#2814 - - Imagick ile görüntü örneği (thumbnail) oluşturmak
  • Example#2815 - - Bir dizindeki tüm JPG dosyalarının küçük örneklerinin elde edilmesi
  • Example#2816 - - Bir görüntünün yansımasının oluşturulması
  • Example#2817 - - Metni bir örüntü ile kaplamak
  • Example#2818 - - GIF görüntüyü okumak ve tüm kareleri boyutlandırmak
  • Example#2819 - - PHP logosu yapımı
  • Example#2820 - - Imagick::adaptiveBlurImage örneği
  • Example#2821 - - Imagick::adaptiveResizeImageörneği
  • Example#2822 - - Imagick::adaptiveSharpenImage örneği
  • Example#2823 - - Imagick::adaptiveThresholdImage
  • Example#2824 - - Imagick::addNoiseImage
  • Example#2825 - - Imagick::affineTransformImage
  • Example#2826 - - Imagick::annotateImage örneği
  • Example#2827 - - Imagick::appendImages örneği
  • Example#2828 - Imagick::autoLevelImage
  • Example#2829 - - Imagick::blackThresholdImage
  • Example#2830 - Imagick::blueShiftImage
  • Example#2831 - - Imagick::blurImage örneği
  • Example#2832 - - Imagick::borderImage
  • Example#2833 - Imagick::brightnessContrastImage
  • Example#2834 - - Imagick::charcoalImage
  • Example#2835 - - Imagick::chopImage örneği
  • Example#2836 - - Farklı imagick sürümlerinde Imagick nesnesinin kopyalanması
  • Example#2837 - - Imagick::clutImage örneği
  • Example#2838 - - Imagick::colorizeImage
  • Example#2839 - Imagick::colorMatrixImage
  • Example#2840 - - Imagick::commentImage kullanımı
  • Example#2841 - - Imagick::compareImageLayers örneği
  • Example#2842 - - Imagick::compareImages örneği
  • Example#2843 - - Imagick::compositeImage kullanımı:
  • Example#2844 - - Imagick::contrastImage örneği
  • Example#2845 - - Imagick::convolveImage örneği
  • Example#2846 - Imagick::deskewImage
  • Example#2847 - - Imagick::despeckleImage örneği
  • Example#2848 - - Imagick::distortImage örneği
  • Example#2849 - - Imagick::edgeImage kullanımı
  • Example#2850 - - Imagick::embossImage kullanımı
  • Example#2851 - - Imagick::enhanceImage kullanımı
  • Example#2852 - - Imagick::equalizeImage
  • Example#2853 - - Imagick::evaluateImage kullanımı
  • Example#2854 - Using Imagick::exportImagePixels
  • Example#2855 - Imagick::filter
  • Example#2856 - - Imagick::flipImage kullanımı
  • Example#2857 - - Imagick::floodfillPaintImage örneği
  • Example#2858 - - Imagick::flopImage
  • Example#2859 - Imagick::forwardFourierTransformImage
  • Example#2860 - - Imagick::frameImage kullanımı
  • Example#2861 - Create a sinusoidal gradient
  • Example#2862 - Create a gradient from the polynomial (4x^2 - 4x + 1)
  • Example#2863 - Create a complex gradient from the polynomial (4x^2 - 4x^2 + 1) modulated by a sinusoidal gradient
  • Example#2864 - - Imagick::fxImage kullanımı
  • Example#2865 - - Imagick::gammaImage kullanımı
  • Example#2866 - - Imagick::gaussianBlurImage kullanımı
  • Example#2867 - - Imagick::getImageGeometry kullanımı
  • Example#2868 - - Imagick::getImageHistogram kullanımı
  • Example#2869 - - Imagick::getImageLength örneği
  • Example#2870 - - Imagick::getImageProperties örneği
  • Example#2871 - - Imagick::getImageProperty örneği
  • Example#2872 - - Imagick::getIteratorIndex örneği
  • Example#2873 - - Imagick::getPixelIterator kullanımı
  • Example#2874 - - Imagick::getPixelRegionIterator kullanımı
  • Example#2875 - - 200x400 boyutlarındaki ham RGB görüntüyü 400x800 boyutlarına büyüttükten sonra boyutlarını döndürmek
  • Example#2876 - Imagick::haldClutImage
  • Example#2877 - Imagick::identifyFormat
  • Example#2878 - - Dönen değer örneği
  • Example#2879 - - Imagick::implodeImage örneği
  • Example#2880 - Imagick::importImagePixels example
  • Example#2881 - - Imagick::levelImage örneği
  • Example#2882 - - Imagick::linearStretchImage örneği
  • Example#2883 - - Imagick::magnifyImage örneği
  • Example#2884 - - Imagick::medianFilterImage örneği
  • Example#2885 - - Imagick::mergeImageLayers örneği
  • Example#2886 - - Imagick::modulateImage
  • Example#2887 - Convolve Imagick::morphology
  • Example#2888 - Correlate Imagick::morphology
  • Example#2889 - Erode Imagick::morphology
  • Example#2890 - Erode Intensity Imagick::morphology
  • Example#2891 - Dilate Imagick::morphology
  • Example#2892 - Dilate intensity Imagick::morphology
  • Example#2893 - Distance with Chebyshev kernel Imagick::morphology
  • Example#2894 - Distance with Manhattan kernel Imagick::morphology
  • Example#2895 - Distance with ocatagonal kernel Imagick::morphology
  • Example#2896 - Distance with Euclidean kernel Imagick::morphology
  • Example#2897 - Edge Imagick::morphology
  • Example#2898 - Open Imagick::morphology
  • Example#2899 - Open intensity Imagick::morphology
  • Example#2900 - Close Imagick::morphology
  • Example#2901 - Close Intensity Imagick::morphology
  • Example#2902 - Smooth Imagick::morphology
  • Example#2903 - Edge in Imagick::morphology
  • Example#2904 - Edge out Imagick::morphology
  • Example#2905 - The 'TopHat' method, or more specifically 'White Top Hat', returns the pixels that were removed by a Opening of the shape, that is the pixels that were removed to round off the points, and the connecting bridged between shapes. Imagick::morphology
  • Example#2906 - The 'BottomHat' method, also known as 'Black TopHat' is the pixels that a Closing of the shape adds to the image. That is the pixels that were used to fill in the 'holes', 'gaps', and 'bridges'. Imagick::morphology
  • Example#2907 - Hit and Miss Imagick::morphology
  • Example#2908 - Thinning Imagick::morphology
  • Example#2909 - Thicken Imagick::morphology
  • Example#2910 - Thick to generate a convex hull Imagick::morphology
  • Example#2911 - Iterative morphology Imagick::morphology
  • Example#2912 - Helper function to get an image silhouette Imagick::morphology
  • Example#2913 - - Imagick::motionBlurImage örneği
  • Example#2914 - Imagick::negateImage
  • Example#2915 - - Imagick::newImage örneği
  • Example#2916 - - Imagick::newPseudoImage örneği
  • Example#2917 - - Imagick::normalizeImage örneği
  • Example#2918 - - Imagick::oilPaintImage örneği
  • Example#2919 - - Imagick::optimizeImageLayers örneği
  • Example#2920 - - Imagick::orderedPosterizeImage örneği
  • Example#2921 - - Imagick::pingImageBlob örneği
  • Example#2922 - - Imagick::pingImageFile örneği
  • Example#2923 - - Imagick::polaroidImage örneği
  • Example#2924 - - Imagick::posterizeImage
  • Example#2925 - - Imagick::quantizeImage
  • Example#2926 - - Imagick::queryFontMetrics örneği
  • Example#2927 - - Imagick::queryFonts örneği
  • Example#2928 - - Imagick::queryFormats örneği
  • Example#2929 - - Imagick::radialBlurImage
  • Example#2930 - - Imagick::raiseImage örneği
  • Example#2931 - - Imagick::randomThresholdImage örneği
  • Example#2932 - - Imagick::readImageBlob örneği
  • Example#2933 - - Imagick::recolorImage örneği
  • Example#2934 - - Imagick::reduceNoiseImage örneği
  • Example#2935 - - Imagick::resampleImage örneği
  • Example#2936 - - Imagick::rollImage örneği
  • Example#2937 - - Imagick::rotateImage örneği
  • Example#2938 - Imagick::rotationalBlurImage
  • Example#2939 - - Imagick::roundCorners örneği
  • Example#2940 - - Imagick::scaleImage örneği
  • Example#2941 - Imagick::segmentImage
  • Example#2942 - Imagick::selectiveBlurImage
  • Example#2943 - - Imagick::separateImageChannel örneği
  • Example#2944 - - Imagick::sepiaToneImage örneği
  • Example#2945 - - Imagick::setCompressionQuality örneği
  • Example#2946 - - Imagick::setFont örneği
  • Example#2947 - - Imagick::setImage örneği
  • Example#2948 - Imagick::setImageArtifact
  • Example#2949 - - Imagick::setImageBias örneği
  • Example#2950 - - Imagick::setImageClipMask örneği
  • Example#2951 - - Imagick::setImageCompressionQuality örneği
  • Example#2952 - - Imagick::setImageDelay ile canlandırmalı GIF'te değişiklik yapmak
  • Example#2953 - - Imagick::setImageIterations örneği
  • Example#2954 - - Imagick::setImageOpacity örneği
  • Example#2955 - Imagick::setImageOrientation
  • Example#2956 - - Imagick::setImageProperty örneği
  • Example#2957 - - Imagick::setImageResolution örneği
  • Example#2958 - - Canlandırmalı GIF'in oynatma hızını Imagick::setImageTicksPerSecond ile ayarlamak
  • Example#2959 - - Imagick::setIteratorIndex örneği
  • Example#2960 - - Imagick::setOption ile '$extent' boyuta ulaşmak
  • Example#2961 - - Imagick::setOption genel kullanımı
  • Example#2962 - - Imagick::setOption örneği
  • Example#2963 - - Imagick::setPointSize örneği
  • Example#2964 - Imagick::setProgressMonitor
  • Example#2965 - - Imagick::setSamplingFactors örneği
  • Example#2966 - - Imagick::shadeImage örneği
  • Example#2967 - - Imagick::shadowImage örneği
  • Example#2968 - - Imagick::sharpenImage örneği
  • Example#2969 - - Imagick::shaveImage örneği
  • Example#2970 - - Imagick::shearImage örneği
  • Example#2971 - Imagick::sigmoidalContrastImage kullanarak, $contrast ve $midpoint değişkenleriyle tanımlanan karıştırma ile iki görüntüyü sorunsuz bir şekilde karıştırmak için geçişimli görüntü oluşturmak
  • Example#2972 - - Imagick::sketchImage örneği
  • Example#2973 - Imagick::smushImages
  • Example#2974 - - Imagick::solarizeImage
  • Example#2975 - SPARSECOLORMETHOD_BARYCENTRIC Imagick::sparseColorImage
  • Example#2976 - SPARSECOLORMETHOD_BILINEAR Imagick::sparseColorImage
  • Example#2977 - SPARSECOLORMETHOD_SPEPARDS Imagick::sparseColorImage
  • Example#2978 - SPARSECOLORMETHOD_VORONOI Imagick::sparseColorImage
  • Example#2979 - SPARSECOLORMETHOD_BARYCENTRIC Imagick::sparseColorImage
  • Example#2980 - createGradientImage is used by other examples. Imagick::sparseColorImage
  • Example#2981 - - Imagick::spliceImage örneği
  • Example#2982 - - Imagick::spreadImage örneği
  • Example#2983 - Imagick::statisticImage
  • Example#2984 - Imagick::subImageMatch
  • Example#2985 - - Imagick::swirlImage örneği
  • Example#2986 - - Imagick::textureImage örneği
  • Example#2987 - - Imagick::thresholdImage örneği
  • Example#2988 - - Imagick::thumbnailImage örneği
  • Example#2989 - - Imagick::tintImage örneği
  • Example#2990 - Imagick::transformImage örneği
  • Example#2991 - Imagick::transformImageColorspace example
  • Example#2992 - - Imagick::transparentPaintImage örneği
  • Example#2993 - - Imagick::transposeImage örneği
  • Example#2994 - - Imagick::transverseImage örneği
  • Example#2995 - - Imagick::trimImage örneği
  • Example#2996 - - Imagick::uniqueImageColors örneği
  • Example#2997 - - Imagick::unsharpMaskImage örneği
  • Example#2998 - - Imagick::vignetteImage örneği
  • Example#2999 - - Imagick::waveImage biraz yavaş olabilir
  • Example#3000 - * Imagick::whiteThresholdImage örneği
  • Example#3001 - - ImagickDraw::affine örneği
  • Example#3002 - - ImagickDraw::arc örneği
  • Example#3003 - - ImagickDraw::bezier örneği
  • Example#3004 - - ImagickDraw::circle örneği
  • Example#3005 - ImagickDraw::composite örneği
  • Example#3006 - - ImagickDraw::ellipse örneği
  • Example#3007 - - ImagickDraw::line örneği
  • Example#3008 - - ImagickDraw::matte örneği
  • Example#3009 - - ImagickDraw::pathCurveToQuadraticBezierAbsolute örneği
  • Example#3010 - - ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute örneği
  • Example#3011 - - ImagickDraw::pathCurveToQuadraticBezierSmoothRelative örneği
  • Example#3012 - - ImagickDraw::pathStart örneği
  • Example#3013 - - ImagickDraw::point örneği
  • Example#3014 - - ImagickDraw::polygon örneği
  • Example#3015 - - ImagickDraw::polyline örneği
  • Example#3016 - - ImagickDraw::popDefs örneği
  • Example#3017 - - ImagickDraw::push örneği
  • Example#3018 - - ImagickDraw::popDefs örneği
  • Example#3019 - - ImagickDraw::pushPattern örneği
  • Example#3020 - - ImagickDraw::rectangle örneği
  • Example#3021 - - ImagickDraw::rotate örneği
  • Example#3022 - - ImagickDraw::roundRectangle örneği
  • Example#3023 - - ImagickDraw::scale örneği
  • Example#3024 - - ImagickDraw::setClipPath örneği
  • Example#3025 - - ImagickDraw::setClipRule örneği
  • Example#3026 - - ImagickDraw::setClipUnits örneği
  • Example#3027 - - ImagickDraw::setFillAlpha örneği
  • Example#3028 - - ImagickDraw::setFillColor örneği
  • Example#3029 - - ImagickDraw::setFillOpacity örneği
  • Example#3030 - - ImagickDraw::setFillRule örneği
  • Example#3031 - - ImagickDraw::setFont örneği
  • Example#3032 - - ImagickDraw::setFontFamily örneği
  • Example#3033 - - ImagickDraw::setFontSize örneği
  • Example#3034 - - ImagickDraw::setFontStretch örneği
  • Example#3035 - - ImagickDraw::setFontStyle örneği
  • Example#3036 - - ImagickDraw::setFontWeight örneği
  • Example#3037 - - ImagickDraw::setGravity örneği
  • Example#3038 - - ImagickDraw::setStrokeAlpha örneği
  • Example#3039 - - ImagickDraw::setStrokeAntialias örneği
  • Example#3040 - - ImagickDraw::setStrokeColor örneği
  • Example#3041 - - ImagickDraw::setStrokeDashArray örneği
  • Example#3042 - - ImagickDraw::setStrokeDashOffset örneği
  • Example#3043 - - ImagickDraw::setStrokeLineCap örneği
  • Example#3044 - - ImagickDraw::setStrokeLineJoin örneği
  • Example#3045 - - ImagickDraw::setStrokeMiterLimit örneği
  • Example#3046 - - ImagickDraw::setStrokeOpacity örneği
  • Example#3047 - - ImagickDraw::setStrokeWidth örneği
  • Example#3048 - - ImagickDraw::setTextAlignment örneği
  • Example#3049 - - ImagickDraw::setTextAntialias örneği
  • Example#3050 - - ImagickDraw::setTextDecoration örneği
  • Example#3051 - - ImagickDraw::setTextUnderColor örneği
  • Example#3052 - - ImagickDraw::setVectorGraphics örneği
  • Example#3053 - - ImagickDraw::setViewBox örneği
  • Example#3054 - - ImagickDraw::skewX örneği
  • Example#3055 - - ImagickDraw::skewY örneği
  • Example#3056 - - ImagickDraw::translate örneği
  • Example#3057 - - ImagickPixel::construct örneği
  • Example#3058 - - Imagick::getColor temel kullanım örneği
  • Example#3059 - -Imagick::getColorAsString temel kullanım örneği
  • Example#3060 - - ImagickPixel::getColorCount örneği
  • Example#3061 - - Imagick::getColorValue temel kullanım örneği
  • Example#3062 - ImagickPixel::getColorValueQuantum
  • Example#3063 - - Imagick::getHSL örneği
  • Example#3064 - - ImagickPixel::isSimilar örneği
  • Example#3065 - - ImagickPixel::setColor örneği
  • Example#3066 - - Imagick::setColorValue örneği
  • Example#3067 - ImagickPixel::setColorValueQuantum
  • Example#3068 - - Bir rengi değiştirmek için ImagickPixel::setHSL kullanımı
  • Example#3069 - - ImagickPixelIterator::clear örneği
  • Example#3070 - - ImagickPixelIterator::construct örneği
  • Example#3071 - - ImagickPixelIterator::getNextIteratorRow örneği
  • Example#3072 - - ImagickPixelIterator::resetIterator örneği
  • Example#3073 - - ImagickPixelIterator::setIteratorRow örneği
  • Example#3074 - ImagickKernel::addKernel
  • Example#3075 - ImagickKernel::addUnityKernel
  • Example#3076 - ImagickKernel::addUnityKernel
  • Example#3077 - ImagickKernel::fromBuiltin
  • Example#3078 - ImagickKernel::fromMatrix
  • Example#3079 - ImagickKernel::getMatrix
  • Example#3080 - ImagickKernel::scale
  • Example#3081 - ImagickKernel::separate
  • Example#3082 - - imap_append örneği
  • Example#3083 - - imap_check örneği
  • Example#3084 - - imap_createmailbox örneği
  • Example#3085 - - imap_delete örneği
  • Example#3086 - - imap_fetch_overview örneği
  • Example#3087 - - imap_gc örneği
  • Example#3088 - - imap_get_quota örneği
  • Example#3089 - - imap_get_quota 4.3 ve üstü örneği
  • Example#3090 - - imap_get_quotaroot örneği
  • Example#3091 - - imap_getacl örneği
  • Example#3092 - - imap_getmailboxes örneği
  • Example#3093 - imap_is_open example
  • Example#3094 - - imap_list örneği
  • Example#3095 - - imap_mail_compose örneği
  • Example#3096 - - imap_mailboxmsginfo örneği
  • Example#3097 - - imap_mime_header_decode örneği
  • Example#3098 - - imap_open işlevinin farklı kullanımları
  • Example#3099 - - imap_open örneği
  • Example#3100 - - imap_ping örneği
  • Example#3101 - - imap_reopen örneği
  • Example#3102 - - imap_rfc822_parse_adrlist örneği
  • Example#3103 - - imap_rfc822_write_address örneği
  • Example#3104 - - imap_search örneği
  • Example#3105 - - imap_set_quota örneği
  • Example#3106 - - imap_setflag_full örneği
  • Example#3107 - - imap_status örneği
  • Example#3108 - - imap_thread örneği
  • Example#3109 - - imap_timeout örneği
  • Example#3110 - - imap_utf8 örneği
  • Example#3111 - - Adres özetinin hesaplanıp bir kullanıcının üye yapılması
  • Example#3112 - - Eposta gönderimi
  • Example#3113 - - Ek başlıklarla eposta gönderimi
  • Example#3114 - - array türünde ek başlıklarla eposta gönderimi
  • Example#3115 - - Ek komut satırı seçenekleriyle eposta gönderimi
  • Example#3116 - - HTML eposta gönderimi
  • Example#3117 - mailparse_determine_best_xfer_encoding example
  • Example#3118 - mailparse_rfc822_parse_addresses example
  • Example#3119 - mailparse_stream_encode example
  • Example#3120 - mailparse_uudecode_all example
  • Example#3121 - - bcadd örneği
  • Example#3122 - bccomp örneği
  • Example#3123 - - bcdiv örneği
  • Example#3124 - - bcmod örneği
  • Example#3125 - - Ondalık basamaklarla bcmod
  • Example#3126 - - bcmul örneği
  • Example#3127 - - bcmul basamak örneği
  • Example#3128 - bcpow örneği
  • Example#3129 - bcpow basamak örneği
  • Example#3130 - - bcscale örneği
  • Example#3131 - bcsqrt örneği
  • Example#3132 - bcsub örneği
  • Example#3133 - Factorial function using GMP
  • Example#3134 - gmp_abs example
  • Example#3135 - gmp_add example
  • Example#3136 - gmp_and example
  • Example#3137 - gmp_clrbit example
  • Example#3138 - gmp_cmp example
  • Example#3139 - gmp_com example
  • Example#3140 - gmp_div_q example
  • Example#3141 - Division of GMP numbers
  • Example#3142 - gmp_div_r example
  • Example#3143 - gmp_divexact example
  • Example#3144 - gmp_export example
  • Example#3145 - gmp_fact example
  • Example#3146 - gmp_gcd example
  • Example#3147 - Solving a linear Diophantine equation
  • Example#3148 - gmp_hamdist example
  • Example#3149 - gmp_import example
  • Example#3150 - Creating GMP number
  • Example#3151 - gmp_intval example
  • Example#3152 - gmp_invert example
  • Example#3153 - gmp_jacobi example
  • Example#3154 - gmp_legendre example
  • Example#3155 - gmp_mod example
  • Example#3156 - gmp_mul example
  • Example#3157 - gmp_neg example
  • Example#3158 - gmp_nextprime example
  • Example#3159 - gmp_or example
  • Example#3160 - gmp_perfect_square example
  • Example#3161 - gmp_popcount example
  • Example#3162 - gmp_pow example
  • Example#3163 - gmp_powm example
  • Example#3164 - gmp_prob_prime example
  • Example#3165 - gmp_random example
  • Example#3166 - gmp_random_bits example
  • Example#3167 - gmp_random_range example
  • Example#3168 - gmp_random_seed example
  • Example#3169 - gmp_scan0 example
  • Example#3170 - gmp_scan1 example
  • Example#3171 - gmp_setbit example - 0 index
  • Example#3172 - gmp_setbit example - 1 index
  • Example#3173 - gmp_setbit example - clearing a bit
  • Example#3174 - gmp_sign example
  • Example#3175 - gmp_sqrt example
  • Example#3176 - gmp_sqrtrem example
  • Example#3177 - Converting a GMP number to a string
  • Example#3178 - gmp_sub example
  • Example#3179 - gmp_testbit example
  • Example#3180 - gmp_xor example
  • Example#3181 - abs example
  • Example#3182 - base_convert example
  • Example#3183 - bindec example
  • Example#3184 - bindec interprets input as unsigned integers
  • Example#3185 - ceil example
  • Example#3186 - cos example
  • Example#3187 - decbin example
  • Example#3188 - dechex example
  • Example#3189 - dechex example with large integers
  • Example#3190 - decoct example
  • Example#3191 - deg2rad example
  • Example#3192 - exp example
  • Example#3193 - Using fdiv
  • Example#3194 - floor example
  • Example#3195 - Using fmod
  • Example#3196 - hexdec example
  • Example#3197 - intdiv example
  • Example#3198 - is_finite example
  • Example#3199 - is_infinite example
  • Example#3200 - is_nan example
  • Example#3201 - Example uses of max
  • Example#3202 - Example uses of min
  • Example#3203 - octdec example
  • Example#3204 - pi example
  • Example#3205 - Some examples of pow
  • Example#3206 - rad2deg example
  • Example#3207 - round examples
  • Example#3208 - How precision affects a float
  • Example#3209 - mode examples
  • Example#3210 - mode with precision examples
  • Example#3211 - sin example
  • Example#3212 - sqrt example
  • Example#3213 - tan example
  • Example#3214 - Evaluating a FDF document
  • Example#3215 - Adding JavaScript code to a FDF
  • Example#3216 - Populating a PDF document
  • Example#3217 - Storing an uploaded file
  • Example#3218 - Detecting all fieldnames in a FDF
  • Example#3219 - Accessing the form data
  • Example#3220 - Accessing the form data
  • Example#3221 - Retrieving FDF as a string
  • Example#3222 - Passing FDF data to a second form
  • Example#3223 - gnupg clearsign example (procedural)
  • Example#3224 - gnupg clearsign example (OO)
  • Example#3225 - keylistiterator
  • Example#3226 - Procedural gnupg_adddecryptkey example
  • Example#3227 - OO gnupg_adddecryptkey example
  • Example#3228 - Procedural gnupg_addencryptkey example
  • Example#3229 - OO gnupg_addencryptkey example
  • Example#3230 - Procedural gnupg_addsignkey example
  • Example#3231 - OO gnupg_addsignkey example
  • Example#3232 - Procedural gnupg_cleardecryptkeys example
  • Example#3233 - OO gnupg_cleardecryptkeys example
  • Example#3234 - Procedural gnupg_clearencryptkeys example
  • Example#3235 - OO gnupg_clearencryptkeys example
  • Example#3236 - Procedural gnupg_clearsignkeys example
  • Example#3237 - OO gnupg_clearsignkeys example
  • Example#3238 - Procedural gnupg_decrypt example
  • Example#3239 - OO gnupg_decrypt example
  • Example#3240 - Procedural gnupg_decryptverify example
  • Example#3241 - OO gnupg_decryptverify example
  • Example#3242 - Procedural gnupg_deletekey example
  • Example#3243 - OO gnupg_deletekey example
  • Example#3244 - Procedural gnupg_encrypt example
  • Example#3245 - OO gnupg_encrypt example
  • Example#3246 - Procedural gnupg_encryptsign example
  • Example#3247 - OO gnupg_encryptsign example
  • Example#3248 - Procedural gnupg_export example
  • Example#3249 - OO gnupg_export example
  • Example#3250 - Procedural gnupg_getengineinfo example
  • Example#3251 - OO gnupg_getengineinfo example
  • Example#3252 - Procedural gnupg_geterror example
  • Example#3253 - OO gnupg_geterror example
  • Example#3254 - Procedural gnupg_geterrorinfo example
  • Example#3255 - OO gnupg_geterrorinfo example
  • Example#3256 - Procedural gnupg_getprotocol example
  • Example#3257 - OO gnupg_getprotocol example
  • Example#3258 - Procedural gnupg_gettrustlist example
  • Example#3259 - OO gnupg_gettrustlist example
  • Example#3260 - Procedural gnupg_import example
  • Example#3261 - OO gnupg_import example
  • Example#3262 - Procedural gnupg_init example with default setting
  • Example#3263 - Procedural gnupg_init example with overriden file name and home dir
  • Example#3264 - OO gnupg initializer example with default setting
  • Example#3265 - OO gnupg initializer example with overriden file name and home dir
  • Example#3266 - Procedural gnupg_keyinfo example
  • Example#3267 - OO gnupg_keyinfo example
  • Example#3268 - Procedural gnupg_listsignatures example
  • Example#3269 - OO gnupg_listsignatures example
  • Example#3270 - Procedural gnupg_setarmor example
  • Example#3271 - OO gnupg_setarmor example
  • Example#3272 - Procedural gnupg_seterrormode example
  • Example#3273 - OO gnupg_seterrormode example
  • Example#3274 - Procedural gnupg_setsignmode example
  • Example#3275 - OO gnupg_setsignmode example
  • Example#3276 - Procedural gnupg_sign example
  • Example#3277 - OO gnupg_sign example
  • Example#3278 - Procedural gnupg_verify example
  • Example#3279 - OO gnupg_verify example
  • Example#3280 - Creating and using a pattern
  • Example#3281 - Creating and using a template
  • Example#3282 - Hyphennate a text
  • Example#3283 - Drawing a rectangle
  • Example#3284 - Creating and using a spot color
  • Example#3285 - Rotation of the coordinate system
  • Example#3286 - Placing text at a given position
  • Example#3287 - Drawing a dashed line
  • Example#3288 - Translation of the coordinate system
  • Example#3289 - A rpmdbinfo example
  • Example#3290 - Searching for the package owning a file
  • Example#3291 - A rpminfo example
  • Example#3292 - example
  • Example#3293 - example
  • Example#3294 - example
  • Example#3295 - example
  • Example#3296 - example
  • Example#3297 - example
  • Example#3298 - example
  • Example#3299 - example
  • Example#3300 - example
  • Example#3301 - example
  • Example#3302 - example
  • Example#3303 - example
  • Example#3304 - example
  • Example#3305 - setColumn example
  • Example#3306 - setRow example
  • Example#3307 - Align style example
  • Example#3308 - Bold style example
  • Example#3309 - Italic style example
  • Example#3310 - Underline style example
  • Example#3311 - Incorrect requests
  • Example#3312 - Calling request from a request callback
  • Example#3313 - Calling request from a request callback
  • Example#3314 - Using eio with libevent
  • Example#3315 - Cancelling a request
  • Example#3316 - Calling eio_chmod
  • Example#3317 - Making a custom request
  • Example#3318 - Grouping requests
  • Example#3319 - Using eio with libevent extension
  • Example#3320 - Using eio with event extension
  • Example#3321 - eio_cancel example
  • Example#3322 - eio_custom example
  • Example#3323 - eio_event_loop example
  • Example#3324 - eio_lstat example
  • Example#3325 - Using eio with libevent
  • Example#3326 - eio_grp example
  • Example#3327 - Grouping requests
  • Example#3328 - eio_link example
  • Example#3329 - eio_lstat example
  • Example#3330 - eio_mkdir example
  • Example#3331 - eio_mknod example
  • Example#3332 - eio_nreqs example
  • Example#3333 - eio_open example
  • Example#3334 - eio_poll example
  • Example#3335 - eio_read example
  • Example#3336 - eio_readdir example
  • Example#3337 - eio_readlink example
  • Example#3338 - eio_realpath example
  • Example#3339 - eio_rename example
  • Example#3340 - eio_rmdir example
  • Example#3341 - eio_stat example
  • Example#3342 - eio_statvfs example
  • Example#3343 - eio_symlink example
  • Example#3344 - Simple timers
  • Example#3345 - Periodic timer. Tick each 10.5 seconds
  • Example#3346 - Periodic timer. Use reschedule callback
  • Example#3347 - Periodic timer. Tick every 10.5 seconds starting at now
  • Example#3348 - Wait until STDIN is readable
  • Example#3349 - Use some async I/O to access a socket
  • Example#3350 - Embedding one loop into another
  • Example#3351 - Embedding loop created with kqueue backend into the default loop
  • Example#3352 - Handle SIGTERM signal
  • Example#3353 - Monitor changes of /var/log/messages
  • Example#3354 - Monotor changes of /var/log/messages. Avoid missing updates by means of one second delay
  • Example#3355 - Process status changes
  • Example#3356 - Using reschedule callback
  • Example#3357 - Embedding loop created with kqueue backend into the default loop
  • Example#3358 - Embedding one loop into another
  • Example#3359 - Embedding loop created with kqueue backend into the default loop
  • Example#3360 - Embedding loop created with kqueue backend into the default loop
  • Example#3361 - Periodic timer. Use reschedule callback
  • Example#3362 - Periodic timer. Tick every 10.5 seconds starting at now
  • Example#3363 - Hourly watcher
  • Example#3364 - Handle SIGTERM signal
  • Example#3365 - Monitor changes of /var/log/messages
  • Example#3366 - Monitor changes of /var/log/messages
  • Example#3367 - Simple timers
  • Example#3368 - Monotor changes of /var/log/messages. Avoid missing updates by means of one second delay
  • Example#3369 - Register an I/O watcher for some UDP socket but do not keep the event loop from running just because of that watcher.
  • Example#3370 - Expect Usage Example
  • Example#3371 - Another Expect Usage Example
  • Example#3372 - expect_expectl example
  • Example#3373 - expect_popen example
  • Example#3374 - - Süreç Denetimi örneği
  • Example#3375 - - pcntl_fork örneği
  • Example#3376 - pcntl_rfork example
  • Example#3377 - - pcntl_signal örneği
  • Example#3378 - - pcntl_signal_dispatch örneği
  • Example#3379 - - pcntl_signal_get_handler örneği
  • Example#3380 - - pcntl_sigprocmask örneği
  • Example#3381 - - pcntl_sigwaitinfo örneği
  • Example#3382 - - posix_access örneği
  • Example#3383 - - posix_ctermid örneği
  • Example#3384 - posix_eaccess example
  • Example#3385 - posix_fpathconf example
  • Example#3386 - - posix_get_last_error örneği
  • Example#3387 - - posix_getcwd örneği
  • Example#3388 - - posix_getegid örneği
  • Example#3389 - - posix_geteuid örneği
  • Example#3390 - - posix_getgid örneği
  • Example#3391 - - posix_getgrgid örneği
  • Example#3392 - - posix_getgrnam örneği
  • Example#3393 - - posix_getgroups örneği
  • Example#3394 - - posix_getlogin örneği
  • Example#3395 - - posix_getpgid örneği
  • Example#3396 - - posix_getpid örneği
  • Example#3397 - - posix_getppid örneği
  • Example#3398 - - posix_getpwnam örneği
  • Example#3399 - - posix_getpwuid örneği
  • Example#3400 - - posix_getrlimit örneği
  • Example#3401 - - posix_getsid örneği
  • Example#3402 - - posix_getuid örneği
  • Example#3403 - - posix_mknod örneği
  • Example#3404 - posix_pathconf example
  • Example#3405 - - posix_setegid örneği
  • Example#3406 - - posix_setgid örneği
  • Example#3407 - - posix_setuid örneği
  • Example#3408 - - posix_strerror örneği
  • Example#3409 - posix_sysconf example
  • Example#3410 - - posix_times örneği
  • Example#3411 - - posix_uname örneği
  • Example#3412 - - escapeshellarg örneği
  • Example#3413 - - escapeshellcmd örneği
  • Example#3414 - - exec örneği
  • Example#3415 - - Önceliği yükseltmek için proc_nice kullanımı
  • Example#3416 - - proc_open örneği
  • Example#3417 - - Windows üzerinde proc_open tuhaflığı
  • Example#3418 - - shell_exec örneği
  • Example#3419 - - system örneği
  • Example#3420 - Example showing Future as return value
  • Example#3421 - Example showing Future as synchronization point
  • Example#3422 - Fetch a chunk of the property table
  • Example#3423 - Counting the properties of an object
  • Example#3424 - Runtime inheritance
  • Example#3425 - Detect the state of the referenced object
  • Example#3426 - Detect the state of the referenced object
  • Example#3427 - Merging into the property table of a threaded object
  • Example#3428 - Notifications and Waiting
  • Example#3429 - Notifications and Waiting
  • Example#3430 - Popping the last item from the property table of a threaded object
  • Example#3431 - Shifting the first item from the property table of a threaded object
  • Example#3432 - Synchronizing
  • Example#3433 - Notifications and Waiting
  • Example#3434 - Return the identity of the Thread or Process that created the referenced Thread
  • Example#3435 - Return the currently executing Thread
  • Example#3436 - Return the identity of the currently executing Thread
  • Example#3437 - Return the identity of the referenced Thread
  • Example#3438 - Detect the state of the referenced Thread
  • Example#3439 - Tell if the referenced Thread was started
  • Example#3440 - Join with the referenced Thread
  • Example#3441 - Starting Threads
  • Example#3442 - A basic example of Worker::collect
  • Example#3443 - A basic example of Worker::getStacked
  • Example#3444 - Detect the state of a worker
  • Example#3445 - Shutdown the referenced worker
  • Example#3446 - Stacking a task for execution onto a worker
  • Example#3447 - Removing objects from the stack of Workers
  • Example#3448 - A basic example of Pool::collect
  • Example#3449 - Creating Pools
  • Example#3450 - Shutting down a pool
  • Example#3451 - Submitting Tasks
  • Example#3452 - Submitting tasks to a specific worker
  • Example#3453 - New immutability semantics of Threaded
  • Example#3454 - Volatile use-case
  • Example#3455 - Shared Memory Operations Overview
  • Example#3456 - Closing shared memory block
  • Example#3457 - Deleting shared memory block
  • Example#3458 - Create a new shared memory block
  • Example#3459 - Reading shared memory block
  • Example#3460 - Getting the size of the shared memory block
  • Example#3461 - Writing to shared memory block
  • Example#3462 - SyncMutex::__construct named mutex with lock timeout example
  • Example#3463 - SyncMutex::__construct unnamed mutex example
  • Example#3464 - SyncMutex::lock example
  • Example#3465 - SyncMutex::unlock example
  • Example#3466 - SyncSemaphore::__construct example
  • Example#3467 - SyncSemaphore::lock example
  • Example#3468 - SyncSemaphore::unlock example
  • Example#3469 - SyncEvent::__construct example
  • Example#3470 - SyncEvent::fire example
  • Example#3471 - SyncEvent::reset example
  • Example#3472 - SyncEvent::wait example
  • Example#3473 - SyncReaderWriter::__construct example
  • Example#3474 - SyncReaderWriter::readlock example
  • Example#3475 - SyncReaderWriter::readunlock example
  • Example#3476 - SyncReaderWriter::writelock example
  • Example#3477 - SyncReaderWriter::writeunlock example
  • Example#3478 - SyncSharedMemory::__construct example
  • Example#3479 - SyncSharedMemory::first example
  • Example#3480 - SyncSharedMemory::__construct example
  • Example#3481 - SyncSharedMemory::size example
  • Example#3482 - SyncSharedMemory::write example
  • Example#3483 - A geoip_asnum_by_name example
  • Example#3484 - A geoip_continent_code_by_name example
  • Example#3485 - A geoip_country_code_by_name example
  • Example#3486 - A geoip_country_code3_by_name example
  • Example#3487 - A geoip_country_name_by_name example
  • Example#3488 - A geoip_database_info example
  • Example#3489 - A geoip_db_avail example
  • Example#3490 - A geoip_db_filename example
  • Example#3491 - A geoip_db_get_all_info example
  • Example#3492 - A geoip_db_get_all_info example
  • Example#3493 - A geoip_domain_by_name example
  • Example#3494 - A geoip_id_by_name example
  • Example#3495 - A geoip_isp_by_name example
  • Example#3496 - A geoip_netspeedcell_by_name example
  • Example#3497 - A geoip_org_by_name example
  • Example#3498 - A geoip_record_by_name example
  • Example#3499 - A geoip_region_by_name example
  • Example#3500 - A geoip_region_name_by_code example using region code for US/Canada
  • Example#3501 - A geoip_region_name_by_code example using FIPS codes
  • Example#3502 - A geoip_setup_custom_directory example
  • Example#3503 - A geoip_time_zone_by_country_and_region example using region code for US/Canada
  • Example#3504 - A geoip_time_zone_by_country_and_region example using FIPS codes
  • Example#3505 - xor.data file
  • Example#3506 - Simple train
  • Example#3507 - Simple test
  • Example#3508 - fann_create_train_from_callback example
  • Example#3509 - fann_read_train_from_file example
  • Example#3510 - igbinary_serialize example
  • Example#3511 - - Bir dizi döndüren JsonSerializable::jsonSerialize örneği
  • Example#3512 - - Bir ilişkisel dizi döndüren JsonSerializable::jsonSerialize örneği
  • Example#3513 - - Bir tamsayı döndüren JsonSerializable::jsonSerialize örneği
  • Example#3514 - - Bir dize döndüren JsonSerializable::jsonSerialize örneği
  • Example#3515 - - json_decode örnekleri
  • Example#3516 - - Geçersiz nesne özelliklerine erişim
  • Example#3517 - - json_decode kullanırken yapılan genel bir hata.
  • Example#3518 - - depth hataları
  • Example#3519 - - Büyük tamsayılarla json_decode
  • Example#3520 - - json_encode örneği
  • Example#3521 - - Bazı seçeneklerin kullanımını gösteren json_encode örneği
  • Example#3522 - - JSON_NUMERIC_CHECK seçeneği örneği
  • Example#3523 - - Sıralı ve sırasız dizi örneği
  • Example#3524 - - JSON_PRESERVE_ZERO_FRACTION seçeneği örneği
  • Example#3525 - json_last_error örneği
  • Example#3526 - - json_last_error ile json_encode
  • Example#3527 - - json_last_error ve JSON_THROW_ON_ERROR
  • Example#3528 - json_validate examples
  • Example#3529 - simdjson_decode examples
  • Example#3530 - Accessing invalid object properties
  • Example#3531 - common mistakes using simdjson_decode
  • Example#3532 - depth errors
  • Example#3533 - simdjson_decode of large integers
  • Example#3534 - simdjson_decode examples
  • Example#3535 - depth errors
  • Example#3536 - Lua::assignexample
  • Example#3537 - Lua::callexample
  • Example#3538 - Lua::evalexample
  • Example#3539 - Lua::registerCallbackexample
  • Example#3540 - LuaClosure::__invokeexample
  • Example#3541 - Execute some Lua code
  • Example#3542 - Calling a Lua function
  • Example#3543 - Profiling Lua code
  • Example#3544 - Loading code into Lua
  • Example#3545 - Manipulating the usage timer
  • Example#3546 - Registering PHP functions to call from Lua
  • Example#3547 - Calling a Lua function
  • Example#3548 - Calling a Lua function
  • Example#3549 - - constant işlevinin sabitlerle kullanımı
  • Example#3550 - - constant işlevinin sayılama kılıfları ile kullanımı ( PHP 8.1.0 ve üstü)
  • Example#3551 - - Sabit tanımlamak
  • Example#3552 - - Ayrılmış isimli sabitler
  • Example#3553 - - Sabitlerin tanımlılığını sınamak
  • Example#3554 - - sayılama kılıflarının Sınanması (PHP 8.1.0 ve üstü)
  • Example#3555 - - eval örneği
  • Example#3556 - - exit örneği
  • Example#3557 - - exit durum örneği
  • Example#3558 - - Kapanma işlevleri ve yıkıcıların koşulsuz çalışması
  • Example#3559 - Kullanıcının tarayıcısı ile ilgili tüm bilginin listelenmesi
  • Example#3560 - - __halt_compiler örneği
  • Example#3561 - - highlight_string örneği
  • Example#3562 - - hrtime örneği
  • Example#3563 - - ignore_user_abort örneği
  • Example#3564 - - pack örneği
  • Example#3565 - - php_strip_whitespace örneği
  • Example#3566 - - sapi_windows_generate_ctrl_event örneği
  • Example#3567 - - sapi_windows_set_ctrl_handler örneği
  • Example#3568 - - sapi_windows_vt100_support öntanımlı durum örneği
  • Example#3569 - - sapi_windows_vt100_support ile durum değişikliği
  • Example#3570 - - VT100 desteğini etkin kılma örneği
  • Example#3571 - - sleep örneği
  • Example#3572 - - sys_getloadavg örneği
  • Example#3573 - - time_nanosleep örneği
  • Example#3574 - - time_sleep_until örneği
  • Example#3575 - - uniqid örneği
  • Example#3576 - - unpack örneği
  • Example#3577 - - unpack ve bir yineleyici
  • Example#3578 - - unpack ve isimsiz anahtarlar
  • Example#3579 - - usleep örneği
  • Example#3580 - Random Example
  • Example#3581 - mt_rand example
  • Example#3582 - rand example
  • Example#3583 - random_bytes example
  • Example#3584 - random_int example
  • Example#3585 - Random\Randomizer::__construct example
  • Example#3586 - Random\Randomizer::getBytes example
  • Example#3587 - Random\Randomizer::getBytesFromString example
  • Example#3588 - Generate a random code for multi-factor authentication
  • Example#3589 - Select from a string with a non-uniform distribution
  • Example#3590 - Random\Randomizer::getFloat example
  • Example#3591 - Random\Randomizer::getInt example
  • Example#3592 - Random\Randomizer::nextFloat example
  • Example#3593 - Incorrect scaling using an affine transformation
  • Example#3594 - Random\Randomizer::nextInt example
  • Example#3595 - Random\Randomizer::pickArrayKeys example
  • Example#3596 - Picking random values
  • Example#3597 - Random\Randomizer::__serialize example
  • Example#3598 - Random\Randomizer::shuffleArray example
  • Example#3599 - Random\Randomizer::shuffleBytes example
  • Example#3600 - Byte-wise shuffling breaks Unicode characters
  • Example#3601 - Random\Randomizer::__unserialize example
  • Example#3602 - Random\Engine::generate example
  • Example#3603 - Random\Engine\Mt19937::__construct example
  • Example#3604 - Random\Engine\Mt19937::__debugInfo example
  • Example#3605 - Random\Engine\Mt19937::__serialize example
  • Example#3606 - Random\Engine\Mt19937::__unserialize example
  • Example#3607 - Random\Engine\PcgOneseq128XslRr64::__construct example
  • Example#3608 - Deriving a seed from a string
  • Example#3609 - Random\Engine\PcgOneseq128XslRr64::__debugInfo example
  • Example#3610 - Random\Engine\PcgOneseq128XslRr64::jump example
  • Example#3611 - Randomizer methods may call the engine more than once
  • Example#3612 - Random\Engine\PcgOneseq128XslRr64::__serialize example
  • Example#3613 - Random\Engine\PcgOneseq128XslRr64::__unserialize example
  • Example#3614 - Random\Engine\Xoshiro256StarStar::__construct example
  • Example#3615 - Deriving a seed from a string
  • Example#3616 - Random\Engine\Xoshiro256StarStar::__debugInfo example
  • Example#3617 - Random\Engine\Xoshiro256StarStar::jump example
  • Example#3618 - Random\Engine\Xoshiro256StarStar::jumpLong example
  • Example#3619 - Random\Engine\Xoshiro256StarStar::__serialize example
  • Example#3620 - Random\Engine\Xoshiro256StarStar::__unserialize example
  • Example#3621 - Get and set base path
  • Example#3622 - Get and set logger
  • Example#3623 - Fast write log
  • Example#3624 - Fast count some type of log count value
  • Example#3625 - Acquisit some type of log list
  • Example#3626 - seaslog_get_author example
  • Example#3627 - seaslog_get_version example
  • Example#3628 - SeasLog::alert example
  • Example#3629 - SeasLog::analyzerCount example
  • Example#3630 - SeasLog::analyzerDetail example
  • Example#3631 - SeasLog::closeLoggerStream example
  • Example#3632 - SeasLog::__construct example
  • Example#3633 - SeasLog::critical example
  • Example#3634 - SeasLog::debug example
  • Example#3635 - SeasLog::__destruct example
  • Example#3636 - SeasLog::emergency example
  • Example#3637 - SeasLog::error example
  • Example#3638 - SeasLog::flushBuffer example
  • Example#3639 - SeasLog::getBasePath example
  • Example#3640 - SeasLog::getBuffer example
  • Example#3641 - SeasLog::getBufferEnabled example
  • Example#3642 - SeasLog::getDatetimeFormat example
  • Example#3643 - SeasLog::getLastLogger example
  • Example#3644 - SeasLog::getRequestID example
  • Example#3645 - SeasLog::getRequestVariable example
  • Example#3646 - SeasLog::info example
  • Example#3647 - SeasLog::log example
  • Example#3648 - SeasLog::notice example
  • Example#3649 - SeasLog::setBasePath example
  • Example#3650 - SeasLog::setDatetimeFormat example
  • Example#3651 - SeasLog::setLogger example
  • Example#3652 - SeasLog::setRequestID example
  • Example#3653 - SeasLog::setRequestVariable example
  • Example#3654 - SeasLog::warning example
  • Example#3655 - SplStack example
  • Example#3656 - SplQueue example
  • Example#3657 - Efficiently handling tasks with SplQueue
  • Example#3658 - SplFixedArray usage example
  • Example#3659 - SplFixedArray::__construct example
  • Example#3660 - SplFixedArray::count example
  • Example#3661 - SplFixedArray::fromArray example
  • Example#3662 - SplFixedArray::getSize example
  • Example#3663 - SplFixedArray::setSize example
  • Example#3664 - SplFixedArray::toArray example
  • Example#3665 - SplObjectStorage as a set
  • Example#3666 - SplObjectStorage as a map
  • Example#3667 - SplObjectStorage::addAll example
  • Example#3668 - SplObjectStorage::attach example
  • Example#3669 - SplObjectStorage::contains example
  • Example#3670 - SplObjectStorage::count example
  • Example#3671 - SplObjectStorage::current example
  • Example#3672 - SplObjectStorage::detach example
  • Example#3673 - SplObjectStorage::getHash example
  • Example#3674 - SplObjectStorage::getInfo example
  • Example#3675 - SplObjectStorage::key example
  • Example#3676 - SplObjectStorage::next example
  • Example#3677 - SplObjectStorage::offsetExists example
  • Example#3678 - SplObjectStorage::offsetGet example
  • Example#3679 - SplObjectStorage::offsetSet example
  • Example#3680 - SplObjectStorage::offsetUnset example
  • Example#3681 - SplObjectStorage::removeAll example
  • Example#3682 - SplObjectStorage::removeAllExcept example
  • Example#3683 - SplObjectStorage::rewind example
  • Example#3684 - SplObjectStorage::serialize example
  • Example#3685 - SplObjectStorage::setInfo example
  • Example#3686 - SplObjectStorage::unserialize example
  • Example#3687 - SplObjectStorage::valid example
  • Example#3688 - AppendIterator::append example
  • Example#3689 - Iterating AppendIterator with foreach
  • Example#3690 - Iterating AppendIterator with the AppendIterator API
  • Example#3691 - AppendIterator.getIteratorIndex basic example
  • Example#3692 - AppendIterator::key basic example
  • Example#3693 - ArrayIterator::current example
  • Example#3694 - ArrayIterator::key example
  • Example#3695 - ArrayIterator::next example
  • Example#3696 - ArrayIterator::rewind example
  • Example#3697 - ArrayIterator::valid example
  • Example#3698 - CachingIterator::getCache example
  • Example#3699 - Available callback arguments
  • Example#3700 - Callback basic examples
  • Example#3701 - A DirectoryIterator::__construct example
  • Example#3702 - A DirectoryIterator::current example
  • Example#3703 - A DirectoryIterator::getBasename example
  • Example#3704 - DirectoryIterator::getExtension example
  • Example#3705 - A DirectoryIterator::getFilename example
  • Example#3706 - A DirectoryIterator::isDot example
  • Example#3707 - A DirectoryIterator::key example
  • Example#3708 - DirectoryIterator::next example
  • Example#3709 - DirectoryIterator::rewind example
  • Example#3710 - DirectoryIterator::seek example
  • Example#3711 - A DirectoryIterator::__toString example
  • Example#3712 - A DirectoryIterator::valid example
  • Example#3713 - FilesystemIterator::__construct example
  • Example#3714 - FilesystemIterator::current example
  • Example#3715 - FilesystemIterator::key example
  • Example#3716 - FilesystemIterator::next example
  • Example#3717 - FilesystemIterator::rewind example
  • Example#3718 - FilesystemIterator::key example
  • Example#3719 - FilterIterator::accept example
  • Example#3720 - GlobIterator example
  • Example#3721 - GlobIterator::count example
  • Example#3722 - InfiniteIterator::__construct example
  • Example#3723 - LimitIterator usage example
  • Example#3724 - LimitIterator::__construct example
  • Example#3725 - LimitIterator::getPosition example
  • Example#3726 - Iterating a MultipleIterator
  • Example#3727 - NoRewindIterator::__construct example
  • Example#3728 - NoRewindIterator::rewind example
  • Example#3729 - RecursiveArrayIterator::getChildren example
  • Example#3730 - RecursiveArrayIterator::hasChildren example
  • Example#3731 - Available callback arguments
  • Example#3732 - Recursive callback basic example
  • Example#3733 - RecursiveCallbackFilterIterator::hasChildren basic usage
  • Example#3734 - RecursiveDirectoryIterator example
  • Example#3735 - getSubPath example
  • Example#3736 - getSubPathname example
  • Example#3737 - Basic RecursiveFilterIterator example
  • Example#3738 - RecursiveFilterIterator example
  • Example#3739 - Iterating a RecursiveIteratorIterator
  • Example#3740 - RecursiveRegexIterator::__construct example
  • Example#3741 - RecursiveRegexIterator::getChildren example
  • Example#3742 - RecursiveRegexIterator::hasChildren example
  • Example#3743 - RegexIterator::accept example
  • Example#3744 - RegexIterator::__construct example
  • Example#3745 - RegexIterator::getFlags example
  • Example#3746 - RegexIterator::getMode example
  • Example#3747 - RegexIterator::getPregFlags example
  • Example#3748 - RegexIterator::setFlags example
  • Example#3749 - RegexIterator::setMode example
  • Example#3750 - RegexIterator::setPregFlags example
  • Example#3751 - Countable::count example
  • Example#3752 - Basic usage
  • Example#3753 - SeekableIterator::seek example
  • Example#3754 - class_implements example
  • Example#3755 - class_parents example
  • Example#3756 - class_uses example
  • Example#3757 - iterator_apply example
  • Example#3758 - iterator_count example
  • Example#3759 - iterator_count modifies position
  • Example#3760 - iterator_count in foreach loops
  • Example#3761 - iterator_to_array example
  • Example#3762 - spl_autoload_extensions example
  • Example#3763 - spl_autoload_register as a replacement for an __autoload function
  • Example#3764 - spl_autoload_register example where the class is not loaded
  • Example#3765 - The identifier will be provided without the leading backslash
  • Example#3766 - spl_classes example
  • Example#3767 - A spl_object_hash example
  • Example#3768 - A spl_object_id example
  • Example#3769 - SplFileInfo::__construct example
  • Example#3770 - SplFileInfo::getATime example
  • Example#3771 - SplFileInfo::getBasename example
  • Example#3772 - SplFileInfo::getCTime example
  • Example#3773 - SplFileInfo::getExtension example
  • Example#3774 - SplFileInfo::getFilename example
  • Example#3775 - SplFileInfo::getGroup example
  • Example#3776 - SplFileInfo::getLinkTarget example
  • Example#3777 - SplFileInfo::getMTime example
  • Example#3778 - SplFileInfo::getOwner example
  • Example#3779 - SplFileInfo::getPath example
  • Example#3780 - SplFileInfo::getPathInfo example
  • Example#3781 - SplFileInfo::getPathname example
  • Example#3782 - SplFileInfo::getPerms example
  • Example#3783 - SplFileInfo::getRealPath example
  • Example#3784 - SplFileInfo::getSize example
  • Example#3785 - SplFileInfo::getType example
  • Example#3786 - SplFileInfo::isDir example
  • Example#3787 - SplFileInfo::isExecutable example
  • Example#3788 - SplFileInfo::isFile example
  • Example#3789 - SplFileInfo::isLink example
  • Example#3790 - SplFileInfo::isReadable example
  • Example#3791 - SplFileInfo::isWriteable example
  • Example#3792 - SplFileInfo::openFile example
  • Example#3793 - SplFileInfo::setFileClass example
  • Example#3794 - SplFileInfo::setFileClass example
  • Example#3795 - SplFileInfo::__toString example
  • Example#3796 - SplFileObject::__construct example
  • Example#3797 - SplFileObject::current example
  • Example#3798 - SplFileObject::eof example
  • Example#3799 - SplFileObject::fflush example
  • Example#3800 - SplFileObject::fgetc example
  • Example#3801 - SplFileObject::fgetcsv example
  • Example#3802 - SplFileObject::READ_CSV example
  • Example#3803 - SplFileObject::fgets example
  • Example#3804 - SplFileObject::fgetss example
  • Example#3805 - SplFileObject::flock example
  • Example#3806 - SplFileObject::fpassthru example
  • Example#3807 - SplFileObject::fputcsv example
  • Example#3808 - SplFileObject::fread example
  • Example#3809 - SplFileObject::fscanf example
  • Example#3810 - SplFileObject::fseek example
  • Example#3811 - SplFileObject::fstat example
  • Example#3812 - SplFileObject::ftell example
  • Example#3813 - SplFileObject::ftruncate example
  • Example#3814 - SplFileObject::fwrite example
  • Example#3815 - SplFileObject::getCsvControl example
  • Example#3816 - SplFileObject::getFlags example
  • Example#3817 - SplFileObject::getMaxLineLen example
  • Example#3818 - SplFileObject::key example
  • Example#3819 - SplFileObject::key example with SplFileObject::setMaxLineLen
  • Example#3820 - SplFileObject::next example
  • Example#3821 - SplFileObject::rewind example
  • Example#3822 - SplFileObject::seek example
  • Example#3823 - SplFileObject::setCsvControl example
  • Example#3824 - SplFileObject::setFlags example
  • Example#3825 - SplFileObject::setMaxLineLen example
  • Example#3826 - SplFileObject::valid example
  • Example#3827 - SplTempFileObject example
  • Example#3828 - ArrayObject::append example
  • Example#3829 - ArrayObject::asort example
  • Example#3830 - ArrayObject::__construct example
  • Example#3831 - ArrayObject::count example
  • Example#3832 - ArrayObject::exchangeArray example
  • Example#3833 - ArrayObject::getArrayCopy example
  • Example#3834 - ArrayObject::getFlags example
  • Example#3835 - ArrayObject::getIterator example
  • Example#3836 - ArrayObject::getIteratorClass example
  • Example#3837 - ArrayObject::ksort example
  • Example#3838 - ArrayObject::natcasesort example
  • Example#3839 - ArrayObject::natsort example
  • Example#3840 - ArrayObject::offsetExists example
  • Example#3841 - ArrayObject::offsetGet example
  • Example#3842 - ArrayObject::offsetSet example
  • Example#3843 - ArrayObject::offsetUnset example
  • Example#3844 - ArrayObject::serialize example
  • Example#3845 - ArrayObject::setFlags example
  • Example#3846 - ArrayObject::setIteratorClass example
  • Example#3847 - ArrayObject::uasort example
  • Example#3848 - ArrayObject::uksort example
  • Example#3849 - - Çok sayıda kaynaktan veri almak için file_get_contents kullanımı
  • Example#3850 - - Bir HTTPS sunucusundan bir POST isteği yapmak
  • Example#3851 - - Sıkıştırılmış bir dosyaya veri yazmak
  • Example#3852 - - Küresel değişkenlere veri okuyup yazan bir akım
  • Example#3853 - - Tar arşivindeki dosyaları listelemek
  • Example#3854 - - stream_bucket_prepend örnekleri
  • Example#3855 - - stream_context_create örneği
  • Example#3856 - - stream_context_get_default örneği
  • Example#3857 - - stream_context_get_options örneği
  • Example#3858 - - stream_context_get_params örneği
  • Example#3859 - - stream_context_set_default örneği
  • Example#3860 - stream_context_set_options example
  • Example#3861 - - stream_copy_to_stream örneği
  • Example#3862 - - Süzgeçlerin uygulanacağı yerin belirlenmesi
  • Example#3863 - - foo-bar.txt akımında büyük harfe dönüşüm süzgeci
  • Example#3864 - - Çok sayıda süzgeç ismiyle eşleşen soysal bir süzgeç sınıfının tanıtımı
  • Example#3865 - - Bir akımın dinamik olarak süzülmesi
  • Example#3866 - - stream_get_contents örneği
  • Example#3867 - - stream_get_filters örneği
  • Example#3868 - - http'li fopen kullanılan stream_get_meta_data örneği
  • Example#3869 - - https'li stream_socket_client kullanılan stream_get_meta_data örneği
  • Example#3870 - - stream_get_transports örneği
  • Example#3871 - - stream_get_wrappers örneği
  • Example#3872 - - Bir akım sarmalayıcının varlığının sınanması
  • Example#3873 - - stream_is_local örneği
  • Example#3874 - - stream_isatty örneği
  • Example#3875 - - stream_notification_callback örneği
  • Example#3876 - - Komut satırı istemcisi için basit bir ilerleme çubuğu
  • Example#3877 - - stream_resolve_include_path örneği
  • Example#3878 - - stream_select örneği
  • Example#3879 - - stream_set_timeout örneği
  • Example#3880 - - stream_set_write_buffer örneği
  • Example#3881 - - stream_socket_client örneği
  • Example#3882 - - UDP bağlantı kullanımı
  • Example#3883 - - stream_socket_enable_crypto örneği
  • Example#3884 - - stream_socket_pair örneği
  • Example#3885 - - stream_socket_recvfrom örneği
  • Example#3886 - - stream_socket_sendto örneği
  • Example#3887 - - TCP sunucu soketlerinin kullanımı
  • Example#3888 - - UDP sunucu soketlerinin kullanımı
  • Example#3889 - - stream_socket_shutdown örneği
  • Example#3890 - - Bir akım sarmalayıcının etkin kılınması
  • Example#3891 - - Temel Tidy Kullanımı
  • Example#3892 - - tidy::getBody örneği
  • Example#3893 - - tidy::cleanrepair örneği
  • Example#3894 - - tidy::__construct örneği
  • Example#3895 - - tidy::diagnose örneği
  • Example#3896 - - tidy_get_error_buffer örneği
  • Example#3897 - - tidy::getConfig örneği
  • Example#3898 - - tidy_getopt örneği
  • Example#3899 - - Tüm seçeneklerin belgelerini ve öntanımlı değerlerini almak
  • Example#3900 - - tidy::getStatus örneği
  • Example#3901 - - tidy::head örneği
  • Example#3902 - - tidy::html örneği
  • Example#3903 - - tidy::parseFile örneği
  • Example#3904 - - tidy::parseString örneği
  • Example#3905 - - tidy::repairFile örneği
  • Example#3906 - - tidy::repairString örneği
  • Example#3907 - - tidy::root örneği
  • Example#3908 - - tidyNode::getParent örneği
  • Example#3909 - - tidyNode::hasChildren örneği
  • Example#3910 - - tidyNode::hasSiblings örneği
  • Example#3911 - - Karışık bir HTML belgeden ASP kodunu çıkarmak
  • Example#3912 - - Karışık bir HTML belgeden açıklamaları çıkarmak
  • Example#3913 - - Karışık bir HTML belgeden HTML kodunu çıkarmak
  • Example#3914 - - Karışık bir HTML belgeden JSTE kodunu çıkarmak
  • Example#3915 - - Karışık bir HTML belgeden PHP kodunu çıkarmak
  • Example#3916 - - Karışık bir HTML belgeden metni çıkarmak
  • Example#3917 - - ob_tidyhandler örneği
  • Example#3918 - - tidy_access_count örneği
  • Example#3919 - - tidy_config_count örneği
  • Example#3920 - - tidy_error_count örneği
  • Example#3921 - - tidy_get_output örneği
  • Example#3922 - - tidy_warning_count örneği
  • Example#3923 - - Açıklamaları simgeleştirici ile ayıklamak
  • Example#3924 - - token_get_all örneği
  • Example#3925 - - token_get_all yanlış kullanım örneği
  • Example#3926 - - Dahili kullanıma ayrılmış sözcük kullanan sınıf üzerinde token_get_all
  • Example#3927 - - token_name örneği
  • Example#3928 - - PhpToken::getTokenName örneği
  • Example#3929 - - PhpToken::is örneği
  • Example#3930 - - Dizi kullanımı
  • Example#3931 - - PhpToken::isIgnorable örneği
  • Example#3932 - - PhpToken::__toString örneği
  • Example#3933 - - PhpToken::tokenize örneği
  • Example#3934 - - PhpToken genişletmesi
  • Example#3935 - - base64_decode örneği
  • Example#3936 - - base64_encode örneği
  • Example#3937 - - get_headers örneği
  • Example#3938 - - HEAD kullanılan get_headers örneği
  • Example#3939 - - get_meta_tags bunları çözümler
  • Example#3940 - - get_meta_tags örneği
  • Example#3941 - - http_build_query basit kullanımı
  • Example#3942 - - Sayısal indisli elemanlarla http_build_query
  • Example#3943 - - http_build_query ve çok boyutlu diziler
  • Example#3944 - - http_build_query ve bir nesne
  • Example#3945 - - parse_url örneği
  • Example#3946 - - Eksik şemalı parse_url örneği
  • Example#3947 - - rawurldecode örneği
  • Example#3948 - - Bir FTP URL'sinde parola belirtmek
  • Example#3949 - - Başka bir rawurlencode örneği
  • Example#3950 - - urldecode örneği
  • Example#3951 - - urlencode örneği
  • Example#3952 - - urlencode ve htmlentities örneği
  • Example#3953 - Basic Javascript execution
  • Example#3954 - Yaml Example
  • Example#3955 - Parse callback example
  • Example#3956 - Emit callback example
  • Example#3957 - yaml_emit example
  • Example#3958 - yaml_parse example
  • Example#3959 - A classic Application directory layout
  • Example#3960 - Entry
  • Example#3961 - Rewrite rule
  • Example#3962 - Application config
  • Example#3963 - Default controller
  • Example#3964 - Default view template
  • Example#3965 - Run the Application
  • Example#3966 - An PHP array example
  • Example#3967 - An ini file example
  • Example#3968 - A Bootstrapexample
  • Example#3969 - Yaf_Application::bootstrapexample
  • Example#3970 - Yaf_Application::clearLastErrorexample
  • Example#3971 - A ini config file example
  • Example#3972 - Yaf_Application::__constructexample
  • Example#3973 - Yaf_Application::__constructexample
  • Example#3974 - Yaf_Application::environexample
  • Example#3975 - Yaf_Application::executeexample
  • Example#3976 - Yaf_Application::getConfigexample
  • Example#3977 - Yaf_Application::getDispatcherexample
  • Example#3978 - Yaf_Application::getLastErrorMsgexample
  • Example#3979 - Yaf_Application::getLastErrorNoexample
  • Example#3980 - Yaf_Application::getModulesexample
  • Example#3981 - Bootstrap example
  • Example#3982 - Yaf_Dispatcher::autoRender example
  • Example#3983 - Yaf_Dispatcher::catchException example
  • Example#3984 - Yaf_Dispatcher::registerPlugin example
  • Example#3985 - A custom View engine example
  • Example#3986 - Yaf_Dispatcher::setView example
  • Example#3987 - Yaf_Dispatcher::throwexception example
  • Example#3988 - Yaf_Dispatcher::throwexceptionexample
  • Example#3989 - Yaf_Config_Iniexample
  • Example#3990 - define action in a separate file
  • Example#3991 - Dummy_action.php
  • Example#3992 - Yaf_Controller_Abstract::forwardexample
  • Example#3993 - Yaf_Action_Abstract::executeexample
  • Example#3994 - Yaf_Action_Abstract::executeexample
  • Example#3995 - Yaf_View_Simple::assignexample
  • Example#3996 - templateexample
  • Example#3997 - Yaf_View_Simple::assignRefexample
  • Example#3998 - templateexample
  • Example#3999 - Yaf_View_Simple::clearexample
  • Example#4000 - Yaf_View_Simple::__constructorexample
  • Example#4001 - Yaf_View_Simple::__setexample
  • Example#4002 - Config example
  • Example#4003 - Register localnamespace
  • Example#4004 - Load class example
  • Example#4005 - Load namespace class example
  • Example#4006 - MVC class loading example
  • Example#4007 - MVC class distinctions
  • Example#4008 - MVC loading example
  • Example#4009 - Yaf_Loader::registerNamespaceexample
  • Example#4010 - Yaf_Loader::registerLocalNamespaceexample
  • Example#4011 - Yaf_Loader::registerNamespaceexample
  • Example#4012 - Plugin example
  • Example#4013 - Yaf_Plugin_Abstract::routerShutdownexample
  • Example#4014 - Yaf_Response_Abstract::appendBodyexample
  • Example#4015 - Yaf_Response_Abstract::getBodyexample
  • Example#4016 - Yaf_Response_Abstract::prependBodyexample
  • Example#4017 - Yaf_Response_Abstract::responseexample
  • Example#4018 - Yaf_Response_Abstract::setBodyexample
  • Example#4019 - Yaf_Route_Map::assembleexample
  • Example#4020 - Yaf_Route_Mapexample
  • Example#4021 - Yaf_Route_Mapexample
  • Example#4022 - Yaf_Route_Mapexample
  • Example#4023 - Yaf_Route_Regex::assembleexample
  • Example#4024 - Yaf_Route_Regexexample
  • Example#4025 - Yaf_Route_Regex(as of 2.3.0)example
  • Example#4026 - Yaf_Route_Regex and named capture ground(as of 2.3.0)example
  • Example#4027 - Yaf_Route_Regexexample
  • Example#4028 - Yaf_Route_Rewrite::assembleexample
  • Example#4029 - Yaf_Route_Rewriteexample
  • Example#4030 - Yaf_Route_Rewriteexample
  • Example#4031 - Yaf_Route_Rewrite(as of 2.3.0)example
  • Example#4032 - Rewrite rule for Apache
  • Example#4033 - Rewrite rule for Apache
  • Example#4034 - Rewrite rule for Lighttpd
  • Example#4035 - Rewrite rule for Nginx
  • Example#4036 - Yaf_Route_Static(default route)example
  • Example#4037 - application.iniexample
  • Example#4038 - Yaf_Dispatcher::autoConfigexample
  • Example#4039 - Yaf_Dispatcher::autoRenderexample
  • Example#4040 - Register some routes in Bootstrap
  • Example#4041 - plugin Dummy.php (under application.directory/plugins)
  • Example#4042 - Yaf_Route_Simple::assembleexample
  • Example#4043 - Yaf_Route_Simple::routeexample
  • Example#4044 - Yaf_Route_Simple::routeexample
  • Example#4045 - Yaf_Route_Static::assembleexample
  • Example#4046 - Yaf_Route_Static::routeexample
  • Example#4047 - Yaf_Route_Supervar::assemble example
  • Example#4048 - Yaf_Route_Supervarexample
  • Example#4049 - INI example
  • Example#4050 - INI sections example
  • Example#4051 - INIexample
  • Example#4052 - Taintexample
  • Example#4053 - Vector
  • Example#4054 - Map
  • Example#4055 - Ds\Collection::clear example
  • Example#4056 - Ds\Collection::copy example
  • Example#4057 - Ds\Collection::isEmpty example
  • Example#4058 - Ds\Collection::toArray example
  • Example#4059 - Ds\Hashable::hash example
  • Example#4060 - Ds\Sequence::allocate example
  • Example#4061 - Ds\Sequence::apply example
  • Example#4062 - Ds\Sequence::capacity example
  • Example#4063 - Ds\Sequence::contains example
  • Example#4064 - Ds\Sequence::filter example using callback function
  • Example#4065 - Ds\Sequence::filter example without a callback function
  • Example#4066 - Ds\Sequence::find example
  • Example#4067 - Ds\Sequence::first example
  • Example#4068 - Ds\Sequence::get example
  • Example#4069 - Ds\Sequence::get example using array syntax
  • Example#4070 - Ds\Sequence::insert example
  • Example#4071 - Ds\Sequence::join example using a separator string
  • Example#4072 - Ds\Sequence::join example without a separator string
  • Example#4073 - Ds\Sequence::last example
  • Example#4074 - Ds\Sequence::map example
  • Example#4075 - Ds\Sequence::merge example
  • Example#4076 - Ds\Sequence::pop example
  • Example#4077 - Ds\Sequence::push example
  • Example#4078 - Ds\Sequence::reduce with initial value example
  • Example#4079 - Ds\Sequence::reduce without an initial value example
  • Example#4080 - Ds\Sequence::remove example
  • Example#4081 - Ds\Sequence::reverse example
  • Example#4082 - Ds\Sequence::reversed example
  • Example#4083 - Ds\Sequence::rotate example
  • Example#4084 - Ds\Sequence::set example
  • Example#4085 - Ds\Sequence::set example using array syntax
  • Example#4086 - Ds\Sequence::shift example
  • Example#4087 - Ds\Sequence::slice example
  • Example#4088 - Ds\Sequence::sort example
  • Example#4089 - Ds\Sequence::sort example using a comparator
  • Example#4090 - Ds\Sequence::sorted example
  • Example#4091 - Ds\Sequence::sorted example using a comparator
  • Example#4092 - Ds\Sequence::sum integer example
  • Example#4093 - Ds\Sequence::sum float example
  • Example#4094 - Ds\Sequence::unshift example
  • Example#4095 - Ds\Vector::allocate example
  • Example#4096 - Ds\Vector::apply example
  • Example#4097 - Ds\Vector::capacity example
  • Example#4098 - Ds\Vector::clear example
  • Example#4099 - Ds\Vector::__construct example
  • Example#4100 - Ds\Vector::contains example
  • Example#4101 - Ds\Vector::copy example
  • Example#4102 - Ds\Vector::filter example using callback function
  • Example#4103 - Ds\Vector::filter example without a callback function
  • Example#4104 - Ds\Vector::find example
  • Example#4105 - Ds\Vector::first example
  • Example#4106 - Ds\Vector::get example
  • Example#4107 - Ds\Vector::get example using array syntax
  • Example#4108 - Ds\Vector::insert example
  • Example#4109 - Ds\Vector::isEmpty example
  • Example#4110 - Ds\Vector::join example using a separator string
  • Example#4111 - Ds\Vector::join example without a separator string
  • Example#4112 - Ds\Vector::last example
  • Example#4113 - Ds\Vector::map example
  • Example#4114 - Ds\Vector::merge example
  • Example#4115 - Ds\Vector::pop example
  • Example#4116 - Ds\Vector::push example
  • Example#4117 - Ds\Vector::reduce with initial value example
  • Example#4118 - Ds\Vector::reduce without an initial value example
  • Example#4119 - Ds\Vector::remove example
  • Example#4120 - Ds\Vector::reverse example
  • Example#4121 - Ds\Vector::reversed example
  • Example#4122 - Ds\Vector::rotate example
  • Example#4123 - Ds\Vector::set example
  • Example#4124 - Ds\Vector::set example using array syntax
  • Example#4125 - Ds\Vector::shift example
  • Example#4126 - Ds\Vector::slice example
  • Example#4127 - Ds\Vector::sort example
  • Example#4128 - Ds\Vector::sort example using a comparator
  • Example#4129 - Ds\Vector::sorted example
  • Example#4130 - Ds\Vector::sorted example using a comparator
  • Example#4131 - Ds\Vector::sum integer example
  • Example#4132 - Ds\Vector::sum float example
  • Example#4133 - Ds\Vector::toArray example
  • Example#4134 - Ds\Vector::unshift example
  • Example#4135 - Ds\Deque::allocate example
  • Example#4136 - Ds\Deque::apply example
  • Example#4137 - Ds\Deque::capacity example
  • Example#4138 - Ds\Deque::clear example
  • Example#4139 - Ds\Deque::__construct example
  • Example#4140 - Ds\Deque::contains example
  • Example#4141 - Ds\Deque::copy example
  • Example#4142 - Ds\Deque::filter example using callback function
  • Example#4143 - Ds\Deque::filter example without a callback function
  • Example#4144 - Ds\Deque::find example
  • Example#4145 - Ds\Deque::first example
  • Example#4146 - Ds\Deque::get example
  • Example#4147 - Ds\Deque::get example using array syntax
  • Example#4148 - Ds\Deque::insert example
  • Example#4149 - Ds\Deque::isEmpty example
  • Example#4150 - Ds\Deque::join example using a separator string
  • Example#4151 - Ds\Deque::join example without a separator string
  • Example#4152 - Ds\Deque::last example
  • Example#4153 - Ds\Deque::map example
  • Example#4154 - Ds\Deque::merge example
  • Example#4155 - Ds\Deque::pop example
  • Example#4156 - Ds\Deque::push example
  • Example#4157 - Ds\Deque::reduce with initial value example
  • Example#4158 - Ds\Deque::reduce without an initial value example
  • Example#4159 - Ds\Deque::remove example
  • Example#4160 - Ds\Deque::reverse example
  • Example#4161 - Ds\Deque::reversed example
  • Example#4162 - Ds\Deque::rotate example
  • Example#4163 - Ds\Deque::set example
  • Example#4164 - Ds\Deque::set example using array syntax
  • Example#4165 - Ds\Deque::shift example
  • Example#4166 - Ds\Deque::slice example
  • Example#4167 - Ds\Deque::sort example
  • Example#4168 - Ds\Deque::sort example using a comparator
  • Example#4169 - Ds\Deque::sorted example
  • Example#4170 - Ds\Deque::sorted example using a comparator
  • Example#4171 - Ds\Deque::sum integer example
  • Example#4172 - Ds\Deque::sum float example
  • Example#4173 - Ds\Deque::toArray example
  • Example#4174 - Ds\Deque::unshift example
  • Example#4175 - Ds\Map::allocate example
  • Example#4176 - Ds\Map::apply example
  • Example#4177 - Ds\Map::capacity example
  • Example#4178 - Ds\Map::clear example
  • Example#4179 - Ds\Map::__construct example
  • Example#4180 - Ds\Map::copy example
  • Example#4181 - Ds\Map::diff example
  • Example#4182 - Ds\Map::filter example using callback function
  • Example#4183 - Ds\Map::filter example without a callback function
  • Example#4184 - Ds\Map::first example
  • Example#4185 - Ds\Map::get example
  • Example#4186 - Ds\Map::get example using array syntax
  • Example#4187 - Ds\Map::hasKey example
  • Example#4188 - Ds\Map::hasValue example
  • Example#4189 - Ds\Map::intersect example
  • Example#4190 - Ds\Map::isEmpty example
  • Example#4191 - Ds\Map::keys example
  • Example#4192 - Ds\Map::ksort example
  • Example#4193 - Ds\Map::ksort example using a comparator
  • Example#4194 - Ds\Map::ksorted example
  • Example#4195 - Ds\Map::ksorted example using a comparator
  • Example#4196 - Ds\Map::last example
  • Example#4197 - Ds\Map::map example
  • Example#4198 - Ds\Map::merge example
  • Example#4199 - Ds\Map::pairs example
  • Example#4200 - Ds\Map::put example
  • Example#4201 - Ds\Map::put example using objects as keys
  • Example#4202 - Ds\Map::putAll example
  • Example#4203 - Ds\Map::reduce with initial value example
  • Example#4204 - Ds\Map::reduce without an initial value example
  • Example#4205 - Ds\Map::remove example
  • Example#4206 - Ds\Map::reverse example
  • Example#4207 - Ds\Map::reversed example
  • Example#4208 - Ds\Map::skip example
  • Example#4209 - Ds\Map::slice example
  • Example#4210 - Ds\Map::sort example
  • Example#4211 - Ds\Map::sort example using a comparator
  • Example#4212 - Ds\Map::sort example
  • Example#4213 - Ds\Map::sort example using a comparator
  • Example#4214 - Ds\Map::sum integer example
  • Example#4215 - Ds\Map::sum float example
  • Example#4216 - Ds\Map::toArray example
  • Example#4217 - Ds\Map::union example
  • Example#4218 - Ds\Map::values example
  • Example#4219 - Ds\Map::xor example
  • Example#4220 - Ds\Pair::clear example
  • Example#4221 - Ds\Pair::copy example
  • Example#4222 - Ds\Pair::isEmpty example
  • Example#4223 - Ds\Pair::toArray example
  • Example#4224 - Ds\Set::add example using integers
  • Example#4225 - Ds\Set::add example using objects
  • Example#4226 - Ds\Set::allocate example
  • Example#4227 - Ds\Set::capacity example
  • Example#4228 - Ds\Set::clear example
  • Example#4229 - Ds\Set::__construct example
  • Example#4230 - Ds\Set::contains example
  • Example#4231 - Ds\Set::copy example
  • Example#4232 - Ds\Set::diff example
  • Example#4233 - Ds\Set::filter example using callback function
  • Example#4234 - Ds\Set::filter example without a callback function
  • Example#4235 - Ds\Set::first example
  • Example#4236 - Ds\Set::get example
  • Example#4237 - Ds\Set::get example using array syntax
  • Example#4238 - Ds\Set::intersect example
  • Example#4239 - Ds\Set::isEmpty example
  • Example#4240 - Ds\Set::join example using a separator string
  • Example#4241 - Ds\Set::join example without a separator string
  • Example#4242 - Ds\Set::last example
  • Example#4243 - Ds\Set::merge example
  • Example#4244 - Ds\Set::reduce with initial value example
  • Example#4245 - Ds\Set::reduce without an initial value example
  • Example#4246 - Ds\Set::remove example
  • Example#4247 - Ds\Set::reverse example
  • Example#4248 - Ds\Set::reversed example
  • Example#4249 - Ds\Set::slice example
  • Example#4250 - Ds\Set::sort example
  • Example#4251 - Ds\Set::sort example using a comparator
  • Example#4252 - Ds\Set::sorted example
  • Example#4253 - Ds\Set::sorted example using a comparator
  • Example#4254 - Ds\Set::sum integer example
  • Example#4255 - Ds\Set::sum float example
  • Example#4256 - Ds\Set::toArray example
  • Example#4257 - Ds\Set::union example
  • Example#4258 - Ds\Set::xor example
  • Example#4259 - Ds\Stack::clear example
  • Example#4260 - Ds\Stack::__construct example
  • Example#4261 - Ds\Stack::copy example
  • Example#4262 - Ds\Stack::isEmpty example
  • Example#4263 - Ds\Stack::peek example
  • Example#4264 - Ds\Stack::pop example
  • Example#4265 - Ds\Stack::push example
  • Example#4266 - Ds\Stack::toArray example
  • Example#4267 - Ds\Queue::allocate example
  • Example#4268 - Ds\Queue::capacity example
  • Example#4269 - Ds\Queue::clear example
  • Example#4270 - Ds\Queue::__construct example
  • Example#4271 - Ds\Queue::copy example
  • Example#4272 - Ds\Queue::isEmpty example
  • Example#4273 - Ds\Queue::peek example
  • Example#4274 - Ds\Queue::pop example
  • Example#4275 - Ds\Queue::push example
  • Example#4276 - Ds\Queue::toArray example
  • Example#4277 - Ds\PriorityQueue::allocate example
  • Example#4278 - Ds\PriorityQueue::capacity example
  • Example#4279 - Ds\PriorityQueue::clear example
  • Example#4280 - Ds\PriorityQueue::__construct example
  • Example#4281 - Ds\PriorityQueue::copy example
  • Example#4282 - Ds\PriorityQueue::isEmpty example
  • Example#4283 - Ds\PriorityQueue::peek example
  • Example#4284 - Ds\PriorityQueue::pop example
  • Example#4285 - Ds\PriorityQueue::push example
  • Example#4286 - Ds\PriorityQueue::toArray example
  • Example#4287 - var_representation Examples
  • Example#4288 - Escaping control characters
  • Example#4289 - Exporting stdClass
  • Example#4290 - Exporting classes
  • Example#4291 - Using __set_state()
  • Example#4292 - - example.com ana sayfasını bir dosyaya aktarmak amacıyla cURL işlevlerinin kullanımı
  • Example#4293 - - Yeni bir cURL oturumunun ilklendirilmesi ve bir HTML sayfasının alınması
  • Example#4294 - - Bir cURL tanıtıcısının kopyalanması
  • Example#4295 - - curl_errno örneği
  • Example#4296 - - curl_error örneği
  • Example#4297 - - curl_escape örneği
  • Example#4298 - - Yeni bir cURL oturumunun ilklendirilmesi ve bir HTML sayfasının alınması
  • Example#4299 - - curl_getinfo örneği
  • Example#4300 - - seçenek bağımsız değişkenli curl_getinfo örneği
  • Example#4301 - - Yeni bir cURL oturumunun ilklendirilmesi ve bir HTML sayfasının alınması
  • Example#4302 - - curl_multi_add_handle örneği
  • Example#4303 - - curl_multi_close örneği
  • Example#4304 - - curl_multi_exec örneği
  • Example#4305 - - curl_multi_info_read örneği
  • Example#4306 - - curl_multi_init örneği
  • Example#4307 - - curl_multi_strerror örneği
  • Example#4308 - - curl_reset örneği
  • Example#4309 - - Yeni bir cURL oturumunun ilklendirilmesi ve bir HTML sayfasının alınması
  • Example#4310 - - Yeni bir cURL oturumunun ilklendirilmesi ve bir HTML sayfasının alınması
  • Example#4311 - - curl_share_setopt örneği
  • Example#4312 - - curl_share_init örneği
  • Example#4313 - - curl_share_setopt örneği
  • Example#4314 - - curl_errno örneği
  • Example#4315 - - curl_escape örneği
  • Example#4316 - curl_upkeep example
  • Example#4317 - - curl_version örneği
  • Example#4318 - - CURLFile::__construct örneği
  • Example#4319 - -CURLFile::__construct çok sayıda dosya yükleme örneği
  • Example#4320 - CURLStringFile::__construct example
  • Example#4321 - Simple HTTP client
  • Example#4322 - HTTP client using asynchronous DNS resolver
  • Example#4323 - Echo server
  • Example#4324 - SSL echo server
  • Example#4325 - Signal handler
  • Example#4326 - Use libevent's loop to process requests of `eio' extension
  • Example#4327 - Miscellaneous
  • Example#4328 - Simple HTTP server
  • Example#4329 - Simple HTTPS server
  • Example#4330 - OpenSSL connection
  • Example#4331 - EventHttpConnection::makeRequest example
  • Example#4332 - Connection listener based on a UNIX domain socket
  • Example#4333 - Simple SMTP server
  • Example#4334 - Handling SIGTERM signal
  • Example#4335 - Adding a custom signal
  • Example#4336 - Adding a timer
  • Example#4337 - EventBase::getFeatures example
  • Example#4338 - EventBase::getMethod example
  • Example#4339 - EventBuffer::search example
  • Example#4340 - EventBufferEvent::connect example
  • Example#4341 - Connect to UNIX domain socket which presumably is served by a server, read response from the server and output it to the console
  • Example#4342 - EventBufferEvent::connectHost example
  • Example#4343 - Buffer event's read callback
  • Example#4344 - EventBufferEvent::getOutput example
  • Example#4345 - EventBufferEvent::sslError example
  • Example#4346 - Simple SMTP server
  • Example#4347 - EventConfig::avoidMethod example
  • Example#4348 - EventConfig::__construct example
  • Example#4349 - EventConfig::requireFeatures example
  • Example#4350 - EventHttp::accept example
  • Example#4351 - EventHttp::addServerAlias example
  • Example#4352 - EventHttp::bind example
  • Example#4353 - Simple HTTP server
  • Example#4354 - EventHttp::setCallback example
  • Example#4355 - EventHttp::setDefaultCallback example
  • Example#4356 - EventHttpConnection::makeRequest example
  • Example#4357 - EventHttpConnection::setCloseCallback example
  • Example#4358 - EventHttpRequest::__construct example
  • Example#4359 - EventHttpRequest::sendError example
  • Example#4360 - EventListener::__construct example
  • Example#4361 - EventSslContext::__construct example
  • Example#4362 - - FTP örneği
  • Example#4363 - - ftp_alloc örneği
  • Example#4364 - - ftp_cdup örneği
  • Example#4365 - - ftp_chdir örneği
  • Example#4366 - - ftp_chmod örneği
  • Example#4367 - - ftp_close örneği
  • Example#4368 - - ftp_connect örneği
  • Example#4369 - - ftp_delete örneği
  • Example#4370 - - ftp_exec örneği
  • Example#4371 - - ftp_fget örneği
  • Example#4372 - - ftp_fput örneği
  • Example#4373 - - ftp_get örneği
  • Example#4374 - - ftp_get_option örneği
  • Example#4375 - - ftp_login örneği
  • Example#4376 - - ftp_mdtm örneği
  • Example#4377 - - ftp_mkdir örneği
  • Example#4378 - - ftp_mlsd örneği
  • Example#4379 - - ftp_nb_continue örneği
  • Example#4380 - - ftp_nb_fget örneği
  • Example#4381 - - ftp_nb_fput örneği
  • Example#4382 - - ftp_nb_get örneği
  • Example#4383 - - ftp_nb_get ile indirmeyi devam ettirmek
  • Example#4384 - - ftp_nb_get ile indirmeyi yeni bir dosyanın 100. baytından sürdürmek
  • Example#4385 - - ftp_nb_put örneği
  • Example#4386 - - ftp_nb_put ile yüklemeyi devam ettirmek
  • Example#4387 - - ftp_nlist örneği
  • Example#4388 - - ftp_pasv örneği
  • Example#4389 - - ftp_put örneği
  • Example#4390 - - ftp_pwd örneği
  • Example#4391 - - Bir FTP sunucusuna ftp_raw kullanarak el yordamıyla oturum açmak
  • Example#4392 - - ftp_rawlist örneği
  • Example#4393 - - ftp_rename örneği
  • Example#4394 - - ftp_rmdir örneği
  • Example#4395 - - ftp_set_option örneği
  • Example#4396 - - Bir FTP sunucusuna bir SITE komutu göndermek
  • Example#4397 - - ftp_size örneği
  • Example#4398 - - ftp_ssl_connect örneği
  • Example#4399 - - ftp_systype örneği
  • Example#4400 - Basic Gearman client and worker
  • Example#4401 - Basic Gearman client and worker, background
  • Example#4402 - Basic Gearman client and worker, submitting tasks
  • Example#4403 - Adding two job servers
  • Example#4404 - Add two job servers
  • Example#4405 - Basic submission of two tasks
  • Example#4406 - Basic submission of two tasks with passing application context
  • Example#4407 - Two tasks, one background and one not
  • Example#4408 - A high priority task along with two normal tasks
  • Example#4409 - A low priority task along with two normal tasks
  • Example#4410 - Monitor completion of multiple background tasks
  • Example#4411 - Simple job submission with immediate return
  • Example#4412 - Submitting a job and retrieving incremental status
  • Example#4413 - Submit and monitor a background job
  • Example#4414 - Simple job submission with immediate return
  • Example#4415 - Submitting a job and retrieving incremental status
  • Example#4416 - Get the status of a long running job
  • Example#4417 - Monitor the status of a long running background job
  • Example#4418 - Simple worker making use of extra application context data
  • Example#4419 - Add alternate Gearman servers
  • Example#4420 - Add two job servers
  • Example#4421 - GearmanWorker::setId example
  • Example#4422 - A simple worker with a 5 second timeout
  • Example#4423 - Running worker in non-blocking mode
  • Example#4424 - GearmanWorker::work example
  • Example#4425 - Testing support for paged result control
  • Example#4426 - LDAP search example
  • Example#4427 - Bind with policy information
  • Example#4428 - Modify description only if it's not empty
  • Example#4429 - Read some values before deletion
  • Example#4430 - Delete a reference
  • Example#4431 - Use pagination for a search
  • Example#4432 - Complete example with authenticated bind
  • Example#4433 - Using LDAP Bind
  • Example#4434 - Using LDAP Bind Anonymously
  • Example#4435 - Complete example of password check
  • Example#4436 - Example of connecting to LDAP server.
  • Example#4437 - Example of connecting securely to LDAP server.
  • Example#4438 - LDAP pagination
  • Example#4439 - LDAP pagination
  • Example#4440 - ldap_count_entries example
  • Example#4441 - Enumerating all LDAP error messages
  • Example#4442 - Generating and catching an error
  • Example#4443 - Searching for an email address
  • Example#4444 - Whoami extended operation
  • Example#4445 - PASSWD extended operation
  • Example#4446 - Show the list of attributes held for a particular directory entry
  • Example#4447 - Check protocol version
  • Example#4448 - List all values of the "mail" attribute for a directory entry
  • Example#4449 - Produce a list of all organizational units of an organization
  • Example#4450 - Add a telephone number to a contact
  • Example#4451 - Rename a user
  • Example#4452 - Add two e-mail addresses to a user
  • Example#4453 - Change a user's password
  • Example#4454 - Change a user's password (Active Directory)
  • Example#4455 - ldap_parse_result example
  • Example#4456 - LDAP search
  • Example#4457 - Set protocol version
  • Example#4458 - Set server controls
  • Example#4459 - LDAP sort
  • Example#4460 - memcache extension overview example
  • Example#4461 - Using memcache session handler
  • Example#4462 - Memcache::add example
  • Example#4463 - Memcache::addServer example
  • Example#4464 - Memcache::close example
  • Example#4465 - Memcache::connect example
  • Example#4466 - Memcache::decrement example
  • Example#4467 - Memcache::delete example
  • Example#4468 - Memcache::flush example
  • Example#4469 - Memcache::get example
  • Example#4470 - Memcache::getExtendedStats example
  • Example#4471 - Memcache::getServerStatus example
  • Example#4472 - Memcache::getVersion example
  • Example#4473 - Memcache::increment example
  • Example#4474 - Memcache::pconnect example
  • Example#4475 - Memcache::replace example
  • Example#4476 - Memcache::set example
  • Example#4477 - Memcache::set example
  • Example#4478 - Memcache::setCompressThreshold example
  • Example#4479 - Memcache::setServerParams example
  • Example#4480 - Result callback example
  • Example#4481 - Read-through callback example
  • Example#4482 - Memcached::addServer example
  • Example#4483 - Memcached::addServers example
  • Example#4484 - Memcached::append example
  • Example#4485 - Memcached::cas example
  • Example#4486 - Creating a Memcached object
  • Example#4487 - Memcached::decrement example
  • Example#4488 - Memcached::delete example
  • Example#4489 - Memcached::fetch example
  • Example#4490 - Memcached::getDelayed example
  • Example#4491 - Memcached::flush example
  • Example#4492 - Memcached::get example #1
  • Example#4493 - Memcached::get example #2
  • Example#4494 - Memcached::getDelayed example
  • Example#4495 - Memcached::getMulti example for Memcached v3
  • Example#4496 - Memcached::getMulti example for Memcached v1 and v2
  • Example#4497 - Memcached::GET_PRESERVE_ORDER example for Memcached v3
  • Example#4498 - Memcached::GET_PRESERVE_ORDER example for Memcached v1 and v2
  • Example#4499 - Retrieving Memcached options
  • Example#4500 - Memcached::getResultCode example
  • Example#4501 - Memcached::getResultMessage example
  • Example#4502 - Memcached::getServerByKey example
  • Example#4503 - Memcached::getServerList example
  • Example#4504 - Memcached::getStats example
  • Example#4505 - Memcached::getVersion example
  • Example#4506 - Memcached::increment example
  • Example#4507 - Memcached::prepend example
  • Example#4508 - Memcached::set example
  • Example#4509 - Memcached::setByKey example
  • Example#4510 - Memcached::setMulti example
  • Example#4511 - Setting a Memcached option
  • Example#4512 - Setting Memcached options
  • Example#4513 - mqseries_back example
  • Example#4514 - mqseries_begin example
  • Example#4515 - mqseries_close example
  • Example#4516 - mqseries_cmit example
  • Example#4517 - mqseries_conn example
  • Example#4518 - mqseries_connx example
  • Example#4519 - mqseries_connx example using SSL connection & OCSP Responder URL
  • Example#4520 - mqseries_disc example
  • Example#4521 - mqseries_get example
  • Example#4522 - mqseries_inq example
  • Example#4523 - mqseries_open example
  • Example#4524 - mqseries_put example
  • Example#4525 - mqseries_strerror example
  • Example#4526 - - dns_get_record kullanımı
  • Example#4527 - - dns_get_record ve DNS_ANY kullanımı
  • Example#4528 - - fsockopen örneği
  • Example#4529 - - UDP bağlantısı kullanımı
  • Example#4530 - - gethostbyaddr örnek
  • Example#4531 - - gethostbyname örneği
  • Example#4532 - - gethostbynamel örneği
  • Example#4533 - - gethostname örneği
  • Example#4534 - - getprotobyname örneği
  • Example#4535 - - getservbyname örneği
  • Example#4536 - - İndirme söyleşisi
  • Example#4537 - - Yönergelerin önbelleklenmesi
  • Example#4538 - - header_register_callback örneği
  • Example#4539 - - Belli bir başlığı silmek
  • Example#4540 - - Atanmış tüm başlıkları silmek
  • Example#4541 - - headers_list kullanım örneği
  • Example#4542 - - headers_sent kullanım örnekleri
  • Example#4543 - - Sunucu ortamında http_response_code kullanımı
  • Example#4544 - - CLI ortamında http_response_code kullanımı
  • Example#4545 - - inet_ntop örneği
  • Example#4546 - - inet_pton örneği
  • Example#4547 - - ip2long Örneği
  • Example#4548 - - Bir IP adresinin gösterilmesi
  • Example#4549 - - setcookie gönderim örneği
  • Example#4550 - - setcookie silme örneği
  • Example#4551 - - setcookie ve diziler
  • Example#4552 - - syslog kullanımı
  • Example#4553 - Procedural usage of rrd
  • Example#4554 - OO usage of rrd
  • Example#4555 - RRDGraph::setOptions example
  • Example#4556 - Set multiple color options
  • Example#4557 - RRDUpdater::update examples
  • Example#4558 - Fetch instrumented calls
  • Example#4559 - Fetch the list of functions scoutapm will instrument
  • Example#4560 - snmp_get_quick_print example
  • Example#4561 - Using snmp_get_valueretrieval
  • Example#4562 - Using snmp_read_mib
  • Example#4563 - Using snmp_set_enum_print
  • Example#4564 - Using snmprealwalk
  • Example#4565 - Using snmp_set_quick_print
  • Example#4566 - Using snmp_set_valueretrieval
  • Example#4567 - Using snmp2_get
  • Example#4568 - Using snmp2_get_next
  • Example#4569 - Using snmp2_real_walk
  • Example#4570 - Using snmp2_set
  • Example#4571 - Using snmp2_set for setting BITS SNMP object id
  • Example#4572 - snmp2_walk Example
  • Example#4573 - Using snmp3_get
  • Example#4574 - Using snmp3_getnext
  • Example#4575 - Using snmp3_real_walk
  • Example#4576 - Using snmp3_set
  • Example#4577 - Using snmp3_set for setting BITS SNMP object id
  • Example#4578 - snmp3_walk Example
  • Example#4579 - Using snmpget
  • Example#4580 - Using snmpgetnext
  • Example#4581 - Using snmprealwalk
  • Example#4582 - Using snmpset
  • Example#4583 - Using snmpset for setting BITS SNMP object id
  • Example#4584 - snmpwalk Example
  • Example#4585 - snmpwalkoid Example
  • Example#4586 - SNMP::close example
  • Example#4587 - Fetching sysLocation
  • Example#4588 - Single SNMP object
  • Example#4589 - Multiple SNMP objects
  • Example#4590 - SNMP::getErrno example
  • Example#4591 - SNMP::getError example
  • Example#4592 - Single SNMP object
  • Example#4593 - Miltiple SNMP objects
  • Example#4594 - Set single SNMP object id
  • Example#4595 - Set multiple values using single SNMP::set call
  • Example#4596 - Using SNMP::set for setting BITS SNMP object id
  • Example#4597 - SNMP::setSecurity example
  • Example#4598 - SNMP::walk example
  • Example#4599 - suffixAsKey example
  • Example#4600 - - Soket örneği: Basit bir TCP/IP sunucu
  • Example#4601 - - Soket örneği: Basit TCP/IP istemci
  • Example#4602 - Using socket_atmark to set the source address
  • Example#4603 - - Kaynak adresini belirtmek için socket_bind kullanımı
  • Example#4604 - - socket_create_pair örneği
  • Example#4605 - -socket_create_pair IPC örneği
  • Example#4606 - - socket_get_option örneği
  • Example#4607 - socket_import_stream example
  • Example#4608 - - socket_last_error örneği
  • Example#4609 - - socket_recv örneği
  • Example#4610 - - socket_recvfrom örneği
  • Example#4611 - - socket_select ile null kullanımı
  • Example#4612 - - socket_select sonucunu anlamak
  • Example#4613 - - socket_select örneği
  • Example#4614 - - socket_sendto örneği
  • Example#4615 - - socket_set_block örneği
  • Example#4616 - - socket_set_nonblock örneği
  • Example#4617 - - socket_set_option örneği
  • Example#4618 - - socket_strerror örneği
  • Example#4619 - Authenticating with a ssh agent
  • Example#4620 - - Genel konak anahtarlı kimlik doğrulama
  • Example#4621 - - Kimlik doğrulama yöntemlerinin öğrenilmesi
  • Example#4622 - - Parolalı kimlik doğrulama
  • Example#4623 - - Genel anahtarlı kimlik doğrulama
  • Example#4624 - - ssh2_connect örneği
  • Example#4625 - - Karşıda bir komut çalıştırmak
  • Example#4626 - - Bir kabuk açıp kabukla ilgili standart hataya erişmek
  • Example#4627 - - Parmakizini karşılaştırmak
  • Example#4628 - - Müzakere yöntemlerini öğrenmek
  • Example#4629 - - ssh2_publickey_add örneği
  • Example#4630 - - ssh2_publickey_list örneği
  • Example#4631 - - SCP üzerinden dosya indirmek
  • Example#4632 - - SCP üzerinden karşıya dosya yükleme
  • Example#4633 - - SFTP üzerinden bir dosya açmak
  • Example#4634 - Changing the mode of a file on a remote server
  • Example#4635 - - SFTP üzerinden bir sembolik bağın durum bilgisini almak
  • Example#4636 - - Karşıda bir dizin oluşturmak
  • Example#4637 - - Bir sembolik bağı okumak
  • Example#4638 - - Bir dosya yolunun çözümlenmesi
  • Example#4639 - - SFTP üzerinden bır dosyanın ismini değiştirmek
  • Example#4640 - - Uzak sunucudan bir dizini silmek
  • Example#4641 - - SFTP üzerinden bir dosyanın durum bilgisini almak
  • Example#4642 - - Karşıya bir sembolik bağ oluşturmak
  • Example#4643 - - Karşıdan bir dosya silmek
  • Example#4644 - - Etkileşimli kabuk isteği
  • Example#4645 - - Belli bir konağa bir tünel açmak
  • Example#4646 - Nesne yönelimli kullanım
  • Example#4647 - Yordamsal kullanım
  • Example#4648 - stomp_connect_error example
  • Example#4649 - stomp_version example
  • Example#4650 - Nesne yönelimli kullanım
  • Example#4651 - Yordamsal kullanım
  • Example#4652 - Nesne yönelimli kullanım
  • Example#4653 - Yordamsal kullanım
  • Example#4654 - Nesne yönelimli kullanım
  • Example#4655 - Yordamsal kullanım
  • Example#4656 - Nesne yönelimli kullanım
  • Example#4657 - Yordamsal kullanım
  • Example#4658 - Nesne yönelimli kullanım
  • Example#4659 - Yordamsal kullanım
  • Example#4660 - Nesne yönelimli kullanım
  • Example#4661 - Yordamsal kullanım
  • Example#4662 - Nesne yönelimli kullanım
  • Example#4663 - Yordamsal kullanım
  • Example#4664 - Nesne yönelimli kullanım
  • Example#4665 - Yordamsal kullanım
  • Example#4666 - Nesne yönelimli kullanım
  • Example#4667 - Yordamsal kullanım
  • Example#4668 - Train from array
  • Example#4669 - Train from a file
  • Example#4670 - svn_add example
  • Example#4671 - Default authentication example
  • Example#4672 - svn_blame example
  • Example#4673 - Basic example
  • Example#4674 - Basic example
  • Example#4675 - Basic example
  • Example#4676 - Basic example
  • Example#4677 - Basic example
  • Example#4678 - Basic example
  • Example#4679 - Diffing two revisions of a repository path
  • Example#4680 - Portably diffing two local files
  • Example#4681 - svn_export example
  • Example#4682 - Basic example
  • Example#4683 - svn_log example
  • Example#4684 - svn_ls example
  • Example#4685 - Basic example
  • Example#4686 - Basic example
  • Example#4687 - - localhost'tan tüm bağlantıları yasaklamak
  • Example#4688 - Ban an URL
  • Example#4689 - Get statistic snapshot
  • Example#4690 - Read varnish shared memory log
  • Example#4691 - VarnishAdmin::__construct example
  • Example#4692 - YAZ kullanarak paralel arama
  • Example#4693 - - CCL yapılandırması
  • Example#4694 - - CCL çözümlemesi
  • Example#4695 - - Kayıt Güncelleme
  • Example#4696 - - GRS-1 kaydı için bir dizi
  • Example#4697 - - MARCXML ile çalışma
  • Example#4698 - - Başlıkları tarayan PHP işlevi
  • Example#4699 - - Sorgu örnekleri - Aşağıdaki gibi basit ifadeleri aratabilirsiniz
  • Example#4700 - - Sıralama kuralları
  • Example#4701 - A ZMQContext example
  • Example#4702 - A ZMQContext example
  • Example#4703 - A ZMQContext example
  • Example#4704 - A ZMQSocket example
  • Example#4705 - A send/recv example
  • Example#4706 - A ZMQPoll example
  • Example#4707 - zookeeper_dispatch example #1
  • Example#4708 - zookeeper_dispatch example #2
  • Example#4709 - Zookeeper::addAuth example
  • Example#4710 - Zookeeper::create example
  • Example#4711 - Zookeeper::delete example
  • Example#4712 - Zookeeper::exists example
  • Example#4713 - Zookeeper::get example
  • Example#4714 - Zookeeper::get stat example
  • Example#4715 - Zookeeper::getAcl example
  • Example#4716 - Zookeeper::getChildren example
  • Example#4717 - Zookeeper::set example
  • Example#4718 - Zookeeper::setAcl example
  • Example#4719 - Zookeeper::setDebugLevel example
  • Example#4720 - ZookeeperConfig::add example
  • Example#4721 - ZookeeperConfig::get example
  • Example#4722 - ZookeeperConfig::remove example
  • Example#4723 - ZookeeperConfig::set example
  • Example#4724 - solr_get_version example
  • Example#4725 - Contents of the BootStrap file
  • Example#4726 - Adding a document to the index
  • Example#4727 - Merging one document into another document
  • Example#4728 - Searching for documents - SolrObject responses
  • Example#4729 - Searching for documents - SolrDocument responses
  • Example#4730 - Simple TermsComponent example - basic
  • Example#4731 - Simple TermsComponent example - using a prefix
  • Example#4732 - Simple TermsComponent example - specifying a minimum frequency
  • Example#4733 - Simple Facet Example
  • Example#4734 - Simple Facet Example - with optional field override for mincount
  • Example#4735 - Facet Date Example
  • Example#4736 - Connecting to SSL-Enabled Server
  • Example#4737 - Collapsing a SolrQuery
  • Example#4738 - Solr Real Time Get (RTG) example SolrClient::getById
  • Example#4739 - SolrInputDocument::addChildDocument example
  • Example#4740 - SolrInputDocument::addChildDocuments example
  • Example#4741 - SolrDocument::toArray example
  • Example#4742 - SolrObject::__construct example
  • Example#4743 - SolrObject::offsetUnset example
  • Example#4744 - SolrClient::addDocument example
  • Example#4745 - SolrClient::addDocument example 2
  • Example#4746 - SolrClient::addDocuments example
  • Example#4747 - SolrClient::__construct example
  • Example#4748 - SolrQuery::deleteByQuery example
  • Example#4749 - SolrClient::getById example
  • Example#4750 - SolrClient::getByIds example
  • Example#4751 - SolrClient::ping example
  • Example#4752 - SolrClient::query example
  • Example#4753 - SolrClient::request example
  • Example#4754 - SolrClient::setResponseWriter example
  • Example#4755 - SolrParams::setParam example
  • Example#4756 - SolrQuery::addFacetField example
  • Example#4757 - SolrQuery::addFacetField example
  • Example#4758 - SolrQuery::addFilterQuery example
  • Example#4759 - SolrQuery::addGroupSortField example
  • Example#4760 - SolrQuery::collapse example
  • Example#4761 - SolrQuery::setExpand example
  • Example#4762 - SolrDisMaxQuery::addBigramPhraseField example
  • Example#4763 - SolrDisMaxQuery::addBoostQuery example
  • Example#4764 - SolrDisMaxQuery::addPhraseField example
  • Example#4765 - SolrDisMaxQuery::addQueryField example
  • Example#4766 - SolrDisMaxQuery::addTrigramPhraseField example
  • Example#4767 - SolrDisMaxQuery::addUserField example
  • Example#4768 - SolrDisMaxQuery::__construct example
  • Example#4769 - SolrDisMaxQuery::removeBigramPhraseField example
  • Example#4770 - SolrDisMaxQuery::removeBoostQuery example
  • Example#4771 - SolrDisMaxQuery::removePhraseField example
  • Example#4772 - SolrDisMaxQuery::removeQueryField example
  • Example#4773 - SolrDisMaxQuery::removeTrigramPhraseField example
  • Example#4774 - SolrDisMaxQuery::removeUserField example
  • Example#4775 - SolrDisMaxQuery::setBigramPhraseFields example
  • Example#4776 - SolrDisMaxQuery::setBigramPhraseSlop example
  • Example#4777 - SolrDisMaxQuery::setBoostFunction example
  • Example#4778 - SolrDisMaxQuery::setBoostQuery example
  • Example#4779 - SolrDisMaxQuery::setMinimumMatch example
  • Example#4780 - SolrDisMaxQuery::setPhraseFields example
  • Example#4781 - SolrDisMaxQuery::setPhraseSlop example
  • Example#4782 - SolrDisMaxQuery::setQueryAlt example
  • Example#4783 - SolrDisMaxQuery::setQueryPhraseSlop example
  • Example#4784 - SolrDisMaxQuery::setTieBreaker example
  • Example#4785 - SolrDisMaxQuery::setTrigramPhraseFields example
  • Example#4786 - SolrDisMaxQuery::setTrigramPhraseSlop example
  • Example#4787 - SolrDisMaxQuery::setUserFields example
  • Example#4788 - SolrDisMaxQuery::useDisMaxQueryParser example
  • Example#4789 - SolrDisMaxQuery::useEDisMaxQueryParser example
  • Example#4790 - SolrCollapseFunction::__construct example
  • Example#4791 - SolrCollapseFunction::setHint example
  • Example#4792 - SolrCollapseFunction::setMax example
  • Example#4793 - - .htaccess kullanarak PHP yorumlamasının bir dizinde kapatılması
  • Example#4794 - - apache_get_modules örneği
  • Example#4795 - - apache_get_version örneği
  • Example#4796 - - apache_getenv örneği
  • Example#4797 - - apache_lookup_uri örneği
  • Example#4798 - PHP ve Perl arasında bilgi aktarımı
  • Example#4799 - - access.log dosyasındaki oturum değerleri
  • Example#4800 - - apache_request_headers örneği
  • Example#4801 - - apache_response_headers örneği
  • Example#4802 - - apache_setenv ile bir Apache ortam değişkenini atamak
  • Example#4803 - - getallheaders örneği
  • Example#4804 - - Bir değişkeni $_SESSION ile kayıt altına almak
  • Example#4805 - - $_SESSION ile bir değişkeni tanımsız yapmak
  • Example#4806 - - Tek bir kullanıcının sayfa erişimlerinin sayılması
  • Example#4807 - - Örnek bilgi
  • Example#4808 - - session_cache_expire örneği
  • Example#4809 - - session_cache_limiter örneği
  • Example#4810 - - session_create_id ile session_regenerate_id örneği
  • Example#4811 - - Bir oturumun $_SESSION ile yokedilmesi
  • Example#4812 - - cron gibi bir görev yöneticisi ile session_gc kullanımı
  • Example#4813 - - Kullanıcı erişimli betik ile session_gc kullanımı
  • Example#4814 - - session_name örneği
  • Example#4815 - - session_regenerate_id örneği
  • Example#4816 - - session_regenerate_id ile oturum kaybını önlemek
  • Example#4817 - - Özel oturum işleyici
  • Example#4818 - - sayfa1.php
  • Example#4819 - - sayfa2.php
  • Example#4820 - - Çerez ömrünü değiştirmek
  • Example#4821 - - Oturumu okuyup kapatmak
  • Example#4822 - - Dahili PHP oturum kaydetme işleyicilere şifreleme eklemek için SessionHandler kullanımı
  • Example#4823 - - SessionHandlerInterface kullanım örneği
  • Example#4824 - Tokenize comma separated integer list
  • Example#4825 - Tokenize assign statement
  • Example#4826 - Simple calculator
  • Example#4827 - Parse words out from a sentence
  • Example#4828 - - Geçerli şablon örnekleri
  • Example#4829 - - Geçersiz şablon örnekleri
  • Example#4830 - PCRE şablonunda açıklama kullanımı
  • Example#4831 - - preg_filter ile preg_replace işlevini karşılaştırma örneği
  • Example#4832 - - preg_grep örneği
  • Example#4833 - - preg_last_error örneği
  • Example#4834 - - preg_last_error_msg örneği
  • Example#4835 - - Metin içinde "php" dizgesini bulmak
  • Example#4836 - - "cebir" sözcüğünü bulmak
  • Example#4837 - - Bir adresten alan ismini çekip almak
  • Example#4838 - - İsimli alt şablon kullanımı
  • Example#4839 - - Bir metinden telefon numaralarının toplanması
  • Example#4840 - - HTML etiketlerini bulmak (tamahkarca)
  • Example#4841 - İsimli alt şablon kullanımı
  • Example#4842 - - preg_quote örneği
  • Example#4843 - - Bir metnin içindeki bir kelimeyi vurgulamak
  • Example#4844 - - Ardından bir sayı gelen geriye gönderim kullanımı
  • Example#4845 - - preg_replace ile indisli dizi kullanımı
  • Example#4846 - - Çeşitli değerlerin değiştirilmesi
  • Example#4847 - - Boşluk ayıklama
  • Example#4848 - - değişiklik_sayısı bağımsız değişkeninin kullanımı
  • Example#4849 - - preg_replace_callback ve anonim işlev
  • Example#4850 - - 1. preg_replace_callback örneği
  • Example#4851 - - 2. preg_replace_callback örneği
  • Example#4852 - - preg_replace_callback_array örneği
  • Example#4853 - - preg_split örneği
  • Example#4854 - - Bir dizgeyi karakterlerine bölmek
  • Example#4855 - - Bir dizgeyi sözcüklerine ayırıp başlangıçlarıyla döndürmek
  • Example#4856 - - addcslashes örneği
  • Example#4857 - - addslashes örneği
  • Example#4858 - - bin2hex örneği
  • Example#4859 - - chr örneği
  • Example#4860 - - Taşma davranışı
  • Example#4861 - - Bir UTF-8 dizgeyi bayt bayt oluşturmak
  • Example#4862 - - chunk_split örneği
  • Example#4863 - - convert_uudecode örneği
  • Example#4864 - - convert_uuencode örneği
  • Example#4865 - - count_chars örneği
  • Example#4866 - - Bir crc32 sağlamasının gösterilmesi
  • Example#4867 - - crypt örnekleri
  • Example#4868 - - echo örnekleri
  • Example#4869 -
  • Example#4870 - - explode örneği
  • Example#4871 - explode return examples
  • Example#4872 - - sınır bağımsız değişkeni örnekleri
  • Example#4873 - - fprintf: Sıfır dolgulu tamsayılar
  • Example#4874 - - fprintf: para biçemleme
  • Example#4875 - - Dönüşüm tablosu örneği
  • Example#4876 - - hex2bin örneği
  • Example#4877 - - HTML öğelerinin karakterlere dönüştürülmesi
  • Example#4878 - - htmlentities örneği
  • Example#4879 - - ENT_IGNORE kullanımı
  • Example#4880 - - htmlspecialchars örneği
  • Example#4881 - - htmlspecialchars_decode örneği
  • Example#4882 - - implode örneği
  • Example#4883 - - lcfirst örneği
  • Example#4884 - - levenshtein örneği
  • Example#4885 - - localeconv örneği
  • Example#4886 - - ltrim örneği
  • Example#4887 - - md5 örneği
  • Example#4888 - - md5_fileörneği
  • Example#4889 - - metaphone örneği
  • Example#4890 - - azami_ses_karakteri_sayısı kullanımı
  • Example#4891 - - azami_ses_karakteri_sayısı kullanımı örneği
  • Example#4892 - - money_format örneği
  • Example#4893 - - nl_langinfo örneği
  • Example#4894 - - nl2br örneği
  • Example#4895 - - xhtml bağımsız değişkeni kullanımı
  • Example#4896 - - Çeşitli satırsonu ayraçları
  • Example#4897 - - number_format örneği
  • Example#4898 - - ord örneği
  • Example#4899 - - Bir UTF-8 dizgenin baytlarının tek tek incelenmesi
  • Example#4900 - - parse_str kullanımı
  • Example#4901 - - parse_str ve isim uyarlama
  • Example#4902 - - print örnekleri
  • Example#4903 -
  • Example#4904 -
  • Example#4905 - - printf: çeşitli örnekler
  • Example#4906 - - printf: dizge belirteçleri
  • Example#4907 - - quoted_printable_decode örneği
  • Example#4908 - - quoted_printable_encode örneği
  • Example#4909 - - quotemeta örneği
  • Example#4910 - - rtrim örneği
  • Example#4911 - - setlocale örnekleri
  • Example#4912 - - Windows için setlocale örnekleri
  • Example#4913 - - sha1 örneği
  • Example#4914 - - sha1_file örneği
  • Example#4915 - - similar_text bağımsız değişken takaslama örneği
  • Example#4916 - - soundex örnekleri
  • Example#4917 - - Bağımsız değişken takaslama
  • Example#4918 - - Dolgu karakteri belirtmek
  • Example#4919 - - Konum belirteçlerini diğer belirteçlerle birlikte kullanmak
  • Example#4920 - - sprintf ve sıfır dolgulu tamsayılar
  • Example#4921 - - sprintf ve para biçemleme
  • Example#4922 - - sprintf ve bilimsel gösterim
  • Example#4923 - - sscanf örneği
  • Example#4924 - - Seçimlik bağımsız değişkenlerle sscanf kullanımı
  • Example#4925 - - Boş dizge '' kullanımı
  • Example#4926 - - Harf büyüklüğüne duyarlılık
  • Example#4927 - Basic str_decrement example
  • Example#4928 - str_decrement example with a carry
  • Example#4929 - - Boş dizge '' kullanımı
  • Example#4930 - - Harf büyüklüğüne duyarlılık
  • Example#4931 - - str_getcsv örneği
  • Example#4932 - - Boş dizgeli str_getcsv örneği
  • Example#4933 - Basic str_increment example
  • Example#4934 - str_increment example with a carry
  • Example#4935 - - str_ireplace örneği
  • Example#4936 - - str_pad örneği
  • Example#4937 - - str_repeat örneği
  • Example#4938 - - Basit str_replace örnekleri
  • Example#4939 - - str_replace olası sorunsal örnekleri
  • Example#4940 - - str_rot13 örneği
  • Example#4941 - - str_shuffle örneği
  • Example#4942 - - str_split örneği
  • Example#4943 - - Boş dizge '' kullanımı
  • Example#4944 - - Harf büyüklüğüne duyarlılık
  • Example#4945 - - str_word_count örneği
  • Example#4946 - - strcasecmp örneği
  • Example#4947 - - strcmp örneği
  • Example#4948 - - strcspn örneği
  • Example#4949 - - strip_tags örneği
  • Example#4950 - - stripcslashes örneği
  • Example#4951 - - stripos örnekleri
  • Example#4952 - - stripslashes örneği
  • Example#4953 - - Dizi üzerinde stripslashes kullanımı
  • Example#4954 - - stristr örneği
  • Example#4955 - Bir dizgenin varlığına bakmak
  • Example#4956 - - Dizge olmayan iğne kullanımı
  • Example#4957 - - strlen örneği
  • Example#4958 - - strnatcasecmp örneği
  • Example#4959 - - strncasecmp örneği
  • Example#4960 - - strncmp örneği
  • Example#4961 - - strpbrk örneği
  • Example#4962 - - Aynılık işlecinin (===) kullanımı
  • Example#4963 - - Farklılık işlecinin (!==) kullanımı
  • Example#4964 - - Bir başlangıç kullanımı
  • Example#4965 - - strrchr örneği
  • Example#4966 - - strrev örneği
  • Example#4967 - - strripos örneği
  • Example#4968 - - Samanlıkta iğne aramak
  • Example#4969 - - Başlangıç belirtmek
  • Example#4970 - - strspn örneği
  • Example#4971 - - strstr örneği
  • Example#4972 - - strtok örneği
  • Example#4973 - - Ayraçlar tükendiğinde strtok davranışı
  • Example#4974 - - strtok ile explode arasındaki fark
  • Example#4975 - - strtolower örneği
  • Example#4976 - - strtoupper örneği
  • Example#4977 - - strtr örneği
  • Example#4978 - - İki bağımsız değişkenli strtr örneği
  • Example#4979 - - strtr davranış karşılaştırması
  • Example#4980 - - Negatif başlangıç kullanımı
  • Example#4981 - - Negatif uzunluk kullanımı
  • Example#4982 - - Basit substr kullanımı
  • Example#4983 - - substr tür dönüşüm davranışı
  • Example#4984 -
  • Example#4985 - - Geçersiz karakter aralığı
  • Example#4986 - - substr_compare örneği
  • Example#4987 - - substr_count örneği
  • Example#4988 - - substr_replace örnekleri
  • Example#4989 - - Çok sayıda dizgeyi bir kerede değiştirmek için substr_replace kullanımı
  • Example#4990 - - trim işlevinin kullanımı
  • Example#4991 - - trim işlevini dizi değerlerine uygulama
  • Example#4992 - - ucfirst örneği
  • Example#4993 - - ucwords örneği
  • Example#4994 - - Özel ayraçlı ucwords örneği
  • Example#4995 - - Ek ayraçlı ucwords örneği
  • Example#4996 - - Temel örnekler
  • Example#4997 - - Temel örnek
  • Example#4998 - vfprintf: sıfır dolgulu tamsayılar
  • Example#4999 - - vprintf: sıfır dolgulu tamsayılar
  • Example#5000 - - vsprintf ve sıfır dolgulu tamsayılar
  • Example#5001 - - wordwrap örneği
  • Example#5002 - - Kesmeli wordwrap örneği
  • Example#5003 - - wordwrap örneği
  • Example#5004 - - array örneği
  • Example#5005 - array ile otomatik indis üretimi
  • Example#5006 - - İlk indisi 1 olan dizi üretimi
  • Example#5007 - - Çift tırnak içine alınmış bir diziye erişim
  • Example#5008 - - array_change_key_case örneği
  • Example#5009 - - array_chunk örneği
  • Example#5010 - - Bir ad/soyad kümesinden adları içeren sütunu döndürmek
  • Example#5011 - - Bir ad/soyad kümesinden soyadları içeren sütunu "id" sütunu ile indisleyerek döndürmek
  • Example#5012 - - Bir nesnenin public "username" özelliğinden username'leri içeren sütunu döndürmek
  • Example#5013 - - Sihirli __get yöntemini kullanarak bir nesnenin private "isim" özelliğindeki isimleri içeren sütunu döndürmek
  • Example#5014 - - array_combine örneği
  • Example#5015 - - array_count_values örneği
  • Example#5016 - - array_diff örneği
  • Example#5017 - - Eşleşmeyen türler ile array_diff
  • Example#5018 - - array_diff_assoc örneği - 1
  • Example#5019 - - array_diff_assoc örneği - 2
  • Example#5020 - - array_diff_key örneği
  • Example#5021 - - array_diff_uassoc örneği
  • Example#5022 - - array_diff_ukey örneği
  • Example#5023 - - array_fill örneği
  • Example#5024 - - Negatif başlangıç indisli array_fill örneği
  • Example#5025 - - array_fill_keys örneği
  • Example#5026 - - array_filter örneği
  • Example#5027 - - işlevsiz array_filter örneği
  • Example#5028 - - array_filter ile kip kullanımı
  • Example#5029 - - array_flip örneği
  • Example#5030 - - Kayıplı array_flip örneği
  • Example#5031 - - array_intersect örneği
  • Example#5032 - - array_intersect_assoc örneği
  • Example#5033 - - array_intersect_key örneği
  • Example#5034 - - array_intersect_uassoc örneği
  • Example#5035 - - array_intersect_ukey örneği
  • Example#5036 - - array_is_list örneği
  • Example#5037 - - array_key_exists örneği
  • Example#5038 - - array_key_exists işlevine karşı isset
  • Example#5039 - - array_key_first Temel Kullanım Örneği
  • Example#5040 - - array_keys örneği
  • Example#5041 - - array_map örneği
  • Example#5042 - - Lamda işlevi kullanan array_map örneği
  • Example#5043 - - Birden fazla diziyle array_map örneği
  • Example#5044 - - Dizileri ziplemek
  • Example#5045 - - Tek dizi ile null işlev
  • Example#5046 - - Dizgesel anahtarlarla array_map örneği
  • Example#5047 - - array_map ve ilişkisel diziler
  • Example#5048 - - array_merge örneği
  • Example#5049 - - Basit array_merge örneği
  • Example#5050 - - array türünde olmayan dizilerle array_merge
  • Example#5051 - - array_merge_recursive örneği
  • Example#5052 - - Çok sayıda diziyi sıralamak
  • Example#5053 - - Çok boyutlu diziyi sıralamak
  • Example#5054 - - Veritabanı sonuçlarının sıralanması
  • Example#5055 - - Harf büyüklüğüne duyarsız sıralama
  • Example#5056 - - array_pad örneği
  • Example#5057 - - array_pop örneği
  • Example#5058 - - array_product örneği
  • Example#5059 - - array_push örneği
  • Example#5060 - - array_rand örneği
  • Example#5061 - - array_reduce örneği
  • Example#5062 - - array_replace örneği
  • Example#5063 - - array_replace_recursive örneği
  • Example#5064 - - array_replace_recursiveve ardışık işlem
  • Example#5065 - - array_reverse örneği
  • Example#5066 - - array_search örneği
  • Example#5067 - - array_shift örneği
  • Example#5068 - - array_slice örnekleri
  • Example#5069 - - 1 indisiyle başlayan dizi
  • Example#5070 - - Karışık anahtarlı dizi
  • Example#5071 - - array_splice örnekleri
  • Example#5072 - - array_splice ve eşdeğerlerine örnekler
  • Example#5073 - - array_sum örnekleri
  • Example#5074 - - stdClass nesneleri kullanılan array_udiff örneği
  • Example#5075 - - DateTime nesneleri kullanılan array_udiff örneği
  • Example#5076 - - array_udiff_assoc örneği
  • Example#5077 - - array_udiff_uassoc örneği
  • Example#5078 - - array_uintersect örneği
  • Example#5079 - - array_uintersect_assoc örneği
  • Example#5080 - - array_uintersect_uassoc örneği
  • Example#5081 - - array_unique örneği
  • Example#5082 - - array_unique ve türler
  • Example#5083 - - array_unshift örneği
  • Example#5084 - - İlişkisel dizilerle kullanım
  • Example#5085 - - array_values örneği
  • Example#5086 - - array_walk örneği
  • Example#5087 - - İsimsiz işlev kullanılan array_walk örneği
  • Example#5088 - - array_walk_recursive örneği
  • Example#5089 - - arsort örneği
  • Example#5090 - - asort örneği
  • Example#5091 - - compact örneği
  • Example#5092 - - count örneği
  • Example#5093 - - count geçersiz Countable|array örneği (kötü örnek - yapmaktan sakının)
  • Example#5094 - - Ardışık count örneği
  • Example#5095 - - Countable nesnesi
  • Example#5096 - - current örneği
  • Example#5097 - - each örnekleri
  • Example#5098 - - each ile bir dizinin taranması
  • Example#5099 - - end örneği
  • Example#5100 - - extract örneği
  • Example#5101 - - in_array örneği
  • Example#5102 - - Türe de bakan in_array örneği
  • Example#5103 - - iğnenin bir dizi olduğu in_array örneği
  • Example#5104 - - key örneği
  • Example#5105 - - krsort örneği
  • Example#5106 - - ksort örneği
  • Example#5107 - - ksort ile int anahtarlar
  • Example#5108 - - list örnekleri
  • Example#5109 - - list kullanım örneği
  • Example#5110 - - İç içe list kullanımı
  • Example#5111 - - list ve indis tanımlarının sırası
  • Example#5112 - - Anahtarlar ve list
  • Example#5113 - - natcasesort örneği
  • Example#5114 - - natsort genel kullanım örnekleri
  • Example#5115 - - Olası sorunları gösteren natsort örnekleri
  • Example#5116 - - next ve şürekası
  • Example#5117 - - prev ve şürekası
  • Example#5118 - - range örnekleri
  • Example#5119 - - reset örneği
  • Example#5120 - - rsort örneği
  • Example#5121 - - shuffle örneği
  • Example#5122 - - sort örneği
  • Example#5123 - - Harf büyüklüğüne duyarsız doğal sıralama kullanılan sort örneği
  • Example#5124 - - uasort örneği
  • Example#5125 - - uksort örneği
  • Example#5126 - - usort örneği
  • Example#5127 - - usort ve çok boyutlu dizi
  • Example#5128 - - Bir nesnenin üye yöntemini kullanan usort örneği
  • Example#5129 - - Çok boyutlu bir diziyi sıralamak için anonim işlevler kullanılan usort örneği
  • Example#5130 - - Mekik işleci kullanılan usort örneği
  • Example#5131 - - Sınıf Tanımları
  • Example#5132 - dnm.php
  • Example#5133 - - class_alias örneği
  • Example#5134 - - class_exists örneği
  • Example#5135 - - autoload bağımsız değişken örneği
  • Example#5136 - - enum_exists örneği
  • Example#5137 - - get_called_class örneği
  • Example#5138 - - get_class örneği
  • Example#5139 - - Alt sınıftan get_class çağrısı
  • Example#5140 - - İsim alanlı sınıflarla get_class kullanımı
  • Example#5141 - - get_class_methods örneği
  • Example#5142 - - get_class_vars örneği
  • Example#5143 - - get_class_vars ve etki alanı
  • Example#5144 - - get_declared_classes örneği
  • Example#5145 - - get_declared_interfaces örneği
  • Example#5146 - - get_mangled_object_vars örneği
  • Example#5147 - - get_object_vars örneği
  • Example#5148 - - get_parent_class örneği
  • Example#5149 - - interface_exists örneği
  • Example#5150 - - is_a örneği
  • Example#5151 - - instanceof işlecinin kullanımı
  • Example#5152 - - is_subclass_of örneği
  • Example#5153 - - Arayüz kullanılan is_subclass_of örneği
  • Example#5154 - - method_exists örneği
  • Example#5155 - - Duruk method_exists örneği
  • Example#5156 - - property_exists örneği
  • Example#5157 - - ctype_alnum örneği (öntanımlı yerel kullanılarak)
  • Example#5158 - - ctype_alpha örneği (öntanımlı yerel kullanılarak)
  • Example#5159 - - ctype_cntrl örneği
  • Example#5160 - - ctype_digit örneği
  • Example#5161 - - ctype_digit (dizgelerle tamsayıları karşılaştırma) örneği
  • Example#5162 - - ctype_graph örneği
  • Example#5163 - - ctype_lower örneği (öntanımlı yerel kullanılarak)
  • Example#5164 - - ctype_print örneği
  • Example#5165 - - ctype_punct örneği
  • Example#5166 - - ctype_space örneği
  • Example#5167 - - ctype_upper örneği (öntanımlı yereli kullanarak)
  • Example#5168 - - ctype_xdigit örneği
  • Example#5169 - Configuring the default filter to act like htmlspecialchars
  • Example#5170 - Configuring the default filter to act like htmlspecialchars
  • Example#5171 - Validating email addresses with filter_var
  • Example#5172 - Validating IP addresses with filter_var
  • Example#5173 - Passing options to filter_var
  • Example#5174 - Sanitizing and validating email addresses
  • Example#5175 - Configuring a default filter
  • Example#5176 - A filter_input example
  • Example#5177 - A filter_input_array example
  • Example#5178 - A filter_list example
  • Example#5179 - A filter_var example
  • Example#5180 - Filter an array example
  • Example#5181 - A filter_var_array example
  • Example#5182 - - call_user_func örneği ve gönderimler
  • Example#5183 - - call_user_func örneği
  • Example#5184 - - İsim alanı ismi kullanarak call_user_func
  • Example#5185 - - Sınıf yöntemi kullanarak call_user_func
  • Example#5186 - - Lamda işlevi kullanarak call_user_func
  • Example#5187 - - call_user_func_array örneği
  • Example#5188 - - İsim alanı ismi kullanarak call_user_func_array
  • Example#5189 - - Lamda işlevi kullanımı
  • Example#5190 - - Değerlerin gönderimli aktarılması
  • Example#5191 - - İsimli bağımsız değişkenli call_user_func_array kullanımı
  • Example#5192 - - create_function veya isimsiz işlevlerle ile bir işlevin dinamik olarak oluşturulması
  • Example#5193 - - create_function işlevi veya isimsiz işlevlerle bir genel işlem işlevi oluşturmak
  • Example#5194 - - Dinamik işlevlerin geriçağırım işlevlerinde kullanımı
  • Example#5195 - - forward_static_call örneği
  • Example#5196 - - forward_static_call_array örneği
  • Example#5197 - - func_get_arg örneği
  • Example#5198 - - byref ve byval bağımsız değişkenli func_get_arg
  • Example#5199 - - func_get_args örneği
  • Example#5200 - - byref ve byval bağımsız değişkenli func_get_args
  • Example#5201 - - func_num_args örneği
  • Example#5202 - - function_exists örneği
  • Example#5203 - - get_defined_functions örneği
  • Example#5204 - - register_shutdown_function örneği
  • Example#5205 - - register_tick_function örneği
  • Example#5206 - Quickhash Example
  • Example#5207 - Quickhash ArrayAccess Example
  • Example#5208 - Quickhash Iterator Example
  • Example#5209 - Quickhash String Values Example
  • Example#5210 - QuickHashIntSet::add example
  • Example#5211 - QuickHashIntSet::__construct example
  • Example#5212 - QuickHashIntSet::delete example
  • Example#5213 - QuickHashIntSet::exists example
  • Example#5214 - QuickHashIntSet::getSize example
  • Example#5215 - QuickHashIntSet::loadFromFile example
  • Example#5216 - QuickHashIntSet::loadFromString example
  • Example#5217 - QuickHashIntSet::saveToFile example
  • Example#5218 - QuickHashIntSet::saveToString example
  • Example#5219 - QuickHashIntHash::add example
  • Example#5220 - QuickHashIntHash::__construct example
  • Example#5221 - QuickHashIntHash::delete example
  • Example#5222 - QuickHashIntHash::exists example
  • Example#5223 - QuickHashIntHash::get example
  • Example#5224 - QuickHashIntHash::getSize example
  • Example#5225 - QuickHash IntHash file format
  • Example#5226 - QuickHash IntHash file format
  • Example#5227 - QuickHashIntHash::loadFromFile example
  • Example#5228 - QuickHashIntHash::loadFromString example
  • Example#5229 - QuickHashIntHash::saveToFile example
  • Example#5230 - QuickHashIntHash::saveToString example
  • Example#5231 - QuickHashIntHash::set example
  • Example#5232 - QuickHashIntHash::update example
  • Example#5233 - QuickHashStringIntHash::add example
  • Example#5234 - QuickHashStringIntHash::__construct example
  • Example#5235 - QuickHashStringIntHash::delete example
  • Example#5236 - QuickHashStringIntHash::get example
  • Example#5237 - QuickHashStringIntHash::getSize example
  • Example#5238 - QuickHash StringIntHash file format
  • Example#5239 - QuickHash IntHash file format
  • Example#5240 - QuickHashStringIntHash::loadFromFile example
  • Example#5241 - QuickHashStringIntHash::loadFromString example
  • Example#5242 - QuickHashStringIntHash::saveToFile example
  • Example#5243 - QuickHashStringIntHash::saveToString example
  • Example#5244 - QuickHashStringIntHash::set example
  • Example#5245 - QuickHashStringIntHash::update example
  • Example#5246 - QuickHashIntStringHash::add example
  • Example#5247 - QuickHashIntStringHash::__construct example
  • Example#5248 - QuickHashIntStringHash::delete example
  • Example#5249 - QuickHashIntStringHash::get example
  • Example#5250 - QuickHashIntStringHash::getSize example
  • Example#5251 - QuickHash IntString file format
  • Example#5252 - QuickHash IntString file format
  • Example#5253 - QuickHashIntStringHash::loadFromFile example
  • Example#5254 - QuickHashIntStringHash::loadFromString example
  • Example#5255 - QuickHashIntStringHash::saveToFile example
  • Example#5256 - QuickHashIntStringHash::saveToString example
  • Example#5257 - QuickHashIntStringHash::set example
  • Example#5258 - QuickHashIntStringHash::update example
  • Example#5259 - - Reflection eklentisinin kabuktan kullanımı
  • Example#5260 - - Yerleşik sınıfların genişletilmesi
  • Example#5261 - - Reflection::getModifierNames örneği
  • Example#5262 - - Temel kullanım örneği
  • Example#5263 - - ReflectionClass::export temel kullanım örneği
  • Example#5264 - Basic usage
  • Example#5265 - Filtering results by class name
  • Example#5266 - Filtering results by class name, with inheritance
  • Example#5267 - - ReflectionClass::getConstant kullanımı
  • Example#5268 - - ReflectionClass::getConstructor kullanımı
  • Example#5269 - - ReflectionClass::getDefaultProperties örneği
  • Example#5270 - - ReflectionClass::getDocComment örneği
  • Example#5271 - - ReflectionClass::getEndLine örneği
  • Example#5272 - - ReflectionClass::getExtension örneği
  • Example#5273 - - ReflectionClass::getExtensionName örneği
  • Example#5274 - - ReflectionClass::getInterfaceNames örneği
  • Example#5275 - - ReflectionClass::getInterfaces örneği
  • Example#5276 - - ReflectionClass::getMethod örneği
  • Example#5277 - - ReflectionClass::getMethods temel kullanım örneği
  • Example#5278 - - ReflectionClass::getMethods ve sonuçların süzülmesi
  • Example#5279 - - ReflectionClass::getName örneği
  • Example#5280 - - ReflectionClass::getNamespaceName örneği
  • Example#5281 - - ReflectionClass::getProperties süzgeç örneği
  • Example#5282 - - ReflectionClass::getProperty örneği
  • Example#5283 - - Temel ReflectionClass::getReflectionConstants örneği
  • Example#5284 - - ReflectionClass::getShortName örneği
  • Example#5285 - - ReflectionClass::getStaticPropertyValue temel kullanım örneği
  • Example#5286 - - ReflectionClass::hasConstant örneği
  • Example#5287 - - ReflectionClass::hasMethod örneği
  • Example#5288 - - ReflectionClass::hasProperty örneği
  • Example#5289 - - ReflectionClass::inNamespace örneği
  • Example#5290 - - ReflectionClass::isAbstract örneği
  • Example#5291 - ReflectionClass::isAnonymous example
  • Example#5292 - Basic usage of ReflectionClass::isCloneable
  • Example#5293 - - ReflectionClass::isFinal örneği
  • Example#5294 - - ReflectionClass::isInstance örneği
  • Example#5295 - - ReflectionClass::isInstantiable örneği
  • Example#5296 - - ReflectionClass::isInterface temel kullanım örneği
  • Example#5297 - - ReflectionClass::isInternal temel kullanım örneği
  • Example#5298 - - ReflectionClass::isIterable temel kullanım örneği
  • Example#5299 - ReflectionClass::isReadOnly example
  • Example#5300 - - ReflectionClass::newInstanceArgs temel kullanım örneği
  • Example#5301 - - ReflectionClass::__toString örneği
  • Example#5302 - Basic usage
  • Example#5303 - Filtering results by class name
  • Example#5304 - Filtering results by class name, with inheritance
  • Example#5305 - ReflectionClassConstant::isEnumCase example
  • Example#5306 - ReflectionEnum::getBackingType example
  • Example#5307 - ReflectionEnum::getCase example
  • Example#5308 - ReflectionEnum::getCases example
  • Example#5309 - ReflectionEnum::hasCase example
  • Example#5310 - ReflectionEnum::isBacked example
  • Example#5311 - ReflectionEnum::getValue example
  • Example#5312 - ReflectionEnum::getBackingValue example
  • Example#5313 - - ReflectionExtension örneği
  • Example#5314 - ReflectionExtension::getClasses örneği
  • Example#5315 - ReflectionExtension::getClassNames örneği
  • Example#5316 - ReflectionExtension::getConstants örneği
  • Example#5317 - ReflectionExtension::getDependencies örneği
  • Example#5318 - - ReflectionExtension::getFunctions örneği
  • Example#5319 - - ReflectionExtension::getINIEntries örneği
  • Example#5320 - - ReflectionExtension::getName örneği
  • Example#5321 - - ReflectionExtension::getVersion örneği
  • Example#5322 - - ReflectionExtension::info örneği
  • Example#5323 - - ReflectionFunction::__construct örneği
  • Example#5324 - - ReflectionFunction::invoke örneği
  • Example#5325 - - ReflectionFunction::invokeArgs örneği
  • Example#5326 - - Değer döndüren bağımsız değişkenli işlevle ReflectionFunction::invokeArgs örneği
  • Example#5327 - ReflectionFunction::isAnonymous example
  • Example#5328 - - ReflectionFunction::__toString örneği
  • Example#5329 - Basic usage with a class method
  • Example#5330 - Basic usage with a function
  • Example#5331 - Filtering results by class name
  • Example#5332 - Filtering results by class name, with inheritance
  • Example#5333 - ReflectionFunctionAbstract::getClosureUsedVariables example
  • Example#5334 - ReflectionFunctionAbstract::getReturnType example
  • Example#5335 - Usage on built-in functions
  • Example#5336 - ReflectionFunctionAbstract::getTentativeReturnType example
  • Example#5337 - ReflectionFunctionAbstract::hasReturnType example
  • Example#5338 - Usage on built-in functions
  • Example#5339 - ReflectionFunctionAbstract::hasTentativeReturnType example
  • Example#5340 - - ReflectionFunctionAbstract::isClosure örneği
  • Example#5341 - - ReflectionFunctionAbstract::isDeprecated örneği
  • Example#5342 - - ReflectionMethod::__construct örneği
  • Example#5343 - ReflectionMethod::createFromMethodName example
  • Example#5344 - - ReflectionMethod::getDeclaringClass örneği
  • Example#5345 - - ReflectionMethod::getModifiers örneği
  • Example#5346 - - ReflectionMethod::getPrototype örneği
  • Example#5347 - ReflectionMethod::hasPrototype example
  • Example#5348 - - ReflectionMethod::invoke örneği
  • Example#5349 - - ReflectionMethod::invokeArgs örneği
  • Example#5350 - Simple Class definition
  • Example#5351 - - ReflectionMethod::__toString örneği
  • Example#5352 - ReflectionNamedType::isBuiltin example
  • Example#5353 - - ReflectionParameter örneği
  • Example#5354 - Basic usage
  • Example#5355 - Filtering results by class name
  • Example#5356 - Filtering results by class name, with inheritance
  • Example#5357 - - ReflectionParameter sınıfının kullanımı
  • Example#5358 - - Yöntemi bildiren sınıfı döndürmek
  • Example#5359 - - İşlev bağımsız değişkenlerinin öntanımlı değerlerini döndürmek
  • Example#5360 - Getting default values' constant names of function parameters
  • Example#5361 - ReflectionParameter::getType Usage as of PHP 7.1.0
  • Example#5362 - ReflectionParameter::getType Usage before PHP 7.1.0
  • Example#5363 - ReflectionParameter::getType Usage in PHP 8.0.0 and later
  • Example#5364 - ReflectionParameter::hasType example
  • Example#5365 - - PHP 8.0.0 eşdeğeri
  • Example#5366 - PHP 8.0.0 equivalent
  • Example#5367 - - ReflectionParameter::__toString örneği
  • Example#5368 - - ReflectionProperty::__construct örneği
  • Example#5369 - - ReflectionProperty sınıfından private ve protected özelliklerin değerlerini öğrenmek
  • Example#5370 - Basic usage
  • Example#5371 - Filtering results by class name
  • Example#5372 - Filtering results by class name, with inheritance
  • Example#5373 - ReflectionProperty::getDefaultValue example
  • Example#5374 - - ReflectionProperty::getDocComment örneği
  • Example#5375 - - Çoklu özellik bildirimi
  • Example#5376 - ReflectionProperty::getType example
  • Example#5377 - - ReflectionProperty::getValue örneği
  • Example#5378 - ReflectionProperty::hasDefaultValue example
  • Example#5379 - ReflectionProperty::hasType example
  • Example#5380 - - ReflectionProperty::isDefault örneği
  • Example#5381 - ReflectionProperty::isInitialized example
  • Example#5382 - ReflectionProperty::isPromoted example
  • Example#5383 - - Basit bir sınıf tanımı
  • Example#5384 - - ReflectionProperty::setValue örneği
  • Example#5385 - ReflectionType::allowsNull example
  • Example#5386 - ReflectionType::__toString example
  • Example#5387 - ReflectionUnionType::getTypes example
  • Example#5388 - ReflectionGenerator::__construct example
  • Example#5389 - ReflectionGenerator::getExecutingFile example
  • Example#5390 - ReflectionGenerator::getExecutingGenerator example
  • Example#5391 - ReflectionGenerator::getExecutingLine example
  • Example#5392 - ReflectionGenerator::getFunction example
  • Example#5393 - ReflectionGenerator::getThis example
  • Example#5394 - ReflectionGenerator::getTrace example
  • Example#5395 - ReflectionIntersectionType::getTypes example
  • Example#5396 - Basic ReflectionReference::getId usage
  • Example#5397 - - boolval örnekleri
  • Example#5398 - - debug_zval_dump örneği
  • Example#5399 -
  • Example#5400 - - Basit bir empty / isset karşılaştırması
  • Example#5401 - - Dizge başlangıçlarında empty
  • Example#5402 - - floatval örneği
  • Example#5403 - - floatval ve baştaki karakterin rakam olmaması durumu
  • Example#5404 - - get_debug_type örneği
  • Example#5405 - - get_defined_vars örneği
  • Example#5406 - - int dönüşümüyle aynı sonucu üreten get_resource_id örneği
  • Example#5407 - - get_resource_type örneği
  • Example#5408 - - gettype örneği
  • Example#5409 - - intval örnekleri
  • Example#5410 - - Değişken içeriğinin bir dizi olup olmadığının sınanması
  • Example#5411 - - is_bool örnekleri
  • Example#5412 - - is_callable örneği
  • Example#5413 - - is_callable ve kurucular
  • Example#5414 - - is_countable örnekleri
  • Example#5415 - - is_float örneği
  • Example#5416 - - is_int örneği
  • Example#5417 - - is_iterable örnekleri
  • Example#5418 - - is_null örneği
  • Example#5419 - - is_numeric örnekleri
  • Example#5420 - - Boşluk karakterli is_numeric örneği
  • Example#5421 - - is_object örneği
  • Example#5422 - - is_resource örneği
  • Example#5423 - - is_scalar örneği
  • Example#5424 - - is_string örneği
  • Example#5425 - - isset örnekleri
  • Example#5426 - - Dizge başlangıcında isset
  • Example#5427 - - print_r örneği
  • Example#5428 - - döndür bağımsız değişkenli örnek
  • Example#5429 - - serialize örneği
  • Example#5430 - - settype örneği
  • Example#5431 - - Sihirli __toString() yöntemini kullanan strval örneği
  • Example#5432 - - unserialize örneği
  • Example#5433 - - unserialize_callback_func örneği
  • Example#5434 - - unset örneği
  • Example#5435 - - (unset) - null'a dönüşüm örneği
  • Example#5436 - - var_dump örneği
  • Example#5437 - - var_export örnekleri
  • Example#5438 - - stdClass'ın dışa aktarılması (PHP 7.3.0'den beri)
  • Example#5439 - - Sınıfların dışa aktarılması
  • Example#5440 - - __set_state() kullanımı
  • Example#5441 -
  • Example#5442 - OAuth::fetch example
  • Example#5443 - OAuth::getAccessToken example
  • Example#5444 - OAuth::getRequestToken example
  • Example#5445 - OAuth::setRequestEngine example
  • Example#5446 - An OAuth::setRsaCertificate example
  • Example#5447 - OAuth::setToken example
  • Example#5448 - OAuthProvider::__construct example
  • Example#5449 - Example OAuthProvider::consumerHandler callback
  • Example#5450 - OAuthProvider::generateToken example
  • Example#5451 - OAuthProvider::is2LeggedEndpoint example
  • Example#5452 - Example OAuthProvider::timestampNonceHandler callback
  • Example#5453 - Example OAuthProvider::tokenHandler callback
  • Example#5454 - is_soap_fault example
  • Example#5455 - SOAP's standard method for error reporting is exceptions
  • Example#5456 - Specifying use of TLS 1.3 only
  • Example#5457 - SoapClient::__construct example
  • Example#5458 - Using the SOAP_SINGLE_ELEMENT_ARRAYS feature
  • Example#5459 - SoapClient::__doRequest example
  • Example#5460 - SoapClient::__getFunctions example
  • Example#5461 - SoapClient::__getLastRequest() example
  • Example#5462 - SoapClient::__getLastRequestHeaders() example
  • Example#5463 - SoapClient::__getLastResponse() example
  • Example#5464 - SoapClient::__getLastResponse() example
  • Example#5465 - SoapClient::__getTypes example
  • Example#5466 - SoapClient::__setLocation example
  • Example#5467 - SoapClient::__setSoapHeaders example
  • Example#5468 - Set Multiple Headers
  • Example#5469 - SoapClient::__soapCall example
  • Example#5470 - SoapServer::addFunction example
  • Example#5471 - SoapServer::__construct example
  • Example#5472 - SoapServer::getFunctions example
  • Example#5473 - SoapServer::handle example
  • Example#5474 - SoapServer::setPersistence example
  • Example#5475 - Some examples
  • Example#5476 - Some examples
  • Example#5477 - SoapHeader::__construct example
  • Example#5478 - SoapParam::__construct example
  • Example#5479 - SoapVar::__construct example
  • Example#5480 - Yar Server Example
  • Example#5481 - Access the server in borwser(GET request)
  • Example#5482 - Yar Client Example
  • Example#5483 - Yar Concurrent Client Example
  • Example#5484 - Yar_Server::__construct example
  • Example#5485 - Yar_Server::handle example
  • Example#5486 - Yar_Client::__call example
  • Example#5487 - Yar_Client::__construct example
  • Example#5488 - Yar_Client::setOpt example
  • Example#5489 - Yar_Concurrent_Client::call example
  • Example#5490 - Yar_Concurrent_Client::loop example
  • Example#5491 - Yar_Concurrent_Client::reset example
  • Example#5492 - Yar_Server_Exception::getType example
  • Example#5493 - Yar_Client_Exception::getType example
  • Example#5494 - - XMLRPC istemci işlevleri örneği
  • Example#5495 - XML-RPC tür örneği
  • Example#5496 - - xmlrpc_set_type örneği
  • Example#5497 - ASP'de For Each
  • Example#5498 - PHP'de foreach
  • Example#5499 - - 1. com örneği
  • Example#5500 - - 2. com örneği
  • Example#5501 - dotnet örneği
  • Example#5502 - - variant örneği
  • Example#5503 - Basic COMPersistHelper::saveToFile Usage
  • Example#5504 - - COM olay bağlayıcı örneği
  • Example#5505 - - Bir PHP betiğinin hizmet olarak çalışacağını belirtmek
  • Example#5506 - - Bir hizmeti kullanımdan kaldırmak
  • Example#5507 - - Bir hizmet olarak çalıştırmak
  • Example#5508 - - win32_create_service örneği
  • Example#5509 - - Bağımlılıkları olan win32_create_service örneği
  • Example#5510 - - Kurtarmalı win32_create_service örneği
  • Example#5511 - - win32_delete_service örneği
  • Example#5512 - - win32_start_service_ctrl_dispatcher örneği
  • Example#5513 - book.xml
  • Example#5514 - - Yeni bir DOMAttr oluşturmak
  • Example#5515 - - DOMAttr::isId örneği
  • Example#5516 - - Yeni bir DOMCdataSection örneği oluşturmak
  • Example#5517 - DOMCharacterData::after example
  • Example#5518 - DOMCharacterData::before example
  • Example#5519 - DOMCharacterData::remove example
  • Example#5520 - DOMCharacterData::replaceWith example
  • Example#5521 - - Yeni bir DOMComment oluşturmak
  • Example#5522 - DOMDocument::adoptNode example
  • Example#5523 - DOMDocument::append example
  • Example#5524 - - Yeni bir DOMDocument oluşturmak
  • Example#5525 - - Yeni bir eleman oluşturup belge elemanı yapmak
  • Example#5526 - - value olarak öncelenmemiş & içeren metin kullanmak
  • Example#5527 - - Yeni bir eleman oluşturup belge elemanı yapmak
  • Example#5528 - - İsim alanı öneki örneği
  • Example#5529 - - DOMDocument::getElementById örneği
  • Example#5530 - - Temel kullanım örneği
  • Example#5531 - - Tüm XInclude elemanlarını döndürmek
  • Example#5532 - - DOMDocument::importNode örneği
  • Example#5533 - - Bir belge oluşturmak
  • Example#5534 - - Bir HTML belge oluşturmak
  • Example#5535 - - Bir belge oluşturmak
  • Example#5536 - - Bir belge oluşturmak
  • Example#5537 - DOMDocument::prepend example
  • Example#5538 - - Kolaylık olsun diye DOMElement sınıfına yeni bir yöntem eklemek
  • Example#5539 - - Elemanların özel bir sınıf olarak döndürülmesi
  • Example#5540 - - Asıl belgeyi döndürmek
  • Example#5541 - - Ismarlama nesneler geçicidir
  • Example#5542 - DOMDocument::replaceChildren example
  • Example#5543 - - Bir DOM ağacının bir dosyaya kaydedilmesi
  • Example#5544 - - Bir HTML ağacının dizge olarak çıktılanması
  • Example#5545 - - Bir HTML ağacının bir dosyaya kaydedilmesi
  • Example#5546 - - Bir DOM ağacının dizge olarak çıktılanması
  • Example#5547 - - DTD'ye göre doğrulama örneği
  • Example#5548 - - DOMDocument::xinclude örneği
  • Example#5549 - DOMDocumentFragment::append example
  • Example#5550 - - Belgeye XML veri eklemek
  • Example#5551 - DOMDocumentFragment::prepend example
  • Example#5552 - DOMDocumentFragment::replaceChildren example
  • Example#5553 - DOMElement::after example
  • Example#5554 - DOMElement::append example
  • Example#5555 - DOMElement::before example
  • Example#5556 - - Yeni bir DOMElement oluşturmak
  • Example#5557 - DOMElement::getAttributeNames example
  • Example#5558 - DOMElement::insertAdjacentElement example
  • Example#5559 - DOMElement::insertAdjacentText example
  • Example#5560 - DOMElement::prepend example
  • Example#5561 - DOMElement::remove example
  • Example#5562 - DOMElement::replaceChildren example
  • Example#5563 - DOMElement::replaceWith example
  • Example#5564 - - Bir özniteliğin atanması
  • Example#5565 - DOMElement::toggleAttribute example
  • Example#5566 - Yeni bir DOMEntityReference oluşturmak
  • Example#5567 - - Bir DTD ekleyerek bir belge oluşturmak
  • Example#5568 - - DOM Gerçekleniminin özellikleri
  • Example#5569 - - Bir çocuk düğüm eklemek
  • Example#5570 - - Çocuk ve torun düğümler
  • Example#5571 - DOMNode::contains example
  • Example#5572 - - DOMNode::getLineNo örneği
  • Example#5573 - - DOMNode::getNodePath örneği
  • Example#5574 - DOMNode::getRootNode example
  • Example#5575 - DOMNode::isEqualNode example
  • Example#5576 - Removing a child
  • Example#5577 - - Bir tablonun tüm girdilerini çıktılamak
  • Example#5578 - DOMParentNode::replaceChildren example
  • Example#5579 - - Yeni bir DOMProcessingInstruction oluşturmak
  • Example#5580 - - Yeni bir DOMText nesnesi oluşturmak
  • Example#5581 - - Tüm İngilizce kitapların sayısını döndürmek
  • Example#5582 - - Tüm İngilizce kitapları listelemek
  • Example#5583 - book.xml
  • Example#5584 - - DOMXPath::registerPHPFunctions ve php:functionString kullanımı
  • Example#5585 - - DOMXPath::registerPHPFunctions ve php:function kullanımı
  • Example#5586 - - dom_import_simplexml ile DOM'a SimpleXML ithali
  • Example#5587 - - libxml_get_errors örneği
  • Example#5588 - - libxml_set_external_entity_loader örneği
  • Example#5589 - - libxml_set_streams_context örneği
  • Example#5590 - - libxml_use_internal_errors örneği
  • Example#5591 - - XML dizge olarak içerilecek example.php dosyası
  • Example#5592 - - <plot> içeriğinin eldesi
  • Example#5593 - - <line> içeriğinin eldesi
  • Example#5594 - - Bir elemanın birden fazla örneğine erişim
  • Example#5595 - - Özniteliklerin kullanımı
  • Example#5596 - - Elemanları ve öznitelikleri karşılaştırmak
  • Example#5597 - - İki elemanı karşılaştırmak
  • Example#5598 - - XPath kullanımı
  • Example#5599 - - Değer atamak
  • Example#5600 - - Eleman ve öznitelik eklemek
  • Example#5601 - - DOM ile çalışabilirlik
  • Example#5602 - - Hatalı bir XML dizgesinin yüklenmesi
  • Example#5603 - - Bir SimpleXMLElement nesnesine öznitelikler ve çocuk elemanlar eklemek
  • Example#5604 - - Bir SimpleXMLElement nesnesine öznitelikleriyle çocuk elemanlar eklemek
  • Example#5605 - - XML belgenin döndürülmesi
  • Example#5606 - - SimpleXMLElement::xpath sonucundan bir XML belge döndürmek
  • Example#5607 - - Bir XML dizgenin yorumlanması
  • Example#5608 - - children() dizimsisi
  • Example#5609 - - İsimalanlarının kullanımı
  • Example#5610 - - Bir dizgeden bir SimpleXMLElement nesnesi oluşturmak
  • Example#5611 - - Bir dosyadan bir SimpleXMLElement nesnesi oluşturmak
  • Example#5612 - Counting the number of children
  • Example#5613 - Return the current element
  • Example#5614 - - Belge isim alanlarının döndürülmesi
  • Example#5615 - - Çok sayıda isim alanı ile çalışma
  • Example#5616 - - XML eleman isimlerinin döndürülmesi
  • Example#5617 - - Kullanılan belge isim alanlarının döndürülmesi
  • Example#5618 - Return the sub-elements of the current element
  • Example#5619 - Check whether the current element has sub-elements
  • Example#5620 - Get the current XML tag key
  • Example#5621 - Move to the next element
  • Example#5622 - - Bir XPath ifadesinde kullanılacak isim alanı önekinin belirtilmesi
  • Example#5623 - Rewind to the first element
  • Example#5624 - Get string content
  • Example#5625 - Check whether the current element is valid
  • Example#5626 - - Xpath örneği
  • Example#5627 - - DOM ithali
  • Example#5628 - - Bir XML belgenin yorumlanması
  • Example#5629 - - Bir XML belgenin yorumlanması
  • Example#5630 - - WDDX ile tek bir değerin dizgeleştirilmesi
  • Example#5631 - - WDDX ile artırımsal paketlerin kullanımı
  • Example#5632 - - wddx_serialize_vars örneği
  • Example#5633 - - XML Eleman yapısının gösterimi
  • Example#5634 - - XML etiketlerini HTML etiketlerine eşleme
  • Example#5635 - - Harici Öğe Örneği
  • Example#5636 - xmltest.xml
  • Example#5637 - xmltest2.xml
  • Example#5638 - - Büyük bir XML belgenin bölümlerine çözümlenmesi
  • Example#5639 - - xml_parse_into_struct örneği
  • Example#5640 - - moldb.xml - küçük bir moleküler bilgi veritabanı
  • Example#5641 - - parsemoldb.php - moldb.xml dosyasını bir moleküler nesne dizisine çözümler
  • Example#5642 - - xml_set_object örneği
  • Example#5643 - - XML belgenin doğrulanması
  • Example#5644 - - Basit bir XML Belgenin Oluşturulması
  • Example#5645 - - XML isim alanları ile çalışma
  • Example#5646 - - Nesne yönelimli arayüz ile çalışma
  • Example#5647 - - Doğrudan XML çıktılamak
  • Example#5648 - - XMLWriter::setIndent ve karışık içerik
  • Example#5649 - - XMLWriter::startAttribute temel kullanım örneği
  • Example#5650 - - Alt Öğeleri ve Öznitelikleri Karıştırmak
  • Example#5651 - - xmlwriter_write_cdata temel kullanım örneği
  • Example#5652 - - collection.xml
  • Example#5653 - - collection.xsl
  • Example#5654 - fruits.xml
  • Example#5655 - fruits.xsl
  • Example#5656 - Hataları karşılaştırma ve çıktılama
  • Example#5657 - - Bir XSLTProcessor oluşturmak
  • Example#5658 - - EXSLT desteğinin sınanması
  • Example#5659 - - Bir biçembentten bir PHP işlevinin çağrılması
  • Example#5660 - - Dönüşüm öncesi sahip değişimi
  • Example#5661 - - Profil bilgisi çıktılama örneği
  • Example#5662 - - Bir DOMDocument nesnesine dönüşüm
  • Example#5663 - - Bir HTML dosyaya dönüşüm
  • Example#5664 - - Bir dizgeye dönüşüm
  • Example#5665 -
  • Example#5666 -
  • Example#5667 -
  • Example#5668 -
  • Example#5669 - - Gizli bir HTML form elemanı
  • Example#5670 - - Kullanıcı tarafından düzenlenen veri
  • Example#5671 - - Bir URL içinde
  • Example#5672 - - PHP ile Javascript üretimi
  • Example#5673 -
  • Example#5674 - Example PHP/FI Code
  • Example#5675 - - dev.site.dom alan adı için ekranda hata raporlamayı etkin kılmak
  • Example#5676 - - Korunmuş alanlar için güvenlik betikleri eklemek
  • Example#5677 - - Unix include_path
  • Example#5678 - - Windows include_path
  • Example#5679 - - include_path değişkeninde Unix ${USER} ortam değişkeni kullanımı
  • Example#5680 - - string.rot13 örneği
  • Example#5681 - - string.toupper örneği
  • Example#5682 - - string.tolower örneği
  • Example#5683 - - string.strip_tags örneği
  • Example#5684 - - convert.base64-encode ve convert.base64-decode örneği
  • Example#5685 - - convert.quoted-printable-encode ve convert.quoted-printable-decode örneği
  • Example#5686 - - convert.iconv.* örneği
  • Example#5687 - - zlib.deflate ve zlib.inflate örneği
  • Example#5688 - - Basit bir zlib.deflate örneği
  • Example#5689 - - bzip2.compress ve bzip2.decompress örneği
  • Example#5690 - - 3DES kullanarak şifreli dosya çıktılama
  • Example#5691 - - SHA256 HMAC ile AES-128 CBC kullanarak dosya şifreleme

User Contributed Notes

There are no user contributed notes for this page.


Sürüm Bilgisi

PHP paketinde gelen eklentilerin işlevlerinde aşağıdaki değişiklikler yapıldı.

Sürüm İşlev Açıklama

User Contributed Notes

There are no user contributed notes for this page.


HTML Yardım Dosyası (.chm) Sürümü

  • About This Edition
  • Using PHP Manual CHM Edition
    • The HTML Help Toolbar
    • The Navigation Pane
    • Keyboard Shortcuts
  • The Full Text Search
    • General searching rules
    • Searching for words or phrases
    • Defining search terms
    • Using nested expressions when searching
  • Integrating the PHP Manual

User Contributed Notes

There are no user contributed notes for this page.


About This Edition

The Windows HTML Help Edition of the PHP Manual is aimed at developers, who want the manual at hand every time, and would like to read manual pages and user notes without waiting for a remote web page to download. This edition gives you the full content of the manual plus the user notes, with some great features provided by the viewer application by the scripts we use to generate this format and by other contributors in the form of skins.

This distribution of the PHP Manual contains many files, including the main manual file php_manual_en.chm. You can view the manual by double clicking on this file (as you already guessed). You may also see a php_manual_en.chw file in the directory, it's generated the first time you use the index tab, and it contains an index with the manual's pages.

For those interested in technical details about Microsoft HTML Help, » http://www.helpware.net/ is a great resource. For more information and positioning of Windows HTML Help in the Microsoft help formats and services history, see this » WinWriters article.

User Contributed Notes

There are no user contributed notes for this page.


Using PHP Manual CHM Edition

İçindekiler

  • The HTML Help Toolbar
  • The Navigation Pane
  • Keyboard Shortcuts

When you double click on a CHM, a HTML Help Viewer window opens with three panes. On the left side of the window is the Navigation pane. It contains four navigational tabs: the Contents, Index, Search and Favorites tabs. On the right side of the window is the Topic pane. It displays the selected help topic, or the default help topic on startup. The help pages are all separate HTML files, your Internet Explorer displays the pages in the Topic pane. The third pane is the toolbar, which is located below the help window title bar. You can adjust the horizontal layout with dragging the vertical border between the Navigation pane and the Topic pane.

Note, that when you open the CHM the first time, it may appear in a strange position and size. From then, Windows remembers the window position, size and the last opened tab. All these including your favorites are stored in a file named hh.dat. If you move your file to another directory, all these remembered settings will be lost (including your favorites listing!). If you replace your CHM file with a new one, with the same name, this is not a problem though. The file names and path values are stored in hh.dat.

User Contributed Notes

There are no user contributed notes for this page.


The HTML Help Toolbar

The HTML Help Toolbar contains the following icons, when you view the PHP Manual:

  • Hide/Show - Hides/shows the navigation pane.
  • Locate - Locates a topic in the contents tab (in case you reached a topic with search, index or favorites, and would like to see where it is in the table of contents tree view).
  • Back - Goes back in the history.
  • Forward - Goes forward in the history.
  • Refresh - Reloads the current page.
  • Home - Opens the startup page of the CHM.
  • Print - Opens the print dialog box.
  • Options - Provides a dropdown with more options.
Using this toolbar is really easy, many of the toolbar icons are strongly related to their Internet Explorer equivalents.

User Contributed Notes

There are no user contributed notes for this page.


The Navigation Pane

The Navigation Pane contains four navigational tabs: the Contents, Index, Search and Favorites tabs. These all provide different methods to access a topic in the help file.

  • The contents tab reveals a tree like table of contents, where you can navigate to the desired topic by opening and closing parts of the tree. You can even access the deepest sections using this TOC. If you right click on an item here and choose "Print...", you'll have the option to print the selected topic or the selected topic and all subtopics. However printing is not the initial goal of this representation of the manual (the PDF version is suitable for printing).
  • The index tab lists a huge number of "keywords" (actually manual page titles). You can pick one, or start to type a keyword, see the list adjusting to your input, and then click on a topic, or press enter if the selected topic is the one you would like to see.
  • The search tab shows one of the most powerful features of the HTML Help Viewer, the full text search (also known as FTS). Here you can type in your search expression, optionally connecting words with AND/OR/NEAR/NOT. Before you click 'List topics', you can also set some options at the bottom. After the search results are displayed, you'll realize that manual text and user note results are separated. To sort out the two types, click on the 'Location' column header. Now from the search results list, you can pick a topic, and see it's page. The keywords you searched for are highlighted on the page.
  • The favorites tab enables you to store your most used topics in a list, easily accessible. Here you can see the list, add the current topic to it, remove one, or display a selected item. You can also specify your own title for the favorite, by typing it into the 'Current topic:' box. The user note page titles are prepended with a 'N:' string so you can distinguish them from normal manual pages in the favorites listing.

User Contributed Notes

There are no user contributed notes for this page.


Keyboard Shortcuts

There are many keyboard shortcuts you can use to increase your productivity. Many users find it more appropriate to use these keyboard shortcuts to access topics, instead of clicking.

General Help Viewer Shortcuts
To | Press
Close the Help Viewer | ALT+F4
Display the Options menu | ALT+O
Hide or show the Navigation pane | ALT+O, and then T
Print a topic | ALT+O, and then P
Move back to the previous topic | ALT+LEFT ARROW
Move forward to the next topic (provided you have viewed it just previously) | ALT+RIGHT ARROW
Turn on or off search highlighting. | ALT+O, and then O
Return to the help file home page | ALT+O, and then H
Switch between the Navigation pane and the Topic pane | F6
Scroll through all the links in a topic or through all the options on a Navigation pane tab | TAB
Display context (right click) menu | SHIFT+F10
Contents Tab Shortcuts
To | Press
Display the Contents tab | ALT+C
Open and close a book or folder | PLUS SIGN and MINUS SIGN, or LEFT ARROW and RIGHT ARROW
Select a topic | DOWN ARROW and UP ARROW
Display the selected topic | ENTER
Index Tab Shortcuts
To | Press
Display the Index tab | ALT+N
Type a keyword to search for | ALT+W, and then type the word
Select a keyword in the list | UP ARROW and DOWN ARROW
Display the associated topic | ENTER or ALT+D
Search Tab shortcuts
To | Press
Display the Search tab | ALT+S
Type a keyword to search for | ALT+W, and then type the word
Start a search | ALT+L
Select a topic in the results list | ALT+T, and then UP ARROW and DOWN ARROW
Display the selected topic | ENTER or ALT+D
Search for a keyword in the result list of a prior search | ALT+U
Search for words similar to the keyword. For example, to find words like "running" and "runs" for the keyword "run" | ALT+M
Only search through topic titles | ALT+R
Favorites Tab Shortcuts
To | Press
Display the Favorites tab | ALT+I
Add the currently displayed topic to the Favorites list | ALT+A
Select a topic in the Favorites list | ALT+P, and then UP ARROW and DOWN ARROW
Display the selected topic | ENTER or ALT+D
Remove the selected topic from the list | ALT+R
Topic Pane Shortcuts
To | Press
Index Lookup | Select the words you would like to look up and press F1
Find on page | CTRL+F, and then adjust options
Refresh page | F5

User Contributed Notes

There are no user contributed notes for this page.


The Full Text Search

İçindekiler

  • General searching rules
  • Searching for words or phrases
  • Defining search terms
  • Using nested expressions when searching

This edition of the PHP Manual includes an advanced full text search possibility provided by the viewer application. This enables users to search through every word in the help file to find a match. For example, if a user does a full-text search on the word "Apache", every topic that contains the word "Apache" will be listed. Advanced full-text search allows a user to search using boolean, wildcard, and nested expressions. A user can also limit the search to previous results, match similar words, or search topic titles only.

The usage of the search feature is fairly straightforward. Click on the search tab, type in the desired words and press ENTER (or click on "List Topics"). Then you'll receive a list of matches from the PHP Manual (and the notes). You can use the button with a right arrow on it to add boolean operators to your search (or you can type them in). As you see the results, you can use the column headings (Title, Location and Rank) to sort the topic list. The default order is by Rank. You can also adjust some parameters at the bottom of this tab.

The words found are highlighted on the current page in the Topic pane by default. You can turn off this feature by choosing the "Search Highlight Off" menu item in the Options menu. To can get this feature back similarly. If you are viewing a long topic, only the first 500 instances of a search word or phrase will be highlighted, due to a limitation of the viewer.

User Contributed Notes

There are no user contributed notes for this page.


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.

Bilginize:

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

User Contributed Notes

There are no user contributed notes for this page.


Searching for words or phrases

You can search for words or phrases and use wildcard expressions. Wildcard expressions allow you to search for one or more characters using a question mark or asterisk. The table below describes the results of these different kinds of searches.

Word and phrase searches
Search for | Example | Results
A single word | select | Topics that contain the word "select". (You will also find its grammatical variations, such as "selector" and "selection".)
A phrase | "new operator" or new operator | Topics that contain the literal phrase "new operator" and all its grammatical variations. Without the quotation marks, the query is equivalent to specifying "new AND operator," which will find topics containing both of the individual words, instead of the phrase.
Wildcard expressions | esc* or HT?? | Results for the first example include topics that contain the terms "ESC", "escape", "escalation", and so on. The asterisk cannot be the only character in the term. Results for the second example include topics that contain the terms "HTTP", "HTML" and so on. The question mark cannot be the only character in the term.

Bilginize:

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

User Contributed Notes

There are no user contributed notes for this page.


Defining search terms

The AND, OR, NOT, and NEAR operators enable you to precisely define your search by creating a relationship between search terms. The following table shows how you can use each of these operators. If no operator is specified, AND is used. For example, the query "server cgi security" is equivalent to "server AND cgi AND security".

Search operators
Search for | Example | Results
Both terms in the same topic | http AND apache | Topics containing both the words "http" and "apache".
Either term in a topic | ming OR swflib | Topics containing either the word "ming" or the word "swflib" or both.
The first term without the second term | xml NOT expat | Topics containing the word "xml" but not the word "expat".
Both terms in the same topic, close together | database NEAR security | Topics containing the word "database" within eight words of the word "security".

Bilginize:

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.

User Contributed Notes

There are no user contributed notes for this page.


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.

User Contributed Notes

There are no user contributed notes for this page.


Integrating the PHP Manual

Bilginize:

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.

Bilginize:

All files are in the root directory of the CHM, unlike the previous CHM versions which included a language directory. Images, style sheets and other supplemental files have names starting with an underscore (like the main index shown above), to avoid name collisions.

The names of generated files follow the same rules as the online manual, except that the extension is .html and not .php. The most important is that function documentation files are named function.FUNCNAME.html where FUNCNAME is the function name, with all underscores converted to hyphens. Some examples are function.echo.html, function.mysql-close.html, function.imagecopy.html.

Using all this information, you can show a manual page for a function requested by a user. A simple example is included in the distribution, named php_quickref.hta. This is a » HTML Application to demonstrate the simple process of showing a manual page for a function. The quickRef() function defined therein does the job.

If you would like to integrate the manual into an IDE without direct support for the PHP manual (actually the underscore to hyphen conversion), you can use the included _function.html file to access a function page. This file is simply a redirector, and can be parameterized via the URL, as _function.html#mysql_close. This page will redirect you to the mysql_close function page (function.mysql-close.html) automatically. You can provide the full path of this file if your IDE supports context sensitive help, and provide the IDE specified string as the parameter. An example for this is the UltraEdit 9 intergation (see the edition's website).

The index of the manual (accessible via the index tab on the navigation pane) can also be used for integrational purposes. All the HTML pages are included in the index with their titles as index terms (including function description pages).

If you are a desktop application developer and would like to tightly integrate the CHM into your program (such as displaying the TOC tree in your IDE's help box), you can find more information at » http://www.helpware.net/, as well as links to other useful resources. The official site for HTML Help is at » http://www.microsoft.com/download/en/details.aspx?id=21138.

User Contributed Notes

There are no user contributed notes for this page.