Inhaltsverzeichnis
微博短链接算法php版本,微博算法php
Heim Backend-Entwicklung PHP-Tutorial 微博短链接算法php版本,微博算法php_PHP教程

微博短链接算法php版本,微博算法php_PHP教程

Jul 12, 2016 am 08:54 AM
php5

微博短链接算法php版本,微博算法php

思路:
1)将长网址md5生成32位签名串,分为4段, 每段8个字节;
2)对这四段循环处理, 取8个字节, 将他看成16进制串与0x3fffffff(30位1)与操作, 即超过30位的忽略处理;
3)这30位分成6段, 每5位的数字作为字母表的索引取得特定字符, 依次进行获得6位字符串;
4)总的md5串可以获得4个6位串; 取里面的任意一个就可作为这个长url的短url地址;

下面是PHP代码:

复制代码
<span>function</span> shorturl(<span>$url</span>='', <span>$prefix</span>='', <span>$suffix</span>=''<span>) {
    </span><span>$base32</span> = <span>array</span><span> (
       </span>'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h',
       'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
       'q', 'r', 's', 't', 'u', 'v', 'w', 'x',
       'y', 'z', '0', '1', '2', '3', '4', '5'<span>);
 
    </span><span>$hex</span> = <span>md5</span>(<span>$prefix</span>.<span>$url</span>.<span>$suffix</span><span>);
    </span><span>$hexLen</span> = <span>strlen</span>(<span>$hex</span><span>);
    </span><span>$subHexLen</span> = <span>$hexLen</span> / 8<span>;
    </span><span>$output</span> = <span>array</span><span>();
 
    </span><span>for</span> (<span>$i</span> = 0; <span>$i</span> < <span>$subHexLen</span>; <span>$i</span>++<span>) {
        </span><span>$subHex</span> = <span>substr</span> (<span>$hex</span>, <span>$i</span> * 8, 8<span>);
        </span><span>$int</span> = 0x3FFFFFFF & (1 * ('0x'.<span>$subHex</span><span>));
        </span><span>$out</span> = ''<span>;
        </span><span>for</span> (<span>$j</span> = 0; <span>$j</span> < 6; <span>$j</span>++<span>) {
            </span><span>$val</span> = 0x0000001F & <span>$int</span><span>;
            </span><span>$out</span> .= <span>$base32</span>[<span>$val</span><span>];
            </span><span>$int</span> = <span>$int</span> >> 5<span>;
        }
        </span><span>$output</span>[] = <span>$out</span><span>;
    }
    </span><span>return</span> <span>$output</span><span>;
}
 
</span><span>$urls</span> = shorturl('http://www.dareng.com'<span>);
</span><span>var_dump</span>(<span>$urls</span>);
Nach dem Login kopieren
复制代码

结果:

复制代码
<span>array</span>(4<span>) {
  [</span>0]=>
  <span>string</span>(6) "alms1l"<span>
  [</span>1]=>
  <span>string</span>(6) "2ipmby"<span>
  [</span>2]=>
  <span>string</span>(6) "avo1hu"<span>
  [</span>3]=>
  <span>string</span>(6) "fdlban"<span>
}</span>
Nach dem Login kopieren
复制代码

 

 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1119774.htmlTechArticle微博短链接算法php版本,微博算法php 思路: 1)将长网址md5生成32位签名串,分为4段, 每段8个字节; 2)对这四段循环处理, 取8个字节, 将他看成...
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was ist der Unterschied zwischen PHP5 und PHP8? Was ist der Unterschied zwischen PHP5 und PHP8? Sep 25, 2023 pm 01:34 PM

Die Unterschiede zwischen PHP5 und PHP8 bestehen in Bezug auf Leistung, Sprachstruktur, Typsystem, Fehlerbehandlung, asynchrone Programmierung, Standardbibliotheksfunktionen und Sicherheit. Detaillierte Einführung: 1. Leistungsverbesserung: PHP8 führt einen JIT-Compiler ein, der einige hochfrequente Ausführungscodes kompilieren und optimieren kann, wodurch die Ausführungsgeschwindigkeit verbessert wird. PHP8 führt einige neue Sprachstrukturen und Funktionen ein. PHP8 unterstützt benannte Parameter, sodass Entwickler Parameternamen anstelle der Parameterreihenfolge usw. übergeben können.

So ändern Sie Port 80 in PHP5 So ändern Sie Port 80 in PHP5 Jul 24, 2023 pm 04:57 PM

