こんにちは、私は次のコードを持っています..
function export_file() {
$tmpname = '/tmp/' . sha1( uniqid() ) . $ext;
$filename = 'export.sql';
$cmd = sprintf( "/Applications/XAMPP/xamppfiles/bin/mysqldump -h'%s' -u'%s' -p'%s' %s --single-transaction %s > %s",
DB_HOST, DB_USER, DB_PASSWORD, DB_NAME, $compression_pipe, $tmpname );
exec( $cmd );
header( 'Content-Type: application/bzip' );
header( 'Content-Length: ' . filesize( $tmpname ) );
header( 'Content-Disposition: attachment; filename="' . $filename . '"' );
readfile( $tmpname );
unlink( $tmpname );
exit();
}
今は動作しますが、ファイルをダウンロードしません。ヘッダーは既に送信されていると言っています。
すでに送信されたヘッダー (出力は /Applications/XAMPP/xamppfiles/htdocs/~/wp-admin/includes/template.php:1642 で開始)
これで、作成中のプラグインに必要な javascript および css ファイルを含めるために、ヘッダーがメインのプラグイン ファイルから既に送信されていることがわかりました。
function admin_register_head() {
$siteurl = get_option('siteurl');
$css = $siteurl . '/wp-content/plugins/' . basename(dirname(__FILE__)) . '/style.css';
$script = $siteurl . '/wp-content/plugins/' . basename(dirname(__FILE__)) . '/script.js';
echo "<link rel='stylesheet' type='text/css' href='$css' />";
echo "<script src='$script' type='application/javascript'>"; }
これらのヘッダーを使用してページを再度ロードするように指示するにはどうすればよいですか。これにより、SQL ダンプがファイルとしてダウンロードされ、表示されず、サーバー上にファイルが作成されます。例えば。リンクまたはボタンを押してこの関数を呼び出し、これらのヘッダーを追加して、SQL ダンプをファイルとしてダウンロードしますか? ここで完全に軌道に乗っていない場合は修正してください。これを行う方法についての提案をお待ちしています。
私は初心者で、PHP、mySQL、およびワードプレスでこのプラグインのさまざまな要素を作成することで、これまでに多くのことを学びました。あなたの助けは大歓迎です。検索して読んだチュートリアルを検索しましたが、機能させることができないようです。