Pb décodage flux RSS

WRInaute discret
Bonjour tout le monde, voici mon premier post sur ce forum tout beau tout neuf ( ça sent encore la peinture :) ); Bref, je veux récuperer plusieurs fux rss pour afficher sur un site, j'ai suivi les explications trouvé ici https://www.webrankinfo.com/analyses/art ... cation.php . Pas de pb, je récupère les flux , tout allez bien.....depuis ce matin j'ai un pb sur le décodage des flux sachant que les flux proviennent de wri. J'avais lu des posts : c'est que la page accueillante n'est pas codé de la même façon que la source, bon ok mais alors que dois ajouter comme commande ?
 
WRInaute accro
regarde du côté des fonctions utf8_encode (ou assimilées, selon le cas de figure, ça se fait dans un sens ou un autre)
 
WRInaute discret
Bonjour
je fais remonter mon post car dans un premier temps ne sachant pas programmer en php j'avais pris la solution d'encoder le site en uft8. ok tout marchait bien, mais en fait maintenant je voudrais récuperer des flux mais en iso. donc il faut que je passe par la fonction utf8_encode(). Le pb c'est que je ne sais pas comment la mettre en place. Si un progammeur pouvait me donner un coup de main :wink:
 
U
u94082
Guest
Salut,

Je suis pas sur d'avoir tout saisi mais si tu veux bien récupérer un flux en iso et l'encoder en utf-8 ya vraiment rien de compliqué.

$monrss = file_get_contents($urlrss);
$monrss = utf8_encode($monrss);

ou

$monrss = simplexml_load_file($urlrss);
$monrss = utf8_encode($monrss);

Voilà...

A+!
 
WRInaute discret
oui c'est ça je veux encodé un flux en iso et l'encoder en utf-8
voici mon code
Code:
<?php

// inclusion de la classe magpierss
require_once("magpierss/rss_fetch.inc");

function FeedParser($url_feed,$nb_items_affiches=4)
{
  // lecture du fichier distant (flux XML)
  $rss = fetch_rss($url_feed);

  // si la lecture s'est bien passee,
  // on lit les elements
  if (is_array($rss->items))
  {
   // on ne recupere que les elements les + recents
   $items = array_slice($rss->items,
    0, $nb_items_affiches);

   // debut de la liste
   // (vous pouvez indiquer un style CSS
   // pour la formater)
   $html = "<ul>\n";

   // boucle sur tous les elements
   foreach ($items as $item)
   {
    $html .= "<li>";
    $html .= "<a href=\"".$item['link']."\">";
    $html .= $item['title']."</a></li>\n";
   }
   $html .= "</ul>\n";
 }

 // retourne le code HTML a inclure dans la page
 return $html;
}

?>

et voici le tien
Code:
$monrss = file_get_contents($urlrss);
$monrss = utf8_encode($monrss);

mais je ne voie pas à quoi correspond $monrss et $urlrss dans mon code ??
 
U
u94082
Guest
C'est vrai que si t'utilise une classe c'est tout de suite bcp plus compliqué lourdingue :)

