php执行file_put_contents后生成的文件如何自动下载到本地?
file_put_contents只能生成文件在服务器上,无法读写客户端的文件系统,这是WEB的协议决定了的。
要想把file_put_contents生成在服务器上的文件发给浏览器用户,只有用下载的办法:文件生成到WEB可以访问的路径,然后使用<a href>建立链接让用户下载,示例代码:
file_put_contents('atxt', $str);
echo '<a href=atxt>下载文件</a>';
/
@$url string 远程地址
@$dir string 目录,可选 ,默认当前目录(相对路径)
@$filename string 新文件名,可选
/
function GrabImage($url, $dir='', $filename=''){
if(empty($url)){
return false;
}
$ext = strrchr($url, '');
if($ext != 'gif' && $ext != "jpg" && $ext != "bmp"){
echo "格式不支持!";
return false;
}
//为空就当前目录
if(empty($dir))$dir = '/';
//
$dir = realpath($dir);
//目录+文件
$filename = $dir (empty($filename) '/'time()$ext : '/'$filename);
//开始捕捉
ob_start();
readfile($url);
$img = ob_get_contents();
ob_end_clean();
$size = strlen($img);
$fp2 = fopen($filename , "a");
fwrite($fp2, $img);
fclose($fp2);
return $filename;
}
//测试
GrabImage("此处网址/1jpg", "asgif");
// PS:目录存在,权限判断,自创建等自己应该知道!
//个人喜欢绝对路径所以就那么写了
这种情况。 你既然可以把php关联到下载工具。 当然也可以删掉吧? 呵呵~
删掉就行~~
如果是直接在下载工具设置,不监视php,或关掉 监视下载地址的功能
还有一种超级简单的方法。。。 就是用雅虎助手之类的修复软件~ 修复一下注册表关联~~ 也可以手动到注册表里删除啊~~
开始、运行、regedit、然后在HKEY_CLASSES_ROOT里找php
如何安装PHP环境?
灯/LNMP环境建设1检查系统环境
1确认centos版本
[root@localhost~]#cat/etc/redhat-release
2检查是否安装了apache
rpm-qagrephttpd
或者:
apachectl-v
或者:
httpd-v
3检查是否安装了Mysql
服务mysqld启动
如果无法识别,则不会安装。
如果系统已经安装,或者安装失败,请清洗系统。
4清理Mysql痕迹
yum删除mysql
rm-f/etc/mycnf
5卸载Apache包
rpm-qagrephttpd
注意:如果是新系统或者你从未尝试过安装,以上步骤省略。
二。安装Apache,PHP,Mysql
停止防火墙服务
[root@localhost~]#systemctl停止防火墙dservice
禁用防火墙启动服务。
[root@localhost~]#systemctl禁用防火墙dservice
1安装apache
[root@localhost~]#yum-y安装httpd
2安装php
[root@localhost~]#yum-y安装php
3安装php-fpm
[root@localhost~]#yum-y安装php-fpm
4安装Mysql
[root@localhost~]#yum-y安装mysql
5安装mysql-server
[root@localhost~]#yum安装mariadb-server
Centos7版本将mysql数据库软件从默认程序列表中移除,并替换为mariadb。在entos7的配置教程中,大多安装了mariadb,因为CentOS7默认将mariadb视为MySQL。
mysql被oracle收购后,原作者担心mysql的封闭源码,于是又写了一个mariadb,可以理解为mysql的一个分支。如果需要安装mariadb,用yum就可以了。
6安装php-mysql
[root@localhost~]#yum-y安装php-mysql
三。安装基本的通用扩展包
1安装Apache扩展包
yum-yinstallhttpd-manualmod_SSLmod_perlmod_auth_MySQL
2安装PHP扩展包
yum-y安装PHP-GDPHP-XMLPHP-mbstringPHP-LDAPPHP-pearPHP-xmlrpcPHP-devel
3安装Mysql扩展包
yum-y安装MySQL-connector-odbcMySQL-devellibDBI-DBD-MySQL
四。配置Apache和mysql来启动。
重启Apache和mysql服务(注意和centos6不一样,Cenots7不能用6)
systemCTLStarthttpdservice#StartApache
Systemctl停止httpdservice#停止apache
systemCTLRestarthttpdservice#RestartApache
Systemctlenablehttpdservice#设置apache启动
重新启动数据库
#开始MariaDB
[root@localhost~]#systemctl启动mariadbservice
#停止玛丽雅迪
[root@localhost~]#systemCTLstopMariadbservice
#重新启动MariaDB
[root@localhost~]#systemctl重新启动mariadbservice
#设置启动。
[root@localhost~]#systemCTLenableMariadbservice
动词(verb的缩写)配置Mysql
第一次安装mysql时没有密码。我们需要设置一个密码。mysql的默认帐户是root。
1:设置MySQL数据根帐户的密码:
[root@本地主机~]#mysql_secure_installation
出现以下提示时,直接按Enter键:
输入根用户的当前密码
再次输入,如下所示:
设置root密码?[是/否]
出现以下提示,要求输入您需要设置的密码。这里输入了root用户,但不显示密码。输入,然后再次输入进行确认:
新密码:
接下来,将有四个确认,即:
删除匿名用户?[是/否]
不允许远程root登录?[是/否]
是否删除测试数据库并访问它?[是/否]
现在重新加载权限表吗?[是/否]
只需按回车键。
2:输入mysqlmysql-rR。
要修改mysql密码:设置密码为根@本地主机=密码(根);
授权mysql远程连接(navicat等。):grantallon。到由根;
不及物动词测试环境
我们在浏览器的地址栏输入http://ip/
七。安装nginx
yum安装yum-优先级-y
wgethttp://nginxorg/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0el7ngxnoarchrpm
rpm-IVHnginx-release-centos-7-0el7ngxnoarchrpm
yum安装nginx
Nginx版本号可以更改http://nginxorg/packages/centos/7/noarch/RPMS/$版本。
八。配置nginx
1nginx启动、停止和重启。
systemCTLStartnginxservice#Startnginx
Systemctl停止nginxservice#停止
systemCTLrestartnginxservice#restart
Systemctlenablenginxservice#设置启动。
更改nginx端口号(根据自己的需要)
cd/etc/nginx/confd/
vim默认值conf
将听力80改为听力81
3访问http://ip:81可以看到nginx的主页。
当安装访问完成后,需要启动php-fpm。如果没有重新启动访问,将会出现下载文件。重新启动命令如下
Systemctl启动php-fpmservice#启动php-fpm
systemctlenablephp-fpmservice#设置启动
4更改nginx配置文件以识别php
VI/etc/nginx/confd/defaultconf,去掉前面的#就行了,方便改。
位置~。php${
根html
fastcgi_pass127001:9000;
fastcgi_indexindexphp;
fastcgi_paramSCRIPT_FILENAME/usr/share/nginx/html/$fastcgi_SCRIPT_name;
包括fastcgi_params
}
方法2安装nginx
yum安装nginx
启动nginx并设置为boot。
systemctl启动nginx
systemctl启用nginx
vim/etc/nginx/confd/defaultconf
5在/usr/share/nginx/html中创建新的testphp
请访问http://ip:81/testphp查看php页面
修改配置的时候记得启动apache和php-fpm!
九。负载配置
上游站点{
服务器17216170138;
服务器17216170139;
}
服务器{
听80;
server_name本地主机;
#charsetkoi8-r;
#access_log/var/log/nginx/log/hostaccesslogmain;
位置/{
root/usr/share/nginx/html;
索引indexhtmlindexhtm;
proxy_passhttp://site;
}
Apache默认目录/var/www/html
Ngx默认目录/usr/share/nginx/html
升级php版本
centos7的默认安装php是54
查看yum的可安装php版本列表。
yum提供php
开始升级PHP更新源:
rpm-Uvhhttps://mirrorwebtaticcom/yum/el7/epel-releaserpm
rpm-Uvhhttps://mirrorwebtaticcom/yum/el7/webtatic-releaserpm
Yumremovephp-common-y#移除系统自带的php-common。
Php72版本72
yuminstall-yPHP72wPHP72w-opcachePHP72w-XMLPHP72w-mcryptPHP72w-GDPHP72w-develPHP72w-MySQLPHP72w-intlPHP72w-mbstring
Php56版本56
yum-yPHP56WPHP56W-opcachePHP56W-XMLPHP56W-McryptPHP56W-GDPHP56W-DevelPHP56W-MySQLPHP56W-INTLPHP56W-MBString#安装依赖包
检查php版本
php-v
安装phpfpm:
yum安装php72w-fpm
Yum提供php-fpm#因为我要建lnmp,所以我会安装php-fpm。这里会提示您输入多个安装源。选择56版本的安装即可。
yuminstallPHP56w-fpm-5631-1w7x86_64-y
Systemctl启动php-fpmservice[start]
Systemctl启用PHP-fpmservice[启动和自启动]
Centyum有时会给出“无法检索mirrorlist”的解决方案——resolvconf的配置
原因:未配置resolvconf。
解决方法:
转到/etc目录配置resolvconf以加入名称服务器IP,例如:
8888域名服务器
8844域名服务器
搜索本地域
只需保存并再次运行上面的命令。
https://blogcsdnnet/mao834099514/article/details/73470001
Ngx目录:/usr/share/nginx/html
/etc/nginx/confd/defaultconfnginx配置目录
Apache目录:/var/www/html
/etc/httpd/conf/httpdconfApache配置文件
Nginx配置域名
cd/etc/nginx
cpdefaultconfimoocconf
修改服务器名imooctestcom和项目目录
配置虚拟域名windows访问需要将linuxip添加到主机
服务器名wwwninecom
DocumentRoot
选项索引跟随符号链接
全部覆盖
要求全部授权
关闭防火墙
setenforce0
要怎么实现两者的连接,可以用php搭建服务器么?
问题不太清晰,这里的连接是各种方式?
如果是普通的过去数据,进行api调用,那就在服务器搭建一个程序即可。
如果是长连接,可能需要起一个长连接服务,用php的话,就用swoole吧。
当然也可以用其他语言实现
php框架搭建方法?
php框架搭建步骤:
1项目初始化
首先我们在自己的web目录下创建我们的项目目录,我暂且把项目命名为hellovod,因此我的电脑目录就是:D:laragonwwwhellovod。在该目录下创建composerjson文件。
2添加入口文件
初始化完毕后,我们来配置入口文件。在hellovod目录下新建一个public文件夹,并在该文件夹下创建入口文件indexphp。
3添加路由功能
接下来,在hellovod目录下创建一个app文件夹,在app文件夹下新建routesphp。
4添加控制器模块
在hellovod/app目录下,创建Controllers文件夹,用来放置控制器文件。在该文件夹下创建控制器文件:IndexControllerphp。
5添加模型
当然,框架要能与数据库打交道,否则就没有灵魂。我们建立一个名为hellovod的数据库,再创建一个用户表:hw_user。
phpstorm怎么搭建运行环境?
phpstorm搭建运行环境方法如下
1打开PHPstudy进入“其他选项菜单”-“环境端口检测”-端口列表,随后点击PHPstudy运行界面的重启,查看网络状态-TCP监听端口,查看Apache的端口,我的这里是9096,网上一般说Apache端口默认是80,没错,但经常被占用。
2随后,我们来到phpstrom中修改phpstoram的默认设置,tools-Deploment-Configuration,如果第一次设置会没有,点击弹窗左上角“+”新建就好。
3端口被占用就是把localhost改成localhost:端口/地址/
4点击Mapping,进入设置。
5完成后保存退出,在点击右上角的小角标。
6找到PHPwebapplicantion,进入。也是没有就点击“”的那个新建。
7没有的新建,有的改数据,默认是80,80端口被占用就改成,我们看过的被分配好的端口号。
可以利用post方式提交表单,将文件上传到服务器上即可。上传到服务器的文件会存在临时目录下,然后利用move_uploaded_file函数可以将文件另存到其他目录进行永久保存,如果不另存,请求返回之后该临时文件就会删除,在服务器上再也找不到,如果需要该文件就需要重新上传。 另外,php是服务器端语言,是网页浏览的结果提交到服务器之后,服务器调用php进行处理。浏览器端请使用JavaScript语言处理上传前的操作。另外,由于安全性考虑,JavaScript是不能够读取用户硬盘上的数据的,不然你知道后果,任何一家网站都可以搞到你硬盘上的资料,就没有隐私可言了。 所以呢,还是将文件利用表单提交的方式上传到服务器,服务器端怎么处理,用什么处理都随你,php,python,c++都可以在服务器端处理了,毕竟传到服务器就是服务器的资源了。 页面文件上你可以用input标签浏览选择本地的文件,然后submit就能够上传文件。这是一个基本技术点,请你专门花点时间弄懂吧。
首先,运行PHP程序都有一个工作目录的。
你这样的情况,要么就是你上传的目录不在工作目录下。
或者服务器不支持PHP
希望这些能给你帮助。。
0条评论