PHP Reference

Quick Reference

The PHP libxml_set_streams_context() function sets the streams context for the next libxml document load or write.

<?php
$xml = <<<XML
<!DOCTYPE foo PUBLIC '-//FOO/BAR" "http://example.com/'>
<foo>bar</foo>
XML;

$dtd = <<<DTD
<!ELEMENT foo (#PCDATA)>
DTD;

libxml_set_streams_context(
    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());
?>

Syntax

libxml_set_streams_context(function)

Parameters

ParameterDescription
functionA function that takes three arguments: two strings, a public id and system id, and a context (an array with four keys) as the third argument; this callback should return a resource, a string from which a resource can be opened, or NULL (required)

PHP Notes:

  • When using PHP, single or double quotation marks are acceptable and work identically to one another; choose whichever you prefer, and stay consistent
  • Arrays count starting from zero NOT one; so item 1 is position [0], item 2 is position [1], and item 3 is position [2] … and so on

We’d like to acknowledge that we learned a great deal of our coding from W3Schools and TutorialsPoint, borrowing heavily from their teaching process and excellent code examples. We highly recommend both sites to deepen your experience, and further your coding journey. We’re just hitting the basics here at 1SMARTchicken.