Javascript PHP:检测文本中的url,检查url是图像还是网站,然后回显图像

Javascript PHP:检测文本中的url,检查url是图像还是网站,然后回显图像,javascript,php,html,image,url,Javascript,Php,Html,Image,Url,所以我正在做一个项目,我需要做的是我有一些文本,文本中有很多单词,然后是一个url,这是一个图像。首先我需要做的是,检测该url是网站还是图像,然后如果它是图像,我需要用标记显示图像,如果它是网站,则用标记回显url。到目前为止,我有一个脚本来检测它是url还是图像,但我仍然需要在文本中回显图像或url。以下是脚本: <?php function detectImage($url) { $url_headers=get_headers($url, 1); if(isset(

所以我正在做一个项目,我需要做的是我有一些文本,文本中有很多单词,然后是一个url,这是一个图像。首先我需要做的是,检测该url是网站还是图像,然后如果它是图像,我需要用
标记显示图像,如果它是网站,则用
标记回显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";
        }
    }
}
?>

函数是一个例程,返回可在程序中使用的值。 不要使用函数来输出stuf。将函数重写为:

<?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
    }
}
非常简单

if(isset($valid_image_type[$type])){
    $ech = '<img src="'.$url.'"/>';  
} else {
    $ech = '<a href=".'$url'.">".'$url'."<a>';
}
echo $ech;
if(isset($valid\u image\u type[$type])){
$ech='';
}否则{
$ech=“$url.”;
}
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;
    }
?>
?>
函数detectImage($url){
$url\u headers=get\u headers($url,1);
if(isset($url\u头['Content-Type'])){
$type=strtolower($url_头['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\u image\u type[$type])){
返回true;
}否则{
返回false;
}
}
}
函数detectLink($string){
$content\u数组=分解(“,$string);
$output='';
foreach($content\u数组作为$content){
如果(substr($content,0,7)=“http:/”| | substr($content,0,4)=“www.”){
if(detectImage($content)==true){
$content='';
}否则{
$content='';
}
}
$output.=''.$content;
}
$output=trim($output);
返回$output;
}
?>

任何人都可以随意使用

但是,如果字符串中也有文本,比如“hellp”,那么脚本只对图像有效,对文本无效。因此,首先,您必须在字符串中找到http://并且从那里到第一个“”空间是您要查找的URL,然后使用您的函数
       ?>    
       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;
    }
?>