带有PHP代码的Bash脚本

带有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专家

我有一个bash脚本,它有一个URL编码的字符串作为变量,我想对其进行解码。我知道这可以用bash来完成,但我想我也可以调用PHP函数urldecode()来完成

我更愿意在bash代码中运行php函数,但我选择编写一个非常简单的脚本

<?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")