Code:
function FeedParser($url_feed,$nb_items_affiches=4)
{
  // lecture du fichier distant (flux XML)
  $rss = fetch_rss($url_feed);
  $rss = utf8_encode($rss);

  // si la lecture s'est bien passee,

ça fonctionne ?
 
WRInaute discret
voici ça vient de magpierss :
Code:
/*=======================================================================*\
	Function: fetch_rss: 
	Purpose:  return RSS object for the give url
			  maintain the cache
	Input:	  url of RSS file
	Output:	  parsed RSS object (see rss_parse.inc)

	NOTES ON CACHEING:  
	If caching is on (MAGPIE_CACHE_ON) fetch_rss will first check the cache.
	
	NOTES ON RETRIEVING REMOTE FILES:
	If conditional gets are on (MAGPIE_CONDITIONAL_GET_ON) fetch_rss will
	return a cached object, and touch the cache object upon recieving a
	304.
	
	NOTES ON FAILED REQUESTS:
	If there is an HTTP error while fetching an RSS object, the cached
	version will be return, if it exists (and if MAGPIE_CACHE_FRESH_ONLY is off)
\*=======================================================================*/

define('MAGPIE_VERSION', '0.61');

$MAGPIE_ERROR = "";

function fetch_rss ($url) {
	// initialize constants
	init();
	
	if ( !isset($url) ) {
		error("fetch_rss called without a url");
		return false;
	}
	
	// if cache is disabled
	if ( !MAGPIE_CACHE_ON ) {
		// fetch file, and parse it
		$resp = _fetch_remote_file( $url );
		if ( is_success( $resp->status ) ) {
			return _response_to_rss( $resp );
		}
		else {
			error("Failed to fetch $url and cache is off");
			return false;
		}
	} 
	// else cache is ON
	else {
		// Flow
		// 1. check cache
		// 2. if there is a hit, make sure its fresh
		// 3. if cached obj fails freshness check, fetch remote
		// 4. if remote fails, return stale object, or error
		
		$cache = new RSSCache( MAGPIE_CACHE_DIR, MAGPIE_CACHE_AGE );
		
		if (MAGPIE_DEBUG and $cache->ERROR) {
			debug($cache->ERROR, E_USER_WARNING);
		}
		
		
		$cache_status 	 = 0;		// response of check_cache
		$request_headers = array(); // HTTP headers to send with fetch
		$rss 			 = 0;		// parsed RSS object
		$errormsg		 = 0;		// errors, if any
		
		if (!$cache->ERROR) {
			// return cache HIT, MISS, or STALE
			$cache_status = $cache->check_cache( $url );
		}
		
		// if object cached, and cache is fresh, return cached obj
		if ( $cache_status == 'HIT' ) {
			$rss = $cache->get( $url );
			if ( isset($rss) and $rss ) {
				$rss->from_cache = 1;
				if ( MAGPIE_DEBUG > 1) {
				debug("MagpieRSS: Cache HIT", E_USER_NOTICE);
			}
				return $rss;
			}
		}
		
		// else attempt a conditional get
		
		// setup headers
		if ( $cache_status == 'STALE' ) {
			$rss = $cache->get( $url );
			if ( $rss->etag and $rss->last_modified ) {
				$request_headers['If-None-Match'] = $rss->etag;
				$request_headers['If-Last-Modified'] = $rss->last_modified;
			}
		}
		
		$resp = _fetch_remote_file( $url, $request_headers );
		
		if (isset($resp) and $resp) {
			if ($resp->status == '304' ) {
				// we have the most current copy
				if ( MAGPIE_DEBUG > 1) {
					debug("Got 304 for $url");
				}
				// reset cache on 304 (at minutillo insistent prodding)
				$cache->set($url, $rss);
				return $rss;
			}
			elseif ( is_success( $resp->status ) ) {
				$rss = _response_to_rss( $resp );
				if ( $rss ) {
					if (MAGPIE_DEBUG > 1) {
						debug("Fetch successful");
					}
					// add object to cache
					$cache->set( $url, $rss );
					return $rss;
				}
			}
			else {
				$errormsg = "Failed to fetch $url. ";
				if ( $resp->error ) {
					# compensate for Snoopy's annoying habbit to tacking
					# on '\n'
					$http_error = substr($resp->error, 0, -2); 
					$errormsg .= "(HTTP Error: $http_error)";
				}
				else {
					$errormsg .=  "(HTTP Response: " . $resp->response_code .')';
				}
			}
		}
		else {
			$errormsg = "Unable to retrieve RSS file for unknown reasons.";
		}
		
		// else fetch failed
		
		// attempt to return cached object
		if ($rss) {
			if ( MAGPIE_DEBUG ) {
				debug("Returning STALE object for $url");
			}
			return $rss;
		}
		
		// else we totally failed
		error( $errormsg );	
		
		return false;
		
	} // end if ( !MAGPIE_CACHE_ON ) {
} // end fetch_rss()


J'éspère que ça pourra t'aider :roll:
 
U
u94082
Guest
Bon ben en fait il faudrait modifier d'autres fonctions alors le plus simple est de modifier FeedParser() comme suit
Code:
function FeedParser($url_feed,$nb_items_affiches=4)
{
  // lecture du fichier distant (flux XML)
  $rss = fetch_rss($url_feed);

  // si la lecture s'est bien passee,
  // on lit les elements
  if (is_array($rss->items))
  {
   // on ne recupere que les elements les + recents
   $items = array_slice($rss->items,
    0, $nb_items_affiches);

   // debut de la liste
   // (vous pouvez indiquer un style CSS
   // pour la formater)
   $html = "<ul>\n";

   // boucle sur tous les elements
   foreach ($items as $item)
   {
    $html .= "<li>";
    $html .= "<a href=\"".utf8_encode($item['link'])."\">";
    $html .= utf8_encode($item['title'])."</a></li>\n";
   }
   $html .= "</ul>\n";
}

// retourne le code HTML a inclure dans la page
return $html;
}

C'est bon ?
 
WRInaute discret
alors ça fonctionne bien sur les flux qui sont encodé en iso :lol: mais pour ceux qui sont encodé en uft8, ils sont mal décodé :(
 
U
u94082
Guest
Logique... Euh donc faut utiliser mb_detect_encoding.

Code:
// boucle sur tous les elements
   foreach ($items as $item)
   {
    $encodage = mb_detect_encoding($item['link']);
    if ( $encodage != 'UTF-8') {
        $link = utf8_encode($item['link']);
        $title = utf8_encode($item['title']);
    } else {
        $link = $item['link'];
        $title = $item['title'];
    }
    $html .= "<li>";
    $html .= "<a href=\"".$link."\">";
    $html .= $title."</a></li>\n";
   }

C'est pas l'idéal mais si ça fonctionne...
 
WRInaute discret
non c'est pareil voici à quoi ressemble le code

Code:
<?php
// inclusion de la classe magpierss
require_once("magpierss/rss_fetch.inc");
function FeedParser($url_feed,$nb_items_affiches=4)
{
  // lecture du fichier distant (flux XML)
  $rss = fetch_rss($url_feed);

  // si la lecture s'est bien passee,
  // on lit les elements
  if (is_array($rss->items))
  {
   // on ne recupere que les elements les + recents
   $items = array_slice($rss->items,
    0, $nb_items_affiches);

   // debut de la liste
   // (vous pouvez indiquer un style CSS
   // pour la formater)
   $html = "<ul>\n";

// boucle sur tous les elements
   foreach ($items as $item)
   {
    $encodage = mb_detect_encoding($item['link']);
    if ( $encodage != 'UTF-8') {
        $link = utf8_encode($item['link']);
        $title = utf8_encode($item['title']);
    } else {
        $link = $item['link'];
        $title = $item['title'];
    }
    $html .= "<li>";
    $html .= "<a href=\"".$link."\">";
    $html .= $title."</a></li>\n";
   }
   }

   // retourne le code HTML a inclure dans la page
return $html;
}


?>
 
U
u94082
Guest
Et en changeant
Code:
$encodage = mb_detect_encoding($item['link']);
par
Code:
$encodage = mb_detect_encoding($item['link'], 'auto');
?
 
U
u94082
Guest
Oh punaise :x Quelle galère ces encodages !
Ecoute je sèche là... Quelqu'un d'autre aurait-une idée ?
Quels sont les flux que tu veux récup ?
 
WRInaute discret
et si je met par exemple la page qui acceuille les flux iso en iso ? ça craint d'avoir des pages d'un même site avec un encodage différent ?
 
U
u94082
Guest
Bah disons que c'est pas super propre...

T'es vraiment obligé d'utiliser cette classe ? Tu n'as que les flux de ces deux sites à récupérer ?

Pourquoi ne pas faire un truc du genre

Code:
function recuprss($url) {

$monrss = file_get_contents($url);
$source = parse_url($url);

...traitement du rss...

switch ($source['host']){
   case 'journaldunet.com':
      $link = utf8_encode($item['link']);
      $title = utf8_encode($item['title']);
   break;
   case 'webrankinfo.com':
      $link = $item['link'];
      $title = $item['title'];
   break;
}

...fin traitement...

}

Mais bon avec la fonction avec mb_detect_encoding ça devrait fonctionner vu que c'est fait pour ça...
 
WRInaute discret
je vois pas ce que c'est une classe... je compte récuperer d'autres flux d'autres sites, je peux mettre en place un autre style de syndication si ça marche dans les deux sens iso et utf-8.....ça semble bizarre puisque c'est quand même un code et un tuto que j'ai récupéré ici.
 
U
u94082
Guest
Autre tentative :)
Code:
function FeedParser($url_feed,$nb_items_affiches=4)
{
  // lecture du fichier distant (flux XML)
  $rss = fetch_rss($url_feed);

  // si la lecture s'est bien passee,
  // on lit les elements
  if (is_array($rss->items))
  {
   // on ne recupere que les elements les + recents
   $items = array_slice($rss->items,
    0, $nb_items_affiches);

   // debut de la liste
   // (vous pouvez indiquer un style CSS
   // pour la formater)
   $html = "<ul>\n";

// boucle sur tous les elements
   foreach ($items as $item)
   {
    $encodage = mb_detect_encoding($item['title']);
    if ( $encodage == 'UTF-8') {
        $link = $item['link'];
        $title = $item['title'];
    } else {
        $link = utf8_encode($item['link']);
        $title = utf8_encode($item['title']);
    }
    $html .= "<li>";
    $html .= "<a href=\"".$link."\">";
    $html .= $title."</a></li>\n";
   }
   }

   // retourne le code HTML a inclure dans la page
return $html;
}

Allez on y croit.... :roll:

Edit : Une classe c'est un set de fonctions : MagpieRSS
 
WRInaute discret
retour au pt de départ : bien décodé pour un flux utf-8 mais mal décodé ( les é ) pour un flux iso-8859-1.
 
U
u94082
Guest
Ouè... ben c'est vraiment cheulou 8O . Tu pourrais me donner l'adresse des 2 flux sur lesquels tu fais le test ?
 
U
u94082
Guest
C'est bien ce que je craignais... Vla le bazard... le rss WRI est bien en utf8 mais certains textes sont en ISO et inversement pour JDN, tout ça étant variable... Je cherche une solution...
 
U
u94082
Guest
ça fait un peu crado mais bon... :)

