Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2014, 00:43   #1
johny_03
Форумчанин
 
Регистрация: 21.01.2011
Сообщений: 134
По умолчанию Проверка условия на наличие страниц

Есть вот такой код:

Код:
<div class="navi">
    <a href="">1</a><a href="">2</a><a href="">3</a>
</div>
Возможно ли написать условие проверки и поместить на место после "<a href="">3</a>" следующее:
ЕСЛИ в корне существует страница "4.html" , то дописать в код "<a href="">4</a>", ЕСЛИ существует в корне "5.html", то дописать в код "<a href="">5</a>" и т.д. до 10
При этом чтоб соблюдалась по-очередность дописывания, например если есть страницы 4,5,6, то чтоб в этой последовательности они и записывались.
Заранее очень благодарен!
johny_03 вне форума Ответить с цитированием
Старый 10.04.2014, 01:39   #2
johny_03
Форумчанин
 
Регистрация: 21.01.2011
Сообщений: 134
По умолчанию

Решение нашел, но нужно немного подкорректировать
PHP код:
<?php 
$site    
= array(); 

$site[]    = '4.html';
$site[]    = '5.html';
$site[]    = '6.html';
$site[]    = '7.html';
$site[]    = '8.html';


foreach (
$site as $url

    if( @
fopen($url"r") )  
        echo 
"<a href='$url'>$url</a><br/>"


?>
Сейчас результат выводится полным названием URL, т.е. "4.html", а как отсечь ".html", чтобы выводил только названия до точки?
И второй вопрос: как сделать вывод результата в одну строку (сейчас выводится в столбец)?
Огромное спасибо!
johny_03 вне форума Ответить с цитированием
Старый 10.04.2014, 08:47   #3
ATL
Форумчанин
 
Аватар для ATL
 
Регистрация: 26.01.2007
Сообщений: 278
По умолчанию

PHP код:
<?php 
$site    
= array(); 

$site[4]    = '4.html';
$site[5]    = '5.html';
$site[6]    = '6.html';
$site[7]    = '7.html';
$site[8]    = '8.html';


foreach (
$site as $num => $url

    if( @
fopen($url"r") )  
        echo 
"<a href='$url'>" $num "</a>"
}
либо
PHP код:
$site    = array(); 

$site[]    = '4.html';
$site[]    = '5.html';
$site[]    = '6.html';
$site[]    = '7.html';
$site[]    = '8.html';


foreach (
$site as $url
{  
        echo 
"<a href='$url'>" substr($url0, -5) ."</a>"

ATL вне форума Ответить с цитированием
Старый 10.04.2014, 09:40   #4
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

так не проще?
Код:
$ret = '';
for ($i = 4; $i < 9; $i++) {
  $url = $i.'.html';
  if ( @fopen($url, "r") ) {
    $ret.= "<a href=\"$url\">$i</a> ";
  }
}

echo $ret;
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 10.04.2014, 11:13   #5
johny_03
Форумчанин
 
Регистрация: 21.01.2011
Сообщений: 134
По умолчанию

Цитата:
Сообщение от Naive Посмотреть сообщение
так не проще?
Код:
$ret = '';
for ($i = 4; $i < 9; $i++) {
  $url = $i.'.html';
  if ( @fopen($url, "r") ) {
    $ret.= "<a href=\"$url\">$i</a> ";
  }
}

echo $ret;
Для моего примера все хорошо работает, но я еще планирую добавить перед цифрами в названии url еще слова, т.е. male_4.html и т.п. Следовательно ваш пример будет работать только с цифрами в названии.

А вот этот пример (ниже) подходит больше в данном случае, но только я не знаю как разделить пробелами вывод результата. Т.е. сейчас мне выдает 45678, а надо 4 5 6 7 8
PHP код:
$site    = array(); 

$site[]    = 'male_4.html';
$site[]    = 'male_5.html';
$site[]    = 'male_6.html';
$site[]    = 'male_7.html';
$site[]    = 'male_8.html';


foreach (
$site as $url
{  
        echo 
"<a href='$url'>" substr($url5, -5) ."</a>"

Подскажите пожалуйста как это сделать?

Последний раз редактировалось johny_03; 10.04.2014 в 11:21.
johny_03 вне форума Ответить с цитированием
Старый 10.04.2014, 11:15   #6
ATL
Форумчанин
 
Аватар для ATL
 
Регистрация: 26.01.2007
Сообщений: 278
По умолчанию

А если файлов добавится? Было бы логичнее смотреть что есть и забирать, а не гадать с количеством итераций.
Так ещё проще:
PHP код:
foreach (glob("*.html") as $url) { 
        echo 
"<a href='$url'>" substr($url0, -5) ."</a>&nbsp;"

&nbsp; - пробел
ATL вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подсчет суммы ячеек с разных страниц при выполнении условия sttafi Microsoft Office Excel 27 07.12.2012 17:50
Проверка на наличие файла bing90 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 03.09.2012 23:44
Проверка на наличие процесса NewBoy Общие вопросы C/C++ 5 16.07.2012 20:56
Проверка на наличие файла Vladya Общие вопросы Delphi 7 10.10.2009 01:26
Проверка на наличие в массиве istoe Microsoft Office Excel 8 26.08.2009 11:55