Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我会收到这个';php解析错误';在我的网站上运行此php脚本时?_Php_Syntax Error - Fatal编程技术网

为什么我会收到这个';php解析错误';在我的网站上运行此php脚本时?

为什么我会收到这个';php解析错误';在我的网站上运行此php脚本时?,php,syntax-error,Php,Syntax Error,我正在使用一个单独论坛上提供的示例脚本,该脚本允许我在我的一个网页中嵌入门票提交表单 我下载了示例脚本并替换了相关数据。问题是,当我运行脚本时,我收到一个错误。错误保存在脚本所在目录中的文件中 我收到的错误是: [13-Jan-2015 17:07:37 Europe/London] PHP Parse error: syntax error, unexpected ';', expecting ')' in /home/sinergqx/public_html/pages/new_ticke

我正在使用一个单独论坛上提供的示例脚本,该脚本允许我在我的一个网页中嵌入门票提交表单

我下载了示例脚本并替换了相关数据。问题是,当我运行脚本时,我收到一个错误。错误保存在脚本所在目录中的文件中

我收到的错误是:

[13-Jan-2015 17:07:37 Europe/London] PHP Parse error:  syntax error, unexpected ';', expecting ')' in /home/sinergqx/public_html/pages/new_ticket.php on line 46
当我收到错误时,我认为这只是提供的脚本中的一个输入错误,所以我完全按照错误消息所描述的做了,并替换了
带有
。这仍然没有什么区别

我不太确定问题出在哪里。我的php知识非常有限,所以我很难自己解决很多问题

我在互联网上搜索了这个错误,但没有找到解释在这种情况下该怎么做的线索

如果它有助于查看我之前查看的线程,那么您可以通过单击查看它

最后,我提供了我正在使用的代码。这正是我上传到我的网站上的脚本。下面是:

#!/usr/bin/php -q
<?php
#
# Configuration: Enter the url and key. That is it.
#  url => URL to api/task/cron e.g #  http://yourdomain.com/support/api/tickets.json
#  key => API's Key (see admin panel on how to generate a key)
#  $data add custom required fields to the array.
#
#  Originally authored by jared@osTicket.com
#  Modified by ntozier@osTicket / tmib.net

// If 1, display things to debug.
$debug="0";

// You must configure the url and key in the array below.

$config = array(
        'url'=>'http://support.sinergycraft.net/api/cron.php',  // URL to site.tld/api/tickets.json
        'key'=>'I WOULD PUT MY API HERE'  // API Key goes here
);
# NOTE: some people have reported having to use "http://your.domain.tld/api/http.php/tickets.json" instead.

if($config['url'] === 'http://your.domain.tld/api/tickets.json') {
  echo "<p style=\"color:red;\"><b>Error: No URL</b><br>You have not configured this script with your URL!</p>";
  echo "Please edit this file ".__FILE__." and add your URL at line 18.</p>";
  die();  
}       
if(IsNullOrEmptyString($config['key']) || ($config['key'] === 'PUTyourAPIkeyHERE'))  {
  echo "<p style=\"color:red;\"><b>Error: No API Key</b><br>You have not configured this script with an API Key!</p>";
  echo "<p>Please log into osticket as an admin and navigate to: Admin panel -> Manage -> Api Keys then add a new API Key.<br>";
  echo "Once you have your key edit this file ".__FILE__." and add the key at line 19.</p>";
  die();
}

# Fill in the data for the new ticket, this will likely come from $_POST.
# NOTE: your variable names in osT are case sensiTive. 
# So when adding custom lists or fields make sure you use the same case
# For examples on how to do that see Agency and Site below.
$data = array(
    'name'      =>      'John Doe',  // from name aka User/Client Name
    'email'     =>      'john@gmail.com',  // from email aka User/Client Email
    'phone'     =>      '1234567890',  // phone number aka User/Client Phone Number
    'subject'   =>      'Test API message',  // test subject, aka Issue Summary
    'message'   =>      'This is a test of the osTicket API',  // test ticket body, aka Issue Details.
    'ip'        =>      $_SERVER['REMOTE_ADDR'], // Should be IP address of the machine thats trying to open the ticket.
    'topicId'   =>      '1'; // the help Topic that you want to use for the ticket --L46
    //'Agency'  =>      '58', //this is an example of a custom list entry. This should be the number of the entry.
    //'Site'    =>      'Bermuda'; // this is an example of a custom text field.  You can push anything into here you want. 
    'attachments' => array()
);

# more fields are available and are documented at:
# https://github.com/osTicket/osTicket-1.8/blob/develop/setup/doc/api/tickets.md

if($debug=='1') {
  print_r($data);
  die();
}

# Add in attachments here if necessary
# Note: there is something with this wrong with the file attachment here it does not work.
$data['attachments'][] =
array('file.txt' =>
        'data:text/plain;base64;'
            .base64_encode(file_get_contents('/file.txt')));  // replace ./file.txt with /path/to/your/test/filename.txt


#pre-checks
function_exists('curl_version') or die('CURL support required');
function_exists('json_encode') or die('JSON support required');