Code:
function FeedParser($url_feed,$nb_items_affiches=4)
{
// lecture du fichier distant (flux XML)
$rss = fetch_rss($url_feed);
// si la lecture s'est bien passee,
// on lit les elements
if (is_array($rss->items)){
	// on ne recupere que les elements les + recents
	$items = array_slice($rss->items, 0, $nb_items_affiches);
	// debut de la liste
	// (vous pouvez indiquer un style CSS
	// pour la formater)
	$html = "<ul>\n";
	// boucle sur tous les elements
	foreach ($items as $item){
		if (mb_detect_encoding($item['link']) == 'UTF-8') {
			$link = $item['link'];
		} else {
			$link = utf8_encode($item['link']);
		}
		if (mb_detect_encoding($item['title']) == 'UTF-8') {
			$title = $item['title'];
		} else {
			$title = utf8_encode($item['title']);
		}
		$html .= '<li><a href="'.$link.'">'.$title.'</a></li>'."\n";
	}
	$html .= "</ul>\n";
}
// retourne le code HTML a inclure dans la page
return $html;
}

:?:
Edit : correction.
 
U
u94082
Guest
Bon ya un truc qui me chifonne, je fait le test avec le code ci-dessous et à aucun moment je n'ai de soucis d'accents.
Ta page contient bien <meta http-equiv="content-type" content="text/html; charset=utf-8" /> ?

