-2

我有 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' 字符。 。有任何想法吗?

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

检查文本编辑器中的选项,看看是否可以将换行符作为 LF 而不是 CR(或两者都是 CR 后跟 LF)。发生的事情是您的换行符只是 CR,而 PHP 解释器正在寻找换行符的 LF,因此它将您的代码读取为一大行。

于 2012-06-29T09:15:53.520 回答