Ungkapan biasa PHP dalam tindakan: memadankan pautan audio

WBOY
Lepaskan: 2023-06-22 21:48:02
asal
1192 orang telah melayarinya

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.

  1. Analisis struktur pautan audio

Sebelum memadankan pautan audio, kita perlu memahami struktur pautan audio. Secara umumnya, pautan audio termasuk bahagian berikut:

  • Protokol: seperti http, https, ftp, dsb.
  • Nama domain atau alamat IP: merujuk kepada nama domain atau alamat IP pelayan tempat sumber audio berada.
  • Nombor port: merujuk kepada nombor port yang digunakan untuk mengakses sumber audio.
  • Laluan: merujuk kepada laluan sumber audio pada pelayan.
  • Nama fail: merujuk kepada nama fail audio.
  • Sambungan: merujuk kepada sambungan fail audio, yang biasa termasuk mp3, wav, ogg, dsb.

Sebagai contoh, berikut ialah pautan audio biasa:

http://www.example.com:8080/music/album01/song01.mp3
Salin selepas log masuk
  1. Gunakan ungkapan biasa untuk memadankan pautan audio

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';
Salin selepas log masuk

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.

  1. Ekstrak maklumat penting pautan audio

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"
Salin selepas log masuk

Perlu diingat bahawa fungsi parse_url() tidak boleh mengekstrak terus fail Nama perlu diekstrak menggunakan fungsi basename().

  1. Menyahkod pengekodan URI

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);
Salin selepas log masuk
  1. Contoh kod penuh

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

"; }
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan