Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.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 如何检查webkit在后端呈现的HTML元素高度?_Php_Browser_Headless - Fatal编程技术网

Php 如何检查webkit在后端呈现的HTML元素高度?

Php 如何检查webkit在后端呈现的HTML元素高度?,php,browser,headless,Php,Browser,Headless,我有一个表单,它接受WYSIWYG输入。这将在前端进行渲染,但渲染时其高度不能超过某个限制。我需要验证,一旦提交到我的PHP脚本,它将在该限制内 当然,我可以通过JS在前端进行检查,但我不能信任客户端验证 我所尝试的: 使用DOMPDF创建PDF 将其导出为PNG 元素周围有一个由DOMPDF呈现的边框。我现在唯一能想到的就是用PHP测量边界框,并验证高度是否在限制范围内 我知道可以从PHP中的标记重新创建DOM,但我仍然无法获得渲染元素的高度 我更喜欢某种类型的无头浏览器,它可以让我做到这

我有一个表单,它接受WYSIWYG输入。这将在前端进行渲染,但渲染时其高度不能超过某个限制。我需要验证,一旦提交到我的PHP脚本,它将在该限制内

当然,我可以通过JS在前端进行检查,但我不能信任客户端验证

我所尝试的:

  • 使用DOMPDF创建PDF
  • 将其导出为PNG
元素周围有一个由DOMPDF呈现的边框。我现在唯一能想到的就是用PHP测量边界框,并验证高度是否在限制范围内

我知道可以从PHP中的标记重新创建DOM,但我仍然无法获得渲染元素的高度

我更喜欢某种类型的无头浏览器,它可以让我做到这一点:

$page = $browser->make($markup);
$height = $page->getElementById('element_id')->height;

有没有一个纯PHP(即非PhantomJS)解决方案可以解决类似的问题?

我非常非常好奇您为什么想知道这一点。我只是想不出一个原因(你可以在containing
标签上设置
overflow:hidden
)。你能详细说明一下吗?对于某种类型的无头浏览器,我会作为一种可能的选择进行调查。不过,它仍然需要本地安装的浏览器。我理解你的意思,这只是一个非常具体的用例。我会使用
overflow:hidden
方法,但它会在一定程度上干扰演示文稿。最后,我解析生成的PDF文档以获得边界框的尺寸。目前效果良好。:)然后再加上这个答案并接受它可能是明智的,这样人们就不会花时间去想其他的方法了