Det lilla tabellavsnittet jag håller på med just nu ser ut såhär, med gammal kod från början av 2000:
Kod: Markera allt
<p>
<img border="0" src="logg/rubrik_loggbok.gif" width="400" height="25"></p>
<table border="0" cellpadding="3" cellspacing="0" style="border-collapse: collapse" width="400" id="AutoNumber4" bgcolor="#DACCB9">
<tr>
<td width="100">
<a target="_self" href="logg/index.html">
<img border="0" src="loggbok.gif" width="100" height="100"></a></td>
<td width="312" valign="top">
<h2>Senaste inlägget från loggboken</h2>
<script language="php">
$handle = fopen("logg/index.html", "r");
$datum = " ";
while (!strpos($datum,"•")) {
$datum = fgets($handle, 4096);
}
$buffer=" ";
while (!strpos($buffer,"</blockquote>")) {
$buffer = fgets($handle, 4096);
if (!strpos($buffer,"blockquote")) {
echo $buffer;
}
}
fclose ($handle);
echo "</p><p>";
echo "Loggat ".substr($datum,strpos($datum,"•")+2,10);
</script>
</td>
</tr>
</table>
Nu har jag på en testsida flyttat ut det i en egen fil, bytt bort tabellen, och hämtar in det med en <?php include'fil'; ?>
Kod: Markera allt
<span class="header">Loggbok</span>
<div class="card">
<a target="_self" href="logg/index.html">
<img src="loggbok.gif" width="100" height="100"></a>
<h2>Senaste inlägget från loggboken</h2>
<?php
$handle = fopen("logg/index.html", "r");
$datum = " ";
while (!strpos($datum,"•")) {
$datum = fgets($handle, 4096);
}
$buffer=" ";
while (!strpos($buffer,"</blockquote>")) {
$buffer = fgets($handle, 4096);
if (!strpos($buffer,"blockquote")) {
echo $buffer;
}
}
fclose ($handle);
echo "</p><p>";
echo "Loggat ".substr($datum,strpos($datum,"•")+2,10);
?>
</div>
HTML-delen funkar bra och dyker upp efter 30s när PHP felar. Alla filer ligger på samma ställe.
Det funkar inte när jag kör filen direkt heller.
Vad är det jag missar?
Enda skillnaden är att jag bytt ut script-taggarna.
Och att filen är sparad i UTF-8 istället för windows-1252.
[edit]
Hmm... undrar om PHP missar lite med radräknaren och det är while (!strpos($datum,"•")) { som jäklas.
Den där bulleten får nog inte samma kod i UTF-8. Om tecknet inte hittas blir det knas...
[edit]
Det var det ersatte alla • med • och sökte efter det istället.
Det är som teddybjörnen Porgy som Alan Turing hade. Prata med den först så kommer man kanske på misstagen själv.
Kanske skulle ha med en koll på EOF där