2010-10-30 2 views
1

Я пытаюсь создать код для загрузки mp3-файлов, встроенных в страницу. Он начинается как форма отправки. Вы вводите URL-адрес и отправляете его, и он записывает источник HTML этой страницы в текстовый файл. Я также установил сценарий для поиска источника, чтобы увидеть, есть ли встроенный аудиофайл. Полагаю, я должен сказать, что это не в формате filename.mp3. Формат:Использование PHP для поиска текстового файла

embed type="application/x-shockwave-flash" src="http://diaryofthedead.tumblr.com/swf/audio_player_black.swf?audio_file=http://www.tumblr.com/audio_file/1435664895/tumblr_lb2ybulZkt1qb5hrc&color=FFFFFF" height="27" width="207" quality="best"

Так вот в чем дело, есть только определенная строка, которую вы должны добавить в конец файла, для того, чтобы перенаправить в файл mp3. Я знаю строку. То, что я хочу сделать, это извлечь, например, «http://www.tumblr.com/audio_file/1435664895/tumblr_lb3ybulZkt1q5hrc» с середины этого. Я знаю, как читать из файлов, но я понятия не имею, как извлечь некоторые части из него, не зная точного имени файла. Так есть ли способ, которым я могу найти его для источника для «audio_file», и если он найдет строку, извлеките аудиофайл?

ответ

0

Если ваша программа просто синтаксический анализатор для извлечения файлов MP3, встроенные в веб-страницы, вы даже не нужно сохраните содержимое веб-страницы в файл, вы можете работать с источником страницы внутри памяти вашего сервера.

Если вы хотите обнаружить дорожки в MP3 внутри вспышки, при условии, что вы знаете, как это соответствует регулярному выражению, все готово.

Если вы не знаете много о выражениях rgular, вы должны посмотреть на них.

Если вы не хотите столько же энергии, как регулярное выражение может дать вам, вы всегда можете найти строки от позиции, как:

$pos = strpos($haystack, $needle); 

Осторожно: StrPos() будет найти первый (strrpos найдет последнее) появление строки. Поэтому вам нужно сделать это как можно более ясным, иначе вы можете захватить что-то нежелательное.

Посмотрите на http://www.regular-expressions.info/quickstart.html или что-то подобное.

Я не могу размещать дополнительные ссылки, потому что у меня еще недостаточно репутации

0

Вы можете попробовать использовать preg_match (http://php.net/manual/en/function.preg-match.php), чтобы получить содержимое между «audio_file =» и «&».

Или вы можете также использовать строку между функцией, чтобы получить содержимое между этими двумя строками: http://www.php.net/manual/en/function.substr.php#89493

Смежные вопросы