PHP.mk документација

DOMXPath::registerPhpFunctions

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

domxpath.registerphpfunctions.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека domxpath.registerphpfunctions.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
DOMXPath::registerPhpFunctions

Референца за `domxpath.registerphpfunctions.php` со подобрена типографија и навигација.

domxpath.registerphpfunctions.php

DOMXPath::registerPhpFunctions

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

DOMXPath::registerPhpFunctionsRegister PHP functions as XPath functions

= NULL

public DOMXPath::registerPhpFunctions(string|array|null $restrict = null): void

Регистрирајте PHP функции како XPath функции

Параметри

restrict

Овој метод овозможува користење на PHP функции во XPath изрази.

Овој параметар може да биде едно од следново: а string (име на функција), индексиран array список на имиња на функции, или асоцијативен array со клучеви кои се името на функцијата и соодветната вредност е callable.

Вратени вредности

Не се враќа вредност.

Errors/Exceptions

  • Фрла ValueError ако името на повикот не е валидно.
  • Фрла ValueError if options содржи невалидна опција.
  • Фрла ValueError if overrideEncoding е непознато кодирање.
  • Фрла TypeError ако даден повик не може да се повика.

Дневник на промени

Верзија = NULL
8.4.0 Невалидните имиња на повици сега фрлаат а ValueError. Поминувањето на запис што не може да се повика сега фрла а TypeError.
8.4.0 Сега е можно да се користи callableза повици при користење restrict with array entries.

Примери

Користете го овој параметар за да дозволите повикување само на одредени функции од XPath. 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>

Пример #2 Пример #1 book.xml with php:functionString

<?php
$doc
= new DOMDocument;
$doc->load('examples/book-simple.xml');

$xpath = new DOMXPath($doc);

// Register the php: namespace (required)
$xpath->registerNamespace("php", "http://php.net/xpath");

// Register PHP functions (no restrictions)
$xpath->registerPhpFunctions();

// Call substr function on the book title
$nodes = $xpath->query('//book[php:functionString("substr", title, 0, 3) = "PHP"]');

echo
"Found {$nodes->length} books starting with 'PHP':\n";
foreach (
$nodes as $node) {
$title = $node->getElementsByTagName("title")->item(0)->nodeValue;
$author = $node->getElementsByTagName("author")->item(0)->nodeValue;
echo
"$title by $author\n";
}

?>

Горниот пример ќе прикаже нешто слично на:

Found 2 books starting with 'PHP':
PHP Basics by Jim Smith
PHP Secrets by Jenny Smythe

Пример #3 Пример #1 book.xml with php:function

<?php
$doc
= new DOMDocument;
$doc->load('examples/book-simple.xml');

$xpath = new DOMXPath($doc);

// Register the php: namespace (required)
$xpath->registerNamespace("php", "http://php.net/xpath");

// Register PHP functions (has_multiple only)
$xpath->registerPhpFunctions("has_multiple");

function
has_multiple($nodes) {
// Return true if more than one author
return count($nodes) > 1;
}
// Filter books with multiple authors
$books = $xpath->query('//book[php:function("has_multiple", author)]');

echo
"Books with multiple authors:\n";
foreach (
$books as $book) {
echo
$book->getElementsByTagName("title")->item(0)->nodeValue . "\n";
}

?>

Горниот пример ќе прикаже нешто слично на:

Books with multiple authors:
PHP Basics

Пример #4 Пример #1 book.xml Оваа функција е еквивалентна на повикување callable

<?php
$doc
= new DOMDocument;
$doc->load('examples/book-simple.xml');

$xpath = new DOMXPath($doc);

// Register the php: namespace (required)
$xpath->registerNamespace("php", "http://php.net/xpath");

// Register PHP functions (has_multiple only)
$xpath->registerPhpFunctions(["has_multiple" => fn ($nodes) => count($nodes) > 1]);

// Filter books with multiple authors
$books = $xpath->query('//book[php:function("has_multiple", author)]');

echo
"Books with multiple authors:\n";
foreach (
$books as $book) {
echo
$book->getElementsByTagName("title")->item(0)->nodeValue . "\n";
}

?>

Горниот пример ќе прикаже нешто слично на:

Books with multiple authors:
PHP Basics

Види Исто така

Белешки од корисници

Нема белешки од корисници за оваа страница.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.