@GonGo;
<?php
class Finder {
protected static $url = null;
protected static $response = null;
protected static $items = null;
private function __construct() {}
public static function setUrl($url)
{
self::$url = $url;
return new static();
}
public static function getUrl()
{
return self::$url;
}
public static function find($term = null, $static_return = false)
{
if(is_null($term))
{
return false;
}
if(is_array($term))
{
return self::multipleFind($term);
}
if(is_null(self::$items))
{
self::$items = array();
}
if(is_null(self::getResponse()))
{
self::setResponse();
}
if($static_return)
{
$result = array("key" => $term, "items" => array());
foreach(self::getResponse() as $item)
{
if(!is_bool(strpos($item, $term)))
{
$result["items"][] = $item;
}
}
return $result;
}
else
{
return new static();
}
}
protected static function multipleFind($terms)
{
foreach($terms as $term)
{
$result = self::find($term, true);
self::setItem($result);
}
return new static();
}
protected static function setItem($result)
{
self::$items[$result["key"]] = $result["items"];
return new static();
}
public static function getItems()
{
return self::$items;
}
protected static function cleanItem($item)
{
return trim(strip_tags($item));
}
protected static function setResponse()
{
$raw = file_get_contents(self::getUrl());
$response = preg_match_all("#\<br\s\/\>(.*?)\<br\s\/\>#si", $raw, $matches) ? end($matches) : null;
$items = array();
foreach($response as $item)
{
if(strpos($item, "<") === false && strlen($item) > 1)
{
$items[] = self::cleanItem($item);
}
}
ksort($items);
self::$response = $items;
return new static();
}
protected static function getResponse()
{
return self::$response;
}
}
Finder::setUrl("http://www.domainforumlari.com/dusecek-domainler/5549-27-kasim-2013-dusecek-domainler-listesi.html");
print_r(Finder::find(array("oyun", "forum"))->getItems());betiğin ürettiği çıktı;
Array
(
[oyun] => Array
(
[0] => bodrumoyuncak.com
[1] => boyunfitigim.org
[2] => ithalkoyun.com
[3] => ithalkoyunsiparisi.com
[4] => keyiflioyunoyna.net
[5] => oyun17.com
[6] => oyunaras.com
[7] => oyuncopy.com
[8] => oyunuz.com
[9] => sancakoyun.com
)
[forum] => Array
(
[0] => ankarauniforum.com
[1] => forumjeep.org
[2] => muzikfilmforum.com
)
)