Fattar inte riktigt. Dina <br> blir naturligtvis radbrytningar, men annars skall det ju inte bli några, inte heller efter varje variabel :q
Beskriv mer...
/nicclas - www.nyhetsrubriker.com
7 svar · 225 visningar · startad av Alpha II
När jag försöker skriva ut meddelande poster i en gästbok så blir det en radbrytning efter varje variabel, vilket inte ser så snyggt ut i webbläsaren. Hur får jag bort den?
echo "
<table border=\"0\" cellspacing=\"2\" cellpadding=\"5\" width=\"100%\">\n
<tr valign=\"top\">\n
<td width=\"30\" VALIGN=\"top\">\n
<A HREF=\"".$hemsida[$index]."\" TARGET=\"_blank\">\n
<IMG SRC=\"images\\homepage.gif\" WIDTH=\"16\" HEIGHT=\"16\" BORDER=\"0\" ALT=\"Besök ".$namn[$index]."s hemsida\">\n
</A><BR>\n
<A HREF=\"mailto:".$epost[$index]."\" TARGET=\"_blank\">\n
<IMG SRC=\"images\\mail.gif\" WIDTH=\"16\" HEIGHT=\"16\" BORDER=\"0\" ALT=\"Skicka mail till ".$namn[$index]."\">\n
</A><BR>\n
</td>\n
<td>\n
<p><span class=\"text\"><b>".$titel[$index]."</b><br>\n
".$meddelande[$index]." </p>\n
<p>/".$namn[$index]."</p></span>\n
</td>\n
</tr>\n
<tr valign=\"top\">\n
<td colspan=\"2\">\n
</td>\n
</tr>\n
</table>\n
<hr>
";
------------------
Alpha II med rätt att döda
Fattar inte riktigt. Dina <br> blir naturligtvis radbrytningar, men annars skall det ju inte bli några, inte heller efter varje variabel :q
Beskriv mer...
/nicclas - www.nyhetsrubriker.com
Det blir en radbrytning i koden vilket ses som ett mellanslag i ns.
ex:
<IMG SRC=\"images\\homepage.gif\" WIDTH=\"16\" HEIGHT=\"16\" BORDER=\"0\" ALT=\"Besök ".$namn[$index]."s hemsida\">\n
blir:
<IMG SRC="images\homepage.gif" WIDTH="16" HEIGHT="16" BORDER="0" ALT="Besök ".$namn[$index]." <--- radbrytning!
s hemsida">
------------------
Alpha II med rätt att döda
Ahh, nu fattar jag :)
Och det uppträder efter alla variabler säger du. Jo så här: Du lagrar gästboksdata på textfil, eller hur?! Varje variabel har en egen rad i denna textfil, eller hur?! När du läser in en rad från textfilen så kommer även "\n"-tecknet med och lagras i bla $namn. Och det vill du ju inte.
Enklast brukar vara att ta bort "\n"-tecken från alla variablerna med:
$namn[$index]=str_replace("\n","",$namn[$index]);
osv, för alla variablerna.
/nicclas - www.nyhetsrubriker.com
[Redigerat av nicclas den 17 feb 2001]
while(!feof($fpread)){
$data1=fgets($fpread,200);
$data2=fgets($fpread,200);
$data3=fgets($fpread,200);
$data4=fgets($fpread,200);
$data5=fgets($fpread,2020);
$tom=fgets($fpread,1024);
$tom=fgets($fpread,1024);
if($mess>=$start && $mess<$start+$persida){
$namn[$index]=str_replace("\n","",$data1);
$epost[$index]=str_replace("\n","",$data2);
$hemsida[$index]=str_replace("\n","",$data3);
$titel[$index]=str_replace("\n","",$data4);
$meddelande[$index]=str_replace("\n","",$data5);
$index=$index+1;
}
$mess++;
}
funkar fortfarande inte... :(
------------------
Alpha II med rätt att döda
Prova att använda chop() (eller rtrim()) istället för str_replace, de två förstnämnda funktionera gör exakt det du vill göra d.v.s. tar bort "whitespace" från slutet av en sträng.
Till whitespace räknas bl.a. carriage return (\r) och line feed (\n).
http://www.php.net/manual/en/function.chop.php
http://www.php.net/manual/en/function.rtrim.php
/j
------------------
R6
Yepp, Batboys förslag är bra. Problemet är att "ny rad" tydligen blir lite olika på olika system. Om du byter till
$namn[$index]=str_replace("\r\n","",$data1);
$epost[$index]=str_replace("\r\n","",$data2);
$hemsida[$index]=str_replace("\r\n","",$data3);
$titel[$index]=str_replace("\r\n","",$data4);
$meddelande[$index]=str_replace("\r\n","",$data5);
så blir det bra. Men som sagt chop() är ju snyggare :)
/nicclas - www.nyhetsrubriker.com
[Redigerat av nicclas den 18 feb 2001]