Bin mal wieder an einer Übung in einen Buch zum stolpern gekommen. Problem konnte ich bereits lösen aber es blieben doch einige Fragen offen auf die ich bissher nirgendwo eine Antwort gefunden habe.
Also Folgendes Problem bestand:
- Code: Select all
<html>
<head>
<title>RegexTest</title>
</head>
<?php
$expression = isset($_POST['expression']) ? $_POST['expression']:'';
$pattern = isset($_POST['pattern']) ? $_POST['pattern'] : '';
echo <<<FORM
<form action="{$_SERVER['PHP_SELF']}" method="post">
<table>
<tr>
<td>Ausdruck</td>
<td><input type="text" name="expression"
value="$expression"/></td>
</tr><tr>
<td>Muster</td>
<td><input type="text" name="pattern"
value="$pattern"/></td>
</tr><tr>
<td></td>
<td><input type="submit" value="Test"/></td>
</tr>
</table>
</form>
FORM;
if (!empty($expression))
{
if (preg_match_all("~$pattern~", $expression, $result))
{
echo "Das Muster ist im Ausdruck gefunden worden.<p/>";
if (count($result) > 0)
{
echo "Folgende Teilmuster gefunden:<br/>";
foreach ($result as $key => $val)
{
echo "<br/>Gruppe $key :<br/>";
if (is_array($val))
{
foreach ($val as $subkey => $subval)
{
echo " Teilgruppe
$subkey => $subval";
}
} else {
echo "$val<br/>";
}
}
}
} else {
echo "Keine Übereinstimmung gefunden";
}
} else {
echo "Kein Muster angegeben.";
}
?>
</body>
</html>
Nun bestand das Problem das mir mein Xampp und mein Webspace die ganze Zeit folgendes Problem angezeigt haben
Parse error: syntax error, unexpected $end in /users/exo/www/RegexTest.php on line 60
So wie ich das verstanden hatte fehlte da wohl eine Klammer oder ein Anführungszeichen. Im Editor war der PHP Teil nach der Tabelle auch nicht weiter farbig hervor gehoben. Nach Stundenlangen Recherchieren stieß ich dann auf einen ähnlichen Fall und habe ihn auf meinen Fall angewendet.
Ich habe folgendes am Quellcode geändert:
- Code: Select all
echo <<<FORM
<form action="{$_SERVER['PHP_SELF']}" method="post">
//abgeändert zu:
echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post">
//und zum Schluß der Tabelle habe ich folgendes geändert:
</form>
FORM;
//abgeändert zu:
</form>';
Ich erspare mir an dieser Stelle einmal den gesammten Quellcode zu posten. Bei bedarf hole ich es gerne nach.
Nun aber zu meiner Frage:
Die Übung, so wie sie im Buch beschrieben war, hat nicht Funktioniert. Stammt das aus einer älteren Version von PHP (Lernbuch in PHP5) oder hab ich da was durcheinander gebracht bzw. habe ich dort im ersten Quellcode irgendeinen Fehler übersehen gehabt? Hatte ja wie gesagt stundenlang den Code durchforstet ob ich eine Klammer falsch gesetzt habe oder nicht geschlossen oder ob ich ein Anführungszeichen vergessen hatte.
Vielen Dank für eure Aufmerksamkeit und bis bald
Echse