Code:
function myparser($rssurl, $nbitems = 4) {
	$rss = simplexml_load_file($rssurl);
	$xquery = '//channel/item';
	$items = $rss->xpath($xquery);
	if (is_array($items)) {
		$items = array_slice($items, 0, $nbitems);
		$html = '<ul>';
		foreach ($items as $item) {
			$html .= '<li><a href="'.$item->link.'">'.$item->title.'</a></li>';
		}
		$html .= '</ul>';
	}
return $html;
}

$url = 'http://www.journaldunet.com/rss/breve/publicite/';
//$url = 'https://www.webrankinfo.com/dossiers/feed';

echo myparser($url);

Edit : Ton troisième lien renvoie une page blanche...
 
WRInaute discret
oui oui <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> pour toutes les pages et le troisième lien renvoie une page blanche oui :(
 
U
u94082
Guest
oh ben non... tu vas economiser un paquet de Ko :)

Edit : Oui, tu colle la fonction myparser() dans un fichier. Ensuite ds chaque fichier include 'fichiercontenantmyparser.php' et pas require_once '****' c'est bien plus lent...
 
WRInaute discret
j'ai une erreur:
Fatal error: Call to undefined function: simplexml_load_file() in /homepages/30/d273401709/htdocs/myparser.php on line 3
 
