我有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”字符,其中新行应该是......任何想法?
答案 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,所以它将你的代码读作一个大行。