PHP ファイル システムの問題
ほとんどの写真は、主に js 呼び出しを通じて表示され、ファイルを作成するときに、多くの写真ファイルのパスが 1 つの js ファイルに配置され、バックグラウンドでアップロードされることがあります。 , ファイルパスをjsファイルに直接書き込みます。
例:
JScript コード
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->imgs1 = new Array('/images/1.jpg','/images/2.jpg');
ログイン後にコピー
上記の imgs1 (1 は画像カテゴリの ID を表します)。
/images/2.jpg はアップロードされたファイル名を表します。 1 つアップロードするたびに、/images/3.jpg などのように、後で 1 つ追加されます。
別の画像カテゴリをアップロードする場合、次のような:
JScript コード
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->imgs2= new Array('/images/1.jpg');
ログイン後にコピー
、アップロード時このカテゴリも自動的に配列に追加されます。
配列に割り当てられた変数がファイル内で繰り返されないようにする必要があります。別の画像カテゴリを追加する場合は、
JScript コード
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->imgs3=new array('images/1.jpg');
ログイン後にコピー
などのように増やし続けます。
-----解決策--------------------------------ファイル配列に書き込む場合でも、データベースから取り出した配列の場合でも、変更関数は、以前に追加されたデータが存在する必要があることを問い合わせます。存在しない場合は、追加する前に、配列の変数が変更できないかどうかを確認します。変更は、以前に追加または変更したイメージ パスをすでに照会しています。たとえば、a と b が送信されると、新しく渡された c パスが a、b、c になります。
------解決策------------------
これを行うのは明らかに不適切です
文字列の置換によって目的は達成できますが、ファイル全体を書き戻す必要があります。エラーが発生する可能性が高くなります
実際には、ファイルの最後に追加するだけです
たとえば、初期ファイルは
img1 = new Array('1.jpg)です。 ');
今後毎回時刻が追加されます
img1.push('2.jpg');
img1.push('3.jpg');
img1.push('4 .jpg');
...
3 その後、ファイルは
JScript コード になります。
img1 = 新しい配列('1.jpg');
img1.push('2.jpg');
img1.push('3.jpg');
img1.push('4.jpg'); <div class="clear"></div>
ログイン後にコピー