Обрезать текст от символа до символа php
Привет всем, помогите пожалуйста, а то уже 2 день не могу реализовать задуманное.
Имеется начальная строка: https://api.vk.com/blank.html#access_token=12345678900987654321&expires_in=0&user_id=123456789 Как из всего этого, выдернуть только то, что находится от тега access_token= и до тега &, чтобы получилось только это: 12345678900987654321 |
<?php $response='https://api.vk.com/blank.html#access_token=12345678900987654321&expires_in=0&user_id=123456789'; $token=preg_replace('#.+access_token=([^&]+?)&.+#uim','$1',$response); echo $token, PHP_EOL; $token=explode('#',$response,2); $token=array_reduce(explode('&',end($token)),function($res,$item){ $item=explode('=',$item); $res[reset($item)]=end($item); return $res; },array()); $token=$token['access_token']; echo $token;http://sandbox.onlinephpfunctions.co...b79f0460dc551f |
Спасибо тебе, если я правильно понял, то здесь два способа?
|
eez54024, да, там 2 способа.
|
Nexus, parse_str. )
|
laimas, я даже про эту функцию и не вспомнил)
<?php $response='https://api.vk.com/blank.html#access_token=12345678900987654321&expires_in=0&user_id=123456789'; $token=explode('#',$response,2); parse_str(end($token),$token); $token=$token['access_token']; echo $token; |
Цитата:
|
laimas, нет, просто не знал о её существовании)
parse_str(parse_url($response,PHP_URL_FRAGMENT),$token); Удобно, конечно, но нафиг было её вообще добавлять, если получить её результат совсем просто... Этот же вопрос можно задать для множества других функций языка. |
Цитата:
|
Лучше всего и экономнее (процессорное время) регуляркой
$token=preg_replace("#^.*access_token=([^&]+?)&.*#i","$1",$response); |
Часовой пояс GMT +3, время: 11:36. |