Совсем недавно столкнулся с необходимостью создания небольшого проекта. Для реализации таковой необходимости мне пришлось прибегнуть к языкам Web - программирования (PHP, JavaScript). Слава Богу с языками программирования сталкивался не раз. Имел опыт программирования по технологии объектного и структурного, как низкого так и более высокого уровня, но признаюсь не на профессиональном уровне. Но все же имею представление. В общем PHP, JS давались не так уж сложно, тем более сегодня есть google (хотя его иногда перезагружают) и есть возможность погуглить. Про HTML молчу....сталкивался достаточно часто...
Бродяжничая по просторам виртуального мира я понемногу пополнял свой интеллект и продвигал разработку задуманного проекта. Столкнулся с необходимостью извлечения параметров, передаваемых через URL. Гуглил JS функции и DOM по работе c ссылками и URL и наткнулся на полезную и простую, как 5 копеек)), функцию извлечения значения параметра, передаваемого через URL, написанную на JS (простите ссылку не помню). Надеюсь данная функция будет полезна многим начинающим Web-разработчикам в целях экономии времени и избавления от рутины:
Функция возвращает значение параметра URL, по имени параметра, передаваемого в функцию (параметр varName). К примеру, Вам необходимо передать какую-то информацию в другой документ (например документ "xxxx.php"). Предположим необходимо передать число 5 и текст "Иван". Переход к странице "xxxx.php" осуществляется следующим образом:
Итак для считывания значения "5" вызываем функцию с параметром x1:
function getVariable(varName)
{
var arg=location.search.substring(1).split('&')
var variable=""
var i
for(i=0;i<arg.length;i++)
{
if(arg[i].split('=')[0]==varName)
{
if(arg[i].split('=').length>1)
{
variable=arg[i].split('=')[1]
}
return variable
}
}
return ""
}
<a href="xxxx.php">Так для передачи в xxxx.php значений "5" и "Иван" параметр href должен принять следующее значение:
xxxx.php
</a>;
xxxx.php?x1=5&x2=ИванЗнак "?" это признак того, что дальше будут перечислены параметры (параметр). Знак "&" это разделитель параметров. x1, x2 - это имена параметров. Для того, чтобы считать переданные значения, в документе xxxx.php необходимо вызвать функцию getVariable(), предварительно объявив ее. Объявить функцию можно как в xxxx.php, так и в отдельном файле. Если функция объявляется в отдельном файле, то ее необходимо подключить.
Итак для считывания значения "5" вызываем функцию с параметром x1:
str_param+=getVariable("x1");Переменная str_param содержит значение 5. Для считывания значения "Иван" вызываем функцию с параметром x2:
str_param+=getVariable("x2");
Хочу заметить, что при передаче параметров на русском языке (на Кириллице) необходимо кодировать и декодировать передаваемый параметр. В JS есть функции кодирования и декодирования, например, encodeURI, decodeURI. Т.е. в "xxxx.php?x1=5&x2=Иван", вместо "Иван" должна быть закодированная строка с помощью функции encodeURI. Можно закодировать весь URL. Но для того чтобы извлечь в xxxx.php значение "Иван" а не сочетание "непонятных символов", необходимо декодировать URL с помощью функции decodeURI.
Все очень достаточно просто.)))....Столкнувшись с задачей считывания параметров URL, программируя на PHP, написал аналогичную функцию на PHP:
Хочу опять же заметить, что при передаче параметров на русском языке (на Кириллице) необходимо кодировать и декодировать передаваемый параметр, поскольку в URL не допускается использование пробелов, а также символов национальных алфавитов, поэтому для передачи русских слов через строку запроса URL или значение параметра следует преобразовать в безопасный режим. В PHP есть функции кодирования и декодирования URL, например urlencode(), urldecode().
Итак для считывания значения "5" вызываем функцию с параметром x1:
Все очень достаточно просто.)))....Столкнувшись с задачей считывания параметров URL, программируя на PHP, написал аналогичную функцию на PHP:
Функция PhpGetVarUrl() предназначена для извлечения параметра (по имени, передаваемому в $varName) строки запроса URL. Функция возвращает строку, содержащую значение параметра. В случае если параметр с именем, переданным в $varName, не найден в строке URL, то функция возвращает FALSE. Доступ к параметрам, переданным скрипту осуществляется с помощью глобального ассоциативного массива $_SERVER. В элемент $_SERVER['QUERY_STRING'] попадает весь текст после знака "?", т.е. если строка запроса представляет собой адрес "xxxx.php?x1=5&x2=Иван", то элемент $_SERVER['QUERY_STRING'] содержит x1=5&x2=Иван.<?php function PhpGetVarUrl($varName) { $url_code=$_SERVER['QUERY_STRING']; $var_mas=""; $param=strstr($url_code, $varName); if($param!=FALSE) { $len=strlen($param); for($i=0;$i<$len;$i++) { if($param[$i]=='=') { for($k=($i+1);$k<$len;$k++) { if($param[$k]!='&') { $var_mas.=$param[$k]; } else return $var_mas; } return $var_mas; } } } else return FALSE; } ?>
Хочу опять же заметить, что при передаче параметров на русском языке (на Кириллице) необходимо кодировать и декодировать передаваемый параметр, поскольку в URL не допускается использование пробелов, а также символов национальных алфавитов, поэтому для передачи русских слов через строку запроса URL или значение параметра следует преобразовать в безопасный режим. В PHP есть функции кодирования и декодирования URL, например urlencode(), urldecode().
Итак для считывания значения "5" вызываем функцию с параметром x1:
$str_param.=PhpGetVarUrl("x1");Переменная $str_param содержит значение 5. Для считывания значения "Иван" вызываем функцию с параметром x2:
$str_param+=PhpGetVarUrl("x2");Надеюсь данная статья будет полезна многим начинающим Web-разработчикам!!!
0 коммент.:
Отправить комментарий