【问题标题】:How to make own tag system in php like Wapka如何像 Wapka 一样在 php 中制作自己的标签系统
【发布时间】:2021-05-26 21:57:37
【问题描述】:

我是 php 新手,我需要一个函数来执行此操作。

这是用户输入:

<tr>
<td width="23%" align="left" valign="top" margin="auto">
<img src="%thumb%" title="%name%" name="%name%" alt="%name%" width="65" height="56" style="border-radius:2px;"/>
<br/></td><td align="left">
<a href="/download/%id%/:SLUG(%name%);"><b>%name%.%format%</b></a>
<br/><b><font color="gold">Size:</font></b> 
%size%<br/><b><font color="gold">Upload at: </font> 
</b> :VALUE(%date%).DATE(AGO);</td></tr>
<tr><td colspan="2" align="left">
<div style="background:#444;border-top: 1px solid #505050;padding:3px 0px 3px 6px;margin:0px 0px 0px 0px;"><font color="gold"><b>
 Category:</b> </font> <a href="/category/%dir%/:SLUG(%dirname%);" style="color:#ddd"><b>%dirname%</b></a> </div></td></tr>

我需要将 %name% 更改为 $data['name'] 并将 %thumb% 更改为 $data['thumb'] 等等,其中 $data 已从数据库中获取数据。

我正在创建一个像 Wapka 这样的网络构建器,上面的代码是用户输入,我会将编码保存到数据库中,但是当我将网站中的 html 显示为解码时,所有标签(如 %name%、%thumb% 等)都会显示在while循环中通过mysqli_fetch_array从php页面中的MySQL获取数据。

【问题讨论】:

标签: php html css


【解决方案1】:

您可以使用 preg_replace_callback 函数来实现这种行为。

    <?php

    $string = '%name%.%format%
      Size: %size%
      Upload at: :VALUE(%date%).DATE(AGO); Category: %dirname%';
    $data = [
        'name' => 'Samsung',
        'date' => '22.02.22',
    ];
    $string = preg_replace_callback('/%(.*?)%/', function($matches) use ($data) {
        return $data[$matches[1]] ?? ''; // value or empty
    }, $string);

    var_dump($string);

基本上它的作用是寻找%something% 模式并替换为$data['something'] 值

https://www.php.net/manual/en/function.preg-replace-callback.php

【讨论】:

    猜你喜欢
    • 2012-03-03
    • 1970-01-01
    • 2019-01-30
    • 2013-10-07
    • 1970-01-01
    • 1970-01-01
    • 2018-05-14
    • 2020-12-12
    相关资源
    最近更新 更多