Scott Hamm wrote:
How can I set a limit on readfile() function to only read contents between
<body> and </body> tags rather than entire file?
I dont think you can but here's two solutions (not using readfile()):
Solution 1.
//beware that any other text on same line as body tags will be lost
$fh = fopen($filename, 'r'); $body_contents = ''; $read = false;
while(!feof($fh)) { $line = fgets($fh); if (preg_match('/<\/body>/', $line)) $read = false; if ($read) $body_contents .= $line; if (preg_match('/<body(\s.*?)?>/', $line)) $read = true; }
echo $body_contents;
Solution 2
// should extract all text between body tags even if on same line
// I'm far from a regex guru so there may well be a better pattern than this :)
$file_string = file_get_contents($filename);
$file_string = preg_replace("/.+?<body(\s.*?)?>(.+?)<\/body>.+/is", '$2', $file_string);
echo $file_string;
--
|> Brad Kowalczyk
|> Web Developer
|> [EMAIL PROTECTED]
|> www.ibiscode.com