찾다
php教程php手册php正则表达式解析字符串里的所有URL地址

本文章给大家介绍在php正则表达式解析字符串里的所有URL地址实现代码,有需要了解学习的朋友可进入参考。

分享一个同事写的URL正则表达式,缺点不支持中文URL:

 代码如下 复制代码

(http[s]{0,1}|ftp)://[a-zA-Z0-9.-]+.([a-zA-Z]{2,4})(:d+)?(/[a-zA-Z0-9.-~!@#$%^&*+?:_/=]*)?

下面介绍一个可以支持中文正则url

 

 代码如下 复制代码
var regexp = new RegExp("(http[s]{0,1}|ftp)://[a-zA-Z0-9.-]+.([a-zA-Z]{2,4})(:d+)?(/[a-zA-Z0-9.-~!@#$%^&*+?:_/=]*)?", "gi");
var urls = textbox.value.match(regexp) || [];//textbox为文本框
console.log(urls);


实例

 代码如下 复制代码

// $html        = the html on the page
// http://pic2.phprm.com/2013/05/22/$current_url.jpg = the full url that the html came from (only needed for $repath)
// $repath      = converts ../ and / and // urls to full valid urls
function pageLinks($html, $current_url = "", $repath = false){
    preg_match_all("/    $links = array();
    if(isset($matches[2])){
        $links = $matches[2];
    }
    if($repath && count($links) > 0 && strlen($current_url) > 0){
        $pathi      = pathinfo($current_url);
        $dir        = $pathi["dirname"];
        $base       = parse_url($current_url);
        $split_path = explode("/", $dir);
        $url        = "";
        foreach($links as $k => $link){
            if(preg_match("/^../", $link)){
                $total = substr_count($link, "../");
                for($i = 0; $i                     array_pop($split_path);
                }
                $url = implode("/", $split_path) . "/" . str_replace("../", "", $link);
            }elseif(preg_match("/^///", $link)){
                $url = $base["scheme"] . ":" . $link;
            }elseif(preg_match("/^/|^.//", $link)){
                $url = $base["scheme"] . "://" . $base["host"] . $link;
            }elseif(preg_match("/^[a-zA-Z0-9]/", $link)){
                if(preg_match("/^http/", $link)){
                    $url = $link;
                }else{
                    $url       = $dir . "/" . $link;
                }
            }
            $links[$k] = $url;
        }
    }
    return $links;
}
header("content-type: text/plain");
$url = "http://www.phprm.com";
$html = file_get_contents($url);
// Gets links from the page:
print_r(pageLinks($html));

// Gets links from the page and formats them to a full valid url:
print_r(pageLinks($html, $url, true));



성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경