2012-12-22 52 views
0

我有我的网页上一个选择菜单,列出阵列中的以下系统字体:PHP:数组功能

$default = array(
    'Arial'    => 'Arial', 
    'Courier'   => 'Courier New', 
    'Georgia'   => 'Georgia', 
    'Helvetica'   => 'Helvetica', 
    'Impact'   => 'Impact', 
    'Palatino'   => 'Palatino', 
    'Tahoma'   => 'Tahoma, Geneva',  
    'Times'    => 'Times New Roman', 
    'Verdana'   => 'Verdana, Geneva' 
); 

当用户从下拉这些字体的一个/选择 - 菜单,字体面是输出到我的网站的CSS头部分,像这样:

p {font: 12px Arial;} 

这工作完全正常,但我所希望做的是改变CSS还输出下降后卫:

p {font: 12px Arial, san-serif;} 

由于我对PHP相当陌生,使用逗号和像下面的脚本这样的后退将不起作用,我想知道如何才能添加另一种字体或回退到数组中?

$default = array(
    'Arial, sans-serif'    => 'Arial', 
    'Courier New, monospace'  => 'Courier New', 
    'Georgia, serif'    => 'Georgia', 
    'Helvetica, sans-serif'   => 'Helvetica', 
    'Impact, sans-serif'   => 'Impact', 
    'Palatino, serif'    => 'Palatino', 
    'Times New Roman, serif'  => 'Times New Roman', 
    'Verdana, Geneva, sans-serif' => 'Verdana, Geneva' 
); 
+2

什么是确切的问题?你从PHP中得到任何错误吗?我尝试了你的确切列表,看起来像正常工作。另外,您可以像这里一样给出选择选项控制结果吗?我的意思是什么是你的PHP脚本的最终输出 –

+0

你怎么实际使用'$ default'数组? – irrelephant

+0

如果您试图在css文件中更改font-family,则可以将您的css文件扩展名重命名为.php,并使用变量而不是font-family,如:{font-family:<?php echo $ font;?>;}。不知道是你在找什么,但你可以有默认的字体,并检查$ _SESSION,例如,如果字体未设置为显示默认的一个 – vodich

回答

0

也许你应该对价值交换密钥,它会做你想做的,是这样的:

$default = array(
    'Arial'    => 'Arial, sans-serif', 
    'Courier New'  => 'Courier New, monospace', 
    ... 
); 

这应该做的伎俩。您通常通过索引搜索数组并返回值。因此,搜索$ default ['Arial']将产生“Arial,sans-serif”。我希望这是你想要的。

+0

这是他现在正在寻找什么。 –

+0

这不是他要求的 – pkachhia

+3

@MerianosNikos OP实际上在寻找什么?这个答案是我如何阅读这个问题,所以我有点困惑。 – irrelephant

1

在选项面板中,使用如下代码:

// This is the value you retrieve from your database. 
// Change it according to your code needs 
$current_font_family = $db_options_result['font_family']; 

$default = array(
    'Arial, sans-serif'    => 'Arial', 
    'Courier New, monospace'  => 'Courier New', 
    'Georgia, serif'    => 'Georgia', 
    'Helvetica, sans-serif'   => 'Helvetica', 
    'Impact, sans-serif'   => 'Impact', 
    'Palatino, serif'    => 'Palatino', 
    'Times New Roman, serif'  => 'Times New Roman', 
    'Verdana, Geneva, sans-serif' => 'Verdana, Geneva' 
); 

?> 
<!-- Change the attributes of the select element according to your --> 
<!-- code needs --> 
<select name="fontFamily"> 
<?php 
    foreach($default as $font_k => $font_v) 
    { 
?> 
<!-- Remember to change the $current_font_family to your script variable name --> 
<option value="<?php echo $font_k; ?>"<?php echo ($current_font_family == $font_k ? ' selected="selected"' : ''); ?>><?php echo $font_v; ?></option> 
<?php 
    } 
?> 
</select> 

以上会在你的管理面板产生看起来像下面的HTML选择元素:

<select name="fontFamily"> 
    <option value="Arial, sans-serif">Arial</option> 
    <option value="Courier New, monospace">Courier New</option> 
    <option value="Georgia, serif">Georgia</option> 
    <option value="Helvetica, sans-serif">Helvetica</option> 
    <option value="Impact, sans-serif">Impact</option> 
    <option value="Palatino, serif">Palatino</option> 
    <option value="Times New Roman, serif">Times New Roman</option> 
    <option value="Verdana, Geneva, sans-serif">Verdana, Geneva</option> 
</select> 

然后在你的CSS使用以下代码:

<?php 
    // This is the value you retrive from your database. 
    // Change it according to your code needs 

    $current_font_family = $db_options_result['font_family']; 
?> 
p {font: 12px <?php echo $current_font_family; ?>;} 

Final LY,如果你使用的是PHP文件作为CSS文件的动态内容,不要忘记对您的文件非常非常顶部添加以下代码:

<?php 
    header('Content-Type: text/css'); 
?> 
+2

如果你打算这样做,不要忘记清理输入,最好是在服务器端进行更多操作(例如'' ,然后用PHP改变它:'array('arial'=>'Arial,sans-serif')'等)。 –

+0

这是强制性的。我只是在这里展示如何去做。根据使用的平台,可能已经建立了消毒功能。 –