#set timeout
set_time_limit(30);

#curl post
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $config['url']);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_USERAGENT, 'osTicket API Client v1.8');
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Expect:', 'X-API-Key: '.$config['key']));
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result=curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

if ($code != 201)
    die('Unable to create ticket: '.$result);

$ticket_id = (int) $result;

# Continue onward here if necessary. $ticket_id has the ID number of the
# newly-created ticket

function IsNullOrEmptyString($question){
    return (!isset($question) || trim($question)==='');
}
?>
#/usr/bin/php-q
更改此行:

'topicId'   =>      '1';
为此:

'topicId'   =>      '1',
                     //^ You have to use a comma to separate each array element
另外,有关阵列的更多信息,请参阅手册:

还有一句话:

可以使用array()语言构造创建数组。它接受任意数量的逗号分隔键=>值对作为参数

另外,作为一个很好的参考,错误的含义如下:

更改此行:

'topicId'   =>      '1';
为此:

'topicId'   =>      '1',
                     //^ You have to use a comma to separate each array element
另外,有关阵列的更多信息,请参阅手册:

还有一句话:

可以使用array()语言构造创建数组。它接受任意数量的逗号分隔键=>值对作为参数

作为一个很好的参考,错误的含义如下:

它位于数组定义的中间,所以应该是<代码>,<代码>,而不是<代码>;<代码>或


它位于数组定义的中间,所以应该是<代码>,<代码>,而不是<代码>;

只要阅读你的代码,我就发现有一个“;”第46行

看第46行,我是一个“;”哪里需要一个“,”。我怎么知道?因为它是一个数组,所以查看数组中变量的另一个端点行,您将看到,从一个值到另一个值,您需要一个“,”来分隔它们

下面是您更正的代码:

    #!/usr/bin/php -q
<?php
#
# Configuration: Enter the url and key. That is it.
#  url => URL to api/task/cron e.g #  http://yourdomain.com/support/api/tickets.json
#  key => API's Key (see admin panel on how to generate a key)
#  $data add custom required fields to the array.
#
#  Originally authored by jared@osTicket.com
#  Modified by ntozier@osTicket / tmib.net

// If 1, display things to debug.
$debug="0";

// You must configure the url and key in the array below.

$config = array(
        'url'=>'http://support.sinergycraft.net/api/cron.php',  // URL to site.tld/api/tickets.json
        'key'=>'I WOULD PUT MY API HERE'  // API Key goes here
);
# NOTE: some people have reported having to use "http://your.domain.tld/api/http.php/tickets.json" instead.

if($config['url'] === 'http://your.domain.tld/api/tickets.json') {
  echo "<p style=\"color:red;\"><b>Error: No URL</b><br>You have not configured this script with your URL!</p>";
  echo "Please edit this file ".__FILE__." and add your URL at line 18.</p>";
  die();  
}       
if(IsNullOrEmptyString($config['key']) || ($config['key'] === 'PUTyourAPIkeyHERE'))  {
  echo "<p style=\"color:red;\"><b>Error: No API Key</b><br>You have not configured this script with an API Key!</p>";
  echo "<p>Please log into osticket as an admin and navigate to: Admin panel -> Manage -> Api Keys then add a new API Key.<br>";
  echo "Once you have your key edit this file ".__FILE__." and add the key at line 19.</p>";
  die();
}

# Fill in the data for the new ticket, this will likely come from $_POST.
# NOTE: your variable names in osT are case sensiTive. 
# So when adding custom lists or fields make sure you use the same case
# For examples on how to do that see Agency and Site below.
$data = array(
    'name'      =>      'John Doe',  // from name aka User/Client Name
    'email'     =>      'john@gmail.com',  // from email aka User/Client Email
    'phone'     =>      '1234567890',  // phone number aka User/Client Phone Number
    'subject'   =>      'Test API message',  // test subject, aka Issue Summary
    'message'   =>      'This is a test of the osTicket API',  // test ticket body, aka Issue Details.
    'ip'        =>      $_SERVER['REMOTE_ADDR'], // Should be IP address of the machine thats trying to open the ticket.
    'topicId'   =>      '1', // the help Topic that you want to use for the ticket 
    //'Agency'  =>      '58', //this is an example of a custom list entry. This should be the number of the entry.
    //'Site'    =>      'Bermuda'; // this is an example of a custom text field.  You can push anything into here you want. 
    'attachments' => array()
);

# more fields are available and are documented at:
# https://github.com/osTicket/osTicket-1.8/blob/develop/setup/doc/api/tickets.md

if($debug=='1') {
  print_r($data);
  die();
}

# Add in attachments here if necessary
# Note: there is something with this wrong with the file attachment here it does not work.
$data['attachments'][] =
array('file.txt' =>
        'data:text/plain;base64;'
            .base64_encode(file_get_contents('/file.txt')));  // replace ./file.txt with /path/to/your/test/filename.txt


#pre-checks
function_exists('curl_version') or die('CURL support required');
function_exists('json_encode') or die('JSON support required');

