Vérifier d'abord en Ajax si le lien de la vidéo retourné par le JSON du Code PHP est de type HTML oEmbed
Bonjour.
Voici mon code PHP du ajax/setVideoBroken.php fichier qui renvoie un Json:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| if(isset($_POST["src"])) {
$query = $con->prepare("UPDATE videos SET broken = 1 WHERE videoLink=:src");
$query->bindValue(":src", $_POST["src"]);
$query->execute();
$response = ['success' => false];
$videoQuery = $con->prepare("SELECT * FROM videos WHERE videoLink=:src");
$videoQuery->bindValue(":src", $_POST["src"]);
$videoQuery->execute();
while($row = $videoQuery->fetch(PDO::FETCH_ASSOC)) {
$response['success'] = true;
$response = [
'success' => true,
'video_link' => $row["videoLink"],
'thumbnail' => $row["thumbnail"],
'video_type' => 'video/' . $row["video_extension"],
];
}
header('Content-Type: application/json; charset=utf-8');
echo json_encode($response);
exit;
} else {
echo "No src passed to page";
} |
Ce Json retourné en PHP ci-dessus, est récupéré en Ajax (JavaScript) pour afficher le lien vidéo (video_link) dans la balise source qui elle-même est incluse dans la balise video:
Code:
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 26 27 28 29 30 31 32 33
| function loadVideo(src, className) {
var video = $('<video id="player" playsinline controls><source /></video>');
video.on("load", function() {
$("." + className + " a").append(video);
clearTimeout(timer);
timer = setTimeout(function() {
$(".imageResults").masonry();
}, 500);
});
video.on("error", function() {
$("." + className).remove();
$.post("ajax/setVideoBroken.php", {src: src});
});
$.post("ajax/setVideoBroken.php", {src: src}, function(response) {
if(response.success) {
$('video', $video).attr('data-poster', response.thumbnail);
$('source', $video)
.attr('src', response.video_link)
.attr('type', response.video_type);
}
});
} |
Je tiens à préciser que response.video_link peut contenir des URLs vidéo simples (https://website.com/video.mp4) ou oEmbed de code HTML comme celui de Youtube (<iframe src="https://www.youtube.com/embed/4YCLRpKY1cs?feature=oembed"></iframe>)
Comment donc vérifier dans le code JavaScript:
- Si response.video_link (la réponse video_link du Json retourné par le Code PHP) commence par < qui représente le signe d'ouverture de la balise HTML ???
- Et si oui (video_link commence par le signe <, c'est que video_link équivaut à un code HTML de type `oEmbed` comme celui de Youtube), donner directement la valeur de ce code HTML à la variable var video.
- Si non, on passe à la variable var video le code <video id="player" playsinline controls><source /></video> de sorte à ajouter à la balise source, le lien de la vidéo que contient la réponse JSON: video_link.
J'ai vraiment besoin de votre aide.