重複の可能性:
URLのハッシュ部分がサーバー側にないのはなぜですか?
ページに「remoteFileURL」パラメータを入力フィールドの値としてエコーまたは表示する必要があります。PHPでは実行できないようです(私が知る限り)。私はjsをよく知りません、どんな助けもいただければ幸いです!
重複の可能性:
URLのハッシュ部分がサーバー側にないのはなぜですか?
ページに「remoteFileURL」パラメータを入力フィールドの値としてエコーまたは表示する必要があります。PHPでは実行できないようです(私が知る限り)。私はjsをよく知りません、どんな助けもいただければ幸いです!
単純化 - 美しさではありません... 可能性を示し、正しい方向に向けるためです. 戻り値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]);
?>
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"
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);
:)
正規表現を使用して、「remoteFileUrl」とそれに続くいくつかの文字に一致するものを検索し、各アンパサンドで文字列を分割し、そのテキスト文字列を入力フィールドにエコーするだけです。
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]);