So ändern Sie Port 80 in PHP5: 1. Bearbeiten Sie die Portnummer in der Apache-Serverkonfigurationsdatei. 2. Bearbeiten Sie die PHP-Konfigurationsdatei, um sicherzustellen, dass PHP auf dem neuen Port funktioniert. 3. Starten Sie den Apache-Server neu Beginnen Sie mit der Ausführung auf dem neuen Port.

So lösen Sie das Problem, dass PHP5 Port 9000 nicht überwacht So lösen Sie das Problem, dass PHP5 Port 9000 nicht überwacht Jul 10, 2023 pm 04:01 PM

Lösungsschritte für PHP5, das Port 9000 nicht überwacht: 1. Überprüfen Sie die PHP-FPM-Konfigurationsdatei. 2. Starten Sie den PHP-FPM-Dienst neu. 3. Schalten Sie die Firewall aus oder konfigurieren Sie die Portweiterleitung. 4. Überprüfen Sie, ob andere Prozesse Port 9000 belegen.

Was ist der Unterschied zwischen der PHP7- und der PHP5-Syntax? Was ist der Unterschied zwischen der PHP7- und der PHP5-Syntax? Jul 10, 2023 pm 03:25 PM

Die Syntaxunterschiede zwischen PHP7 und PHP5 sind: 1. PHP7 führt strikte Typdeklarationen ein, während der Typ von PHP5-Variablen implizit ist. 2. PHP7 führt Unterstützung für Skalartypdeklarationen ein, PHP5 jedoch nicht. 3. PHP7 führt den NULL-Merge-Operator ein PHP5 prüft, ob eine Variable existiert und nicht null ist. Sie müssen eine bedingte Anweisung verwenden. 4. PHP7 fügt einen neuen Vergleichsoperator „<=>“ hinzu, PHP5 führt jedoch keine neue Funktion ein, während PHP5 nicht.

Was sind die Unterschiede zwischen der Version von PHP7 und 5? Was sind die Unterschiede zwischen der Version von PHP7 und 5? Sep 15, 2023 pm 04:11 PM

Zu den Unterschieden zwischen der Version von PHP 7 und 5 gehören Leistungsverbesserungen, Skalartypdeklarationen, Rückgabewerttypdeklarationen, Verbesserungen bei der Ausnahmebehandlung, anonyme Klassen, Syntaxverbesserungen, neue Operatoren, verbesserte Fehlerbehandlung und die Entfernung einiger alter Funktionen. Detaillierte Einführung: 1. Leistungsverbesserung: PHP7 führt eine neue Zend-Engine mit dem Namen Zend Engine 3.0 ein. Die Leistung von PHP7 ist etwa doppelt so hoch wie die von PHP5, hauptsächlich durch verbesserte Speicherverwaltung, optimierte Funktionsaufrufe und Ausnahmebehandlung , verbesserte Speicherbereinigung usw.

So ändern Sie Port 80 in PHP5 So ändern Sie Port 80 in PHP5 Mar 21, 2023 pm 04:32 PM

​Wenn Sie ein Website-Administrator sind, kann es vorkommen, dass Sie den PHP5-Port vom Standardport 80 ändern müssen. Dieser Vorgang kann etwas eilig sein, aber solange Sie die folgenden Schritte befolgen, wird er problemlos abgeschlossen.

So lösen Sie das Problem, dass PHP5 Port 9000 nicht überwacht So lösen Sie das Problem, dass PHP5 Port 9000 nicht überwacht Mar 21, 2023 pm 04:32 PM

Bei der Verwendung von PHP5 kann es bei einigen Benutzern vorkommen, dass Port 9000 nicht abgehört werden kann. Zu diesem Zeitpunkt müssen wir einige Konfigurations- und Fehlerbehebungsarbeiten durchführen, um dieses Problem zu lösen.

Besprechen Sie die Syntaxunterschiede zwischen PHP7 und PHP5 Besprechen Sie die Syntaxunterschiede zwischen PHP7 und PHP5 Mar 21, 2023 pm 07:10 PM

PHP ist eine weit verbreitete serverseitige Programmiersprache zur Entwicklung dynamischer Websites und Anwendungen. In den letzten Jahren hat die Veröffentlichung von PHP7 einige Aufmerksamkeit erregt. PHP7 weist gegenüber früheren Versionen (z. B. PHP5) viele Verbesserungen und Optimierungen auf. In diesem Artikel werden wir die Syntaxunterschiede zwischen PHP7 und PHP5 untersuchen.

See all articles