Backlinkchecker - Kleine Frage

pl_90

Angesehenes Mitglied
Hallo,

Ich habe ein Backlinkcheckscript:

QUOTE
<?php

$url = $_POST['url'];
$backlink = $_POST['backlink'];

if ($url AND ($backlink)) {

function check_back_link($remote_url, $your_link) {
$match_pattern = preg_quote(rtrim($your_link, "/"), "/");
$found = false;
if ($handle = @fopen($remote_url, "r")) {
while (!feof($handle)) {
$part = fread($handle, 1024);
if (preg_match("/<a(.*)href=[\"']".$match_pattern.
"(\/?)[\"'](.*)>(.*)<\/a>/", $part)) {
$found = true;
break;
}
}
fclose($handle);
}
return $found;
}

if (check_back_link("$url_hier_soll_der_link_sein", "http://www.domain.de")) {

echo "Link ist da!";

} else {

echo "Link nicht da!";

}
}

?>



Dieses Script funktioniert ganz gut. Ich möchte jetzt wissen wie ich machen kann, dass der Script nicht nur prüft ob ein Link auf einer URL vorhanden ist, sondern der Script soll prüfen ob Link 1 oder Link 2 oder Link 3... vorhanden ist... Also wenn einer von den Links vorhanden ist, dann soll es OK sein...


Vielen Dank im Voraus...


Grüße

Dawid

 
Weiß den wirklich niemand was?
sad.gif



Grüße
biggrin.gif


Dawid
 
Ich mache gerade auch einen Katalog mit phpld. Würde mich auch interessieren. Oder gibt es nicht vielleicht schon ein fertiges Mod. Gut wäre auch, wenn sich einer in Kategorie XYZ einträgt, das dann ein Backlink für diese Kategorie angezeigt wird. Und bei den anderen Kategorien entsprechend.
 
QUOTE
<?php

$url = $_POST['url'];
$backlinks = $_POST['backlinks'];

if ($url AND ($backlinks)) {

function check_back_link($remote_url, $your_links) {   
    $tmpLinks=array();
    foreach($your_links as $link) {
        $tmpLinks[]=preg_quote(rtrim(trim($link), "/"), "/");
    }
    $match_pattern = implode("|", $tmpLinks);
    $page = file_get_contents($remote_url);
    return preg_matchl("/<a.*href=[\"'](".$match_pattern."(?:\/?))[\"'].*>.*<\/a>/iUms", $page)>0;
}


if (check_back_link($url, explode("\n", trim($backlinks)))==true) {

echo "Link ist da!";

} else {

echo "Keine Links gefunden";

}
}

?>


Das Abfrageformular besteht aus einem Textfeld namens "url" und einer Textarea namens "backlinks". Pro Zeile kommt ein Backlink in das Textarea.

Ich habe jetzt nur das Originalscript modifiziert und habe leider auch grade keine Möglichkeit zum testen. Sicherlich fehlen irgendwelche Zeichen irgendwo, aber so im groben denke ich, wäre das vielleicht etwas ;-)
 
@Rainer
Also mit dem Backlinkchecker von PHPLD habe ich keine Probleme bis jetzt.
Aber es gibt noch einen zusätzlichen MOD (Backlinkchecker) für PHPLD:
http://www.phplinkdirectory.com/forum/showthread.php?t=11546

@Markus
Vielen Dank diese Funktion würde ich auch bestimmt brauchen, aber eigentlich meinte ich was anderes damit:
Also z.Z. checkt der Script ob auf einer Seite nur ein bestimmter Link vorhanden ist, ich möchte aber, dass er checkt ob Link1 oder Link2 usw. vorhanden ist, ist einer vorhanden, soll er dann OK "sagen", wenn nicht dann "Fehler". Diese Funktion brauche ich für hier http://spammen.online-web24.de/eintragen.daw >> Eintragen mit Backlinkpflicht. Ich hab nicht immer Zeit um zu gucken, ob der Besucher wirklich einen Link eingebunden hat oder nicht, deswegen dieser Backlinkchecker.


Grüße

Dawid
 
QUOTE Also z.Z. checkt der Script ob auf einer Seite nur ein bestimmter Link vorhanden ist, ich möchte aber, dass er checkt ob Link1 oder Link2 usw. vorhanden ist

Das macht doch die Funktion. Du gibst mehrere mögliche Backlinks ein und das Script prüft, ob es auf der Zielseite mindestens einen der Backlinks findet.

Oder habe ich was falsch verstanden?
 
Jo, ich meinte aber:
biggrin.gif



Also die Backlink muss ich irgendwo hier (rot):

