[英]How to convert html code in database to plain-text in fpdf output in PHP?
[英]How to convert string of PHP code which is passed as plain text from database, to actual code which run processes?
代碼從純文本區域保存到數據庫,並完全存儲為[php]echo $clientMenu;[/php]
然后通過進程讀入文檔。 但是,該值要么呈現為純文本,要么不顯示,因為標簽正在轉換為注釋<?--;php $clientMenu? ?-->
<?--;php $clientMenu? ?-->
,我懷疑后一個結果是由於WISECP的父應用程序使用 class simple_html_dom ( https://simplehtmldom.sourceforge.io/docs/1.9/index.html ) 的方法remove_noise()
) 來阻止output 為了安全起見,我還沒有想出一種方法來覆蓋它。
我嘗試使用eval()
並且返回只是echo;
private static function codeblock($codeblock)
{
if( preg_match_all('#\[php\](.*?)\[\/php\]#is', $codeblock, $phpcode, PREG_SET_ORDER) ) {
foreach($phpcode as $php) {
$code = '<?php '.$php[1].' ?>';
$codeblock = str_replace($php[0], $code, $codeblock);
}
}
return $codeblock;
}
該值傳遞給 output 方法,在 HTML 文檔中渲染echo wcp::htmlRender()->head;
$clientMenu
的數據已經在呈現 HTML 的 PHP 文件中。
使流程正常運行的所有努力都失敗了,經過太多時間我已經無計可施了。 我當然會很感激任何幫助。
編輯
HTML 文檔中的評論結果的原因是由於 output 被寫入呈現為 HTML 的頁面中,這不是意圖。
我使用了eval()
(是的,我知道它是邪惡的)並意識到正在評估 PHP 變量但返回的是空值。 所以很明顯不是與儲值相關聯。 eval()
的替代方法是將編碼字符串解析為功能性 PHP
來自數據庫的字符串[php]$clientMenu[/php]
private static function codeblock($codeblock)
{
if( preg_match_all('#\[php\](.*?)\[\/php\]#is', $codeblock, $phpcode, PREG_SET_ORDER) ) {
foreach($phpcode as $php) {
eval("\$da = \"$php[1]\";");
$codeblock = str_replace($php[0], $da, $codeblock);
}
}
return $codeblock;
}
html_entity_decode function 將幫助您轉換為實際代碼。 https://www.php.net/manual/en/function.html-entity-decode.php
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.