thinkphp脚本
一、备份数据库并下载到本地【db_backup.php】
代码代码如下:
<?php
// 设置sql文件保存文件名
$filename=date("Y-m-d_H-i-s")."-".$cfg_dbname.".sql";
// 所保存的文件名
header("Content-disposition:filename=".$filename);
header("Content-type:application/octetstream");
header("Pragma:no-cache");
header("Expires:0");
// 获取当前页面文件路径,SQL文件就导出到此文件夹内
$tmpFile = (dirname(__FILE__))."\\".$filename;
// 用MySQLDump命令导出数据库
exec("mysqlmp -u$cfg_dbuser -p$cfg_dbpwd --default-character-set=utf8 $cfg_dbname > ".$tmpFile);
$file = fopen($tmpFile, "r"); // 打开文件
echo fread($file,filesize($tmpFile));
fclose($file);
exit;
?>
二、还原数据库【db_restore.php】
代码代码如下:
<form id="form1" name="form1" method="post" action="">
【数据库SQL文件】:<input id="sqlFile" name="sqlFile" type="file" />
<input id="submit" name="submit" type="submit" value="还原" />
</form>
<?php
// 我的数据库信息都存放到config.php文件中,所以加载此文件,如果你的不是存放到该文件中,注释此行即可;
require_once((dirname(__FILE__).'/../../include/config.php'));
if ( isset ( $_POST['sqlFile'] ) )
{
$file_name = $_POST['sqlFile']; //要导入的SQL文件名
$dbhost = $cfg_dbhost; //数据库主机名
$dbuser = $cfg_dbuser; //数据库用户名
$dbpass = $cfg_dbpwd; //数据库密码
$dbname = $cfg_dbname; //数据库名
set_time_limit(0); //设置超时时间为0,表示一直执行。当php在safe mode模式下无效,此时可能会导致导入超时,此时需要分段导入
$fp = @fopen($file_name, "r") or die("不能打开SQL文件 $file_name");//打开文件
mysql_connect($dbhost, $dbuser, $dbpass) or die("不能连接数据库 $dbhost");//连接数据库
mysql_select_db($dbname) or die ("不能打开数据库 $dbname");//打开数据库
echo "<p>正在清空数据库,请稍等....<br>";
$result = mysql_query("SHOW tables");
while ($currow=mysql_fetch_array($result))
{
mysql_query("drop TABLE IF EXISTS $currow[0]");
echo "清空数据表【".$currow[0]."】成功!<br>";
}
echo "<br>恭喜你清理MYSQL成功<br>";
echo "正在执行导入数据库操作<br>";
// 导入数据库的MySQL命令
exec("mysql -u$cfg_dbuser -p$cfg_dbpwd $cfg_dbname < ".$file_name);
echo "<br>导入完成!";
mysql_close();
}
?>
B. thinkphp3.2.3如何每30分钟自动执行controller下的方法,这个是主动的,不需要访问,本人操作系统是win10
确认一下:你的前台和后台指的是两个不同的模块吗?比如说前台的Index模块,后台的Admin模块,这样的吗?如果是的话,有下面1、2两种方法;如果不是的话,请查看3;
前台调用后台方法:
1、可以将需要调用的方法提取出来,放入"你的项目文件/Common/Common"文件夹里的function.php文件中;这样这个方法前台后台都可以调用了;
2、直接新建一个php文件,写入你的方法,放入"你的项目文件/Common/Common"文件夹,然后在"你的项目文件/Common/Config.php"中使用 "LOAD_EXT_FILE"=>"XXX",引入你自定义的方法文件(引入时不需要带php后缀);这样也可以在前台/后台同时调用这个方法。
3、在前端页面中调用后台方法?那应该可以使用ajax进行直接调用。
Ps:建议查看ThinkPHP3.2.3的开发手册。
C. thinkphp 能在静态页面的js里写php代码吗
你可以在静态页面写个js链接,链接文件是你用thinkphp写的php文件输出到静态页面
D. THINKPHP怎么返回当前运行脚本目录
dirname(__FILE__);
这个可以满足你的要求的。
望采纳,谢谢。
E. thinkphp框架里怎么用linux的crontab写php的定时脚本
键入 crontab
-e 编辑crontab服务文件
------------------------------------------Ubuntu中的linux---------------
安装lynx包:apt-get isntall lynx
先写ln.sh脚本:lynx http://10.11.12.49/data_task.php
设置定时:crontab -e
0 1 * * * bash /var/www/test/ln.sh
-------------------------------------------------------------------------
分为两种情况:
第一种情况:你的php脚本中没有引入其他PHP文件,也就是说没有include,require_once等命令的PHP文件
* */1 * * * /usr/local/php/bin/php
/var/www/html/wwwroot/web/script.php (每一小时执行一次script.php)
注意,这样写需要把PHP变成可执行的脚本文件。在命令行下,脚本所在目录
chmod +x script.php
注意:你的script.php文件中一定要在开始处加上: #!/usr/local/php/bin/php -q
,下面是一个完整的script.php文件代码
<?php
#!/usr/local/php/bin/php -q
session_start();
define( "DB_PASSWORD", "111111" ); //服务器登陆密码。这里我写不完,去后盾人看看相关视频你就会了,希望能帮你解决问题。
F. thinkphp的command这个方法是做啥的呢
注:我使用的是thinkphp5.0.9版本,不同的版本可能目录结构有差.
第一步:配置command.php文件,目录在网站根目录的application/command.php下
第二步:建立命令类文件, 新建application/command/Settle.php(command目录是自己新建用来统一管理脚本的文件夹)
第三步:执行脚本
注: 定时执行命令,需要你把该类文件加入linux的crontab中
执行 php 网站根目录/think Settle (linux下严格区分大小写)
G. thinkPHP 怎么让它在一定时间执行代码
php的定时任务是不建议的,使用服务器的定时任务去执行php的脚本
H. thinkPHP五级地区插件加载不出来可能与什么js脚本冲突
可以用火狐或360等带开发者工具的浏览器,建议火狐,按F12查看一下控制台,一般会有出错原因的。
I. thinkphp想传参数给python脚本并接受返回的参数,要怎么做
python中定义一个函数,可以通过正常的只传入值或key-value的方法调用。但是如果第一个时参数传入的是key-value的方法,那么后面的必须都是key-value方法,如果第一个不是,那么后面的可以根据情况再传入值就可以了。更多内容你可以去后盾人试试吧,多学习下视频
J. thinkphp定时脚本--执行控制器“502 Bad Gateway”超时怎么解决
Nginx的问题,经常出现,我是在php程序抓取的时候先判断一下抓到的title是不是“502 Bad Gateway”,如果不是则抓取成功,如果是则抓取失败 重新抓取。
根本的解决办法也是有的,你可以 网络 “
LNMP一键安装包的Nginx 502 Bad Gateway错误可能原因及解决方法
”