Re: Re: preg_replace question
| From: | Ashley Sheridan | Date: | Wed, 12 Dec 2012 18:02:25 +0000 |
| Subject: | Re: Re: preg_replace question | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-319857@lists.php.net to get a copy of this message | ||
Maciek Sokolewicz <maciek.sokolewicz@gmail.com> wrote:
>On 12-12-2012 17:11, Curtis Maurand wrote:
>> I have several poisoned .js files on a server. I can use find to
>> recursively find them and then use preg_replace to replace the
>string.
>> However the string is filled with single quotes, semi-colons and a
>lot
>> of other special characters. Will
>> preg_relace(escapeshellarg($String),$replacement) work or do I need
>to
>> go through the entire string and escape what needs to be escaped?
>>
>> --C
>
>First of all, why do you want to use preg_replace when you're not
>actually using regular expressions??? Use str_replace or stri_replace
>instead.
>
>Aside from that, escapeshellarg() escapes strings for use in shell
>execution. Perl Regexps are not shell commands. It's like using
>mysqli_real_escape_string() to escape arguments for URLs. That doesn't
>compute, just like your way doesn't either.
>
>If you DO wish to escape arguments for a regular expression, use
>preg_quote instead, that's what it's there for. But first, reconsider
>using preg_replace, since I honestly don't think you need it at all if
>the way you've posted
>(preg_replace(escapeshellarg($string),$replacement)) is the way you
>want
>to use it.
>
>- Tul
Sometimes if all you know is preg_replace(), everything looks like a nail...
--
Sent from my Android phone with K-9 Mail. Please excuse my brevity.