Bonjour.

Avec DOMDocument, j'essaie de récupérer dans la variable $description le tout premier paragraphe contenant le Titre $wikipedia_title:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$url= "https://en.wikipedia.org/wiki/Raphinha_(footballer,_born_1996)";
 
libxml_use_internal_errors(true);
$parser = new DOMDocument();
 
$parser->loadHTMLFile($url);
 
//Extractions the title using #firstHeading
$wikiped_title = $parser->getElementById("firstHeading");
$wikipedia_title = $wikiped_title->nodeValue;					// modifié
echo $wikipedia_title."<br><br>";
 
$paragraphs = $parser->getElementsByTagName("p");				// modifié
$description = "";
 
foreach($paragraphs as $paragraph) {
	// "str_starts_with" et "str_contains" ::: PHP8
	// if(str_starts_with($paragraph, $wikipedia_title) or str_contains($paragraph, $wikipedia_title)) {
	// echo $paragraph->nodeValue."<br><br>";
	if (stripos($paragraph->nodeValue, $wikipedia_title) !== false) {
		// On récupère la première valeur (texte) du tout 1er élément de tous les paragraphes qui commence par le Titre Wiki:
		$description = $paragraph->nodeValue->item(0);
	}
}
echo $description."<br><br>";
Mais quand j'essaie de vérifier avec stripos, si le paragraphe $paragraph->nodeValue contient le titre $wikipedia_title pour en récupérer le tout premier avec item(0) qui est stocké dans la variable $description, rien ne s'affiche.

Je me demande bien pourquoi alors que quand je fais un echo $paragraph->nodeValue."<br><br>"; dans la même foreach, je vois bien afficher tous les paragraphes.

Je voudrais donc, dans un premier temps, vérifier si ce paragraphe contient un contenu entre-crochet (Exemple: [2][3][4]), si tel est le cas, supprimer tous les contenus entre-crochet.

Et dans un second temps, récupérer dans la variable $description, le tout premier paragraphe contenant le Titre $wikipedia_title ???



Merci de m'aider.