我有一个bash脚本,它有一个urlencoded字符串作为变量,我想要解码。我知道这可以用bash完成,但我想我也可以调用一个PHP函数urldecode()并完成它。
我宁愿在bash代码中运行php函数,但我选择编写一个非常简单的脚本
<?php
echo urldecode($argv);
?>
并在bash脚本中调用此脚本
#!/bin/bash
...#$MYURL is an encoded url
...
$MYURL="php myurldecodescript.php -- $MYURL"
不幸的是,这不起作用。 这样做最好怎么办?
答案 0 :(得分:2)
尝试:
MYURL=$(php myurldecodescript.php -- "$MYURL")
答案 1 :(得分:2)
您可以使用PHP执行此操作,而无需创建myurldecodescript.php
文件。如果为PHP提供-r
选项,它将运行您在命令行中指定的代码。所以你可以这样做:
MYURL=`php -r "echo urldecode('$MYURL');"`
答案 2 :(得分:1)
试
$MYURL="php myurldecodescript.php $MYURL"
不确定--
是否可行(我不是bash专家!!)....并且在PHP中
echo urldecode($argv[1]);
答案 3 :(得分:1)
你走了:
echo $MYURL | sed -e's/%\([0-9A-F][0-9A-F]\)/\\\\\x\1/g' | xargs echo -e
答案 4 :(得分:0)
怎么样
MYURL=$(php -r 'echo urldecode($argv[1]);' "$MYURL")