1

重複の可能性:
URLのハッシュ部分がサーバー側にないのはなぜですか?

私はURLを持っていますhttp://www.example.com/edit-your-profile/#file%5B0%5D%5Bstatus%5D=Complete&file%5B0%5D%5BremoteFileURL%5D=http%3A%2F%2Fi.imgur .com%2Fe0XJI.jpg&file%5B0%5D%5BfileSource%5D = Previous%20Uploads&file%5B0%5D%5BpicID%5D = p43

ページに「remoteFileURL」パラメータを入力フィールドの値としてエコーまたは表示する必要があります。PHPでは実行できないようです(私が知る限り)。私はjsをよく知りません、どんな助けもいただければ幸いです!

4

5 に答える 5

3

単純化 - 美しさではありません... 可能性を示し、正しい方向に向けるためです. 戻り値http://i.imgur.com/e0XJI.jpg

<?php
$url = 'http://www.example.com/edit-your-profile/#file%5B0%5D%5Bstatus%5D=Complete&file%5B0%5D%5BremoteFileURL%5D=http%3A%2F%2Fi.imgur.com%2Fe0XJI.jpg&file%5B0%5D%5BfileSource%5D=Previous%20Uploads&file%5B0%5D%5BpicID%5D=p43';
$urlDecoded = urldecode($url);
$urlParts = parse_url($urlDecoded);

$matches = array();
$regexRemoteUrl = preg_match('/remoteFileUrl\]=([^&]+)/i', $urlParts['fragment'], $matches);
// remoteFileURL
echo($matches[1]);
?>
于 2012-07-31T08:40:06.383 に答える
0

Javascriptでそれが必要な場合は、これを取得するための単純な正規表現を次に示します。

decodeURI(window.location.hash).match(/remoteFileURL]=([^&]+)/)[1]

"http%3A%2F%2Fi.imgur.com%2Fe0XJI.jpg"それは私のために戻ってきます

だから私たちは使用しますunescape:

unescape(decodeURI(window.location.hash).match(/remoteFileURL]=([^&]+)/)[1])

取得するため"http://i.imgur.com/e0XJI.jpg"

于 2012-07-31T08:37:41.803 に答える
0
var decodedUri = decodeURIComponent('http%3A%2F%2Fdtzhqpwfdzscm.cloudfront.net%2F4ca06373624db.jpg');

この関数を使用して、必要なパラメーターを URL から抽出できます。

function getURLParameter(name,url) {
    return decodeURI(
        (RegExp(name + '=' + '(.+?)(&|$)').exec(decodedUri)||[,null])[1]
    );
}

次のように関数を呼び出します

 var fileUrl = getURLParameter("remoteFileURL",decodedUri);

:)

于 2012-07-31T08:41:53.357 に答える
0

正規表現を使用して、「remoteFileUrl」とそれに続くいくつかの文字に一致するものを検索し、各アンパサンドで文字列を分割し、そのテキスト文字列を入力フィールドにエコーするだけです。

于 2012-07-31T08:31:45.750 に答える
0

JavaScript または php で使用できる正規表現を次に示します。

(?:file%5B0%5D%5BremoteFileURL%5D|remoteFileURL)=(.+?)&

あなたの例の URL はパラメーターの名前付けの非常に奇妙な形式を持っているため、その形式と通常の方法の両方を含めました。これは、そのパラメーターの値と一致しfile[0][remoteFile]remoteFileその値をキャプチャーします。

JavaScript では、 id の URL を含むフィールドがある場合、このようにすることができますURL

var url = document.getElementById('URL').value;
var myRegexp = /(?:file%5B0%5D%5BremoteFileURL%5D|remoteFileURL)=(.+?)\&/;
var match = myRegexp.exec(url);
alert(match[1]);
  • Rubularでテストします。
  • jsFiddleで試してみてください。
于 2012-07-31T08:45:32.313 に答える