PHP에서 긴 링크를 짧은 링크로 변환하는 방법
광활한 인터넷 세상에서 긴 링크는 일상생활에서 피할 수 없는 일부가 되었습니다. 긴 링크는 사람들이 기억하기 어렵게 만들 뿐만 아니라 텍스트 레이아웃 측면에서도 매우보기 흉합니다. 그렇다면 긴 링크를 짧은 링크로 변환하는 방법은 무엇일까요? PHP는 널리 사용되는 프로그래밍 언어입니다. 이 기사에서는 PHP를 사용하여 긴 링크를 짧은 링크로 간단히 변환하는 방법을 소개합니다.
짧은 링크에 대한 간략한 소개
짧은 링크는 인터넷을 기반으로 한 특수 링크로, 특수 알고리즘을 사용하여 긴 링크를 짧은 링크로 변환함으로써 링크의 미적 특성, 가독성 및 공유성을 향상시킵니다. 짧은 링크는 일반적으로 길이가 10~20자에 불과한 짧은 문자열 형태입니다. 긴 링크를 짧은 링크로 변환하면 링크를 공유하고 전파하는 것이 더 편리할 뿐만 아니라 방문 횟수도 더 잘 계산할 수 있습니다. 링크의.
php를 사용하여 짧은 링크를 생성하는 방법
짧은 링크 생성은 두 단계로 나누어야 합니다. 첫 번째 단계는 짧은 링크 생성 알고리즘을 설계하는 것이고, 두 번째 단계는 짧은 링크를 데이터베이스에 저장하는 것입니다. 쿼리할 때 짧은 링크를 구문 분석합니다. 긴 링크를 가져와서 점프합니다.
짧은 링크 생성 알고리즘 설계
일반적으로 짧은 링크 생성 알고리즘은 다음 요구 사항을 충족해야 합니다.
1 생성된 짧은 링크는 고유해야 하며 반복되지 않아야 합니다.
2. 생성된 짧은 링크는 가능한 한 짧은 문자열에 가까워야 합니다.
3. 생성된 짧은 링크는 되돌릴 수 있어야 합니다. 즉, 짧은 링크를 통해 긴 링크를 복원할 수 있습니다.
현재 일반적으로 사용되는 짧은 링크 알고리즘은 두 가지가 있습니다. 하나는 긴 링크를 암호화하여 짧은 링크로 변환하는 것입니다. 일반적으로 사용되는 암호화 알고리즘에는 md5 및 base64가 있지만 이 알고리즘의 짧은 링크 길이는 더 길어집니다. 또 다른 알고리즘은 긴 링크를 10진수 또는 16진수로 된 짧은 링크로 변환하고 현재 타임스탬프와 사용자 정의 값을 기반으로 생성하는 것입니다. 이 알고리즘은 생성 속도가 더 빠르며 생성된 짧은 링크는 길이가 더 짧고 반복되지 않습니다. .
다음으로 두 번째 알고리즘을 사용하여 짧은 링크를 생성하는 PHP 구현 방법을 소개합니다.
먼저 몇 가지 변수를 정의합니다:
$url = 'http://www.example.com/longurl'; //待转换的长链接 $base = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; //定义62进制字符 $prefix = 'http://s.com/'; //自定义短链接前缀
다음으로 긴 링크를 10진수 또는 16진수 짧은 링크로 변환해야 합니다.
$hex = md5($url); $hexLen = strlen($hex); $subHexLen = $hexLen / 8; $output = array(); for ($i = 0; $i < $subHexLen; $i++) { $subHex = substr($hex, $i * 8, 8); $int = 0x3FFFFFFF & (1 * ('0x' . $subHex)); $out = ''; for ($j = 0; $j < 6; $j++) { $val = 0x0000003D & $int; $out .= $base[$val]; $int = $int >> 5; } $output[] = $out; } $key = array_rand($output); $shortUrl = $prefix . $output[$key];
위 코드에서는 먼저 md5를 사용하여 긴 링크 암호화를 수행한 다음 처리합니다. 암호화된 결과를 10진수 또는 62자리의 짧은 링크로 변환합니다. 다음으로, 고유한 키 값을 무작위로 생성하여 여러 개의 짧은 링크 중에서 하나의 짧은 링크를 선택하고, 마지막으로 Custom Prefix와 선택된 고유한 짧은 링크를 최종 짧은 링크로 접합합니다.
짧은 링크를 데이터베이스에 저장
위 코드에서는 짧은 링크를 생성했지만 아직 데이터베이스에 저장하지 않았습니다. 여기서는 짧은 링크를 데이터베이스에 저장하기 위해 mysql 데이터베이스를 사용합니다.
include 'config.php'; //包含数据库连接配置文件 $long_url = 'http://www.example.com/longurl'; //长链接 //生成短链接的代码 $hex = md5($long_url); $hexLen = strlen($hex); $subHexLen = $hexLen / 8; $output = array(); for ($i = 0; $i < $subHexLen; $i++) { $subHex = substr($hex, $i * 8, 8); $int = 0x3FFFFFFF & (1 * ('0x' . $subHex)); $out = ''; for ($j = 0; $j < 6; $j++) { $val = 0x0000003D & $int; $out .= $base[$val]; $int = $int >> 5; } $output[] = $out; } $key = array_rand($output); $short_url = $prefix . $output[$key]; //将短链接存储到数据库中 $insert_sql = "INSERT INTO `short_url` (`long_url`, `short_url`, `create_time`) VALUES ('{$long_url}', '{$short_url}', NOW())"; //将长链接和短链接插入数据库中 $conn->query($insert_sql); //执行插入操作 $conn->close(); //关闭数据库连接
위 코드에서는 long_url과 short_url이라는 두 개의 변수를 정의하여 각각 긴 링크와 짧은 링크를 저장한 다음 SQL 문을 삽입하여 긴 링크와 짧은 링크를 short_url
테이블에 삽입합니다. 이 중 create_time 필드는 짧은 링크가 생성된 시간을 저장하며, 데이터 타입은 DATETIME이다.
짧은 링크를 통해 긴 링크로 점프
마지막으로 짧은 링크를 구문 분석하고 데이터베이스에서 해당 긴 링크를 쿼리한 후 점프해야 합니다. 코드는 다음과 같이 구현됩니다.
include 'config.php'; //包含数据库连接配置文件 $short_url = 'http://s.com/abcd'; //短链接 //从数据库中查询出对应的长链接 $select_sql = "SELECT long_url FROM `short_url` WHERE `short_url`='{$short_url}'"; $result = $conn->query($select_sql); //执行查询操作 $row = $result->fetch_array(MYSQLI_ASSOC); //跳转到长链接 if ($row) { $long_url = $row['long_url']; header('location:' . $long_url); //跳转到原来的长链接 exit; } else { echo '短链接不存在'; //如果短链接不存在,则输出短链接不存在 } $conn->close(); //关闭数据库连接
위 코드에서는 먼저 짧은 링크를 매개변수로 사용하여 데이터베이스를 쿼리하고 해당 긴 링크를 찾은 다음, 존재하는 경우 사용자를 긴 링크로 점프하고, 그렇지 않으면 출력합니다. 짧은 링크가 존재하지 않습니다.
요약
php는 널리 사용되는 프로그래밍 언어입니다. PHP의 기본 구문과 함수 라이브러리를 숙지하면 긴 링크를 짧은 링크로 변환하는 기능을 쉽게 구현할 수 있습니다. 이 기사에서 소개하는 짧은 링크를 생성하는 알고리즘은 가장 복잡하지는 않지만 컴퓨팅 속도와 링크 고유성이 뛰어나며 대부분의 애플리케이션 시나리오에 적합합니다. 짧은 링크 생성의 안정성과 쿼리 속도를 향상시키기 위해 독자는 실제 요구 사항에 따라 코드를 개선하는 것이 좋습니다.
위 내용은 PHP에서 긴 링크를 짧은 링크로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP 8의 JIT 컴파일은 자주 실행되는 코드를 컴퓨터 코드로 컴파일하여 성능을 향상시켜 계산이 많은 응용 프로그램에 도움이되고 실행 시간을 줄입니다.

