关于php报错的一个疑问
我是用的是phpstudy2014的套件
但是我在部分地方做了修改使其能够同时兼容php5.3和5.2.7版本
修改地方为 vhosts.conf
<code><virtualhost> LoadFile "D:/phpStudy/php52/php5ts.dll" LoadModule php5_module "D:/phpStudy/php52/php5apache2_4.dll" <ifmodule php5_module> PHPIniDir "D:/phpStudy/php52/" </ifmodule> LoadFile "D:/phpStudy/php52/libmysql.dll" LoadFile "D:/phpStudy/php52/libmcrypt.dll" <filesmatch> SetHandler application/x-httpd-php </filesmatch> DocumentRoot "F:\github\xinyupingtai" ServerName d.hainuo.info ServerAlias hainuo.info </virtualhost> <directory> Options FollowSymLinks ExecCGI AllowOverride All Order allow,deny Allow from all </directory> </code>
这个是5.2的配置文件,之前因为使用了
error_reporting(0);
将所有错误屏蔽掉,但是因为一些原因(后来才发现是我使用了一个未引入的方法)导致程序输出空白,于是我将错误报告改为error_reporting(E_ALL);
但是我发现结果令我很崩溃,百度浏览器直接团出错误页,ie11给我的还是空白页。
类的导入原理是
function __autoload($name) { $class_file = d('./class/' . $name . '.php'); if (file_exists($class_file)) { include($class_file); } else { if (strpos($name, '_') !== false) { $name = strtr($name, '_', '.'); if (!loadLib($name)) { //exit('class '.$name.' not include'); return false; } } else { //exit('class '.$name.' not include'); return false; } } } function loadLib($libName, $returnClass = false) { global $_libraryLoadLog; if (!isset($_libraryLoadLog[$libName])) { $libPath = WROOT . 'class' . D . strtr($libName, '.', D) . '.php'; if (file_exists($libPath)) { if (($f = strrpos($libName, '.')) !== false) { $libP = substr($libName, 0, $f) . '.'; //library parent } else { $libP = ''; } include($libPath); $_libraryLoadLog[$libName] = strtr($libName, '.', '_'); } else { $_libraryLoadLog[$libName] = ''; } } if ($_libraryLoadLog[$libName]) { if ($returnClass) { $className = $_libraryLoadLog[$libName]; $class = new $className(); return $class; } else { return true; } } return false; }
我是用了一个方法是 $dom=file_get_html(url);
此方法是simple_html_dom 类中自带的
simpe html dom类链接 点击可以查看这个类的源代码
当我使用var_dump一点点的测试出原因后才明白原来是我的那个dom类没有导入
把这个问题写在这里,是想问各位大大,
1、遇到这种情况,你们是怎么调试程序的?
2、为什么指定了输出错误,却仍然是空白,即php不报错呢?
3、如果第二条不好回答,可否给解释一下php的报错原理
6.27修改
因为楼下提供的方法并不怎么适用
一气之下我将error_reporting(E_ALL);
注释掉,妈呀,竟然报错了
Parse error: syntax error, unexpected '}' in F:\*****\lib\dialog.php on line 1018
不过还是感谢各位对我的帮助。
回复内容:
我是用的是phpstudy2014的套件
但是我在部分地方做了修改使其能够同时兼容php5.3和5.2.7版本
修改地方为 vhosts.conf
<code><VirtualHost *:80> LoadFile "D:/phpStudy/php52/php5ts.dll" LoadModule php5_module "D:/phpStudy/php52/php5apache2_4.dll" <IfModule php5_module> PHPIniDir "D:/phpStudy/php52/" </IfModule> LoadFile "D:/phpStudy/php52/libmysql.dll" LoadFile "D:/phpStudy/php52/libmcrypt.dll" <FilesMatch "\.php$"> SetHandler application/x-httpd-php </FilesMatch> DocumentRoot "F:\github\xinyupingtai" ServerName d.hainuo.info ServerAlias hainuo.info </VirtualHost> <Directory "F:\github\xinyupingtai"> Options FollowSymLinks ExecCGI AllowOverride All Order allow,deny Allow from all </Directory> </code>
这个是5.2的配置文件,之前因为使用了
error_reporting(0);
将所有错误屏蔽掉,但是因为一些原因(后来才发现是我使用了一个未引入的方法)导致程序输出空白,于是我将错误报告改为error_reporting(E_ALL);
但是我发现结果令我很崩溃,百度浏览器直接团出错误页,ie11给我的还是空白页。
类的导入原理是
function __autoload($name) { $class_file = d('./class/' . $name . '.php'); if (file_exists($class_file)) { include($class_file); } else { if (strpos($name, '_') !== false) { $name = strtr($name, '_', '.'); if (!loadLib($name)) { //exit('class '.$name.' not include'); return false; } } else { //exit('class '.$name.' not include'); return false; } } } function loadLib($libName, $returnClass = false) { global $_libraryLoadLog; if (!isset($_libraryLoadLog[$libName])) { $libPath = WROOT . 'class' . D . strtr($libName, '.', D) . '.php'; if (file_exists($libPath)) { if (($f = strrpos($libName, '.')) !== false) { $libP = substr($libName, 0, $f) . '.'; //library parent } else { $libP = ''; } include($libPath); $_libraryLoadLog[$libName] = strtr($libName, '.', '_'); } else { $_libraryLoadLog[$libName] = ''; } } if ($_libraryLoadLog[$libName]) { if ($returnClass) { $className = $_libraryLoadLog[$libName]; $class = new $className(); return $class; } else { return true; } } return false; }
我是用了一个方法是 $dom=file_get_html(url);
此方法是simple_html_dom 类中自带的
simpe html dom类链接 点击可以查看这个类的源代码
当我使用var_dump一点点的测试出原因后才明白原来是我的那个dom类没有导入
把这个问题写在这里,是想问各位大大,
1、遇到这种情况,你们是怎么调试程序的?
2、为什么指定了输出错误,却仍然是空白,即php不报错呢?
3、如果第二条不好回答,可否给解释一下php的报错原理
6.27修改
因为楼下提供的方法并不怎么适用
一气之下我将error_reporting(E_ALL);
注释掉,妈呀,竟然报错了
Parse error: syntax error, unexpected '}' in F:\*****\lib\dialog.php on line 1018
不过还是感谢各位对我的帮助。
要想让 php 把错误输出到网页,需要把 php.ini 的 display_errors = On
。这个选项仅仅用于本地调试,千万不要在线上网站上打开。
php.ini 里面的 error_log = /your/log/path
选项可以控制错误日志输出到哪个文件,自己设置到一个方便查看的地方之后就可以不断去查看了。
一般调试错误就是用错误日志结合自己输出的 log,当然,如果在本地跑还可以用 Zend Studio IDE 的各种调试功能。
<code>if (!ini_get('display_errors')) { ini_set('display_errors', true); } </code>

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

In diesem Kapitel werden wir die Umgebungsvariablen, die allgemeine Konfiguration, die Datenbankkonfiguration und die E-Mail-Konfiguration in CakePHP verstehen.

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Um in cakephp4 mit Datum und Uhrzeit zu arbeiten, verwenden wir die verfügbare FrozenTime-Klasse.

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

In diesem Kapitel lernen wir die folgenden Themen im Zusammenhang mit dem Routing kennen.

CakePHP ist ein Open-Source-Framework für PHP. Es soll die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich vereinfachen. CakePHP basiert auf einer MVC-ähnlichen Architektur, die sowohl leistungsstark als auch leicht zu verstehen ist. Modelle, Ansichten und Controller gu

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

Der Validator kann durch Hinzufügen der folgenden zwei Zeilen im Controller erstellt werden.
