作者eric80116 (dick)
看板PHP
标题[请益] PHP 执行exec()的问题
时间Mon Aug 27 17:08:29 2012
我想要用php来执行exec() 执行perl
先把资料库里存的网址抓下来
再去该网页抓取内容 存进资料库
我用cmd执行可以成功存进资料库
但我用php去呼叫exec()函数 就无法将内容存进资料库
但也没有显示错误讯息
想请问哪里出错了???
以下是我的程式码
----------getnews.php----------------
$x=exec('cd desktop');//档案在desktop
$z=exec('perl test1.pl');
print($x);
print($z);
---------test1.pl---------------------
use DBI;
my $dbh=DBI->connect("dbi:mysql:dbname=xxx","xxx",'xxx');#开启资料库
$sth = $dbh->do( "SET character_set_client ='utf8'");
$sth = $dbh->do( "SET character_set_connection='utf8'");
$sth = $dbh->do( "SET character_set_results='utf8'");
$sql1="select id from newsurl ORDER BY id DESC" ;
$k=$dbh->prepare($sql1);
$k->execute();
$a= $k->fetchrow_array();
$k->finish();
for($x=0;$x<=5;$x++){
$sql2="select url from newsurl where id='$a'" ;
$a-=1;
$k1=$dbh->prepare($sql2);
$k1->execute();
@result[$x] = $k1->fetchrow_array();
}
$k1->finish();
use WWW::Mechanize; # 使用这模组
use encoding 'utf-8';
my $agent1 = WWW::Mechanize->new();
for($y=0;$y<=5;$y++){
$agent1 -> get(@result[$y]);
my $content1 = $agent1 ->{content};
@title= $content1=~/<h1 class=\"headline\">(.*?)<\/h1>/g;
@time= $content1=~/\&ndash\;\ \;<abbr title=\"(.*?)T/;
@article= $content1=~/<p class=\"first\">(.*)<\/p>/g;
$sql3="insert into test1 (title, content, time) values
('@title','@article','@time')";#sql指令
$dbh->do( $sql3 );
}
$dbh->disconnect;#关闭资料库
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.123.175.221
1F:→ j129008:权限没开,去把apache这个user加进sudoers里 08/27 19:25
2F:→ eric80116:感谢J大解答 已解决 ^^ 08/29 10:36