EOMY.NET
Хостинг EOMY.NET: Форум поддержки
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
RSS Feed  

Полезные скрипты на php (только скрипты)
На страницу 1, 2, 3, 4  След.
 
Начать новую тему   Ответить на тему    Список форумов EOMY.NET -> Программирование для WEB
Полезные скрипты на php (только скрипты)
Автор Сообщение
Веденин
Красные глаза
Красные глаза


Зарегистрирован: 17.05.2007
Сообщения: 2067
Откуда: Самара
11926 Монеты

СообщениеДобавлено: Пт, 12 Сен, 2008 05:11    Заголовок сообщения: Полезные скрипты на php (только скрипты) Ответить с цитатой

Всем, кто начинал программировать на php сталкивался с проблемой с одной стороны знаний php ещё не хватает, чтобы самому писать полезные скрипты с другой найти нужный php скрипт в Инете довольно сложно. Здесь я буду выкладывать полезные скрипты, которые вам возможно пригодятся. Все скрипты написаны личной мной, на своих сайтах можете использовать сколько угодно, распространять в Инете тоже, но обязательно указать при распространение автора и прямую ссылку на сайт http://vedenin.ru, либо ссылку на любой поддомен из
http://all.vedenin.ru (и условия распространения скриптов).
Конечно, в эту темы вы тоже можно выкладывать другие скрипты (только укажите какие условия использования скриптов).
Примерный шаблон описания скриптов ниже:
Код:

[b]Описание скрипта:[/b]
[b]Вызов функции:[/b]
[b]Параметры функции:[/b]
[b]Комментарий:[/b]
[b]Код скрипта:[/b]


P.S. Если хотите поблагодарить поставьте ссылку на любой мой сайт Very Happy где угодно, хоть на своем сайте, хоть на форуме или ЖЖ ... Very Happy
P.S. Внимание: Для обсуждения скриптов используйте тему Полезные скрипты на php (обсуждение) в этом же разделе, здесь пожалуйста выкладывайте только скрипты на PHP
_________________
Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)

Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Веденин
Красные глаза
Красные глаза


Зарегистрирован: 17.05.2007
Сообщения: 2067
Откуда: Самара
11926 Монеты

СообщениеДобавлено: Пт, 12 Сен, 2008 05:15    Заголовок сообщения: Ответить с цитатой

Описание скрипта: Скрипт определяет сколько страниц проиндексировано Yandex'om у указанного сайта

Пример вызова функции: getRecCountYandex('vedenin.ru');

Параметры функции: $psite - сайт у которого надо определить кол-во проиндексированызх страниц в Yandes'e

Комментарий: Не забывайтея, что при слишком частом обращение к Yandex'y могут заблокировать ваш ip адес.
Не рекомендуется посылать больше десяти запросов в секунду.

Код скрипта:
Код:

    function getRecCountYandex($psite){ 
       $pstr = file_get_contents("http://yandex.ru/yandsearch?site=$psite&date=&text=&spcctx=notfar&zone=all&wordforms=all
&lang=all&within=0&from_day=&from_month=&from_year=&to_day=16
&to_month=7&to_year=2008&mime=all&rstr=&ds=&numdoc=10");   
       $pstr1 = trim(substr($pstr,strpos($pstr,'<title>')+44));
       echo substr($pstr1,0,strpos($pstr1,' '));
   }

_________________
Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)

Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Веденин
Красные глаза
Красные глаза


Зарегистрирован: 17.05.2007
Сообщения: 2067
Откуда: Самара
11926 Монеты

СообщениеДобавлено: Пт, 12 Сен, 2008 05:18    Заголовок сообщения: Ответить с цитатой

Описание скрипта: Скрипт позволяет спрятать ссылки проданные на какой - либо бирже от простукивания (см ).
Внимание скрипт работает только с если к большинству страниц можно обратится без парамеров. (т.е. Большинстро страниц вида http://vedenin.ru/find.php, а не http://vedenin.ru/find.php?id=1 ).
Для более подробной информации смотрите тему: Как спрятать проданные ссылки!

Пример вызова функции: hidenLink1('vedenin.ru','id','mail');

Параметры функции: $psite - ваш сайт, $pkey1,$pkey2 - параметры которые могут встречатся на сайте (если необходимо большие кол-во параметров нужно добавить в вызов функции $pkeyN и в оператор if строчку strlen($_REQUEST[$pkeyN])==0 &&
)

Комментарий: Внимание вызов функции должен быть до любого HTML вывода, лучше всего первой строчкой файла.

Код скрипта:
Код:

    function hidenLink1($psite,$pkey1,$pkey2){ 
      if(strlen($_REQUEST[$pkey1])==0 &&
         strlen($_REQUEST[$pkey1])==0 &&
         strlen($_SERVER['QUERY_STRING'])>0 ) {
    $tmp = substr($_SERVER['REQUEST_URI'],0,strpos($_SERVER['REQUEST_URI'],'?'));     
         header('Location:http://'.$psite. $tmp);
         exit();
       }           
   }

_________________
Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)

Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Веденин
Красные глаза
Красные глаза


Зарегистрирован: 17.05.2007
Сообщения: 2067
Откуда: Самара
11926 Монеты

СообщениеДобавлено: Пт, 12 Сен, 2008 05:21    Заголовок сообщения: Ответить с цитатой

Описание скрипта: Скрипт позволяет спрятать ссылки проданные на какой - либо бирже от простукивания (см ).
Скрипт работает см любым url, но необходимо перечислить все возможные парамерты метода POST, которые бывают у страниц сайта.
Для более подробной информации смотрите тему: Как спрятать проданные ссылки!

Пример вызова функции: hidenLink2('http://vedenin.ru','@id@key@mail@viewtopic@');

Параметры функции: $domain - ваш сайт, $prm - список всех возможных параметров которые могут принимать страницы вашего сайта разделыные @
(внимание обязательно наличие @ вначале и конце строки параметров и учтите, важно указать
ВСЕ параметры у ВСЕХ страниц сайта или ставить этот код только на страницы, где параметры известны)

Комментарий: Внимание вызов функции должен быть до любого HTML вывода, лучше всего первой строчкой файла.

Код скрипта:
Код:

function hidenLink2($domain,$prm){ 
 $flag = false; $tmp ='';
 if($_GET) {
 foreach($_GET as $key => $value) {
 if(strpos(' '.$prm,'@'.$key.'@')>0)
 $tmp .= $key . '=' . $value.'&';
 else $flag = true;
 }

 if( $flag ) {
 if( strlen($tmp)>0) $tmp = '?' . substr( $tmp ,0,strlen($tmp)-1);
 header('Location:'.$domain . substr($_SERVER['REQUEST_URI'],0,strpos($_SERVER['REQUEST_URI'],'?')) . $tmp);
 exit();
 }
 }
 }

_________________
Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)

Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Веденин
Красные глаза
Красные глаза


Зарегистрирован: 17.05.2007
Сообщения: 2067
Откуда: Самара
11926 Монеты

СообщениеДобавлено: Пт, 12 Сен, 2008 05:25    Заголовок сообщения: Ответить с цитатой

Описание скрипта: Этот скрипт позволяет заменить прямые ссылки на ссылки,
через переадресацию. Это необходимо, для того чтобы "спрятать" нежелательные
внешние ссылки от поисковиков.
Комментарий:
Скрипт надо разместить в отдельном php файле (например click.php,
желательно чтобы этот файл лежал в каталоге неиндексируемым поисковиками,например nodata),
чтобы установить ссылку через переадресацию надо использовать ссылку вида http://ваш_cайт/noindex/click.php?url=http://test.php?id=5&key=6
Обратите внимание: url= всегда должен быть первым параметром, после него можно использовать любой допустимый url страницы с любым кол-вом параметров
Пример ссылки:
Код:
<li><a target=_blank href="http://vedenin.ru/data/click.php?url=http://www.hustle.ru/index.php?type=special&area=1&p=articles&id=108">Правила конкурсов по танцу Хастл</a></li><br>&nbsp;

Код скрипта:
Код:

$tmp1  = $_REQUEST["url"];
if(strpos($_SERVER['QUERY_STRING'],'&')>0){
$tmp1 .= '&';
$tmp1 .= substr($_SERVER['QUERY_STRING'],strpos($_SERVER['QUERY_STRING'],'&')+1);
}
header('Location:'. $tmp1);
exit();

