Broncode van externe website doorzoeken
Hallo allemaal,
Voor intern gebruik zou ik graag een tool willen bouwen die externe links checkt op aanwezigheid. Ik wil in een backend kunnen controleren of mijn <a href="">link</a> nog aanwezig is.
Voor de duidelijkheid, ik druk in een back-end op controleren. Vervolgens wordt de html broncode van bijvoorbeeld http://google.nl/ doorzocht op aanwezigheid van de volgende code:
Wanneer deze aanwezig is moet hij bijvoorbeeld 1 terug geven, anders 0 (maar dit kan ik zelf ook wel). Mijn vraag ligt voornamelijk in het uitlezen van externe broncode en het zoeken naar die html code (preg_match?)
Alvast bedankt!
Voor intern gebruik zou ik graag een tool willen bouwen die externe links checkt op aanwezigheid. Ik wil in een backend kunnen controleren of mijn <a href="">link</a> nog aanwezig is.
Voor de duidelijkheid, ik druk in een back-end op controleren. Vervolgens wordt de html broncode van bijvoorbeeld http://google.nl/ doorzocht op aanwezigheid van de volgende code:
Quote:
<a href="http://mijnsite.nl" title="mijnsite">mijnsite</a>
Wanneer deze aanwezig is moet hij bijvoorbeeld 1 terug geven, anders 0 (maar dit kan ik zelf ook wel). Mijn vraag ligt voornamelijk in het uitlezen van externe broncode en het zoeken naar die html code (preg_match?)
Alvast bedankt!
Met onderstaande code kan je kijken wat voor foutmelding er terug komt.
Toevoeging op 09/08/2010 19:49:58:
Ging nog even google voor je .. zie http://nadeausoftware.com/articles/2007/06/php_tip_how_get_web_page_using_curl
Heb heb gelijk even voor je aangepast .. code werkt ook .. je kan hem zelf wel mooi opmaken .. ;-)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
$ch = curl_init('http://www.mijndomein.nl/');
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch,CURLOPT_TIMEOUT,10);
$output = curl_exec($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
// return HTTP Protocol Code
//ETC. 400Bad Request, 200OK (no error), 201Created, 202Accepted
//zo zijn er nog meer error codes .. die kan je vast wel vinden.
echo $httpcode;
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch,CURLOPT_TIMEOUT,10);
$output = curl_exec($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
// return HTTP Protocol Code
//ETC. 400Bad Request, 200OK (no error), 201Created, 202Accepted
//zo zijn er nog meer error codes .. die kan je vast wel vinden.
echo $httpcode;
Toevoeging op 09/08/2010 19:49:58:
Ging nog even google voor je .. zie http://nadeausoftware.com/articles/2007/06/php_tip_how_get_web_page_using_curl
Heb heb gelijk even voor je aangepast .. code werkt ook .. je kan hem zelf wel mooi opmaken .. ;-)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
function get_web_page( $url )
{
$options = array(
CURLOPT_RETURNTRANSFER => true, // return web page
CURLOPT_HEADER => false, // don't return headers
CURLOPT_FOLLOWLOCATION => true, // follow redirects
CURLOPT_ENCODING => "", // handle all encodings
CURLOPT_USERAGENT => "spider", // who am i
CURLOPT_AUTOREFERER => true, // set referer on redirect
CURLOPT_CONNECTTIMEOUT => 120, // timeout on connect
CURLOPT_TIMEOUT => 120, // timeout on response
CURLOPT_MAXREDIRS => 10, // stop after 10 redirects
);
$ch = curl_init( $url );
curl_setopt_array( $ch, $options );
$content = curl_exec( $ch );
$err = curl_errno( $ch );
$errmsg = curl_error( $ch );
$header = curl_getinfo( $ch );
curl_close( $ch );
$header['errno'] = $err;
$header['errmsg'] = $errmsg;
$header['content'] = $content;
return $header;
}
$array = get_web_page('http://www.mijndomein.nl');
if(stristr($array['content'], 'ik zoek')){
//echo "string found" ;
return true;
} else
{
//echo "string not found" ;
return false;
}
{
$options = array(
CURLOPT_RETURNTRANSFER => true, // return web page
CURLOPT_HEADER => false, // don't return headers
CURLOPT_FOLLOWLOCATION => true, // follow redirects
CURLOPT_ENCODING => "", // handle all encodings
CURLOPT_USERAGENT => "spider", // who am i
CURLOPT_AUTOREFERER => true, // set referer on redirect
CURLOPT_CONNECTTIMEOUT => 120, // timeout on connect
CURLOPT_TIMEOUT => 120, // timeout on response
CURLOPT_MAXREDIRS => 10, // stop after 10 redirects
);
$ch = curl_init( $url );
curl_setopt_array( $ch, $options );
$content = curl_exec( $ch );
$err = curl_errno( $ch );
$errmsg = curl_error( $ch );
$header = curl_getinfo( $ch );
curl_close( $ch );
$header['errno'] = $err;
$header['errmsg'] = $errmsg;
$header['content'] = $content;
return $header;
}
$array = get_web_page('http://www.mijndomein.nl');
if(stristr($array['content'], 'ik zoek')){
//echo "string found" ;
return true;
} else
{
//echo "string not found" ;
return false;
}
Gewijzigd op 09/08/2010 19:50:59 door Mark Beets
Die check is vrij eenvoudig. Lastiger wordt het als de link dmv css onzichtbaar wordt gemaakt.
Helemaal super, daar kan ik zelf mee aan de slag :)
Gewijzigd op 09/08/2010 21:23:49 door Tom V




