我使用php从一个文本区域交换文本并在另一个文本区域显示,大部分工作,但遗憾的是有些部分不
我用str_ireplace
,然后到目前为止,60个不同的单词,还有更多的。我的问题的几个例子是:
old - auld
old man - gadgie
如果你看上面的,第一个单词是未交换的,第二个是新的单词。但是,如果我把old man放在文本中,它就会显示为"old man"而不是"gadgie"。
我知道这可能是因为我在"old- old "之前声明了"old- old "
但另一个问题是:
yes - aye
no - nar
同样,第一个单词是original,第二个是after swap。如果我写"yesterday",它将显示为"ayeterday",或者如果我有"nose",它将显示为"narse"
是否有办法只改变"是"本身,而不是如果它是另一个单词的一部分?
有没有办法让"old man"answers"old"作为单独的替换?
希望这是有意义的
我的str_ireplace
代码:
<form method="POST" action="post.php" >
<textarea name="status2" cols="50" rows="5"/>
<?php echo str_ireplace(array ('old','awkward','all','again','behind','along','alright','hello','among','children','yes','child','kids','food','barnard castle','beer','book','blow','beautiful','bird','burst','brown','burn','boots','came','nice','cold','church','clothes','stick','dirty','clever','cloth','cow','crow','stool','crown','pigeon','dad','darlington','dead','do','devil','dont','do not','durham','down','drown','punch','ditch','eye','fall','trouble','condition','four','stupid','old man','go','going','jumper','give over','grandad','hold','get away','home'),
array ('auld', 'aakwad', 'aall','agyen','ahint','alang','alreet','alreet','amang','bairns','aye','bairn','bairns','bait','barney','beor','beuk','blaa','bonny','bord','borst','broon','bourn','byeuts','cam','canny','card','chorch','claes','clag','clarty','clivvor','cloot','coo','craa','cracket','croon','cushat','da','darlo','deed','dee','deil','divvent','divvent','dorham','doon','droon','dunsh','dyke','Eee','faa','fash','fettle','fower','gaumless','gadgie','gan','gannin','ganzie','giveower','granda','haad','hadaway','hyem'),$status); ?>
</textarea><br>
就像我说的,有60多个单词。
我最初没有添加我的代码,因为我认为它可能不相关。
关于第一部分。你应该先替换更具体的词。例如"old man",然后是"man"或者使用strr
<?php
$trans = array("h" => "-", "hello" => "hi", "hi" => "hello");
echo strtr("hi all, I said hello", $trans);
?>
The above example will output:
hello all, I said hi
关于整个单词。您可以查看regexp(特别是'b
)