我使用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
答案 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;