0

I am building a simple system in CodeIgniter for a client of mine. I want to use str_replace to replace a tag like {company_name} into a value but I seem to cannot get this to work.

My current code is:

<?php

$this->db->where('id', '1');
$data = $this->db->get('pages');

$output = array('row' => $data->row());
$this->template->load('frontend/template', 'frontend/page', $output);

My try was:

<?php

$this->db->where('id', '1');
$data = $this->db->get('pages');

$output = str_replace(
    array("{company_name}"),
    array("Sample company"),
    $data->row()
);

$this->template->load('frontend/template', 'frontend/page', $output);

But I think I am currently on the wrong path as nothing displays anymore and I want some help or explanation on what I am doing wrong here. Thank you.

3
  • 2
    afaik you don not have to use arrays for str_replace if you are only trying to replace one value with another. Also, can you make sure that data->row() contains the exact string "{company_name"}? Commented Apr 17, 2014 at 12:57
  • what does $data->row() contain ? is it a string or an array? Commented Apr 17, 2014 at 12:57
  • It is a array. It contains all the fields from the database. For example, the ID: the title, the content, the creation data, the edit date. But I only use title and content in my view. Commented Apr 17, 2014 at 13:41

2 Answers 2

1

what about using a MySQL function REPLACE

$this->db->select("SELECT REPLACE(field, '{company_name}', 'Sample company') FROM pages ");
Sign up to request clarification or add additional context in comments.

Comments

0

Please take a look at php str_replace function .

If you want to replace all items in the array, you need to iterate over it :

foreach($data->row() as $key=>$value){
$data[$key] = str_replace("{company_name}","Sample company",$value);
}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.