$rule='/\<img(?:\s.*)?src=[\'\"]?([^\'\"].+)[\"\']?(?:\s.*)?\>/U';
preg_match_all($rule,$content,$imgUrlArray);
foreach((array)$imgUrlArray[1] as $val){
if(substr($val,0,7)!='http://'){
echo "请把相对路径转换成绝对路径:".$val."<br>\n";
}
elseif (!copy($val, basename($val))){
echo "远程服务器不支持本方式获取文件:".$val.",请尝试socket!<br>\n";
}
else{
echo "copy".$val."成功。访问地址为:http://".$_SERVER['HTTP_HOST'].array_shift(pathinfo($_SERVER['PHP_SELF'])).'/'.basename($val)."<br>\n";
}
}
preg_match_all($rule,$content,$imgUrlArray);
foreach((array)$imgUrlArray[1] as $val){
if(substr($val,0,7)!='http://'){
echo "请把相对路径转换成绝对路径:".$val."<br>\n";
}
elseif (!copy($val, basename($val))){
echo "远程服务器不支持本方式获取文件:".$val.",请尝试socket!<br>\n";
}
else{
echo "copy".$val."成功。访问地址为:http://".$_SERVER['HTTP_HOST'].array_shift(pathinfo($_SERVER['PHP_SELF'])).'/'.basename($val)."<br>\n";
}
}
*把编辑器里的图片上传到本地,并替换URL *param $content 内容
*@return 返回更改后的内容
**/
function upPicFile($content)
{
//查找内容中图片地址的正则
$preg="/<img[^>]+src=\"?((http:\/\/)?(www.)?[^>]+[jpg|gif|png])\"?[^>]+>/i";
//正则匹配
preg_match_all($preg,$content,$records);
//循环内容中的URL
for($i=0;$i<count($records[1]);$i++)
{
//验证是否已是绝对路径
preg_match("/(http:\/\/)?(www.)?.*\..*\//i",$records[1][$i],$isAbs);
//如果是相对路径,则加上前缀
if(!$isAbs)
{
$content=str_replace($records[1][$i], SITEURL.$records[1][$i],$content);
//echo "test";
}
else
{
//验证图片是否已是本地图片
$localAddress=str_replace('/', '\/', SITEURL);
preg_match("/".$localAddress."/",$records[1][$i],$isLocal); //如果不是
if(!$isLocal)
{
//图片的URL
$picPath=$records[1][$i];//substr($records[1][$i],strrpos($records[1][$i],".")+1
//获取文件后辍名
$fileType=substr($picPath,strrpos($picPath,".")+1);
//文件保存路径和名称
$filePath="/FCKeditor/UserFiles/Image/".date("Ymd_His",time())."_".$i.".".$fileType;
//上传图片保存到本地,如果成功,则替换URL
if(copy($picPath,SITE_ROOT_PATH.$filePath))
{
$content=str_replace($picPath, SITEURL.$filePath,$content);
}
}
}
}
return $content;
}
上传不了图片,没有办法本地化。然后他又在前面多加了东西。变成 http://我的域名/图片所在域名/图片地址/
//正则匹配 preg_match_all($preg,$content,$records);
//echo $records;
echo count($records[1]);
显示 0