带有PHP代码的Bash脚本
我有一个bash脚本,它有一个URL编码的字符串作为变量,我想对其进行解码。我知道这可以用bash来完成,但我想我也可以调用PHP函数urldecode()来完成 我更愿意在bash代码中运行php函数,但我选择编写一个非常简单的脚本带有PHP代码的Bash脚本,php,bash,urldecode,Php,Bash,Urldecode,我有一个bash脚本,它有一个URL编码的字符串作为变量,我想对其进行解码。我知道这可以用bash来完成,但我想我也可以调用PHP函数urldecode()来完成 我更愿意在bash代码中运行php函数,但我选择编写一个非常简单的脚本 <?php echo urldecode($argv); ?> 不幸的是,这不起作用。 如何最好地做到这一点?试试看 $MYURL="php myurldecodescript.php $MYURL" 不确定--是否能工作(我不是bash专家
<?php
echo urldecode($argv);
?>
不幸的是,这不起作用。
如何最好地做到这一点?试试看
$MYURL="php myurldecodescript.php $MYURL"
不确定--
是否能工作(我不是bash专家!!)。。。。用PHP做什么
echo urldecode($argv[1]);
试试:
MYURL=$(php myurldecodescript.php -- "$MYURL")
给你:
echo $MYURL | sed -e's/%\([0-9A-F][0-9A-F]\)/\\\\\x\1/g' | xargs echo -e
您可以使用PHP实现这一点,而无需创建
myurldecodescript.PHP
文件。如果为PHP提供-r
选项,它将运行您在命令行中指定的代码。所以你可以这样做:
MYURL=`php -r "echo urldecode('$MYURL');"`
怎么样
MYURL=$(php -r 'echo urldecode($argv[1]);' "$MYURL")
哇!这看起来有点不同-也许我应该远离这些
bash
标记的问题!!!
MYURL=$(php -r 'echo urldecode($argv[1]);' "$MYURL")