我正在尝试将div
的内容存储到变量中。
示例:
<div class="anything">
<p>We don't know the content of this div</p>
</div>
我想搜索<div class="anything">
并将所有内容存储在开始和结束标记之间。
我们还希望避免使用绝对路径名,以便它只搜索当前HTML / PHP文件中存在代码的div
。
PHP可以实现这一点,还是仅适用于JavaScript?
答案 0 :(得分:2)
PHP是server-side language。它绝对没有任何关于DOM(即浏览器窗口中显示的内容)在何时传递页面的线索。是的,我知道,PHP 呈现 DOM,所以它怎么可能不知道那里有什么?
简单地说,让我们说 PHP没有他所呈现的内容。他只知道在一个特定时刻,他正在传递一系列角色,但就是这样。他有点没有全局了解。大局是客户端,称为DOM。服务器(PHP)在渲染时会立即忘记它。
像红鱼一样。
为此,您需要JavaScript(在客户端的计算机上,因此可以完全访问呈现的DOM),或者如果您希望PHP执行此操作,则必须检索完整呈现的页面首先。
因此,在PHP中执行您想要执行的操作的唯一方法是打印页面,然后您才能使用http请求检索它,并在您的情况下使用{{3}等库进行解析}}
假设您知道您的网页将在simpleHtmlDom
上显示$html = file_get_html('http://mypage.com/mypage.php');
foreach($html->find('div.anything') as $element)
echo $element->src . '<br>';
答案 1 :(得分:-1)
您可能需要这些组合。
在您的Javascript中:
var content = document.getElementsByClassName("anything")[0].innerHTML();
document.getElementByID('formfield').value(content);
document.getElementByID('hiddenForm').submit();
在您的HTML / PHP文件中:
<form id="hiddenForm" action="path/to/your/script">
<input type="hidden" name="formfield" value="" />
</form>
在表单操作中定义的脚本中:
if(!empty($_POST)){
$content = $_POST['formfield'];
// DO something with the content;
}
或者你可以通过AJAX发送数据,但我想你是这些东西的新手,所以你应该慢慢开始:)
干杯! 史蒂夫
答案 2 :(得分:-1)
您可以使用JS从所需的元素中获取.innerHTML并将其存储在表单的某些输入字段的.value中,然后正常使用提交按钮运行PHP表单处理。使用.readOnly取消输入字段的编辑。