Ⅰ 关于php中include的路径问题。大家说说自己的解决办法,我现在用一个常量表示路径,有更好的吗
给你看篇文章,希望对你有帮助:
引言:
关于PERL与PHP中的包含路径一直是一个比较难解的问题,主要是与操作系统和WEB服务器有关,不可能非常智能化的解决这个路径问题。相对于PERL,PHP的路径好得多,解决起来也容易得多,因为PHP的相对路径在PHP程序中的任何场合都可以使用,而不象PERL在某些语句中必须用绝对路径而导致移植的极其复杂。
基于此,在PHP中,我设计了一个绝对稳妥的解决方案,如下所述。
原则:
使用相对路径,但在相对路径中用绝对路径(有点绕,待会儿详解),一是可以保证可移植性,二是可以方便地修改,三是公式化且结构清晰明了,易于扩展。
步骤详解:
1、先确定好一个程序的根目录,注意是文件系统下的,不是WEB服务器下的虚拟目录,不过一般情况下该目录下的子目录的相对路径与URL下该目录的虚拟子目录是相同的。
2、在定义好的程序根目录下的每个子目录下(其实不一定是每个,根据需要)建立一个settings.php,里面定义一个变量或是常数(常数比较好,因为作用域比较大),如APPROOT,但这个APPROOT却不是绝对路径,而是该目录相对于你指定的程序根目录的相对路径。
3、在此目录下的所有程序入口文件(也即第一个包含其它文件的文件,或是允许直接在浏览器中浏览的文件)中第一句写上require_once('settings.php');,但要注意,所有被包含文件最好不要加此句——其实加上也可以,因为你可以在settings.php中写上 if(!defined(APPROOT)) define(APPROOT, '../..');这类的语句以防重定义。
4、如果你要包含其它文件,无论是直接还是间接地包含,都可以写成 include(APPROOT.$path);,这里$path为被包含文件相对于你所指定的程序根目录的绝对路径。
原理:
定下的程序根目录是相对路径,但具体的目录位置是相对于那个根目录的绝对路径,两者组合起来就是具体文件相对于程序根目录的相对路径了。例如目录c:\wwwroot\app为你指定的程序根目录,然后有这么两个文件c:\wwwroot\app\a\index.php和c:\wwwroot\app\b\inc.php。对子目录a来说,APPROOT是'..',而对程序根目录来说,inc.php的绝对路径是$path='/b/inc.php',两者组合为'../b/inc.php'。如果要在index.php中包含inc.php就要写成include('../b/inc.php');,而这个路径不就正好是刚才组合而成的APPROOT.$path吗?
结论:
经过以上处理,各个路径绝对整齐划一,唯一罗嗦一点的就是每个目录下要定义一下这个APPROOT,但每个目录下只需在本目录的settings.php中定义一次就足够了。如果你整个程序只有一个入口文件,如index.php,而其它文件全部都是直接或是间接地被包含进这个唯一的入口文件的话,就只需在index.php的所在目录下的settings.php中定义一次就OK了。如果有朋友做过Delphi的工程并对工程文件研究过的话,就会发现我刚才说的一个程序只有一个主入口文件的情况与Delphi的工程十分相似,因为Delphi除了一个主程序文件(dpr文件),其余的全部是单元文件或是资源文件,都不能独立执行。在PHP中,如果这种情况出现,只需定义一次APPROOT,并在主程序文件中第一句话写成require_once('settings.php');,而以后所有的包含全都可以用include(APPROOT.$path);,就保证不会有任何问题,除非你不会写这个“包含文件相对于程序根目录的绝对路径”$path。
Ⅱ 跪求delphi上传文件到PHP的代码
这个好办,IdHTTP控件要放上,在哪个面板里记不得了慢慢找,
FormCreate是触发的事件,自己想怎么触发自己定这些不用说吧.
//delphi代码
procere TForm1.FormCreate(Sender: TObject);
var
AData: TIdMultiPartFormDataStream;
ARes: string;
begin
IdHTTP1.Request.ContentType:= 'multipart/form-data';
AData:= TIdMultiPartFormDataStream.Create;
AData.AddFile('myfile', 'a.txt', '');
AData.Position:= 0;
ARes:= IdHTTP1.Post('http://127.0.0.1/test.php', AData);
AData.Free;
end;
php里接收上传的文件与网页上传的那种一样
Ⅲ PHP开发都用什么IDE
zend studio业界公认的最专业最强大的,但不一定适合所有人
Eclipse 也不错。这个现在有多个版本的,比如PHP100的EclipsePHP Studio。
还有SUN的 NetBeans这个也很强大。简便,强大,免费(推荐)
还有phpdesigner 这个是用delphi开发,老外开发的,也不错,功能很强大的。还且很易用(推荐)
文本类的就推荐两个。UltraEdit-32公认的最强大的文本编辑器 还有一个Notepad++ 也很好用,我个人更喜欢Notepad++
Ⅳ php用什么idephp用什么开发工具比较好
PHP开发用什么IDE?
zendstudio是业内公认最专业最强大的,但不一定适合所有人。月食也不错。这个现在有好几个版本,比如PHP100的EclipsePHPStudio。
和SUN的NetBeans。这个也很厉害。简单、强大且免费(推荐)
还有phpdesigner,是用delphi开发的,外国人开发的。它也很好,很强大。并且易于使用(推荐)
推荐两个文本。UltraEdit-32是公认的最强大的文本编辑器,一个记事本也非常容易使用。个人比较喜欢Notepad的
phpstorm打不开?
PHPstorm只是一个IDE软件,如果是软件的问题,卸载了重装一下呗。反正也满快的。如果是项目的问题,把当前项目删除了,重新导入一下嘛。
如果只是开发PHP,建议你用SublimeText或notepad++这样的工具,轻小,打开文件的速度要远远超过那大型的IDE,因为大型的IDE都有调试什么的,但是开发PHP真的用不到。如果真的想调试,几个var_mp就差不多了
怎么用wampserver编写php?
wampserver只是一个部署php网站项目的部署工具,编写php请使用专门的ide工具,推荐使用phpstorm
Ⅳ php可以做医院HIS系统吗
当然可以啊,如果需要的话可以给你发个demo
Ⅵ delphi 异或加密 如何用PHP解密 如图
你看看下在的代码行不行 差不多这个意思了,如果有问题可以私信
functiondec($str)
{
$XorKey=array(1,2,3,4,5,6,7,8);//这个应当是密钥
$rt='';
$j=0;
for($i=1;$i<=strlen($str)/2;$i++)
{
$t=intval('0x'.substr($str,$i*2-1,2))^$XorKey[$j];
$rt=$rt.chr($t);
$j=($j+1)%8;
}
return$rt;
}
$ec='12345678';
echodec($ec);