Вы можете использовать понимание списка:
def remove_values_from_list(the_list, val):
return [value for value in the_list if value != val]
x = [1, 2, 3, 4, 2, 2, 3]
x = remove_values_from_list(x, 2)
print x
# [1, 3, 4, 3]
Вы должны избегать этого (в конце вашего кода):
{?>
и это:
<?php}
Вы не должны устанавливать скобки непосредственно близко к открытому / close php
, но он разделен пробелом:
{ ?>
<?php {
также избегает <?
и использует <?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.ini
.
Найти файл php.ini см. в Чувак, где мой php.ini?
, затем откройте его с помощью вашего любимого редактора.
Найдите свойство short_open_tag
и примените следующее изменение:
; short_open_tag = Off ; previous value
short_open_tag = On ; new value
<? ?>
(обратите внимание, что отсутствует php
). Мне поручено добавлять или изменять функции, и обычно не рекомендуется просто менять все i> только на одну или две функции. Ваш ответ действительно помог.
– Salehen Rahman
11 February 2016 в 19:54
Избегайте этого <? } ?>
, убедитесь, что вы положили <?php } ?>
Просто зайдите в php.ini, затем найдите short_open_tag= Off
в short_open_tag= On
Я столкнулся с этой проблемой, когда оставил php foreach: тег закрыт.
<?php foreach($many as $one): ?>
Закрытие его с помощью после устранения синтаксической ошибки: unexpected end of file
<?php endforeach; ?>
Надеюсь, что это поможет кому-то
Кроме того, в другом случае, когда трудно определить, есть ли у вас файл с только функцией, я знаю, что это не обычный случай использования, но он раздражает и должен был обнаружить ошибку.
<?php
function () {
}
Файл, приведенный выше, возвращает erro Parse error: syntax error, unexpected end of file in
, а ниже - нет.
<?php
function () {
};
Убедитесь, что вы закрыли свой класс.
Например, если у вас есть класс контроллера с методами, и случайно вы удаляете конечную скобку, которая закрывает весь класс, вы получите эту ошибку.
class someControler{
private $varr;
public $varu;
..
public function method {
..
}
..
}// if you forget to close the controller, you will get the error
if
. Спасибо за Ваш ответ.
– pgr
10 March 2017 в 10:40
также, найдите комментарий //, который разбивает закрытие фигурной скобки
if (1==1) { //echo "it is true"; }
, закрывающая фигурная скобка не будет правильно закрывать условный раздел, а php не будет правильно обработать оставшуюся часть кода.
У меня была такая же ошибка, но я исправил ее, изменив php.ini и / или отредактировав файл PHP!
blockquote>Есть два разных способа обойти синтаксис синтаксического анализа.
Способ 1 (ваш файл PHP)
Избегайте в вашем файле PHP этого:
<? } ?>
Убедитесь, что вы так выразились
<?php ?>
Ваш код содержит
<? ?>
ПРИМЕЧАНИЕ: Отсутствует
< / blockquote>php
после<?
!Способ 2 (файл php.ini)
Существует также простой способ решить вашу проблему. Найдите значение свойства
short_open_tag
(используйте в текстовом редакторе с помощьюCtrl + F
!) [/ G2] и примените следующее изменение:; short_open_tag = Off
-
short_open_tag = On
Согласно описанию основных директив php.ini ,
short_open_tag
позволяет использовать короткий открытый тег (<?
), хотя это может вызвать проблемы при использовании с xml (<?xml
не будет работать, если это включено)!ПРИМЕЧАНИЕ: Перезагрузите свой сервер (например, Apache) и перезагрузите веб-страницу PHP в своем браузере.
< / BLOCKQUOTE>
Если ваш файл parse_ini_file ($ file) или подпрограмма испускает файл .ini, проверьте, не указаны ли данные в файле ini. Неучетные данные вызовут эту ошибку. Ex; data1 = test вызовет ошибку, data1 = "test" не будет.
<? } ?>
вместо<?php } ?>
. – Adam Libuša 7 November 2013 в 15:06