時間の問題があります。特定の操作にphpを使用するカラオケWebサイトを作成しています。サイトは Drupal で作られています。私の問題は、録音された曲のファイル名を作成するために date() を使用していることです。しかし、このファイル名は私のページの 2 か所で使用されています。最初の場所は、ページが読み込まれるとすぐにファイル名を作成し、アプレットで使用できるように「エコー」します。アプレットは、ユーザーが曲を録音した後にページを離れたときに、最後にファイルをアップロードすることです。
2 番目の場所は、ボタンが押されたときにファイル名を使用します。このコードは、ファイル名をノード (My Songs) に書き込み、後でアクセスできるようにします。したがって、両方のファイル名は同じでなければなりません。問題は、両方のコードが定数を使用する時間に不一致があることです。そのため、ノード My Songs に書き込まれたファイルの名前は、アップロードされたファイル名と同じではありません。両方のコードがファイル名を使用する場合、4 ~ 5 分の違いがあるためです。関数: date('dmhi') は、関数の文字列 (結果) ではなく定数に格納されていると思います。変数を使用して、最初に文字列で初期化して文字列のままにしてみましたが、うまくいきませんでした。私はどちらかというと C++ と VB のコーダーなので、php で変数と定数がどのように機能するかわかりません。何日もウェブを検索しましたが、答えが見つかりません。皆さんが私を助けてくれることを願っています。ここに私のコードの一部があります:
最初の出現:
<?php
Global $user;
profile_load_profile($user);
$name = $user->name;
define("FILE", $title . $name . date('dmhi') . ".spx");
echo "<param name=\"refreshURL\" value=\"http://english.karavid.com/node/2?sampleName=" . FILE . "&movie=" . $movie . "&title=" . $title . "&name=" . $name . "\">\n";
echo "<param name=\"uploadFileName\" value=\"" . FILE . "\">\n";
?>
ボタンが押されたときの 2 番目の発生:
$node1->body = substr($node1->body, 0, -8) . "<tr>
<th scope=\"col\"><a href=\"http://english.karavid.com/node/2?sampleName=" . FILE . "&movie=" . $movie . "&title=" . $title . "&name=" . $name . "\">" . $title . "</a></th>
<th scope=\"col\">" . date('j M Y') . "</th>
<th scope=\"col\"></th>
</tr> </table>";
node_save($node1);
あなたが私に与えることができる手がかりを前もって感謝します。
ナタリー
編集:
私はよりよく説明しようとします。アプレット (音声のレコーダー) 内にいくつかのコードを作成するページを生成しています。そのアプレット内で、php を使用してアプレット コードの一部を作成します。その部分は、ユーザーが行った記録をアプレットにアップロードさせることです。ここで、ユーザーごとに異なるファイル名が必要です。また、ユーザーが 1 日に何度も同じ曲を録音する場合、ファイル名は異なる必要があるため、ファイル名に日付と時刻を使用しています。関数 date(); を使用
ただし、そのファイル名はロード時に生成されます。そのため、ファイル名にはページの読み込み時間が含まれます。後でユーザーが実際に曲を保存すると、時間が経過しますが、アップロードされたファイル名には保存時ではなくロード時の時間が含まれます。これは、ページの読み込み時にアプレット内でファイル名が「エコー」(ed) されるために発生します。私がそれを回避できる他の方法はありません。
でも、その時間をまた使えるように残しておきたい。ファイル名をもう一度使用しようとすると、時間が同じではなくなります。数分が経過しました。したがって、ファイル名は同じではありません。また、保存時に記録した後、別のページ(ノードやファイル)にファイル名を書き込むと、以前のものと同じではありません。
私はそれが少し複雑であることを知っています。しかし、基本的には、時間を含むファイル名を生成する必要があります。また、時間枠で区切られる 2 つの機会に同じファイル名を使用します。ただし、ファイル名は変更しないでください。