<?php
class parse {
public $filename = null;
public $content = null;
function urls() {
if (preg_match_all("/<a\s[^>]*href=(\"??)\/wiki([^\" >]*?)\\1[^>]*>(.*)<\/a>/siU", $this->content, $urls)) {
print_r($urls[2]);
# $matches[2] = array of link addresses
# $matches[3] = array of link text - including HTML code
}
}
function words() {
/**
* Remove HTML tags, including invisible text such as style and
* script code, and embedded objects. Add line breaks around
* block-level tags to prevent word joining after tag removal.
*/
$text = preg_replace(
array(
// Remove invisible content
'@<head[^>]*?>.*?</head>@siu',
'@<style[^>]*?>.*?</style>@siu',
'@<script[^>]*?.*?</script>@siu',
'@<object[^>]*?.*?</object>@siu',
'@<embed[^>]*?.*?</embed>@siu',
'@<applet[^>]*?.*?</applet>@siu',
'@<noframes[^>]*?.*?</noframes>@siu',
'@<noscript[^>]*?.*?</noscript>@siu',
'@<noembed[^>]*?.*?</noembed>@siu',
// Add line breaks before and after blocks
'@</?((address)|(blockquote)|(center)|(del))@iu',
'@</?((div)|(h[1-9])|(ins)|(isindex)|(p)|(pre))@iu',
'@</?((dir)|(dl)|(dt)|(dd)|(li)|(menu)|(ol)|(ul))@iu',
'@</?((table)|(th)|(td)|(caption))@iu',
'@</?((form)|(button)|(fieldset)|(legend)|(input))@iu',
'@</?((label)|(select)|(optgroup)|(option)|(textarea))@iu',
'@</?((frameset)|(frame)|(iframe))@iu',
"/\s\s+/"
),
array(
' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
"\n\$0", "\n\$0", "\n\$0", "\n\$0", "\n\$0", "\n\$0",
"\n\$0", "\n\$0", " "
),
strip_tags(html_entity_decode(trim($this->content)))
);
if (preg_match_all("/\w+/", $this->content, $words)) {
print_r($words);
# $matches[2] = array of link addresses
# $matches[3] = array of link text - including HTML code
}
}
function __construct($filename) {
$this->filename = $filename;
$this->content = file_get_contents($this->filename) or die('Could not access file: ' . $this->filename);
/*
while(1) {
}
*/
}
}
$parse = new parse('http://en.wikipedia.org/wiki/Main_Page');
$parse->urls();
$parse->words();
?>