Php 从文本字符串中分离内容

Php 从文本字符串中分离内容,php,string,text-processing,Php,String,Text Processing,我的数据库中存储了jeremy johnson的“¶ms=&offer=art” 是否有任何函数/方法可以使用上述作为输入值,将输出作为“Jeremy Johnson的艺术”。这应该仅在运行时更改为输出“Art by Jeremy Johnson” 这可以在PHP中完成 请帮助。在Java中,我想您可以使用lastIndexOf获取等号的最后一个索引,并获取字符串的剩余部分(使用substring) $orig = '&params=&offer=art-by-jerem

我的数据库中存储了jeremy johnson的
“¶ms=&offer=art”

是否有任何函数/方法可以使用上述作为输入值,将输出作为“Jeremy Johnson的艺术”。这应该仅在运行时更改为输出
“Art by Jeremy Johnson”

这可以在PHP中完成


请帮助。

在Java中,我想您可以使用
lastIndexOf
获取等号的最后一个索引,并获取字符串的剩余部分(使用
substring

$orig = '&params=&offer=art-by-jeremy-johnson';
$parts = explode('=', $orig);
$output = explode('-', end($parts));
echo ucwords(implode(' ', $output));

如果我理解的很好,你不想把一些单词大写

以下是一种方法:

$str = "&params=&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

简单的答案是肯定的。它可以用PHP或Java实现。如果您只想要PHP,为什么要用Java标记这个问题?
$str = "&params=&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