无法通过$ _session发送DOM变量

时间:2015-09-03 20:31:34

标签: php session dom

我使用DOM + php从html网页中提取一些部分并尝试将结果作为$ _SESSION变量发送到其他页面,最终更新mysql DB。 HTML网页代码示例:

  <html>
  <body>
  <div id="title">some title </div>
  <div id="city">some city</div> 
  <div id="country">some country</div> 
  <div id="company">some company</div>
  <div id="text">some text</div>
  <body>
  <html>

这是我用来获取数据并正在运行的代码......我可以回显$ var:

<?php session_start(); ?> 
---- some HTML---
<?
    include('simple_html_dom.php');
    $file = 'webpage.html';
    $html = new simple_html_dom();
    $html->load_file($file);

    $title = $html->getElementById('title');
    $city = $html->getElementById('city');
    $country = $html->getElementById('country');
    $company = $html->getElementById('company');
    $text= $html->getElementById('text');

    echo '<b>'.$title.'</b>';
    $_SESSION['title'] =   $title;    
    echo '<b>'.$city.'</b>';
    $_SESSION['city'] =   $city;
    echo '<b>'.$country.'</b>';
    ..............
?>

我的问题是我无法使用$ _SESSION将此$ var($ title,$ city,...)发送到任何其他php页面...我收到此错误:

Catchable fatal error: Object of class __PHP_Incomplete_Class could not be converted to string

1 个答案:

答案 0 :(得分:0)

根据PHP文档,会话只能包含序列化的数据。

  

当PHP关闭时,它将自动获取$_SESSION超全局的内容,对其进行序列化,并使用会话保存处理程序将其发送以进行存储。

来源:http://php.net/manual/en/session.examples.basic.php

遗憾的是,DOM元素无法序列化,因此无法正确存储在会话中。

UPDATE :看起来您可以通过将DOM元素转换为字符串来解决此问题:

$_SESSION['title'] = (string)$title;
$_SESSION['city'] = (string)$city;