Using PHP to add a word to a txt file every X charachters

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Threaded View

Could PHP be used to take a txt file (or set of txt files) and add a
string of characters every X number of words or characters?

Say a txt file with 50,000 characters/5,000 words how would you go
about adding a string of characters every 5,000 characters or 500

To improve on this I'd want to if using characters as the guide to use
a space or better yet a line break as the point to add the string of
characters. So 5,000 characters to the nearest line break.


WordPress Themes with AdSense ads
AdSense Tips

Re: Using PHP to add a word to a txt file every X charachters

David wrote:
Quoted text here. Click to load it

$text = file_get_contents('/path/to/text.txt');
$text = chunk_split($text,5000,$string_to_add);

Quoted text here. Click to load it

For characters it's easy, see above.
For words, it's a little bit harder. One could fiddle around with
str_word_count(), but I would not think that the best solution.

If it does not have to be an exact:
$text = implode($matches[0],$string_to_add);

Quoted text here. Click to load it

********** TRY 1 *****************************************
/* settings */
$string_to_add = 'Hey, this is added!!!!!!!';
$char_to_split = "\n";
$charcount_to_split = 200;

/* match char_to_split */
$char_to_split = preg_quote($char_to_split);
preg_match_all('/'.$char_to_split .'/',$text,$matches,PREG_OFFSET_CAPTURE);

/* add difference to desired position, and which occurance */
$available_line_breaks = $matches[0];
function diffs(&$value,$key,$number){
 $occ = round($value[1]/$number,0);
 $value['occ'] = $occ;
 $value['diff'] = abs($value[1] - ($occ * $number));

/* determine which line-break is closest */
$closest = array();
function closest(&$value,$key,&$closest){
 if(!isset($closest[$value['occ']]) || $closest[$value['occ']]['diff'] >
  $closest[$value['occ']] = array('diff' => $value['diff'],'offset' =>
array_walk($closest, create_function('&$a','$a = $a["offset"];'));

/* this code means that if there are no available line-breaks around, there
will be no value. To illustrate: */
$not_set =
echo "For the following repeats of $charcount_to_split, no linebreaks were

/* you could search for a word-boundary (\W) in that region, I've left that
out */

/* Let's add the string, form last to first, otherwise our offset is off...
foreach($closest as $target){
 $text =
But offcourse, this is bullsh*t.

********** TRY 2 *****************************************
$text = text to adapt.
$string = string to add.
$count = preferred number of characters.
$split = string to split on.
$variance = the number of characters to search left and right.

function replace_text_several_times($text,$insert,$count,$split,$variance =
 $split = preg_quote($split,'/');
 $regex =
 return preg_replace($regex,'$1$2'.$insert,$text);

The code above will not be near the exact number of characters, but will
nevertheless repeat the string as often as you like provided your $split

Rik Wasmus

Re: Using PHP to add a word to a txt file every X charachters


Quoted text here. Click to load it

Thanks for the info Rik, looks like the sort of stuff I was after,
will see if I can introduce it into a script I'm working with.

Thanks again.

SEO Tutorial
More Earnings Blog

Site Timeline