<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ~~~ <?php namespace lib; class GetImgSrc { /** * 提取HTML文章中的圖片地址 * * @param string $data HTML或者文章 * @param int $num 第 $num 個圖片的src,默認為第一張 * @param string $order 順取倒取; 默認為 asc ,從正方向計數。 desc 從反方向計數 * @param string|array $blacklist 圖片地址黑名單,排除圖片地址中包含該數據的地址;例如 傳入 baidu.com 會排除 src="http://www.baidu.com/img/a.png" * @param string $model 默認為字符串模式;可取值 string preg;string模式處理效率高,PHP版本越高速度越快,可比正則快幾倍 * * @return false | null | src 當data為空時返回 false , src不存在時返回 null ,反之返回src */ public static function src($data, $num = 1, $order = 'asc', $blacklist = false, $model = 'string') { if (isset($data)) { if ($model === 'preg') { $imgSrc = self::pregModel($data, $num - 1, $order); } else { $imgSrc = self::strModel($data, $num, $order); } if ($blacklist === false) { return $imgSrc; } else { if (is_array($blacklist)) { foreach ($blacklist as $value) { if (strpos($imgSrc, $value) !== false) { return self::src($data, $num + 1, $order, $blacklist, $model); }; } return $imgSrc; } else { if (strpos($imgSrc, $blacklist) === false) { return $imgSrc; } else { return self::src($data, $num + 1, $order, $blacklist, $model); } } } } else { return false; } } /** * 提取HTML文章中的圖片地址 * * @param string $data HTML或者文章 * @param int $startNum 默認為1,從第一張圖片開始抽取 * @param int $length 從 $startNum 開始抽取,共抽取 $length 張;默認為0,為0則抽取到最后 * @param string $order 順取倒取; 默認為 asc ,從正方向計數。 desc 從反方向計數 * @param string|array $blacklist 圖片地址黑名單,排除圖片地址中包含該數據的地址;例如 傳入 img.baidu.com 會排除 src="img.baidu.com/a.png" * @param string $model 抽取集合時,默認為正則模式;可選模式:preg string,當 $length > 3 或者 $length = * 0時,強制使用正則模式,因為取的數量大時,正則速度更快。 * * @return 圖片地址的集合數組,若無則返回空數組[] */ public static function srcList( $data, $startNum = 1, $length = 0, $order = 'asc', $blacklist = false, $model = 'preg' ) { if ($model === 'preg' || $length > 3 || $length === 0) { $imgSrcArr = self::pregModel($data, [$startNum - 1, $length, $blacklist], $order); } else { $imgSrcArr = []; for ($i = $startNum; $i < $startNum + $length; $i++) { $imgSrc = self::strModel($data, $i, $order); if (is_array($blacklist)) { $blackBool = true; foreach ($blacklist as $k => $v) { if (strpos($imgSrc, $blacklist) !== false) { $blackBool = false; } } if ($blackBool) { $imgSrcArr[] = $imgSrc; } else { $length++; } } else { if (strpos($imgSrc, $blacklist) === false) { $imgSrcArr[] = $imgSrc; } else { $length++; } } } } return $imgSrcArr; } /** * @param $str * @param $num * @param $order * * @return bool|string|null */ public static function strModel($str, $num, $order) { $topStr = null; if ($order != 'asc') { $funcStr = 'strrpos'; } else { $funcStr = 'strpos'; } for ($i = 1; $i <= $num; $i++) { $firstNum = $funcStr($str, '<img'); if ($firstNum !== false) { if ($order != 'asc') { $topStr = $str; $str = substr($str, 0, $firstNum); } else { $str = substr($str, $firstNum + 4); } } else { return null; } } $str = $order == 'asc' ? $str : $topStr; $firstNum1 = $funcStr($str, 'src='); $type = substr($str, $firstNum1 + 4, 1); $str2 = substr($str, $firstNum1 + 5); if ($type == '\'') { $position = strpos($str2, "'"); } else { $position = strpos($str2, '"'); } $imgPath = substr($str2, 0, $position); return $imgPath; } /** * @param $str * @param $num * @param $order * * @return string|array|null */ public static function pregModel($str, $num, $order) { preg_match_all("/<img.*>/isU", $str, $ereg); $img = $ereg[0]; if ($order != 'asc') { $img = array_reverse($img); }; if (is_array($num)) { $startNum = $num[0]; $length = $num[1]; $blacklist = $num[2]; $imgSrcArr = []; foreach ($img as $key => $value) { $imgSrc = $value; $pregModel = "/src=('|\")(.*)('|\")/isU"; preg_match_all($pregModel, $imgSrc, $img1); if (is_array($blacklist)) { $blacklistBool = true; foreach ($blacklist as $v) { if (strpos($img1[2][0], $v) !== false) { $blacklistBool = false; }; } if ($blacklistBool) { $imgSrcArr[] = $img1[2][0]; }; } else { if (strpos($img1[2][0], $blacklist) === false) { $imgSrcArr[] = $img1[2][0]; }; } } if ($length > 0) { return array_slice($imgSrcArr, $startNum, $length); } else { return array_slice($imgSrcArr, $startNum); } } else { if ( ! empty($img[$num])) { $imgStr = $img[$num]; $pregModel = "/src=('|\")(.*)('|\")/isU"; preg_match_all($pregModel, $imgStr, $img1); return $img1[2][0]; } else { return null; } } } } /* $str = '<div> <p>這里是普通文字</p> <p>這里是干擾元素測試\'\'"""</p> <img src="src1.png"/> <img src=\'src2.png\'/> <img src="src3.jpg"/> <img src="src4.jpg"/> <img src="src5.jpg"/> </div>'; $src = GetImgSrc::srcList($str, 2, 3, 'asc', false, 'string'); $src2 = GetImgSrc::src($str, 2, 3, 'asc', false); var_dump($src); var_dump($src2); */ ?> ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看