U
u94082
Guest
Alors tu dois certainement activer une option pour tourner sous php5, car au vue de l'erreur tu dois tourner sous php4. Simplexml est intégré au noyau de php5 donc...
 
WRInaute discret
j'étais en train de voir ça http://faq.1and1.fr/scripts/php/5.html je fais le necessaire

edit: j'ai suivi leurs instructions voici l'erreur
Warning: simplexml_load_file() [function.simplexml-load-file]: URL file-access is disabled in the server configuration in /homepages/30/d273401709/htdocs/myparser.php on line 3
 
U
u94082
Guest
Voilà impeccable, normalement ça va le faire...

Edit : Ils craquent chez 1&1 ! Et en modifiant comme ça ?
Code:
function myparser($rssurl, $nbitems = 10) {
	$rss = file_get_contents($rssurl);
	$rss = simplexml_load_string($rss);
	$xquery = '//channel/item';
	$items = $rss->xpath($xquery);
	if (is_array($items)) {
		$items = array_slice($items, 0, $nbitems);
		$html = '<ul>';
		foreach ($items as $item) {
			$html .= '<li><a href="'.$item->link.'">'.$item->title.'</a></li>';
		}
		$html .= '</ul>';
	}
return $html;
}
 
U
u94082
Guest
Ouè c'est vraiment anormal... même chez la plupart des hébergeurs gratuits ya aucun soucis...

Edit : Et en passant par le DOM ?

Code:
function myparser($rssurl, $nbitems = 10) {
	$rssbase = file_get_contents($rssurl);
	$domxml = DOMDocument::loadXML($rssbase);
	$rss = simplexml_import_dom($domxml);
	$xquery = '//channel/item';
	$items = $rss->xpath($xquery);
	if (is_array($items)) {
		$items = array_slice($items, 0, $nbitems);
		$html = '<ul>';
		foreach ($items as $item) {
			$html .= '<li><a href="'.$item->link.'">'.$item->title.'</a></li>';
		}
		$html .= '</ul>';
	}
return $html;
}
 
U
u94082
Guest
Bon, c'est hyper bridé chez 1&1 :roll:
Essaye avec ça ?
Code:
function curl_file_get_contents($url){
	$ch = curl_init();
    	$timeout = 30;
    	curl_setopt($ch, CURLOPT_URL, $url);
    	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    	curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    	$file_contents = curl_exec($ch);
    	curl_close($ch);
return $file_contents;
}

function myparser($rssurl, $nbitems = 10) {
	$rssbase = curl_file_get_contents($rssurl);
	$domxml = DOMDocument::loadXML($rssbase);
	$rss = simplexml_import_dom($domxml);
	$xquery = '//channel/item';
	$items = $rss->xpath($xquery);
	if (is_array($items)) {
		$items = array_slice($items, 0, $nbitems);
		$html = '<ul>';
		foreach ($items as $item) {
			$html .= '<li><a href="'.$item->link.'">'.$item->title.'</a></li>';
		}
		$html .= '</ul>';
	}
return $html;
}
 
WRInaute discret
voilà ce que me retourne phpinfo() : PHP Version 5.2.8 ????
voici le code que je met
Code:
<?php
function curl_file_get_contents($url){
   $ch = curl_init();
       $timeout = 30;
       curl_setopt($ch, CURLOPT_URL, $url);
       curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
       curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
       $file_contents = curl_exec($ch);
       curl_close($ch);
return $file_contents;
}

