phpでプログラムしていますが、

WEBブラウザで開くと、どうしても一番上に「空行」が出てしまいます。

phpは短いスクリプトで、

<?
require ....

から始まり、一通り処理が終わると

?>
<docutype..
<html>
<head>

と、htmlを普通に書いて出力しています。

どうも<? ?> の初めのphp部分を削除すれば問題ないのですが、
何故phpコードがあると空行が出来るのかよくわかりません。

解決方法がありましたら、お願いします。

回答の条件
  • 1人3回まで
  • 登録:
  • 終了:2007/05/31 11:27:40
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:evolution6 No.1

回答回数1ベストアンサー獲得回数0

ポイント27pt

require や include してるソースの中で

...

?>

の後とかに余計な改行があるファイルがありませんか?

以前そんなことで、ちょっとはまったような覚えが。。。

id:onigirin

どうもありがとうございます。

チェックしてみましたが、

?> の行で終わっていました。

の間にはrequireの2行のみにしてみましたが、やはり一番上に空行が出てしまいます・・・。

2007/05/31 10:13:44
id:pmakino No.2

回答回数358ベストアンサー獲得回数30

ポイント27pt

上記例ですと、

(中略)

?>

<docutype..

となっており、?> と <doctype の間に1つ改行が含まれています。

これでは少なくとも1行は空行が発生しますので、

(中略)

?><docutype..

というように、

?> と <doctype の間を詰めれば、1つの空行を消すことができるはずです。

id:onigirin

どうもありがとうございます。

早速試してみたところ、消えませんでした・・・。

出力されたページのソースを見てみると、

行頭から空行もなく

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

というように表示されていました。

htmlソースがこうなのに、何故空行が出るのか謎です・・・。

2007/05/31 10:13:34
id:jack_sonic No.3

回答回数124ベストアンサー獲得回数25

ポイント27pt

こんにちは。

詳しい実行環境や、requireで取り込んでいる中身の詳細などが無いのでわからないのですが、

もしもXREAを使っている場合、内用に関わらず先頭に空白が強制的に挿入されるケースがあります。

謎の空白ができる - XREA&CORE SUPPORT BOARD

FAQ/サイト作成 - はやわかり XREA

また、他にも外部ファイルの取り込みに関して似たケースに陥っている人がいらっしゃるようで、

まだ回答は出ていませんが、こちらの質問スレッドも動きがあれば何か手がかりになるかもしれませんので一応リンクを貼っておきますね。

http://www.netmania.jp/cgi/yuhk/index.cgi?print+200611/06110002....

id:onigirin

どうもありがとうございます。

まさにxreaでした・・・。

有料サービスなのですが、弊害は残っているのかもしれませんね。

挿入した箇所に空行が出来るみたいなので、

サイトの上部を先にhtmlで書くことで、

デザイン的にごまかせる位置に変更することができました。

phpコードの部分が入ると、そこに空行が入りますねぇ。

htmlソース表示では何も無いのに、改行されてしまっています。

XREAの「仕様」な感じがしますね・・・。

2007/05/31 10:13:26
  • id:b-wind
    PHP に限らず、それを気にしだすと終わらないと思う。
    特に問題なければ気にしないのをオススメする。
  • id:onigirin
    ホームページを表示したとき、
    一番上に「1行」分スペースが空くんです。

    なので、デザイン的にも放置できなくて・・・。
  • id:tezcello
    先頭に<?php...?>を書かないと本当に空行は出ませんか?

    それなら、<DOCUTYPE...>や<html>が始まる前に<?php...?>という表示できないタグが出てくるからでは?
    headタグ内に記述すれば問題無いとか?
  • id:onigirin
    <?php ...?>
    を入れたところに、空行が出来るみたいです。
    (requireがある時だけです)

    一応headタグ内に書いてみましたが、ダメでした。
    XREAの仕様な気がしてきました・・・。
  • id:ep-melody
    何故空行が出るのかはわかりませんでしたが、CSSで…

    position:relative;
    top-25px;

    などと強制的に要素を上げ視覚的に空行を無くしました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません