Dengan perkembangan industri audio, semakin banyak tapak web dan aplikasi perlu menyokong pengenalan automatik dan pembenaman pautan audio. Dalam proses pelaksanaan pembangun, kaedah biasa menggunakan ungkapan biasa untuk memadankan pautan audio. Artikel ini akan memperkenalkan cara memadankan pautan audio dan mengekstrak maklumat utama dalam ungkapan biasa PHP.
Sebelum memadankan pautan audio, kita perlu memahami struktur pautan audio. Secara umumnya, pautan audio termasuk bahagian berikut:
Sebagai contoh, berikut ialah pautan audio biasa:
http://www.example.com:8080/music/album01/song01.mp3
Dengan pautan audio Mengetahui struktur, kami boleh menggunakan ungkapan biasa untuk memadankan pautan audio. Katakan kita ingin mengekstrak semua pautan audio daripada halaman HTML, kita boleh menulis ungkapan biasa berikut:
$pattern = '/<a[^>]+href=["|']?([^"'s]+.mp3)["|']?[^>]*>(.*)</a>/iU';
Ungkapan biasa ini mula-mula sepadan dengan aksara yang berakhir dengan .mp3 dalam rentetan nilai atribut href. Ambil perhatian bahawa mod tidak tamak (U) digunakan di sini untuk mengelakkan padanan sebahagian daripada berbilang pautan.
Selepas menggunakan ungkapan biasa untuk memadankan pautan audio, kami juga perlu mengekstrak maklumat penting daripadanya, seperti protokol, domain nama, laluan, nama fail dsb. Anda boleh menggunakan fungsi terbina dalam PHP untuk mencapai langkah ini.
Sebagai contoh, kita boleh menggunakan fungsi parse_url() untuk mengekstrak protokol, nama domain, laluan dan nama fail dalam pautan:
$url = 'http://www.example.com:8080/music/album01/song01.mp3'; $parse = parse_url($url); $scheme = $parse['scheme']; // 返回"http" $host = $parse['host']; // 返回"www.example.com" $port = $parse['port']; // 返回"8080" $path = $parse['path']; // 返回"/music/album01/song01.mp3" $filename = basename($path); // 返回"song01.mp3"
Perlu diingat bahawa fungsi parse_url() tidak boleh mengekstrak terus fail Nama perlu diekstrak menggunakan fungsi basename().
Dalam sesetengah kes, laluan dan nama fail dalam pautan mungkin dikodkan URL. Anda boleh menggunakan fungsi urldecode() dalam PHP untuk menyahkod.
Sebagai contoh, kita boleh menggunakan kod berikut untuk menyahkod laluan dan nama fail dalam pautan:
$path = urldecode($path); $filename = urldecode($filename);
Akhir sekali, mari kita lihat contoh kod lengkap yang mengekstrak dan mengeluarkan maklumat utama semua pautan audio daripada halaman HTML:
$html = '......'; $pattern = '/<a[^>]+href=["|']?([^"'s]+.mp3)["|']?[^>]*>(.*)</a>/iU'; preg_match_all($pattern, $html, $matches); $urls = $matches[1]; foreach ($urls as $url) { $parse = parse_url($url); $scheme = $parse['scheme']; $host = $parse['host']; $port = $parse['port']; $path = $parse['path']; $filename = basename($path); $path = urldecode($path); $filename = urldecode($filename); echo "协议:$scheme
"; echo "域名:$host
"; echo "端口号:$port
"; echo "路径:$path
"; echo "文件名:$filename
"; }
Seperti yang anda boleh lihat daripada contoh kod di atas, ungkapan biasa digunakan untuk memadankan pautan audio dan mengekstrak maklumat utama Ia tidak sukar Pembangun hanya perlu menggabungkan ungkapan biasa dan fungsi terbina dalam PHP untuk mencapai fungsi ini.
Atas ialah kandungan terperinci Ungkapan biasa PHP dalam tindakan: memadankan pautan audio. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!