浏览代码

Add Nickname Lexer

Daniel Supernault 7 年之前
父节点
当前提交
63c665cdc9
共有 1 个文件被更改,包括 38 次插入0 次删除
  1. 38 0
      app/Util/Lexer/Nickname.php

+ 38 - 0
app/Util/Lexer/Nickname.php

@@ -0,0 +1,38 @@
+<?php
+
+namespace App\Util\Lexer;
+
+class Nickname {
+
+    public static function normalizeProfileUrl($url)
+    {
+      if(!str_contains($url, '@') && filter_var($url, FILTER_VALIDATE_URL)) {
+        $parsed = parse_url($url);
+        $username = str_replace(['/','\\','@'], '', $parsed['path']);
+        return ['domain' => $parsed['host'], 'username' => $username];
+      }
+      $parts = explode('@', $url);
+      $username = null;
+      $domain = null;
+
+      foreach ($parts as $part) {
+
+        // skip empty array slices
+        if(empty($part)) { 
+          continue; 
+        }
+
+        // if slice contains . assume its a domain
+        if(str_contains($part, '.')) {
+          $domain = filter_var($part, FILTER_VALIDATE_URL) ?  
+                    parse_url($part, PHP_URL_HOST) : 
+                    $part;
+        } else {
+          $username = $part;
+        }
+
+      }
+      return ['domain' => $domain, 'username' => $username];
+    }
+
+}