小编Tyl*_*hes的帖子

替换字符串中的占位符变量

刚刚完成这个功能.基本上,假设查看字符串并尝试查找任何占位符变量,这些变量将位于两个大括号之间{}.它抓取大括号之间的值,并使用它来查看应与键匹配的数组.然后它用匹配键数组中的值替换字符串中的大括号变量.

但它有一些问题.首先是当var_dump($matches)它把它放在数组中的数组时.所以我必须使用两个foreach()只是达到正确的数据.

我也觉得它很沉重,我一直在寻找它,试图让它变得更好,但我有点难过.我错过了任何优化?

function dynStr($str,$vars) {
    preg_match_all("/\{[A-Z0-9_]+\}+/", $str, $matches);
    foreach($matches as $match_group) {
        foreach($match_group as $match) {
            $match = str_replace("}", "", $match);
            $match = str_replace("{", "", $match);
            $match = strtolower($match);
            $allowed = array_keys($vars);
            $match_up = strtoupper($match);
            $str = (in_array($match, $allowed)) ? str_replace("{".$match_up."}", $vars[$match], $str) : str_replace("{".$match_up."}", '', $str);
        }
    }
    return $str;
}

$variables = array("first_name"=>"John","last_name"=>"Smith","status"=>"won");
$string = 'Dear {FIRST_NAME} {LAST_NAME}, we wanted to tell you that you {STATUS} the competition.';
echo dynStr($string,$variables);
//Would …
Run Code Online (Sandbox Code Playgroud)

php preg-match

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

AJAX /反向AJAX:轮询还是推送?

我正在研究AJAX,因为我正在使用Javascript和PHP制作实时应用程序.它需要能够在不刷新页面的情况下进行更新并实时更新.

我尝试使用setInterval()轮询服务器但是为了快速我必须每秒都有它.它似乎使用了大量的带宽.它确实有效,我有一个计划与我的托管服务提供商'无限带宽'.虽然网站上有很多压力,但我想使用Push技术.

学习如何设置Push非常困难.从我设法弄清楚,你必须托管某种类型的推送服务器或彗星服务器.我也研究过websockets,但你也必须自己主持它.当我没有服务器计算机时,我不明白该怎么做,我的托管服务提供商网站上没有关于此的文档.

特定主机提供商是否为您托管推送服务器?有没有办法获得服务器而不必托管它?这似乎是一个比投票更好的选择,但同时它似乎非常令人困惑.

ajax comet real-time reverse-ajax ajax-polling

7
推荐指数
1
解决办法
6448
查看次数

PHP和Javascript一起工作

这可能听起来很奇怪,但我一直用PHP编写游戏.我发现的主要问题是更新PHP的唯一方法是加载页面.这使得实时变慢.Javascript可以与页面交互而无需重新加载.是否可以使用Javascript在页面上加载PHP页面?这样它就可以在不重新加载的情况下反复加载PHP.

我已经看到它与聊天室完成,但不知道它是如何工作的.

javascript php real-time

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

PHP:包括内部包含不同的根

所以我有:

第A页 - /WWW/index.php

第B页 - /WWW/folder/index.php

第C页 - /WWW/assets/functions.php

我希望能够使用相同的代码行在页面A和页面B上包含页面C.

现在对于页面A: include "/assets/functions.php";

第B页: include "../assets/functions.php";

"../"是我的错误.根据文件嵌套在文件夹中的次数,我必须添加"../"

我试过了: include dirname(__FILE__) . "/assets/functions.php";

但它适用于Page A而不是Page B.

同样在function.php中我希望能够包含其他PHP文件.

php directory include

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