Comment récupérer dans mon Code PHP et via DOMDocument le DEBUT et la FIN du CONTENU de la balise "small" ???

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Comment récupérer dans mon Code PHP et via DOMDocument le DEBUT et la FIN du CONTENU de la balise "small" ???

Re: Comment récupérer dans mon Code PHP et via DOMDocument le DEBUT et la FIN du CONTENU de la balise "small" ???

par chegmarco » 11 juin 2022, 21:43

Mais j'obtiens moi:

Code : Tout sélectionner

string(3) "()" string(3) "()" string(3) "()" string(3) "()" string(3) "()" string(3) "()" string(16) "(depuis le )" string(6) "()" string(6) "()" string(6) "()" string(6) "()" string(6) "()" string(19) "(consulté le )" string(19) "(consulté le )" string(19) "(consulté le )" string(3) "()" string(3) "()" string(19) "(consulté le )" string(3) "(, consulté le )" string(19) "(consulté le )" string(19) "(consulté le )" string(19) "(consulté le )"
Ce qui n'est pas ce que je recherche exactement. Je précise que je sous PHP7.4 (Laragon).

Et je me demande donc ce qui ne va pas ???

Re: Comment récupérer dans mon Code PHP et via DOMDocument le DEBUT et la FIN du CONTENU de la balise "small" ???

par Spols » 11 juin 2022, 21:36

<?php
libxml_use_internal_errors(true);
$parser = new DOMDocument();
$parser->loadHTMLFile("https://fr.wikipedia.org/wiki/Mark_Zuckerberg");
$get_small_tags = $parser->getElementsByTagName("small");
foreach ($get_small_tags as $get_small_tag) {
	$var = 'start_small_tag_contain';
	$start_small_tag_contain = '';
	$end_small_tag_contain = '';
	foreach($get_small_tag->childNodes as $child){
		if ($child->nodeType == 3) {
			$$var .= $child->wholeText;
		} else if ($child->nodeType == 1) {
			$$var .= '<'.$child->tagName;
			$var = 'end_small_tag_contain';
			$$var .= '</'.$child->tagName.'>';
		}
	}
	var_dump($start_small_tag_contain);
	var_dump($end_small_tag_contain);
}
et regarde la source (ctrl + U)

moi j'obtiens

Code : Tout sélectionner

[...]:19:string '(<a' (length=3) [...]:20:string '</a>)' (length=5) [...]:19:string '(<a' (length=3) [...]:20:string '</a>)' (length=5) [...]:19:string '(<a' (length=3) [...]:20:string '</a>)' (length=5) [...]:19:string '(<a' (length=3) [...]:20:string '</a>)' (length=5) [...]:19:string '(<a' (length=3) [...]:20:string '</a>)' (length=5) [...]:19:string '(<a' (length=3) [...]:20:string '</a>)' (length=5) [...]:19:string '(depuis le <time' (length=16) [...]:20:string '</time>)' (length=8) [...]:19:string '(<time' (length=6) [...]:20:string '</time>)' (length=8) [...]:19:string '(<time' (length=6) [...]:20:string '</time>)' (length=8) [...]:19:string '(<time' (length=6) [...]:20:string '</time>)' (length=8) [...]:19:string '(<time' (length=6) [...]:20:string '</time>)' (length=8) [...]:19:string '(<time' (length=6) [...]:20:string '</time>)' (length=8) [...]:19:string '(consulté le <time' (length=19) [...]:20:string '</time>)' (length=8) [...]:19:string '(consulté le <time' (length=19) [...]:20:string '</time>)' (length=8) [...]:19:string '(consulté le <time' (length=19) [...]:20:string '</time>)' (length=8) [...]:19:string '(<a' (length=3) [...]:20:string '</a>)' (length=5) [...]:19:string '(<a' (length=3) [...]:20:string '</a>)' (length=5) [...]:19:string '(consulté le <time' (length=19) [...]:20:string '</time>)' (length=8) [...]:19:string '(<a' (length=3) [...]:20:string '</a>, consulté le <time</time>)' (length=32) [...]:19:string '(consulté le <time' (length=19) [...]:20:string '</time>)' (length=8) [...]:19:string '(consulté le <time' (length=19) [...]:20:string '</time>)' (length=8) [...]:19:string '(consulté le <time' (length=19) [...]:20:string '</time>)' (length=8)

Re: Comment récupérer dans mon Code PHP et via DOMDocument le DEBUT et la FIN du CONTENU de la balise "small" ???

par chegmarco » 11 juin 2022, 21:16

Rien n'a changé. Ce que je souhaiterais c'est que:

1 - La variable de début:
$start_small_tag_contain
retourne (le début de la parenthèse "(" et l'ouverture de la balise "a"):

2 - Et que celle de la fin:
$start_small_tag_contain


soit égal à (la fin de la balise "a" et aussi celle de la parenthèse ")" ):

Code : Tout sélectionner

</a>)
J'ai vraiment besoin de votre aide.

Re: Comment récupérer dans mon Code PHP et via DOMDocument le DEBUT et la FIN du CONTENU de la balise "small" ???

par Spols » 11 juin 2022, 21:07

regarde le code source

mais c'est vrai que j'ai oublié une ligne
<?php
libxml_use_internal_errors(true);
$parser = new DOMDocument();
$parser->loadHTMLFile("https://fr.wikipedia.org/wiki/Mark_Zuckerberg");
$get_small_tags = $parser->getElementsByTagName("small");
$start_small_tag_contain = '';
$end_small_tag_contain = '';
foreach ($get_small_tags as $get_small_tag) {
	$var = 'start_small_tag_contain';
	foreach($get_small_tag->childNodes as $child){
		if ($child->nodeType == 3) {
			$$var = $child->wholeText;
		} else if ($child->nodeType == 1) {
			$$var .= '<'.$child->tagName;
			$var = 'end_small_tag_contain';
			$$var = '</'.$child->tagName.'>';
		}
	}
	var_dump($start_small_tag_contain);
	var_dump($end_small_tag_contain);
}
sinon, précise ta requète car c'est pas clair

Re: Comment récupérer dans mon Code PHP et via DOMDocument le DEBUT et la FIN du CONTENU de la balise "small" ???

par chegmarco » 11 juin 2022, 21:03

Merci pour le temps accordé mais ça ne marche pas du tout. Voici ce que les deux var_dump retournent:

Code : Tout sélectionner

string(3) "(
Et on n'y voit ni $start_small_tag_contain ni $end_small_tag_contain.

Sachant que la variable $start_small_tag_contain devrait normalement être égale à:

Code : Tout sélectionner

$start_small_tag_contain = "(<a";
Et la variable $end_small_tag_contain égal à:

Code : Tout sélectionner

$start_small_tag_contain = "</a>)";
Des idées s'il vous plaît ???

Re: Comment récupérer dans mon Code PHP et via DOMDocument le DEBUT et la FIN du CONTENU de la balise "small" ???

par Spols » 11 juin 2022, 20:46

le défi m'a interpellé donc j'ai tenté le truc, mais ce n'est pas une habitude de donner un code tout fait ici
<?php
libxml_use_internal_errors(true);
$parser = new DOMDocument();
$parser->loadHTMLFile("https://fr.wikipedia.org/wiki/Mark_Zuckerberg");
$get_small_tags = $parser->getElementsByTagName("small");
$start_small_tag_contain = '';
$end_small_tag_contain = '';
foreach ($get_small_tags as $get_small_tag) {
	$var = 'start_small_tag_contain';
	foreach($get_small_tag->childNodes as $child){
		if ($child->nodeType == 3) {
			$$var = $child->wholeText;
		} else if ($child->nodeType == 1) {
			$$var .= '<'.$child->tagName;
			$var = 'end_small_tag_contain';
		}
	}
	var_dump($start_small_tag_contain);
	var_dump($end_small_tag_contain);
}

Comment récupérer dans mon Code PHP et via DOMDocument le DEBUT et la FIN du CONTENU de la balise "small" ???

par chegmarco » 11 juin 2022, 19:56

Bonjour.


Voici le code HTML de toutes balises small dont je souhaiterais récupérer dans une variable $start_small_tag_contain, le début de son contenu qui est (<a et aussi dans une variable $end_small_tag_contain, la fin de son contenu qui est </a>):

Code : Tout sélectionner

<small>(<a href="https://www.wikidata.org/wiki/Q22302383" class="extiw"> <span class="indicateur-langue" title="Voir l'élément Wikidata correspondant">d</span></a>)</small> <small>(<a href="https://en.wikipedia.org/wiki/Donna_Zuckerberg" class="extiw"> <span class="indicateur-langue" title="Article sur Wikipédia en anglais">en</span></a>)</small>

Et voici comment j'obtiens toutes les balises small de la page https://fr.wikipedia.org/wiki/Mark_Zuckerberg avec DOMDocument :

Code : Tout sélectionner

libxml_use_internal_errors(true); $parser = new DOMDocument(); $parser->loadHTMLFile("https://fr.wikipedia.org/wiki/Mark_Zuckerberg"); $get_small_tags = $parser->getElementsByTagName("small"); foreach ($get_small_tags as $get_small_tag) { ... }

Comment récupérer dans la boucle foreach, dans une variable $start_small_tag_contain, le début du contenu de la balise small (<a ET dans une autre variable $end_small_tag_contain, la fin du contenu de la même variable small ceci: </a>) ???

Merci.