Wie um Zu Überprüfen, Ob EINE URL, Externe URL oder Interne URL Mit PHP?
Ich bin immer alle ahrefs der einen Seite bei diesem loop:
foreach($html->find('a[href!="#"]') as $ahref) {
$ahrefs++;
}
Möchte ich etwas wie das hier tun:
foreach($html->find('a[href!="#"]') as $ahref) {
if(isexternal($ahref)) {
$external++;
}
$ahrefs++;
}
Wo isexternal ist eine Funktion
function isexternal($url) {
//FOO...
//Test if link is internal/external
if(/*condition is true*/) {
return true;
}
else {
return false;
}
}
Hilfe!
Intern oder extern, was? Die Seite die Seite wurde abgekratzt?
Ich denke, das ist, was er bedeutet. Wie"Ist es ein Kreuz-website-link ?"
Angenommen, es gibt eine Website: xyz.com... Wenn es links einen link zu einer anderen Website abc.com, dann ist dieser link markiert werden soll, als externe. Aber wenn, Ihr mit gleicher domain (xyz.com) oder lokale URL, dann sollte es nicht fallen in externen
wie haben Sie die $html var gefüllt, bedeutet das, Sie wissen den domain-Namen, richtig ?
Yep. Ich habe jede < a > link mit href + domain-Namen als gut. Nur möchte ich wissen, wie mache ich es getrennt von gleichen Domänen-URLs.
Ich denke, das ist, was er bedeutet. Wie"Ist es ein Kreuz-website-link ?"
Angenommen, es gibt eine Website: xyz.com... Wenn es links einen link zu einer anderen Website abc.com, dann ist dieser link markiert werden soll, als externe. Aber wenn, Ihr mit gleicher domain (xyz.com) oder lokale URL, dann sollte es nicht fallen in externen
wie haben Sie die $html var gefüllt, bedeutet das, Sie wissen den domain-Namen, richtig ?
Yep. Ich habe jede < a > link mit href + domain-Namen als gut. Nur möchte ich wissen, wie mache ich es getrennt von gleichen Domänen-URLs.
InformationsquelleAutor mehulmpt | 2014-04-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden parse_url und vergleichen Sie host auf den lokalen host (oft, aber nicht immer ist es das gleiche wie
$_SERVER['HTTP_HOST']
)Hovewer diese behandeln http://www.example.com und example.com wie die unterschiedlichen Rechnern. Wenn Sie möchten, dass alle Ihre sub-domains behandelt werden wie lokale links die Funktion dann etwas größer sein:
aktualisiert mit der Behandlung von subdomains
Die Prüfung für die subdomain ist nicht zuverlässig. z.B. theexample.com passen example.com
Es nicht . strrpos wird FALSE zurückgegeben
InformationsquelleAutor Ruslan Bes
es wird behandeln http://www.ihackeddomainname.com das gleiche wie http://www.domainname.com. Neben strpos($url,"/") === '0' nie mit
schlecht zu beantworten, aus dem Grund erwähnt über mir ^
was ist, wenn die url-Zeichenfolge ist eine relative Verknüpfung? schlechte Antwort
was ist, wenn die url enthält die url als Argumente, wie: someapidomain.com/callapi/?url=yourdomain.com dies wird true zurückgegeben, in Ihrer Funktion
InformationsquelleAutor Parag Tyagi -morpheus-
Ich weiß, dieser Beitrag ist alt, aber hier meine Funktion codiert ich jetzt. Vielleicht einige andere brauchen es auch.
str_replace('www.','',$host);
muss nur getan werden, wenn es in der AnfangInformationsquelleAutor Mike Aron
Werden Sie wahrscheinlich wollen, um zu überprüfen, ob der link in der gleichen Domäne. Das wird nur funktionieren, wenn alle href-Attribute sind absolut und die Domäne enthält. Relative Werte wie /test/file.html sind schwierig, da kann man ein Ordner mit den gleichen Namen als domains.. So, wenn Sie vollständige url ' s in jedem link:
in der Tat, wenn Sie beginnen mit '/' es ist der absolute. relative ist, wo das html liegt. 'img/img1.png' kann bedeuten: "/shared/img/img1.png' zum Beispiel.
Ja, es ist Hinzugefügt. Thread opener sagte, es würde die Domäne enthält. @Apolo: Er will wissen, welche extern sind; in dieser Weise ist das ok, es zu tun so. Es spielt keine Rolle, ob der Pfad absolut oder relativ, solange Ihr in der gleichen Domäne Raum.
Yep. I don ' T care. Solange die domain enthält den Hostnamen des domain testen, markieren Sie Sie als interne. Das bedeutet, dass, wenn abc.com getestet wird, markieren Sie jede domain OHNE http und nicht mit abc.com und JEDER link mit domain host-name, NICHT die EXTERNEN und Umgekehrt für EXTERNE.
Und ich hab schon alle Variablen zu testen, die domain-Namen.
InformationsquelleAutor Manuel Arwed Schmidt