julien
julien

Reputation: 3

find a specific word in external page

How to find a specific word in a external page using php ? (dom or pregmatch, or what else ?)

example in foo.com source code with :

span name="abcd"

I want to check if the word abcd is in foo.com in php

Upvotes: 0

Views: 2182

Answers (5)

mamal
mamal

Reputation: 1986

$name = 'foo.php';
file_get_contents($name);
$contents=$pattern = preg_quote('abcd', '/');
// finalise the regular expression, matching the whole line
$pattern = "/^.*$pattern.*\$/m";
// search, and store all matching occurences in $matches
if(preg_match_all($pattern, $contents, $matches)){
  echo implode("\n", $matches[0]);
}
else{
echo "not exist word";
    }

Upvotes: 0

Ahsaan Yousuf
Ahsaan Yousuf

Reputation: 715

Here are other few ways to find specific word

<?php
$str = 'span name="abcd"';

if (strstr($str, "abcd")) echo "Found: strstr\n";
if (strpos($str, "abcd")) echo "Found: strpos\n";
if (ereg("abcd", $str)) echo "Found: ereg\n";
if (substr_count($str, 'abcd')) echo "Found: substr_count\n";
?>

Upvotes: 0

daiscog
daiscog

Reputation: 12067

To check if a string of characters exist:

<?php

$term = 'abcd';

if ( preg_match("/$term/", $str) ) { 

    // yes it does

}

?>

To check if that string exists as a word in its own right (ie, is not in the middle of a larger word) use word boundary matchers:

<?php

$term = 'abcd';

if ( preg_match("/\b$term\b/", $str) ) { 

    // yes it does

}

?>

For a case-insensitive search, add the i flag after the last slash in the regex:

<?php

$term = 'abcd';

if ( preg_match("/\b$term\b/i", $str) ) { 

    // yes it does

}

?>

Upvotes: 1

Mob
Mob

Reputation: 11096

$v = file_get_contents("http://foo.com");
echo substr_count($v, 'abcd'); // number of occurences

//or single match

echo substr_count($v, ' abcd ');

Upvotes: 0

user973254
user973254

Reputation:

if(preg_match('/span\s+name\=\"abcd\"/i', $str)) echo 'exists!';

Upvotes: 1

Related Questions