Re: replacing file contents
| From: | Aidal | Date: | Mon, 11 Apr 2005 11:21:10 +0000 |
| Subject: | Re: replacing file contents | ||
| References: | 1 2 3 4 5 | Groups: | php.windows |
| Request: | Send a blank email to php-windows+get-25830@lists.php.net to get a copy of this message | ||
Oops, seems I can't do anything right today.
It was M. Sokolewicz who had the solution but thanks to all who tried to
help me in my noobiest hour.
/Aidal
"Aidal" <peter@prescriba.com> wrote in message
news:20050411111903.16568.qmail@lists.php.net...
> DOH! Thanks Kevin for pointing out what should be the obvious !!! /hides
>
> Ofcause, str_replace() I totally forgot about that one, maybe because I've
> just been using eregi_replace() a lot lately, I dunno.
> Anyway, everything works now as I should, thanks :o)
>
> /Aidal
>
>
> "M. Sokolewicz" <tularis@php.net> wrote in message
> news:20050411102737.41469.qmail@lists.php.net...
>> why are you using regexp-functions anyway? there's /absolutely/ no need
>> for them in your case. I can only see disadvantages:
>> 1 - they use more memory than str_replace
>> 2 - they're slower than str_replace
>> 3 - they're more complicated than str_replace
>>
>> Simply use str_replace, and it'll work just fine; use a regexp and you'll
>> need to escape characters and other weird things like that.
>>
>> - tul
>> Kevin Smith wrote:
>>> Hi,
>>>
>>> It's none of that.
>>>
>>> I suspect that the problem lies with the "?" question mar and the
>>> full-stop. If you look up what the question mark and full-stop means in
>>> an expression, you will find the answer to your problem. Basically you
>>> need to escape the question mark, so it is not evaluated as part of the
>>> expression, but as an absolute value.
>>>
>>> So, it should be as follows:
>>>
>>> $altered_file_contents =
>>>
>>> eregi_replace("index2\.php\?someVar\=SomeValue","somevar_somevalue.html",
>>> $file_contents);
>>>
>>> Also, this will only work if the whole of the string is on one line, if
>>> the HTML code is wrapped onto two lines, then you have a problem.
>>> Obviously, there are workarounds, but for now try the above.
>>>
>>> You may also want to look at preg_ as this is a more efficient mehtod of
>>> regexp's.
>>>
>>> Regards,
>>>
>>> Kevin Smith
>>>
>>>
>>> Luis Moreira wrote:
>>>
>>>> Hi
>>>>
>>>> I, for one, have never done this, but if you are working with html
>>>> files, I suppose you open it with your browser ?
>>>> Have you cleared the cache, or at least forced the browser to
>>>> re-open the file ?
>>>> If you edit the file after the change using a text editor, do you
>>>> see the changes, or not ? Luis
>>>>
>>>>
>>>> Aidal wrote:
>>>>
>>>>> Hi NG.
>>>>>
>>>>> I'm having trouble searching through a file and swapping specific
>>>>> phrases with other phrases.
>>>>>
>>>>> I'm opening a html-file and i wish to replace
>>>>> "index2.php?someVar=SomeValue" with somthing else but I can't
>>>>> get this
>>>>> to work properly.
>>>>>
>>>>> first i open the html file and read all it's contents into a var...
>>>>> let's call that one $file_contents for this example.
>>>>>
>>>>> I'm currently trying using:
>>>>>
>>>>> $altered_file_contents =
>>>>>
>>>>> eregi_replace("index2.php?someVar=SomeValue","somevar_somevalue.html",
>>>>> $file_contents);
>>>>>
>>>>> Then I delete the file i opened, create a new one with the same name
>>>>> and write the $altered_file_contents into it and close it.
>>>>>
>>>>> But when I open it and check the line numbers that should have been
>>>>> altered, they haven't been toutched at all, they still show the first
>>>>> link.
>>>>>
>>>>> What am I doing wrong?
>>>>> Why aren't eregi_replace() doing what I think it should?
>>>>>
>>>>> Please help...
>>>>>
>>>>> /Aidal
>>>>>
>>>>