【问题标题】:How does php refer to the current document?php如何引用当前文档?
【发布时间】:2012-04-06 06:43:18
【问题描述】:

我的网页允许用户从下拉列表中选择项目并有一个表格。 Javascript 在 javascript 创建的新表行中打印出每个下拉列表项(以及 javascript 从 XML 文件中提取的额外信息)。

我希望能够将表信息写入磁盘。 如果我使用的是 Javascript,我会使用 document.getElementByID("table") 解析节点并将该信息放入我可以编写的变量中。但是,我发现的大多数文档都说 Javascript 不用于写入磁盘。所以,我觉得我应该用php。

Javascript 的“文档”对象的 php 等价物是什么? 在 Javascript 中,我不需要定义任何新对象来使用它,我可以随时使用“文档”。 我认为在 php 中我必须使用新的 DOMDocument。然后加载html。

大多数 php 示例显示 loadHTML(string) 和 loadHTMLFile(); 我不想从我写在标签内的字符串中加载 HTML。 而且我不想从 .htm 文件中加载 HTML,因为那是原始文件,而 Javascript 已根据用户从下拉菜单中的选择更改了用户的文件。

我想使用 php 访问当前文档的元素。 那么,php是如何引用当前文档的呢?

我正在处理的页面是http://music.collwyncraig.info/hajimama/setlist.htm

【问题讨论】:

  • PHP not 在浏览器中运行。它通常在网络服务器中运行,或作为独立程序运行。如果某些 PHP 程序可以获取网页,它可以对其进行解析并将其写入磁盘,但这与在浏览器中运行无关。
  • 我想我开始明白这一点了。那么,我可以使用什么来从浏览器中运行的页面(HTML DOM)中获取信息并将其发送回服务器,以便我可以将其保存在服务器上的文件中?

标签: php document


【解决方案1】:

我认为您对架构的看法是错误的。编程语言之间有一种交互方式。

  • php 是一个预处理器,它生成 - 你想要的任何东西 - 通常是 html,包含 javascript、css 和任何东西......
  • javascript 是一种动态语言,可在生成的 html 文档中进行交互,或通过 ajax 调用其他提供 html、javascript、css 或所需内容的服务
  • 和 html - 即显示的文档对象,可以在运行时通过 javascript 和 css 等样式进行修改...

所以当你在你的文档中调用javascript函数时——基本的php已经完成了它的工作。

您可以先将其存储在 var 中,而不是将所有从 php 生成的内容直接打印到屏幕上。

例如:

$myContent = "<html><head>...</head><body><h1>Whatever...</h1></body>";

因此,您可以执行以下操作以将其打印在屏幕上:

print "myContent";  // and it is shown on the screen

$myFile = "testFile.html";
$fh = fopen($myFile, 'w') or die("can't open file");
$myContent = "<html><head>...</head><body><h1>Whatever...</h1></body>";
fwrite($fh, $myContent);
$myContent = "Whatever2";
fwrite($fh, $myContent);
fclose($fh); 

所以你的文件内容是:

<html><head>...</head><body><h1>Whatever...</h1></body>Whatever2

然后可以通过loadHTML 调用此生成的文档或以您的方式使用 想要。

这只是作为您可以思考的方向的提示 - 有多种解决方法 - 因此在不了解您真正想要的更多信息的情况下 - 提及适当的解决方案并不容易。

【讨论】:

  • 谢谢。目前,用户可以通过从下拉菜单中选择项目来在我的网页上构建表格。 Javascript 根据他们从下拉菜单中的选择构建此表。我想要一个按钮,用户可以单击以将他们创建的表保存到文件中。所以我需要在浏览器中访问当前页面的DOM,并将其发送回服务器并写入文件中。正确的?我可以使用 Javascript 在浏览器中访问当前页面的 DOM。我可以使用 php 将某些内容写入服务器上的文件中。我不知道如何将这两个动作联系起来。
  • 你想把它存储在服务器上吗?好吧-如果您可以访问该文档-那么只需通过参数将其内容发送到一个php文件即可,如上所述存储它。 $mycontent = $_POST['theDocument'] - 可以通过 ajax 被 javascript 调用。
【解决方案2】:

$_SERVER['SCRIPT_NAME'] 用于主文件。

__FILE__ 获取调用它的文件的完整路径。

PHP 没有像 jQuery 这样的内置 DOM Manipulator - html 输出通常是通过您选择的某些模板引擎或手动生成的。 如果你想要像 jQuery 这样的 DOM 操作,你可能想试试 PHPQuery

http://code.google.com/p/phpquery/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-19
    • 1970-01-01
    • 2019-06-01
    • 2020-06-12
    • 2023-03-22
    • 2018-11-09
    • 1970-01-01
    相关资源
    最近更新 更多