我需要在运行时将PHP文件渲染或评估为PHP字符串变量.file_get_contents()会读取内容但不会评估PHP代码.
我知道ob_start()解决方案(如此处所述:从本地PHP文件获取呈现HTML),但感觉相当脏.我希望有更直接和干净的东西.
我想要完成的例子:
test.php的
<?php
for ($i = 0; $ < 5; $i++) {
echo '<p>' . $i . '</p>\n';
}
Run Code Online (Sandbox Code Playgroud)
我的代码:
<?php
$string = render_php('test.php');
/*
Content of $string:
<p>0</p>
<p>1</p>
<p>2</p>
<p>3</p>
<p>4</p>
*/
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种标准化方法,在 JVM 上使用kotlinx.serialization将 Kotlin 对象序列化为仅具有键 -> 值对的“平面”Json。
一个例子:
@Serializable
data class Address(val street: String, val postalCode: String)
@Serializable
data class Customer(val id: String, val name: String, val address: Address)
Run Code Online (Sandbox Code Playgroud)
序列化时的默认行为是:
{
"id": "123ABC",
"name": "Joe"
"address": {
"street": "my street",
"postalCode": "123456"
}
}
Run Code Online (Sandbox Code Playgroud)
我想要的是:
{
"id": "123ABC",
"name": "Joe"
"street": "my street",
"postalCode": "123456"
}
Run Code Online (Sandbox Code Playgroud)
我在Kotlin 序列化指南中找不到完成此任务的方法。因此,我非常确定我必须实现自定义KSerializer<Customer>,但目前不知道如何实现行为。