私はエラーを得ました:
Parse error: syntax error, unexpected end of file in the line
このコードでは:
<html>
<?php
function login()
{
// Login function code
}
if (login())
{?>
<h2>Welcome Administrator</h2>
<a href=\"upload.php\">Upload Files</a>
<br />
<a href=\"points.php\">Edit Points Tally</a>
<?php}
else
{
echo "Incorrect login details. Please login";
}
?>
Some more HTML code
</html>
どうしたの?
あなたはこれを避けるべきです(あなたのコードの終わりに):
{?>
この:
<?php}
大括弧をopen/close php
タグのすぐ近くに置かないでください。ただし、スペースで区切ります。
{ ?>
<?php {
また<?
を避けて<?php
を使う
同じエラーがありましたが、php.ini
ファイルを修正することで修正しました。
Php.iniファイルを探してください。 Dude、php.iniはどこにありますか。
それからあなたの好きなエディタでそれを開いてください。
short_open_tag
プロパティを探して、次の変更を適用します。
; short_open_tag = Off ; previous value
short_open_tag = On ; new value
同じエラーが発生しましたが、php.iniを変更したりPHPファイルを編集したりして修正しました。
解析エラー構文を回避するには、2つの異なる方法があります。
PHPファイルでこれを避ける:
<? } ?>
必ずこのように置いてください
<?php ?>
コードに
<? ?>
が含まれています注:
<?
の後の欠落しているphp
!
問題を解決する簡単な方法もあります。 short_open_tag
プロパティ値を検索します(Ctrl + F
!でテキストエディターで使用)、次の変更を適用します。
; short_open_tag = Off
に
short_open_tag = On
コアphp.iniディレクティブの説明 によると、short_open_tag
では短いオープンタグ(<?
)を使用できますが、これはxml(<?xml
で使用すると問題が発生する可能性がありますこれを有効にすると機能しなくなります)!
注:サーバーのリロード(例:Apache)など、ブラウザでPHPウェブページをリロードします。
Php.iniに行き、short_open_tag= Off
がshort_open_tag= On
に設定されているのを見つけてください。
クラスを閉じたことを確認してください。
たとえば、メソッドを持つコントローラクラスがあり、誤って最後の括弧を削除すると、クラス全体が閉じられ、このエラーが発生します。
class someControler{
private $varr;
public $varu;
..
public function method {
..
}
..
}// if you forget to close the controller, you will get the error
また、//中括弧を閉じるコメント//を探す
if (1==1) { //echo "it is true"; }
閉じ中括弧は条件付きセクションを正しく閉じず、phpは残りのコードを適切に処理しません。
Php foreach:tagを閉じていないときにこの問題に遭遇しました。
<?php foreach($many as $one): ?>
以下を使用してそれを閉じることは構文エラーを解決しました:unexpected end of file
<?php endforeach; ?>
誰かに役立つことを願っています
これも避ける<? } ?>
<?php } ?>
を必ず入れてください
私はいくつかのエラーを見ましたが、私は以下でそれを修正しました。
これが間違っていると私が得たものです。
if (login())
{?>
<h2>Welcome Administrator</h2>
<a href=\"upload.php\">Upload Files</a>
<br />
<a href=\"points.php\">Edit Points Tally</a>
<?php}
else
{
echo "Incorrect login details. Please login";
}
これは私がそれをしたであろう方法です:
<html>
some code
<?php
function login()
{
if (empty ($_POST['username']))
{
return false;
}
if (empty ($_POST['password']))
{
return false;
}
$username = trim ($_POST['username']);
$password = trim ($_POST['password']);
$scrambled = md5 ($password . 'foo');
$link = mysqli_connect('localhost', 'root', 'password');
if (!$link)
{
$error = "Unable to connect to the database server";
include 'error.html.php';
exit ();
}
if (!mysqli_set_charset ($link, 'utf8'))
{
$error = "Unable to set database connection encoding";
include 'error.html.php';
exit ();
}
if (!mysqli_select_db ($link, 'foo'))
{
$error = "Unable to locate the foo database";
include 'error.html.php';
exit ();
}
$sql = "SELECT COUNT(*) FROM admin WHERE username = '$username' AND password = '$scrambled'";
$result = mysqli_query ($link, $sql);
if (!$result)
{
return false;
exit ();
}
$row = mysqli_fetch_array ($result);
if ($row[0] > 0)
{
return true;
}
else
{
return false;
}
}
if (login())
{
echo '<h2>Welcome Administrator</h2>
<a href=\"upload.php\">Upload Files</a>
<br />
<a href=\"points.php\">Edit Points Tally</a>';
}
else
{
echo "Incorrect login details. Please login";
}
?>
some more html code
</html>
私の場合、犯人はファイルの最後の行にある<?php
タグの唯一のオープニングです。どうやらそれは問題なくいくつかの構成で動作しますが、他のもので問題を引き起こします。
使用しているparse_ini_file($ file)またはルーチンが.iniファイルを処理している場合は、データがiniファイルで引用されているかどうかを確認してください。引用符で囲まれていないデータはこのエラーを引き起こします。 Ex; data1 = testはエラーを引き起こしますが、data1 = "test"は起こりません。
IF/ELSE命令を2つの別々のブロックに分割することはできません。 HTMLコードを印刷する必要がある場合は、echoを使用します。
<html>
<?php
function login()
{
// Login function code
}
if (login())
{
echo "<h2>Welcome Administrator</h2>
<a href=\"upload.php\">Upload Files</a>
<br />
<a href=\"points.php\">Edit Points Tally</a>";
}
else
{
echo "Incorrect login details. Please login";
}
?>
Some more HTML code
</html>
また、見つけることが難しいもう一つのケースは、あなたが関数だけを持つファイルを持っているときです、私はそれが一般的なユースケースではないことを知っていますが、それは厄介でエラーを見つける必要がありました。
<?php
function () {
}
上記のファイルはerro Parse error: syntax error, unexpected end of file in
を返しますが、以下のファイルは返しません。
<?php
function () {
};