_________________
Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)

Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Веденин
Красные глаза
Красные глаза


Зарегистрирован: 17.05.2007
Сообщения: 2067
Откуда: Самара
11926 Монеты

СообщениеДобавлено: Пт, 12 Сен, 2008 05:33    Заголовок сообщения: Ответить с цитатой

Описание: Это не совсем скрипт, это патч на phpbb 2.* (под 3.* не проверял), так чтобы не спамили форум,
он позволяет регестрироватся всем, но при входе на форум задает вопрос, на который человек ответит легко, а бот нет.

Отключаем нафиг все подтверждения (по картинке, mail'у)
при регистрации пользователей, они не нужны

--------------------------------------------------------------------------------

1) Меняем шаблоны

1.1) В templates/subSilver/login_body.tpl пишем после
Код:
 
        <tr>
         <td align="right"><span class="gen">{L_PASSWORD}:</span></td>
         <td>
     <input type="password" class="post" name="password" size="25" maxlength="32" />     
         </td>
        </tr>

Cтрочки:

Код:

        <tr>
         <td align="right"><span class="gen">Защитa от спамеров, назoвите город cтoлицу Фрaнции:</span></td>
                        <td>
     <input type="text" class="post" name="keyword" size="25" maxlength="32" />
         </td>
        </tr>


1.2) В templates/subSilver/index_body.tpl пишем после
Код:
 
      <input class="post" type="text" name="username" size="10" />
      &nbsp;&nbsp;&nbsp;{L_PASSWORD}:
                <input type="hidden" class="post" name="password" size="10" maxlength="32" />     
                <input type="password" class="post" name="pass7" size="10" maxlength="32" />
      <!-- BEGIN switch_allow_autologin -->
      &nbsp;&nbsp; &nbsp;&nbsp;
      <input class="post" type="hidden" name="autologin" />
      <!-- END switch_allow_autologin -->


Cтрочки:
Код:
 
                &nbsp;&nbsp;&nbsp;
      Город cтoлица Фрaнции:
      <input type="text" class="post" name="keyword" size="25" maxlength="32" />
                &nbsp;&nbsp;&nbsp; 


В результате получаем:
http://vedenin.ru/forum/login.php?sid=6302f02db26921b4c2dded74f138357c

и

http://vedenin.ru/forum/ (внизу строчка входа)

--------------------------------------------------------------------------------

2) В файле login.php (в корневой директории) после строчек

Код:

if( isset($HTTP_POST_VARS['login']) || isset($HTTP_GET_VARS['login']) || isset($HTTP_POST_VARS['logout']) || isset($HTTP_GET_VARS['logout']) )
{
   if( ( isset($HTTP_POST_VARS['login']) || isset($HTTP_GET_VARS['login']) ) && (!$userdata['session_logged_in'] || isset($HTTP_POST_VARS['admin'])) )
   {
      $username = isset($HTTP_POST_VARS['username']) ? phpbb_clean_username($HTTP_POST_VARS['username']) : '';
      $password = isset($HTTP_POST_VARS['password']) ? $HTTP_POST_VARS['password'] : '';


Пишем код
Код:

                $keyword  = isset($HTTP_POST_VARS['keyword']) ? $HTTP_POST_VARS['keyword'] : '';
                $keyword  = trim($keyword);
      if( ($keyword{0} != 'П' and $keyword{0} != 'п') or ($keyword{1} != 'А' and $keyword{1} != 'а') or ($keyword{2} != 'Р' and $keyword{2} != 'р'))
      {
        $password = '';
        $username = '';
      }


P.S. Обратите внимание не важно как вводится слово Париж большими или маленькими буквами, не важно пробелы, и вообще мы смотрим только первые три буквы, т.е. пар тоже подойдет.
P.P.S. Да просьба использовать другой вопрос на вашем форуме.

--------------------------------------------------------------------------------

3) Не сильно важно, но неприятно иметь ссылки на спамерские сайты в профайле, из файла
templates/subSilver/profile_view_body.tpl удалим строчки:

Код:

      <tr>
        <td valign="middle" align="right" nowrap="nowrap"><span class="gen">{L_WEBSITE}:&nbsp;</span></td>
        <td><span class="gen"><b>{WWW}</b></span></td>
      </tr>



P.S. Самое главное нигде не напутать с кодировкой, везде должна быть WIN1251.
_________________
Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)

Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Веденин
Красные глаза
Красные глаза


