Это означает, что вы либо используете одно и то же имя функции / класса дважды, и вам нужно переименовать один из них, или это потому, что вы использовали require
или include
, где вы должны использовать require_once
или include_once
.
Когда класс или функция объявляется в PHP, он неизменен и не может быть позже объявлен с новым значением.
Рассмотрим следующий код:
class.php
<?php
class MyClass
{
public function doSomething()
{
// do stuff here
}
}
index.php
<?php
function do_stuff()
{
require 'class.php';
$obj = new MyClass;
$obj->doSomething();
}
do_stuff();
do_stuff();
Второй вызов do_stuff()
приведет к получению ошибка выше. Изменяя require
на require_once
, мы можем быть уверены, что файл, содержащий определение MyClass
, будет загружен только один раз, и ошибка будет устранена.
Если пользователь выбирает файл через <input type="file">
, Вы можете читать и процесс что файл с помощью файл API .
Чтение или запись произвольных файлов не позволяются дизайном. Это - нарушение песочницы. От Википедия-> JavaScript-> безопасность :
JavaScript и DOM предоставляют потенциал злонамеренным авторам для поставки сценариев для работы клиентского компьютера через сеть. Авторы браузера содержат, это рискует использовать два ограничения. Во-первых, сценарии работают в песочнице, в которой они могут только выполнить связанные с сетью действия, не задачи программирования общего назначения как [1 115] файлы .
создания
ОБНОВЛЕНИЕ 2016 года : Доступ к файловой системе непосредственно возможен через файловая система API , которая является только поддерживается Chrome, и Opera и может закончить тем, что не был реализован другими браузерами (с исключение Края ). Для получения дополнительной информации см. ответ Kevin .
ОБНОВЛЕНИЕ Эта функция удалена начиная с Firefox 17 (см. https://bugzilla.mozilla.org/show_bug.cgi? id=546848).
<час>На Firefox (программист) можно сделать это из файла JavaScript:
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserWrite");
и Вам (пользователь браузера) предложат предоставить доступ. (для Firefox просто необходимо сделать это один раз во время, браузер запускается)
, Если пользователь браузера - кто-то еще, они должны дать разрешение.
Если Вы развертываетесь в Windows, Windows Script Host предложения очень полезный API JScript к файловой системе и другим локальным ресурсам. Слияние сценариев WSH в локальное веб-приложение не может быть столь изящным, как Вы могли бы пожелать, как бы то ни было.