#php #string #text-processing
#php #строка #обработка текста
Вопрос:
Это "amp;params=amp;offer=art-by-jeremy-johnson"
хранится у меня в базе данных.
Существует ли какая-либо функция / метод для получения выходных данных как "Art by Jeremy Johnson"
, используя вышеуказанное в качестве входного значения. это должно быть изменено на вывод "Art by Jeremy Johnson"
только во время выполнения.
можно ли это сделать на PHP.
Пожалуйста, помогите.
Комментарии:
1. простой ответ — да. это может быть сделано на PHP или Java. Зачем помечать вопрос тегом на Java, если вам нужен только PHP?
Ответ №1:
$orig = 'amp;params=amp;offer=art-by-jeremy-johnson';
$parts = explode('=', $orig);
$output = explode('-', end($parts));
echo ucwords(implode(' ', $output));
Ответ №2:
В Java, я думаю, вы можете просто использовать lastIndexOf
, чтобы получить последний индекс знака равенства, и получить оставшуюся часть строки (используя substring
).
if (myString.lastIndexOf("=") != -1) {
String words = myString.substring(myString.lastIndexOf("=") 1);
words.replaceAll("-", " ");
return words;
}
Ответ №3:
$string="amp;params=amp;offer=art-by-jeremy-johnson";
parse_str($string,$output);
//print_r($output);
$str=ucwords(str_replace("-"," ",$output['offer']));
Ответ №4:
Если я правильно понимаю, вы хотите, чтобы некоторые слова не были написаны заглавными буквами.
Вот способ сделать это :
$str = "amp;params=amp;offer=art-by-jeremy-johnson";
// List of words to NOT capitalized
$keep_lower = array('by');
parse_str($str, $p);
$o = explode('-', $p['offer']);
$r = array();
foreach ($o as $w) {
if (!in_array($w, $keep_lower))
$w = ucfirst($w);
$r[] = $w;
}
$offer = implode(' ', $r);
echo $offer,"n";
вывод:
Art by Jeremy Johnson