Зарегистрирован: 17.05.2007
Сообщения: 2067
Откуда: Самара
11926 Монеты

СообщениеДобавлено: Пт, 12 Сен, 2008 05:58    Заголовок сообщения: Ответить с цитатой

Описание скрипта: Скрипт возращает кол-во страниц проиндексированных Яндексом

Пример вызова функции:GetUrl('vedenin.ru/V*','vedenin.ru/',0.1);

Параметры функции:
$psite1 - шаблон, $psite - адрес сайта, $psleep - задержка в секундах перед каждой страницей.
В шаблоне можно задавать либо сайт/каталог/ можно и вида
vedenin.ru/Vide* тогда он найдет все пути начинающиеся с Vide, можно и задать шаблон совпадающий с адресом сайта, тогда он вернет все проиндексированные страницы

Комментарий: Чтобы изменить теги нужно можно исправить строчку $tmp1 = substr($pstr1,0,strpos($pstr1,'"')) . "<br>\n";

Код скрипта:
Код:

function GetUrl($psite1,$psite,$psleep)
{
  $j = 0;$pstr = "!";$tmp2="@";$z1 = 1;$z2 = 0;
  while($z1>0 && $z2 != $z1){     
    $z2 = $z1;
    $pstr = file_get_contents("http://yandex.ru/yandsearch?p=$j&site=$psite1&date=&text=&spcctx=notfar&zone=all
&wordforms=all&lang=all&within=0&from_day=&from_month=
&from_year=&to_day=17&to_month=7&to_year=2008&mime=all
&rstr=&ds=&numdoc=50");       
    $z1 = strlen($pstr)>0;
    while(strpos(' '.$pstr,"http://$psite")>0){
       $pstr1 = trim(substr($pstr,strpos($pstr,"http://$psite")));
       $tmp1  = substr($pstr1,0,strpos($pstr1,'"')) . "<br>\n";
       if(strpos($tmp2,'@'.$tmp1.'@')>1) return;           
       echo $tmp1;
       $tmp2 .= $tmp1.'@';$pstr = substr($pstr1,5);
    }
    sleep($psleep);
    $j++;
  }
}

_________________
Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)

Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Веденин
Красные глаза
Красные глаза


Зарегистрирован: 17.05.2007
Сообщения: 2067
Откуда: Самара
11926 Монеты

СообщениеДобавлено: Пт, 12 Сен, 2008 06:08    Заголовок сообщения: Ответить с цитатой

Описание скрипта: Скрипт определяет позицию сайта через Яндекс.XML в запросе

Пример вызова функции:GetUrl('vedenin.ru','%d0%b1%d0%b0%d0%bb%d1%8c%d0%bd%d1%8b%d0%b5%20%d1%82%d0%b0%d0%bd%d1%86%d1%8b',10); ;

Параметры функции:
Первый параметр сайт, второй запрос, третий сколько страниц смотреть. Второй праметр это запрос в utf-8, проще всего получить это набрать его в google и взять из url строки запроса параметр q (т.е. строку от &q= до &)

Комментарий:скрипт находит на какой странице находиться ваш сайт (отчет идет с 1)
и возвращает xml этой страницы, для более точного подсчета
надо изменить его чтобы он искал в тексте xml. Так как на странице 10 результатов, то диапазон от (i-1)*10+1 до i*10.
Максимально можно не более 100 страниц, перед использованием надо зарегить ip в xml.yandex.ru


Код скрипта:
Код:

function GetUrl($psite,$pquery,$cnt)
{
  $i=0;
  while($i<$cnt && strpos(' '.$pstr,"http://$psite")==0){     
    $pstr = file_get_contents("http://xmlsearch.yandex.ru/xmlsearch?query=$pquery&page=$i");       
    $i++;   
  }
if($i<$cnt){echo $i;return $pstr;}
else{echo "Not found!";return '';}
}

