loka1/social-links 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

loka1/social-links

最新稳定版本:v1.1.0

Composer 安装命令:

composer require loka1/social-links

包简介

Social links validator and sanitizer

README 文档

README

PHP library for validating, sanitizing, and detecting social media profile URLs.

Installation

composer require loka1/social-links

Usage

use SocialLinks\SocialLinks;
use SocialLinks\Type;

$sl = new SocialLinks();

Validate a URL

$sl->isValid('facebook', 'https://www.facebook.com/zuck');    // true
$sl->isValid('twitter', 'https://x.com/elonmusk');            // true
$sl->isValid('instagram', 'https://instagram.com/instagram'); // true
$sl->isValid('linkedin', 'https://linkedin.com/in/satyanadella'); // true

Extract profile ID

$sl->getProfileId('facebook', 'https://www.facebook.com/zuck'); // "zuck"
$sl->getProfileId('twitter', 'https://x.com/elonmusk');         // "elonmusk"

Build a canonical URL

$sl->getLink('facebook', 'zuck');                         // "https://facebook.com/zuck"
$sl->getLink('twitter', 'elonmusk');                      // "https://x.com/elonmusk"
$sl->getLink('linkedin', 'satyanadella', Type::MOBILE);   // "https://linkedin.com/mwlite/in/satyanadella"

Sanitize a messy URL

$sl->sanitize('facebook', 'http://www.facebook.com/zuck/');          // "https://facebook.com/zuck"
$sl->sanitize('twitter', 'https://twitter.com/elonmusk');            // "https://x.com/elonmusk"
$sl->sanitize('instagram', 'https://www.instagram.com/instagram/');  // "https://instagram.com/instagram"
$sl->sanitize('linkedin', 'http://de.linkedin.com/in/loka1/');   // "https://linkedin.com/in/loka1"

Auto-detect a profile

$sl->detectProfile('https://www.facebook.com/zuck');  // "facebook"
$sl->detectProfile('https://x.com/elonmusk');         // "twitter"
$sl->detectProfile('https://instagram.com/instagram');// "instagram"
$sl->detectProfile('https://linkedin.com/in/test');   // "linkedin"
$sl->detectProfile('https://example.com');            // ""

Custom profiles

use SocialLinks\ProfileMatch;
use SocialLinks\Type;

$sl = new SocialLinks(new Config(usePredefinedProfiles: false));
$sl->addProfile('myNetwork', [
    new ProfileMatch(
        match: '(https?://)?mynetwork.com/({PROFILE_ID})/?',
        group: 2,
        type: Type::DESKTOP,
        pattern: 'https://mynetwork.com/{PROFILE_ID}',
    ),
    new ProfileMatch(
        match: '({PROFILE_ID})',
        group: 1,
    ),
]);

$sl->isValid('myNetwork', 'https://mynetwork.com/johndoe'); // true

Configuration

use SocialLinks\Config;

// Disable predefined profiles
new SocialLinks(new Config(usePredefinedProfiles: false));

// Disable input trimming
new SocialLinks(new Config(trimInput: false));

// Allow URLs with query parameters
new SocialLinks(new Config(allowQueryParams: true));

Supported Networks

Network Desktop Mobile
Facebook facebook.com m.facebook.com
Twitter twitter.com, x.com mobile.twitter.com
Instagram instagram.com m.instagram.com
LinkedIn linkedin.com (with localized subdomains) linkedin.com/mwlite

Requirements

  • PHP >= 8.1
  • No runtime dependencies

License

MIT

统计信息

  • 总下载量: 6
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 5
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: Unknown
  • 更新时间: 2026-04-06

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固