改变标点,将标点符号保持在自己的位置

时间:2014-07-31 05:35:54

标签: php

我想要一个php中的程序,它将单词的第一个字母带到最后一个并添加" ay"最后。例: I love my family变为Iay ovelay ymay amilyfay

我这样做是为了得到我的结果:

<?php
$var = "I love my family";
$words = explode(" ",$var);
$final = "";
foreach ($words as $word){
    $n = "";
    for($i=1;$i<strlen($word);$i++){
        $n .= $word{$i};
    }
    $n .= $word{0}."ay";
    $final .= $n." ";
}
echo $final;
?>

但是当输入为:he says, "I love my family"时,这不起作用。这会将输出显示为:ehay ays,say I"ay ovelay ymay amily"fay我需要标点符号位于自己的位置,如下所示:ehay ayssay, "Iay ovelay ymay amilyfay"

尝试了很多但发现没有任何效果

1 个答案:

答案 0 :(得分:0)

看起来像是:

$str = 'he says, "I love my family"';
$str = preg_replace('/(\w{1})(\w*)/', "$2$1ay", $str);

echo $str; // ehay ayssay, "Iay ovelay ymay amilyfay"

应该至少让你到达那里的大部分时间。