私が作成したJavaSciptサイト用のPHPスクリプトを作成しています。PHPスクリプトでファイルを保存する場合
目標は、ボタンをクリックすると文字列の内容をHTMLファイルとして保存することです。
私は投稿リクエストを作成するためにjQueryを使用しています。
私はApache 2サーバーでUbuntu OSを使用しています。私が書いているフォルダにはパーミッション777(テストのみのため、これを廃止します)があります。
PHPは別のファイルに存在する必要があります。
問題が発生するたびにファイルは空白に保存されます。
各ファイル名はタイムスタンプでなければなりません。ファイルには正しいファイル名が含まれていますが、内容は含まれていません。
これまでのところ、ここに私のコードは次のとおりです。
<?php
$fileName = $_GET['fileNameData'];
$htmlImport = $_GET['htmlToSaveData'];
$htmlToSave = (string)$htmlImport;
$myFile = fopen($fileName, "w") or die('You do not have write permissions');
//fwrite($myFile, $htmlToSave);
file_put_contents($myFile, $htmlToSave);
fclose($myFile);
?>
私がコメントアウトしてきたfrwite機能、同じ効果を試してみました。
私はこれをターミナルで引数($ argv [1]と$ argv [2])を渡してテストしました。それはうまく動作します。
私は、私のサイトを実行するために作ったJSは次のようになります。
var newURL = 'saveHTML.php/?fileNameData=' + fileName + '&htmlToSaveData=' + htmlToSave
$.post(newURL)
.done(function(){
alert('Your file saved as ...' + htmlToSave)
})
私も同じ結果で、このコードを試してみた:
$.post('saveHTML.php/', {
fileNameData : fileName,
htmlToSaveData : htmlToSave
})
、fileNameとhtmlToSaveの両方がありますhtmlToSaveはかなり長いですが、実際には私が文字列に変換したhtmlテキストです。
ここで何が起こっているのか誰でも知っていますか?私はPHP開発者ではありません。
私はコールバックを使用しているので、PHPに文字列を渡す前にすべてのHTMLを収集していることを確認できます。
私はこの質問hereの推奨事項を読み、テストしましたが、これは無駄でした。
EDITコードには気を付けてはいけませんが、セキュリティ上の問題だと思いますが、これは学習プロジェクトであり、これは実動されません。
次のようにテストしてください: 'file_put_contents( './ test.txt'、 'test text');'それが失敗すると、アクセス権の問題があります。それが機能する場合は、コンテンツまたはファイルパスの問題があります。 – Tigger
私はそれをコンテンツの問題でなければならないようにショットを与えました – JasTonAChair