|
Posted by Julien CROUZET on 10/22/44 11:40
Le 21/02/2006, dbee a supposé :
> Julien CROUZET wrote:
>> dbee a pensé très fort :
>>> Julien CROUZET wrote:
>>>> Il se trouve que dbee a formulé :
>>>>> Has anyone any idea why this doesn't work ?
>>>>>
>>>>> while read file ; do php -r 'urlencode($file);' ; done > file
>>>>>
>>>>> I've also tried
>>>>>
>>>>> cat file | php -r 'urlencode($0);' > file
>>>>>
>>>>> no luck there either ??
>>>>
>>>> 1°) This should give you a trick :
>>>>
>>>> $> while read file ; do echo '$file'; done
>>>> test
>>>> $file
>>>>
>>>> $> while read file ; do echo "$file"; done
>>>> test
>>>> test
>>>>
>>>> $variables are not interpreted in a single quote context, it does
>>>> in a DOUBLE quotes one (like in PHP).
>>>>
>>>>
>>>> 2°) urlencode($file) returns a string, it does not output anything,
>>>> echo does.
>>>> => echo urlencode($file);
>>>>
>>> Thanks julien,
>>>
>>> 1) php cli only accepts single quotes I'm afraid
>>>
>>
>> $>sh
>> $>echo "encode this : %}&" | while read file ; do php -r "echo
>> urlencode('$file');" ; done
>> encode+this+%3A+%25%7D%26
>>
> Merci beaucoup,
>
> Excellent thanks julien
YW.
In addition, if what you searched was how to SPECIFICALLY grep a shell
variable from PHP when run as CLI ; you NEED to export(builtin) it,
else your shell won't pass it in the **environ while executing php
binary.
Here is a (dummy) example :
$>echo "encode this : %}&" | while read file ; do php -r
'var_dump($_SERVER['file']);' ; done
NULL
$>echo "encode this : %}&" | while read file ; do export file && php -r
'var_dump($_SERVER['file']);' ; done
string(17) "encode this : %}&"
Greetings,
--
Julien CROUZET - DSI Theoconcept
julien.crouzet@/enlever ca\theoconcept.com
http://www.theoconcept.com
Navigation:
[Reply to this message]
|