In der Webentwicklung ist das Extrahieren von Domain -Namen in URLs eine häufigste Anforderung. PHP bietet viele Funktionen, mit denen wir Strings manipulieren können, und die STRSTR -Funktion kann verwendet werden, um Domänennamen in URLs zu extrahieren und zu manipulieren. Heute werden wir diskutieren, wie man Stristry nutzt, um dieses Ziel zu erreichen.
Strristr ist eine String -Funktion in PHP, die den Ort findet, an dem eine Zeichenfolge zuerst erscheint und alles von diesem Ort bis zum Ende der Zeichenfolge zurückgibt. Im Gegensatz zu Strpos ignoriert Strpos den Fall, der besonders bequem für die Handhabung von Domain-Namen in URLs ist, da die Domain-Namen in den meisten Fällen von Fall unempfindlich sind.
<span><span><span class="hljs-title function_ invoke__">stristr</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$haystack</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$needle</span></span><span>, </span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-variable">$before_needle</span></span><span> = </span><span><span class="hljs-literal">false</span></span><span>): </span><span><span class="hljs-keyword">string</span></span><span>|</span><span><span class="hljs-literal">false</span></span><span>
</span></span>
$ haystack : Die Zielzeichenfolge, normalerweise die URL, aus der wir Informationen extrahieren möchten.
$ nadel : Das Substring, nach dem wir suchen müssen, hier werden wir ": //" verwenden, um uns zu helfen, die Startposition des Domänennamens zu bestimmen.
$ vor_needle : Optionaler Parameter. Wenn Sie auf True gesetzt sind, geben Sie den Inhalt vor dem übereinstimmenden Teil zurück. Wenn falsch (Standard), geben Sie den passenden Teil und den Inhalt danach zurück.
Als nächstes werden wir die praktische Anwendung von Strrist vorstellen, indem wir als Beispiel Domänennamen aus URLs extrahieren. Angenommen, wir haben die folgende URL:
<span><span><span class="hljs-variable">$url</span></span><span> = </span><span><span class="hljs-string">"https://www.example.com/path/to/page?query=123"</span></span><span>;
</span></span>
Wir möchten den Domainnamenteil aus dieser URL extrahieren, nämlich www.example.com .
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$url</span></span><span> = </span><span><span class="hljs-string">"https://www.example.com/path/to/page?query=123"</span></span><span>;
</span><span><span class="hljs-comment">// verwenden stristr Finden '://' Der letztere Teil</span></span><span>
</span><span><span class="hljs-variable">$domain_part</span></span><span> = </span><span><span class="hljs-title function_ invoke__">stristr</span></span><span>(</span><span><span class="hljs-variable">$url</span></span><span>, </span><span><span class="hljs-string">'://'</span></span><span>);
</span><span><span class="hljs-comment">// Wenn gefunden,Entfernen '://' und Pfadteil</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$domain_part</span></span><span> !== </span><span><span class="hljs-literal">false</span></span><span>) {
</span><span><span class="hljs-comment">// Entfernen '://' Und fangen den ersten ab '/' Der vorherige Teil</span></span><span>
</span><span><span class="hljs-variable">$domain</span></span><span> = </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$domain_part</span></span><span>, </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-title function_ invoke__">strpos</span></span><span>(</span><span><span class="hljs-variable">$domain_part</span></span><span>, </span><span><span class="hljs-string">'/'</span></span><span>) - </span><span><span class="hljs-number">3</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Der Domain -Name ist: "</span></span><span> . </span><span><span class="hljs-variable">$domain</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"URL Ungültiges Format"</span></span><span>;
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Strrist ($ url, ': //') : Zuerst verwenden wir Strristr , um : // zu finden, was den Beginn des Domain -Namens in der URL markiert. Strrist wird das Teil nach : // aus dem folgenden Abschnitt zurückgeben, und wenn es nicht gefunden werden kann, wird er falsch zurückgegeben.
substr ($ domain_part, 3, strpos ($ domain_part, '/') - 3) : Nachdem wir den Domänennamenteil über Substr und Strpos abfangen. Substr beginnt das dritte Zeichen nach : // bis zum ersten / erscheint in der URL.
Echo "Domain Name ist:". $ Domain; : Schließlich geben Sie den extrahierten Domänennamen aus.
URL -Format : Wir gehen davon aus, dass die eingegebene URL legal ist und der Spezifikation entspricht. Wenn die URL nicht hat : // , funktioniert Strristr nicht ordnungsgemäß. Bei der Verarbeitung von URLs ist es daher am besten, sie zuerst zu überprüfen oder die Ausnahmeregellogik hinzuzufügen.
Problem des Subdomain -Namens : Wenn die URL einen Subdomet -Namen enthält, wie z. B. blog.example.com , kann der obige Code den vollständigen Domänennamen (einschließlich des Subdomänennamens) immer noch korrekt extrahieren.
Verschiedene Protokolle : Wenn die URL ein anderes Protokoll verwendet (z. B. HTTP , HTTPS , FTP ), gilt auch Strrist , da es den Fall ignoriert.
Die Verwendung der Strrist -Funktion zum Extrahieren von Domänennamen aus URLs ist ein einfacher und effizienter Weg, dies zu tun. Durch die Kombination von Strristr und Substr können wir den Domänennamenteil leicht lokalisieren und die von uns benötigten Informationen extrahieren. In der tatsächlichen Entwicklung ist diese Methode sehr geeignet, um URLs mit Pfaden und Abfrageparametern zu verarbeiten und gleichzeitig die Unwissenheit der Fall zu gewährleisten.
Verwandte Tags:
URL