2014-08-29 65 views
2

只能反轉字中的字母嗎?PHP只反轉字的字母

舉例來說,如果我有一句話$word = "word,!";

我需要的結果是$result = "drow,!";

我嘗試使用strrev但它顛倒了標點符號了。

+3

分割字符串,用'strrev'上的字,然後連接具有標點符號的結果。 – 2014-08-29 15:31:00

+1

中間是否有標點符號的可能性?或者只會在開始/結束? – typologist 2014-08-29 15:32:16

+0

是否有一套有限的標點符號?或者你只是想在可以包含任何東西的字符串中反轉字母? – PlantTheIdea 2014-08-29 15:33:53

回答

10
$word = "word,!pineapple--pizza"; 
$revd = preg_replace_callback('#([A-Za-z]+)#', 'rev_first', $word); 

function rev_first($matches){ 
    return strrev($matches[1]); 
} 

http://3v4l.org/PXEs8

這是你在找什麼?

+1

我正在準備一個anwser,但這看起來最好。我只是使用'\ w'而不是'[A-Za-z]'。 – Savageman 2014-08-29 15:38:42

+0

是的!正是我需要的! – 2014-08-29 15:40:14

+0

@Savageman我打算使用它,但字符包括下劃線和數字,這不是他要求的,因爲我不會考慮這些字母中的任何一個。 – scragar 2014-08-29 15:40:34

0

嘗試preg_replace_callback

$result = preg_replace_callback('/\w+/', function($found) { 
    foreach ($found as $value) { 
     return strrev($value); 
    } 
}, "Hello, word,!"); 

echo $result; // olleH, drow,!