PHP 18:data_valid_fns.php 看正则表达式

本文介绍了PHP中的正则表达式应用,包括如何使用正则表达式验证邮箱地址的有效性和检查表单数据是否填写完整。详细解释了POSIX正则表达式和Perl兼容正则表达式的区别及使用方法,并提供了关键函数的概述。
原文: PHP 18:data_valid_fns.php 看正则表达式

本章介绍正则表达式。
先看看data_valid_fns.php的代码吧。

 1  <? php
 2 
 3  function  filled_out( $form_vars )
 4  {
 5     //  test that each variable has a value
 6     foreach  ( $form_vars   as   $key   =>   $value )
 7    {
 8        if  ( ! isset ( $key ||  ( $value   ==   '' )) 
 9           return   false ;
10    } 
11     return   true ;
12  }
13 
14  function  valid_email( $address )
15  {
16     //  check an email address is possibly valid
17     if  ( ereg ( ' ^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$ ' ,   $address ))
18       return   true ;
19     else  
20       return   false ;
21  }
22 
23  ?>
24 
简要介绍一下。
filled_out( $form_vars )验证输入的有效性。
valid_email ( $address ) 验证email的有效性。它是通过正则表达式进行的。
本章具体介绍正则表达式。
PHP支持POSIX扩展的正则表达式,也支持使用Perl语法兼容的正则表达式。
如果你对正则表达式不是很清楚的话,请参见正则表达式的语法
下面我们分别介绍以下这2种格式的正则表达式
1 POSIX正则表达式函数
   为了使用此功能,你首先要配置PHP,使之支持它。在Windows下安装的话,它会自动配置。但是在其他操作系统下,需要手工配置。
要激活 regexp 的支持,请在配置 PHP 时加上 --with-regex[=TYPE]。TYPE 可以是 system,apache 或 php 之一。默认使用 php。
 支持的函数有:
  •   ereg_replace -- 正则表达式替换
  •   ereg -- 正则表达式匹配
  •   eregi_replace -- 不区分大小写的正则表达式替换
  •   eregi -- 不区分大小写的正则表达式匹配
  •   split -- 用正则表达式将字符串分割到数组中
  •   spliti -- 用正则表达式不区分大小写将字符串分割到数组中
  •   sql_regcase -- 产生用于不区分大小的匹配的正则表达式

2 Perl兼容正则表达式函数
  • preg_grep --  返回与模式匹配的数组单元
  • preg_match_all -- 进行全局正则表达式匹配
  • preg_match -- 进行正则表达式匹配
  • preg_quote -- 转义正则表达式字符
  • preg_replace_callback -- 用回调函数执行正则表达式的搜索和替换
  • preg_replace -- 执行正则表达式的搜索和替换
  • preg_split -- 用正则表达式分割字符串
C:\Users\Administrator>conda config --show add_anaconda_token: True add_pip_as_python_dependency: True aggressive_update_packages: - ca-certificates - certifi - openssl allow_conda_downgrades: False allow_cycles: True allow_non_channel_urls: False allow_softlinks: False allowlist_channels: [] always_copy: False always_softlink: False always_yes: None anaconda_anon_usage: True anaconda_heartbeat: False anaconda_upload: None auto_activate: True auto_stack: 0 auto_update_conda: True bld_path: changeps1: True channel_alias: https://conda.anaconda.org channel_priority: flexible channel_settings: [] channels: - defaults client_ssl_cert: None client_ssl_cert_key: None clobber: False conda_build: {} console: classic create_default_packages: [] croot: D:\AnConda\conda-bld custom_channels: pkgs/main: https://repo.anaconda.com pkgs/r: https://repo.anaconda.com pkgs/msys2: https://repo.anaconda.com pkgs/pro: https://repo.anaconda.com custom_multichannels: defaults: - https://repo.anaconda.com/pkgs/main - https://repo.anaconda.com/pkgs/r - https://repo.anaconda.com/pkgs/msys2 local: debug: False default_activation_env: base default_channels: - https://repo.anaconda.com/pkgs/main - https://repo.anaconda.com/pkgs/r - https://repo.anaconda.com/pkgs/msys2 default_python: 3.13 default_threads: None denylist_channels: [] deps_modifier: not_set dev: False disallowed_packages: [] download_only: False dry_run: False enable_private_envs: False env_prompt: ({default_env}) envs_dirs: - D:\AnConda\envs - C:\Users\Administrator\.conda\envs - C:\Users\Administrator\AppData\Local\conda\conda\envs envvars_force_uppercase: True error_upload_url: https://conda.io/conda-post/unexpected-error execute_threads: 1 experimental: [] extra_safety_checks: False fetch_threads: 5 force: False force_32bit: False force_reinstall: False force_remove: False ignore_pinned: False json: False list_fields: - name - version - build - channel_name local_repodata_ttl: 1 migrated_channel_aliases: [] migrated_custom_channels: {} no_lock: False no_plugins: False non_admin_enabled: True notify_outdated_conda: True number_channel_notices: 5 offline: False override_channels_enabled: True path_conflict: clobber pinned_packages: [] pkgs_dirs: - D:\AnConda\pkgs - C:\Users\Administrator\.conda\pkgs - C:\Users\Administrator\AppData\Local\conda\conda\pkgs plugins: anaconda_telemetry: True auto_accept_tos: False prefix_data_interoperability: False protect_frozen_envs: True proxy_servers: {} quiet: False register_envs: True remote_backoff_factor: 1 remote_connect_timeout_secs: 9.15 remote_max_retries: 3 remote_read_timeout_secs: 60.0 repodata_fns: - current_repodata.json - repodata.json repodata_threads: None repodata_use_zst: True report_errors: None restore_free_channel: False rollback_enabled: True root_prefix: D:\AnConda safety_checks: warn sat_solver: pycosat separate_format_cache: False shortcuts: True shortcuts_only: [] show_channel_urls: None signing_metadata_url_base: None solver: libmamba solver_ignore_timestamps: False ssl_verify: True subdir: win-64 subdirs: - win-64 - noarch target_prefix_override: trace: False track_features: [] unsatisfiable_hints: True unsatisfiable_hints_check_depth: 2 update_modifier: update_specs use_index_cache: False use_local: False use_only_tar_bz2: None verbosity: 0 verify_threads: 1 C:\Users\Administrator>
09-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值