Recupérer une valeur dans une URL-besoin d'aide Merci

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

J'ai vraiment besoin d'aide....

Je suis sous Wordpress 4.0

J'ai dans une page un petit descriptif et ensuite j'ai une expression qui indique "Lire la suite"

Cette expression est cliquable

Si je met mon curseur dessus je vois que l'url de destination est :

www.youtube.com/watch?v=sTHfJ2mN8ik&feature=youtube_gdata

Je ne peut en aucun cas modifier ou intervenir sur la syntaxe de cette url ou de la programmation si dessus car elle s'inscrit dans la page automatiquement par flux rss.

En dessous de cette ligne je souhaite insérer ma programmation qui permet de visualiser une video (Youtube en l'occurance)

<iframe width="95%" height="315px" src="//www.youtube.com/embed/XXXXXXXXXXXX?version=3&autoplay=0&controls=0&showinfo=0&hl=fr_FR&rel=0" frameborder="0" allowfullscreen></iframe>

Je voudrais qu'automatiquement à la place des XXXXXXXXXXXX soit indiqué la valeur de la video au dessus à savoir ici pour cet exemple sTHfJ2mN8ik

Est ce qui il aurait d'après vous un moyen de lire automatiquement la valeur indiquée entre ?v= et & et de l'indiquer automatiquement entre embed/ et ?version de la ligne de programmation en dessous en sachant que la valeur n'est pas accéssible puisque l'on voit "cliquez ici" à la place ?

J'espère être assez clair dans ma demande.

en tout cas je vous remercie beaucoup pour l'aide que vous pourrez m'apporter.
A voir également:

4 réponses

jordane45 Messages postés 40050 Statut Modérateur 4 757
 
Bonjour,

Est ce qui il aurait d'après vous un moyen de lire automatiquement la valeur indiquée entre ?v= et &


On peut "lire" les données situées entre deux chaines de caractères... en utilisant des REGEX.
Par exemple en utilisant celle ci :
preg_match("/(v=)(.*)(&)/", $input_line, $output_array); 

TU obtiens (dans la variable : $output_array ):

Array
(
[0] => v=sTHfJ2mN8ik&
[1] => v=
[2] => sTHfJ2mN8ik
[3] => &
)



et de l'indiquer automatiquement entre embed/ et ?version de la ligne de programmation en dessous en sachant que la valeur n'est pas accéssible puisque l'on voit "cliquez ici" à la place ?

Pour ça... il faut que tu es accès au code source de la page...
Et donc..à toi..lorsque tu créés ta ligne de code.. d'y mettre la valeur à la place des XXXXX

echo '
<iframe width="95%" height="315px" src="//www.youtube.com/embed/'.$output_array[2] .'?version=3&autoplay=0&controls=0&showinfo=0&hl=fr_FR&rel=0" frameborder="0" allowfullscreen></iframe> ';


0
MaxwellCosta Messages postés 19 Statut Membre
 
Bonjour et merci pour ta réponse

en fait j'ai une erreur qui dit
Parse error: syntax error, unexpected '[', expecting ')' in /home/gillescos/www/w/comment-dessiner/wp-content/themes/stuffy/single.php on line 61

Je te donne la programmation que j'ai faite avec quelque compléments

(c'est avec le "content" que j'obtiens le descriptif qui est issue d'un flux rss avec le "Lire la suite" )

<?php the_content(); 

preg_match("/(v=)(.*)(&)/", $input_line, $output_array);
Array
(
    [0] => v=
    [1] => v=
    [2] => 
    [3] => &
)

echo '
<iframe width="95%" height="315px" src="//www.youtube.com/embed/'.$output_array[0] .'?version=3&autoplay=0&controls=0&showinfo=0&hl=fr_FR&rel=0" frameborder="0" allowfullscreen></iframe> ';
?>
<?php endforeach; 


Si tu veux plus de programmation dis le moi

Merci pour ta réponse
0
jordane45 Messages postés 40050 Statut Modérateur 4 757
 
Déjà, Penses à utiliser les balises de code lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code


Ensuite :
Il faut que tu puisses récupérer le contenu de the_content(); pour le mettre dans la variable $input_line

Je suppose qu'actuellement la fonction the_content(); doit faire des ECHO pour afficher des données...
l'idéal serait que tu nous montres ce que contient cette fonction.
0
MaxwellCosta > jordane45 Messages postés 40050 Statut Modérateur
 
Désolé mais étant débutant je ne comprends même pas ce que tu essayes de me dire.

pour moi,
<?php the_content(); ?>
affiche le contenu d'un flux rss que je récupère au travers d'un plugin

Que veux tu comme renseignement supplémentaire ?
0
jordane45 Messages postés 40050 Statut Modérateur 4 757
 
Donc..
La fonction the_content() ... est donc une fonction wordpress....
En lisant la doc : https://developer.wordpress.org/reference/functions/the_content/
on trouve :


Alternative Usage

You may use get_the_content() to return the content value instead of outputting it directly.


Exemple :
$content = apply_filters( 'the_content', get_the_content() );
$content = str_replace( ']]>', ']]>', $content )


Ce qui, pour toi, pourrait donner un truc du genre : :

<?php 
$content = apply_filters( 'the_content', get_the_content() );
$content = str_replace( ']]>', ']]>', $content )
preg_match("/(v=)(.*)(&)/", $content , $output_array);

echo '
<iframe width="95%" height="315px" 
src="//www.youtube.com/embed/'.$output_array[0] .'?version=3&autoplay=0&controls=0&showinfo=0&hl=fr_FR&rel=0"
frameborder="0" 
allowfullscreen>
</iframe> ';

 endforeach;


Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
0
MaxwellCosta
 
Excuse moi mais cela me met une erreur

Parse error: syntax error, unexpected 'preg_match' (T_STRING) in /single.php on line 60
0
jordane45 Messages postés 40050 Statut Modérateur 4 757
 
La lligne juste au dessus.. manque un point-virgule
$content = str_replace( ']]>', ']]>', $content );
0
gillescoste2006 > jordane45 Messages postés 40050 Statut Modérateur
 
Bonjour,

Juste déjà pour un test pour voir si $output_array prend des valeur.

Comment je peux ecrire un echo '' juste pour voir quelles valeurs il prend.

Car pour l'instant la video de youtube ne s'affiche pas

Merci beaucoup
0
jordane45 Messages postés 40050 Statut Modérateur 4 757 > gillescoste2006
 
Pour les ARRAY .. il faut faire un PRINT_R ( ou un VAR_DUMP) pour voir le contenu ( pas un ECHO).
print_r($output_array);
0