Re: Anyone have a tool/script to convert <? to <?php (but not <?=)

From: Date: Fri, 14 Feb 2014 20:11:43 +0000
Subject: Re: Anyone have a tool/script to convert <? to <?php (but not <?=)
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-322877@lists.php.net to get a copy of this message
Match regular expression: <\?(?!(=|php)) Replacement (lose quotes): "<?php " PHP code: $result = preg_replace("/<\\?(?!(=|php))/um", "<?php ", $searchText); http://l.kehn.io/image/2S02300S2g0W --jk On 14 Feb 2014, at 11:41, Daevid Vincent wrote:
Now we're getting somewhere maybe? ;-) On my text examples it seems to look good but I think it's not much different than using a \s <? if ($foo) ?> <?= $foo ?> <?=$foo;?> <? if($foo) ?> <?php $foo='bar'; ?> <?= $foo ?> <?=$foo?> <?echo 'i told you so';?> <?phpecho 'this one fails';?> If I substitute '<?php' then I end up with this: <?php if ($foo) ?> <?= $foo ?> <?=$foo;?> <?php if($foo) ?> <?php $foo='bar'; ?> <?= $foo ?> <?=$foo?> <?phpecho 'i told you so';?> <-- this one breaks now though <?phpecho 'this one fails';?> <-- don't care as it was broken to begin with Is there a way to tweak the substitution with that same lookahead idea so if it was <? Followed by a character NOT a = then it adds a space?
-----Original Message----- From: Joshua Kehn [mailto:josh.kehn@gmail.com] Sent: Friday, February 14, 2014 11:31 AM To: Daevid Vincent Cc: php-general@lists.php.net Subject: Re: [PHP] Anyone have a tool/script to convert <? to <?php (but
not
<?=) Use a lookahead: <\?(?!(=|php)) http://l.kehn.io/image/1H2J0p0T472k --jk On 14 Feb 2014, at 11:21, Daevid Vincent wrote:
Try it... <?php $foo='bar'; ?> <?= $foo ?> <?=$foo?> <?echo 'i told you so';?> <?phpecho 'this one fails';?> The ONLY one that gives a parser error is the LAST one where yes, a space is required after a <?php That is NOT the case for <? or <?=
-----Original Message----- From: Aziz Saleh [mailto:azizsaleh@gmail.com] Sent: Friday, February 14, 2014 10:54 AM To: Daevid Vincent Cc: php-general@lists.php.net Subject: Re: [PHP] Anyone have a tool/script to convert <? to <?php (but not <?=) What I posted (and all the others) would work, replacing all instances of "<? " (notice the space) with "<?php " should work, it will leave all existing <?= and <?php alone (since having a space after ? and before =/php would produce a parser error. Not sure why you are saying that spaces are irrelevant thou. On Fri, Feb 14, 2014 at 1:34 PM, Daevid Vincent <daevid@daevid.com> wrote:
*sigh* <?=$foo?> is perfectly valid so is <?=$foo;?> or any combination WITH SPACES OR NOT. If this were trivial, I wouldn't have asked the list. I've been coding PHP since 1996. ;-) So if you have <? you have to make sure it doesn't have a '=' after the '?' to convert to '<?php' Spaces are irrelevant and can NOT be relied upon as a unique feature.
-----Original Message----- From: Daevid Vincent [mailto:daevid@daevid.com] Sent: Wednesday, February 12, 2014 2:57 PM To: php-general@lists.php.net Subject: RE: [PHP] Anyone have a tool/script to convert <? to <?php (but
not
<?=) Thanks guys for the replies so far, however, if it were a simple search
and
replace I wouldn't have to ask ;-) The trick is that "<?=" is valid and legal and I want to keep those. I
only
want to change if they are specifically "<?" Maybe there is some regex guru out there that knows the magic
incantation.
Related, for extra credit it drives me bonkers to see this: Hello <?= $username; ?> Note the end semicolon on the variable. I'd want to strip all those off
too,
but that is also not a trivial task if you think about it as it can only
be
removed if proceeded with <?= -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php


« previous php.general (#322877) next »