Commment isoler une variable - Besoin de votre aide - Merci

MaxwellCosta Messages postés 19 Statut Membre -  
jordane45 Messages postés 40050 Statut Modérateur -
Bonjour à tous

Je cherche à isoler une variable

ma programmation est :

<?php the_content(); ?>
<?php endforeach;

wp_reset_postdata();
$content = ob_get_clean();

$extrait = explode(".com/watch?v=",$content);
foreach($extrait as $txt) {
    if(preg_match("/(^|[.!?\r\n])\s*(.*?\b&\b.*?($|[.!?\r\n]))/i",$txt)) {
        echo $txt."<br />";
    }
}


Pour l'instant j'obtient le résultat suivant:

8P4foddGnoM&feature=youtube_gdata" target="_blank" rel="nofollow" id="rssmi_more">lire la suite

Je souhaite n'avoir en affichage que "8P4foddGnoM"

C'est à dire la variable entre ".com/watch?v=" et "&feature" mais je n'arrive pas à isoler la variable entre ces 2 données

Pourriez-vous m'aider SVP
Merci beaucoup

3 réponses

Utilisateur anonyme
 
En gros tu veux l'ID de la vidéo Youtube.

Tu as plusieurs solutions. Vu que tu as tout le liens, tu peux utiliser un parse_url et récupérer l'argument v.
function getYouTubeIdFromURL($url)
{
  $url_string = parse_url($url, PHP_URL_QUERY);
  parse_str($url_string, $args);
  return isset($args['v']) ? $args['v'] : false;
}


Ou comme tu le fais actuellement avec une expression régulière.

function getYouTubeIdFromURL($url) 
{
  $pattern = '/(?:youtube.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu.be/)([^"&?/ ]{11})/i';
  preg_match($pattern, $url, $matches);

  return isset($matches[1]) ? $matches[1] : false;
}
0
gnu
 
Je sais pas si ça peut t'aider mais avec un sed j'aurais fait tout simplement


s/.*com\/watch?v=\(.*\)&feature=.*/\1/
0
MaxwellCosta Messages postés 19 Statut Membre
 
Excusez moi mes comme je suis très débutant en php, comment je l'écrit après ma programmation


<?php the_content(); ?>
<?php endforeach;


0
jordane45 Messages postés 40050 Statut Modérateur 4 757
 
Bonjour,
Je ne comprend pas pourquoi tu as ouvert une nouvelle discussion ??
https://forums.commentcamarche.net/forum/affich-31191529-recuperer-une-valeur-dans-une-url-besoin-d-aide-merci#p31208372

Je t'ai déjà indiqué que : the_content() AFFICHE A L'ECRAN .... mais que toi .. tu veux récupérer dans une VARIABLE. pour ensuite l'utiliser....
Il faut donc utiliser : get_the_content()
Voir la doc :
https://developer.wordpress.org/reference/functions/the_content/
0
MaxwellCosta Messages postés 19 Statut Membre
 
Bonjour Jordane,

Non, je veux juste utiliser une partie du contenu généré par the_content() et certainement pas the_content en lui même.

C'est pour cela que je cherche à récupérer la variable de l'url générer et rien d'autre.

Merci pour ton aide
0
jordane45 Messages postés 40050 Statut Modérateur 4 757 > MaxwellCosta Messages postés 19 Statut Membre
 
juste utiliser une partie du contenu généré par the_content()


... et tu comptes récupérer le contenu comment ?
La fonction the_content() AFFICHE DIRECTEMENT dans le navigateur .........

TU NE PEUX PAS ..... (sauf à "bidouiller" en JAVASCRIPT éventuellement.... "récupérer" ce contenu pour le manipuler ensuite dans ton code .....mais ça ne serait vraiment pas pro...)

Bref...Pour le faire (en PHP) .... TU NE DOIS PAS passer par the_content() .... mais par :
get_the_content() 
.

EN gros.... get_the_content() te permet de mettre DANS UNE VARIABLE ce que the_content() lui t'affiche directement !

Donc :
1 - Tu stockes dans une variable TOUT ce que contient get_the_content() ( ce qui aurait été affiché par : the_content() )
2 - Tu utilises une expression régulière pour ne prendre QUE ce qui t'intéresse....
3 - Tu l'utilises pour en faire ce ce que tu veux...

Et donc.. on en revient à la discussion précédente .... DOUBLON de celle ci !
0