1

HTMLリンク内のPHP関数を使用してWebサイトのルートを呼び出そうとしています。

以下に関数bloginfo()を作成しました。正しいリンク出力は、http://www.example.com/subdirectory/file.phpです。

関数を呼び出す2つの方法は似ていますが、方法1は機能せず方法2は機能します。

誰かが方法1が機能しない理由を説明し、解決策を提案してください。ありがとう。

<?php
function bloginfo($show) {
switch ($show) {
    case 'template_url':
        echo "www.example.co.uk";
        break;
}
}

// Method 1 - does not work
echo "<a href=\"http://<?php bloginfo('template_url'); ?>/subdirectory/file.php\">test link 1</a>";

?>
<html>
<body>

<!-- Method 2 - works! -->
<a href="http://<?php bloginfo('template_url'); ?>/subdirectory/file.php">test link 2</a>

</body>
</html>  

アップデート

echo "<a href=\"http://".bloginfo('template_url')."/subdirectory/file.php\">

皆様のご協力に感謝いたします。残念ながら、何らかの理由で「www.example.com」が印刷されますが、リンクとしてではなく、リンクの方向が単に「/subdirectory/file.php」になったため、一般的な回答(コード行の上)を機能させることができませんでした。

この問題を解決するために、私は関数の組み込みをあきらめ、両方のメソッドで機能する以下のPHPDefineメソッドを使用することにしました。

<?php

//this line of code can be put into an external PHP file and called using the PHP Include method.
define("URL", "www.example.com", true);

// Method 1 - works!
echo "<a href=\"http://".URL."/subdirectory/file.php\">test link 1</a>";

?>
<html>
<body>

<!-- Method 2 - works! -->
<a href="http://<?php echo URL; ?>/subdirectory/file.php">test link 2</a>


</body>
</html>  
4

4 に答える 4

6

二重引用符で囲まれた文字列は、最初のメソッドのphpブロックを単なる古いテキスト文字列にします。これを試して:

  echo "<a href=\"http://".bloginfo('template_url')."/subdirectory/file.php\">test link 1</a>";
于 2012-10-31T23:13:14.603 に答える
1

いくつかのphpタグをネストしました

echo "<a href=\"http://" .bloginfo('template_url') . "/subdirectory/file.php\">test link 1</a>";
于 2012-10-31T23:14:03.317 に答える
0

またはこれ:

echo "<a href=\"http://{bloginfo('template_url')}/subdirectory/file.php\">test link 1</a>";
于 2012-10-31T23:20:15.820 に答える
0

これは、タグ内で使用していて、エコーするように指示していないためです。以下のコードは機能します-私はあなたの古い行をコメントアウトし、機能する新しい行を追加しました

<?php
function bloginfo($show) {
  switch ($show) {
    case 'template_url':
    echo "www.example.co.uk";
    break;
  }
}

// Method 1 - does not work
//echo "<a href=\"http://<?php bloginfo('template_url'); ?>/subdirectory/file.php\">test link 1</a>";

echo "<a href=\"http://".bloginfo('template_url')."/subdirectory/file.php\">test link 1</a>"; <--- changed the above line to this... now both this and the lower line work


?>
<html>
<body>

<!-- Method 2 - works! -->
<a href="http://<?php bloginfo('template_url'); ?>/subdirectory/file.php">test link 2</a>

</body>
</html>  
于 2012-10-31T23:42:24.247 に答える