OrionXL

Полезные php скрипты

Максим К-Петров @ 11:40 10.02.2010

Список полезных скриптов на php,.htaccess и etc.:

Как определить ТИЦ
Как написать собственную функцию обработки ЧПУ

Как определить ТИЦ интернет ресурса

Что такое ТИЦ И ИЦ? ИЦ (индекс цитирования) - численный показатель ссылочной популярности страницы (на сколько часто в интернете встречаются ссылки на страницу, сайт). ИЦ вычисляется поисковыми системами для использования его в алгоритмах ранжирования результатов поиска. У поисковой системы Яндекс есть Yandex ТИЦ - тематический индекс цитирования, отличительной характеристикой которого является то, что этот показатель рассчитывается по отношению к тематически близким ресурсам.

Вариантов реализации определения ТИЦ много. Рассмотрим определение ТИЦ с помощью скрипта Яндекс.Бар.

Определим ТИЦ. Для этого создадим на страничке простую форму, которая будет передавать имя сайта:

<form method="get">
<site name: input type="text" name="site">
<input type="submit" value="go">
</form>

А вот этот скрипт на php будет выполнять функции обработки и отображения ТИЦ сайта.

Исходный код на php:

<?
$site=»;
if(isset($_GET['site']))
$site=$_GET['site'];

function getTCY($url)
{
//получим XML-файл с данными о Тиц
$xml = file_get_contents('http://bar-navig.yandex.ru/u?ver=2&show=32&url='.$url);
//проверим если XML-файл прочитан, то вернем успех и значение value, иначе возврнем false – ошибка
return $xml ? (int) substr(strstr($xml, 'value=""'), 7) : false;
}
?>

к списку тем наверх

Как написать собственную функцию обработки ЧПУ

Преобразование псевдостатических адресов или ЧПУ (человеко понятных урлов) производится внутри движка или CMS. Псевдостатические они потому, что в реально таких адресов в физическом пространстве хостинг площадки не существует. Иными словами мы виртуализируем пространство url-адресов. Для того чтобы произвести подобные манипуляции необходимо провести два действия - прописать обработку данной ситуации в .htaccess или web.confg и в php скриптах.
Написать функцию обработки ЧПУ адресов на php с помощью функции preg_replace().

preg_replace - выполняет поиск и замену по регулярному выражению

Описание:

mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit] )

Выполняет поиск в строке subject совпадений с шаблоном pattern и заменяет их на replacement. В случае, если параметр limit указан, будет произведена замена limit вхождений шаблона; в случае, если limit опущен либо равняется -1, будут заменены все вхождения шаблона.

Replacement может содержать ссылки вида \\n либо (начиная с PHP 4.0.4) $n, причем последний вариант предпочтительней. Каждая такая ссылка, будет заменена на подстроку, соответствующую n'нной заключенной в круглые скобки подмаске. n может принимать значения от 0 до 99, причем ссылка \\0 (либо $0) соответствует вхождению всего шаблона. Подмаски нумеруются слева направо, начиная с единицы.

При использовании замены по шаблону с использованием ссылок на подмаски может возникнуть ситуация, когда непосредственно за маской следует цифра. В таком случае нотация вида \\n приводит к ошибке: ссылка на первую подмаску, за которой следует цифра 1, запишется как \\11, что будет интерпретировано как ссылка на одиннадцатую подмаску. Это недоразумение можно устранить, если воспользоваться конструкцией \${1}1, указывающей на изолированную ссылку на первую подмаску, и следующую за ней цифру 1.

Распишем действия поэтапно:

1. В .htaccess необходимо прописать следующее правило, чтобы иметь возможность обрабатывать строку и дать понять серверу, что мы сами выполним обработку адресов.

# принудительно перекинем пользователя на файл index.php, а в параметре передадим запрашиваемы путь
RewriteRule ^(.*)$ /index.php?url=$1

2. В скрипте мы должны поймать строку запроса и обработать ее. Адрес строки можно получить, с помощью $_SERVER['QUERY_STRING']:

<?php
$url=$_SERVER['QUERY_STRING'];
?>

или с помощью функции $_GET['параметр']:

<?php
if(is_set($_GET['url']))
$url=$_GET['url'];
?>

А вот другой пример обработки ЧПУ сриптом на языке php, так работают в bitrix :-)

<?php
$url = preg_replace("#^/index/([0-9]+)/([0-9]+)/#", "/newforum/index.php?mode=read&CID=$1&GID=$2″, "/index/5/48/");
?>

и будет подключен скрипт:

/newforum/index.php?mode=read&CID=5&GID=48

Обработку адреса строки обычно включают в начале файла. К примеру, если у Вас на сайте есть index.php,
то можно подключить проверку c помощью следующего скрипта на php:

<?php

require("url_rewrite.php");

// далее работаем со стандартными функциями
?>

к списку тем наверх

Комментариев нет

Комментариев нет.

RSS-лента комментариев к этой записи.

Извините, обсуждение на данный момент закрыто.

алгоритмы, методы, программы - OrionXL