Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将不同PHP应用程序中的内容显示到单个PHP应用程序中_Php_Yii - Fatal编程技术网

将不同PHP应用程序中的内容显示到单个PHP应用程序中

将不同PHP应用程序中的内容显示到单个PHP应用程序中,php,yii,Php,Yii,我正在创建一个PHP应用程序,它将根据用户位置显示一些分类广告/列表。例如: 我们来自芝加哥的分类广告: 第1类 分类2 分类3 现在,我还想在我自己的页面上显示一些其他分类网站的“分类广告”。像这样: 更多来自芝加哥的分类广告(courtsey ofXYZ.com) 第1类 分类2 分类3 分类4 来自芝加哥的更多分类广告(ABC.com的courtsey) 第1类 分类2 分类3 这样,用户可以看到托管在我的服务器上的分类广告,以及来自其他常见分类网站的分类广告 这可能吗?请注意

我正在创建一个PHP应用程序,它将根据用户位置显示一些分类广告/列表。例如:

我们来自芝加哥的分类广告

  • 第1类
  • 分类2
  • 分类3
现在,我还想在我自己的页面上显示一些其他分类网站的“分类广告”。像这样:

更多来自芝加哥的分类广告(courtsey ofXYZ.com

  • 第1类
  • 分类2
  • 分类3
  • 分类4
来自芝加哥的更多分类广告(ABC.com的courtsey)

  • 第1类
  • 分类2
  • 分类3
这样,用户可以看到托管在我的服务器上的分类广告,以及来自其他常见分类网站的分类广告

这可能吗?请注意1)没有可用于导入这些分类广告的“RSS”提要;如果可能的话,我想以小部件的形式显示这些列表。即显示一个iframe/widget框(不确定技术术语是什么),并在该框中显示所有外部分类。 请参见此处的粗略模型:


我想我可以将其他分类网站加载到“iframes”中,但我会得到整个网站(包括它们的页眉/页脚、徽标等)。我只想从他们的网站上找到一些相关的“分类”部分。

你想看看如何通过爬行器和解析器设置进行屏幕抓取。您可以使用CURL或file\u get\u内容引入网页,然后使用正则表达式和字符串运算符筛选出所需的数据,然后构建一个页面来显示它。这是一个过于简化的完整答案,但如果我给你100行代码来完成这个,那将是作弊

由于缺少API或feed,我唯一能想到的就是必须提取相关的url并从中提取数据。只要标记是整洁的,用文件内容和DOMDocument混合解析数据应该很简单。

我认为最好的选择是建立一个异步的web爬虫,从这些站点获取数据

您可以将其设置为每天00:00爬网,并将内容存储在数据库中,例如:

external_classified
id
site_source
city_id
extra_data
之后,您可以从PHP应用程序中获得它,而不会出现任何问题


编辑:请注意,我所考虑的解决方案是异步的!其他答案使用同步操作来获取数据。我认为一遍又一遍地获取相同的分类是浪费时间。不过,公平地说,这些解决方案更易于实现。

这些站点是否通过API公开其数据?如果不是,你可能会看到屏幕抓取,这将是不好的。此外,您是否检查了他们的t+c以确保可以使用他们的数据(假设他们没有API)。没有RSS提要和API。是的,如果我在我的网站上显示他们的数据,他们是可以的。我不是托管他们的数据,只是显示分类的标题和图像。当有人点击标题时,用户将被发送到他们的站点。此外,由于他提到了Yii,他可以使用Yii的缓存系统来存储远程数据,这对于任何第三方数据都是一个好主意。