0

基本的に、現在のページの URL を含む QR コードを表示する単純な Wordpress ウィジェットを作成しようとしています。PHPも解析する単純なテキストウィジェットの修正版を使用しています。

function the_qrcode($permalink = '', $title = '') {
    if($permalink && $title == '') {
        $permalink = 'http://eternityofgamers.com/forums';
        $title = 'Forums';
    }

    echo '<img src="http://api.qrserver.com/v1/create-qr-code/?data=' .$permalink. '" alt="QR: ' .$title. '"/>;
}

誰かがこれの何が問題なのか教えてもらえますか? に追加すると 500 エラーが発生しfunctions.phpます。

4

2 に答える 2

1

機能を使用する必要がありurlencode()ます。一般に、経験則として、すべてのクエリ文字列値は URL エンコードする必要があります。

function the_qrcode( $permalink = '' ) {
    if($permalink == '') {
        $permalink = 'http://eternityofgamers.com/forums';
    }

    echo '<img src="http://api.qrserver.com/v1/create-qr-code/?data='.urlencode($permalink);
}

QR コードを作成できるようになりました。

the_qrcode(the_permalink());

また、非常に悪い等号がありませんでした。と の違いを理解することは非常に重要=です==。そうしないと、文脈に関係なく、=2==つの異なる意味になります。=右辺を左辺に割り当てます。==左辺と右辺が大まかに等しいかどうかにかかわらず、true または false を返します (大まかに言えば、辺が同じ型でない場合にキャストが使用されるためです)。

この例を見てください ( Codepad demo ):

$a = 5;
$b = 10;

if($a = 6) {
    echo "This always appears because when you assign a truthy (all non-zero numbers are true) to a variable, true is returned.\n";
    echo "Also a should now equal six instead of five: " . $a . "\n";
}

if($b == 10) {
    echo "This will work as expected because == is a comparison not an assignment.\n";
    echo "And b should still be 10: " . $b;
}
于 2012-07-16T23:11:09.053 に答える
0

試してみてください:

<?php
    function the_permalink( $permalink ) {
        if ($permalink == '') {
            echo '<img src="http://api.qrserver.com/v1/create-qr-code/?data=http://eternityofgamers.com/forums" alt="QR Code">';
        } else {
            echo '<img src="http://api.qrserver.com/v1/create-qr-code/?data='.$permalink;
        }
    }
?>

(構文エラーの束を修正しました)

于 2012-07-16T23:40:47.760 に答える