RE: highlight_string()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi

I'm trying to go with your idea but I'm having difficulties with
preg_match_all.
I want the text between <?php and ?>. The use of preg_match_all bellow only
Returns text that is in a single line. If the <php is on one line and the ?>
is
A few lines bellow, it does not match.

preg_match_all('/<\?php(.*?)\?>/i',$text,$CodeArray,PREG_PATTERN_ORDER); 

Thanks. 

-----Original Message-----
From: Chris [mailto:dmagick@xxxxxxxxx] 
Sent: Tuesday, March 07, 2006 3:08 AM
To: Weber Sites LTD
Cc: php-general@xxxxxxxxxxxxx
Subject: Re:  highlight_string()

Weber Sites LTD wrote:
> I was afraid of that...
> I need to do HTML manipulations on the text that is outside the <??>.
> After I run highlight_string the original text is messed up.
> If I run the manipulations before then they will look like HTML And 
> not act as HTML...
> 
> Any ideas?

You could get the php from your page, highlight it and replace it back in:

preg_replace('%<?(.*)?>%s', 'highlight_string(${1})', $content);

don't know if that will work straight out for you but that should give you
an idea on how to proceed.


Or you could temporarily remove them, do whatever then replace it back in:

$placeholders = array();
while(preg_match('%<?(.*)?>%s', $content, $matches)) {
   $size = sizeof($placeholders);
   $placeholders[$size] = $matches[1];
   $content = str_replace($matches[0], '%%PLACEHOLDER['.$size.']%%', 
$content);
}

... other processing here.

foreach($placeholders as $i => $text) {
   $content = str_replace('%%PLACEHOLDER['.$i.']%%', 
highlight_string($text), $content);
}


> -----Original Message-----
> From: chris smith [mailto:dmagick@xxxxxxxxx] 
> Sent: Monday, March 06, 2006 11:59 AM
> To: Weber Sites LTD
> Cc: php-general@xxxxxxxxxxxxx
> Subject: Re:  highlight_string()
> 
> On 3/6/06, Weber Sites LTD <berber@xxxxxxxxxxxxxxx> wrote:
> 
>>The only way I could work around this was to put empty <??> at the 
>>Beginning of the text and now highlight_string() highlights only what 
>>Is inside <? ?>
>>
>>You can see an example of the problematic text in the example Area of 
>>this page : http://www.weberdev.com/get_example-4345.html
>>
>>Notice the empty <? ?> at the beginning of the example.
>>Without them, all of the example, including the text and HTML Part 
>>will be painted by highlight_string().
>>
>>Is this a bug?
> 
> 
> No. It will highlight html as well.
> 
> You can give the illusion of it not highlighting the html by using:
> 
> ini_set('highlight.html', '#000000');
> 
> --
> Postgresql & php tutorials
> http://www.designmagick.com/
> 
> 
> 


-- 
Postgresql & php tutorials
http://www.designmagick.com/

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux