分类 php 下的文章

在项目开发过程中,涉及app端,经常会根据版本号做一些开发限制工作,所以记录一下
介绍:version_compare — 对比两个「PHP 规范化」的版本数字字符串
说明:

version_compare(string $version1, string $version2, ?string $operator = null): int|bool

,此函数首先在版本字符串里用一个点 . 替换 _、- 和 +,也会在任意非数字前后插入一个点 .,这样,类似 '4.3.2RC1' 将会变成 '4.3.2.RC.1'。 接下来它会分割结果, 然后它会从左往右对比各个部分。 如果某部分包含了特定的版本字符串,将会用以下顺序处理: 列表中未找到的任意字符串 < dev < alpha = a < beta = b < RC = rc < # < pl = p。 这种方式不仅能够对比类似 '4.1' 和 '4.1.2' 那种不同的版本级别,同时也可以指定对比任何包含 PHP 开发状态的版本
参数:version1第一个版本数。version2第二个版本数。operator可选运算符。可能运算符有:<、lt、<=、le、 >、gt、>=、ge、==、 =、eq、!=、<>、ne。此参数区分大小写,它的值应该是小写的。
返回值:默认情况下,在第一个版本低于第二个时,version_compare() 返回 -1;如果两者相等,返回 0;第二个版本更低时则返回 1。当使用了可选参数 operator 时,如果关系是操作符所指定的那个,函数将返回 true,否则返回 false。
示例:

if (version_compare(PHP_VERSION, '7.0.0') >= 0) {
    echo 'I am at least PHP version 7.0.0, my version: ' . PHP_VERSION . "\n";
}

if (version_compare(PHP_VERSION, '5.3.0') >= 0) {
    echo 'I am at least PHP version 5.3.0, my version: ' . PHP_VERSION . "\n";
}

if (version_compare(PHP_VERSION, '5.0.0', '>=')) {
    echo 'I am at least PHP version 5.0.0, my version: ' . PHP_VERSION . "\n";
}

if (version_compare(PHP_VERSION, '5.0.0', '<')) {
    echo 'I am still PHP 4, my version: ' . PHP_VERSION . "\n";
}
$version = '1.7.2';
if (version_compare($cv, '1.7.1', '>=')) {
    echo '当前版本正确';
}else{
    echo '当前版本太低,请升级版本后体验';
}

注意:指定类似 alpha、beta 的版本字符串是大小写敏感的。 版本字符串的来源若不遵循 PHP 标准,可能需要在调用 version_compare() 之前先用 strtolower() 转成小写。

原文参考:https://www.php.net/manual/zh/function.version-compare.php

先上代码:

use GuzzleHttp\Psr7;

$response = $client->request('POST', 'http://httpbin.org/post', [
    'multipart' => [
        [
            'name'     => 'field_name',
            'contents' => 'abc'
        ],
        [
            'name'     => 'file_name',
            'contents' => Psr7\Utils::tryFopen('/path/to/file', 'r')
        ],
        [
            'name'     => 'other_file',
            'contents' => 'hello',
            'filename' => 'filename.txt',
            'headers'  => [
                'Content-Type' => 'multipart/form-data'
            ]
        ]
    ]
]);

说明:
name 当前form表单提交的字段
contents 对应当前from表单字段内容
该方法支持支持同时提交字符内容和文件
更多GuzzleHttp 请参考官方文档:https://docs.guzzlephp.org/en/stable/quickstart.html#post-form-requests

使用说明:
官方解释是如果你将应用程序中的每个 Eloquent 模型都视为资源,那么通常对应用程序中的每个资源都执行相同的操作。例如,假设你的应用程序中包含一个 Photo 模型和一个 Movie 模型。用户可能可以创建,读取,更新或者删除这些资源。说白了就是你可以创建一个路由器,里面定义了固定的增删改查方法,就不需要给每个控制器单独写CRUD了
使用方法:
1、

php artisan make:controller TestController --resource

2、定义路由

Route::resource('test', TestController::class);

3、多资源路由使用

Route::resources([
    'test' => TestController::class,
    'ceshi' => CeshiController::class,
]);

注意事项:
QQ20230217-173856@2x.png

文章参考:https://learnku.com/docs/laravel/9.x/controllers/12212

$var & 1 是用来判断数据是是否是奇数
$var & 0 是用来判断数据是是否是偶数

示例:

function test_odd($var)
{
    return($var & 1);
}
 
$a1=array("a","b",2,3,4);
print_r(array_filter($a1,"test_odd"));

//打印结果
Array ( [3] => 3 )

在这种情况下,return($var & 1);会做一个按位与对0000....0001返回1或0取决于最后一位的$var。

如果数字的二进制表示以 0 结尾,则它是偶数(十进制)。

如果数字的二进制表示以 1 结尾,则它是奇数(十进制)。