Broncode van externe website doorzoeken
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!
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.
Gewijzigd op 09/08/2010 21:23:49 door Tom V