PHP:检测文本中的url,检查url是图像还是网站,然后返回图像
PHP: Detect url in text, check if url is image or website and then echo image
我在做一个项目,我需要做的是我有一些文本,在这个文本中它有很多单词,然后是一个url,它是一个图像。我首先需要做的是,检测这个url是一个网站还是一个图像,然后如果它是一个图像,我需要用<img>
标签显示图像,如果它是一个网站,用<a href>
标签回显url。到目前为止,我有一个脚本来检测它是url还是图像,但我仍然需要在文本中返回图像或url。脚本如下:
<?php
function detectImage($url) {
$url_headers=get_headers($url, 1);
if(isset($url_headers['Content-Type'])){
$type=strtolower($url_headers['Content-Type']);
$valid_image_type=array();
$valid_image_type['image/png']='';
$valid_image_type['image/jpg']='';
$valid_image_type['image/jpeg']='';
$valid_image_type['image/jpe']='';
$valid_image_type['image/gif']='';
$valid_image_type['image/tif']='';
$valid_image_type['image/tiff']='';
$valid_image_type['image/svg']='';
$valid_image_type['image/ico']='';
$valid_image_type['image/icon']='';
$valid_image_type['image/x-icon']='';
if(isset($valid_image_type[$type])){
echo "url is image";
} else {
echo "url is website";
}
}
}
?>
函数是返回可在程序中使用的值的例程。不要使用函数来输出东西。将函数重写为:
<?php
function isValidImage($url) {
$url_headers=get_headers($url, 1);
if(isset($url_headers['Content-Type'])){
$type=strtolower($url_headers['Content-Type']);
$valid_image_type=array();
$valid_image_type['image/png']='';
$valid_image_type['image/jpg']='';
$valid_image_type['image/jpeg']='';
$valid_image_type['image/jpe']='';
$valid_image_type['image/gif']='';
$valid_image_type['image/tif']='';
$valid_image_type['image/tiff']='';
$valid_image_type['image/svg']='';
$valid_image_type['image/ico']='';
$valid_image_type['image/icon']='';
$valid_image_type['image/x-icon']='';
if(isset($valid_image_type[$type])){
return true; // Its an image
}
return false;// Its an URL
}
}
然后在你的逻辑中使用这个函数:
<?php
$urls = [
'http://www.google.be',
'http://hearstcommerce.ca/customcontent/members/premium/sample.jpg',
];
foreach($urls as $url) {
if (isValidImage($url) {
echo '<img src="'.$url.'" />';
}else{
echo '<a href="'.$url.'">'.$url.'</a>';
}
}
易如反掌
if(isset($valid_image_type[$type])){
$ech = '<img src="'.$url.'"/>';
} else {
$ech = '<a href=".'$url'.">".'$url'."<a>';
}
echo $ech;
好的,我设法解决了它,我的解决方案是
?>
function detectImage($url) {
$url_headers=get_headers($url, 1);
if(isset($url_headers['Content-Type'])){
$type=strtolower($url_headers['Content-Type']);
$valid_image_type=array();
$valid_image_type['image/png']='';
$valid_image_type['image/jpg']='';
$valid_image_type['image/jpeg']='';
$valid_image_type['image/jpe']='';
$valid_image_type['image/gif']='';
$valid_image_type['image/tif']='';
$valid_image_type['image/tiff']='';
$valid_image_type['image/svg']='';
$valid_image_type['image/ico']='';
$valid_image_type['image/icon']='';
$valid_image_type['image/x-icon']='';
if(isset($valid_image_type[$type])){
return true;
} else {
return false;
}
}
}
function detectLink($string) {
$content_array = explode(" ", $string);
$output = '';
foreach($content_array as $content) {
if(substr($content, 0, 7) == "http://" || substr($content, 0, 4) == "www.") {
if (detectImage($content)===true) {
$content = '<img src="'.$content.'">';
} else {
$content = '<a href="'.$content.'">'.$content.'</a>';
}
}
$output .= " " . $content;
}
$output = trim($output);
return $output;
}
?>
任何人都可以随意使用!
相关文章:
- 使用带括号的图像URL作为jQuery的背景
- 可以't使用PHP使用Froala编辑器上传图像URL
- 语义ui表单验证:图像url
- 使用javascript从HTML网页中提取图像url
- 检测图像URL是否已损坏JQUERY
- Imgur|检索给定相册链接的直接图像URL
- 使用现有代码更改基于浏览器宽度的图像url
- 在按钮单击时将图像URL数据显示到弹出框中,而无需禁用背景
- 从图像URL javascript html保存图像文件
- jQuery获取不带引号的背景图像URL
- 如何从Node中的图像url将图像上传到谷歌云存储
- Genearate Cloudinary图像url,而不使用libs
- 正在尝试在SVG标记中显示图像URL
- Angular 2-检查图像url是否有效或已损坏
- 将跨度内容(图像url)转换为图像(显示)
- 使用JavaScript正则表达式从html srcset获取图像url
- 如何在谷歌图像搜索api v2中获取图像url
- Parse.com-在JavaScript SDK中模板化集合时检索图像URL
- 在Symfony中,我如何在javascript中编写图像url
- 将背景图像URL与正则表达式匹配