Log in

View Full Version : split html for pagination



kusalo
07-11-2006, 03:59 AM
I have set up a nice javascript pagination system using explode() with a pre-set seperator. This divides the root file by 'item' (an item comprises a title and sub-text)

For some pages the items are quite long and I would like the option to have a page split according to text length. The pagination script requires an array so I have been playing with:
$split_text=chunk_split($str,22,'|');
$split_array=explode('|',$split_text);

The only problem here is it ignores both words and html tags.
The only word-related php I can find is: str_word_count and this also ignores html tags.

I guess I could explode using a (full) stop but this snags if the page includes a path reference - eg. img src=../images/pot.gif
Ditto splitting by space.
In short, there seems too many if{} else{} permutations to try this approach.

So, how to split (or explode) a bunch of html in relation the actual text?
Any suggestions or solutions would be much appreciated.

cheers - arfa

jr_yeo
07-11-2006, 04:12 AM
http://www.php-mysql-tutorial.com/php-mysql-paging.php

kusalo
07-11-2006, 05:56 AM
thanks for the reply but I am splitting html - not sql data

basically it is all in a simple text file
include 'text_file';

split_explode
print paginated data - if only :o)

I imagine this issue is not exclusive to me and that there is a standard solution floating about somewhere. Yes?

cheers - arfa

Twey
07-11-2006, 02:48 PM
define('WORDS_PER_PAGE', 22);

function getPage($file, $page) {
$fc = file_get_contents (http://www.php.net/file-get-contents)('text_file');
$firstword = WORDS_PER_PAGE * ($page - 1);
$lastword = WORDS_PER_PAGE * $page;
$words = explode (http://www.php.net/explode)(' ', $fc);
$pgc = '';
for($i = $firstword; $i < count (http://www.php.net/count)($words) && $i <= $lastword; ++$i)
$pgc .= ' ' . $words[$i];
return $pgc;
}