Hi everyone. I am looking to create a simple function that will spot a hexcolor in a font tag, that has quotes, and remove the quotes. i.e <font color="ffffff"> should become <font color=ffffff>. Perhaps I am making it more complex than it needs to be, but I have broken down the input string into an array of single characters using preg_split(), and I am iterating through the chars, looking for a quote followed by a hash. The problem appear to be with the hash. Although it prints out fine, not amount of escaping the hash seems to allow me to match it. Instead preg_match() match spaces (obviously because the veriable I am using to store the '#', is not storing it properly. Please could someone put me out of my misery by either hinting towards a simpler way to do it, or just shooting me? I am sure there are at least 100 different ways of using regex to achieve what I want, but I can't think how. Perhaps I am just looking at the wrong functions? Many thanks. Daz.
Daz wrote: > Hi everyone. I am looking to create a simple function that will spot a > hexcolor in a font tag, that has quotes, and remove the quotes. i.e > <font color="ffffff"> should become <font color=ffffff>. > > Perhaps I am making it more complex than it needs to be, but I have > broken down the input string into an array of single characters using > preg_split(), and I am iterating through the chars, looking for a quote > followed by a hash. The problem appear to be with the hash. Although it > prints out fine, not amount of escaping the hash seems to allow me to > match it. Instead preg_match() match spaces (obviously because the > veriable I am using to store the '#', is not storing it properly. > > Please could someone put me out of my misery by either hinting towards > a simpler way to do it, or just shooting me? > > I am sure there are at least 100 different ways of using regex to > achieve what I want, but I can't think how. Perhaps I am just looking > at the wrong functions? > > Many thanks. > > Daz. Why not just preg_replace('/(<font\s+color\s*=\s*)"(#[0-9a-f]+)"/si', '\1\2', $html)?
Chung Leong wrote: > Daz wrote: > > Hi everyone. I am looking to create a simple function that will spot a > > hexcolor in a font tag, that has quotes, and remove the quotes. i.e > > <font color="ffffff"> should become <font color=ffffff>. > > > > Perhaps I am making it more complex than it needs to be, but I have > > broken down the input string into an array of single characters using > > preg_split(), and I am iterating through the chars, looking for a quote > > followed by a hash. The problem appear to be with the hash. Although it > > prints out fine, not amount of escaping the hash seems to allow me to > > match it. Instead preg_match() match spaces (obviously because the > > veriable I am using to store the '#', is not storing it properly. > > > > Please could someone put me out of my misery by either hinting towards > > a simpler way to do it, or just shooting me? > > > > I am sure there are at least 100 different ways of using regex to > > achieve what I want, but I can't think how. Perhaps I am just looking > > at the wrong functions? > > > > Many thanks. > > > > Daz. > > Why not just preg_replace('/(<font\s+color\s*=\s*)"(#[0-9a-f]+)"/si', > '\1\2', $html)? Because I forgot how to get the matched text from the regex pattern match. Hehe. Many thanks for that. :) Daz