2012-05-04 75 views
0

我有一个用PHP编写的页面,在PHP写入页面后,我希望能够搜索HTML源代码以查找某些标记。这是不可能的/不明智的?数据抓取页面JUST用PHP编写

我想在当一切都已经在技术上已经被写入HTML脚本的末尾使用的file_get_contents,我想我可能会打破我的页面暂时这样(打我的主机上的资源限制)

我的主要目标是试图找出如何使用Javascript来逐个更改我的页面元素。我想我可以做的,如果我可以找到我试图改变的HTML标签...哪些PHP写在...在同一页。

对Javascript很新颖,你看。

+0

你能解释一下你打算用Javascript做什么?一个一个地改变元素?按课程? ID?哪种类型的元素?这是有用的,因为Javascript将帮助您即时更改内容,但取决于您想要更改的内容,它可能会有所不同。 – Vladimir

+0

我有点困惑。你是否需要你的PHP脚本来搜索标签以便为JavaScript提供某种暗示?因为如果您只想在编写JavaScript之前了解文档的结构,那么您可以像平常一样运行PHP,并以您喜欢的方式检查输出。 – Chuck

+0

我想要做的是弄清楚如何动画列表。看,页面显示一个列表(不是李格式)的帖子,基于条目组合成一个文本文件,内在。因此,当它吐出到HTML中时,它是一个制作的帖子的集合,并通过它们的div标签进行特定的分隔和着色....静态版本工作正常,所以现在我想要做的是动画化每篇文章,我不确定如何定位每个帖子来做到这一点。也许是每个div标签内的每个div标签的foreach相当于一个master wrapper div标签。我甚至不知道我是否应该使用PHP。不知道哪里开始 – user1159454

回答

1

你可以很容易地做到这一点,客户端,与jQuery。

如果你绝对需要使用php来处理服务器端,并且在生成代码时绝对不能这样做,那么可以使用ob_start()捕获输出,然后使用ob_get_contents()将其放入字符串中做ob_end_clean()将其刷新到浏览器。

0

您可以在大多数浏览器中右键单击您的渲染网页并选择一些“查看源代码”的变体。或者,您可以将网页的内容cURL,并将其视为文本文件。

此外,file_get_contents();发出一个新的请求来获取页面/文件的内容。所以,如果你加载一个页面,并且在底部,它会尝试获取页面内容,它会永久加载一个新页面,然后再加载一个页面。您正在创建一个无限循环,并耗尽您分配的资源,这取决于您的托管服务提供商。

0

如果我没有理解错了,页面加载后,你想改变自己的HTML输出,所以,

<?php 
echo "<div id='mydiv'></div>"; 
?> 
<script type="text/javascript"> 

     window.onload = function() { 
     document.getElementById("mydiv").innerHTML = "updated html"; 
     } 

</script> 
0

除非你捕获它的输出为您生成的网页,例如:

<?php 

ob_start(); 
.... page building here ... 
$page = ob_get_clean(); 
echo $page; 
?> 

你将没有任何工作。但是,如果您按上述方式进行捕获,那么您只需将$页面送入DOM并在那里操作即可。

但是这引发了一个问题......如果您需要在页面生成后更改页面,为什么不改变它的构建方式呢?