PHP奇怪的语法错误行1设置Mailchimp

时间:2012-06-29 08:57:59

标签: php html mailchimp

我有html发送POST请求到达php代码来处理请求...我收到一个奇怪的错误,说第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';
}

另一个特别之处:我注意到当我在textmate中打开这个php代码时看起来很好,但是当我在vim中打开它时,所有代码都显示在一行中,其中包含奇怪的“^ M”字符,其中新行应该是......任何想法?

2 个答案:

答案 0 :(得分:0)

奇怪的^ M字符是Windows / DOS行结尾。使用它来替换它们用Unix行结尾:

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

此处有更多信息:http://grx.no/kb/2008/11/17/remove-windows-line-endings-in-vim/

答案 1 :(得分:0)

检查文本编辑器中的选项,看看是否可以将换行设置为LF而不是CR(或者CR后跟LF)。发生了什么事情是你的新行只是CR,而PHP解释器正在寻找新行的LF,所以它将你的代码读作一个大行。