Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

22.03.2008, 00:58
|
|
Reservists Of Antichat - Level 6
Регистрация: 19.03.2007
Сообщений: 953
Провел на форуме: 7617458
Репутация:
3965
|
|
Постраничная навигация на файлах
Автор: IT-студия SoftTime (softtime.ru)
Скрипт предназначен отображения определённого числа позиций из файла и генерации ссылок на следующие позиции. Пусть имеется файл text.txt следующего формата.
Файл данных text.txt
1 Программирование
2 Программирование на PHP
3 Программирование на JavaScript
4 Программирование на ASP.NET
5 Программирование на Java
6 Программирование на Perl
7 Программирование на C++
8 Программирование на Pascal
9 Программирование на Fortran
10 Программирование на Assembler
Тогда скрипт, выводящий по три позиции на странице может выглядеть так, как это представлено ниже
Постраничная навигация
Код:
<?php
// Имя файла
$filename = "text.txt";
// Число позиций на странице
$pnumber = 3;
// Открываем файл для чтения
$bufer = file_get_contents($filename);
// Находим все строки при помощи регулярного выражения
preg_match_all("#([\d]+) ([^\n]+)(\n|$)#U",
$bufer,
$out,
PREG_PATTERN_ORDER);
// Формируем промежуточный массив
for($i = 0; $i < count($out[1]); $i++)
{
$temp[] = trim($out[2][$i]);
}
// Проверяем передан ли номер текущей страницы
if(isset($_GET['page'])) $page = $_GET['page'];
else $page = 1;
// Число страниц
$total = count($temp);
$number = (int)($total/$pnumber);
if((float)($total/$pnumber) - $number != 0) $number++;
$start = (($page - 1)*$pnumber + 1);
$end = $page*$pnumber + 1;
if($end > $total) $end = $total;
// Выводим содержимое страниц
for($i = $start; $i < $end; $i++)
{
echo $temp[$i]."<br>";
}
// Постраничная навигация
for($i = 1; $i <= $number; $i++)
{
// Если это произвольная страница
if($i != $number)
{
if($page == $i)
{
echo "[".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."] ";
}
else
{
echo "<a href=$_SERVER[PHP_SELF]?page=".$i.">[".
(($i - 1)*$pnumber + 1)."-".$i*$pnumber."]</a> ";
}
}
// Если это последняя страница заменяем последнюю цифру
// максимальным числом позиций в массиве $temp
else
{
if($page == $i)
{
echo "[".(($i - 1)*$pnumber + 1)."-".($total - 1)."] ";
}
else
{
echo "<a href=$_SERVER[PHP_SELF]?page=".$i.">[".
(($i - 1)*$pnumber + 1)."-".($total - 1)."]</a> ";
}
}
}
?>
_http://php.su/articles/?cat=examples&page=057
__________________
BlackHat. MoDL
|
|
|