_________________
Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)

Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Веденин
Красные глаза
Красные глаза


Зарегистрирован: 17.05.2007
Сообщения: 2067
Откуда: Самара
11926 Монеты

СообщениеДобавлено: Пт, 12 Сен, 2008 08:46    Заголовок сообщения: Ответить с цитатой

Описание скрипта: Скрипт упрощающий перенос данных с бесплатных форумов

Комментарий:Часто возникают проблемы при переходе на другой хостинг,
которые заключаются в том, что бесплатные хостинги типа ucoz или mybb не отдают
базу форума, в результате данные форума теряются, так как копировать каждое
сообщение слишком накладно. С помощью этого скрипта можно получить всю страницу форума
в текстовом виде с указанием nik'а, кто написал сообщение. Более того легко можно
изменить скрипт для почти любых форумов, а не только phpBB2.*,ucoz,mybb.
Подробнее можно посмотреть здесь

Примеры вызова функции:
Для укоза: getPageUkoz('http://forum.ucoz.ru/forum/6-20477-1');
Для phpBB2.*: getPagePHPBB2('http://vedenin.ru/forum/viewtopic.php?t=659&sid=9546c835318c9ab51e932a6a943feca9');
Для mybb:getPageMyBB('http://paladinxxi.5bb.ru/viewtopic.php?id=165','http://paladinxxi.5bb.ru');

Параметры функции:$page - адрес страницы форума, $psite - сайт форума,
$first,$second - теги ограничивающие ник,$first1,$second1 - теги ограничивающие пост

Модификации скрипта:Для использования других форумов, надо вызвать функцию
getPage, необходимо определить теги начала ника и поста и теги их окончания. Теги
начала (на самом деле любой текст перед ником и постом, но если теги HTML то целиком)
должны быть уникальны, т.е. не должно быть на странице с этим тегом другого текста,
окончания должны только не встречатся в средине поста или ника. Т.е. определяем какой текст HTML ВСЕГДА
есть перед ником и только перед ним, и также перед постом, и определяем каким текстом
ВСЕГДА заканчивается пост или ник и в самом нике или посте этот текст НИКОГДА не встречается.

Код скрипта:
Код:

# Получение текста из любого ukoz форума
function getPageUkoz($page){
  getPage($page,'<td width="23%" class="postTdTop" align="center">',
   '</td>','<td class="posttdMessage" valign="top">','</td>');
}


# Получение текста из любого phpbb2 форума
function getPagePHPBB2($page){
  getPage($page,'<span class="name">',
   '</span>','<span class="postbody">','<span class="gensmall">');
}

# Получение текста из MyBB
function getPageMyBB($page,$psite){
  getPage($page,'<a href="' . $psite . '/profile.php?id',
   '</a>','<div class="post-content">','</div>');
}

# Получение текста из любого форума
function getPage($page,$first,$second,$first1,$second1){
$text= file_get_contents($page);
while(strpos(' '.$text,$first)>0){
  $tmp =  GetText($first,$second,$text);   
  $tmp =  substr($tmp,strpos($tmp,'>')+1);
  $tmp1 =  GetText($first1,$second1,$text);     
  echo '[b]'.trim($tmp).'[/b]'."\n <br>".trim($tmp1);
}               
}

# Получение текста ограниченного двумя частями текста.
function GetText($findfirst,$findsecond,&$text){
   if(strlen($findfirst)==0 || strlen($text)==0) return '';
   $i1 = strpos(' '.$text,$findfirst);
   if( $i1 == 0 ) return '';
   $text1 = substr($text,$i1+strlen($findfirst)-1);
   $i = strpos(' '.$text1,$findsecond);
   if( $i == 0 || strlen($findsecond)==0) return $text1;
   $text1 = substr($text1,0,$i-1);
   $text  = substr($text,$i1+$i+strlen($findsecond)+strlen($findfirst)-2);
   return $text1;
}

_________________
Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)

Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Веденин
Красные глаза
Красные глаза


Зарегистрирован: 17.05.2007
Сообщения: 2067
Откуда: Самара
11926 Монеты

СообщениеДобавлено: Пт, 12 Сен, 2008 14:18    Заголовок сообщения: Ответить с цитатой

