1

投稿やページでPHPを実行するためにワードプレスでPHPショートコードexecを使用しています

URLから変数を取得し、それらをページのhref URLリンクに挿入したいのですが、URLに変数が存在しない場合は、代わりにデフォルト値を挿入します。

たとえば、URLにhttp://mysite.com/?var1=123&var2=456&var3=789のような変数がある場合

ページのURLはhref="http://othersite.com/?var1=123&var2=456&var3=789

URLが次の場合:http://mysite.com/ サイト上のリンクはhref = "http://othersite.com/?var1=abc&var2=def&var3=ghi

私はPHPを初めて使用するので、申し訳ありませんが、修正するための壊れたコードはありません。最初から始めています。

ありがとう!!

4

2 に答える 2

0
$protocol = strpos(strtolower($_SERVER['SERVER_PROTOCOL']),'https') 
                === FALSE ? 'http' : 'https';
$host     = $_SERVER['HTTP_HOST'];
$script   = $_SERVER['SCRIPT_NAME'];
$params   = $_SERVER['QUERY_STRING'];

$currentUrl = $protocol . '://' . $host . $script . '?' . $params;


if(isset($_GET["var"])) {
 echo $currentUrl; 
}
else { echo "yourwebsite with defualt vars" }

現在の URL を $currentUrl 変数に設定します。ステートメントが var が設定されているかどうかをチェックする場合、エコーします。

于 2012-09-19T01:38:54.530 に答える
0

$_GET には、送信されたパラメーターが含まれます。

したがって、次の(テストされていない)アイデアが得られます。

// Set your default values
$aValues = array(
    'var1' => 12,
    'var2' => 12,
    'var3' => 12
      );

// Now run through the default values to see if they were sent with $_GET
foreach ($aValues as $key=>$value) {
    // Isset does the check to see if they were sent
    if (isset($_GET[$key])) {
        $aValues[$key] = $_GET[$key];
    }
}

$url = 'http://mysite.com/?' . http_build_query($aValues); 
于 2012-09-19T01:30:16.017 に答える