function myparser($rssurl, $nbitems = 10) {
   $rssbase = curl_file_get_contents($rssurl);
   $domxml = DOMDocument::loadXML($rssbase);
   $rss = simplexml_import_dom($domxml);
   $xquery = '//channel/item';
   $items = $rss->xpath($xquery);
   if (is_array($items)) {
      $items = array_slice($items, 0, $nbitems);
      $html = '<ul>';
      foreach ($items as $item) {
         $html .= '<li><a href="'.$item->link.'">'.$item->title.'</a></li>';
      }
      $html .= '</ul>';
   }
return $html;

$url = 'http://www.journaldunet.com/rss/breve/publicite/';
//$url = 'https://www.webrankinfo.com/dossiers/feed';

echo myparser($url);
?>

et voici l'erreur : Parse error: syntax error, unexpected $end in /homepages/30/d273401709/htdocs/myparser.php on line 36
 
U
u94082
Guest
Ouè j'ai vu :? Tente le code juste au dessus avec curl_file_get_contents()
 
U
u94082
Guest
Edit : Il manque } en dessous de return $html;

Bueno, ça fonctionne donc le code ci-dessous tu le met tel quel dans toute la page myparser.php
Code:
    <?php
    function curl_file_get_contents($url){
       $ch = curl_init();
           $timeout = 30;
           curl_setopt($ch, CURLOPT_URL, $url);
           curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
           curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
           $file_contents = curl_exec($ch);
           curl_close($ch);
    return $file_contents;
    }

    function myparser($rssurl, $nbitems = 10) {
       $rssbase = curl_file_get_contents($rssurl);
       $domxml = DOMDocument::loadXML($rssbase);
       $rss = simplexml_import_dom($domxml);
       $xquery = '//channel/item';
       $items = $rss->xpath($xquery);
       if (is_array($items)) {
          $items = array_slice($items, 0, $nbitems);
          $html = '<ul>';
          foreach ($items as $item) {
             $html .= '<li><a href="'.$item->link.'">'.$item->title.'</a></li>';
          }
          $html .= '</ul>';
       }
    return $html;
    }

    ?>

Ensuite dans chaque page qui doit parser un rss tu met tout en haut ton " include 'myparser.php' " et à l'endroit ou tu veux voir apparaître les liens tu met
Code:
    $url = 'http://www.journaldunet.com/rss/breve/publicite/';
    ou
    $url = 'https://www.webrankinfo.com/dossiers/feed';
    ou
    $url = 'adressedunautrerss'
    echo myparser($url);

Sur ce bonne nuit, en espérant que ça fonctionne...
 
WRInaute discret
ok ça fonctionne :P :P :P :P :P pour les deux encodages je récapitule les deux codes :
dans myparser.php :
Code:
            <?php
            function curl_file_get_contents($url){
               $ch = curl_init();
                   $timeout = 30;
                   curl_setopt($ch, CURLOPT_URL, $url);
                   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                   curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
                   $file_contents = curl_exec($ch);
                   curl_close($ch);
            return $file_contents;
            }

            function myparser($rssurl, $nbitems = 10) {
               $rssbase = curl_file_get_contents($rssurl);
               $domxml = DOMDocument::loadXML($rssbase);
               $rss = simplexml_import_dom($domxml);
               $xquery = '//channel/item';
               $items = $rss->xpath($xquery);
               if (is_array($items)) {
                  $items = array_slice($items, 0, $nbitems);
                  $html = '<ul>';
                  foreach ($items as $item) {
                     $html .= '<li><a href="'.$item->link.'">'.$item->title.'</a></li>';
                  }
                  $html .= '</ul>';
               }
            return $html;
            }

            $url = 'http://www.journaldunet.com/rss/breve/publicite/';
            //$url = 'https://www.webrankinfo.com/dossiers/feed';

            echo myparser($url);
            ?>

et dans la page appelante
Code:
<?php include 'myparser.php';?>

merci :D antinomx ce Post t'es dédié :wink:
Bonne nuit
 
U
u94082
Guest
Zikou a dit:
ok ça fonctionne :P :P :P :P :P pour les deux encodages je récapitule les deux codes :

A la bonne heure !
Donc en conclusion c'est MagpieRSS qui fout la mouise... Sa seule qualité c'est de gérer un système de cache, mais bon c'est pas bien compliqué d'en faire un pour myparser()...

Zikou a dit:
merci :D antinomx

Ya pas d'koi ! :)

Pour ceux qui reprendraient le code, commencez par celui posté quelques message plus haut, sans le passage par le DOM et Curl qui ralenti quand même la chose.

A+ !
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut