Выделение содержимого из текстовой строки

#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