PHP破解时区“回声”

时间:2015-12-03 18:33:11

标签: php html arrays timezone echo

我正在使用CMS。安装过程的一个选项是选择时区。

显示的默认值为options。有一个大约50多个城市的列表,让用户选择他们的位置。城市的顺序无关紧要,因为服务器将按字母顺序列出它们,默认位于顶部。 PHP使用$TimezoneList$SelectTZ为时区编写print $ServerTimezone; ,如下所示:

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

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

但由于某种原因,PHP不能正确编写变量。单击下拉列表时,应显示:

<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....)

HTML源代码显示:

$SelectTZ

但相反,下拉列表会在点击时显示America/Chicago $SelectTZ $SelectTZ $SelectTZ $SelectTZ $SelectTZ $SelectTZ

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

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 ?>

这里发生了什么?我想帮助解决这个问题。

来自CMS的

PHP / HTML:

ALTER TRIGGER [dbo].[myTriggerName]
 ON [dbo].[myTableName]
 AFTER INSERT
 AS
 BEGIN 
    EXEC msdb.dbo.sp_send_dbmail  
      @recipients = 'MyRecipients',  
      @profile_name = 'DBAdmins',  
      @subject = 'MySubject',   
      @body = 'Body';  

END 

3 个答案:

答案 0 :(得分:1)

当使用单引号回显时,不会处理字符串中的变量。

更改

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

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

(注意双引号)

答案 1 :(得分:1)

在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>';} ?>

答案 2 :(得分:0)

echo '<option value="'.$SelectTZ.'">'.$SelectTZ.'</option>';}

试试这个......希望你能做对。