2014-01-10 6 views
0

У меня есть строка:

$html = '${from_username} thinks ${to_username} is awesomelylylylly amazing'; 

Я пытаюсь заменить

${from_username} 

в

$data->from_username 

Я делаю

str_replace("\${from_username}", $data->from_username, $html); 

однако $ html нетронутый

+2

str_replace вернет заменяющую строку .. $ html = str_replace ("\ $ {from_username}", $ data-> from_username, $ html); –

+1

yep, я идиот, спасибо за быстрый ответ – user3023421

+0

Его пятница :) yw –

ответ

1

попробуйте этот код: если вы используете двойную кавычку внутри строки, она будет обрабатываться как переменная PHP. Поэтому попробуйте одну цитату.

str_replace('${from_username}', $data->from_username, $html); 
1

И потому, что это пятница, и мы все импульсивные дебилы мой первый ответ:

Использование str_replace('${from_username}', $data->from_username, $html);

одиночные кавычки не будет искать строку для переменных и и таким образом будет игнорировать $

является неправильным. Как уже упоминалось в комментариях, ваша настоящая проблема заключается в том, что str_replace возвращает новую строку и не прикасается к переданным аргументам. И $ будет проигнорирован, потому что вы избежали его правильно.

+0

Не нужно использовать обратную косую черту при использовании одинарных кавычек, чтобы сбежать '$' – Paul

+0

Да, это было абсолютно то, что было неправильно и даже не проблема;) – th3falc0n

+1

Отредактировал это сейчас, поэтому я никого не смучу. – th3falc0n

Смежные вопросы