2

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

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

<?php
   echo urldecode($argv);
?>

并在 bash 脚本中调用此脚本

#!/bin/bash
...#$MYURL is an encoded url
...
$MYURL="php myurldecodescript.php -- $MYURL"

不幸的是,这不起作用。如何最好地做到这一点?

4

5 回答 5

2

尝试:

MYURL=$(php myurldecodescript.php -- "$MYURL")
于 2012-04-17T15:42:04.287 回答
2

您可以使用 PHP 执行此操作,而无需创建myurldecodescript.php文件。如果您-r为 PHP 提供一个选项,它将运行您在命令行中指定的代码。所以你可以这样做:

MYURL=`php -r "echo urldecode('$MYURL');"`
于 2012-04-17T16:04:05.433 回答
1

尝试

$MYURL="php myurldecodescript.php $MYURL"

不确定是否--会起作用(我不是 bash 专家!!)....并且在 PHP 中

echo urldecode($argv[1]);

$argv是一个数组

于 2012-04-17T15:41:42.303 回答
1

干得好:

echo $MYURL | sed -e's/%\([0-9A-F][0-9A-F]\)/\\\\\x\1/g' | xargs echo -e
于 2012-04-17T15:44:28.577 回答
0

怎么样

MYURL=$(php -r 'echo urldecode($argv[1]);' "$MYURL")
于 2012-04-17T16:32:26.423 回答