Уважаемые Форумчане, столкнулся с такой ситуацией, пишу пагинацию на основе ранее разработанной. Хочу ее модернизировать. Если на главной странице более 10 страниц с материалом, то выводится все ок, пример: http://soft-2[dot]ru/soft.php
Запрос:
<?php
$result77 = mysql_query("SELECT str FROM t_page", $db);
$myrow77 = mysql_fetch_array($result77);
$num = $myrow77["str"];
// Извлекаем из URL текущую страницу
$page=isset($_GET['page'])?(int)$_GET['page']: 1;
// Определяем общее число сообщений в базе данных
if (isset($_GET['cat'])) {$cat = (int)$_GET['cat'];}
else $cat=0;
/* Проверяем, является ли переменная числом */
if (!preg_match("|^[\d]+$|", $cat))
{
exit ("<p>Неверный формат запроса! Проверьте URL!");
}
if ($cat)
$result00 = mysql_query("SELECT COUNT(*) FROM t_soft WHERE `cat`='{$cat}' AND `minus` <> '$locksoft'");
else
$result00 = mysql_query("SELECT COUNT(*) FROM t_soft WHERE `minus` <> '$locksoft'");
$temp = mysql_fetch_array($result00);
$posts = $temp[0];
// Находим общее число страниц
$total=floor($posts/$num)+ (($posts%$num>0)?1:0);
$total = intval($total);
// Определяем начало сообщений для текущей страницы
$page = intval($page);
// Если значение $page меньше единицы или отрицательно
// переходим на первую страницу
// А если слишком большое, то переходим на последнюю
if($page < 1 ) $page = 1;
if($page > $total) $page = $total;
// Вычисляем начиная с какого номера
// следует выводить сообщения
$start = ($page-1)*$num;
// Выбираем $num сообщений начиная с номера $start
?>
А это постраничный вывод:
<?php
// Проверяем нужна ли кнопка "Назад"
if ($page != 1) $pervpage = '<a href=?cat='.$cat.'&page='. ($page - 1) .'>« Назад</a>';
if ($page >= 6) $pageone = ' <a href=?cat='.$cat.'&page=1>1</a> ';
if ($page >= 7) $pagelefttoch = ' <span>...</span>';
// Создаем массив, куда прописываем расширения!
$img_formats = array('jpg','jpeg','png','gif','bmp');
// Цикл for используется для итераций по массиву и вывода каждого элемента
for ($i = 0; $i < sizeof($img_formats); $i++)
{
// Здесь должна лежать картинка.
echo $sitename.'/soft/'.$cat.'/'.$prog.'/big.'.$img_formats[$i].'<br>';
ДАЛЬШЕ ИДЕТ ОТ ПРЕДЫДУЩЕГО СКРИПТА...
// Проверка на существование картинки.
if (file_exists($filename_big)) {printf
?>
<?php echo $sitename.'/soft/'.$cat.'/'.$prog.'/big.'.$img_formats[$i].'<br>';?>
<div id="view-content-foto">
<a class="grouped_elements" rel="group1" style="border:none; cursor:hand;" title="Скриншот №1" href="<?php echo $filename_big;?>">
<img id="view-img" src="<?php echo $filename_big;?>"/>
</a>
</div>
<?php
КОНЕЦ ПРЕДЫДУЩЕГО СКРИПТА ;}}
?>
Если выделить строку с расширением png и открыть в новом окне то картинка откроется...
<?php
// Создаем массив, куда прописываем расширения!
$img_formats = array('jpg','jpeg','png','gif','bmp');
// Цикл for используется для итераций по массиву и вывода каждого элемента
for ($i = 0; $i < sizeof($img_formats); $i++)
{
// Здесь должна лежать картинка.
$filename_big = $sitename.'/soft/'.$cat.'/'.$prog.'/big.'.$img_formats[$i];
// Проверка на существование картинки.
if (file_exists($filename_big)) {printf
?>
<img src="<?php echo $filename_big;?>"/>
<?php
;}}
?>
Тот скрипт что написан ранее рабочий, но работает только для сайта http://to4kacom[dot]ru/ , если этот скрипт прописать во второй http://soft-2[dot]ru/ то перестает работать, а хочется чтобы работал. ( в общем у массива перебор перестает работать, в конце пути прописывает bmp, а требуется jpg или png. )
У меня есть 2 сайта, на первом скрипт отрабатывает на втором нет:
Код
<?php
$img_formats = array ('jpg','jpeg','png','gif','bmp');
foreach ($img_formats as $format) {
$filename = $sitename.'/soft/'.$cat.'/'.$prog.'/big.'.$format;
if (file_exists($filename)) {
echo $filename;
?>
Где
$sitename - название сайта.
$cat - каталог программы.
$prog - название программы.
$format - передаваемый формат из массива перебором с проверкой на существование.
Короче, смысл такой, на первом сайте путь к картинке берется напрямую, а на втором получается что удаленно.
В принципе на втором сайте путь пишется все верно, только в конце расширение он прописывает bmp, что находится в самом конце массива, подскажите, ПОЧЕМУ РАСШИРЕНИЯ В МАССИВЕ НЕ ПЕРЕБИРАЮТСЯ?
if ($myrow['cat'] == 2) {$cat ='internet';}
if ($myrow['cat']==3) {$cat ='multimedia';}
if ($myrow['cat']==4) {$cat ='themes';}
if ($myrow['cat']==5) {$cat ='utilites';}
if ($myrow['cat']==10) {$cat ='sistems';}
if ($myrow['cat']==6) {$cat ='redactor';}
if ($myrow['cat']==7) {$cat ='protection';}
if ($myrow['cat']==8) {$cat ='other';}
if ($myrow['cat']==11) {$cat ='games';}
if ($myrow['cat']==9) {$cat ='portable';}
?>
<?php
foreach ($img_formats as $format) {
$filename = 'soft/'.$cat.'/'.$prog.'/big.'.$format;
if (file_exists($filename)) echo 'Ok!';
}
; // Путь туда где лежит наша картинка.
?>
<?php
if (file_exists($filename)) {printf // Проверка на существование картинки.
?>
<div id="view-content-foto">
<a class="grouped_elements" rel="group1" style="border:none; cursor:hand;" title="Скриншот №1" href="http://to4kacom[dot]ru/<?php echo $filename;?>">
<img id="view-img" src="http://to4kacom[dot]ru/<?php echo $filename;?>"/>
</a>
</div>
<?php }
else {echo '<div style="padding:15px;">Информации нет, поле пусто!</div>';} // Иначе если картинки не существует выводим это сообщение!
?>
Понимаете, в том то и дело, что раньше они хранились в б.д., а теперь хочу облегчить себе работу и сделать так чтобы они автоматом подтягивались без прописания пути в б.д., допустим на моем сайте картинка располагается здесь: http://to4kacom[dot]ru/soft/games/Super balls 1.00.9 rus/big.jpg
что я делаю:
$filename = присваиваю путь = 'soft/'.$cat.'/'.$prog.'/big.jpg;
для $cat:
if ($myrow['cat']==11) {$cat ='games';}
для $prog:
беру из б.д. заранее прописанный путь.
Все картинки у меня названы по одинаковому big , только вот расширения у них разные, вот я и хотел, что бы Вы помогли мне разобраться как их подставлять с проверкой на существование того или иного расширения!
Если я правильно понял Ваш вопрос, то тогда вот такой ответ!
Добрый день!
Ребята подскажите, плиз, вот тут есть такой код:
путь к картинке:
$filename = 'soft/'.$cat.'/'.$prog.'/big.jpg'.'';
где $cat и $prog подставляемые, правильные пути.
в общем при таком раскладе все работает ок!
НО! у меня по этому пути есть не только JPG, но и PNG, GIF, так вот, подскажите как сделать проверочку на существование расширения.
По моим прикидкам надо сначала загнать в массив расширение:
$filename = 'soft/'.$cat.'/'.$prog.'/big.'.$img_formats = array('jpg','jpeg','png','gif','bmp');
а дальше что то никак, вывод через echo результаты не дает...
Итоговый код идет такой:
$filename = 'soft/'.$cat.'/'.$prog.'/big.'здесь как то прописывается расширение, с проверкой его существования...'
if (file_exists($filename)) {printf // Проверка на существование картинки.
?>
<a title="Скриншот №1" href="http://to4kacom[dot]ru/<?php echo $filename;?>">
картинка
</a>
?>