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錯誤可能原因及解決方法
」