備註:中的.txt文件在問題中提到的世界國家列表包含。它是一個固定內容的列表;它在程序執行期間不會改變,它在程序的不同執行之間不會改變。當一個條目被添加或從列表中刪除時,它有時會不經常更改。更經常地,代碼或現有項目的名稱會更改。
這個答案是針對文件的內容量身定做的。這不適合所有情況。
的最佳方式(給你要加載的文件的內容)是擁有由國家代碼的PHP代碼索引,在一個單獨的文件國名的列表。
像這樣的東西(文件listCountries.php
):
<?php
// ISO-3166 country codes
return array(
'AF' => 'Afghanistan',
'AX' => 'Åland Islands',
'AL' => 'Albania',
// ...
);
// This is the end of file; there is no need for a PHP close tag
當你需要使用它,你需要做的就是寫這樣的:
$listCountries = include 'listCountries.php`;
當然,你應該將它放在包含文件的目錄中的某個位置,並注意include
行中的路徑。
然後,您可以遍歷$listCountries
和生成所需的HTML代碼:
<select>
<?php
// Assuming the country with code $selectedCode have to be already selected in the list
foreach ($listCountries as $code => $name) {
$selected = ($code == $selectedCode) ? ' selected="selected"' : '';
echo('<option value="'.$code.'"'.$selected.'>'.htmlspecialchars($name)."</option>\n");
}
?>
</select>
您可以使用搜索生成的文件,並在編輯器中替換(如果知道搜索和使用正則表達式替換),或者你可以寫一個小PHP腳本來爲您生成列表:使用PHP命令行
$listCountries = array();
$fh = fopen('http://www.textfixer.com/resources/dropdowns/country-list-iso-codes.txt', 'r');
while (! feof($fh)) {
list($code, $name) = fgetcsv($fh, 0, ':');
$listCountries[$code] = $name;
}
fclose($fh);
echo("<?php\n");
echo('$listCountries = ');
var_export($listCountries);
echo(";\n");
echo("// That's all, folks!\n");
運行它,它會傾倒的PHP代碼列表輸出。您可以將其輸出重定向到一個文件或將其更改爲將代碼寫入文件(第一個選項更簡單)。
你可以閱讀更多關於ISO-3166國家代碼上Wikipedia或者你可以直接從authoritative source獲得最新信息:在ISO。
您可以逐行讀取文件,因此遍歷所有行然後在每次迭代中剩下要做的事情就是輸出一個select選項,您可以根據需要填寫行內容。 – arkascha
你嘗試過什麼嗎?請發佈您的代碼。 – aslawin
Thankyou @arkascha和aslawin我不知道從哪裏開始實現這個可能你可以提供一個例子嗎?我很欣賞你的意見,但它會很容易讓我在網上看這個知道從哪裏開始 – Peanuts