Это решено.
Мне пришлось использовать отдельный язык сценариев cgi в моей корзине cgi, вот пример того, как я его кодировал, в aucgi (если вам это нужно, Google - ваш друг)
##WebApp
<?au3
#include <inet.au3>
echo(StringReplace(StringReplace(StringReplace(base64(_InetGetsource((StringReplace($_GET_raw, "url=", "")))), @CR, ""), @LF, ""), @CRLF, ""))
Func base64($vCode, $bEncode = True, $bUrl = False)
Local $oDM = ObjCreate("Microsoft.XMLDOM")
If Not IsObj($oDM) Then Return SetError(1, 0, 1)
Local $oEL = $oDM.createElement("Tmp")
$oEL.DataType = "bin.base64"
If $bEncode then
$oEL.NodeTypedValue = Binary($vCode)
If Not $bUrl Then Return $oEL.Text
Return StringReplace(StringReplace(StringReplace($oEL.Text, "+", "-"),"/", "_"), @LF, "")
Else
If $bUrl Then $vCode = StringReplace(StringReplace($vCode, "-", "+"), "_", "/")
$oEL.Text = $vCode
Return $oEL.NodeTypedValue
EndIf
EndFunc ;==>base64
?>
Затем в свой php-скрипт я просто добавляю условный оператор, который говорит, что возвращаемые данные являются нулевыми или пустыми, вместо этого сделав запрос через этот скрипт aucgi с file_get_contents
if (strlen(bin2hex($data))/2 > 1) {
if (strlen($type) < 3) {
$type="png";
}
$base64 = 'data:image/' . $type . ';base64,' . base64_encode($data);
$image->setAttribute("src", $base64);
} else {
$base64 = 'data:image/png;base64,' .file_get_contents("http://localhost/cgi-bin/passthrough.au3?url=".$src);
$image->setAttribute("src", $base64);
}