2011-04-22 21 views
1

我有這個"&params=&offer=art-by-jeremy-johnson"存儲在我的數據庫中。從文本字符串中分離內容

是否有任何功能/方法使用上面的輸入值得到輸出爲"Art by Jeremy Johnson"。只能在運行時將其更改爲輸出"Art by Jeremy Johnson"

這可以在PHP中完成。

請幫助。

+0

哪種語言PHP或Java? – 2011-04-22 09:58:06

+1

簡單的答案是肯定的。它可以用PHP或Java來完成。爲什麼用Java標記問題如果你只需要PHP? – Codemwnci 2011-04-22 10:00:56

回答

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

問題標籤爲PHP ... – jackbot 2011-04-22 09:58:09

+0

它有PHP和Java。 – Codemwnci 2011-04-22 10:00:11

1

在Java中,我想你可以只使用lastIndexOf得到平等的最後一個指標,和(使用substring)獲得的字符串的其餘部分。

if (myString.lastIndexOf("=") != -1) { 
    String words = myString.substring(myString.lastIndexOf("=")+1); 
    words.replaceAll("-", " "); 
    return words; 
} 
1
$string="&params=&offer=art-by-jeremy-johnson"; 

parse_str($string,$output); 
//print_r($output); 
$str=ucwords(str_replace("-"," ",$output['offer'])); 
0

如果我沒有理解好你想要不大寫一些單詞。

這裏是一個辦法做到這一點:

$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