Описание скрипта: Удаление всех тегов HTML (получение только текста)
Вызов функции: DeleteTeg('<span class=invis>Привет мир!</span>');
Параметры функции: $pstr - текст с HTML, который надо удалить
Комментарий: В отличие от встроенных в PHP функций работает стабильно всегда, удаляет все теги оставляя только текст. Внимание не забывайте, что текст внутри тегов script и style тоже не удалится, хотя это тоже чаcть HTML . И учитывайте, что если парсить русский текст в кодировке utf-8, то его лучше преобразовать в ANSI, иначе некоторые русские символы будут разпознаватся как < или >, что может привести к ошибкам парсинга.
Код скрипта:

Код:
# Удаление всех тегов HTML (получение только текста)
function DeleteTeg($pstr)
{   
   $i = 0;
   $flag=false;
   $text = '';
   while($i<=strlen($pstr)){     
     if($pstr[$i]=='<') {           
        $i++;
        if($pstr[$i]=='/'){$i++;$flag=true;}
        workTeg($pstr,$i);
        $i++;       
     } else {
        $text .= $pstr[$i];
        $i++;
     }
   }
   return $text;
 }

# Обработка тега HTML
   function workTeg($pstr,&$i){
      $arrayteg = array();
      $arrayteg['0'] = getName($pstr,$i);     
      if(!getFirstChar($pstr,$i)) return;
      $j = 0;
      while($i<=strlen($pstr)){                           
        if(!getFirstChar($pstr,$i)) return $arrayteg;
        $tmp = getName($pstr,$i);
        $arrayteg[$tmp]="";
        if(strlen($tmp)>0){               
          if(!getFirstChar($pstr,$i)) return $arrayteg;         
             if($pstr[$i] == "=") {
      $i++;
      if(!getFirstChar($pstr,$i)) return $arrayteg;
                 $arrayteg[$tmp]=getProperty($pstr,$i);
             }       
        } else {$i++;}           
   $j++;
      }           
      return $arrayteg;
   }

# Получение первого символа             
   function getFirstChar($pstr,&$i){
      while($i<=strlen($pstr) && $pstr[$i] != '>' && $pstr[$i] != '<') {       
        if(!isSpace($pstr[$i],$i)) {
          return true;
        }
   $i++;
      } 
      return false;
   }

# Получение имени тега или атрибута
   function getName($pstr,&$i){
      $tmp = '';
      while($i<=strlen($pstr) && isChar($pstr[$i],$i)) {
        $tmp .= $pstr[$i];
        $i ++;
      }
      return $tmp;   
   }

# Получение атрибута
   function getProperty($pstr,&$i){       
     if($pstr[$i]!='"' && $pstr[$i]!="'"){         
         return getName($pstr,$i);
     } else {                 
         $tmp = $pstr[$i]; $i++; $tmp1 = "";
         while($pstr[$i] != $tmp && $i<=strlen($pstr)) {       
            $tmp1 .= $pstr[$i];
            $i++;
         }
    $i++;
         return $tmp1;
     }
   }

# Проверка символ ли
   function isChar($pchar,&$i){
     return ($pchar>='a' && $pchar<='z') || ($pchar>='A' && $pchar<='Z') || ($pchar>='0' && $pchar<='9') || $pchar == '-'  || $pchar == '.' || $pchar == '!';
   }

# Проверка пробел ли 
   function isSpace($pchar,&$i){
     return $pchar <= " ";
   }

_________________
Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)

Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Веденин
Красные глаза
Красные глаза


Зарегистрирован: 17.05.2007
Сообщения: 2067
Откуда: Самара
11926 Монеты

СообщениеДобавлено: Пт, 12 Сен, 2008 14:26    Заголовок сообщения: Ответить с цитатой

Описание скрипта: Парсит один тег HTML возвращая атрибуты в виде массива и передвигает индекс i на конец тега
Вызов функции: $i=0;$parray = workTeg('a href="http://vedenin.ru/" _target = "blank"> hkdjhgd</a> sfgsd',$i)
Параметры функции: $pstr - текст с тегом, $i - индекс с которого надо начинать работу. Внимание: функция обработает тег только, если начать работу сразу с названия тега, т.е. надо передовать не </a> или <a href ... , а a href="...
Комментарий: Нулевой символ массива это имя тега, обращатся к атрибутам можно так $parray['href']
Код скрипта:
Код:
 
