Diziye html_entity_decode nasıl eklenir?

2 Cevap php

I am making a content entry with TinyMCE in codeigniter. However the output source is like the following and does not show < and >. Instead it shows HTML enties like &lessthan; and &greaterthan; etc.

Entry sonra oturum yönetici tarafından yapılır

Çıktı veritabanından geliyor.

Ben modeli kaçış çıkardı, ama hala aynı şeyi yapar.

Ayrıca ben bir yapılandırma ayarı, $ config ['global_xss_filtering'] var = false;

So I want to add html_entity_decode. But the $page_data is an array. The array has id, title, content and slug which is used for page item.

Herkes bunu nasıl söyleyebilir misiniz lütfen?


Çıktı örnek:

&lt;p&gt;&lt;img src=&quot;images/icon1.png&quot; border=&quot;0&quot;
alt=&quot;icon&quot; width=&quot;48&quot; height=&quot;48&quot; /&gt;
Lorem ipsum dolor sit amet, consectetur adipiscing elit.


Model kodu:

<?php

class Pagemodel extends Model 
{
....
...

/** 
* Return an array of a page — used in the front end
*
* @access public
* @param string
* @return array
*/
function fetch($slug)
{
	$query = $this->db->query("SELECT * FROM `pages` WHERE `slug` = '$slug'");
	return $query->result_array();
}


...
...

}

?>

Denetleyici kodu:

function index()
{
	$page_slug = $this->uri->segment('2'); // Grab the URI segment

	if($page_slug === FALSE)
	{
		$page_slug = 'home';
	}

$page_data = $this->pages->fetch($page_slug); // Pull the page data from the database

	if($page_data === FALSE)
	{
		show_404(); // Show a 404 if no page exists
	}
	else
	{
		$this->_view('index', $page_data[0]);
	}
}

2 Cevap

Ben doğru seni Eğer geçmek istiyorum 'html_entity_decode.' veritabanından döndürülen tüm alanlara. Kolayca almak işlevine şey ekleyebilirsiniz:

function fetch($slug)
{
    $query = $this->db->query("SELECT * FROM `pages` WHERE `slug` = '$slug'");
    for($i=0; $i<$query->num_rows(); $i++)
    {
        $html_decoded[$i]['id'] = html_entity_decode($query->id);
        $html_decoded[$i]['title'] = html_entity_decode($query->title);
        $html_decoded[$i]['content'] = html_entity_decode($query->content);
        $html_decoded[$i]['slug'] = html_entity_decode($query->slug);
    }

    return  $html_decoded;
}

Ben soru hakkı var eğer ne istediğinizi yapmanız gerekir.

Eğer resultset üzerinde bisiklet önlemek tercih ederseniz, tesisleri ve kullanabilir

array_map()

ve böyle bir şey yapmak:

function fetch( $slug )
{
    $query = $this->db->query( "SELECT * FROM `pages` WHERE `slug` = '$slug'" );
    return array_map( array( $this, decodearray ), $query->result_array());
}

function decodearray( $myarray ){
    return html_entity_decode( $myarray,ENT_QUOTES );
}