我正在为客户构建内部CMS.我不知道是否有一种基于URL加载页面的方法,而不是为每个页面创建新的PHP文件. 所以,如果我访问www.mysite.com/new-page,我希望这只是对我的模板,内容等的引用.而不是实际的.php文件. 对不起,如果我没有正确解释,但是我很难解释. 谢谢. 解决方案 听起来您需要基本上,每个URL都将重定向到一个PHP页面,该页面确定该如何处理.您可以使用apache RewriteEngine on RewriteBase / RewriteRule !\.(js|ico|txt|gif|jpg|png|css)$ index.php 将除静态内容文件以外的所有内容重定向到index.php.根据需要进行调整. 如果您只想影响URL/新页面,请尝试以下内容: RewriteEngine on RewriteBase / RewriteRule ^new-page/ myhandler.php 以"新页"
以下是关于 path 的编程技术问答
我遇到了extbase/fluid扩展创建的奇怪问题. 我使用Typo3 6.1 我在Dev Server上使用后端模块进行了扩展(相同的配置/硬件,然后prod).该模块与模板的路径完美工作: myext/resources/私人/后端/模板 myext/resources/private/backend/布局 myext/resources/private/backend/partials 之后,我在Ext Manager中下载了扩展程序的邮政编码,然后在Prod服务器上下载了安装程序.现在我无法使用扩展名,因为模块找不到模板. 我以相同的方式配置了扩展名.模板在正确的路径中. 我测试以将文件夹移至父级: myext/resources/私人/模板 myext/resources/私人/布局 myext/resources/私人/partials 使用此功能,但是在模块配置中,我指定了"后端/"文件夹的正确路径. 我不会在私有文件夹中
配置: Mamp Pro PHP 5.6.1 Mac OS X El Capitan 我需要将/user/local/bin添加到PHP可以访问 的系统路径 我尝试使用putenv() ,但似乎我无法使用putenv() 更改php中环境变量路径的值 putenv('PATH=' . '/user/local/bin' . PATH_SEPARATOR . getenv('PATH') ); 不更改值 这与其他变量一起使用 路径似乎受到保护,我无法弄清楚我可以在哪里取消保护 - php ini设置似乎没有任何有关非安全模式envs的东西. 那会和任何人响起吗? 谢谢 解决方案 可能受到新的"无根"或SIP(系统完整性保护)保护.我不建议您禁用此功能,除非您真的知道您在做什么,但是禁用它可以解决您的问题. 更多信息在这里(Wikipedia页面) 以及如何
我知道"一定已经改变了一些东西",但我的代码似乎无缘无故地破裂了. 我的服务器目录结构是这样的: / /脚本 /审核 /其他_things 我在"脚本"文件夹中有一个脚本(例如,它称为"/scripts/myscript.php"),该文件夹使用curl收集来自网页的数据,并保存在"审核"中读取的网页的日期副本"文件夹. 要写入审计文件夹,我使用了 $ fh = fopen(" ./审核/2008-09-09-09-183000.backup.log"," w"); 但是停止工作,投掷 [function.fopen]:无法打开流:/home/web/website.co.uk/audit/2008-09-09-09-09-183000.backup.log in 353 我已经通过将路径更改为 来解决了 " ../审核/2008等来自" ./audit/2008"(这是两个完整的停止/时期,而不是一个时期) 逻辑指出,
在包含AJAX请求的JavaScript文件中,相对于URL是什么?我有包含Alpha和Bravo目录的www目录. Alpha中的JavaScript文件和包含IT的HTML文件和在Bravo中处理请求的PHP. 在JavaScript文件中,我有xmlhttp.open("GET", "CheckServer.php?name="+name,true);,但我认为CheckServer.php不正确.我尝试过../bravo/CheckServer.php,但它不起作用. 我不使用jQuery,我正在使用Wamp. 加上,我可以使用任何麻烦拍摄工具来查看是否首先访问了用于处理请求的PHP页面? 编辑:我打开了控制台,它说我在JavaScript文件中调用的功能未定义.仅当我将.js文件移至其他目录时才发生. (我修改了标签:. 编
如何确定Linux盒上的最大文件名长度? 在PHP编程语言中首选. 解决方案 您想要您也可以向 - 将实用程序接口列为相同的功能.在系统上尝试此操作: $ getconf NAME_MAX /tmp $ getconf PATH_MAX /tmp 其他解决方案 无需编程确定它.是255个字节. 编辑:您可以在很少的文件系统上使用更长的文件名(我相信Reiser),但是如果您坚持使用255,则可以在任何Linux安装上使用. 其他解决方案 最大的文件长度最大 Linux文件系统为255.最好将其用作通用常数和修改以适合您在Linux中的已知文件系统的最大文件长度.这是一个不错的可以使用文件系统的比较.最大文件长度在此处列出.
我想使用PHP读取.gitignore配置忽略的所有文件和路径.就像git的方式一样. 可以重复读取目录,并使用每个文件过滤的正则表达式.但是,如果路径有太多文件,那是无效的. 任何读取目标文件和路径的好方法是.gitignore? 解决方案 您需要进行几个步骤: 1-查找.gitignore文件 每个文件夹都可以有一个,所以不要假设一个文件夹. 和子模型具有.git链接到主.git文件夹,因此也要警惕停止太早. 它会像: 一样 function find_gitignore_files($dir) { $files = array(); while (true) { $file = "$dir/.gitignore"; if (is_file($file)) $files[] = $file; if (is_dir("$dir/.git") && !is_link("$dir/.git")) break;
basename 在PHP中,PHP返回路径的文件名. 在mysql查询的SELECT语句中,有没有办法做到这一点?拥有这个很高兴,所以我可以直接应用ORDER BY. 解决方案 您可以使用 SUBSTRING_INDEX SUBSTRING_INDEX 函数要在特定的定界符之后获取最后一个元素,在这种情况下为斜杠.这也可以与后斜线一起使用,只需在这种情况下使用"\\". SELECT Path, SUBSTRING_INDEX(Path, '/', -1) AS FileName FROM files 示例结果行: path = downloads/apps/file1.exe 文件名= file1.exe 其他解决方案 使用上面的答案,可以将其作为mySQL函数: CREATE DEFINER=`root`@`%` FUNCTION `basename`(path VARCHAR(512)) RETURNS var
我简单的关注是能够处理跨OSS的路径,主要是在目录分离器的背部和前向斜线方面. 我正在使用DIRECTORY_SEPARATOR,但是: 很长时间写 路径可能来自不同的来源,不一定由您控制 我目前正在使用: function pth($path) { $runningOnWindows = (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN'); $slash = $runningOnWindows ? '\\' : '/'; $wrongSlash = $runningOnWindows ? '/' : '\\' ; return (str_replace($wrongSlash, $slash, $path)); } 只是想知道我正在重塑的语言中没有任何现有的, 是否已经有一个内置的PHP函数来执行此操作? 解决方案
echo __ file __ ; 给我: C:\ easyphp-devserver-13.1VC9 \ data \ localweb \ projects \ foldername \ index.php 我只想在没有路径的情况下获取文件名. 我想单独获取index.php. 有什么想法吗? 解决方案 这将执行您想要的事情: echo basename(__FILE__); 其他解决方案 使用 pathinfo()函数,那么您可以得到filename通过basename $path_parts = pathinfo(__FILE__); echo $path_parts['basename'];
我在php 5.2.4(无安全_mode)Linux服务器上有以下代码: mkdir( $path, 0777, true ); 当我输入如下路径时: '/path/to/create/recur/ively/' 除了最后一个... 当我添加另一个目录时: '/path/to/create/recur/ively/more/' 再次创建了所有路径,除了最后一个... 在有没有落后的情况下尝试了 任何1可以在这里启发我吗? 解决方案 好的解决方案如下:没有问题. 我没有孤立地测试代码,但仅假定以下代码没有对目录结构做任何事情... 我发现该目录后来被代码本身删除. 无论如何,教训... 其他解决方案 尝试从路径上删除后斜线. 至少在mkdir文档的示例中使用它. 我个人不记得遇到问题,但是我在通常的情况下不附加拖延,所以去尝试一下. 更新: 我只是尝试了您的代码,它创建了包括最后一个目录的每
每当我使用php(经常)时,我通常会在Windows盒上工作,但是我(尝试)开发平台不可思议的应用程序;一个主要问题是使用目录分离器. 众所周知,在PHP的Windows环境中进行任何文件系统工作,您可以使用前向斜线代替向后的斜线,并且PHP将其分类在引擎盖下.当涉及使用字符串文字将路径传递到fopen()或其他方面时,一切都很好.但是,当检索路径时,无论是__FILE__还是使用realpath()进行扩展,检索到的路径当然是使用适当的斜线.另外,我注意到拖延斜线的一些矛盾之处.一次或两次__DIR__加入了一个( a后斜线)和realpath()(我更喜欢拖延的斜线,但不愿意间隔)) 这显然是字符串比较的问题,因为而不是这样做: compare_somehow('path/to/file.php', __DIR__); 为了可靠性,我必须去: compare_somehow('path/to/file.php', rtrim(strtr(__DIR__,
最好的方法是什么: 我有Ajax请求的路径 例如. dir1/dir2/dir3/dir4 我需要在我的网页上介绍它: dir1 >> dir2 >> dir3 >> dir4 每个人都是html锚固标签,href属性为 /dir1 /dir1/dir2 /dir1/dir2/dir3 /dir1/dir2/dir3/dir4 分别 实现这一目标的最优雅和有效的方法是什么? 到目前为止,我正在做这样的事情,我认为这确实很脏: metadata["path"]); foreach ($dirs as $key=>$val) { if ($val == '') { continue; } $pathArray = arr
我正在开发一个名为 php-app-config 的PHP组件 href =" https://getComposer.org/" rel =" noreferrer"> Composer . 该组件曾经是另一个项目要求并使用composer install安装的,应在 root软件包,类似root_package/config/config.yml. ./config/config.yml仅存在于根软件包中,而不应在" require:" composer.json中导入的组件中存在: : ▾ root-package/ ▸ bin/ ▸ build/ ▾ config/ ▸ locales/ config.yml ▸ src/ ▸ tests/ ▾ vendor/ ▸ composer/ ▸ phpdocumentor/ ▸ phpspec/ ▸ phpunit/ ▾ robotdanc
我知道这对所有经验丰富的开发人员来说可能都是简单的. 我陷入了一个问题,即如何在引导文件中设置路径 喜欢...... 当我在本地工作...我使用此路径 $filenam = "C:/xampp/htdocs/application/public/pdf_profile/$pdfname.html"; 上传此特定文件...我需要进行更改..在此路径上.. $filenam = $_SERVER['DOCUMENT_ROOT']."/public/pdf_profile/$pdfname.html"; 我想知道是否有任何解决方案再次防止更改n.居住 基本上正在使用Zend 预先感谢! 解决方案 在您的index.php 中定义一个常数 define('BASE_PATH', realpath(dirname(__FILE__))); 您可以像应用程序一样使用此常数 中的任何地方 $filename = BASE_PATH . '/pd
我将图像路径作为服务器磁盘上的绝对文件路径存储: /var/www/u1234567/data/www/somesampledomain.xyz/mediaimages/48fa6c736b75e1da485656e97b7d76f9.png 我想将此绝对路径 - >转换为: https://somesampledomain.xyz/mediaimages/48fa6c736b75e1da485656e97b7d76f9.png 我只能用/var/www...修剪这个不自在的部分.但是,是否有更多的Univirsal方式,而没有/var/www/u1234567/data/www/>? 的硬码部分 解决方案 我发现在全局配置文件中拥有以下内容: define('BASE_DIR', '/var/www/u1234567/data/www/somesampledomain.xyz/'); define('BASE_URL', 'https://somesam
在stackoverflow.com上编辑问题时,您将被重定向到这样的URL: https://stackoverflow.com/posts/posts/1807421/Edit ,但通常应该是 或 https://stackoverflow.com/posts/posts/edit.php?id=1807491 P> 如何 https://stackoverflow.com/posts/1807421/edit 创建? 我知道stackoverflow.com不是通过使用PHP创建的,但我想知道如何在PHP中实现这一目标? 解决方案 使用Apache和PHP,您可以使用RewriteEngine On RewriteRule ^/posts/(\d+)/edit /posts/edit.php?id=$1 此查找"清洁"表单的URL,然后重写它们,使其内部重定向到特定的PHP脚本. 经常使用这样的规则将所有请求路由到一个通用控制器
我目前正在编写用于图形的PHP库.我已经成功地实现了单路Dijkstra的算法,但是现在很难在路径重建阶段实施多路径版本. 以下图: 为了简单起见,此图仅具有从顶点a到j的路径,经过多个其他顶点,这些顶点都是成本相等的,即每条路径的边缘重量添加到10个. dijkstra正确产生以下输出(这是数组$this->prev): Array ( [A] => [B] => Array ( [0] => A ) [C] => Array ( [0] => A ) [D] => Array ( [0] => C ) [E] => Array ( [0] => C ) [F] => Array
shell_exec("Rscript C:\R\R-3.2.2\bin\code.R "); 这是对脚本的调用.在调用上面的脚本时,发生错误. 我试图从上述路径调用我的R脚本,但没有显示输出.在检查PHP的错误日志时,它说" rscript"不被认为是内部或外部命令,可操作程序或批处理文件.该脚本在rstudio上正常工作,但在命令行上不运行. 解决方案 在Windows中添加Rscript路径: 中的环境变量 转到Control面板\ System and Security \ System,然后单击高级系统设置,然后单击"环境变量",单击下部框中的路径,编辑,添加" C:\ r \ r-\ r-3.2.2 \ bin" 重新启动所有内容.应该很好.那你应该能够做 exec('Rscript PATH/TO/my_code.R') 而不是输入Rscript的完整路径.如果您的php文件在同一目录中,则不需要您的my_code.r脚本的路径.