- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
/**
* Constructs a URL encoded query string from an array of key/value pairs
*
* @access protected
* @since 2.0
* @param array $array query string key/value pairs
* @return string
*/
protected function _glue( $array )
{
$query_string = '';
foreach( $array as $key => $val ) :
$query_string .= $key . '=' . rawurlencode( $val ) . '&';
endforeach;
return '?' . substr( $query_string, 0, strlen( $query_string )-1 );
}
mindfreakthemon 25.05.2010 09:02 # +2
это ужасно.. я понимаю, не знать про то, что substr(str, 0, strlen(str) - 1) === substr(str, 0, -1), но хотяб почитать маны о наличие функций .. в общем, страшне.
wwwguru 25.05.2010 11:49 # +2
mindfreakthemon 25.05.2010 11:54 # 0
да, это хороший вариант, но мне он по красоте нравится меньше.
Lure Of Chaos 25.05.2010 09:08 # +1
striker 25.05.2010 09:09 # +3
а вообще, есть отличная функция http_build_query
mindfreakthemon 25.05.2010 09:15 # 0
а если с массивами работа, то лучше через array implode.
cheef 25.05.2010 12:19 # +3
striker 25.05.2010 12:27 # 0
mindfreakthemon 25.05.2010 12:34 # 0
а вот уже substr, rtrim и прямом вводе разделителя - тут всё зависит от изначального количества элементов. как по мне, при маленьком выигрывает последний способ, а при больших же - substr и rtrim
turdman 25.05.2010 18:04 # +1
Govno 36s memory_peak_usage: 662168
Implode 38s memory_peak_usage: 668176
http_build_query 9s memory_peak_usage: 656856
Lure Of Chaos 25.05.2010 18:18 # 0
striker 26.05.2010 00:40 # 0
leprosus 25.05.2010 10:21 # +2
PS: но лучше пользовать http_build_query
wwwguru 25.05.2010 11:51 # 0
Spider 25.05.2010 13:54 # +4
Sozdatel 25.05.2010 16:20 # −5
mrbig66 25.05.2010 16:57 # +3
guest 25.05.2010 19:40 # 0
guest 25.05.2010 19:08 # 0
в данном контексте скорее всего гк остален для совместимости с предыдущими версиями.
кто сравнивает нативные функции с велосипедами больной на голову, все нативные функции выполняются в разы быстрее
striker 26.05.2010 00:41 # +1
cheef 26.05.2010 10:35 # 0
striker 26.05.2010 14:03 # 0
guest 25.05.2010 21:30 # 0
guest 26.05.2010 00:15 # 0