草庐IT

php - 去除PHP中json_encode中多维数组的int索引

这个问题有点难解释,所以我会告诉你。如果您看下面,您将看到有效的JSON。{"data":{"0":{"action_id":"1","date":"2012-04-1015:07:38","action_type":"1","action_text":"Someonegotblamed!"},"1":{"action_id":"2","date":"2012-04-1016:18:05","action_type":"1","action_text":"TestingmultipleitemsforAJAX"},"total":2,"ajax_message":"Success","

php - 如果变量是 int 值,array_combine php 函数不会保留字符串变量的数据类型

如果变量是int值,array_combinephp函数不会保留字符串变量的数据类型一个简单的例子:$a=array('1','2');$b=array('first','second');$c=array_combine($a,$b);$ak=array_keys($c);var_dump($ak);这将产生输出:1和2的整数值。我想要的是保留值1和2的字符串类型临时的,我用过:array_walkto最终实现我想要的。 最佳答案 这不是因为array_combine()函数的特定行为,而是因为valid-integerkeyst

php - 如何生成一个128位长的字符串?

基本上,我正在寻找一个函数来执行以下操作generateToken(128)这将返回一个由整数或字母字符组成的128位字符串。澄清:根据评论,我不得不更改问题。显然,如果需要128位,我正在寻找一个长度为16个字符的字符串。 最佳答案 是否有理由必须将字符串限制为整数?这实际上使问题变得更加困难,因为每个数字给你3.3位(因为2^3.3~=10)。以这种方式生成恰好128位的token是很棘手的。更容易的是允许十六进制编码(每个字符4位)。然后您可以生成128个真正的随机位,然后将它们编码为十六进制以用于您的应用程序。Base64编

PHP:我有一个关联数组(int => object),想对它进行排序

classDownTime{public$total,$longest,$count;}我有一个关联数组(键是一个id,值是DownTime对象)。我想按照$total排序我读过PHP:SortingArrays以及关于stackoverflow的一些其他问题。我明白了uasort会做的很好。但是,作为OOP方法,我更愿意在DownTime类中定义一个特殊函数(例如在C++中定义operator,或在Java中实现Comparable.compareTo()),而不是在调用某些排序函数时传递一个函数。 最佳答案 您可以在DownTi

php - 正则表达式 int 或 float

我的正则表达式不适用于个位数/^[0-9]{1,7}\.?[0-9]{1,2}$/我需要它来处理无符号数:1(singledigitnumbers,withoutfractions)-currentlyitfailsonthem1.0;0.31(floatingpointnumbers)小数前的数字可以是1-7位;在小数1-2位数之后。谢谢! 最佳答案 您指定必须有1-7位数字,然后是可选的小数点,然后是1-2位数字。尝试:/^[0-9]{1,7}(?:\.[0-9]{1,2})?$/请注意,这不允许尾随小数位(即“1.”)。如果你

php - [PHP]将RGB或HEX转换为 "Long Int"颜色

对于使用此格式的另一个程序,需要将RGB或HEX颜色转换为“LongInt”。虽然不确定“LongInt”颜色格式的细节。可以使用此颜色选择器http://hide-inoki.com/en/soft/chunter/index.html手动生成“LongInt”值,但首选php函数。hexdec为某些HEX值('FFFFFF'、'2F2F2F')生成正确的“LongInt”,但不为其他值('123456')生成正确的“LongInt”。 最佳答案 您应该能够使用PHP'shexdec函数。hexdec('FFFFFF'):1677

php - 生成 128 位十六进制数

我想在PHP中生成一个随机的128位十六进制数。我该怎么做? 最佳答案 我所知道的最简单的:$str=openssl_random_pseudo_bytes(16);您还可以通过在每个循环中追加字符来构建一个包含16个字符的字符串:for($i=0;$i!=16;++$i){$str.=chr(mt_rand(0,255));}要将其转换为十六进制,请使用bin2hex($str)。或者,生成UUIDv4,如earlieranswer中所述。我写了。 关于php-生成128位十六进制数,

用于签名 32 int 的 PHP pack() 格式 - 大端

我正在使用PHP、fopen、fseek、pack等创建然后将数据写入文件(一个新的“ESRIShape文件”)。文件规范在这里http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf.文件规范指出写入的数据需要结合以下内容:整数:带符号的32位整数(4字节)-BigEndian整数:带符号的32位整数(4字节)-LittleEndianDouble:带符号的64位IEEEdoublefloat(8字节)-LittleEndian我似乎找不到允许这些格式的pack()格式。我不想使用依赖于机器的格式,因为此代码可能会在各种平台

PHP filter_input 验证 INT

我有这段代码:$range=array('options'=>array('min_range'=>0,'max_range'=>10));if(!$number=filter_input(INPUT_POST,'number',FILTER_VALIDATE_INT,$range)){exit('Error');}“数字”输入将从0到10的选项发送。问题是如果number=0则返回“错误”。这有什么问题吗?谢谢 最佳答案 这是因为!0为真。为什么?通过添加!您正在进行bool检查,因此您的变量得到转换。并根据manual:When

javascript - URL::action() 和 Javascript int 变量之间的连接

我需要在laravel中执行AJAX请求,url是URL::Action方法和Javascript整数变量之间的连接。View中的javascript函数是functiondetailMaintenanceVehicle(vehicleId,placa){varurl="{{URL::action('DetailMaintenanceController@getDetailMaintenance',["+vehicleId+"])}}";console.log(vehicleId);//Thisprintsintegervariables1,2,3..console.log(url);