Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在网页或博客中实现短代码?_Php_Laravel - Fatal编程技术网

Php 如何在网页或博客中实现短代码?

Php 如何在网页或博客中实现短代码?,php,laravel,Php,Laravel,我正在使用php框架laravel,我想实现短代码 有人对如何实现用户可以插入到页面或博客文章中的短代码有什么建议吗 例如,假设我想要一个有一些图像的画廊的快捷码,比如 [gallery=id] 然后将显示特定的图库。当然,我有图库模型和图库及图像表 我的第一个想法是,我必须扫描页面/帖子的内容并查找短代码,当我找到一个特定的短代码时,会发生什么?我应该插入什么来代替它 我不能插入在库中循环并生成输出的php代码。我想最好的方法是运行一个函数,返回我插入的完整html代码,而不是短代码 是否可以

我正在使用php框架laravel,我想实现短代码

有人对如何实现用户可以插入到页面或博客文章中的短代码有什么建议吗

例如,假设我想要一个有一些图像的画廊的快捷码,比如

[gallery=id]

然后将显示特定的图库。当然,我有图库模型和图库及图像表

我的第一个想法是,我必须扫描页面/帖子的内容并查找短代码,当我找到一个特定的短代码时,会发生什么?我应该插入什么来代替它

我不能插入在库中循环并生成输出的php代码。我想最好的方法是运行一个函数,返回我插入的完整html代码,而不是短代码


是否可以从函数返回视图并将结果插入页面/帖子?

说清楚,我假设您希望将其插入存储在db或其他文件中的内容块,而不是现有视图文件中

假设您希望将文本注入视图以供显示,您可以允许内容创建者使用模板格式(如mustache())和服务器端回调/帮助程序/部分(在视图中)来使用动态内容(在本例中为库链接)填充您自己的自定义标记

要点

  • 我会坚持一种基本的众所周知的模板格式,比如 留胡子。在laravel中,允许使用刀片模板表示法,听起来您希望在本例中注册一个
    Blade::指令
  • 如果以前存在这样的库,我会尝试使用现有库 正在尝试创建自己的短标记标记解析/ 回调范式。Blade具有处理此类回调的函数和方法
  • #2是不必要的,但强烈推荐,但#1应被视为接近宗教

    更新:正如在其他答案中指出的,Laravels内置模板刀片具有此功能,因此请坚持其格式和功能

    以下是我的建议(使用伪laravel/php):

    • 假设您从拉入控制器的模型中标记的内容位于
      $content['blade\u markedup\u content'=>'这是我的新库:@gallery(1)]
      中,以便传递给视图
    • 将刀片指令
      @preprocess()
      添加到模板/视图中,并在模板/视图中使用
      @preprocess($Blade\u markedup\u content)

      而不是仅仅替换原始
      {{$Blade\u markedup\u content}

    • @preprocess()
      指令的相应回调函数中
      • 实例化一个新的
        $my_compiler=new BladeCompiler()
      • 注册到此新的blade编译器指令,以处理放入
        blade\u markedup\u内容的类似
        @gallery(1)
      • 使用
        $my\u compiler->compileString($blade\u markedup\u content)
        @preprocess()
        返回
    • 中提琴。。。理论上,这将导致原始模板中的
      @preprocess($blade\u markedup\u content)
      解析并替换字符串
    根据您想要的“短码”类型,这里有许多选项:


  • 你到底想要什么?要显示只有特定用户才能访问的图库页面?我希望管理员能够在此示例图库短代码中使用短代码,并且当访问者访问使用此短代码的页面时,该页面将呈现带有图像的图库。当然,它对所有用户都是可见的。注意:我没有使用Wordpress,我使用的是Laravel,我想实现我的目标self@Maxlight您可以使用我的库短代码:。我没有使用Wordpress,我使用的是Laravel,我想自己为我的应用程序实现它。据我所知,wordpress插件不能与Laravel一起使用。@Maxlight Soorry,您的帖子被标记为wordpress。没问题,我标记为wordpress,希望一些wordpress开发人员能给出一些建议,如何在另一个框架中实现它,无论如何,谢谢!)@Maxlight同样的逻辑也适用——看我的更新啊,我看错了你的帖子,你想要的是指向其他实体/资源的链接,而不是样式