簡體   English   中英

PHP打破時區“ echo”

[英]PHP broken timezone “echo”

我正在使用CMS。 安裝過程的一種選擇是選擇時區。

顯示的默認值為America/Chicago 大約有50多個城市供用戶選擇位置。 城市的順序無關緊要,因為服務器將按字母順序列出城市,默認設置在頂部。 PHP使用$TimezoneList$SelectTZ編寫時區options ,如下所示:

print $ServerTimezone;

foreach ($TimezoneList as $SelectTZ) {echo '<option value="$SelectTZ">$SelectTZ</option>';}

但是由於某種原因,PHP無法正確編寫變量。 單擊下拉列表后,應顯示:

America/Chicago
Asia/Baku
America/Anchorage
America/Denver
Europe/Rome
Europe/Vienna
Pacific/Midway

HTML源代碼顯示如下:

<option selected="selected" value="America/Chicago">America/Chicago</option>
<option value="Asia/Baku">Asia/Baku</option>
<option value="America/Anchorage">America/Anchorage</option>
(On and on and on....)

但是,當單擊下拉列表時,它顯示$SelectTZ

America/Chicago
$SelectTZ
$SelectTZ
$SelectTZ
$SelectTZ
$SelectTZ
$SelectTZ

HTML源代碼顯示如下:

<option selected="selected" value="America/Chicago">America/Chicago</option>
<option value="$SelectTZ">$SelectTZ</option>
<option value="$SelectTZ">$SelectTZ</option>
(On and on and on....)

這里發生了什么? 我需要一些幫助來解決此問題。

CMS的PHP / HTML:

<?php
 $ServerTimezone = "America/Chicago";
 $TimezoneList = array (
  'Pacific/Midway',
  'America/Anchorage',
  'America/Chicago',
  'America/Denver',
  'Europe/Rome',
  'Europe/Vienna',
  'Asia/Baku'
 );
 // Sorts by the area/city name.
 sort ($TimezoneList);
?>
<form>
 <div>
  <label for="Timezone">What Is Your Timezone?</label>
  <select id="Timezone">
   <option selected="selected" value="<?php print $ServerTimezone; ?>"><?php print $ServerTimezone; ?></option>
<?php foreach ($TimezoneList as $SelectTZ) {echo '<option value="$SelectTZ">$SelectTZ</option>';} ?>
  </select>
 </div>
</form>
<?php ?>

當用單引號引起來時,不處理字符串內的變量。

更改

foreach ($TimezoneList as $SelectTZ) {echo '<option value="$SelectTZ">$SelectTZ</option>';}

foreach ($TimezoneList as $SelectTZ) {echo "<option value=\"$SelectTZ\">$SelectTZ</option>";}

(請注意雙引號)

在PHP中,您可以像這樣在字符串中編寫變量:

echo 'Hello '.$world; // Using single quotes

要么

echo "Hello $world"; // Using double quotes

另外,在需要獲取數組值的情況下,需要這樣寫:

echo "Hello {$world['key']}";

這是您的代碼中的問題。 您需要更換

<?php foreach ($TimezoneList as $SelectTZ) {echo '<option value="$SelectTZ">$SelectTZ</option>';} ?>

<?php foreach ($TimezoneList as $SelectTZ) {echo "<option value=\"$SelectTZ\">$SelectTZ</option>";} ?>

要么

<?php foreach ($TimezoneList as $SelectTZ) {echo '<option value="'.$SelectTZ.'">'.$SelectTZ.'</option>';} ?>
echo '<option value="'.$SelectTZ.'">'.$SelectTZ.'</option>';}

試試這個.....希望你做對了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM