-1

まったく同じコードは、php 5.3.13 (サーバー) では lint チェック 'php -l' に合格しますが、php 5.3.12 (ローカル) では合格しません。これは私のローカル構成の結果であり、変更できるものですか、または変更する必要がありますか? たとえば、 printf() を使用して下のelseを書き直すことができますが、ちょっと興味があります。

PHP 解析エラー: 構文エラー、予期しない T_EXIT、T_FUNCTION が必要です

function wp_custom_redirect($url) {

    if( ! headers_sent() ) 
    {
        wp_redirect($url);
    } 
    else 
    {
    ?>

    <script>
    self.location.href = '<?php echo $url; ?>';
    </script>

    <?php
    }

    exit();
}

更新済み: exit(); のある行。(T_EXIT) はエラーのある行です。

else を次のように書き直して (以下を参照)、ローカル マシンで lint を渡すことができます。私が判断しようとしているのは、有効なphpであるのに失敗する理由であり、php.ini構成であると思われます。まだどこにあるのかわかりません。

else
{
    printf( '<script>self.location.href = "%s";</script>', $url );
}

これは以前の例で解決しましたが、私のローカルサーバー構成では、short_tags の<?代わりに使用されていました。<?php

4

2 に答える 2

0

ローカルの php.ini で short_tags = Off に設定されていたため、構成が実際に問題でした。投稿した関数よりもはるかに前の関数でそれをキャッチしませんでしたが、行番号は役に立ちませんでした.lintがT_EXITの代わりにshort_tagを示さなかった理由は完全にはわかりません.

于 2012-05-29T14:23:42.417 に答える
0

ねえ、エラーはどの行で発生しますか?

このように呼びますか?

wp_custom_redirect('http://google.com');
于 2012-05-29T09:17:27.267 に答える