src/wcmf/lib/util/StringUtil.php
public static function getUrls($string) {
    preg_match_all("/<a[^>]+href=\"([^\">]+)/i", $string, $links);

    // find urls in javascript popup links
    for ($i=0; $i<sizeof($links[1]); $i++) {
      if (preg_match_all("/javascript:.*window.open[\(]*'([^']+)/i", $links[1][$i], $popups)) {
        $links[1][$i] = $popups[1][0];
      }
    }
    // remove mailto links
    for ($i=0; $i<sizeof($links[1]); $i++) {
      if (preg_match("/^mailto:/i", $links[1][$i])) {
        unset($links[1][$i]);
      }
    }
    preg_match_all("/<img[^>]+src=\"([^\">]+)/i", $string, $images);
    preg_match_all("/<video[^>]+src=\"([^\">]+)/i", $string, $videos);
    preg_match_all("/<audios[^>]+src=\"([^\">]+)/i", $string, $audios);
    preg_match_all("/<input[^>]+src=\"([^\">]+)/i", $string, $buttons);
    preg_match_all("/<form[^>]+action=\"([^\">]+)/i", $string, $actions);
    preg_match_all("/<link[^>]+href=\"([^\">]+)/i", $string, $css);
    preg_match_all("/<script[^>]+src=\"([^\">]+)/i", $string, $scripts);
    return array_merge($links[1], $images[1], $videos[1], $audios[1], $buttons[1], $actions[1], $css[1], $scripts[1]);
  }
public static function getUrls($string) {
    preg_match_all("/<a[^>]+href=\"([^\">]+)/i", $string, $links);

    // find urls in javascript popup links
    for ($i=0; $i<sizeof($links[1]); $i++) {
      if (preg_match_all("/javascript:.*window.open[\(]*'([^']+)/i", $links[1][$i], $popups)) {
        $links[1][$i] = $popups[1][0];
      }
    }
    // remove mailto links
    for ($i=0; $i<sizeof($links[1]); $i++) {
      if (preg_match("/^mailto:/i", $links[1][$i])) {
        unset($links[1][$i]);
      }
    }
    preg_match_all("/<img[^>]+src=\"([^\">]+)/i", $string, $images);
    preg_match_all("/<video[^>]+src=\"([^\">]+)/i", $string, $videos);
    preg_match_all("/<audios[^>]+src=\"([^\">]+)/i", $string, $audios);
    preg_match_all("/<input[^>]+src=\"([^\">]+)/i", $string, $buttons);
    preg_match_all("/<form[^>]+action=\"([^\">]+)/i", $string, $actions);
    preg_match_all("/<link[^>]+href=\"([^\">]+)/i", $string, $css);
    preg_match_all("/<script[^>]+src=\"([^\">]+)/i", $string, $scripts);
    return array_merge($links[1], $images[1], $videos[1], $audios[1], $buttons[1], $actions[1], $css[1], $scripts[1]);
  }
public static function getUrls ( $ string ) { preg_match_all ( "/<a[^>]+href=\"([^\">]+)/i" , $ string , $ links ) ; // find urls in javascript popup links for ( $ i = 0 ; $ i < sizeof ( $ links [ 1 ] ) ; $ i ++ ) { if ( preg_match_all ( "/javascript:.*window.open[\(]*'([^']+)/i" , $ links [ 1 ] [ $ i ] , $ popups ) ) { $ links [ 1 ] [ $ i ] = $ popups [ 1 ] [ 0 ] ; } } // remove mailto links for ( $ i = 0 ; $ i < sizeof ( $ links [ 1 ] ) ; $ i ++ ) { if ( preg_match ( "/^mailto:/i" , $ links [ 1 ] [ $ i ] ) ) { unset ( $ links [ 1 ] [ $ i ] ) ; } } preg_match_all ( "/<img[^>]+src=\"([^\">]+)/i" , $ string , $ images ) ; preg_match_all ( "/<video[^>]+src=\"([^\">]+)/i" , $ string , $ videos ) ; preg_match_all ( "/<audios[^>]+src=\"([^\">]+)/i" , $ string , $ audios ) ; preg_match_all ( "/<input[^>]+src=\"([^\">]+)/i" , $ string , $ buttons ) ; preg_match_all ( "/<form[^>]+action=\"([^\">]+)/i" , $ string , $ actions ) ; preg_match_all ( "/<link[^>]+href=\"([^\">]+)/i" , $ string , $ css ) ; preg_match_all ( "/<script[^>]+src=\"([^\">]+)/i" , $ string , $ scripts ) ; return array_merge ( $ links [ 1 ] , $ images [ 1 ] , $ videos [ 1 ] , $ audios [ 1 ] , $ buttons [ 1 ] , $ actions [ 1 ] , $ css [ 1 ] , $ scripts [ 1 ] ) ; }
Extraxt urls from a string.
@param $string The string to search in
@return An array with urls
@note This method searches for occurences of <a..href="xxx"..>, <img..src="xxx"..>, <video..src="xxx"..>,
<audio..src="xxx"..>, <input..src="xxx"..>, <form..action="xxx"..>, <link..href="xxx"..>, <script..src="xxx"..>
and extracts xxx.
Extraxt urls from a string .