php 实现从其他网站拷贝的富文本内容并将里面的图片抓取到本地

<span style="white-space:pre">	</span>function getImgByReg($str)
	{
		$list = array();
		$c1 = preg_match_all('/<img\s.*?>/', $str, $m1);
		for($i = 0; $i < $c1; $i++) {
			$c2 = preg_match_all('/(\w+)\s*=\s*(?:(?:(["\'])(.*?)(?=\2))|([^\/\s]*))/', $m1[0][$i], $m2);
			for($j = 0; $j < $c2; $j++) {
				$list[$i][$m2[1][$j]] = !empty($m2[4][$j]) ? $m2[4][$j] : $m2[3][$j];
			}
		}

		return $list;
	}
<span style="white-space:pre">	</span>function replaceImg($list, $url)
	{
	    $newImgTags = array();
	    $newImgUrls = array();

	    foreach ($list as $key => $val) {
	    	$imgTag = '<img ';
	    	foreach ($val as $attr => $v) {
	    		if ($attr === 'src') {
	    			$imgTag .= $attr . '="' . $url . $v . '" ';
	    			$newImgUrls[] = $url . $v;
	    		} else {
	    			$imgTag .= $attr . '="' . $v . '" ';
	    		}
	    	}
	    	$imgTag .= ' >';

	    	$newImgTags[$key] = $imgTag;
	    }

	    return array('newImgTags' => $newImgTags, 'newImgUrls' => $newImgUrls);
	}
// 模拟使用

//你想要保存图片的目录
$dist = '/User/www/img/' . date('/Y/m/d');
!is_dir($dist) && mkdir($dist, 0777, true);

define('<span style="font-family: Arial, Helvetica, sans-serif;">URLHOLDER', </span><span style="font-family: Arial, Helvetica, sans-serif;">'{{urlholer}}');</span><span style="font-family: Arial, Helvetica, sans-serif;">
</span>// 你的图片服务器或目录地址
$url = URLHOLDER . '/img/' . date('/Y/m/');
<p class="p1"><span class="s1">// 这是模拟你需要替换的用户提交的富文本内容 里面包含图片地址</span></p><p class="p1"><span class="s1">$content = </span>'<p>Push&nbsp;Pop&nbsp;Pressè?´å??äº?å??é€ ä¸€ä¸ªé€¼ç??ç??ã€?充满物ç??æ??å<img class="mm" src="http://cms.csdnimg.cn/article/201406/04/538edd87c1b25.jpg">º”ç??体éª?ã€?POPå°±æ?¯å?¨è¿?个ç??念ä¸?å?¬ç”?å?ºæ?¥ç??新一代æ??æ??ã€?</p><p>POP使用Objective-C++ç¼–å??ã€?Objective-C++æ?¯å¯¹C++ç??扩å±?ï¼?å°±å??Objective-Cæ?¯Cç??扩å±?ä¸€æ ·ã€?è€?è?³äº?为什ä¹?他们用Objective-C++è€?ä¸?æ?¯çº¯ç²¹ç??Objective-Cï¼?å??å? å?¨äº?他们æ?´å–?欢Objective-C++ç??语æ³?特性所æ??ä¾?ç??便å?©ã€?</p><p><strong>POPç??æ?¶æ??</strong></p><p>POPç?®å‰?ç”±å??个é?¨å??ç»?æ??ï¼?å¦?å?¾1所示)ï¼?å?³Animationsã€?Engineã€?Utilityã€?WebCoreã€?</p><p>å?¾1 &nbsp;POPæ?¶æ??å?¾</p><p><img src="http://cms.csdnimg.cn/article/201406/04/538edd54d9240.jpg" />POPå?¨ç”»æ??为æµ?ç?…ï¼?å…¶ç§?å¯?å°±å?¨äº?è¿?个å¼?æ“?中ç??POPAnimatorã€?POPé€?è¿?CADisplayLink让å?¨ç”»å®?ç?°äº?60&nbsp;FPSç??æµ?ç?…æ??æ??ï¼?æ‰“é€ äº?一个游æ??级ç??å?¨ç”»å¼?æ“?ã€?</p><p>CADisplayLinkæ?¯ç±»ä¼¼NSTimerç??å®?æ—¶å?¨ï¼?ä¸?å??ä¹?å¤?å?¨äº?ï¼?NSTimer用äº?æ?‘们å®?义任å?¡ç??执</p>'<span class="s1">;</span></p>
$res = saveImgFromList($content, $dist, $url);
$param = array();

// 你想要的内容
$param['content'] = $res['content'];
// 内容里面图片url组成的数组
$param['image_urls'] = $res['image_urls'];

这时你的内容就可以入库了

php 实现从其他网站拷贝的富文本内容并将里面的图片抓取到本地,布布扣,bubuko.com

