在php中wget怎么用,急,在线等。

在php中wget怎么用,急,在线等。,第1张

在php中,wget还是用到的比较多的,因为有时候会抓一下资源或者图片等等,这个时候file_get_contents就不大好用了,而且wget可以设置抓取的次数,时间等等,这些都是file_get_contents所不具备的,具体wget的参数我就不说了,网上多的是,估计你也不是想问这个。就只说一下php如果用wget,其实很简单,wget是shell命令,php如果想要调用直接用exec()函数就好了。

exec("wget -i xxxxx xxxxx")

虚拟机是window系统还是 linux系统。

window系统就很简单了,直接下载一个集成环境,就可以运行了

linux 系统就要稍微麻烦点

1. php下载以及安装

下载: wget http://am1.php.net/distributions/php-7.3.2.tar.gz

解压: tar -zxvf php-7.3.2.tar.gz

进入目录开始编译安装:

./configure --prefix=/opt/soft/php --enable-fpm

下面是直接把常用的扩展安装好,免得后面在一个一个安装(推荐)

./configure --prefix=/opt/soft/php --with-curl --with-mysqli --with-openssl --with-pdo-mysql --enable-fpm

make

sudo make install

设置快捷访问方式: sudo cp /opt/soft/php/bin/php /usr/local/bin/

把php配置文件放在正确的位置

确认正确位置:php -i | grep php.ini

在下载的安装包中将php配置文件移动过来: sudo cp /opt/packages/php-7.3.2/php.ini-production /opt/soft/php/lib/php.ini

ps:以后可以通过 php --ini 查看文件所在位置

2. nginx下载以及安装

和上面php一样的步骤,下载--解压--编译--安装

wget http://nginx.org/download/nginx-1.14.2.tar.gz

./configure --prefix=/opt/soft/nginx --sbin-path=/opt/soft/nginx/sbin/nginx --conf-path=/opt/soft/nginx/config/nginx.conf --error-log-path=/opt/soft/nginx/logs/error.log --pid-path=/opt/soft/nginx/logs/nginx.pid --http-log-path=/opt/soft/nginx/logs/access.log --with-http_stub_status_module --with-http_ssl_module

sudo make &&make install

设置快捷访问方式: sudo cp /opt/soft/nginx/sbin/nginx /usr/local/bin/

简单配置nginx(详细配置后面再重新开文章写),然后浏览器直接访问ip就能访问了(这个时候只能访问html,访问php是直接下载文件)

开启nginx: sudo nginx(sudo nginx -s reload 重启nginx), 查看是否开起nginx: sudo netstat -anp | grep 80(端口号)

3. 配置nginx支持php

nginx不能直接和php通信,需要借助FastCGI(高速地在HTTP服务器和动态脚本语言间通信的接口),需要用到php-fpm(FastCGI Process Manager:FastCGI进程管理器, 他的具体概念可以参照这里搞清楚php-FPM到底是什么),这也是为什么在编译安装php的时候需要带--enable-fpm这个扩展的原因.

I. 启动php-fpm

进入到 /opt/soft/php/etc 这个目录将php-fpm.conf.default改名为php-fpm.conf,编辑他查看最后一行

然后进入最后一行指向php-pm.d目录,将www.conf.default改名成www.conf,并编辑成对应账号,我这里是xunan

然后将/opt/soft/php/sbin/php-fpm设置快捷访问方式,并启动php-fpm,也就是执行下面两个命令

sudo cp /opt/soft/php/sbin/php-fpm /usr/local/bin/sudo php-fpm

ps: 重启php-fpm: 先ps aux | grep php-fpm,然后kill掉对应的进程

II. 配置nginx支持php

具体配置:

location ~ \.php$ {

try_files $uri /index.php =404

fastcgi_split_path_info ^(.+\.php)(/.+)$

fastcgi_pass 127.0.0.1:9000

fastcgi_index index.php

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name

includefastcgi_params

}

按照上面配置完成后,在配置文件的root目录下建立一个index.php,编辑

然后重启nginx(sudo nginx -s reload),在浏览器ip访问

<?php

if($_POST['submit']){

$url=$_POST['url']//取得提交过来的地址http://hu60.cn/wap/0wap/addown.php/fetion_sms.zip

$url=urldecode($url)

$fname=basename("$url")//返回路径中的文件名部分 fetion_sms.zip

$str_name=pathinfo($fname) //以数组的形式返回文件路径的信息

$extname=strtolower($str_name['extension'])//把扩展名转换成小写

//$uptypes=explode(",",$forum_upload)//取得可以上传的文件格式

//$size=getFileSize($url)

$time=date("Ymd",time())

$upload_dir="./upload/"//上传的路径

$file_name=$time.rand(1000,9999).'.'.$fname

$dir=$upload_dir.$file_name//创建上传目录

//判断目录是否存在 不存在则创建

if(!file_exists($upload_dir)){

mkdir($upload_dir,0777,true)

}

$contents=curl_download($url,$dir)

if($contents){

echo "下载成功"

}else{

echo "下载失败"

}

}

function curl_download($url, $dir) {

$ch = curl_init($url)

$fp = fopen($dir, "wb")

curl_setopt($ch, CURLOPT_FILE, $fp)

curl_setopt($ch, CURLOPT_HEADER, 0)

$res=curl_exec($ch)

curl_close($ch)

fclose($fp)

return $res

}

?>

<!DOCTYPE html>

<html lang="zh-CN">

<head>

<meta>

<meta charset="utf-8" />

<meta name="viewport" content="width=device-width, initial-scale=1">

<title>远程下载文件</title>

<form name="upform" method="post" action="" enctype='multipart/form-data'>

<input name='url' type='text' size='20'/>

<input type='submit' name='submit' value='远程下载'/>

</form>

</body>

</html>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7335104.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存