officialmuse
@officialmuse
фронтэндщик и немного бэкэндю :)

Как разбить url vk?

Мне нужно знать как разбить ссылку вк https://vk.com/wall-1234567_890 на переменные post_id и owner_id.


Сам пробовал что-то не выходит, пробовал по типу parse_url, но даже мой хостинг непонел как работает эта функция, он такой не ты чё у меня даже мозга нет. В общем я незнаю либо как работать с этой функцией, либо я вообще ничего незнаю. Может поможете?

Решение:

<?

preg_match('/wall(\d+)_(\d+)/', 'wall-1234567_890', $matches);
list(, $post_id, $owner_id) = $matches;

var_dump($post_id, $owner_id);

?>
  • Вопрос задан
  • 257 просмотров
Решения вопроса 2
miraage
@miraage
Старый прогер
Вариантов очень много. Самый простой:
php > preg_match('/wall-(\d+)_(\d+)/', 'https://vk.com/wall-1234567_890', $matches);
php > var_dump($matches);
array(3) {
  [0]=>
  string(16) "wall-1234567_890"
  [1]=>
  string(7) "1234567"
  [2]=>
  string(3) "890"
}


// EDIT

При всем уважении, на такое в дополнениях уже абсурдно спрашивать.)

list(, $post_id, $owner_id) = $matches;

// EDIT 2 для совсем маленьких
<?php

preg_match('/wall-(\d+)_(\d+)/', 'wall-1234567_890', $matches);
list(, $post_id, $owner_id) = $matches;

var_dump($post_id, $owner_id);
Ответ написан
littleguga
@littleguga
Не стыдно не знать, а стыдно не интересоваться.
В решении Mikhail Osher есть небольшой косячек.
У VK есть 2 типа id: для пользователей(только цифры, например 123) и для групп(например: -123)
В случае вопроса ТС, там именно id группы нужен.

Так что измените, чтобы "-" оставляло.
preg_match('/wall(\d+)_(\d+)/', 'https://vk.com/wall-1234567_890', $matches);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы