Changeset 97807 in spip-zone


Ignore:
Timestamp:
May 16, 2016, 6:37:26 PM (4 years ago)
Author:
marcimat@…
Message:

Non décidément, try / catch ce n'est pas suffisant pour attraper les erreurs
de simplexml_load_string() . Il faut un truc un peu plus corriace.

On le met en place : du coup, on voit bien que Weather ne fonctionne plus très bien :/

Location:
_plugins_/rainette/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/rainette/trunk/inc/phraser.php

    r96286 r97807  
    1616        include_spip('inc/distant');
    1717        $flux = recuperer_page($url);
     18
    1819        if (!$flux) {
    1920                spip_log("URL indiponible : $url", "rainette");
     
    2324        // Tranformation de la chaine xml reçue en tableau associatif
    2425        $convertir = charger_fonction('simplexml_to_array', 'inc');
     26
     27        // Pouvoir attraper les erreurs de simplexml_load_string() !!!
     28        // http://stackoverflow.com/questions/17009045/how-do-i-handle-warning-simplexmlelement-construct/17012247#17012247
     29        set_error_handler(function($errno, $errstr, $errfile, $errline) {
     30                throw new Exception($errstr, $errno);
     31        });
     32
    2533        try {
    2634                $xml = $convertir(simplexml_load_string($flux), $utiliser_namespace);
    2735                $xml = $xml['root'];
    2836        } catch (Exception $e) {
     37                restore_error_handler();
    2938                spip_log("Erreur analyse xml : " . $e->getMessage(), "rainette");
    3039                return array();
    3140        }
     41
     42        restore_error_handler();
    3243
    3344        return $xml;
     
    4455        include_spip('inc/distant');
    4556        $flux = recuperer_page($url);
     57
    4658        if (!$flux) {
    4759                spip_log("URL indiponible : $url", "rainette");
  • _plugins_/rainette/trunk/paquet.xml

    r97803 r97807  
    22        prefix="rainette"
    33        categorie="divers"
    4         version="3.0.2"
     4        version="3.0.3"
    55        etat="dev"
    66        compatibilite="[3.0.11;3.1.*]"
Note: See TracChangeset for help on using the changeset viewer.