Удаленно получить идентификатор Soundcloud с помощью DOM
Я хочу встроить звуковое облако по его URL-адресу http://soundcloud.com/oembed?url=http://soundcloud.com/kiwinest/linkin-park-iridescent Этот URL-адрес содержит все детали звукового файла, включая html-код для вставки, поэтому я просто хочу, чтобы удалить все коды и хотите идентификатор звука, который 17181143 Я использую этот код
<?php
include('lib/simple_html_dom.php');
$html = file_get_html('http://soundcloud.com/oembed?url=http://soundcloud.com/kiwinest/linkin-park-iridescent');
if ($html) {
foreach ($html->find('object') as $obj) {
foreach ($obj->find('param') as $par) {
if ($par->name == 'movie') {
$embed = parse_url($par->value);
parse_str(urldecode($embed['query']), $val);
if (array_key_exists('url', $val)) {
$url = parse_url($val['url']);
$path = explode('/', $url['path']);
$code = array_pop($path);
if (is_numeric($code)) {
echo 'CODE: ' . $code . PHP_EOL;
}
}
}
}
}
}
НО НИЧЕГО ЭТО НЕ ДАЕТ. (Пусто)
1 ответ
Решение
Должен был пойти с моим ответом:-D. Убедитесь, что $html НЕ пуст; например, убедитесь, что вы действительно получаете что-то с этого URL, и оно хранится в этой переменной. Мой ответ был короче, чем его безумный большой O кошмар. Так что, если вы видите цифры 8,15 (ниже), это означает, что они совпадают с числом от 8 до 15 цифр. Я изменил код ниже.
include('lib/simple_html_dom.php');
$html = file_get_html('http://soundcloud.com/oembed?url=http://soundcloud.com/kiwinest/linkin-park-iridescent');
preg_match_all('/[0-9]{8,15}/', $my_string, $ids);
echo $ids[0];