이 기사는 코드 주입과 같은 취약점을 방지하기 위해 PHP 파일 업로드 보안에 대해 설명합니다. 파일 유형 유효성 검증, 보안 저장 및 오류 처리에 중점을 두어 응용 프로그램 보안을 향상시킵니다.

이 기사는 PHP 및 완화 전략의 OWASP Top 10 취약점에 대해 설명합니다. 주요 문제에는 PHP 응용 프로그램을 모니터링하고 보호하기위한 권장 도구가 포함 된 주입, 인증 파손 및 XSS가 포함됩니다.

이 기사는 PHP의 대칭 및 비대칭 암호화에 대해 논의하여 적합성, 성능 및 보안 차이를 비교합니다. 대칭 암호화는 더 빠르고 벌크 데이터에 적합하지만 안전한 키 교환에는 비대칭이 사용됩니다.

기사는 PHP, 커버 단계, 보안 측정, 최적화 기술 및 Solutions의 일반적인 오류를 사용하여 데이터베이스에서 데이터 검색에 대해 논의합니다. 문자 수 : 159

이 기사에서는 PHP에서 강력한 인증 및 승인을 구현하여 무단 액세스를 방지하고 모범 사례를 자세히 설명하고 보안 향상 도구를 권장합니다.

이 기사는 토큰 버킷 및 누출 된 버킷과 같은 알고리즘을 포함하여 PHP에서 API 요율 제한을 구현하고 Symfony/Rate-Limiter와 같은 라이브러리 사용 전략에 대해 설명합니다. 또한 모니터링, 동적 조정 요율 제한 및 손도 다룹니다.

이 기사는 CSRF 토큰, 동일한 사이트 쿠키 및 적절한 세션 관리를 포함하여 PHP의 CSRF 공격을 방지하는 전략에 대해 설명합니다.
