PHP--API-程序员宅基地

技术标签: php  

PHP所有能力都是函数,内置1000多个函数,不是每一个函数都默认直接可以使用,有一些需要安装或者启用额外的“插件”扩展。

1,获取字符串长度

<?php
$str='hello';
echo strlen($str);  //5

2,获取中文字符串(宽字符)的长度

  strlen 只能获取拉丁文的长度

  php中专门为宽字符集添加了一套API,所有的API 都是 mb_xxxx

echo mb_strlen('你好');

      但是报错:Fatal error: Uncaught Error: Call to undefined function mb_strlen() in              D:\www\site2\02, string.php:7 Stack trace: #0 {main} thrown in D:\www\site2\02, string.php on line 7

      这是因为这一套 API 不在内置的 1000+ 里面,而是在一个模块(php_mbstring.dll)中,模块成员必须通过配置文件载入模块过后再使用

   配置PHP扩展的步骤

  1,在PHP的安装目录去创建一个 php.ini ( 将PHP目录中的 php.ini-development 复制一个      修改为 php.ini )

  2, 修改扩展文件所在目录 extension_dir 

  3,;extension=php  mbstring.dll  ,去掉注释( 修改文件中的部分选项      ; 是注释符)

  4,默认Apache加载的php.ini 是去 C:\ Windows目录找的

  5,可以通过Apache的配置文件修改默认加载路径 PHPIniDir

 

3,常见字符串API

①字符串截取

第一个参数:被截取的字符串

第二个参数:从哪个位置开始截

第三个参数:截取的字符个数

②字符串长度

③大小写转换

strtolower:大写转小写

strtoupper:小写转大写

④去除首尾空白字符

⑤查找字符串中某些字符首次出现位置

⑥字符串替换

  用 b 替换 a

⑦重复字符串

第一个参数:重复的字符串

第二个参数:重复多少次

⑧字符串分割

 

4,数组处理

php中的数组类型:索引数组、关联数组

php中定义数组的方式:array( )  、 [ ] (php 5.4+)

①获取关联数组中全部的键/值

  arrar_keys()   array_values()

<?php
$arr=array(
    'hello' => '你好',
    'pink' => '粉色',
    'blue' => '蓝色',
);
var_dump(arrray_key($arr));   //['hello','pink','blue'];
var_dump(array_values($arr)); //['你好','粉色','蓝色'];

②判断数组中是否存在某个键

  array_key_exists()

<?php
$arr=array(
    'hello' => '你好',
    'pink' => '粉色',
    'blue' => '蓝色',
);
var_dump(array_key_exists('hello',$arr));  //bool(true)
var_dump(array_key_exists('world',$arr));  //bool(false)

  isset也可判断数组中是否有指定的键

<?php
$arr=array(
    'hello' => '你好',
    'pink' => '粉色',
    'blue' => '蓝色',
);

if(isset($arr['hello'])){
    echo $arr['hello'];  //你好
}
else{
    echo '没有';
}

  empty与isset相反,  empty($arr['foo'])  相当于   ! isset ( $arr [ 'foo' ] ) || $arr['foo'] == false

<?php
$arr=array(
    'hello' => '你好',
    'pink' => '粉色',
    'blue' => '蓝色',
);

if(empty($arr['foo'])){
    echo '没有';
}
else{
    echo $arr['foo'];
}

 ③去除重复的元素

  array_unique()

④将一个或多个元素追加到数组中

  array_push()

  $arr[ ] = 'new value'

$arr=Array('red' , 'orange' , 'yellow');
array_push($arr,'blue');
var_dump($arr);

 

$arr=Array('red' , 'orange' , 'yellow');
$arr[]='black';
var_dump($arr);

⑤删除数组中最后一个元素

  array_pop();

$arr=Array('red' , 'orange' , 'yellow');
array_pop($arr);
var_dump($arr);

⑥数组长度

  count()

$arr=Array('red' , 'orange' , 'yellow');
var_dump(count($arr));

⑦检测存在

  in_array()

$arr=Array('red' , 'orange' , 'yellow');
var_dump(in_array('red',$arr));   //true

5,时间处理

  ①时间戳:time()

    从 Unix纪元(格林威治时间 1970-01-01 00:00:00)到当前时间的毫秒数

<?php
    echo time(); //1569216880

  ②格式化日期:date()

  格式化一个时间戳:

echo date('Y-m-d H:i:s', time());  //=date('Y-m-d H:i:s');

  第一个参数:一个时间格式

  第二个参数:一个时间戳,默认时间戳获取的就是格林威治时间

  问题:获取到的时间与当前时间相差8个小时

  解决:方式一,通过代码设置时区,更推荐这种方式   date_default_timezone_set('PRC');

     方式二:通过配置文件设置时区   date.timezone = PRC

     对已有事件做格式化:

  strtotime() 可以用来将一个有格式的时间字符串转换为一个时间戳

<?php
date_default_timezone_set('PRC');
$time='2019-09-23 11:34:58';

echo date('Y年m月d日 H:i:s',strtotime($time));  //2019年09月23日 11:34:58

echo date('Y年m月d日<b\r>H:i:s',strtotime($time));  // 2019年09月23日
                                                                                11:34:58

echo date("Y年m月d日<b\r>H:i:s",strtotime($time));  //2019年09月23日11:34:58
                     

    注意:单引号字符串的问题

    单引号:是对date函数的处理,单引号中的<b\r>可以换行

    双引号:是对字符串的处理,<b\r>不能换行

⑥PPH中的常量

     ①PHP 中可以通过 define 函数定义 一个常量

     ②常量的特点就是:定义后不能被修改,也是临时存放数据的容器

     ③ 什么时候用常量:一般程序的配置信息(不会在运行过程中修改)都会在常量中定义 

          ④PHP中的常量的命名规则

    变量或函数都是采用 snake_case (小写字母加下划线)命名规则
常量是 SNAKE_CASE 命名规则
define('SYSTEM_NAME', '阿里百秀');
echo SYSTEM_NAME;  // 阿里百秀

define('SYSTEM_VERSION', '阿里', true);
echo SYSTEM_VERSION;  //阿里
echo system_version;  //阿里
    第一个参数常量名称
   第二个是常量的值
第三个参数是常量名称是否忽略大小写 默认为false 不忽略

6,载入其他文件
  PHP中引入其他PHP文件有四种方式:
  require
  require_once
  include
  include_once
  

  config.php(定义公共的配置信息)
       1. 便于维护
       2. 公共使用

<?php

define('SYSTEM_NAME', 'HELLO');
define('SYSTEM_VERSION', '1.0.0');
define('DB_HOST', '192.168.110.120');

    require.php

<?php

    require 'config.php';
    echo SYSTEM_NAME;

//类似CSS的 import 导入文件,require 可以用于在当前脚本中载入一个别的脚本文件并且执行它,require在每一次调用的时候都会载入对应的文件
<?php

   require_once 'config.php';
   echo SYSTEM_NAME;
   require_once 'config.php';
   echo SYSTEM_NAME; 

//require_once 如果之前载入过,不再执行(执行一次),由于类似定义常量 定义函数 ,这种操作不能执行多次,所以require_once 更加适合载入这种文件(定义公共的配置信息)

aside.php

<aside>
  这是侧边栏1111
</aside>

include.php

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <?php include 'aside.php'; ?>
  <main>
    这是主要的区域
  </main>
</body>
</html>

require:一旦被载入的文件不存在就会报一个致命错误,当前文件不再往下执行  (不会任何输出)

include:载入文件不存在不会报错误(会有警告,警告不用管),当前文件继续执行 (打印出 “只是主要区域”)



转载于:https://www.cnblogs.com/shanlu0000/p/11568551.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/a63438840/article/details/101816822

智能推荐

【学习笔记】基于遗传算法的BP神经网络优化算法_遗传算法优化 bp 染色体-程序员宅基地

文章浏览阅读6.8k次,点赞11次,收藏111次。一、背景介绍BP神经网络是一类多层的前馈神经网络。它的名字源于在网络训练的过程中,调整网络的权值的算法是误差的反向传播的学习算法,即为BP学习算法。BP神经网络是人工神经网络中应用广泛的算法,但依然存在着一些缺陷,例如学习收敛速度太慢、不能保证收敛到全局最小点、网络结构不易确定等。另外,网络结构、初始连接权值和阈值的选择对网络训练的影响很大,但是又无法准确获得,针对这些特点可以采用遗传算法对神经网络进行优化。二、算法流程创建网络;确定网络的初始权重值和阈值,对其进行编码得到初始种群;while_遗传算法优化 bp 染色体

Redis6 主从复制及哨兵机制_redis 6 哨兵-程序员宅基地

文章浏览阅读316次。Sentinel(哨兵)进程是用于监控Redis集群中Master主服务器工作的状态在Master主服务器发生故障的时候,可以实现Master和Slave服务器的切换,保证系统的高可用(HA)其已经被集成在redis2.6+的版本中,Redis的哨兵模式到了2.8版本之后就稳定了下来。......_redis 6 哨兵

C语言 | 链表的建立和剔除_snode *init()-程序员宅基地

文章浏览阅读363次。单向链表,定义、插入、剔除操作,模块化能直接调用_snode *init()

wide find - replace [转]-程序员宅基地

文章浏览阅读84次。wide find - replace最后更新:2008-09-09, Ver 2.3.4.0909 简介 wfr   - 支持多国语言的字符串批量查找和替换   - 批量字符集编码转换 纯 unicode 规则匹配内核,..._iso-2022-cn-ext

Stable-Diffusion ubuntu服务器部署,报错解决方法(小白教程)_stable diffusion app, local_url, share_url = share-程序员宅基地

文章浏览阅读1.7k次,点赞18次,收藏18次。Stable Diffusion是一个深度学习模型,专注于生成高质量的图像。它由CompVis团队与Stability AI合作开发,并在2022年公开发布。这个模型使用文本提示(text prompts)生成详细、逼真的图像,是目前人工智能图像生成领域的一大突破。它属于文本到图像(Text-to-Image)生成模型的范畴,使用了一种称为潜在扩散模型(Latent Diffusion Model, LDM)的技术。_stable diffusion app, local_url, share_url = shared.demo.launch(

ASP.NET Core 运行原理解剖[5]:Authentication-程序员宅基地

文章浏览阅读3.1k次。在现代应用程序中,认证已不再是简单的将用户凭证保存在浏览器中,而要适应多种场景,如App,WebAPI,第三方登录等等。在 ASP.NET 4.x 时代的Windows认证和Forms认证已无法满足现代化的需求,因此在ASP.NET Core 中对认证及授权进行了全新设计,使其更加灵活,可以应付各种场景。在上一章中,我们提到HttpContext中认证相关的功能放在了独立的模块中,以扩展的方式来展_.net core authenticationhandler httpcontext

随便推点

Linux系统100条命令:关于Ubuntu和 CentOS 7 相同功能的不同的终端操作命令_ubuntu 命令跟centos-程序员宅基地

文章浏览阅读718次。CentOS 7:ip link set interface_name up 或 ip link set interface_name down。Ubuntu:ifconfig interface_name up 或 ifconfig interface_name down。CentOS 7:编辑 /etc/sysconfig/network-scripts/ifcfg-eth0 文件。Ubuntu:编辑 /etc/network/interfaces 文件。_ubuntu 命令跟centos

windows10下VS2019编译jpegsrc.v9e.tar.gz为lib静态库(已验证)_jpeg library error vs2019-程序员宅基地

文章浏览阅读652次。jpegsr9e windows vs2019生成方法,以及库下载_jpeg library error vs2019

重磅?华为 Mate60/Pro 系列网速实测结果公布,最高 1205.57 Mbps_华为mate60pro+核实网络-程序员宅基地

文章浏览阅读647次。总的来说,华为Mate 60/Pro系列手机的高速网速表现引起了广泛的关注,这也是消费者对该系列手机购买热情高涨的一个重要因素。可以看出,华为Mate 60/Pro系列手机的网速表现非常出色,这也是消费者购买该系列手机的一个重要原因。此前,华为Mate 60 Pro的供应量已经增至1500万至1700万台,而最新消息称,华为Mate 60 Pro和Mate 60 Pro+的出货量甚至已上调至2000万台。目前,在中国市场上,手机竞争愈发激烈,不仅华为Mate 60系列,其他品牌的手机也都受到了高温的迎接。_华为mate60pro+核实网络

access查找出生日期年份_access怎样利用出生日期计算年龄呀!-程序员宅基地

文章浏览阅读7.1k次。公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解。话题:access怎样利用出生日期计算年龄呀!回答:lt;%set rs = server.createobject("adodb.recordset") curid=request("id") sql = "UPDATE pany SET a_num=a_num+1,day_count=day_count+1 WHERE day_lda..._access出生年份表达式

python 内置函数-程序员宅基地

文章浏览阅读75次。Python内置函数(1)——absPython内置函数(2)——divmodPython内置函数(3)——maxPython内置函数(4)——minPython内置函数(5)——powPython内置函数(6)——roundPython内置函数(7)——sumPython内置函数(8)——bool...

希望OL修改服务器经验,希望OL服务端架设技术教程-程序员宅基地

文章浏览阅读2.8k次。经测试自带的MYSQL可能有问题,也可能没问题。如果有问题请下载安装MYSQL5.0然后导入端里面自带的guaiwu.sql希望ol教程=========================================客户端SO3D.exe需要改IP 我这里是在服务器上录像的,我把客户端的SO3D.exe复制到服务端这里了具体更改用UE搜索MessgerIp 在附近找到他的ip 改成你自己的,我这..._希望ol 服务器架设

推荐文章

热门文章

相关标签