时间: 2024-08-04 14:16:44

php 实现从其他网站拷贝的富文本内容并将里面的图片抓取到本地的相关文章

富文本内容简单的的增删改查

由于html本身的textarea标签的文本编辑功能较为简单,不能设置文字的样式,因此需要富文本控件来增强textarea的功能.       一些常见的富文本控件有:UEditor.kindeditor.simditor.bootstrap-wysiwyg.wangEditor.CKEditor.tinymce,各有优缺点,网上也有对不介绍,不再赘述. 此处选用tinymce,因其兼容性较好,插入页面也较为简单,此外还有丰富的插件可以扩展功能. 首先,在页面上使用tinymce:1.引入js文

ASP.NET网站使用Kindeditor富文本编辑器配置步骤

1. 下载编辑器 下载 KindEditor 最新版本,下载页面: http://www.kindsoft.net/down.php 2. 部署编辑器 解压 kindeditor-x.x.x.zip 文件,将editor文件夹复制到web目录下  3.在网页中加入(ValidateRequest="false") 1 <%@ Page Language="C#" AutoEventWireup="true" ValidateRequest=

Coretext实现富文本图文混排及Gif图片播放

CoreText是iOS3.2推出的一套文字排版和渲染框架,可以实现图文混排,富文本显示等效果. CoreText中的几个重要的概念:  CTFont CTFontCollection CTFontDescriptor CTFrame CTFramesetter CTGlyphInfo CTLine CTParagraphStyle CTRun CTTextTab CTTypesetter 先来了解一下该框架的整体视窗组合图: CTFrame 作为一个整体的画布(Canvas),其中由行(CTL

解决HTML5(富文本内容)连续数字、字母不自动换行

最近开发了一个与富文本相关的功能,大概描述一下:通过富文本编辑器添加的内容,通过input展示出来(这里用到了 Vue 的 v-html 指令). 也是巧合,编辑了一个只有数字组成的长文本,等到展示的时候发现,内容超出了(没有自动换行),另外发现遇到文字就可以换行,如下图所示: 在查资料的过程中发现,不只是数字不会自动换行,还有字母也不会自动换行,造成这种现象的原因是<p>标签的问题. 解决方法: 接下来介绍一下上面问题的两种解决方法: 1.方法一——对input标签设置 .input_con

Editor富文本编辑器配置【不含图片上传】

一,下载地址:http://ueditor.baidu.com/website/download.html 1)根据需要下载相应版本 例  Java:选择jsp+utf-8: 二,放置在项目中 1)解压下载文件,并重命名为editor: 2)复制文件放置在项目webapp目录下: 3)把editor目录下的js文件(3个)剪切放在你的js文件目录下: 4)复制editor内全部文件到js目录一份(不复制可以使用,但页面会报404错误,估计是在初始化时需要访问其他文件) 三,配置静态资源映射 1)

使用layui富文本添加日志内容,并获取子窗体的富文本内容

效果图 点击内容 已经把值赋值到table td中 点击内容跳到子页面进行展示 -----------------------------------------------------上边是添加项下边修改时注意 function removeHTMLTag(str) { str = str.replace(/<\/?[^>]*>/g,''); //去除HTML tag str = str.replace(/[ | ]*\n/g,'\n'); //去除行尾空白 //str = str.r

实现一个简易的富文本编辑器(二):给富文本添加自定义事件

为富文本添加一个提交按钮,点击按钮可以获取富文本内容.但是在提交前或者提交后我想做一些操作,比如内容校验内容清空等等. 我们直接在该按钮上绑定点击事件同样可以达到目的,但是为了组件化,所以本例打算为提交按钮自定义beforeSubmit.afterSubmit两个事件. 1.创建发布订阅者对象 前文说到,事件系统是发布-订阅模式的一个实现,模式给事件发布函数与事件处理函数进行解耦,使得两者无直接调用关系. 简易发布订阅者对象实现如下: var Event = { // _cachePool :

MVC富文本编辑器CKEditor配置CKFinder

富文本编辑器CKEditor的使用 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* BLOCKS =============================================================================*/ p, blockquote, ul, ol, dl, table, pre { margin:

富文本编辑器和fastdfs的使用

宜立方商城的系统架构a) 功能介绍(项目架构,有哪些功能模块,这些功能模块如何实现?)b) 架构讲解工程搭建-后台工程c) 使用maven搭建工程(后台工程如何搭建?)d) 使用maven的tomcat插件启动工程SSM框架整合. 服务中间件dubbo,使用dubbo实现soa架构.项目改造为基于SOA架构(什么是SOA架构,有什么好处,如何使用),面向服务的架构 图片上传功能分析,图片服务器,如何保存图片,如何访问图片?nginx的安装:反向代理服务器.Nginx配置虚拟机,Nginx实现反向