$name
(串)給出了類似的信息(可能值):PHP替換字符串
John II, Litten Draw
我們應該更新$name
兩個步驟:
- 抓住第一個逗號之前的話,扔至字符串的結尾
- 刪除第一個逗號
- 創建一個文件
current_name.txt
(或更新,如果已經存在)並拋給它的來源$name
「John II,Litten Draw」應替換爲「Litten Draw John II」。
謝謝。
$name
(串)給出了類似的信息(可能值):PHP替換字符串
John II, Litten Draw
我們應該更新$name
兩個步驟:
current_name.txt
(或更新,如果已經存在)並拋給它的來源$name
「John II,Litten Draw」應替換爲「Litten Draw John II」。
謝謝。
下面是一些示例代碼,應該工作正常:
<?php
function getCanonicalName($name) {
// Check for the existance of a comma and swap 'elements' if necessary.
if(strpos($name, ',') !== false) {
list($surname, $forename) = explode(',', $name);
$name = $forename . ' ' . $surname;
}
// Trim the name.
return trim($name);
}
// Test data and file I/O.
$outputData = '';
$testData = array('Obama, Barak', 'Federer, Roger', 'John Parker');
foreach($testData as $name) {
$outputData .= getCanonicalName($name) . "\n";
}
file_put_contents('current_name.txt', $outputData, FILE_APPEND);
?>
順便說一下,如果在$ name中有多個逗號,則此問題(與當前附加到您問題中的所有解決方案一樣)將導致數據丟失。因此,如果這是可能的,你應該更新getCanonicalName來迎合這種可能性。
是否這樣?
$split = explode(",", $name, 1);
$name = trim($split[1]) . " " . trim(split[0]);
然後它只是basic file I/O。
如果你有一個單詞列表(假設他們都是在單獨的行):
$list = explode("\n", $names);
$nnames = "";
foreach($list as $name)
{
$split = explode(",", $name);
$nnames .= trim($split[1]) . " " . trim(split[0]) . "\n";
}
它會使用更多的謝謝2個字? – James 2010-08-09 14:35:51
'file_put_contents' =將字符串轉儲到文件的簡單方法 – 2010-08-09 14:36:21
@Ignatz:不可以。這將適用於一個字對。我將更新以處理由換行符('\ n')刪除的列表。 – 2010-08-09 14:37:11
正則表達式去這裏的路
$a = "Obama, Barak";
echo preg_replace('~(\w+)\W+(\w+)~', "$2 $1", $a);
也適用於多個名稱:
$a = "
Obama, Barak
Federer, Roger
Dickens, Charles
";
echo preg_replace('~(\w+)\W+(\w+)~', "$2 $1", $a);
此代碼將「Nadal,Rafael」替換爲「nbsp Nadal; Rafael」 – James 2010-08-09 16:13:42
從 「current_name.txt」 文件做這些名字? (如果是的話,他們每行一個?) – 2010-08-09 14:29:57
這是一個家庭作業的分配? – 2010-08-09 14:30:27
@Fernando不,這是一個後續http://stackoverflow.com/questions/3440442/php-external-page – Gordon 2010-08-09 14:32:30