调用存储在外部文件中的许多变量

时间:2014-08-23 19:10:09

标签: php

过去几周我帮助过的代码效果很好。问题是它创造了比我最初想象的更多所需包含和外部文件的方式,并且成为了追踪的挑战。

我被告知使用MySQL。如果数据将再次使用,那就没问题了。数据只用了足够长的时间来构建页面,打印到pdf然后就不再需要它了,文件也被删除了。

我有三个模板用于创建所有需要的页面。只有数据不同但从不相同,以允许保存超出使用范围。

我开始遇到的问题是当30多个页面被加载到单个浏览器窗口中,因此它可以被处理为pdf,这会调用几百个包含而有些正在被遗漏。当每个页面都被自己调用时,它们都可以正常加载。

我能想到的另一件事是尝试将属于每个页面的变量放在它自己的单个文件中,并让页面访问该文件。当我用include“file.php”调用该文件时;它只是将所有内容打印到屏幕上而不是它们需要的位置。这样每个文件的每个页面都会有10到15个变量。这样可以消除400多个外部文件,每页只有1个以上的图像。

将它们全部放在一个单独的文件中然后调用可能吗?

我希望我能正确解释。

提前致谢。

// What I would like in one file.
$item1 = "Data for Item one";
$photo1 = "img src string to image for item 1";

etc...

$item12 = "Data for Item 12";
$photo12 = "img src string to image for item 12";

然后,这将调用页面正确位置的项目。

echo "$item1";
echo "photo1";

etc...

echo "$item12";
echo "photo12";

1 个答案:

答案 0 :(得分:1)

可以使用 MySQL数据库来存储这样的信息。 (设置等)

但你也可以使用数组,这可能更合适。


数组解决方案

数组使您可以轻松存储和管理类似类型的数据。 您可以像这样创建一个新数组:

$settings = array();

要在其中存储值,您有以下几种选择:

  • 将其命名为整数(0,1,2,3等)
  • 将其命名为字符串(' item1',' path2'等。)

$settings = array('path1', 'path2');

这只是存储了0 => 'path1'1 => 'path1'

获取数组中键的值:

echo $settings[0]; //or $settings{0}, outputs 'path1'
echo $settings[1]; //outputs 'path2'

或者您将其存储为字符串:

$settings = array('picture1' => 'path1', 'picture2' => 'path2');
echo $settings['picture1']; //outputs 'path1'

此外,多维数组是可能的:

$settings = array(
    'paths' => array(
        'picture1' => 'path1',
        'picture2' => 'path2'
    ),
    'language' => 'english'
);

你得到一个像这样的多维数组的值:

//for every dimension a new [], outputs 'path1'
echo $settings['paths']['picture1'];  

然后您就可以轻松存储所有设置并require_once 'settings.php';

如果您想了解有关数组的更多信息,请转到php.net documentation


实施例

<强> /php/settings.php

$settings = array(
    'items' => array(
        'item1'  => 'Data for Item1',
        'item12' => 'Data for Item12',
    ),
    'photos' => array(
        'photo1'  => 'img src string to image for item 1',
        'photo12' => 'img src string to image for item 12',
    ),
);

<强>的index.php

<?php
require_once '/php/settings.php';

echo $settings['items']['item1'];  //outputs 'Data for Item1'

//Or you can even use a foreach loop
foreach($settings['items'] as $key) {
    echo $key;
    echo '<br>';
}

打印出来:

  

Item1的数据

     

Item12的数据

希望这会有所帮助。