Commment isoler une variable - Besoin de votre aide - Merci

Fermé
MaxwellCosta Messages postés 17 Date d'inscription vendredi 12 décembre 2014 Statut Membre Dernière intervention 20 juin 2019 - Modifié par jordane45 le 15/12/2014 à 15:59
jordane45 Messages postés 38308 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 - 15 déc. 2014 à 16:30
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
A voir également:

3 réponses

Utilisateur anonyme
15 déc. 2014 à 15:32
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
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 17 Date d'inscription vendredi 12 décembre 2014 Statut Membre Dernière intervention 20 juin 2019
15 déc. 2014 à 15:56
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 38308 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
15 déc. 2014 à 16:05
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 17 Date d'inscription vendredi 12 décembre 2014 Statut Membre Dernière intervention 20 juin 2019
15 déc. 2014 à 16:21
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 38308 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705 > MaxwellCosta Messages postés 17 Date d'inscription vendredi 12 décembre 2014 Statut Membre Dernière intervention 20 juin 2019
15 déc. 2014 à 16:30
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