#Обработка тега HTML
   function workTeg($pstr,&$i){
      $arrayteg = array();
      $arrayteg['0'] = getName($pstr,$i);     
      if(!getFirstChar($pstr,$i)) return;
      $j = 0;
      while($i<=strlen($pstr)){                           
        if(!getFirstChar($pstr,$i)) return $arrayteg;
        $tmp = getName($pstr,$i);
        $arrayteg[$tmp]="";
        if(strlen($tmp)>0){               
          if(!getFirstChar($pstr,$i)) return $arrayteg;         
             if($pstr[$i] == "=") {
      $i++;
      if(!getFirstChar($pstr,$i)) return $arrayteg;
                 $arrayteg[$tmp]=getProperty($pstr,$i);
             }       
        } else {$i++;}           
   $j++;
      }           
      return $arrayteg;
   }

# Получение первого символа             
   function getFirstChar($pstr,&$i){
      while($i<=strlen($pstr) && $pstr[$i] != '>' && $pstr[$i] != '<') {       
        if(!isSpace($pstr[$i],$i)) {
          return true;
        }
   $i++;
      } 
      return false;
   }

# Получение имени тега или атрибута
   function getName($pstr,&$i){
      $tmp = '';
      while($i<=strlen($pstr) && isChar($pstr[$i],$i)) {
        $tmp .= $pstr[$i];
        $i ++;
      }
      return $tmp;   
   }

# Получение атрибута
   function getProperty($pstr,&$i){       
     if($pstr[$i]!='"' && $pstr[$i]!="'"){         
         return getName($pstr,$i);
     } else {                 
         $tmp = $pstr[$i]; $i++; $tmp1 = "";
         while($pstr[$i] != $tmp && $i<=strlen($pstr)) {       
            $tmp1 .= $pstr[$i];
            $i++;
         }
    $i++;
         return $tmp1;
     }
   }

# Проверка символ ли
   function isChar($pchar,&$i){
     return ($pchar>='a' && $pchar<='z') || ($pchar>='A' && $pchar<='Z') || ($pchar>='0' && $pchar<='9') || $pchar == '-'  || $pchar == '.' || $pchar == '!';
   }

# Проверка пробел ли 
   function isSpace($pchar,&$i){
     return $pchar <= " ";
   }

_________________
Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)

Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Веденин
Красные глаза
Красные глаза


Зарегистрирован: 17.05.2007
Сообщения: 2067
Откуда: Самара
11926 Монеты

СообщениеДобавлено: Пт, 12 Сен, 2008 14:33    Заголовок сообщения: Ответить с цитатой

Описание скрипта: Преобразование из Utf 8 в ANSI русских символов
Вызов функции: $pstr=getTextUtf("текст");
Параметры функции: $prm - строка которую надо преобразовать.

Код скрипта:

Код:
# Преобразование из Utf 8 в ANSI
function getStringUtf($prm){
   $tmp = "";$j=0; 
   while($j<strlen($prm)) {
       $tmp1 = getTextUtf(ord($prm[$j]),ord($prm[$j+1]),$j);
       $tmp  = $tmp . $tmp1;
       $j++;
   }
   return $tmp;
}

function getTextUtf($tmp,$tmp1,&$i){
if($tmp==208 || $tmp==209){
   if($tmp==209) $t = 64;
   $i = $i + 1;
   return chr($tmp1 - 144+ord('А')+$t);
} else {
   return chr($tmp);   
}

_________________
Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)

Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Веденин
Красные глаза
Красные глаза


Зарегистрирован: 17.05.2007
Сообщения: 2067
Откуда: Самара
11926 Монеты

СообщениеДобавлено: Сб, 13 Сен, 2008 18:40    Заголовок сообщения: Ответить с цитатой

Описание скрипта: Преобразование текста из ANSI1251 в UTF8