#set timeout
set_time_limit(30);

#curl post
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $config['url']);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_USERAGENT, 'osTicket API Client v1.8');
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Expect:', 'X-API-Key: '.$config['key']));
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result=curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

if ($code != 201)
    die('Unable to create ticket: '.$result);

$ticket_id = (int) $result;

# Continue onward here if necessary. $ticket_id has the ID number of the
# newly-created ticket

function IsNullOrEmptyString($question){
    return (!isset($question) || trim($question)==='');
}
?>
#/usr/bin/php-q

只是读了你的代码,我发现有一个“;”第46行

看第46行,我是一个“;”哪里需要一个“,”。我怎么知道?因为它是一个数组,所以查看数组中变量的另一个端点行,您将看到,从一个值到另一个值,您需要一个“,”来分隔它们

下面是您更正的代码:

    #!/usr/bin/php -q
<?php
#
# Configuration: Enter the url and key. That is it.
#  url => URL to api/task/cron e.g #  http://yourdomain.com/support/api/tickets.json
#  key => API's Key (see admin panel on how to generate a key)
#  $data add custom required fields to the array.
#
#  Originally authored by jared@osTicket.com
#  Modified by ntozier@osTicket / tmib.net

// If 1, display things to debug.
$debug="0";

// You must configure the url and key in the array below.

$config = array(
        'url'=>'http://support.sinergycraft.net/api/cron.php',  // URL to site.tld/api/tickets.json
        'key'=>'I WOULD PUT MY API HERE'  // API Key goes here
);
# NOTE: some people have reported having to use "http://your.domain.tld/api/http.php/tickets.json" instead.

if($config['url'] === 'http://your.domain.tld/api/tickets.json') {
  echo "<p style=\"color:red;\"><b>Error: No URL</b><br>You have not configured this script with your URL!</p>";
  echo "Please edit this file ".__FILE__." and add your URL at line 18.</p>";
  die();  
}       
if(IsNullOrEmptyString($config['key']) || ($config['key'] === 'PUTyourAPIkeyHERE'))  {
  echo "<p style=\"color:red;\"><b>Error: No API Key</b><br>You have not configured this script with an API Key!</p>";
  echo "<p>Please log into osticket as an admin and navigate to: Admin panel -> Manage -> Api Keys then add a new API Key.<br>";
  echo "Once you have your key edit this file ".__FILE__." and add the key at line 19.</p>";
  die();
}

# Fill in the data for the new ticket, this will likely come from $_POST.
# NOTE: your variable names in osT are case sensiTive. 
# So when adding custom lists or fields make sure you use the same case
# For examples on how to do that see Agency and Site below.
$data = array(
    'name'      =>      'John Doe',  // from name aka User/Client Name
    'email'     =>      'john@gmail.com',  // from email aka User/Client Email
    'phone'     =>      '1234567890',  // phone number aka User/Client Phone Number
    'subject'   =>      'Test API message',  // test subject, aka Issue Summary
    'message'   =>      'This is a test of the osTicket API',  // test ticket body, aka Issue Details.
    'ip'        =>      $_SERVER['REMOTE_ADDR'], // Should be IP address of the machine thats trying to open the ticket.
    'topicId'   =>      '1', // the help Topic that you want to use for the ticket 
    //'Agency'  =>      '58', //this is an example of a custom list entry. This should be the number of the entry.
    //'Site'    =>      'Bermuda'; // this is an example of a custom text field.  You can push anything into here you want. 
    'attachments' => array()
);

# more fields are available and are documented at:
# https://github.com/osTicket/osTicket-1.8/blob/develop/setup/doc/api/tickets.md

if($debug=='1') {
  print_r($data);
  die();
}

# Add in attachments here if necessary
# Note: there is something with this wrong with the file attachment here it does not work.
$data['attachments'][] =
array('file.txt' =>
        'data:text/plain;base64;'
            .base64_encode(file_get_contents('/file.txt')));  // replace ./file.txt with /path/to/your/test/filename.txt


#pre-checks
function_exists('curl_version') or die('CURL support required');
function_exists('json_encode') or die('JSON support required');

#set timeout
set_time_limit(30);

#curl post
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $config['url']);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_USERAGENT, 'osTicket API Client v1.8');
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Expect:', 'X-API-Key: '.$config['key']));
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result=curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

if ($code != 201)
    die('Unable to create ticket: '.$result);

$ticket_id = (int) $result;

# Continue onward here if necessary. $ticket_id has the ID number of the
# newly-created ticket

function IsNullOrEmptyString($question){
    return (!isset($question) || trim($question)==='');
}
?>
#/usr/bin/php-q

你能确定哪一行是第46行吗?基本了解PHP语法会有帮助,特别是对于数组:你能确定哪一行是第46行吗?基本了解PHP语法会有帮助,特别是对于数组:初始行的缩进太多,无法识别为正确的shebang。因此,当从命令行执行时,它不太可能工作。初始行的缩进太多,无法识别为正确的shebang。因此,当从命令行执行时,它不太可能工作。