1

phpの基本について少し読み直して、いくつかのことを更新し、コーディングをより正確にするために<?、print関数を使用して文字列で印刷しようとしましたが、その方法が見つからないことに気付きました。

一重引用符と二重引用符の違いについて読んでいるので少し混乱しています。一重引用符で囲まれた文字列内で特別な処理が必要な文字は、バックスラッシュと一重引用符だけだと思いました(O'Reillyの文献のように)。

もちろん、これ<?は文字列の種類ではありませんが、文字列の中にどのように印刷できるのか疑問に思いました。

私はそれをエスケープし、変数に入れ、ヒアドキュメントを使用しようとしましたが、成功しませんでした。実際にFirefoxのソースコードを見ると、文字は表示されているのに表示されていないことがわかります。

これが私のテスト文字列です:

print 'No space between <? and php if you want to avoid errors!';

非常に基本的なことだと思いますが、それでもすべての基本を完全にまっすぐにすることが道のりだと思うので、ここにいます。


ステートメントを間違った順序で取得しました。はRETURN NEWトリガーを終了するため、更新は実行されません。

そのはず:

SELECT max(altitude) INTO maxaltimeter FROM waypoints WHERE flight_id = OLD.id;
UPDATE flights SET max_altimeter = NEW.maxaltimeter WHERE id=OLD.id;
RETURN NEW;

ただし、これがスケーラブルなソリューションにはならないことをご承知おきください。

通常、計算/集計された値をデータベースに保存するのではなく、データを取得するときにそれらを計算することをお勧めします。便宜上、各フライトのmax()値を返すビューを作成することをお勧めします。

このような値を事前に計算する唯一の理由は、取得に非常費用がかかり、更新と比較して頻繁に実行する必要があり、更新のパフォーマンスよりも取得のパフォーマンスの方が重要である場合です。

4

3 に答える 3

4

これは PHP の問題ではありません。HTML はそれをタグの列として解釈し、HTML としてレンダリングします。ページのソースを参照してください。

ソリューション

于 2012-06-23T08:58:55.660 に答える
2

HTML は、タグ要素を定義するために使用される文字と格闘します。これを試して:

print 'No space between &lt;? and php if you want to avoid errors!';

また、これらの文字をプログラムでエスケープしたい場合は、 function を使用できますhtmlentities()

于 2012-06-23T08:58:37.370 に答える
2

スペース、<、> など、特定のシーケンスを使用しないと印刷できない文字が存在します。HTML/XML 出力ページで以下を印刷するには、次の文字を使用して置き換える必要があります

< = &lt;
> = &gt;

等...

于 2012-06-23T08:58:37.687 に答える