ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #2381  
Старый 22.03.2008, 00:58
Аватар для Dimi4
Dimi4
Reservists Of Antichat - Level 6
Регистрация: 19.03.2007
Сообщений: 953
Провел на форуме:
7617458

Репутация: 3965


Отправить сообщение для Dimi4 с помощью ICQ
По умолчанию

Постраничная навигация на файлах

Автор: 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."]&nbsp;";

      }

      else

      {

        echo "<a href=$_SERVER[PHP_SELF]?page=".$i.">[".

             (($i - 1)*$pnumber + 1)."-".$i*$pnumber."]</a>&nbsp;";

      }

    }

    // Если это последняя страница заменяем последнюю цифру 

    // максимальным числом позиций в массиве $temp

    else

    {

      if($page == $i)

      {

        echo "[".(($i - 1)*$pnumber + 1)."-".($total - 1)."]&nbsp;";

      }

      else

      {

        echo "<a href=$_SERVER[PHP_SELF]?page=".$i.">[".

             (($i - 1)*$pnumber + 1)."-".($total - 1)."]</a>&nbsp;";

      }

    }

  }

?>
_http://php.su/articles/?cat=examples&page=057
 
Ответить с цитированием

  #2382  
Старый 22.03.2008, 04:20
Аватар для RedBull@12
RedBull@12
Участник форума
Регистрация: 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($fsite1024);
            
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($fsite1024);
            
fputs($ffile,$hash_test);
            
$i++;
        }
        
fclose($fsite);
        return 
1;
    }

причем когда смотрю по времени создания hash файла я понимаю что скрипт уже все сделал...но при этом висит..и в ответ либо выдает нужный мне ерзультат но с большим опозданием, либо вообще ничего. как будет-то скрипт прирывается по функции exit(); хотя данной функции вообще ни в одном скрипте нету.
 
Ответить с цитированием

  #2383  
Старый 22.03.2008, 06:02
Аватар для echobyte
echobyte
Moderator - Level 7
Регистрация: 07.03.2008
Сообщений: 568
Провел на форуме:
4140471

Репутация: 708


Отправить сообщение для echobyte с помощью ICQ
По умолчанию

Цитата:
Сообщение от RedBull@12  
возникла немного не понятная проблема.
GET есть ограниченый метод, забей на него
 
Ответить с цитированием

  #2384  
Старый 22.03.2008, 06:35
Аватар для Painkiller
Painkiller
Новичок
Регистрация: 04.05.2007
Сообщений: 4
Провел на форуме:
84798

Репутация: 0
По умолчанию

Dimi4
Спасибо попытаюсь адаптировать для базы.
 
Ответить с цитированием

  #2385  
Старый 22.03.2008, 06:39
Аватар для Isis
Isis
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме:
16641028

Репутация: 2371


По умолчанию

PHP код:
<?php
fputs
($fsite,"Content-Type: text/html\r\n");
?>
А вообще пора бы учиться отлаживать скрипты...
 
Ответить с цитированием

  #2386  
Старый 22.03.2008, 10:41
Аватар для k1b0rg
k1b0rg
Тут может быть ваша реклама.
Регистрация: 30.07.2005
Сообщений: 1,243
Провел на форуме:
4520553

Репутация: 1316


По умолчанию

Цитата:
function post($address,$request,$cookies,$referer) {
global $host,$port,$user_agent,$login,$pass;
а вот разработчики наверное зря парились реализовывая ооп....
 
Ответить с цитированием

  #2387  
Старый 22.03.2008, 12:07
Аватар для RedBull@12
RedBull@12
Участник форума
Регистрация: 06.11.2006
Сообщений: 129
Провел на форуме:
482261

Репутация: 58
По умолчанию

так кто-нибудь может объяснить в чем проблема?
Цитата:
get есть ограниченый метод, забей на него
он мне необходим поэтому нельзя пропускать его.
то что написал Isis я сделал, но от этого легче не стало. все тоже самое

Последний раз редактировалось RedBull@12; 22.03.2008 в 14:13..
 
Ответить с цитированием

  #2388  
Старый 22.03.2008, 17:08
Аватар для ~X3RiX~
~X3RiX~
Banned
Регистрация: 14.03.2008
Сообщений: 36
Провел на форуме:
285523

Репутация: 9
По умолчанию

Цитата:
при запуске выполняет все действия, но думает минимум 10-20 секунд
добавь fputs($fsite,"Connection: close\r\n\r\n");

все теперь заработает!

Последний раз редактировалось ~X3RiX~; 22.03.2008 в 17:14..
 
Ответить с цитированием

  #2389  
Старый 22.03.2008, 18:43
Аватар для Terray
Terray
Новичок
Регистрация: 22.03.2008
Сообщений: 3
Провел на форуме:
5951

Репутация: 0
По умолчанию

Подскажите пожалуйста, можно ли сформировать функцию, которая могла бы проверять в переменной слова на ошибки. Да и вообще текст. Возможно ли такое сотворить? Опять таки я в этом деле новичек так что не кидайте грязью если что =)
 
Ответить с цитированием

  #2390  
Старый 22.03.2008, 18:59
Аватар для ~X3RiX~
~X3RiX~
Banned
Регистрация: 14.03.2008
Сообщений: 36
Провел на форуме:
285523

Репутация: 9
По умолчанию

можно но сложно
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[c/c++] Новичкам: задаем вопросы _Great_ С/С++, C#, Delphi, .NET, Asm 5420 17.06.2010 13:33
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Форумы 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