2016-11-24 199 views
2

enter image description here刪除HTML標籤和HTML實體

我怎麼能這樣當出口刪除所有<p><strong>標籤在csv文件?下面

是我的代碼編寫

if($v == "description"){ 


       $q[$v] = preg_replace("/&#?[a-z0-9]+;/i","",$q[$v]); 



       } 
+2

使用'strip_tags()'。 – Barmar

+0

@Barmar我不認爲'strip_tags'工作的HTML實體雖然。所以必須完成'htmlspecialchars_decode'和'strip_tags'的組合。 –

回答

1

不清楚如何構成你展示源數據,說$source,也沒有哪一種方式,你會導出清理的數據。

假設它是一個獨特的大串,你可以僅僅做到這一點:

$clean_data = strip_tags(html_entity_decode($source)); 

然後你可以使用結果通過類似explode(PHP_EOL, $clean_data)出口。

否則,如果它是一個數組,你可以迭代它的項目,並使用相同TECHNIC依次清除它們:

foreach ($source as $line) { 
    $clean_line = strip_tags(html_entity_decode($line)); 
    ... export the clean line 
} 
0

您可以通過重寫_prepareDownloadResponse()控制器功能逃跑的HTML標籤。該函數聲明頭文件和內容文件以響應文件下載。

爲此,您必須首先重寫/覆蓋Mage_Adminhtml_Sales_OrderController控制器類,如下所示。

應用程序/代碼/本地/命名空間/模塊的/ etc/config.xml中

<?xml version="1.0" encoding="UTF-8"?> 
<config> 

    ... 

    <admin> 
     <routers> 
      <adminhtml> 
       <args> 
        <modules> 
         <Namespace_Module before="Mage_Adminhtml">Namespace_Module_Adminhtml</Namespace_Module> 
        </modules> 
       </args> 
      </adminhtml> 
     </routers> 
    </admin> 

    ... 

</config> 

應用程序/代碼/本地/命名空間/模塊/控制器/ Adminhtml /銷售/ OrderController。 PHP

<?php 

    require_once "Mage/Adminhtml/controllers/Sales/OrderController.php"; 

    class Namespace_Module_Adminhtml_Sales_OrderController extends Mage_Adminhtml_Sales_OrderController 
    { 
     /** 
     * Declare headers and content file in response for file download 
     * 
     * @param string $fileName 
     * @param string|array $content set to null to avoid starting output, $contentLength should be set explicitly in 
     *        that case 
     * @param string $contentType 
     * @param int $contentLength explicit content length, if strlen($content) isn't applicable 
     * @return Mage_Core_Controller_Varien_Action 
     */ 
     protected function _prepareDownloadResponse(
      $fileName, 
      $content, 
      $contentType = 'application/octet-stream', 
      $contentLength = null) 
     { 

      ... 

      if (!is_null($content)) { 
       if ($isFile) { 

        ... 

        // strip tags from data 
        while ($buffer = strip_tags($ioAdapter->streamRead())) { 
         print $buffer; 
        } 

        ... 

       } else { 
        $this->getResponse()->setBody($content); 
       } 
      } 
      return $this; 
     } 
    } 

,你可以看到,strip_tags在使用前剝離HTML標記分配到緩衝區變量中。

希望它會有所幫助。