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....)
这是怎么回事?我需要一些帮助来解决这个问题。
PHP/HTML 来自 CMS:
<?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>";}
(注意双引号)
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>';} ?>
我正在开发 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....)
这是怎么回事?我需要一些帮助来解决这个问题。
PHP/HTML 来自 CMS:
<?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>";}
(注意双引号)
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>';} ?>