Jump to content

Problem With String Containing Single Diamond Bracket


poddys

Recommended Posts

I am coding a series of preg_replace expressions to try and strip unnecessary html/css code from text that was originally created using FCKEditor and is being copied programatically into CKEditor.

 

All works well until I try to do a search/replace on a string that ends with a ">". No matter what I try this does not work, it either appears to do nothing or it errors and my resulting text is empty.

 

In this case, if a table definition does not have a width defined, I want to add a width of 100%.

 

The old/new strings and replace expression (str_replace in this case) are below.

 

$oldstring = 'cellspacing="0">';

$newstring = 'cellspacing="0" width="100%">';

$textstring = str_replace($oldstring, $newstring, $textstring);

 

It seems that the problem is related to the ">". If I take this out, it works ok. However I want to be sure that "cellspacing" is the last tag for a table definition (the tags were added automatically by FCKEditor and are always in the same order).

 

Thanks for any help. I have been tearing my hair out for hours over this.

Link to comment
Share on other sites

Good thinking, but it didn't seem to work unfortunately.

 

If I view the html text in Source mode using CKEditor it shows me ">" rather than ">" so I do believe this is not encoded.

 

I changed my code to the following:

 

$oldstring = 'cellspacing="0">';

$newstring = 'cellspacing="0" width="100%">';

$textstring = str_replace($oldstring, $newstring, $textstring);

 

but no joy.

 

The code is all on one line too, so no newline characters etc.

Link to comment
Share on other sites

BINGO! Thanks PFM, I guess it was staring me in the face all the time, there was a space before the ">".

 

I changed this to use the following and it now works:

 

$textstring = preg_replace('/cellspacing="0"[ ]*>/', 'cellspacing="0" width="100%"\>', $textstring);

 

I was under the impression that the problem was the diamond, so leading myself on a false trail.

 

Appreciate the speedy and rapid help.

Tony

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.