当前位置: 首页 > 知识库问答 >
问题:

如何将json对象的值以textarea的文本值的形式分配给变量?

马阳曦
2023-03-14

我试图从一个包含JSON对象的模板中创建内容。

获取并保存JSON数据

文本区域有文本:{$ob-

文本区域的值包含文本形式的对象变量的名称。

如何保存$ob-的价值

    <form method="POST" name="varlines_form" action="">
    <textarea name="varlines">
apple
101
space
</textarea>
    <br />Tpl<br>
    <textarea name="template">
{$obj->q} and some text ...
</textarea><br />
    <input type="submit" /> 
</form>     
<?php       
    $newcontent ="";
        
    if((!empty($_POST)) && (isset($_POST['varlines']))){
        
        $txtstring = trim($_POST['varlines']);
        $kws = preg_split('/[\n\r]+/', $txtstring);
        $kws = array_filter($kws, 'trim'); // remove any extra \r characters left behind
        
        $tplhtml = $_POST['template'];

        // Loop through each keywords in array (keyword/key phrase)
        foreach($kws as $kword){
            $q = $kword;
            // test json url
            $tmp = "http://echo.jsontest.com/key/value/q/$q";
            $json = file_get_contents($tmp);
            $obj = json_decode($json);      
             echo "inside loop: ";
             echo $obj->q;
             echo " <br />";
            // get template
            // htmltpl
            // identify {tags} 
            // replace {tags} with $result[obj] values      
            // variable of variables
            $html = $$tplhtml;
            // add results
            $newcontent .= $html;
        }
    }
    echo $newcontent;
?>

共有2个答案

单于耘豪
2023-03-14

使用value函数将字符串求值为PHP代码

阴高刚
2023-03-14

使用eval是解决这个问题的非常不安全的方法:什么时候在php中eval是邪恶的?

一种解决方案是使用preg_replace_callback函数,用regex找到您想要的格式,并用自定义函数替换它。

preg_replace_callback函数执行正则表达式搜索并使用回调替换。https://www.php.net/manual/en/function.preg-replace-callback.php

只需要用以下行替换行$html=$$tplhtml;

$html = preg_replace_callback('/\{\$obj->(.+)\}/i', function ($match) use($obj) { return $obj->{$match[1]}; }, $tplhtml);
 类似资料:
  • 问题内容: 我正在尝试读取Firestore文档的值。我尝试了两种不同的方法,但是每种方法都失败了。在第一个中,在返回行上引发错误。我发现了发生这种情况的原因,因此,我实现了第二种方法。 在第二种方法中,我将分配给变量,然后在函数末尾返回该变量(请参见下面的代码)。但是,当我这样做时,该函数将返回一个空数组。让我惊讶的是,打印返回了正确的值,但是在函数执行了return语句后不久。是否因为它是异步

  • 问题内容: 在上面,这是硬代码。我想将 变量 分配 给值。即,均值=注册; 让我知道! 问题答案: 您的问题不是很清楚。我假设变量是在Servlet中声明的,因为在JSP中使用Java是一种不好的做法。为了能够在转发到JSP的Servlet之间共享变量,您需要将此变量设置为request属性: 然后在JSP中,您可以使用JSP EL获得“ registration”属性的值: 您应该阅读Java

  • 问题内容: 我正在使用Spring MVC。我有一个带有很多静态变量的注释类。我想使用application.properties文件中的值实例化它们。 例如在中,我有: 然后在课堂上是: 我得到了 我也尝试过 接着: 它给出了相同的错误。 问题答案: 你不必在静态字段中保留任何属性。 你不知道何时修改此静态字段 你不知道哪个线程修改了它的价值 任何时候任何线程都可以更改此静态字段的值,并且你被拧

  • 问题内容: 我正在使用以下代码: 该值不警报。怎么了 问题答案: 实质上:

  • 问题内容: 嗨,我正在使用Java Optional。我看到Optional有一个ifPresent方法。 而不是做类似的事情: 我想知道如何使用Optional.ifPresent()将值分配给变量。 我正在尝试类似的东西: 我需要lambda函数来获取分配给该变量的值是什么? 问题答案: 您可以使用#orElse或orElseThrow来提高代码的可读性。

  • 我是helm的新手,我希望能够使用配置映射和共享环境变量将gitlab项目变量写入文件。 我为每个环境(其中