php加载文件
不知道你说的命名空间是不是use之后直接加载的。
命名空间在你这个问题上是最简单,最直接的解决方案。
你已经实现这个了,改下就可以了
functionautoload($dir,$file){
include_once$dir.'/'.$file.'.class.php';
}
functionload_file($dir,$file){
spl_autoload_register('autoload');
}
2. PHP中如何导入PHP文件
include('1.php'); //受流程控制影响
require('1.php'); //无视流程控制,一出现就加载。
3. 如何设计一个php自动加载类
在php中,自动加载一般都是通过魔术方法__autoload来实现的,在程序中,当需要一个类的定义文件时(如实例化一个对象,集成自一个类),如找不到类定义文件时,就会自动触发__autoload方法,所以我们可以在该方法中编写代码完成类的加载。要编写代码实现类的自动加载,很重要的两点一是文件结构规划,二是类的命名,尤其是命名,从命名中要体现出该类的所属文件,比如PersonController,一看就知道是一个控制器,UserModel,一看便知是模型,这样就可以到对应的目录下去加载该类。针对你所列出的文件结构和文件命名,显然不符合上述规则,所以想通过__autoload实现自动加载有难度。
4. php加载不了更多版本
方法一(已通过测试)已经内置有php_curl.dll,在ext目录下,此DLL用于支持SSL和zlib.
1.在php.ini中找到有extension=php_curl.dll, 去掉前面的注释.
2.设置extension_dir=c:\php\ext, 刷新PHP页面时报错, 说找不到模块php_curl.dll.
拷贝php_curl.dll 到windows\system32,还是同样的错.
3.在网上找了一下,需要将:
libeay32.dll, ssleay32.dll, php5ts.dll, php_curl.dll
都拷贝到system32目录下,重启apache即可.
方法二也可试试:
1.这个php_curl.dll就依赖两个文件(ssleay32.dll和libeay32.dll)如果这两个文件没有配置对那么就会提示找不到此动态库,这两个文件在php的目录下面。
2.解决办法:在Apache的httpd.conf的文件中配置一下:
1
2
LoadFile "D:/webserver/php/ssleay32.dll"
LoadFile "D:/webserver/php/libeay32.dll"
3.然后重启一下apache服务就ok了。
在修改php.ini的时候会出现一些小问题 导致扩展无法加载
比如php.ini中明明开启了php_mysql.dll但是 运行项目的时候却报错说不支持php_mysql 这种情况一定是系统找不到php_mysql.dll这个文件
首先检查 php.ini 中的extension_dir的路径是否正确 注意斜杠方向
系统变量中要加D:\php5.5.38 和D:\php5.5.38 \ext
然后检查apache中的配置
如果配置都是正确 但还是报错,而且下图的loaded configuration file没有显示
运行phpinfo.php 如图php无法加载扩展的解决方法
表示系统可以加载php.ini这个文件,如果没有则表示该文件没有加载
最后有个细节要注意 php.ini是根据php.ini-development这个文件复制修改的 如果在删除development的时候留有空格 则php.ini是无法加载的
比如ini后面有空格 则这个文件就无法加载
5. php加载ts文件
php以ISAPI方式加载的时候选择ts文件。
不会出现数据不一致或者数据污染php以ISAPI方式加载的时候选择这个版本。
多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。
6. PHP新手,如何正确让服务器加载PHP文件(安装了MAMP)
1 打开【系统偏好设置】,选择【共享】
确保【互联网共享】处于关闭状态。
只要系统中从未安装过 MySQL,就可以继续。
2下载 MAMP 的最新版。
3下载完成后安装。
4 打开【应用程序】,找到【MAMP】文件夹,
双击打开文件夹,打开【MAMP】程序
5 弹出警告窗口,
选择【Launch MAMP】
6 浏览器会启动并显示一个欢迎页面,
你会发现浏览器地址栏中的 URL 以【http://localhost:8888】开头。
【localhost】 后的 【:8888】 字符串
表明 Web 服务器通过非标准端口 8888 监听请求。
7 打开 MAMP 控制面板,点击【Star Servers】
Apache Server 和 MySQL Server 旁的绿灯表明两台服务器都在运行。
单击【Preferences】,从打开的面板顶部选择【Ports】。
面板显示 Apache 和 MySQL 分别运行在端口 8888 和 8889 上。
8 单击【Set Web & MySQL Ports to 80 & 3306】。
数字更改为标准端口:Apache 为 80,MySQL 为 3306。
这样,你就可以更轻松地使用 Dreamweaver 进行开发。
9 单击【OK】,根据提示键入你的 Mac 密码。
MAMP 将停止并重新启动两台服务器。
10 当两个灯再次变绿时,单击【Open Start Page】。
此时,MAMP 欢迎页面将重新载入浏览器中。
这次,URL 中【localhost】后已没有了【 :8888】,也没有【:80】
因为端口 80 是默认值,添加【 :80】 没有必要,所以不添加它也没关系。
使用非标准端口时,只需要在冒号后跟数字即可。
11 单击 MAMP 菜单中的【phpinfo】链接。
你会看到一个显示 PHP 配置信息的页面:
12 至此,你已成功安装 PHP、MySQL 和 phpMyAdmin。
END
注意事项
注意:【步骤9】是最可能出错的地方。如果有任何其他程序正在使用端口 80,Apache 将无法重新启动。如果是这样,请确保【步骤1】中的共享处于关闭状态。另一个可能性是 Skype 正在使用端口 80。可在【Skype Preferences】的【Advanced】部分中更改端口-尝试将 42815 作为传入端口。
7. 如何在PHP文件中加载另一个网站里的PHP文件
你好,我是hicuizd,请问你是指在你、本地加载其他网站的网页吗?如果是这样的话是可以的,不过只能得到php编译之后的HTML脚本语言,如包含网络页面: <?$text = file_get_contents(" http://www..com "); echo $text; ?> 如果说你是指在本地包含本地另外一个网页文件叫read.php,那么这样是可以的哦,可以选用include函数进行包含,如:<?include('read.php');?>这样PHP是可以互相通信的啦。O(∩_∩)O~
8. PHP怎么自动加载同一目录下同一命名空间的类文件
自动加载的,只有在实例化时才会真的载入。实例化时,调用公共空间的方式是直接在元素名称前加
\
就可以了,否则PHP解析器会认为我想调用当前空间下的元素。
9. php 面向对象框架是怎么加载类文件的
有没有定义命名空间啊namespace,如果有这个的话,其下面的代码肯定有use某个类文件
10. php如何获取当前脚本所有加载的文件
get_included_files 返回被 include和require文件名的array
说明
get_included_files ( void ) : array
返回所有被 include、 include_once、 require 和 require_once 的文件名。
返回值
返回所有文件名称的 array。
脚本最初被称为”被包含的文件“,所以脚本自身也会和 include 系列函数引用的脚本列在一起,被多次 include 和 require 的文件在返回的 array 里只会列出一次。
(10)php加载文件扩展阅读:
程序示例
<?php
include 'test1.php';
include_once 'test2.php';
require 'test3.php';
require_once 'test4.php';
$included_files = get_included_files();
foreach ($included_files as $filename) {
echo "$filename ";
}
?>