我们假设我有以下文件 - template.php:
<?php $string = 'Hello World!'; ?>
<html>
<head>
<title>Test Page!</title>
</head>
<body>
<h1><?= $string; ?></h1>
<p>You should see something above this line</p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我知道我可以用来file_get_contents()将文件的内容作为字符串获取,然后我可以根据需要进行操作.但是,file_get_contents()不执行PHP语句.
我已成功使用cURL来访问文件的渲染版本,但它看起来相当缓慢和笨重,为页面的执行添加了相当多的时间 - 我想这是由于正在执行DNS查找.
那么,我怎样才能将内容template.php转换为字符串 - 同时在那里使用PHP?
我有以下PHP代码:
的index.php
<?php
spl_autoload_extensions(".php");
spl_autoload_register();
use modules\standard as std;
$handler = new std\handler();
$handler->delegate();
?>
Run Code Online (Sandbox Code Playgroud)
模块\标准\ handler.php
<?php
namespace modules\standard {
class handler {
function delegate(){
echo 'Hello from delegation!';
}
}
}
?>
Run Code Online (Sandbox Code Playgroud)
在运行WAMP的Windows 7下,代码生成消息"Hello from Delegation!" 但是在Linux下,我得到以下内容:
致命错误:spl_autoload():无法在第15行的/var/www/index.php中加载类modules\standard\handler
Windows在WAMP下运行PHP 5.3.0,Linux在Ubuntu 9.10下运行5.3.2 dotdeb软件包.
这是我的linux机箱上的配置问题,还是在不同操作系统上处理命名空间和自动加载的方式不同
我正在寻找适合Windows的体面,快速的PHP编辑器.在x64下原生运行的东西是理想的.
我已经尝试过aptana工作室,但我并没有对所有过度膨胀感到印象深刻.笨重的SVN支持和缺乏本机FTP与基本上混乱的IDE相结合是令人讨厌的.
我目前在我的Mac上使用Panic的Coda,我喜欢SVN + FTP整合.它快速,反应迅速,并没有给我任何麻烦.
我不反对:
我在Javascript中有一个数组:
var array = new array();
array[0] = "apples";
array[1] = "oranges";
array[2] = "pears";
Run Code Online (Sandbox Code Playgroud)
在PHP中,使用给定的数组,我可以使用以下内容遍历数组,并分解键和值:
foreach ($array as $key => $value) {
echo("Key is $key and Value is $value");
}
Run Code Online (Sandbox Code Playgroud)
我怎么能用Javascript做到这一点?我知道:
for (x in array){
// Do something with x.
}
Run Code Online (Sandbox Code Playgroud)
但我发现没有什么可以复制php风格的foreach.是否有可能简洁地在Javascript中实现类似的东西?(我也在使用jQuery,如果可以在jQuery中完成某些事情).
我在Windows下运行了针对Apache Tomcat的Java应用程序.有两种方法可以运行此应用程序 - 作为Windows服务,或从批处理文件手动调用Tomcat.
当我通过批处理文件启动应用程序时,我使用以下命令将GC日志添加到JVM参数:
-Xloggc=%~dp0..\logs\gc-%DATE:~-4%.%DATE:~4,2%.%DATE:~7,2%_%TIME:~0,2%.%TIME:~3,2%.%TIME:~6,2%.log
Run Code Online (Sandbox Code Playgroud)
这会导致GC日志与文件名中的日期一起输出 - 但是当作为服务运行时,DATE和TIME变量无法正确解析.
使用Windows服务时,我必须在JVM参数中使用哪些变量来确保将日期和时间附加到GC日志中?
我试图简化它 - gc-%DATE%.log, gc-${DATE}.log在所有情况下变量都无法解决.
任何帮助表示赞赏!
编辑:请注意,当应用程序作为Windows服务运行时,任何解决方案都必须正常工作.独自站立很好,我们已经覆盖了.仅在使用Windows服务时才会这样.
我有一个字符串:
$string = "Hello World!";
Run Code Online (Sandbox Code Playgroud)
我想把它变成一个URL友好的标签,我已经开发了一个函数来做到这一点:
function stripJunk($string){
$string = str_replace(" ", "-", $string);
$string = preg_replace("/[^a-zA-Z]\s/", "", $string);
$string = strtolower($string);
return $string;
}
Run Code Online (Sandbox Code Playgroud)
但是,当我在$string上面运行时,我得到以下内容:
$string = "hello-world!";
Run Code Online (Sandbox Code Playgroud)
似乎有些人物在我的preg_replace中滑落,即使从我的理解,他们也不应该.
它应该是这样的:
$string = "hello-world";
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?(这应该是轻松的柠檬吱吱!)
编辑1:我不知道正则表达式是初学者的东西,但无论如何.此外,删除我的字符串中的\ s不会产生所需的结果.
期望的结果是:
编辑2+:稍微清理我的代码.
我有一个表格来定义我网站中可能的类别 - 字段看起来像这样:
- id - name - parentID
信息存储如下:
+-----+------+----------+ | id | name | parentID | +-----+------+----------+ | 1 | pets | 0 | +-----+------+----------+ | 2 | cats | 1 | +-----+------+----------+ | 3 | dogs | 1 | +-----+------+----------+
A parentID为0表示类别/页面位于本地级别.我正在寻找一种快速轻松生成父类别的方法.
想到的第一个方法是一系列SQL查询,但我很快意识到,这将是潜在的资源密集,网站越复杂.
通过阅读mysql手册,我已经看到mysql可以使用循环和条件语句,但是我不确定我是如何在这里实践的.
理想情况下,我希望有一个查询来提取所有直接相关的父元素.
如果我正在看宠物类别,我只会看到home它,因为它在顶级.一旦我向下钻取(或者进入cats,dogs或者在页面下面pets),我应该pets在条形图上看到- 后续的子类别和页面也是如此.
使用以这种方式存储的信息生成类别列表的最有效方法是什么?如果这个问题需要更多说明,请询问,我会尽力提供更多信息.
澄清:这是CMS的一部分 - 因此,用户将需要能够动态更改类别.我已经研究了几种数据存储方案(例如嵌套集),它们似乎不适合用于更改导航的简单形式.
因此,任何方法都需要容易地a)用户理解,并且b)容易地实现给用户.
这些类别最好在PC上描述为文件夹,而不是标签.查看任何给定类别时,您可以看到该类别的直接子项以及直接子页面.
查看类别或页面时,父类别(但不是可见的).
例如:我有德国谢泼德,它存在于宠物下的狗身下
When viewing *pets*: Home …
php ×5
windows ×2
arrays ×1
autoload ×1
editor ×1
ftp ×1
java ×1
javascript ×1
jquery ×1
mysql ×1
namespaces ×1
performance ×1
preg-replace ×1
service ×1
string ×1
svn ×1
tomcat ×1