JoomlaをWebサイトのCMSとして使用しています。ページにマップを埋め込む際に、Webサイトを完全にW3Cに準拠させるためにいくつか問題があります。私がマップを埋め込むために使用しているモジュールは、このコードを使って地図を埋め込みます。PHP forループの出力を同じ行に残す
<iframe height="<?php echo $module_height; ?>"
style="border:<?php echo $border; ?>;
width:<?php echo $module_width.$module_width_unit; ?>"
src="http://maps.google.com/maps?q=<?php
for ($loop = 0; $loop < $keywords_number; $loop += 1) {
echo $keywords[$loop];
if($loop!=$keywords_number_1) {
echo "+";
}
}
?>&ie=UTF8&view=map&f=q&saddr=<?php
for ($loop = 0; $loop < $keywords_number; $loop += 1) {
echo $keywords[$loop];
if($loop!=$keywords_number_1) {
echo ",+";
}
}
?>&<?php if($satellite) { ?>t=h&<?php } ?>output=embed"></iframe>
残念ながら、これはこのようなリターンになり、
<iframe height="300" style="border:none; width:100%" src="http://maps.google.com/maps?q=STREET ADDRESS
CITY,+PROVINCE+POSTAL+CODE
&ie=UTF8&view=map&f=q&saddr=STREET ADDRESS
CITY,,+PROVINCE,+POSTAL,+CODE
&output=embed"></iframe>
マップは、ウェブサイトで完全に罰金を示しているが、私はこのエラーを取得し、属性の
悪い値エレメントiframeのsrc:タブ、改行または改行が見つかりました。
私は、このWebサイトが完全にW3C準拠であることを望みます。出力のすべてのテキストを1行にする必要があるとします。
forループを強制的に同じ行に印刷するか、2つのループの出力を同じ行に残すために文字列に連結する方法はありますか?
ありがとうございます!あなたは、単純なスペースでのsrc URLに入れVARS内のすべての空白文字を置き換えることにより、
も、HTMLに出力何にも開始する前に、PHPでの全体パラメータ文字列を構築していない理由をまず第一に、 。それは少なくとも、コードが現在書かれているスパゲッティコードの性質のために偽装された空白をクリーンアップして防止するのに役立ちます。 –
複雑なループを使用して、 'join'のジョブをやめます。 – CBroe
あなたの 'php'タグが置かれる方法は、なぜそれらの改行を得るべきなのか明らかな理由はありません。おそらく、それらのループで出力している値の一部ですか?次に、余分な空白を最初に '切り取る 'べきです。 (それをループに戻す必要はありません、 'array_map'が役に立ちます。) – CBroe