if (check_back_link($url, explode("\n", trim($backlinks)))==true) {

reinmachen, nicht dass Sie durch einen Formular eingegeben werden, sonder dass Sie schon im Script stehen durch Komma oder so, ich weiß nicht wie ich das machen soll...

Also hier (rot):

if (check_back_link("$url_hier_soll_der_link_sein", "http://www.domain.de")) {

muss ich ein paar Domains/Backlinks reinkriegen und der Script soll checken, ob einer davon vorhanden ist...


Vielen Dank..
biggrin.gif



Grüße

Dawid
 
Achso:

Dann ändere mein Script so ab:
Aus
CODE if (check_back_link($url, explode("\n", trim($backlinks)))==true) {

wird

CODE $backlinks=array('http://www.domain1.de', 'http://www.domain2.de', 'http://www.domain3.de');
if (check_back_link($url, $backlinks)==true) {


[Edit:]Hier mal als ganzes:

CODE
<?php
function check_back_link($remote_url, $your_links) {
$tmpLinks=array();
foreach($your_links as $link) {
$tmpLinks[]=preg_quote(rtrim(trim($link), "/"), "/");
}
$match_pattern = implode("|", $tmpLinks);
$page = file_get_contents($remote_url);
return preg_matchl("/<a.*href=[\"'](".$match_pattern."(?:\/?))[\"'].*>.*<\/a>/iUms", $page)>0;
}

$url='http://www.irgendeineBenutzerdomain.de';
$backlinks=array('http://www.dom1.de', 'http://www.dom2.de', 'http://www.dom3.de');
if (check_back_link($url, $backlinks)==true) {
echo "Link gefunden";
} else {
echo "Keine Links gefunden";
}

?>
 
Hallo,

Vielen Dank für deine Hilfe.
biggrin.gif

Ich habs ein wenig geändert, weil ich Fehler bekam:
tongue.gif


QUOTE
function check_backlinks($remote_url, $your_links) {
$tmpLinks=array();
foreach($your_links as $link) {
$tmpLinks[]=preg_quote(rtrim(trim($link), "/"), "/");
}
$match_pattern = implode("|", $tmpLinks);
$page = file_get_contents($remote_url);
return preg_match("/<a(.*)href=[\"'](".$match_pattern."(?:\/?))[\"'](.*)>(.*)<\/a>/iUms", $page)>0;
}



und so sieht jetzt alles aus:


QUOTE
<form method="POST" action="">
URL: <input type="text" size="40" name="url" value="<?php echo $_POST; ?>"> <input type=&q..."@fsockopen" in deinen Code nicht?
 
Schön wenns geholfen hat.

Ich sehe nur nicht ganz, warum Du unbedingt die Werte in Klammern setzen willst/mußt und damit eine Speicherung von zum Beispiel einem Leerzeichen haben willst
blink.gif
Sollte imho auch ohne Zusatzklammern funktionieren.
Naja, hauptsache es klappt ;-)

QUOTE Achja, warum braucht man keinen "@fopen" oder "@fsockopen" in deinen Code nicht?

Mit der Funktion "file_get_contents" (seit Version 4.3.0 in PHP) kannst Du eine komplette Seite einlesen. Mit fopen und fsockopen bekommst Du ja einen Stream, den Du langsam auslesen mußt. Mit etwas Pech zerschnibbelst Du Dir dann auch noch den Link und findest ihn dann nicht. Ich denke file_get_contents, ist deshalb hier die elegantere, sicherere und vermutlich auch schnellere Methode
cool.gif

Mit fsockopen würde ich nur Arbeiten, wenn Du einen richtigen Querystring mitsenden mußt, denn ich glaube Parameter bei Dateien (http://www.seite.de/index.php?parameter=1) kann file_get_contents und fopen nicht verarbeiten.
 
QUOTE Schön wenns geholfen hat.

Ich sehe nur nicht ganz, warum Du unbedingt die Werte in Klammern setzen willst/mußt und damit eine Speicherung von zum Beispiel einem Leerzeichen haben willst Sollte imho auch ohne Zusatzklammern funktionieren.
Naja, hauptsache es klappt ;-)


Ich hab k.A. Ich bekam Fehler... "Falal error blablala"...
Aber das ist auch jetzt egal, vielen vielen vielen Dank...
biggrin.gif



QUOTE Mit der Funktion "file_get_contents" (seit Version 4.3.0 in PHP) kannst Du eine komplette Seite einlesen. Mit fopen und fsockopen bekommst Du ja einen Stream, den Du langsam auslesen mußt. Mit etwas Pech zerschnibbelst Du Dir dann auch noch den Link und findest ihn dann nicht. Ich denke file_get_contents, ist deshalb hier die elegantere, sicherere und vermutlich auch schnellere Methode
Mit fsockopen würde ich nur Arbeiten, wenn Du einen richtigen Querystring mitsenden mußt, denn ich glaube Parameter bei Dateien (http://www.seite.de/index.php?parameter=1) kann file_get_contents und fopen nicht verarbeiten.


Alles klar, jetzt weiß ich...

Noch mals Danke schön!
biggrin.gif
 
Zurück
Oben