検索したら、ありがたくありました。
https://qiita.com/mpyw/items/85d1e23dc7c58f1014d1
すばらしい。
リンク文字まで取得してくれるらしい。
リンクだけなら、ソースの文字コートも無視できるかな(これからやってみます)
やってみました。
すこし、取り切れないところがあったので、追加しました。
以下の部分です。
private static function parseUrl($url) からのあたり。pathがない場合や、schemeがない場合もあり、それがエラーになりましたので。
private static function parseUrl($url) {
if (!$p = parse_url($url) or (isset($p['path']) && self::isJavaScript($p['path']))) {
throw new InvalidArgumentException('Invalid URL');
}
$host = '';
if (isset($p['host'])) {
if(empty($p['scheme'])){
$p['scheme']="https";
}
$host .= $p['scheme'] . '://' . $p['host'];
if (isset($p['port'])) {
$host .= ':' . $p['port'];
}