【问题标题】:How to get the variables from an Array built by parsing a HTML file如何从通过解析 HTML 文件构建的数组中获取变量
【发布时间】:2011-06-09 07:49:57
【问题描述】:

您好,在我有一个名为“slides”的文件夹并且其中有多个文本/html 文件的情况下,我需要帮助,例如:slide1.html slide2.html slide3.html 等等.....

这些文件的结构是这样的:

<h2>Title of the Slide</h2>
<p><a href="http://mydomain.com"><img src="icon.png" width="227" height="227" alt="icon" longdesc="http://longdescription" /></a></p>
<p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s.</p>

3 属性标题、图像和描述。 每行一个

----------- 更新 ---------------

我按照@MATT 的建议进行了尝试,但出现了一个空白屏幕:这是整个页面的脚本以供参考。我正在开发一个 Joomla 模板。

<?php
defined('JPATH_BASE') or die();
gantry_import('core.gantryfeature');

class GantryFeatureTabs extends GantryFeature {
    var $_feature_name = 'tabs';
    function init() {
        global $gantry;

        if ($this->get('enabled')) {
            $gantry->addScript('tabs.js');
            $gantry->addInlineScript($this->_tabs());
        }
    }
    function render($position="") {
        ob_start();
        foreach(glob("/tabs/*.html") as $fileName) {
        $fname = basename( $fileName );
        $curArr = file($fname);
        $slides[$fname ]['title'] = $curArr[0];
        $slides[$fname ]['image-links'] = $curArr[1];
        $slides[$fname ]['description'] = $curArr[2];

        foreach($slides as $key => $value){

            ?>
              <ul id="tabs1" class="tabs">
                <li>
                <a href="<?php echo $demo_tabs_url.$curArr; ?>"><?php echo $value['title'] ?></a>
                </li>
              </ul>
              <div class="clear"></div>
              <ul id="contents1" class="tabs-content">
                  <li>
                  <?php echo $value['image-links'] ?>
                  <?php echo $value['description'] ?>
                  </li>
              </ul>
            <?php
            }}
            ?>
        <?php
        return ob_get_clean();
    }
    function _tabs() {
        global $gantry;
        $js = "
            window.addEvent('load',function() {
                var tabset = new TabSet($$('#tabs1 li a'),$$('#contents1 li'),{
                    cookieName: 'demo-list'
                });
            });
        ";
        return $js;
    }
}

【问题讨论】:

  • 您必须拥有所有这些文件吗?或者您可能更喜欢数据库?
  • 这是一个 Joomla 模板,所以即使你建议使用数据库驱动的东西,我也应该没问题。

标签: php arrays variables html-parsing


【解决方案1】:

试试……

<?php

error_reporting(E_ALL);

class GantryFeatureTabs extends GantryFeature 
{
    $_feature_name = 'tabs';
    function init() {
        global $gantry;

        if ($this->get('enabled')) {
            $gantry->addScript('tabs.js');
            $gantry->addInlineScript($this->_tabs());
        }
    }
    function render($position="") {
        ob_start();
        foreach(glob("/tabs/*.html") as $fileName) {
        $fname = basename( $fileName );
        $curArr = file($fname);
        $slides[$fname ]['title'] = $curArr[0];
        $slides[$fname ]['image-links'] = $curArr[1];
        $slides[$fname ]['description'] = $curArr[2];
}

        foreach($slides as $key => $value)
        {        
            ?>
              <ul id="tabs1" class="tabs">
                <li>
                <a href="<?php echo $demo_tabs_url.$curArr; ?>"><?php echo $value['title'] ?></a>
                </li>
              </ul>
              <div class="clear"></div>
              <ul id="contents1" class="tabs-content">
                  <li>
                  <?php echo $value['image-links']; ?>
                  <?php echo $value['description']; ?>
                  </li>
              </ul>
            <?php
        }
        return ob_get_clean();
    }
    function _tabs() {
        global $gantry;
        $js = "
            window.addEvent('load',function() {
                var tabset = new TabSet($$('#tabs1 li a'),$$('#contents1 li'),{
                    cookieName: 'demo-list'
                });
            });
        ";
        return $js;
    }
}

?>

【讨论】:

  • 我在这里假设您的前两个代码示例按预期工作,而您的问题在于最后一个示例,因为您没有确切说明您遇到了什么错误。如果我错了,请随时更具体地说明您的问题。
  • 很抱歉。我试过你的方法,但没有奏效。我已经编辑了这个问题,还包括了我的整个页面脚本,就像你建议的答案一样。请仔细检查并提出问题所在。我得到一个空白屏幕
  • @Madhavi 你已经添加了一个额外的花括号 - 删除第二个 foreach 正下方的 }。
  • @Matt 我尝试移除支架,但仍然没有运气。第二个右括号是第一个 foreach 语句的,所以我什至尝试从第二个 foreach 中删除(打开和关闭),并尝试了它,但仍然没有运气。
  • @Madhavi - 你的最后两个回声末尾没有分号 - 这些是必需的。我已经在我的答案中发布了更新的代码。
猜你喜欢
  • 1970-01-01
  • 2020-09-15
  • 1970-01-01
  • 2016-12-06
  • 2021-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多