HTML::ExtractContent(Perl)をPHPから使う

HTML::ExtractContent(perl)をPHPから使う

1.PECL-Perlをインストールする

参考http://d.hatena.ne.jp/tageo/20100323/1269328888

1-0.php-develをいれることでphpizeを有効にする

yum -y install php-devel

1-1.PECL-Perlのインストール

# wget http://pecl.php.net/get/perl-1.0.0.tgz
# tar -xvzf perl-1.0.0.tgz# cd perl-1.0.0
# phpize# ./configure --prefix=/usr
# make
# make install

1-2.php.iniファイルの任意の箇所に下記を追記

extension=perl.so

1-3.apacheを再起動

# /etc/init.d/httpd restart

2.Perlのテストスクリプトphpから呼び出すために関数(引数と戻り値)を使って書く

元 test.pl

#!/usr/bin/perluse strict;
use warnings;
use HTML::ExtractContent;
use LWP::UserAgent;
my $agent = LWP::UserAgent->new;
my $res = $agent->get('http://news.livedoor.com/article/detail/4999438/');
my $extractor = HTML::ExtractContent->new;
$extractor->extract($res->decoded_content);
print $extractor->as_text;


改 test_sub.pl(おしりにスペースをいれない)

#!/usr/bin/perluse strict;
use warnings;
use HTML::ExtractContent;
use LWP::UserAgent;

&return_txt('http://news.livedoor.com/topics/detail/4999906/');
sub return_txt{
my $test = $_[0];
my $agent = LWP::UserAgent->new;
my $res = $agent->get($test);
my $extractor = HTML::ExtractContent->new;
$extractor->extract($res->decoded_content);
return $extractor->as_text;
}                                                                                                                                                                                                                                                                                                                                                                                

3.perlを呼び出すphpを書く

<?php
//make instance
$perl = new Perl(); 
//read perl
$perl->require("/var/www/html/test_sub.pl");
$ret = $perl->return_txt('http://news.livedoor.com/topics/detail/4999906/');
?>