PHP делает слайд-шоу/медиаплеер в зависимости от имени файла

Прошу прощения за публикацию сомнительного кода! :( Но я ужасно пишу на PHP (только начал изучать), и мне, безусловно, нужно больше его изучать. Но на данный момент мне действительно нужен работающий скрипт, чтобы я мог продемонстрировать свои работы. :) Мне было интересно, если кто-нибудь можете помочь исправить?

В основном я получаю имена файлов изображений из файла .txt. Текстовый файл настроен следующим образом:

1|имя_файла_изображения1.jpg

2|имя_файла_изображения2.jpg

Идея приведенного ниже кода состоит в том, чтобы изменить элемент в зависимости от файла. Например, если это файл .mov, он загрузит видеоплеер (поток видео с vimeo). И если это файл изображения, у него будет слайд-шоу.

<?php

$photos=file("photos.txt");
$img = array('jpg', 'png', 'gif');
$vid = array('swf', 'mp4', 'mov', 'mpg', 'flv');
foreach($photos as $image){
$item=explode("|",$image);

$ext = explode(".", $image);
if(in_array($ext[1], $img))
{'<div id='thejqueryslider'><div class='slider'><img src='images/work/$photo' alt='' /> </div></div>'}
 elseif(in_array($ext[1], $vid))
 {'<iframe src='$photo' width='800' height='450' frameborder='0' webkitAllowFullScreen allowFullScreen></iframe>'}

 ?>

person Jess    schedule 28.10.2011    source источник


Ответы (1)


Одной из очевидных ошибок является то, что вы забыли добавить операторы echo там, где вы хотите что-то вывести. Вы также должны использовать двойные кавычки вместо одинарных вокруг HTML, который вы выводите, иначе одинарные кавычки внутри него завершат строку и вызовут синтаксические ошибки. Завершите это точкой с запятой в конце операторов эха, и ваш код должен работать.

if(in_array($ext[1], $img))
{ echo "<div id='thejqueryslider'><div class='slider'><img src='images/work/$photo' alt='' /> </div></div>"; }
 elseif(in_array($ext[1], $vid))
 { echo "<iframe src='$photo' width='800' height='450' frameborder='0' webkitAllowFullScreen allowFullScreen></iframe>"; }

EDIT: у вас также есть непарная фигурная скобка, открытая после foreach, вы, вероятно, захотите закрыть ее после операторов echo.

ДРУГОЕ РЕДАКТИРОВАНИЕ: вы используете переменную $photo, которая не определена. Вы имели в виду $item[1]?

person Kaivosukeltaja    schedule 28.10.2011
comment
Спасибо за помощь! К сожалению, это не работает, потому что я вообще не определил $photo в коде ($photo из моего предыдущего скрипта с работающим слайд-шоу)... - person Jess; 28.10.2011