Имеется страничка index.php,
к ней "приинклужены" короткие news1.php, news2.php, news3.php, news4.php, news5.php ну и так далее.
Возможно ли средствами PHP на index.php выполнить постраничный вывод этих news? Заранее благодарен за отзывчивость.
Спустя 11 минут, 16 секунд (19.01.2011 - 19:27) Invis1ble написал(а):
Что-то типа этого:
for ($i = 0; $i < 10; $i ++)
if (file_exists('news' . $i))
echo '<a href="?page="' . $i . '>' . $i . '</a>';
if (isset($_GET['page']) && file_exists('news' . $_GET['page']))
include 'news' . $_GET['page'];
Спустя 27 минут, 41 секунда (19.01.2011 - 19:55) dzisay написал(а):
извиняюсь за ламерство, а нельзя ли дописать чуточку комментариев в php слаб :huh:
куда вставлять сей мудрёный код? :blink:
<body>
<div>
<?php include("news16.php")?>
<?php include("news15.php")?>
...
<?php include("news03.php")?>
<?php include("news02.php")?>
<?php include("news01.php")?>
</div>
</body>
куда вставлять сей мудрёный код? :blink:
Спустя 8 минут, 12 секунд (19.01.2011 - 20:03) Invis1ble написал(а):
dzisay
Я так понимаю, что ты хочешь, чтоб на одной странице (N) выводилось содержимое одного файла newsN.php ?
Я так понимаю, что ты хочешь, чтоб на одной странице (N) выводилось содержимое одного файла newsN.php ?
Спустя 10 минут, 46 секунд (19.01.2011 - 20:14) VELIK505 написал(а):
Или ты хочешь наверное Постраничную навигацию на PHP
Спустя 1 минута, 48 секунд (19.01.2011 - 20:16) dzisay написал(а):
Не совсем. На одной страницы располагалось последние , ну то есть смотря по моему коду: news16.php, news15.php, news14.php, news13.php, news12.php, а под ними панель <1 2 3 4>. При нажатии на <2> открывались на одной странице news11.php, news10.php, news09.php, news08.php, news07.php. На <3> ews06.php, news05.php, news04.php, news03.php, news02.php, ну а на <4> все что осталось.
И потом когда я например добавил news17.php всё это дело сдвигалось, думаю принцип понятен.
И потом когда я например добавил news17.php всё это дело сдвигалось, думаю принцип понятен.
Спустя 24 секунды (19.01.2011 - 20:16) alex12060 написал(а):
dzisay
Какой изврат делать так сайт)
Ну ладно, каждому свое)
Какой изврат делать так сайт)
Ну ладно, каждому свое)
$p = trim($_GET['p']);
for ($i=$p; $i<11; $i++) {
if (file_exists('news'.$i.'.php')) {
require_once('news'.$i.'.php');
}
}
echo '<a href="index.php?p='.($p+10).'>Далее</a>;
Спустя 5 минут, 25 секунд (19.01.2011 - 20:22) dzisay написал(а):
Цитата (VELIK505 @ 19.01.2011 - 17:14) |
Или ты хочешь наверное Постраничную навигацию на PHP |
ну на данном примере я так понял нужно создавать базу данных, хотелось бы как нибудь без нее:huh:
Спустя 2 минуты, 53 секунды (19.01.2011 - 20:24) dzisay написал(а):
alex12060
покажи пожалуйста конкретно куда что писать
покажи пожалуйста конкретно куда что писать
Спустя 4 минуты, 34 секунды (19.01.2011 - 20:29) alex12060 написал(а):
dzisay
Не, там не так сделано)
Ща обмозгую, дам код)
Не, там не так сделано)
Ща обмозгую, дам код)
Спустя 6 минут, 58 секунд (19.01.2011 - 20:36) dzisay написал(а):
Буду рад.
Такой извратный подход к написанию новостей спровоцирован тем, что:
во-первых отсутствие баз, в которых я вообще бум-бум;
во-вторых скрипты рейтинга и комментариев которые стоят на всем сайте, на много проще прикрутить к отдельным страничкам news.php.
в-третьих мои скудные знания позволят полностью контролировать внешний вид и работу сайта
Такой извратный подход к написанию новостей спровоцирован тем, что:
во-первых отсутствие баз, в которых я вообще бум-бум;
во-вторых скрипты рейтинга и комментариев которые стоят на всем сайте, на много проще прикрутить к отдельным страничкам news.php.
в-третьих мои скудные знания позволят полностью контролировать внешний вид и работу сайта
Спустя 24 секунды (19.01.2011 - 20:36) Invis1ble написал(а):
dzisay
UPD Подправил
еще раз. оптимизировал =)
$items = glob(__DIR__, GLOB_NOSORT);
foreach ($items as $item)
if (!is_dir($item) && preg_match('#news\d*?\.php#ui', $item))
$news[] = $item;
$cnt = count($news);
foreach ($news as $i => $new)
{
$p = mb_strlen($i, 'utf-8') < 2 ? '0' . $i : $i;
echo '<a href="?page="' . $p . '>' . ($cnt - $i + 1) . '</a>';
}
if (isset($_GET['page']) && file_exists('news' . $_GET['page']))
include 'news' . $_GET['page'] . '.php';
UPD Подправил
еще раз. оптимизировал =)
Спустя 6 минут, 4 секунды (19.01.2011 - 20:42) dzisay написал(а):
:huh: и куда это вставлять в моём несчастном коде?
<body>
<div>
<?php include("news16.php")?>
<?php include("news15.php")?>
...
<?php include("news03.php")?>
<?php include("news02.php")?>
<?php include("news01.php")?>
</div>
</body>
Спустя 5 минут (19.01.2011 - 20:47) Invis1ble написал(а):
dzisay
Цитата |
и куда это вставлять в моём несчастном коде? |
вместо
Цитата |
<?php include("news16.php")?> <?php include("news15.php")?> ... <?php include("news03.php")?> <?php include("news02.php")?> <?php include("news01.php")?> |
Спустя 4 минуты, 54 секунды (19.01.2011 - 20:52) dzisay написал(а):
ругается на
Warning: Invalid argument supplied for foreach() in www\x\index.php on line 23
Warning: Invalid argument supplied for foreach() in www\x\index.php on line 23
foreach ($news as $i => $new)
Спустя 15 минут, 20 секунд (19.01.2011 - 21:08) Invis1ble написал(а):
dzisay
что выдает?
$items = glob(__DIR__, GLOB_NOSORT);
var_dump($items);
$news = array();
foreach ($items as $item)
if (!is_dir($item) && preg_match('#news\d*?\.php#ui', $item))
$news[] = $item;
$cnt = count($news);
foreach ($news as $i => $new)
{
$p = mb_strlen($i, 'utf-8') < 2 ? '0' . $i : $i;
echo '<a href="?page="' . $p . '>' . ($cnt - $i + 1) . '</a>';
}
if (isset($_GET['page']) && file_exists('news' . $_GET['page']))
include 'news' . $_GET['page'] . '.php';
что выдает?
Спустя 1 минута, 8 секунд (19.01.2011 - 21:09) dzisay написал(а):
Может я что не так делаю? Вершиной помощи был бы архивчик с простейшим рабочим примером из 4 файлов index.php, news3.php, news2.php, news1.php с постраничкой по 2 файла. С меня плюсик
Спустя 4 минуты, 29 секунд (19.01.2011 - 21:13) dzisay написал(а):
выдаёт:
array(1) { [0]=> string(29) "Z:\home\сайт_мой\www\x" }
Спустя 7 минут, 54 секунды (19.01.2011 - 21:21) Invis1ble написал(а):
dzisay
вобще-то, на этом форуме, как правило, не практикуется бесплатное написание рабочих скриптов ) Здесь обычно люди помагают или дают советы. Но поскольку мне сейчас нечем по сути заняться - я фактически делаю все за тебя =)
а щас?
вобще-то, на этом форуме, как правило, не практикуется бесплатное написание рабочих скриптов ) Здесь обычно люди помагают или дают советы. Но поскольку мне сейчас нечем по сути заняться - я фактически делаю все за тебя =)
$items = glob(dirname(__FILE__) . '/*', GLOB_NOSORT);
var_dump($items);
$news = array();
foreach ($items as $item)
if (!is_dir($item) && preg_match('#news\d*?\.php#ui', $item))
$news[] = $item;
$cnt = count($news);
foreach ($news as $i => $new)
{
$p = mb_strlen($i, 'utf-8') < 2 ? '0' . $i : $i;
echo '<a href="?page="' . $p . '>' . ($cnt - $i + 1) . '</a>';
}
if (isset($_GET['page']) && file_exists('news' . $_GET['page']))
include 'news' . $_GET['page'] . '.php';
а щас?
Спустя 8 минут, 3 секунды (19.01.2011 - 21:29) dzisay написал(а):
ясно, но я и этому жутко рад.
выводит
при этом вся надпись
является ссылкой на
выводит
array(16) { [0]=> string(39) "Z:\home\mr-freeman.info\www\x/index.php" [1]=> string(39) "Z:\home\mr-freeman.info\www\x/news1.php" [2]=> string(40) "Z:\home\mr-freeman.info\www\x/news10.php" [3]=> string(40) "Z:\home\мой_сайт\www\x/news11.php" [4]=> string(40) "Z:\home\мой_сайт\www\x/news12.php" [5]=> string(40) "Z:\home\мой_сайт\www\x/news13.php" [6]=> string(40) "Z:\home\мой_сайт\www\x/news14.php" [7]=> string(40) "Z:\home\мой_сайт\www\x/news15.php" [8]=> string(39) "Z:\home\мой_сайт\www\x/news2.php" [9]=> string(39) "Z:\home\мой_сайт\www\x/news3.php" [10]=> string(39) "Z:\home\мой_сайт\www\x/news4.php" [11]=> string(39) "Z:\home\мой_сайт\www\x/news5.php" [12]=> string(39) "Z:\home\мой_сайт\www\x/news6.php" [13]=> string(39) "Z:\home\мой_сайт\www\x/news7.php" [14]=> string(39) "Z:\home\мой_сайт\www\x/news8.php" [15]=> string(39) "Z:\home\мой_сайт\www\x/news9.php" } 1615141312111098765432
при этом вся надпись
1615141312111098765432
является ссылкой на
http://mr-freeman.info/x/?page=
Спустя 3 минуты, 16 секунд (19.01.2011 - 21:33) dzisay написал(а):
хотелось вы уточнить что на первой и на последующих страницах выводилось по несколько news.php
Спустя 25 минут, 54 секунды (19.01.2011 - 21:58) Invis1ble написал(а):
dzisay
<?php
$items = glob(dirname(__FILE__) . '/*', GLOB_NOSORT);
$news = array();
foreach ($items as $item)
if (!is_dir($item) && preg_match('#news\d*?\.php#ui', $item))
$news[] = $item;
$cnt = count($news);
echo '<div>';
foreach ($news as $i => $new)
{
$p = $cnt - $i;
$p = mb_strlen($p, 'utf-8') < 2 ? '0' . $p : $p;
echo '<a href="?page=' . $p . '">' . ($i + 1) . '</a> ';
}
echo '</div>';
if (isset($_GET['page']) && file_exists('news' . $_GET['page'] . '.php'))
include 'news' . $_GET['page'] . '.php';
?>
Спустя 9 минут, 39 секунд (19.01.2011 - 22:08) dzisay написал(а):
работает, но на каждой из страниц хотелось бы, как я говорил выше, выводить по 5 news.php (то есть news16.php, news15.php, news14.php, news13.php, news12.php одна за другой)
ну а плюсик уже смело могу поставить
ну а плюсик уже смело могу поставить
Спустя 3 часа, 57 минут, 4 секунды (20.01.2011 - 02:05) Invis1ble написал(а):
<?php
$news = glob(dirname(__FILE__) . '/news*.php', GLOB_NOSORT);
$cnt = count($news);
echo '<div>';
for ($i = 0; $i < $cnt; $i += 5)
{
$p = ($i / 5 + 1);
echo '<a href="?page=' . $p . '">' . $p . '</a> ';
}
echo '</div>';
if (isset($_GET['page']))
{
$p = $cnt + 5 - $_GET['page'] * 5;
for ($i = $p; $i > $p - 5; $i --)
{
$n = mb_strlen($i, 'utf-8') < 2 ? '0' . $i : $i;
if (file_exists('news' . $n . '.php'))
include 'news' . $n . '.php';
}
}
?>
Спустя 6 часов, 39 минут, 20 секунд (20.01.2011 - 08:44) dzisay написал(а):
Скрипт прекрасно работает, огромное спасибо за труд на ЛС ответил