Heim > Artikel > Backend-Entwicklung > Reguläre PHP-Ausdrücke in Aktion: Passende Audio-Links
Mit der Entwicklung der Audiobranche müssen immer mehr Websites und Anwendungen die automatische Identifizierung und Einbettung von Audiolinks unterstützen. Im Implementierungsprozess von Entwicklern ist es eine gängige Methode, reguläre Ausdrücke zum Abgleichen von Audiolinks zu verwenden. In diesem Artikel erfahren Sie, wie Sie Audio-Links abgleichen und Schlüsselinformationen in regulären PHP-Ausdrücken extrahieren.
Bevor wir den Audiolink abgleichen, müssen wir die Struktur des Audiolinks verstehen. Im Allgemeinen umfasst der Audiolink die folgenden Teile:
Hier ist zum Beispiel ein typischer Audio-Link:
http://www.example.com:8080/music/album01/song01.mp3
Mit einem Verständnis der Struktur von Audio-Links können wir reguläre Ausdrücke verwenden, um Audio-Links abzugleichen. Angenommen, wir möchten alle Audio-Links aus einer HTML-Seite extrahieren, können wir den folgenden regulären Ausdruck schreiben:
$pattern = '/<a[^>]+href=["|']?([^"'s]+.mp3)["|']?[^>]*>(.*)</a>/iU';
Dieser reguläre Ausdruck stimmt zunächst mit der Zeichenfolge überein, die mit .mp3 im href-Attributwert endet. Beachten Sie, dass hier der Non-Greedy-Modus (U) verwendet wird, um zu vermeiden, dass Teile mehrerer Links übereinstimmen.
Nachdem wir reguläre Ausdrücke verwendet haben, um den Audiolink abzugleichen, müssen wir auch Schlüsselinformationen daraus extrahieren, wie Protokoll, Domänenname, Pfad, Dateiname usw. Sie können die integrierten Funktionen von PHP verwenden, um diesen Schritt zu erreichen.
Zum Beispiel können wir die Funktion parse_url() verwenden, um das Protokoll, den Domänennamen, den Pfad und den Dateinamen im Link zu extrahieren:
$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"
Es ist zu beachten, dass die Funktion parse_url() den Dateinamen nicht direkt extrahieren kann Zum Extrahieren muss die Funktion basename() verwendet werden.
In einigen Fällen können Pfade und Dateinamen in Links URL-kodiert sein. Sie können zum Dekodieren die Funktion urldecode() in PHP verwenden.
Zum Beispiel können wir den folgenden Code verwenden, um Pfade und Dateinamen in Links zu dekodieren:
$path = urldecode($path); $filename = urldecode($filename);
Schauen wir uns abschließend ein vollständiges Codebeispiel an, das die Schlüsselinformationen aus einer HTML-Seite extrahiert und ausgibt aller Audio-Links:
$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
"; }
Wie Sie dem obigen Codebeispiel entnehmen können, ist es nicht schwierig, reguläre Ausdrücke zu verwenden, um Audio-Links abzugleichen und Schlüsselinformationen zu extrahieren. Um dies zu erreichen, müssen Entwickler lediglich reguläre Ausdrücke und integrierte PHP-Funktionen kombinieren es.
Das obige ist der detaillierte Inhalt vonReguläre PHP-Ausdrücke in Aktion: Passende Audio-Links. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!