小编Evi*_*kie的帖子

执行PHP文件,并将结果作为字符串返回

我们假设我有以下文件 - 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 string

14
推荐指数
1
解决办法
7128
查看次数

命名空间Autoload在Windows下运行,但在Linux上运行

我有以下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机箱上的配置问题,还是在不同操作系统上处理命名空间和自动加载的方式不同

php namespaces autoload

11
推荐指数
1
解决办法
6419
查看次数

支持SVN和FTP的快速Windows PHP编辑器?

我正在寻找适合Windows的体面,快速的PHP编辑器.在x64下原生运行的东西是理想的.

我已经尝试过aptana工作室,但我并没有对所有过度膨胀感到印象深刻.笨重的SVN支持和缺乏本机FTP与基本上混乱的IDE相结合是令人讨厌的.

我目前在我的Mac上使用Panic的Coda,我喜欢SVN + FTP整合.它快速,反应迅速,并没有给我任何麻烦.

我不反对:

  1. 如果有合适的产品,请安装Linux.
  2. 使用Visual Studio和适当的插件.
  3. 在商业产品上花钱.

php svn windows ftp editor

9
推荐指数
2
解决办法
2万
查看次数

在Javascript中循环遍历数组的元素

我在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中完成某些事情).

javascript arrays jquery

5
推荐指数
2
解决办法
1万
查看次数

如何在Windows下的Java服务中添加时间戳GC日志文件名?

我在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日志与文件名中的日期一起输出 - 但是当作为服务运行时,DATETIME变量无法正确解析.

使用Windows服务时,我必须在JVM参数中使用哪些变量来确保将日期和时间附加到GC日志中?

我试图简化它 - gc-%DATE%.log, gc-${DATE}.log在所有情况下变量都无法解决.

任何帮助表示赞赏!

编辑:请注意,当应用程序作为Windows服务运行时,任何解决方案都必须正常工作.独自站立很好,我们已经覆盖了.仅在使用Windows服务时才会这样.

java windows service tomcat jvm-arguments

5
推荐指数
2
解决办法
4245
查看次数

preg_replace - 留下不需要的字符

我有一个字符串:

$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不会产生所需的结果.

期望的结果是:

  1. 所有空格都转换为破折号.
  2. 将删除所有不是AZ或0-9的剩余字符.
  3. 然后将该字符串转换为小写.

编辑2+:稍微清理我的代码.

php preg-replace

0
推荐指数
1
解决办法
6582
查看次数

在MySQL中构建面包屑

我有一个表格来定义我网站中可能的类别 - 字段看起来像这样:

  - 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 mysql performance

0
推荐指数
1
解决办法
3133
查看次数