2016-03-16 3 views
-1

Мне нужно иметь Title, some text after comma, а Title должен быть полужирным. Я думал, что это нужно сделать, чтобы добавить тег <strong> в начале и как-то добавить закрывающий тег </strong> прямо перед запятой.Как добавить подстроку в строку с php

Я как-то нашел что-то, что могло бы это сделать: Insert string at specified position, но это не работало для меня, может быть, я сделал что-то не так?

$newstr = substr_replace($oldstr, '</strong>', substr($oldstr, ','), 0); не работает для меня. Какие-нибудь идеи о том, что там не так?

Редактировать: Почему я получил нижний предел?

+0

Это выглядит как HTML-код. Поэтому вы должны использовать html Parser. – Jens

+0

Это был не я, который был ниспослан. Но я думаю, причина в том, что вы не заглянули на официальный сайт [PHP Substr()] (http://php.net/substr). Он сказал бы вам, почему «substr» не работает так. Это только моя догадка, хотя :) – icecub

ответ

4

Вы имеете в виду это?

$str = 'Hello World, i\'m here now'; 

$strEx = explode(',', $str); 

$title = $strEx[0]; 

$text = substr($str, strlen($title)); 

$strNew = '<strong>'.$title.'</strong>'.$text; 

echo $strNew; 
1

Проблема заключается в вашем substr. Он не принимает запятую как второй параметр. Вместо этого второй параметр должен быть целым числом в качестве начальной точки, чтобы принять участие в строке.

Простейшее решение будет:

$oldstr = "Title, this is a test"; 
$search = "/,/"; 
$replace = "</strong>,"; 

$newstr = preg_replace($search, $replace, $oldstr); 

echo $newstr; 
1

если ваш случай как этот всегда «Заголовок, часть текста после запятой», то вы можете заменить запятую «» с закрытием </strong>, и добавить <strong> на начало строки:

$str = "Title, some text after comma"; 
$result = "<strong>".str_replace(",","</strong>,",$str); 
//<strong>Title</strong>, some text after comma 

таким образом, вы получите то, что вам нужно.