2

デコードしたい urlencoded 文字列を変数として持つ bash スクリプトがあります。これは 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

ファイルを作成しなくても、PHP を使用してこれを行うことができmyurldecodescript.phpます。PHPに-rオプションを指定すると、コマンド ラインで指定したコードが実行されます。だからあなたはこれを行うことができます:

MYURL=`php -r "echo urldecode('$MYURL');"`
于 2012-04-17T16:04:05.433 に答える
2

試す:

MYURL=$(php myurldecodescript.php -- "$MYURL")
于 2012-04-17T15:42:04.287 に答える
1

どうぞ:

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

試す

$MYURL="php myurldecodescript.php $MYURL"

うまくいくかどうか--わかりません(私はbashの専門家ではありません!!)....そしてPHPでは

echo urldecode($argv[1]);

$argv配列です

于 2012-04-17T15:41:42.303 に答える
0

どうですか

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