22.03.2008, 04:20
|
|
Участник форума
Регистрация: 06.11.2006
Сообщений: 129
Провел на форуме: 482261
Репутация:
58
|
|
всем привет.
возникла немного не понятная проблема.
скрипт выполняет некоторые действия и посылает запросы POST/GET.
POST работает на УРА!
а вот GET творит что-то не понятное, при запуске выполняет все действия, но думает минимум 10-20 секунд. вот функция POST запроса
PHP код:
function post($address,$request,$cookies,$referer) {
global $host,$port,$user_agent,$login,$pass;
$hash = "";
$fsite = fsockopen($host,$port,$error_number,$error_description,10);
$ffile = fopen("hash","w+");
if ($fsite) {
stream_set_blocking($fsite,FALSE);
fputs($fsite,"POST $address HTTP/1.1\r\n");
fputs($fsite,"Accept-Language: ru\r\n");
fputs($fsite,"Content-Type: application/x-www-form-urlencoded\r\n");
fputs($fsite,"Host: $host\r\n");
fputs($fsite,"Referer: $referer\r\n");
fputs($fsite,"Cookie: $cookies\r\n");
fputs($fsite,"User-Agent: $user_agent\r\n");
fputs($fsite,"Proxy-Connection: Keep-Alive\r\n");
fputs($fsite,"Content-Length: ".strlen($request)."\r\n");
fputs($fsite,"\r\n");
fputs($fsite,"$request\r\n");
fputs($fsite,"\r\n");
$i = 0;
while (!feof($fsite)) {
$hash_test = fgets($fsite, 1024);
fputs($ffile,$hash_test);
$i++;
}
fclose($fsite);
return 1;
}
}
а вот GET функция
PHP код:
function get($address,$cookies,$referer) {
global $host,$port,$user_agent,$login,$pass;
$hash = "";
$fsite = fsockopen($host,$port,$error_number,$error_description,10);
$ffile = fopen("hash","w+");
if ($fsite) {
stream_set_blocking($fsite,FALSE);
fputs($fsite,"GET $address HTTP/1.1\r\n");
fputs($fsite,"Accept-Language: ru\r\n");
fputs($fsite,"Content-Type: application/x-www-form-urlencoded\r\n");
fputs($fsite,"Host: $host\r\n");
fputs($fsite,"Referer: $referer\r\n");
fputs($fsite,"Cookie: $cookies\r\n");
fputs($fsite,"User-Agent: $user_agent\r\n");
fputs($fsite,"Proxy-Connection: Keep-Alive\r\n");
fputs($fsite,"\r\n");
$i = 0;
while (!feof($fsite)) {
$hash_test = fgets($fsite, 1024);
fputs($ffile,$hash_test);
$i++;
}
fclose($fsite);
return 1;
}
}
причем когда смотрю по времени создания hash файла я понимаю что скрипт уже все сделал...но при этом висит..и в ответ либо выдает нужный мне ерзультат но с большим опозданием, либо вообще ничего. как будет-то скрипт прирывается по функции exit(); хотя данной функции вообще ни в одном скрипте нету.
|
|
|

22.03.2008, 06:02
|
|
Moderator - Level 7
Регистрация: 07.03.2008
Сообщений: 568
Провел на форуме: 4140471
Репутация:
708
|
|
Сообщение от RedBull@12
возникла немного не понятная проблема.
GET есть ограниченый метод, забей на него
|
|
|

22.03.2008, 06:35
|
|
Новичок
Регистрация: 04.05.2007
Сообщений: 4
Провел на форуме: 84798
Репутация:
0
|
|
Dimi4
Спасибо попытаюсь адаптировать для базы.
|
|
|

22.03.2008, 06:39
|
|
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме: 16641028
Репутация:
2371
|
|
PHP код:
<?php
fputs($fsite,"Content-Type: text/html\r\n");
?>
А вообще пора бы учиться отлаживать скрипты...
|
|
|

22.03.2008, 10:41
|
|
Тут может быть ваша реклама.
Регистрация: 30.07.2005
Сообщений: 1,243
Провел на форуме: 4520553
Репутация:
1316
|
|
function post($address,$request,$cookies,$referer) {
global $host,$port,$user_agent,$login,$pass;
а вот разработчики наверное зря парились реализовывая ооп....
|
|
|

22.03.2008, 12:07
|
|
Участник форума
Регистрация: 06.11.2006
Сообщений: 129
Провел на форуме: 482261
Репутация:
58
|
|
так кто-нибудь может объяснить в чем проблема?
get есть ограниченый метод, забей на него
он мне необходим поэтому нельзя пропускать его.
то что написал Isis я сделал, но от этого легче не стало. все тоже самое
Последний раз редактировалось RedBull@12; 22.03.2008 в 14:13..
|
|
|

22.03.2008, 17:08
|
|
Banned
Регистрация: 14.03.2008
Сообщений: 36
Провел на форуме: 285523
Репутация:
9
|
|
при запуске выполняет все действия, но думает минимум 10-20 секунд
добавь fputs($fsite,"Connection: close\r\n\r\n");
все теперь заработает!
Последний раз редактировалось ~X3RiX~; 22.03.2008 в 17:14..
|
|
|

22.03.2008, 18:43
|
|
Новичок
Регистрация: 22.03.2008
Сообщений: 3
Провел на форуме: 5951
Репутация:
0
|
|
Подскажите пожалуйста, можно ли сформировать функцию, которая могла бы проверять в переменной слова на ошибки. Да и вообще текст. Возможно ли такое сотворить? Опять таки я в этом деле новичек так что не кидайте грязью если что =)
|
|
|

22.03.2008, 18:59
|
|
Banned
Регистрация: 14.03.2008
Сообщений: 36
Провел на форуме: 285523
Репутация:
9
|
|
можно но сложно
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|