首页 > 后端开发 > php教程 > PHP 和cli 有什么关系 ,运行一个PHP文件 报错,该如何解决

PHP 和cli 有什么关系 ,运行一个PHP文件 报错,该如何解决

WBOY
发布: 2016-06-13 09:58:59
原创
988 人浏览过

PHP 和cli 有什么关系 ,运行一个PHP文件 报错
这是报错信息 This example script is written to run under the command line ('cli') version of the PHP interpreter, but you're using the 'apache2handler' version


下面是我运行的php 文件 内容 
if (php_sapi_name() != "cli") { //应该是这句话 是不是要配置某个选项 支持 cli啊  
  print "This example script is written to run under the command line ('cli') version of\n";
  print "the PHP interpreter, but you're using the '".php_sapi_name()."' version\n";
  exit(1);
}

include "xapian.php";

if ($argc != 2) {
  print "Usage: {$argv[0]} PATH_TO_DATABASE\n";
  exit(1);
}

try {
  // Open the database for update, creating a new database if necessary.
  $database = new XapianWritableDatabase($argv[1], Xapian::DB_CREATE_OR_OPEN);

  $indexer = new XapianTermGenerator();
  $stemmer = new XapianStem("english");
  $indexer->set_stemmer($stemmer);

  $para = '';
  $lines = file("php://stdin");
  foreach ($lines as $line) {
$line = rtrim($line);
if ($line == "" && $para != "") {
// We've reached the end of a paragraph, so index it.
$doc = new XapianDocument();
$doc->set_data($para);

$indexer->set_document($doc);
$indexer->index_text($para);

// Add the document to the database.
$database->add_document($doc);

$para = "";
} else {
if ($para != "") {
$para .= " ";
}
$para .= $line;
}
  }

  // Set the database handle to Null to ensure that it gets closed
  // down cleanly or uncommitted changes may be lost.
  $database = Null;
} catch (Exception $e) {
  print $e->getMessage() . "\n";
  exit(1);
}
?>

------解决方案--------------------
command-line interface 命令行界面
用命令行工具运行它 linux命令行,或win的cmd都可以
------解决方案--------------------
類似於shell吧..就是命令行工具了,環境變量什麼的當然就不一樣了。如果你的腳本是web的那就不要在cli下調試,否則多數可能都會出錯。其他的不是很瞭解,cli基本沒有這麼在下面跑過東西
------解决方案--------------------
意思是说,你的这段代码是设计运行在CLI模式下的,但是你现在用的是apache web服务器, 所以这段代码不能运行.
CLI 是命令行模式,例如在winXP 的命令行窗口cmd 里边,php my_script.php 使用php.exe 直接运行php代码,相当于控制台应用。
不是web服务器上运行的。
真需要的话,改成 web服务器上运行的版本就可以。$argv[0] 是从命令行获取的参数,改成用变量设置或$_GET或$_POST 获得

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板