Вызов функции: getStringToUtf('Привет Мир!);

Код скрипта:
# Получение строки в Utf
Код:
function getStringToUtf($prm){
   $tmp = "";
   for($j=0;$j<strlen($prm);$j++)
       $tmp  = $tmp . getCharToUtf($prm[$j]);
   return $tmp;
}

# Преобразование символа в Utf 8
function getCharToUtf($tmp){
if(ord($tmp)==ord('ё'))
  return 'С'. chr(145); 
if(ord($tmp)==ord('Ё'))
  return 'С'. chr(129); 
if(ord($tmp)<ord('А') || ord($tmp)>ord('я'))
  return $tmp;
else if(ord($tmp)<240)
   return 'Р'. chr(ord($tmp)+144-ord('А'));
else
   return 'С'. chr(ord($tmp)+128-ord('p'));
}

_________________
Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)

Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Веденин
Красные глаза
Красные глаза


Зарегистрирован: 17.05.2007
Сообщения: 2067
Откуда: Самара
11926 Монеты

СообщениеДобавлено: Пн, 29 Сен, 2008 08:09    Заголовок сообщения: Пишем самый простой сайт на PHP или переводим HTML в PHP Ответить с цитатой

Пишем самый простой сайт на PHP или переводим HTML в PHP. (Часть 1)
Писать сайт на HTML можно вполне успешно до определенного уровня, когда на сайте меньше сотни страниц, вполне можно обходится чистым HTML, с использованием нескольких скриптов например для форм отправки сообщений
на почтовый ящик и т.п. Однако с ростом сайта чистый HTML уже трудно поддерживать и возникает желания использовать все возможности PHP: вставка чужих скриптов, добавление комментариев, возможность изменить дизайна всего сайта, исправив один файл, легкая работа с биржами ссылок и т.п. Есть только одна проблема не хватает знания PHP, но на самом деле PHP намного проще чем кажется.
Будем считать, что у нас есть сайт на HTML (или хотя бы создана главная страница сайта). Предположим пока, что весь наш сайт на HTML состоит из трех частей: шапки (верх) и подвала (низ), которые общие для всех страниц и центральной части, которая для каждой страницы своя. Естественно, верх и низ имеется в виду верх и низ в исходном виду HTML коде, а не дизайне страницы в браузере.
Шапку вырежем у всем страниц сайта и поместим в файл up.php, подвал в down.php, вместо шапки в каждой странице поместим код
Код:
<?php include $_SERVER['DOCUMENT_ROOT']."/up.php"; ?>
, вместо подвала поместим код
Код:
<?php include $_SERVER['DOCUMENT_ROOT']."/down.php"; ?>
и поменям расширение на всех файлов на php. Не поверите, но сайт на php готов Smile теперь достаточно изменять один (или два) файла, чтобы изменить дизайн всего сайта, можно работать с биржами и включать чужые скрипты на php Smile
_________________
Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)

Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Веденин
Красные глаза
Красные глаза


Зарегистрирован: 17.05.2007
Сообщения: 2067
Откуда: Самара
11926 Монеты

СообщениеДобавлено: Пн, 29 Сен, 2008 08:14    Заголовок сообщения: Ответить с цитатой

Пишем самый простой сайт на PHP или переводим HTML в PHP. (Часть 2)
Первый вариант самого простого сайта страдает одним недостатком шапка и подвал всегда постоянные, что конечно неудобно (да и поисковики не любят, например, одинаковые title), изменим это например сделаем для каждой страницы свой заголовок:
перед строчкой
Код:
<?php include $_SERVER['DOCUMENT_ROOT']."/up.php"; ?>

запишем
Код:
<?php $title = 'Танцевальная поисковая система'; ?>
,
а в файле up.php между тегами title запишем
Код:
<?php echo $title; ?>
,
т.е. получится
Код:
<title><?php echo $title; ?></title>


Так можно делать с любой частью шапки и подвала, вынести её в переменную перед кодом
Код:
<?php include $_SERVER['DOCUMENT_ROOT']."/up.php"; ?>
, а в нужном месте использовать.
_________________
Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)

Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов EOMY.NET -> Программирование для WEB Часовой пояс: GMT
На страницу 1, 2, 3, 4  След.
Страница 1 из 4

 


Rambler's Top100   Рейтинг@Mail.ru    



Powered by phpBB © 2001, 2005 phpBB Group