Table des matières
回复讨论(解决方案)
Maison développement back-end tutoriel php 菜鸟问个简单的逻辑问题,求解答

菜鸟问个简单的逻辑问题,求解答

Jun 23, 2016 pm 02:15 PM

逻辑 菜鸟 简单的

我是想实现62进制的功能,可是下面这段代码只能echo出来,不能返回,不知道是什么原因,求高手解答

function dwz($id,$str=""){	$a=array("0","1","2","3","4","5","6","7","8","9","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","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");	$zs=(int)($id/sizeof($a));	$xs=$id%sizeof($a);	if($zs>=sizeof($a)){		$str=$a[$xs].$str;		dwz($zs,$str);	}	else{		if($str==""){			return $a[$zs].$a[$xs];		}		else{			echo   $a[$zs].$str;//这里只能输出			return $a[$zs].$str;//返回没值,不知道什么原因		}	}}for($i=999990;$i<=1000000;$i++){	echo dwz($i);	echo "<br>";}
Copier après la connexion


回复讨论(解决方案)

第7行 dwz($zs,$str);
没有承接返回
$str = dwz($zs,$str);

函数结束处还需要有 return $str;

    if($zs>=sizeof($a)){         $str=$a[$xs].$str;         dwz($zs,$str); //这里加入return: return dwz($zs, $str);    } 
Copier après la connexion

第7行 dwz($zs,$str);
没有承接返回
$str = dwz($zs,$str);

函数结束处还需要有 return $str;

哈哈,可以啦,谢谢你的提醒和指导

这样写也可以,可逆的前不限长度

echo convert_62(999990); //4C8secho convert_62('4C8s', 1); //999990function convert_62($s, $mode=0) {  $d = str_split('0123456789ABCDEFGHIJKLMNOPQRSTUVEXYZabcdefghijklmnopqrstuvwxyz');  $r = '';  if($mode) {    $d = array_flip($d);    for($i=0; $i<strlen($s); $i++) $r = bcmul($r, '62') + $d[$s{$i}];  }else {    while($s) {      $r = $d[bcmod($s, '62')] . $r;      $s = bcdiv($s, '62');    }  }  return $r;}
Copier après la connexion
Copier après la connexion
Copier après la connexion

这样写也可以,可逆的前不限长度

echo convert_62(999990); //4C8secho convert_62('4C8s', 1); //999990function convert_62($s, $mode=0) {  $d = str_split('0123456789ABCDEFGHIJKLMNOPQRSTUVEXYZabcdefghijklmnopqrstuvwxyz');  $r = '';  if($mode) {    $d = array_flip($d);    for($i=0; $i<strlen($s); $i++) $r = bcmul($r, '62') + $d[$s{$i}];  }else {    while($s) {      $r = $d[bcmod($s, '62')] . $r;      $s = bcdiv($s, '62');    }  }  return $r;}
Copier après la connexion
Copier après la connexion
Copier après la connexion

受用了,谢谢你

这样写也可以,可逆的前不限长度

echo convert_62(999990); //4C8secho convert_62('4C8s', 1); //999990function convert_62($s, $mode=0) {  $d = str_split('0123456789ABCDEFGHIJKLMNOPQRSTUVEXYZabcdefghijklmnopqrstuvwxyz');  $r = '';  if($mode) {    $d = array_flip($d);    for($i=0; $i<strlen($s); $i++) $r = bcmul($r, '62') + $d[$s{$i}];  }else {    while($s) {      $r = $d[bcmod($s, '62')] . $r;      $s = bcdiv($s, '62');    }  }  return $r;}
Copier après la connexion
Copier après la connexion
Copier après la connexion


不好意思,请问下为什么我把这个文件放在本地测试可以用,但是放在服务器上不能用,会提示找不到bcmod这个函数

嗯,这是 php_bc 扩展没加载的原因(php for win 是自动加载的)
你还可以检查一下 php_gmp 扩展是否已加载,用这个函数库也是一样的

嗯,这是 php_bc 扩展没加载的原因(php for win 是自动加载的)
你还可以检查一下 php_gmp 扩展是否已加载,用这个函数库也是一样的

真的没有加载,那怎么办啊?
我没服务器的权限

print_r(get_loaded_extensions());
看看都有些什么

print_r(get_loaded_extensions());
看看都有些什么

Array(    [0] => date    [1] => libxml    [2] => openssl    [3] => pcre    [4] => zlib    [5] => ctype    [6] => curl    [7] => dom    [8] => filter    [9] => ftp    [10] => gd    [11] => hash    [12] => iconv    [13] => json    [14] => mbstring    [15] => mcrypt    [16] => mhash    [17] => mysql    [18] => SimpleXML    [19] => SPL    [20] => PDO    [21] => posix    [22] => Reflection    [23] => session    [24] => pdo_sqlite    [25] => sockets    [26] => SQLite    [27] => standard    [28] => tokenizer    [29] => xml    [30] => xmlreader    [31] => xmlwriter    [32] => zip    [33] => apache2handler    [34] => memcache    [35] => mssql    [36] => soap    [37] => Zend Optimizer)
Copier après la connexion

没权限就不好办了
就自己写吧,你不是也写了吗

没权限就不好办了
就自己写吧,你不是也写了吗

我写的那个有错,发现运算到后面就错了,然后就用了你的
还是没搞清楚我的那个错在哪里,为什么运算到后面就错了
大神,帮忙看下吧

function dwz($id,$str=""){$a=array("0","1","2","3","4","5","6","7","8","9","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","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");	$zs=(int)($id/sizeof($a));	$xs=$id%sizeof($a);	if($zs>=sizeof($a)){		$str=$a[$xs].$str;		$str=dwz($zs,$str);	}	else{		if($str==""){return $a[$zs].$a[$xs];}		else{return $a[$zs].$str;}	}	return $str;}
Copier après la connexion


这是我根据你的提示改的,可以显示出来,但是我之前的算法有错,帮忙看下

终于可以了,谢谢大神

function dwz($s) {  $d = str_split('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVEXYZ');  $r = '';  while($s) {	$r = $d[(int)($s%62)].$r;	$s = (int)($s/62);  }  return $r;}
Copier après la connexion
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

11 meilleurs scripts de raccourcissement d'URL PHP (gratuit et premium) 11 meilleurs scripts de raccourcissement d'URL PHP (gratuit et premium) Mar 03, 2025 am 10:49 AM

Les longues URL, souvent encombrées de mots clés et de paramètres de suivi, peuvent dissuader les visiteurs. Un script de raccourcissement d'URL offre une solution, créant des liens concis idéaux pour les médias sociaux et d'autres plateformes. Ces scripts sont utiles pour les sites Web individuels

Travailler avec les données de session Flash dans Laravel Travailler avec les données de session Flash dans Laravel Mar 12, 2025 pm 05:08 PM

Laravel simplifie la gestion des données de session temporaires à l'aide de ses méthodes de flash intuitives. Ceci est parfait pour afficher de brefs messages, alertes ou notifications dans votre application. Les données ne persistent que pour la demande ultérieure par défaut: $ demande-

Construisez une application React avec un Laravel Back End: Partie 2, React Construisez une application React avec un Laravel Back End: Partie 2, React Mar 04, 2025 am 09:33 AM

Il s'agit de la deuxième et dernière partie de la série sur la construction d'une application React avec un back-end Laravel. Dans la première partie de la série, nous avons créé une API RESTful utilisant Laravel pour une application de liste de base sur le produit. Dans ce tutoriel, nous serons Dev

Misque de réponse HTTP simplifié dans les tests Laravel Misque de réponse HTTP simplifié dans les tests Laravel Mar 12, 2025 pm 05:09 PM

Laravel fournit une syntaxe de simulation de réponse HTTP concise, simplifiant les tests d'interaction HTTP. Cette approche réduit considérablement la redondance du code tout en rendant votre simulation de test plus intuitive. L'implémentation de base fournit une variété de raccourcis de type de réponse: Utiliser illuminate \ support \ faades \ http; Http :: faux ([[ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

Curl dans PHP: Comment utiliser l'extension PHP Curl dans les API REST Curl dans PHP: Comment utiliser l'extension PHP Curl dans les API REST Mar 14, 2025 am 11:42 AM

L'extension PHP Client URL (CURL) est un outil puissant pour les développeurs, permettant une interaction transparente avec des serveurs distants et des API REST. En tirant parti de Libcurl, une bibliothèque de transfert de fichiers multi-protocol très respectée, PHP Curl facilite Efficient Execu

12 meilleurs scripts de chat PHP sur Codecanyon 12 meilleurs scripts de chat PHP sur Codecanyon Mar 13, 2025 pm 12:08 PM

Voulez-vous fournir des solutions instantanées en temps réel aux problèmes les plus pressants de vos clients? Le chat en direct vous permet d'avoir des conversations en temps réel avec les clients et de résoudre leurs problèmes instantanément. Il vous permet de fournir un service plus rapide à votre personnalité

Annonce de l'enquête sur la situation en 2025 PHP Annonce de l'enquête sur la situation en 2025 PHP Mar 03, 2025 pm 04:20 PM

L'enquête sur le paysage PHP 2025 étudie les tendances actuelles de développement du PHP. Il explore l'utilisation du cadre, les méthodes de déploiement et les défis, visant à fournir des informations aux développeurs et aux entreprises. L'enquête prévoit la croissance de la PHP moderne versio

Notifications à Laravel Notifications à Laravel Mar 04, 2025 am 09:22 AM

Dans cet article, nous allons explorer le système de notification dans le framework Web Laravel. Le système de notification de Laravel vous permet d'envoyer des notifications aux utilisateurs sur différents canaux. Aujourd'hui, nous discuterons de la façon dont vous pouvez envoyer des notifications OV

See all articles