-2

リクエストを処理するためにphpコードに到達するPOSTリクエストを送信するHTMLがあります...1行目に構文エラーがあるという奇妙なエラーが表示されます

解析エラー: 構文エラー、1 行目の /home/content/31/9275231/html/subscribe.php の予期しない T_FUNCTION

ただし、1行目にエラーはありません。

これがコードです(APIキー情報を非表示にしました)

<?php
function isValidEmail( $email = null )

{
    return preg_match( "/^
    [\d\w\/+!=#|$?%{^&}*`'~-]
    [\d\w\/\.+!=#|$?%{^&}*`'~-]*@
    [A-Z0-9]
    [A-Z0-9.-]{1,61}
    [A-Z0-9]\.
    [A-Z]{2,6}$/ix", $email );
}

/* Check if email has been posted */
if ( !isset($_POST['email']) ) die();

/* Validate email */
if ( isValidEmail($_POST['email']) ) {

require_once('./MCAPI.class.php');  

// **************************************************************** //

    // Enter your API Key from http://admin.mailchimp.com/account/api/
    $api = new MCAPI('apikey');

    // Enter your list's unique id from http://admin.mailchimp.com/lists/
    // (click the "settings", the unique id is at the bottom of the page) 
    $list_id = 'list_unique_id';

// **************************************************************** //

if($api->listSubscribe($list_id, $_POST['email'], '') === true) {
    echo 'successful';
}else{
    echo 'Error: ' . $api->errorMessage;
    }

} 

else {
    echo 'invalid_email';
}

もう 1 つの奇妙な点: この php コードを textmate で開くと問題ないように見えますが、vim で開くと、すべてのコードが 1 行に表示され、新しい行があるはずの場所に奇妙な '^M' 文字が表示されます.. 。何か案は?

4

2 に答える 2

0

奇妙な ^M 文字は、Windows/DOS の行末です。これを使用して、Unix の行末に置き換えます。

:%s/^V^M/\r/g

詳細はこちら: http://grx.no/kb/2008/11/17/remove-windows-line-endings-in-vim/

于 2012-06-29T09:04:21.807 に答える
0

テキスト エディターのオプションをチェックして、改行を CR ではなく LF (または両方の CR の後に LF) として作成できるかどうかを確認します。PHPインタープリターは改行のLFを探しているのに対し、改行はCRのみであるため、コードを1つの大きな行として読み取ります。

于 2012-06-29T09:15:53.520 に答える