PHP Classes

File: README.md

Recommend this page to a friend!
  Classes of Alliaume Hugo   PHP Xidel   README.md   Download  
File: README.md
Role: Documentation
Content type: text/markdown
Description: Auxiliary data
Class: PHP Xidel
Extract information from HTML using the Xidel tool
Author: By
Last change: Update README.md
oui
Date: 8 years ago
Size: 5,308 bytes
 

Contents

Class file image Download

Xidel

Une classe PHP qui permet d'utiliser le parseur de données HTML/XML avec du code PHP.

Comment l'utiliser ?

Premièrement, il faut inclure la classe et l'instancier

<?php
require 'class.Xidel.php';
$xidel = new Xidel();
// ou
$xidel = new Xidel('http://exemple.com');
// ou
$xidel = new Xidel('<!DOCTYPE html><html>.....</html>');

// Pro-tip : Tu peux aussi utiliser la méthode 'setData'
$xidel = new Xidel();
$xidel->setData('http://exemple.com');

Deuxièment, il faut spécifier différentes le format d'entrée, l'encodage, et le format de sortie

// Le format d'entrée sera en HTML
$xidel->setInputFormat(Xidel::INPUT_FORMAT_HTML);

// L'encodage sera de l'UTF-8 (par défaut)
$xidel->setOutputEncoding(Xidel::OUTPUT_ENCODING_UTF8);

// Le format de sortie sera du HTML
$xidel->setOutputFormat(Xidel::OUTPUT_FORMAT_HTML);

Troisèment, il faut définir un ou plusieurs contenu(s) à éxtraire

// Récupère un <a> pour couple attribut/valeur 'title="Home"
$xidel->setExtract('a[title="Home"]');

// Récupère les <a> qui ont pour parent `*[id="ft"] > ul > li`
$xidel->setExtract('//*[@id="ft"]/ul/li/a', Xidel::EXTRACT_KIND_XPATH);

// Exécution de Xidel et retour des données
$content = $xidel->process();

// On affiche les erreurs (vaut 'empty' s'il n'y en a pas eu)
var_dump($xidel->errors());

Documentation / API

Constantes

Format d'entrée

  • INPUT_FORMAT_AUTO = 0 : Format d'entrée en automatique (défaut)
  • INPUT_FORMAT_HTML = 1 : Format d'entrée en HTML
  • INPUT_FORMAT_XML = 2 : Format d'entrée en XML
  • INPUT_FORMAT_XMLSTRICT = 3 : Format d'entrée en XML-strict
  • INPUT_FORMAT_JSON = 4 : Format d'entrée en JSON

Type d'extraction

  • EXTRACT_KIND_CSS = 0 : Type d'extraction CSS (défaut)
  • EXTRACT_KIND_XPATH = 1 : Type d'extraction XPath
  • EXTRACT_KIND_XPATH2 = 2 : Type d'extraction XPath n°2
  • EXTRACT_KIND_XPATH3 = 3 : Type d'extraction XPath n°3
  • EXTRACT_KIND_XQUERY = 4 : Type d'extraction XQuery
  • EXTRACT_KIND_XQUERY1 = 5 : Type d'extraction XQuery n°1
  • EXTRACT_KIND_XQUERY3 = 6 : Type d'extraction XQuery n°3
  • EXTRACT_KIND_TEMPLATEFILE = 7 : Type d'extraction avec un fichier template
  • EXTRACT_KIND_TEMPLATEACTION = 8 : Type d'extraction avec une action template

Encodage pour la sortie

  • OUTPUT_ENCODING_UTF8 = 0 : Encodage UTF-8 (défaut)
  • OUTPUT_ENCODING_LATIN1 = 1 : Encodage Latin-1
  • OUTPUT_ENCODING_UTF16BE = 2 : Encodage UTF-16BE
  • OUTPUT_ENCODING_UTF16LE = 3 : Encodage UTF-16LE
  • OUTPUT_ENCODING_OEM = 4 : Encodage OEM
  • OUTPUT_ENCODING_INPUT = 5 : Encodage INPUT

Format de la sortie

  • OUTPUT_FORMAT_ADHOC = 0 : Format adhoc (défaut)
  • OUTPUT_FORMAT_XML = 1 : Format XML
  • OUTPUT_FORMAT_HTML = 2 : Format HTML
  • OUTPUT_FORMAT_XMLWRAPPED = 3 : Format XML-wrapped
  • OUTPUT_FORMAT_JSONWRAPPED = 4 : Format JSON-wrapped
  • OUTPUT_FORMAT_BASH = 5 : Format Bash
  • OUTPUT_FORMAT_CMD = 6 : Format cmd

Méthodes

null setData(string $data)

Indique à Xidel les données qui seront traitées. $data* peut être une URL, un fichier, des données brutes, ou l'entrée standard (STDIN)

bool setInputFormat(int $format)

Indique à Xidel le format d'entrée. Retourne true si le format spécifié est reconnu par Xidel, sinon false. $format* est une des constantes &laquo; format d'entrée &raquo;

bool setExtract(string $selector, int $extractKind = Xidel::EXTRACT_KIND_CSS)

Indique à Xidel les différentes extracts à effectuer. Retourne true si le type d'extraction spécifié est reconnu par Xidel, sinon false. $selector* est le sélecteur à utiliser $extractKind* est une des constantes &laquo; type d'extraction &raquo;

bool setOutputEncoding(int $encoding)

Indique à Xidel l'encodage de la sortie. Retourne true si l'encodage spécifié est reconnu par Xidel, sinon false. $encoding* est une des constantes de &laquo; encodage pour la sortie &raquo;

bool setOutputFormat(int $format)

Indique à Xidel le format de la sortie. Retourne true si le format spécifié est reconnu par Xidel, sinon false. $format* est une des constantes de &laquo; format de la sortie &raquo;

null setCustomParam(string $param, string $value = null)

Créer un couple $param => $value personnalisé pour la ligne de commande. $param* est le nom du paramètre $value est la valeur du paramètre

string buildCommand()

Construit et retourne la commande Xidel qui sera éxecutée plus tard.

string getCommand()

Retourne la commande Xidel qui sera éxecutée par PHP.

array|string process()

Exécute la commande générée par la méthode buildCommand. Retourne un tableau contenant le résultat de la commande, ou une chaîne de caractères si le tableau a une taille égale à 1.

array errors()

Retourne un tableau contenant les erreurs qui ont étés déclenchées pendant l'appel des méthodes de Xidel

null reset()

Supprime la commande courante et vide le tableau contenant les extracts, afin de procéder à un nouveau parsage.