目录搜索
序言入门指引简介PHP 是什么?PHP 能做什么?简明教程需要些什么?第一个 PHP 页面实用的脚本处理表单在新版本的 PHP 中使用旧的 PHP 代码下一步做什么?安装与配置安装前需要考虑的事项Unix 系统下的安装Unix 系统下的 Apache 1.3.xUnix 系统下的 Apache 2.xUnix 系统下的 Nginx 1.4.xUnix 平台的 Lighttpd 1.4Sun Solaris 上的 Sun、iPlanet 和 Netscape 服务器CGI 和命令行设置针对 HP-UX 平台的安装提示在 OpenBSD 系统下的安装针对 Solaris 的安装提示Debian GNU/Linux 安装说明Mac OS X 系统下的安装使用软件包使用内置的 PHP在 Mac OS X 下编译 PHPWindows 系统下的安装Windows 安装程序(PHP 5.1.0 及更早版本)Windows 安装程序(PHP 5.2 及更新版本)手工安装步骤Microsoft IISMicrosoft IIS 5.1 和 IIS 6.0Microsoft IIS 7.0 及更高版本Microsoft Windows 下的 Apache 1.3.xMicrosoft Windows 下的 Apache 2.xMicrosoft Windows 下的 Sun,iPlanet 和 Netscape 服务器Microsoft Windows 下的 Sambar 服务器Microsoft Windows 下的 Xitami从源程序编译Windows 下安装扩展库PHP 在 Microsoft Windows 下的命令行方式云计算平台上的安装Microsoft AzureAmazon EC2FastCGI 进程管理器(FPM)安装配置PECL 扩展库安装PECL 安装介绍下载 PECL 扩展库在 Windows 上安装 PHP 扩展用 PEAR 编译共享 PECL 扩展库用 phpize 编译共享 PECL 扩展库php-config将 PECL 扩展库静态编译入 PHP还有问题?阅读 FAQ其它问题错误报告运行时配置配置文件.user.ini 文件配置可被设定范围怎样修改配置设定语言参考基本语法PHP 标记从 HTML 中分离指令分隔符注释类型简介Boolean 布尔类型Integer 整型Float 浮点型String 字符串Array 数组Object 对象Resource 资源类型NULLCallback 回调类型本文档中使用的伪类型与变量类型转换的判别变量基础预定义变量变量范围可变变量来自 PHP 之外的变量常量语法魔术常量表达式运算符运算符优先级算术运算符赋值运算符位运算符比较运算符错误控制运算符执行运算符递增/递减运算符逻辑运算符字符串运算符数组运算符类型运算符流程控制简介ifelseelseif/else if流程控制的替代语法whiledo-whileforforeachbreakcontinueswitchdeclarereturnrequireincluderequire_onceinclude_oncegoto函数用户自定义函数函数的参数返回值可变函数内部(内置)函数匿名函数类与对象简介基本概念属性类常量自动加载类构造函数和析构函数访问控制(可见性)对象继承范围解析操作符(::)Static(静态)关键字抽象类对象接口TraitsAnonymous classes重载遍历对象魔术方法Final 关键字对象复制对象比较类型约束后期静态绑定对象和引用对象序列化OOP 变更日志命名空间命名空间概述定义命名空间定义子命名空间在同一个文件中定义多个命名空间使用命名空间:基础命名空间和动态语言特征namespace关键字和__NAMESPACE__常量使用命名空间:别名/导入全局空间使用命名空间:后备全局函数/常量名称解析规则FAQ: things you need to know about namespacesErrorsBasicsErrors in PHP 7异常处理扩展(extend) PHP 内置的异常处理类生成器生成器总览生成器语法Comparing generators with Iterator objects引用的解释引用是什么引用做什么引用不是什么引用传递引用返回取消引用引用定位预定义变量超全局变量$GLOBALS$_SERVER$HTTP_SERVER_VARS$_GET$HTTP_GET_VARS$_POST$HTTP_POST_VARS$_FILES$HTTP_POST_FILES$_REQUEST$_SESSION$HTTP_SESSION_VARS$_ENV$HTTP_ENV_VARS$_COOKIE$HTTP_COOKIE_VARS$php_errormsg$HTTP_RAW_POST_DATA$http_response_header$argc$argv预定义异常ExceptionException::__constructException::getMessageException::getPreviousException::getCodeException::getFileException::getLineException::getTraceException::getTraceAsStringException::__toStringException::__cloneErrorExceptionErrorException::__constructErrorException::getSeverity预定义接口遍历迭代器Iterator::currentIterator::keyIterator::nextIterator::rewindIterator::valid聚合式迭代器IteratorAggregate::getIterator数组式访问ArrayAccess::offsetExistsArrayAccess::offsetGetArrayAccess::offsetSetArrayAccess::offsetUnset序列化Serializable::serializeSerializable::unserializeClosureClosure::__constructClosure::bindClosure::bindTo生成器Generator::currentGenerator::keyGenerator::nextGenerator::rewindGenerator::sendGenerator::throwGenerator::validGenerator::__wakeup上下文(Context)选项和参数套接字上下文选项HTTP context 选项FTP context optionsSSL 上下文选项CURL context optionsPhar 上下文(context)选项MongoDB context optionsContext 参数支持的协议和封装协议file://http://https://ftp://ftps://php://zlib://bzip2://zip://data://glob://phar://ssh2://rar://ogg://expect://安全简介总则以 CGI 模式安装时可能受到的攻击情形一:只运行公开的文件情形二:使用 --enable-force-cgi-redirect 选项情形三:设置 doc_root 或 user_dir情形四:PHP 解释器放在 web 目录以外以 Apache 模块安装时文件系统安全Null 字符问题数据库安全设计数据库连接数据库加密存储模型SQL 注入错误报告使用 Register Globals用户提交的数据魔术引号什么是魔术引号为什么要用魔术引号为什么不用魔术引号关闭魔术引号隐藏 PHP保持更新特点用 PHP 进行 HTTP 认证Cookie会话处理 XForms文件上传处理POST 方法上传错误信息说明常见缺陷上传多个文件对 PUT 方法的支持使用远程文件连接处理数据库持久连接安全模式保安措施和安全模式被安全模式限制或屏蔽的函数PHP 的命令行模式内置Web ServerINI 配置垃圾回收机制引用计数基本知识回收周期(Collecting Cycles)性能方面考虑的因素DTrace 动态跟踪PHP 和 DTrace 介绍使用 PHP 和 DTrace使用 SystemTap 监控 PHP DTrace 静态探针函数参考影响 PHP 行为的扩展APC简介安装/配置需求安装运行时配置资源类型预定义常量APC 函数apc_addapc_bin_dumpapc_bin_dumpfileapc_bin_loadapc_bin_loadfileapc_cache_infoapc_casapc_clear_cacheapc_compile_fileapc_decapc_define_constantsapc_delete_fileapc_deleteapc_existsapc_fetchapc_incapc_load_constantsapc_sma_infoapc_storeAPCIteratorAPCIterator::__constructAPCIterator::currentAPCIterator::getTotalCountAPCIterator::getTotalHitsAPCIterator::getTotalSizeAPCIterator::keyAPCIterator::nextAPCIterator::rewindAPCIterator::validAPCu简介安装/配置需求安装运行时配置资源类型预定义常量APCu 函数apcu_addapcu_cache_infoapcu_casapcu_clear_cacheapcu_decapcu_deleteapcu_entryapcu_existsapcu_fetchapcu_incapcu_sma_infoapcu_storeAPCUIteratorAPCUIterator::__constructAPCUIterator::currentAPCUIterator::getTotalCountAPCUIterator::getTotalHitsAPCUIterator::getTotalSizeAPCUIterator::keyAPCUIterator::nextAPCUIterator::rewindAPCUIterator::validAPD简介安装/配置需求安装Building on Win32运行时配置资源类型预定义常量范例How to use PHP-APD in your scriptsAPD 函数apd_breakpointapd_callstackapd_clunkapd_continueapd_croakapd_dump_function_tableapd_dump_persistent_resourcesapd_dump_regular_resourcesapd_echoapd_get_active_symbolsapd_set_pprof_traceapd_set_session_trace_socketapd_set_session_traceapd_set_sessionoverride_functionrename_functionbcompiler简介安装/配置需求安装运行时配置资源类型预定义常量bcompiler 函数bcompiler_load_exebcompiler_loadbcompiler_parse_classbcompiler_readbcompiler_write_classbcompiler_write_constantbcompiler_write_exe_footerbcompiler_write_filebcompiler_write_footerbcompiler_write_functionbcompiler_write_functions_from_filebcompiler_write_headerbcompiler_write_included_filenameBLENC简介安装/配置需求安装运行时配置资源类型预定义常量Blenc 函数blenc_encrypt错误处理简介安装/配置需求安装运行时配置资源类型预定义常量范例错误处理 函数debug_backtracedebug_print_backtraceerror_clear_lasterror_get_lasterror_logerror_reportingrestore_error_handlerrestore_exception_handlerset_error_handlerset_exception_handlertrigger_erroruser_errorhtscanner简介安装/配置需求安装运行时配置资源类型inclued简介安装/配置需求安装运行时配置资源类型预定义常量范例Example that implements inclued into an applicationinclued 函数inclued_get_dataMemtrack简介安装/配置需求安装运行时配置资源类型预定义常量范例Basic usageOPcache简介安装/配置需求安装运行时配置资源类型OPcache 函数opcache_compile_fileopcache_get_configurationopcache_get_statusopcache_invalidateopcache_is_script_cachedopcache_reset输出控制简介安装/配置需求安装运行时配置资源类型预定义常量范例基本用法Output Control 函数flushob_cleanob_end_cleanob_end_flushob_flushob_get_cleanob_get_contentsob_get_flushob_get_lengthob_get_levelob_get_statusob_gzhandlerob_implicit_flushob_list_handlersob_startoutput_add_rewrite_varoutput_reset_rewrite_varsPHP 选项/信息简介安装/配置需求安装运行时配置资源类型预定义常量PHP 选项/信息 函数assert_optionsassertcli_get_process_titlecli_set_process_titledlextension_loadedgc_collect_cyclesgc_disablegc_enablegc_enabledgc_mem_cachesget_cfg_varget_current_userget_defined_constantsget_extension_funcsget_include_pathget_included_filesget_loaded_extensionsget_magic_quotes_gpcget_magic_quotes_runtimeget_required_filesget_resourcesgetenvgetlastmodgetmygidgetmyinodegetmypidgetmyuidgetoptgetrusageini_alterini_get_allini_getini_restoreini_setmagic_quotes_runtimemainmemory_get_peak_usagememory_get_usagephp_ini_loaded_filephp_ini_scanned_filesphp_logo_guidphp_sapi_namephp_unamephpcreditsphpinfophpversionputenvrestore_include_pathset_include_pathset_magic_quotes_runtimeset_time_limitsys_get_temp_dirversion_comparezend_logo_guidzend_thread_idzend_versionrunkit简介预定义常量安装/配置需求安装运行时配置资源类型runkit 函数Runkit_SandboxRunkit_Sandbox_Parentrunkit_class_adoptrunkit_class_emancipaterunkit_constant_addrunkit_constant_redefinerunkit_constant_removerunkit_function_addrunkit_function_copyrunkit_function_redefinerunkit_function_removerunkit_function_renamerunkit_importrunkit_lint_filerunkit_lintrunkit_method_addrunkit_method_copyrunkit_method_redefinerunkit_method_removerunkit_method_renamerunkit_return_value_usedrunkit_sandbox_output_handlerrunkit_superglobalsscream简介安装/配置需求安装运行时配置资源类型范例Example that shows the effect of screamuopz简介安装/配置需求安装运行时配置资源类型预定义常量Uopz 函数uopz_backupuopz_composeuopz_copyuopz_deleteuopz_extenduopz_flagsuopz_functionuopz_implementuopz_overloaduopz_redefineuopz_renameuopz_restoreuopz_undefineWeakref简介安装/配置需求安装资源类型WeakRefWeakref::acquireWeakref::__constructWeakref::getWeakref::releaseWeakref::validWeakMapWeakMap::__constructWeakMap::countWeakMap::currentWeakMap::keyWeakMap::nextWeakMap::offsetExistsWeakMap::offsetGetWeakMap::offsetSetWeakMap::offsetUnsetWeakMap::rewindWeakMap::validWinCache简介安装/配置需求安装运行时配置WinCache Statistics ScriptWinCache Session HandlerWinCache Functions Reroutes资源类型预定义常量WinCache 函数wincache_fcache_fileinfowincache_fcache_meminfowincache_lockwincache_ocache_fileinfowincache_ocache_meminfowincache_refresh_if_changedwincache_rplist_fileinfowincache_rplist_meminfowincache_scache_infowincache_scache_meminfowincache_ucache_addwincache_ucache_caswincache_ucache_clearwincache_ucache_decwincache_ucache_deletewincache_ucache_existswincache_ucache_getwincache_ucache_incwincache_ucache_infowincache_ucache_meminfowincache_ucache_setwincache_unlockBuilding for WindowsPrerequisitesCompiling and buildingVerifying the buildXhprof简介安装/配置需求安装运行时配置资源类型预定义常量范例Xhprof 函数xhprof_disablexhprof_enablexhprof_sample_disablexhprof_sample_enable音频格式操作ID3简介安装/配置需求安装运行时配置资源类型Predefined ConstantsID3 函数id3_get_frame_long_nameid3_get_frame_short_nameid3_get_genre_idid3_get_genre_listid3_get_genre_nameid3_get_tagid3_get_versionid3_remove_tagid3_set_tagKTaglib简介安装/配置需求安装预定义常量KTaglib_MPEG_FileKTaglib_MPEG_File::__constructKTaglib_MPEG_File::getAudioPropertiesKTaglib_MPEG_File::getID3v1TagKTaglib_MPEG_File::getID3v2TagKTaglib_MPEG_AudioPropertiesKTaglib_MPEG_AudioProperties::getBitrateKTaglib_MPEG_AudioProperties::getChannelsKTaglib_MPEG_AudioProperties::getLayerKTaglib_MPEG_AudioProperties::getLengthKTaglib_MPEG_AudioProperties::getSampleBitrateKTaglib_MPEG_AudioProperties::getVersionKTaglib_MPEG_AudioProperties::isCopyrightedKTaglib_MPEG_AudioProperties::isOriginalKTaglib_MPEG_AudioProperties::isProtectionEnabledKTaglib_TagKTaglib_Tag::getAlbumKTaglib_Tag::getArtistKTaglib_Tag::getCommentKTaglib_Tag::getGenreKTaglib_Tag::getTitleKTaglib_Tag::getTrackKTaglib_Tag::getYearKTaglib_Tag::isEmptyKTaglib_ID3v2_TagKTaglib_ID3v2_Tag::addFrameKTaglib_ID3v2_Tag::getFrameListKTaglib_ID3v2_FrameKTaglib_ID3v2_Frame::getSizeKTaglib_ID3v2_Frame::__toStringKTaglib_ID3v2_AttachedPictureFrameKTaglib_ID3v2_AttachedPictureFrame::getDescriptionKTaglib_ID3v2_AttachedPictureFrame::getMimeTypeKTaglib_ID3v2_AttachedPictureFrame::getTypeKTaglib_ID3v2_AttachedPictureFrame::savePictureKTaglib_ID3v2_AttachedPictureFrame::setMimeTypeKTaglib_ID3v2_AttachedPictureFrame::setPictureKTaglib_ID3v2_AttachedPictureFrame::setTypeoggvorbis简介安装/配置需求安装运行时配置资源类型预定义常量Context options范例Examples on using the ogg:// wrapper.OpenAL简介安装/配置需求安装运行时配置资源类型预定义常量OpenAL 函数openal_buffer_createopenal_buffer_dataopenal_buffer_destroyopenal_buffer_getopenal_buffer_loadwavopenal_context_createopenal_context_currentopenal_context_destroyopenal_context_processopenal_context_suspendopenal_device_closeopenal_device_openopenal_listener_getopenal_listener_setopenal_source_createopenal_source_destroyopenal_source_getopenal_source_pauseopenal_source_playopenal_source_rewindopenal_source_setopenal_source_stopopenal_stream身份认证服务KADM5简介安装/配置需求安装运行时配置资源类型预定义常量Constants for Attribute FlagsConstants for Options范例Basic usageKADM5 函数kadm5_chpass_principalkadm5_create_principalkadm5_delete_principalkadm5_destroykadm5_flushkadm5_get_policieskadm5_get_principalkadm5_get_principalskadm5_init_with_passwordkadm5_modify_principalRadius简介安装/配置需求安装运行时配置资源类型预定义常量RADIUS OptionsRADIUS Packet TypesRADIUS Attribute TypesRADIUS Vendor Specific Attribute Types范例Radius 函数radius_acct_openradius_add_serverradius_auth_openradius_closeradius_configradius_create_requestradius_cvt_addrradius_cvt_intradius_cvt_stringradius_demangle_mppe_keyradius_demangleradius_get_attrradius_get_tagged_attr_dataradius_get_tagged_attr_tagradius_get_vendor_attrradius_put_addrradius_put_attrradius_put_intradius_put_stringradius_put_vendor_addrradius_put_vendor_attrradius_put_vendor_intradius_put_vendor_stringradius_request_authenticatorradius_salt_encrypt_attrradius_send_requestradius_server_secretradius_strerror针对命令行的扩展Ncurses简介安装/配置需求安装运行时配置资源类型预定义常量Error codesColorsKeysMouseNcurses 函数ncurses_addchncurses_addchnstrncurses_addchstrncurses_addnstrncurses_addstrncurses_assume_default_colorsncurses_attroffncurses_attronncurses_attrsetncurses_baudratencurses_beepncurses_bkgdncurses_bkgdsetncurses_borderncurses_bottom_panelncurses_can_change_colorncurses_cbreakncurses_clearncurses_clrtobotncurses_clrtoeolncurses_color_contentncurses_color_setncurses_curs_setncurses_def_prog_modencurses_def_shell_modencurses_define_keyncurses_del_panelncurses_delay_outputncurses_delchncurses_deletelnncurses_delwinncurses_doupdatencurses_echoncurses_echocharncurses_endncurses_erasencurses_erasecharncurses_filterncurses_flashncurses_flushinpncurses_getchncurses_getmaxyxncurses_getmousencurses_getyxncurses_halfdelayncurses_has_colorsncurses_has_icncurses_has_ilncurses_has_keyncurses_hide_panelncurses_hlinencurses_inchncurses_init_colorncurses_init_pairncurses_initncurses_inschncurses_insdellnncurses_insertlnncurses_insstrncurses_instrncurses_isendwinncurses_keyokncurses_keypadncurses_killcharncurses_longnamencurses_metancurses_mouse_trafoncurses_mouseintervalncurses_mousemaskncurses_move_panelncurses_movencurses_mvaddchncurses_mvaddchnstrncurses_mvaddchstrncurses_mvaddnstrncurses_mvaddstrncurses_mvcurncurses_mvdelchncurses_mvgetchncurses_mvhlinencurses_mvinchncurses_mvvlinencurses_mvwaddstrncurses_napmsncurses_new_panelncurses_newpadncurses_newwinncurses_nlncurses_nocbreakncurses_noechoncurses_nonlncurses_noqiflushncurses_norawncurses_pair_contentncurses_panel_abovencurses_panel_belowncurses_panel_windowncurses_pnoutrefreshncurses_prefreshncurses_putpncurses_qiflushncurses_rawncurses_refreshncurses_replace_panelncurses_reset_prog_modencurses_reset_shell_modencurses_resettyncurses_savettyncurses_scr_dumpncurses_scr_initncurses_scr_restorencurses_scr_setncurses_scrlncurses_show_panelncurses_slk_attrncurses_slk_attroffncurses_slk_attronncurses_slk_attrsetncurses_slk_clearncurses_slk_colorncurses_slk_initncurses_slk_noutrefreshncurses_slk_refreshncurses_slk_restorencurses_slk_setncurses_slk_touchncurses_standendncurses_standoutncurses_start_colorncurses_termattrsncurses_termnamencurses_timeoutncurses_top_panelncurses_typeaheadncurses_ungetchncurses_ungetmousencurses_update_panelsncurses_use_default_colorsncurses_use_envncurses_use_extended_namesncurses_vidattrncurses_vlinencurses_waddchncurses_waddstrncurses_wattroffncurses_wattronncurses_wattrsetncurses_wborderncurses_wclearncurses_wcolor_setncurses_werasencurses_wgetchncurses_whlinencurses_wmouse_trafoncurses_wmovencurses_wnoutrefreshncurses_wrefreshncurses_wstandendncurses_wstandoutncurses_wvlineNewt简介安装/配置需求安装运行时配置资源类型预定义常量Newt form exit reasonsNewt colorsetsNewt argument flagsNewt Flags SenseNewt Components FlagsFile Descriptor FlagsCheckbox Tree FlagsEntry FlagsListbox FlagsTextbox FlagsForm FlagsNewt KeysNewt AnchorsGrid Flags范例Basic usageNewt 函数newt_bellnewt_button_barnewt_buttonnewt_centered_windownewt_checkbox_get_valuenewt_checkbox_set_flagsnewt_checkbox_set_valuenewt_checkbox_tree_add_itemnewt_checkbox_tree_find_itemnewt_checkbox_tree_get_currentnewt_checkbox_tree_get_entry_valuenewt_checkbox_tree_get_multi_selectionnewt_checkbox_tree_get_selectionnewt_checkbox_tree_multinewt_checkbox_tree_set_currentnewt_checkbox_tree_set_entry_valuenewt_checkbox_tree_set_entrynewt_checkbox_tree_set_widthnewt_checkbox_treenewt_checkboxnewt_clear_key_buffernewt_clsnewt_compact_buttonnewt_component_add_callbacknewt_component_takes_focusnewt_create_gridnewt_cursor_offnewt_cursor_onnewt_delaynewt_draw_formnewt_draw_root_textnewt_entry_get_valuenewt_entry_set_filternewt_entry_set_flagsnewt_entry_setnewt_entrynewt_finishednewt_form_add_componentnewt_form_add_componentsnewt_form_add_hot_keynewt_form_destroynewt_form_get_currentnewt_form_runnewt_form_set_backgroundnewt_form_set_heightnewt_form_set_sizenewt_form_set_timernewt_form_set_widthnewt_form_watch_fdnewt_formnewt_get_screen_sizenewt_grid_add_components_to_formnewt_grid_basic_windownewt_grid_freenewt_grid_get_sizenewt_grid_h_close_stackednewt_grid_h_stackednewt_grid_placenewt_grid_set_fieldnewt_grid_simple_windownewt_grid_v_close_stackednewt_grid_v_stackednewt_grid_wrapped_window_atnewt_grid_wrapped_windownewt_initnewt_label_set_textnewt_labelnewt_listbox_append_entrynewt_listbox_clear_selectionnewt_listbox_clearnewt_listbox_delete_entrynewt_listbox_get_currentnewt_listbox_get_selectionnewt_listbox_insert_entrynewt_listbox_item_countnewt_listbox_select_itemnewt_listbox_set_current_by_keynewt_listbox_set_currentnewt_listbox_set_datanewt_listbox_set_entrynewt_listbox_set_widthnewt_listboxnewt_listitem_get_datanewt_listitem_setnewt_listitemnewt_open_windownewt_pop_help_linenewt_pop_windownewt_push_help_linenewt_radio_get_currentnewt_radiobuttonnewt_redraw_help_linenewt_reflow_textnewt_refreshnewt_resize_screennewt_resumenewt_run_formnewt_scale_setnewt_scalenewt_scrollbar_setnewt_set_help_callbacknewt_set_suspend_callbacknewt_suspendnewt_textbox_get_num_linesnewt_textbox_reflowednewt_textbox_set_heightnewt_textbox_set_textnewt_textboxnewt_vertical_scrollbarnewt_wait_for_keynewt_win_choicenewt_win_entriesnewt_win_menunewt_win_messagenewt_win_messagevnewt_win_ternaryReadline简介安装/配置需求安装运行时配置资源类型预定义常量Readline 函数readline_add_historyreadline_callback_handler_installreadline_callback_handler_removereadline_callback_read_charreadline_clear_historyreadline_completion_functionreadline_inforeadline_list_historyreadline_on_new_linereadline_read_historyreadline_redisplayreadline_write_historyreadline压缩与归档扩展Bzip2简介安装/配置需求安装运行时配置资源类型预定义常量范例Bzip2 函数bzclosebzcompressbzdecompressbzerrnobzerrorbzerrstrbzflushbzopenbzreadbzwriteLZF简介安装/配置需求安装运行时配置资源类型预定义常量LZF 函数lzf_compresslzf_decompresslzf_optimized_forPhar简介安装/配置需求安装运行时配置资源类型预定义常量Using Phar ArchivesUsing Phar Archives: IntroductionUsing Phar Archives: the phar stream wrapperUsing Phar Archives: the Phar and PharData classCreating Phar ArchivesCreating Phar Archives: IntroductionWhat makes a phar a phar and not a tar or a zip?Ingredients of all Phar archives, independent of file formatPhar file stubHead-to-head comparison of Phar, Tar and ZipTar-based pharsZip-based pharsPhar File FormatGlobal Phar bitmapped flagsPhar manifest file entry definitionPhar Signature formatPharPhar::addEmptyDirPhar::addFilePhar::addFromStringPhar::apiVersionPhar::buildFromDirectoryPhar::buildFromIteratorPhar::canCompressPhar::canWritePhar::compressPhar::compressAllFilesBZIP2Phar::compressAllFilesGZPhar::compressFilesPhar::__constructPhar::convertToDataPhar::convertToExecutablePhar::copyPhar::countPhar::createDefaultStubPhar::decompressPhar::decompressFilesPhar::delMetadataPhar::deletePhar::extractToPhar::getMetadataPhar::getModifiedPhar::getSignaturePhar::getStubPhar::getSupportedCompressionPhar::getSupportedSignaturesPhar::getVersionPhar::hasMetadataPhar::interceptFileFuncsPhar::isBufferingPhar::isCompressedPhar::isFileFormatPhar::isValidPharFilenamePhar::isWritablePhar::loadPharPhar::mapPharPhar::mountPhar::mungServerPhar::offsetExistsPhar::offsetGetPhar::offsetSetPhar::offsetUnsetPhar::runningPhar::setAliasPhar::setDefaultStubPhar::setMetadataPhar::setSignatureAlgorithmPhar::setStubPhar::startBufferingPhar::stopBufferingPhar::uncompressAllFilesPhar::unlinkArchivePhar::webPharPharDataPharData::addEmptyDirPharData::addFilePharData::addFromStringPharData::buildFromDirectoryPharData::buildFromIteratorPharData::compressPharData::compressFilesPharData::__constructPharData::convertToDataPharData::convertToExecutablePharData::copyPharData::decompressPharData::decompressFilesPharData::delMetadataPharData::deletePharData::extractToPharData::isWritablePharData::offsetSetPharData::offsetUnsetPharData::setAliasPharData::setDefaultStubPhar::setMetadataPhar::setSignatureAlgorithmPharData::setStubPharFileInfoPharFileInfo::chmodPharFileInfo::compressPharFileInfo::__constructPharFileInfo::decompressPharFileInfo::delMetadataPharFileInfo::getCRC32PharFileInfo::getCompressedSizePharFileInfo::getMetadataPharFileInfo::getPharFlagsPharFileInfo::hasMetadataPharFileInfo::isCRCCheckedPharFileInfo::isCompressedPharFileInfo::isCompressedBZIP2PharFileInfo::isCompressedGZPharFileInfo::setCompressedBZIP2PharFileInfo::setCompressedGZPharFileInfo::setMetadataPharFileInfo::setUncompressedPharExceptionPharExceptionRar简介安装/配置需求安装运行时配置资源类型预定义常量范例Rar 函数rar_wrapper_cache_statsRarArchiveRarArchive::closerar_closeRarArchive::getCommentrar_comment_getRarArchive::getEntriesrar_listRarArchive::getEntryrar_entry_getRarArchive::isBrokenrar_broken_isRarArchive::isSolidrar_solid_isRarArchive::openrar_openRarArchive::setAllowBrokenRarArchive::__toStringRarEntryRarEntry::extractRarEntry::getAttrRarEntry::getCrcRarEntry::getFileTimeRarEntry::getHostOsRarEntry::getMethodRarEntry::getNameRarEntry::getPackedSizeRarEntry::getStreamRarEntry::getUnpackedSizeRarEntry::getVersionRarEntry::isDirectoryRarEntry::isEncryptedRarEntry::__toStringRarExceptionRarException::isUsingExceptionsRarException::setUsingExceptionsZip简介安装/配置需求安装运行时配置资源类型预定义常量范例ZipArchiveZipArchive::addEmptyDirZipArchive::addFileZipArchive::addFromStringZipArchive::addGlobZipArchive::addPatternZipArchive::closeZipArchive::deleteIndexZipArchive::deleteNameZipArchive::extractToZipArchive::getArchiveCommentZipArchive::getCommentIndexZipArchive::getCommentNameZipArchive::getExternalAttributesIndexZipArchive::getExternalAttributesNameZipArchive::getFromIndexZipArchive::getFromNameZipArchive::getNameIndexZipArchive::getStatusStringZipArchive::getStreamZipArchive::locateNameZipArchive::openZipArchive::renameIndexZipArchive::renameNameZipArchive::setArchiveCommentZipArchive::setCommentIndexZipArchive::setCommentNameZipArchive::setCompressionIndexZipArchive::setCompressionNameZipArchive::setExternalAttributesIndexZipArchive::setExternalAttributesNameZipArchive::setPasswordZipArchive::statIndexZipArchive::statNameZipArchive::unchangeAllZipArchive::unchangeArchiveZipArchive::unchangeIndexZipArchive::unchangeNameZip 函数zip_closezip_entry_closezip_entry_compressedsizezip_entry_compressionmethodzip_entry_filesizezip_entry_namezip_entry_openzip_entry_readzip_openzip_readZlib简介安装/配置需求安装运行时配置资源类型预定义常量范例Zlib 函数gzclosegzcompressgzdecodegzdeflategzencodegzeofgzfilegzgetcgzgetsgzgetssgzinflategzopengzpassthrugzputsgzreadgzrewindgzseekgztellgzuncompressgzwritereadgzfilezlib_decodezlib_encodezlib_get_coding_type信用卡处理MCVE简介安装/配置需求安装运行时配置资源类型预定义常量MCVE 函数m_checkstatusm_completeauthorizationsm_connectm_connectionerrorm_deletetransm_destroyconnm_destroyenginem_getcellm_getcellbynumm_getcommadelimitedm_getheaderm_initconnm_initenginem_iscommadelimitedm_maxconntimeoutm_monitorm_numcolumnsm_numrowsm_parsecommadelimitedm_responsekeysm_responseparamm_returnstatusm_setblockingm_setdropfilem_setipm_setssl_cafilem_setssl_filesm_setsslm_settimeoutm_sslcert_gen_hashm_transactionssentm_transinqueuem_transkeyvalm_transnewm_transsendm_uwaitm_validateidentifierm_verifyconnectionm_verifysslcertSPPLUS简介安装/配置需求安装运行时配置资源类型预定义常量SPPLUS 函数calcul_hmaccalculhmacnthmacsigneurlpaiement加密扩展Crack简介安装/配置需求安装运行时配置资源类型预定义常量范例Crack 函数crack_checkcrack_closedictcrack_getlastmessagecrack_opendictCSPRNG简介安装/配置需求安装运行时配置资源类型预定义常量CSPRNG 函数random_bytesrandom_intHash简介安装/配置需求安装运行时配置资源类型预定义常量Hash 函数hash_algoshash_copyhash_equalshash_filehash_finalhash_hmac_filehash_hmachash_inithash_pbkdf2hash_update_filehash_update_streamhash_updatehashMcrypt简介安装/配置需求安装运行时配置资源类型预定义常量Mcrypt 密码范例Mcrypt 函数mcrypt_cbcmcrypt_cfbmcrypt_create_ivmcrypt_decryptmcrypt_ecbmcrypt_enc_get_algorithms_namemcrypt_enc_get_block_sizemcrypt_enc_get_iv_sizemcrypt_enc_get_key_sizemcrypt_enc_get_modes_namemcrypt_enc_get_supported_key_sizesmcrypt_enc_is_block_algorithm_modemcrypt_enc_is_block_algorithmmcrypt_enc_is_block_modemcrypt_enc_self_testmcrypt_encryptmcrypt_generic_deinitmcrypt_generic_endmcrypt_generic_initmcrypt_genericmcrypt_get_block_sizemcrypt_get_cipher_namemcrypt_get_iv_sizemcrypt_get_key_sizemcrypt_list_algorithmsmcrypt_list_modesmcrypt_module_closemcrypt_module_get_algo_block_sizemcrypt_module_get_algo_key_sizemcrypt_module_get_supported_key_sizesmcrypt_module_is_block_algorithm_modemcrypt_module_is_block_algorithmmcrypt_module_is_block_modemcrypt_module_openmcrypt_module_self_testmcrypt_ofbmdecrypt_genericMhash简介安装/配置需求安装运行时配置资源类型预定义常量范例Mhash 函数mhash_countmhash_get_block_sizemhash_get_hash_namemhash_keygen_s2kmhashOpenSSL简介安装/配置需求安装运行时配置资源类型预定义常量Purpose checking flagsPadding flags for asymmetric encryptionKey typesPKCS7 Flags/ConstantsSignature AlgorithmsCiphersVersion constantsServer Name Indication constantsKey/Certificate parametersCertificate VerificationOpenSSL 函数openssl_cipher_iv_lengthopenssl_csr_export_to_fileopenssl_csr_exportopenssl_csr_get_public_keyopenssl_csr_get_subjectopenssl_csr_newopenssl_csr_signopenssl_decryptopenssl_dh_compute_keyopenssl_digestopenssl_encryptopenssl_error_stringopenssl_free_keyopenssl_get_cert_locationsopenssl_get_cipher_methodsopenssl_get_md_methodsopenssl_get_privatekeyopenssl_get_publickeyopenssl_openopenssl_pbkdf2openssl_pkcs12_export_to_fileopenssl_pkcs12_exportopenssl_pkcs12_readopenssl_pkcs7_decryptopenssl_pkcs7_encryptopenssl_pkcs7_signopenssl_pkcs7_verifyopenssl_pkey_export_to_fileopenssl_pkey_exportopenssl_pkey_freeopenssl_pkey_get_detailsopenssl_pkey_get_privateopenssl_pkey_get_publicopenssl_pkey_newopenssl_private_decryptopenssl_private_encryptopenssl_public_decryptopenssl_public_encryptopenssl_random_pseudo_bytesopenssl_sealopenssl_signopenssl_spki_export_challengeopenssl_spki_exportopenssl_spki_newopenssl_spki_verifyopenssl_verifyopenssl_x509_check_private_keyopenssl_x509_checkpurposeopenssl_x509_export_to_fileopenssl_x509_exportopenssl_x509_fingerprintopenssl_x509_freeopenssl_x509_parseopenssl_x509_readPassword Hashing简介安装/配置需求安装运行时配置资源类型预定义常量Password Hashing 函数password_get_infopassword_hashpassword_needs_rehashpassword_verify数据库扩展数据库抽象层DBA简介安装/配置需求安装运行时配置资源类型预定义常量范例Basic usageDBA 函数dba_closedba_deletedba_existsdba_fetchdba_firstkeydba_handlersdba_insertdba_key_splitdba_listdba_nextkeydba_opendba_optimizedba_popendba_replacedba_syncdbx简介安装/配置需求安装运行时配置资源类型预定义常量dbx 函数dbx_closedbx_comparedbx_connectdbx_errordbx_escape_stringdbx_fetch_rowdbx_querydbx_sortODBC简介安装/配置需求安装运行时配置资源类型预定义常量ODBC 函数odbc_autocommitodbc_binmodeodbc_close_allodbc_closeodbc_columnprivilegesodbc_columnsodbc_commitodbc_connectodbc_cursorodbc_data_sourceodbc_doodbc_errorodbc_errormsgodbc_execodbc_executeodbc_fetch_arrayodbc_fetch_intoodbc_fetch_objectodbc_fetch_rowodbc_field_lenodbc_field_nameodbc_field_numodbc_field_precisionodbc_field_scaleodbc_field_typeodbc_foreignkeysodbc_free_resultodbc_gettypeinfoodbc_longreadlenodbc_next_resultodbc_num_fieldsodbc_num_rowsodbc_pconnectodbc_prepareodbc_primarykeysodbc_procedurecolumnsodbc_proceduresodbc_result_allodbc_resultodbc_rollbackodbc_setoptionodbc_specialcolumnsodbc_statisticsodbc_tableprivilegesodbc_tablesPDO简介安装/配置需求安装运行时配置资源类型预定义常量连接与连接管理事务与自动提交预处理语句与存储过程错误与错误处理大对象 (LOBs)PDOPDO::beginTransactionPDO::commitPDO::__constructPDO::errorCodePDO::errorInfoPDO::execPDO::getAttributePDO::getAvailableDriversPDO::inTransactionPDO::lastInsertIdPDO::preparePDO::queryPDO::quotePDO::rollBackPDO::setAttributePDOStatementPDOStatement::bindColumnPDOStatement::bindParamPDOStatement::bindValuePDOStatement::closeCursorPDOStatement::columnCountPDOStatement::debugDumpParamsPDOStatement::errorCodePDOStatement::errorInfoPDOStatement::executePDOStatement::fetchPDOStatement::fetchAllPDOStatement::fetchColumnPDOStatement::fetchObjectPDOStatement::getAttributePDOStatement::getColumnMetaPDOStatement::nextRowsetPDOStatement::rowCountPDOStatement::setAttributePDOStatement::setFetchModePDOExceptionPDO 驱动CUBRID (PDO)PDO_CUBRID DSNPDO::cubrid_schemaMS SQL Server (PDO)PDO_DBLIB DSNFirebird (PDO)PDO_FIREBIRD DSNIBM (PDO)PDO_IBM DSNInformix (PDO)PDO_INFORMIX DSNMySQL (PDO)PDO_MYSQL DSNMS SQL Server (PDO)PDO_SQLSRV DSNOracle (PDO)PDO_OCI DSNODBC and DB2 (PDO)PDO_ODBC DSNPostgreSQL (PDO)PDO_PGSQL DSNPDO::pgsqlCopyFromArrayPDO::pgsqlCopyFromFilePDO::pgsqlCopyToArrayPDO::pgsqlCopyToFilePDO::pgsqlGetNotifyPDO::pgsqlGetPidPDO::pgsqlLOBCreatePDO::pgsqlLOBOpenPDO::pgsqlLOBUnlinkSQLite (PDO)PDO_SQLITE DSNPDO::sqliteCreateAggregatePDO::sqliteCreateCollationPDO::sqliteCreateFunction4D (PDO)PDO_4D DSNConstants for PDO_4DSQL types with PDO_4D and PHPSQL acceptable by 4DExamples with PDO_4D针对各数据库系统对应的扩展CUBRID简介安装/配置需求安装运行时配置资源类型预定义常量范例CUBRID 函数cubrid_bindcubrid_close_preparecubrid_close_requestcubrid_col_getcubrid_col_sizecubrid_column_namescubrid_column_typescubrid_commitcubrid_connect_with_urlcubrid_connectcubrid_current_oidcubrid_disconnectcubrid_dropcubrid_error_code_facilitycubrid_error_codecubrid_error_msgcubrid_executecubrid_fetchcubrid_free_resultcubrid_get_autocommitcubrid_get_charsetcubrid_get_class_namecubrid_get_client_infocubrid_get_db_parametercubrid_get_query_timeoutcubrid_get_server_infocubrid_getcubrid_insert_idcubrid_is_instancecubrid_lob_closecubrid_lob_exportcubrid_lob_getcubrid_lob_sendcubrid_lob_sizecubrid_lob2_bindcubrid_lob2_closecubrid_lob2_exportcubrid_lob2_importcubrid_lob2_newcubrid_lob2_readcubrid_lob2_seek64cubrid_lob2_seekcubrid_lob2_size64cubrid_lob2_sizecubrid_lob2_tell64cubrid_lob2_tellcubrid_lob2_writecubrid_lock_readcubrid_lock_writecubrid_move_cursorcubrid_next_resultcubrid_num_colscubrid_num_rowscubrid_pconnect_with_urlcubrid_pconnectcubrid_preparecubrid_putcubrid_rollbackcubrid_schemacubrid_seq_dropcubrid_seq_insertcubrid_seq_putcubrid_set_addcubrid_set_autocommitcubrid_set_db_parametercubrid_set_dropcubrid_set_query_timeoutcubrid_versionCUBRID MySQL 兼容性函数cubrid_affected_rowscubrid_client_encodingcubrid_closecubrid_data_seekcubrid_db_namecubrid_errnocubrid_errorcubrid_fetch_arraycubrid_fetch_assoccubrid_fetch_fieldcubrid_fetch_lengthscubrid_fetch_objectcubrid_fetch_rowcubrid_field_flagscubrid_field_lencubrid_field_namecubrid_field_seekcubrid_field_tablecubrid_field_typecubrid_list_dbscubrid_num_fieldscubrid_pingcubrid_querycubrid_real_escape_stringcubrid_resultcubrid_unbuffered_queryCUBRID 过时的别名和函数cubrid_load_from_glocubrid_new_glocubrid_save_to_glocubrid_send_gloDB++简介安装/配置需求安装运行时配置资源类型预定义常量db++ error codesDB++ 函数dbplus_adddbplus_aqldbplus_chdirdbplus_closedbplus_currdbplus_errcodedbplus_errnodbplus_finddbplus_firstdbplus_flushdbplus_freealllocksdbplus_freelockdbplus_freerlocksdbplus_getlockdbplus_getuniquedbplus_infodbplus_lastdbplus_lockreldbplus_nextdbplus_opendbplus_prevdbplus_rchpermdbplus_rcreatedbplus_rcrtexactdbplus_rcrtlikedbplus_resolvedbplus_restoreposdbplus_rkeysdbplus_ropendbplus_rquerydbplus_rrenamedbplus_rsecindexdbplus_runlinkdbplus_rzapdbplus_saveposdbplus_setindexdbplus_setindexbynumberdbplus_sqldbplus_tcldbplus_tremovedbplus_undodbplus_undopreparedbplus_unlockreldbplus_unselectdbplus_updatedbplus_xlockreldbplus_xunlockreldBase简介安装/配置需求安装运行时配置资源类型预定义常量dBase 函数dbase_add_recorddbase_closedbase_createdbase_delete_recorddbase_get_header_infodbase_get_record_with_namesdbase_get_recorddbase_numfieldsdbase_numrecordsdbase_opendbase_packdbase_replace_recordfilePro简介安装/配置需求安装运行时配置资源类型预定义常量filePro 函数filepro_fieldcountfilepro_fieldnamefilepro_fieldtypefilepro_fieldwidthfilepro_retrievefilepro_rowcountfileproFirebird/InterBase简介安装/配置需求安装运行时配置资源类型预定义常量Firebird/InterBase 函数ibase_add_useribase_affected_rowsibase_backupibase_blob_addibase_blob_cancelibase_blob_closeibase_blob_createibase_blob_echoibase_blob_getibase_blob_importibase_blob_infoibase_blob_openibase_closeibase_commit_retibase_commitibase_connectibase_db_infoibase_delete_useribase_drop_dbibase_errcodeibase_errmsgibase_executeibase_fetch_associbase_fetch_objectibase_fetch_rowibase_field_infoibase_free_event_handleribase_free_queryibase_free_resultibase_gen_idibase_maintain_dbibase_modify_useribase_name_resultibase_num_fieldsibase_num_paramsibase_param_infoibase_pconnectibase_prepareibase_queryibase_restoreibase_rollback_retibase_rollbackibase_server_infoibase_service_attachibase_service_detachibase_set_event_handleribase_transibase_wait_eventFrontBase简介安装/配置需求安装运行时配置资源类型预定义常量FrontBase 函数fbsql_affected_rowsfbsql_autocommitfbsql_blob_sizefbsql_change_userfbsql_clob_sizefbsql_closefbsql_commitfbsql_connectfbsql_create_blobfbsql_create_clobfbsql_create_dbfbsql_data_seekfbsql_database_passwordfbsql_databasefbsql_db_queryfbsql_db_statusfbsql_drop_dbfbsql_errnofbsql_errorfbsql_fetch_arrayfbsql_fetch_assocfbsql_fetch_fieldfbsql_fetch_lengthsfbsql_fetch_objectfbsql_fetch_rowfbsql_field_flagsfbsql_field_lenfbsql_field_namefbsql_field_seekfbsql_field_tablefbsql_field_typefbsql_free_resultfbsql_get_autostart_infofbsql_hostnamefbsql_insert_idfbsql_list_dbsfbsql_list_fieldsfbsql_list_tablesfbsql_next_resultfbsql_num_fieldsfbsql_num_rowsfbsql_passwordfbsql_pconnectfbsql_queryfbsql_read_blobfbsql_read_clobfbsql_resultfbsql_rollbackfbsql_rows_fetchedfbsql_select_dbfbsql_set_charactersetfbsql_set_lob_modefbsql_set_passwordfbsql_set_transactionfbsql_start_dbfbsql_stop_dbfbsql_table_namefbsql_tablenamefbsql_usernamefbsql_warningsIBM DB2简介安装/配置需求安装运行时配置资源类型预定义常量IBM DB2 函数db2_autocommitdb2_bind_paramdb2_client_infodb2_closedb2_column_privilegesdb2_columnsdb2_commitdb2_conn_errordb2_conn_errormsgdb2_connectdb2_cursor_typedb2_escape_stringdb2_execdb2_executedb2_fetch_arraydb2_fetch_assocdb2_fetch_bothdb2_fetch_objectdb2_fetch_rowdb2_field_display_sizedb2_field_namedb2_field_numdb2_field_precisiondb2_field_scaledb2_field_typedb2_field_widthdb2_foreign_keysdb2_free_resultdb2_free_stmtdb2_get_optiondb2_last_insert_iddb2_lob_readdb2_next_resultdb2_num_fieldsdb2_num_rowsdb2_pclosedb2_pconnectdb2_preparedb2_primary_keysdb2_procedure_columnsdb2_proceduresdb2_resultdb2_rollbackdb2_server_infodb2_set_optiondb2_special_columnsdb2_statisticsdb2_stmt_errordb2_stmt_errormsgdb2_table_privilegesdb2_tablesInformix简介安装/配置需求安装运行时配置资源类型预定义常量Informix 函数ifx_affected_rowsifx_blobinfile_modeifx_byteasvarcharifx_closeifx_connectifx_copy_blobifx_create_blobifx_create_charifx_doifx_errorifx_errormsgifx_fetch_rowifx_fieldpropertiesifx_fieldtypesifx_free_blobifx_free_charifx_free_resultifx_get_blobifx_get_charifx_getsqlcaifx_htmltbl_resultifx_nullformatifx_num_fieldsifx_num_rowsifx_pconnectifx_prepareifx_queryifx_textasvarcharifx_update_blobifx_update_charifxus_close_slobifxus_create_slobifxus_free_slobifxus_open_slobifxus_read_slobifxus_seek_slobifxus_tell_slobifxus_write_slobIngres简介安装/配置需求安装运行时配置资源类型预定义常量范例Basic usageIngres 函数ingres_autocommit_stateingres_autocommitingres_charsetingres_closeingres_commitingres_connectingres_cursoringres_errnoingres_erroringres_errsqlstateingres_escape_stringingres_executeingres_fetch_arrayingres_fetch_associngres_fetch_objectingres_fetch_proc_returningres_fetch_rowingres_field_lengthingres_field_nameingres_field_nullableingres_field_precisioningres_field_scaleingres_field_typeingres_free_resultingres_next_erroringres_num_fieldsingres_num_rowsingres_pconnectingres_prepareingres_queryingres_result_seekingres_rollbackingres_set_environmentingres_unbuffered_queryMaxDB简介安装/配置需求安装运行时配置资源类型预定义常量范例Basic usageMaxDB 函数maxdb_affected_rowsmaxdb::affected_rowsmaxdb_autocommitmaxdb::auto_commitmaxdb_bind_parammaxdb_bind_resultmaxdb_change_usermaxdb::change_usermaxdb_character_set_namemaxdb::character_set_namemaxdb_client_encodingmaxdb_close_long_datamaxdb::close_long_datamaxdb_closemaxdb::closemaxdb_commitmaxdb::commitmaxdb_connect_errnomaxdb_connect_errormaxdb_connectmaxdb::__constructmaxdb_data_seekmaxdb_result::data_seekmaxdb_debugmaxdb_disable_reads_from_mastermaxdb::disable_reads_from_mastermaxdb_disable_rpl_parsemaxdb_dump_debug_infomaxdb_embedded_connectmaxdb_enable_reads_from_mastermaxdb_enable_rpl_parsemaxdb_errnomaxdb::errnomaxdb_errormaxdb::errormaxdb_escape_stringmaxdb_executemaxdb_fetch_arraymaxdb_result::fetch_arraymaxdb_fetch_assocmaxdb_result::fetch_assocmaxdb_fetch_field_directmaxdb_result::fetch_field_directmaxdb_fetch_fieldmaxdb_result::fetch_fieldmaxdb_fetch_fieldsmaxdb_result::fetch_fieldsmaxdb_fetch_lengthsmaxdb_result::lengthsmaxdb_fetch_objectmaxdb_result::fetch_objectmaxdb_fetch_rowmaxdb_result::fetch_rowmaxdb_fetchmaxdb_field_countmaxdb::field_countmaxdb_field_seekmaxdb_result::field_seekmaxdb_field_tellmaxdb_result::current_fieldmaxdb_free_resultmaxdb_result::freemaxdb_get_client_infomaxdb_get_client_versionmaxdb_get_host_infomaxdb::get_host_infomaxdb_get_metadatamaxdb_get_proto_infomaxdb::protocol_versionmaxdb_get_server_infomaxdb::server_infomaxdb_get_server_versionmaxdb::server_versionmaxdb_infomaxdb::infomaxdb_initmaxdb_insert_idmaxdb::insert_idmaxdb_killmaxdb::killmaxdb_master_querymaxdb_more_resultsmaxdb::more_resultsmaxdb_multi_querymaxdb::multi_querymaxdb_next_resultmaxdb::next_resultmaxdb_num_fieldsmaxdb_result::field_countmaxdb_num_rowsmaxdb::num_rowsmaxdb_optionsmaxdb::optionsmaxdb_param_countmaxdb_pingmaxdb::pingmaxdb_preparemaxdb::preparemaxdb_querymaxdb::querymaxdb_real_connectmaxdb::real_connectmaxdb_real_escape_stringmaxdb::real_escape_stringmaxdb_real_querymaxdb::real_querymaxdb_reportmaxdb_rollbackmaxdb::rollbackmaxdb_rpl_parse_enabledmaxdb_rpl_probemaxdb_rpl_query_typemaxdb::rpl_query_typemaxdb_select_dbmaxdb::select_dbmaxdb_send_long_datamaxdb_send_querymaxdb::send_querymaxdb_server_endmaxdb_server_initmaxdb_set_optmaxdb_sqlstatemaxdb::sqlstatemaxdb_ssl_setmaxdb::ssl_setmaxdb_statmaxdb::statmaxdb_stmt_affected_rowsmaxdb_stmt::affected_rowsmaxdb_stmt_bind_parammaxdb_stmt::bind_parammaxdb_stmt_bind_resultmaxdb_stmt::bind_resultmaxdb_stmt_close_long_datamaxdb_stmt::close_long_datamaxdb_stmt_closemaxdb_stmt::closemaxdb_stmt_data_seekmaxdb_stmt::data_seekmaxdb_stmt_errnomaxdb_stmt::errnomaxdb_stmt_errormaxdb_stmt::errormaxdb_stmt_executemaxdb_stmt::executemaxdb_stmt_fetchmaxdb_stmt::fetchmaxdb_stmt_free_resultmaxdb_stmt::free_resultmaxdb_stmt_initmaxdb::stmt_initmaxdb_stmt_num_rowsmaxdb_stmt::num_rowsmaxdb_stmt_param_countmaxdb_stmt::param_countmaxdb_stmt_preparemaxdb_stmt::preparemaxdb_stmt_resetmaxdb_stmt::resetmaxdb_stmt_result_metadatamaxdb_stmt::result_metadatamaxdb_stmt_send_long_datamaxdb_stmt::send_long_datamaxdb_stmt_sqlstatemaxdb_stmt_store_resultmaxdb_stmt::store_resultmaxdb_store_resultmaxdb::store_resultmaxdb_thread_idmaxdb::thread_idmaxdb_thread_safemaxdb_use_resultmaxdb::use_resultmaxdb_warning_countmaxdb::warning_countMongo安装/配置需求安装运行时配置手册教程连接数据库获取数据库实例获取集合实例插入一个文档使用 MongoCollection::findOne 方法添加多个文档计算文档数量使用游标获取所有文档设置查询条件获取一个子集建立索引读取首选项Write ConcernsSQL 到 Mongo 的对应表链接服务器认证复制集合ShardingUnix Domain Socket支持Connection Pooling (version 1.2.0-1.2.12 *only*)Persistent Connections (version up to 1.1.4 *only*)WritesQueryingUpdatesSecurity故障排除Running the Driver's Tests核心类MongoClientMongoClient::closeMongoClient::connectMongoClient::__constructMongoClient::dropDBMongoClient::__getMongoClient::getConnectionsMongoClient::getHostsMongoClient::getReadPreferenceMongoClient::getWriteConcernMongoClient::killCursorMongoClient::listDBsMongoClient::selectCollectionMongoClient::selectDBMongoClient::setReadPreferenceMongoClient::setWriteConcernMongoClient::__toStringMongoDBMongoDB::authenticateMongoDB::commandMongoDB::__constructMongoDB::createCollectionMongoDB::createDBRefMongoDB::dropMongoDB::dropCollectionMongoDB::executeMongoDB::forceErrorMongoDB::__getMongoDB::getCollectionInfoMongoDB::getCollectionNamesMongoDB::getDBRefMongoDB::getGridFSMongoDB::getProfilingLevelMongoDB::getReadPreferenceMongoDB::getSlaveOkayMongoDB::getWriteConcernMongoDB::lastErrorMongoDB::listCollectionsMongoDB::prevErrorMongoDB::repairMongoDB::resetErrorMongoDB::selectCollectionMongoDB::setProfilingLevelMongoDB::setReadPreferenceMongoDB::setSlaveOkayMongoDB::setWriteConcernMongoDB::__toStringMongoCollectionMongoCollection::aggregateMongoCollection::aggregateCursorMongoCollection::batchInsertMongoCollection::__constructMongoCollection::countMongoCollection::createDBRefMongoCollection::createIndexMongoCollection::deleteIndexMongoCollection::deleteIndexesMongoCollection::distinctMongoCollection::dropMongoCollection::ensureIndexMongoCollection::findMongoCollection::findAndModifyMongoCollection::findOneMongoCollection::__getMongoCollection::getDBRefMongoCollection::getIndexInfoMongoCollection::getNameMongoCollection::getReadPreferenceMongoCollection::getSlaveOkayMongoCollection::getWriteConcernMongoCollection::groupMongoCollection::insertMongoCollection::parallelCollectionScanMongoCollection::removeMongoCollection::saveMongoCollection::setReadPreferenceMongoCollection::setSlaveOkayMongoCollection::setWriteConcernMongoCollection::toIndexStringMongoCollection::__toStringMongoCollection::updateMongoCollection::validateMongoCursorMongoCursor::addOptionMongoCursor::awaitDataMongoCursor::batchSizeMongoCursor::__constructMongoCursor::countMongoCursor::currentMongoCursor::deadMongoCursor::doQueryMongoCursor::explainMongoCursor::fieldsMongoCursor::getNextMongoCursor::getReadPreferenceMongoCursor::hasNextMongoCursor::hintMongoCursor::immortalMongoCursor::infoMongoCursor::keyMongoCursor::limitMongoCursor::maxTimeMSMongoCursor::nextMongoCursor::partialMongoCursor::resetMongoCursor::rewindMongoCursor::setFlagMongoCursor::setReadPreferenceMongoCursor::skipMongoCursor::slaveOkayMongoCursor::snapshotMongoCursor::sortMongoCursor::tailableMongoCursor::timeoutMongoCursor::validTypesMongoIdMongoId::__constructMongoId::getHostnameMongoId::getIncMongoId::getPIDMongoId::getTimestampMongoId::isValidMongoId::__set_stateMongoId::__toStringMongoCodeMongoCode::__constructMongoCode::__toStringMongoDateMongoDate::__constructMongoDate::toDateTimeMongoDate::__toStringMongoRegexMongoRegex::__constructMongoRegex::__toStringMongoBinDataMongoBinData::__constructMongoBinData::__toStringMongoInt32MongoInt32::__constructMongoInt32::__toStringMongoInt64MongoInt64::__constructMongoInt64::__toStringMongoDBRefMongoDBRef::createMongoDBRef::getMongoDBRef::isRefMongoMinKeyMongoMaxKeyMongoTimestampMongoTimestamp::__constructMongoTimestamp::__toStringGridFS ClassesMongoGridFSMongoGridFS::__constructMongoGridFS::deleteMongoGridFS::dropMongoGridFS::findMongoGridFS::findOneMongoGridFS::getMongoGridFS::putMongoGridFS::removeMongoGridFS::storeBytesMongoGridFS::storeFileMongoGridFS::storeUploadMongoGridFSFileMongoGridfsFile::__constructMongoGridFSFile::getBytesMongoGridFSFile::getFilenameMongoGridFSFile::getResourceMongoGridFSFile::getSizeMongoGridFSFile::writeMongoGridFSCursorMongoGridFSCursor::__constructMongoGridFSCursor::currentMongoGridFSCursor::getNextMongoGridFSCursor::keyMiscellaneousMongoLogMongoLog::getCallbackMongoLog::getLevelMongoLog::getModuleMongoLog::setCallbackMongoLog::setLevelMongoLog::setModuleMongoPoolMongoPool::getSizeMongoPool::infoMongoPool::setSizeMongoMongo::connectUtilMongo::__constructMongo::getPoolSizeMongo::getSlaveMongo::getSlaveOkayMongo::poolDebugMongo::setPoolSizeMongo::setSlaveOkayMongo::switchSlaveMongo 函数bson_decodebson_encodeExceptionsMongoExceptionMongoResultExceptionMongoResultException::getDocumentMongoCursorExceptionMongoCursorException::getHostMongoCursorTimeoutExceptionMongoConnectionExceptionMongoGridFSExceptionMongoDuplicateKeyExceptionMongoProtocolExceptionMongoExecutionTimeoutExceptionMongoWriteConcernExceptionMongoWriteConcernException::getDocument更新日志MongoDB安装/配置需求安装PHPHHVM运行时配置预定义常量TutorialsInstalling the driverInstallation with HHVMInstallation with PHPUsing the libraryDriver Architecture and InternalsArchitecturePersisting DataMongoDB\DriverMongoDB\Driver\ManagerMongoDB\Driver\Manager::__constructMongoDB\Driver\Manager::executeBulkWriteMongoDB\Driver\Manager::executeCommandMongoDB\Driver\Manager::executeQueryMongoDB\Driver\Manager::getServersMongoDB\Driver\Manager::selectServerMongoDB\Driver\CommandMongoDB\Driver\Command::__constructMongoDB\Driver\QueryMongoDB\Driver\Query::__constructMongoDB\Driver\BulkWriteMongoDB\Driver\BulkWrite::__constructMongoDB\Driver\BulkWrite::countMongoDB\Driver\BulkWrite::deleteMongoDB\Driver\BulkWrite::insertMongoDB\Driver\BulkWrite::updateMongoDB\Driver\WriteConcernMongoDB\Driver\WriteConcern::__constructMongoDB\Driver\ReadPreferenceMongoDB\Driver\ReadPreference::__constructMongoDB\Driver\CursorMongoDB\Driver\Cursor::__constructMongoDB\Driver\Cursor::getIdMongoDB\Driver\Cursor::getServerMongoDB\Driver\Cursor::isDeadMongoDB\Driver\Cursor::setTypeMapMongoDB\Driver\Cursor::toArrayMongoDB\Driver\CursorIdMongoDB\Driver\CursorId::__constructMongoDB\Driver\CursorId::__toStringMongoDB\Driver\ServerMongoDB\Driver\Server::__constructMongoDB\Driver\Server::executeBulkWriteMongoDB\Driver\Server::executeCommandMongoDB\Driver\Server::executeQueryMongoDB\Driver\Server::getHostMongoDB\Driver\Server::getInfoMongoDB\Driver\Server::getLatencyMongoDB\Driver\Server::getPortMongoDB\Driver\Server::getTagsMongoDB\Driver\Server::getTypeMongoDB\Driver\Server::isArbiterMongoDB\Driver\Server::isHiddenMongoDB\Driver\Server::isPassiveMongoDB\Driver\Server::isPrimaryMongoDB\Driver\Server::isSecondaryMongoDB\Driver\WriteConcernErrorMongoDB\Driver\WriteConcernError::getCodeMongoDB\Driver\WriteConcernError::getInfoMongoDB\Driver\WriteConcernError::getMessageMongoDB\Driver\WriteErrorMongoDB\Driver\WriteError::getCodeMongoDB\Driver\WriteError::getIndexMongoDB\Driver\WriteError::getMessageMongoDB\Driver\WriteResultMongoDB\Driver\WriteResult::getDeletedCountMongoDB\Driver\WriteResult::getInfoMongoDB\Driver\WriteResult::getInsertedCountMongoDB\Driver\WriteResult::getMatchedCountMongoDB\Driver\WriteResult::getModifiedCountMongoDB\Driver\WriteResult::getServerMongoDB\Driver\WriteResult::getUpsertedCountMongoDB\Driver\WriteResult::getUpsertedIdsMongoDB\Driver\WriteResult::getWriteConcernErrorMongoDB\Driver\WriteResult::getWriteErrorsMongoDB\Driver\BSON函数MongoDB\BSON\fromJSONMongoDB\BSON\fromPHPMongoDB\BSON\toJSONMongoDB\BSON\toPHPMongoDB\BSON\BinaryMongoDB\BSON\Binary::__constructMongoDB\BSON\Binary::getSubTypeMongoDB\BSON\JavascriptMongoDB\BSON\Javascript::__constructMongoDB\BSON\MaxKeyMongoDB\BSON\MinKeyMongoDB\BSON\ObjectIDMongoDB\BSON\ObjectID::__constructMongoDB\BSON\ObjectID::__toStringMongoDB\BSON\RegexMongoDB\BSON\Regex::__constructMongoDB\BSON\Regex::getFlagsMongoDB\BSON\Regex::getPatternMongoDB\BSON\Regex::__toStringMongoDB\BSON\TimestampMongoDB\BSON\Timestamp::__constructMongoDB\BSON\Timestamp::__toStringMongoDB\BSON\UTCDatetimeMongoDB\BSON\UTCDatetime::__constructMongoDB\BSON\UTCDatetime::toDateTimeMongoDB\BSON\UTCDatetime::__toStringMongoDB\BSON\TypeMongoDB\BSON\PersistableMongoDB\BSON\SerializableMongoDB\BSON\Serializable::bsonSerializeMongoDB\BSON\UnserializableMongoDB\BSON\Unserializable::bsonUnserializeMongoDB\Driver\ExceptionMongoDB\Driver\Exception\AuthenticationExceptionMongoDB\Driver\Exception\BulkWriteExceptionMongoDB\Driver\Exception\ConnectionExceptionMongoDB\Driver\Exception\ConnectionTimeoutExceptionMongoDB\Driver\Exception\ExceptionMongoDB\Driver\Exception\ExecutionTimeoutExceptionMongoDB\Driver\Exception\InvalidArgumentExceptionMongoDB\Driver\Exception\LogicExceptionMongoDB\Driver\Exception\RuntimeExceptionMongoDB\Driver\Exception\SSLConnectionExceptionMongoDB\Driver\Exception\UnexpectedValueExceptionMongoDB\Driver\Exception\WriteExceptionMongoDB\Driver\Exception\WriteException::getWriteResultmSQL简介安装/配置需求安装运行时配置资源类型预定义常量范例Basic usagemSQL 函数msql_affected_rowsmsql_closemsql_connectmsql_create_dbmsql_createdbmsql_data_seekmsql_db_querymsql_dbnamemsql_drop_dbmsql_errormsql_fetch_arraymsql_fetch_fieldmsql_fetch_objectmsql_fetch_rowmsql_field_flagsmsql_field_lenmsql_field_namemsql_field_seekmsql_field_tablemsql_field_typemsql_fieldflagsmsql_fieldlenmsql_fieldnamemsql_fieldtablemsql_fieldtypemsql_free_resultmsql_list_dbsmsql_list_fieldsmsql_list_tablesmsql_num_fieldsmsql_num_rowsmsql_numfieldsmsql_numrowsmsql_pconnectmsql_querymsql_regcasemsql_resultmsql_select_dbmsql_tablenamemsqlMssql简介安装/配置需求安装运行时配置资源类型预定义常量Mssql 函数mssql_bindmssql_closemssql_connectmssql_data_seekmssql_executemssql_fetch_arraymssql_fetch_assocmssql_fetch_batchmssql_fetch_fieldmssql_fetch_objectmssql_fetch_rowmssql_field_lengthmssql_field_namemssql_field_seekmssql_field_typemssql_free_resultmssql_free_statementmssql_get_last_messagemssql_guid_stringmssql_initmssql_min_error_severitymssql_min_message_severitymssql_next_resultmssql_num_fieldsmssql_num_rowsmssql_pconnectmssql_querymssql_resultmssql_rows_affectedmssql_select_dbMySQLOverview of the MySQL PHP driversTerminology overviewChoosing an APIChoosing a libraryConceptsBuffered and Unbuffered queriesCharacter setsMysql简介安装/配置需求安装运行时配置资源类型更新日志预定义常量范例MySQL 扩展概述范例MySQL 函数mysql_affected_rowsmysql_client_encodingmysql_closemysql_connectmysql_create_dbmysql_data_seekmysql_db_namemysql_db_querymysql_drop_dbmysql_errnomysql_errormysql_escape_stringmysql_fetch_arraymysql_fetch_assocmysql_fetch_fieldmysql_fetch_lengthsmysql_fetch_objectmysql_fetch_rowmysql_field_flagsmysql_field_lenmysql_field_namemysql_field_seekmysql_field_tablemysql_field_typemysql_free_resultmysql_get_client_infomysql_get_host_infomysql_get_proto_infomysql_get_server_infomysql_infomysql_insert_idmysql_list_dbsmysql_list_fieldsmysql_list_processesmysql_list_tablesmysql_num_fieldsmysql_num_rowsmysql_pconnectmysql_pingmysql_querymysql_real_escape_stringmysql_resultmysql_select_dbmysql_set_charsetmysql_statmysql_tablenamemysql_thread_idmysql_unbuffered_queryMysqli简介OverviewQuick start guideDual procedural and object-oriented interfaceConnectionsExecuting statementsPrepared StatementsStored ProceduresMultiple StatementsAPI support for transactionsMetadata安装/配置需求安装运行时配置资源类型mysqli扩展和持久化连接预定义常量NotesMySQLi扩展功能概述MySQLimysqli::$affected_rowsmysqli_affected_rowsmysqli::autocommitmysqli_autocommitmysqli::begin_transactionmysqli_begin_transactionmysqli::change_usermysqli_change_usermysqli::character_set_namemysqli_character_set_namemysqli::$client_infomysqli_get_client_infomysqli::$client_versionmysqli_get_client_versionmysqli::closemysqli_closemysqli::commitmysqli_commitmysqli::$connect_errnomysqli_connect_errnomysqli::$connect_errormysqli_connect_errormysqli::__constructmysqli_connectmysqli::debugmysqli_debugmysqli::dump_debug_infomysqli_dump_debug_infomysqli::errnomysqli_errnomysqli::$error_listmysqli_error_listmysqli::$errormysqli_errormysqli::$field_countmysqli_field_countmysqli::get_charsetmysqli_get_charsetmysqli::get_client_infomysqli_get_client_infomysqli_get_client_statsmysqli_get_client_versionmysqli::$client_versionmysqli::get_connection_statsmysqli_get_connection_statsmysqli::$host_infomysqli_get_host_infomysqli::$protocol_versionmysqli_get_proto_infomysqli::$server_infomysqli_get_server_infomysqli::$server_versionmysqli_get_server_versionmysqli::get_warningsmysqli_get_warningsmysqli::$infomysqli_infomysqli::initmysqli_initmysqli::$insert_idmysqli_insert_idmysqli::killmysqli_killmysqli::more_resultsmysqli_more_resultsmysqli::multi_querymysqli_multi_querymysqli::next_resultmysqli_next_resultmysqli::optionsmysqli_optionsmysqli::pingmysqli_pingmysqli::pollmysqli_pollmysqli::preparemysqli_preparemysqli::querymysqli_querymysqli::real_connectmysqli_real_connectmysqli::real_escape_stringmysqli_real_escape_stringmysqli::real_querymysqli_real_querymysqli::reap_async_querymysqli_reap_async_querymysqli::refreshmysqli_refreshmysqli::release_savepointmysqli_release_savepointmysqli::rollbackmysqli_rollbackmysqli::rpl_query_typemysqli_rpl_query_typemysqli::savepointmysqli_savepointmysqli::select_dbmysqli_select_dbmysqli::send_querymysqli_send_querymysqli::set_charsetmysqli_set_charsetmysqli::set_local_infile_defaultmysqli_set_local_infile_defaultmysqli::set_local_infile_handlermysqli_set_local_infile_handlermysqli::$sqlstatemysqli_sqlstatemysqli::ssl_setmysqli_ssl_setmysqli::statmysqli_statmysqli::stmt_initmysqli_stmt_initmysqli::store_resultmysqli_store_resultmysqli::$thread_idmysqli_thread_idmysqli::thread_safemysqli_thread_safemysqli::use_resultmysqli_use_resultmysqli::$warning_countmysqli_warning_countMySQLi_STMTmysqli_stmt::$affected_rowsmysqli_stmt_affected_rowsmysqli_stmt::attr_getmysqli_stmt_attr_getmysqli_stmt::attr_setmysqli_stmt_attr_setmysqli_stmt::bind_parammysqli_stmt_bind_parammysqli_stmt::bind_resultmysqli_stmt_bind_resultmysqli_stmt::closemysqli_stmt_closemysqli_stmt::__constructmysqli_stmt::data_seekmysqli_stmt_data_seekmysqli_stmt::$errnomysqli_stmt_errnomysqli_stmt::$error_listmysqli_stmt_error_listmysqli_stmt::$errormysqli_stmt_errormysqli_stmt::executemysqli_stmt_executemysqli_stmt::fetchmysqli_stmt_fetchmysqli_stmt::$field_countmysqli_stmt_field_countmysqli_stmt::free_resultmysqli_stmt_free_resultmysqli_stmt::get_resultmysqli_stmt_get_resultmysqli_stmt::get_warningsmysqli_stmt_get_warningsmysqli_stmt::$insert_idmysqli_stmt_insert_idmysqli_stmt::more_resultsmysqli_stmt_more_resultsmysqli_stmt::next_resultmysqli_stmt_next_resultmysqli_stmt::$num_rowsmysqli_stmt_num_rowsmysqli_stmt::$param_countmysqli_stmt_param_countmysqli_stmt::preparemysqli_stmt_preparemysqli_stmt::resetmysqli_stmt_resetmysqli_stmt::result_metadatamysqli_stmt_result_metadatamysqli_stmt::send_long_datamysqli_stmt_send_long_datamysqli_stmt::$sqlstatemysqli_stmt_sqlstatemysqli_stmt::store_resultmysqli_stmt_store_resultmysqli_resultmysqli_result::$current_fieldmysqli_field_tellmysqli_result::data_seekmysqli_data_seekmysqli_result::fetch_allmysqli_fetch_allmysqli_result::fetch_arraymysqli_fetch_arraymysqli_result::fetch_assocmysqli_fetch_assocmysqli_result::fetch_field_directmysqli_fetch_field_directmysqli_result::fetch_fieldmysqli_fetch_fieldmysqli_result::fetch_fieldsmysqli_fetch_fieldsmysqli_result::fetch_objectmysqli_fetch_objectmysqli_result::fetch_rowmysqli_fetch_rowmysqli_result::$field_countmysqli_num_fieldsmysqli_result::field_seekmysqli_field_seekmysqli_result::freemysqli_free_resultmysqli_result::$lengthsmysqli_fetch_lengthsmysqli_result::$num_rowsmysqli_num_rowsMySQLi_Drivermysqli_driver::embedded_server_endmysqli_embedded_server_endmysqli_driver::embedded_server_startmysqli_embedded_server_startmysqli_driver::$report_modemysqli_reportMySQLi_Warningmysqli_warning::__constructmysqli_warning::nextmysqli_sql_exception别名和过时的Mysqli 函数mysqli_bind_parammysqli_bind_resultmysqli_client_encodingmysqli_connectmysqli::disable_reads_from_mastermysqli_disable_reads_from_mastermysqli_disable_rpl_parsemysqli_enable_reads_from_mastermysqli_enable_rpl_parsemysqli_escape_stringmysqli_executemysqli_fetchmysqli_get_cache_statsmysqli_get_links_statsmysqli_get_metadatamysqli_master_querymysqli_param_countmysqli_reportmysqli_rpl_parse_enabledmysqli_rpl_probemysqli_send_long_datamysqli_set_optmysqli_slave_queryMysqlnd简介OverviewInstallation运行时配置IncompatibilitiesPersistent ConnectionsStatisticsNotesMemory managementMySQL Native Driver Plugin APIA comparison of mysqlnd plugins with MySQL ProxyObtaining the mysqlnd plugin APIMySQL Native Driver Plugin ArchitectureThe mysqlnd plugin APIGetting started building a mysqlnd pluginmysqlnd_ms简介快速入门与例子SetupRunning statements连接状态SQL Hints (SQL 优化器)事务XA/Distributed Transactions服务级别和一致性Global transaction IDs (GTID)Cache integration故障转移分区和分片MySQL Fabric概念Architecture连接池与切换事务控制错误处理短错误错误处理负载均衡Read-write splittingFilterService level and consistencyGlobal transaction IDsCache integrationSupported clustersXA/Distributed transactions安装/配置需求安装运行时配置Plugin configuration file (>=1.1.x)预定义常量Mysqlnd_ms 函数mysqlnd_ms_dump_serversmysqlnd_ms_fabric_select_globalmysqlnd_ms_fabric_select_shardmysqlnd_ms_get_last_gtidmysqlnd_ms_get_last_used_connectionmysqlnd_ms_get_statsmysqlnd_ms_match_wildmysqlnd_ms_query_is_selectmysqlnd_ms_set_qosmysqlnd_ms_set_user_pick_servermysqlnd_ms_xa_beginmysqlnd_ms_xa_commitmysqlnd_ms_xa_gcmysqlnd_ms_xa_rollbackChange HistoryPECL/mysqlnd_ms 1.6 seriesPECL/mysqlnd_ms 1.5 seriesPECL/mysqlnd_ms 1.4 seriesPECL/mysqlnd_ms 1.3 seriesPECL/mysqlnd_ms 1.2 seriesPECL/mysqlnd_ms 1.1 seriesPECL/mysqlnd_ms 1.0 seriesmysqlnd_qc简介Quickstart and ExamplesArchitecture and ConceptsSetupCaching queriesSetting the TTLPattern based cachingSlam defenseFinding cache candidatesMeasuring cache efficiencyBeyond TTL: user-defined storage安装/配置需求安装运行时配置预定义常量mysqlnd_qc 函数mysqlnd_qc_clear_cachemysqlnd_qc_get_available_handlersmysqlnd_qc_get_cache_infomysqlnd_qc_get_core_statsmysqlnd_qc_get_normalized_query_trace_logmysqlnd_qc_get_query_trace_logmysqlnd_qc_set_cache_conditionmysqlnd_qc_set_is_selectmysqlnd_qc_set_storage_handlermysqlnd_qc_set_user_handlersChange HistoryPECL/mysqlnd_qc 1.2 seriesPECL/mysqlnd_qc 1.1 seriesPECL/mysqlnd_qc 1.0 seriesmysqlnd_uh简介Quickstart and ExamplesSetupHow it worksInstalling a proxyBasic query monitoring安装/配置需求安装运行时配置资源类型预定义常量MysqlndUhConnectionMysqlndUhConnection::changeUserMysqlndUhConnection::charsetNameMysqlndUhConnection::closeMysqlndUhConnection::connectMysqlndUhConnection::__constructMysqlndUhConnection::endPSessionMysqlndUhConnection::escapeStringMysqlndUhConnection::getAffectedRowsMysqlndUhConnection::getErrorNumberMysqlndUhConnection::getErrorStringMysqlndUhConnection::getFieldCountMysqlndUhConnection::getHostInformationMysqlndUhConnection::getLastInsertIdMysqlndUhConnection::getLastMessageMysqlndUhConnection::getProtocolInformationMysqlndUhConnection::getServerInformationMysqlndUhConnection::getServerStatisticsMysqlndUhConnection::getServerVersionMysqlndUhConnection::getSqlstateMysqlndUhConnection::getStatisticsMysqlndUhConnection::getThreadIdMysqlndUhConnection::getWarningCountMysqlndUhConnection::initMysqlndUhConnection::killConnectionMysqlndUhConnection::listFieldsMysqlndUhConnection::listMethodMysqlndUhConnection::moreResultsMysqlndUhConnection::nextResultMysqlndUhConnection::pingMysqlndUhConnection::queryMysqlndUhConnection::queryReadResultsetHeaderMysqlndUhConnection::reapQueryMysqlndUhConnection::refreshServerMysqlndUhConnection::restartPSessionMysqlndUhConnection::selectDbMysqlndUhConnection::sendCloseMysqlndUhConnection::sendQueryMysqlndUhConnection::serverDumpDebugInformationMysqlndUhConnection::setAutocommitMysqlndUhConnection::setCharsetMysqlndUhConnection::setClientOptionMysqlndUhConnection::setServerOptionMysqlndUhConnection::shutdownServerMysqlndUhConnection::simpleCommandMysqlndUhConnection::simpleCommandHandleResponseMysqlndUhConnection::sslSetMysqlndUhConnection::stmtInitMysqlndUhConnection::storeResultMysqlndUhConnection::txCommitMysqlndUhConnection::txRollbackMysqlndUhConnection::useResultMysqlndUhPreparedStatementMysqlndUhPreparedStatement::__constructMysqlndUhPreparedStatement::executeMysqlndUhPreparedStatement::prepareMysqlnd_uh 函数mysqlnd_uh_convert_to_mysqlndmysqlnd_uh_set_connection_proxymysqlnd_uh_set_statement_proxyChange HistoryPECL/mysqlnd_uh 1.0 seriesmysqlnd_mux简介ConceptsArchitectureConnection poolSharing connections安装/配置需求安装运行时配置预定义常量Change HistoryPECL/mysqlnd_mux 1.0 seriesmysqlnd_memcache简介Quickstart and ExamplesSetupUsage安装/配置需求安装运行时配置预定义常量Mysqlnd_memcache 函数mysqlnd_memcache_get_configmysqlnd_memcache_setChange HistoryPECL/mysqlnd_memcache 1.0 seriesOCI8简介安装/配置需求安装Testing运行时配置预定义常量范例OCI8 Connection Handling and Connection PoolingOCI8 Fast Application Notification (FAN) SupportOCI8 and DTrace Dynamic TracingSupported DatatypesOCI8 函数oci_bind_array_by_nameoci_bind_by_nameoci_canceloci_client_versionoci_closeoci_commitoci_connectoci_define_by_nameoci_erroroci_executeoci_fetch_alloci_fetch_arrayoci_fetch_assococi_fetch_objectoci_fetch_rowoci_fetchoci_field_is_nulloci_field_nameoci_field_precisionoci_field_scaleoci_field_sizeoci_field_type_rawoci_field_typeoci_free_descriptoroci_free_statementoci_get_implicit_resultsetoci_internal_debugoci_lob_copyoci_lob_is_equaloci_new_collectionoci_new_connectoci_new_cursoroci_new_descriptoroci_num_fieldsoci_num_rowsoci_parseoci_password_changeoci_pconnectoci_resultoci_rollbackoci_server_versionoci_set_actionoci_set_client_identifieroci_set_client_infooci_set_editionoci_set_module_nameoci_set_prefetchoci_statement_typeOCI-CollectionOCI-Collection::appendOCI-Collection::assignOCI-Collection::assignElemOCI-Collection::freeOCI-Collection::getElemOCI-Collection::maxOCI-Collection::sizeOCI-Collection::trimOCI-LobOCI-Lob::appendOCI-Lob::closeOCI-Lob::eofOCI-Lob::eraseOCI-Lob::exportOCI-Lob::flushOCI-Lob::freeOCI-Lob::getBufferingOCI-Lob::importOCI-Lob::loadOCI-Lob::readOCI-Lob::rewindOCI-Lob::saveOCI-Lob::saveFileOCI-Lob::seekOCI-Lob::setBufferingOCI-Lob::sizeOCI-Lob::tellOCI-Lob::truncateOCI-Lob::writeOCI-Lob::writeTemporaryOCI-Lob::writeToFileOCI8 Obsolete Aliases and FunctionsocibindbynameocicancelocicloselobocicollappendocicollassignocicollassignelemocicollgetelemocicollmaxocicollsizeocicolltrimocicolumnisnullocicolumnnameocicolumnprecisionocicolumnscaleocicolumnsizeocicolumntypeocicolumntyperawocicommitocidefinebynameocierrorociexecuteocifetchocifetchintoocifetchstatementocifreecollectionocifreecursorocifreedescocifreestatementociinternaldebugociloadlobocilogoffocilogonocinewcollectionocinewcursorocinewdescriptorocinlogonocinumcolsociparseociplogonociresultocirollbackocirowcountocisavelobocisavelobfileociserverversionocisetprefetchocistatementtypeociwritelobtofileociwritetemporarylobParadox简介安装/配置需求安装运行时配置资源类型预定义常量Paradox 函数px_closepx_create_fppx_date2stringpx_delete_recordpx_deletepx_get_fieldpx_get_infopx_get_parameterpx_get_recordpx_get_schemapx_get_valuepx_insert_recordpx_newpx_numfieldspx_numrecordspx_open_fppx_put_recordpx_retrieve_recordpx_set_blob_filepx_set_parameterpx_set_tablenamepx_set_targetencodingpx_set_valuepx_timestamp2stringpx_update_recordPostgreSQL简介安装/配置需求安装运行时配置资源类型预定义常量范例Basic usagePostgreSQL 函数pg_affected_rowspg_cancel_querypg_client_encodingpg_closepg_connect_pollpg_connectpg_connection_busypg_connection_resetpg_connection_statuspg_consume_inputpg_convertpg_copy_frompg_copy_topg_dbnamepg_deletepg_end_copypg_escape_byteapg_escape_identifierpg_escape_literalpg_escape_stringpg_executepg_fetch_all_columnspg_fetch_allpg_fetch_arraypg_fetch_assocpg_fetch_objectpg_fetch_resultpg_fetch_rowpg_field_is_nullpg_field_namepg_field_numpg_field_prtlenpg_field_sizepg_field_tablepg_field_type_oidpg_field_typepg_flushpg_free_resultpg_get_notifypg_get_pidpg_get_resultpg_hostpg_insertpg_last_errorpg_last_noticepg_last_oidpg_lo_closepg_lo_createpg_lo_exportpg_lo_importpg_lo_openpg_lo_read_allpg_lo_readpg_lo_seekpg_lo_tellpg_lo_truncatepg_lo_unlinkpg_lo_writepg_meta_datapg_num_fieldspg_num_rowspg_optionspg_parameter_statuspg_pconnectpg_pingpg_portpg_preparepg_put_linepg_query_paramspg_querypg_result_error_fieldpg_result_errorpg_result_seekpg_result_statuspg_selectpg_send_executepg_send_preparepg_send_query_paramspg_send_querypg_set_client_encodingpg_set_error_verbositypg_socketpg_tracepg_transaction_statuspg_ttypg_unescape_byteapg_untracepg_updatepg_versionSQLite简介安装/配置需求安装运行时配置资源类型预定义常量SQLite 函数sqlite_array_querySQLiteDatabase::arrayQuerysqlite_busy_timeoutSQLiteDatabase::busyTimeoutsqlite_changesSQLiteDatabase::changessqlite_closesqlite_columnSQLiteResult::columnSQLiteUnbuffered::columnsqlite_create_aggregateSQLiteDatabase::createAggregatesqlite_create_functionSQLiteDatabase::createFunctionsqlite_currentSQLiteResult::currentSQLiteUnbuffered::currentsqlite_error_stringsqlite_escape_stringsqlite_execSQLiteDatabase::execsqlite_factorysqlite_fetch_allSQLiteResult::fetchAllSQLiteUnbuffered::fetchAllsqlite_fetch_arraySQLiteResult::fetchSQLiteUnbuffered::fetchsqlite_fetch_column_typesSQLiteDatabase::fetchColumnTypessqlite_fetch_objectSQLiteResult::fetchObjectSQLiteUnbuffered::fetchObjectsqlite_fetch_singleSQLiteResult::fetchSingleSQLiteUnbuffered::fetchSinglesqlite_fetch_stringsqlite_field_nameSQLiteResult::fieldNameSQLiteUnbuffered::fieldNamesqlite_has_moresqlite_has_prevSQLiteResult::hasPrevsqlite_keySQLiteResult::keysqlite_last_errorSQLiteDatabase::lastErrorsqlite_last_insert_rowidSQLiteDatabase::lastInsertRowidsqlite_libencodingsqlite_libversionsqlite_nextSQLiteResult::nextSQLiteUnbuffered::nextsqlite_num_fieldsSQLiteResult::numFieldsSQLiteUnbuffered::numFieldssqlite_num_rowsSQLiteResult::numRowssqlite_opensqlite_popensqlite_prevSQLiteResult::prevsqlite_querySQLiteDatabase::querysqlite_rewindSQLiteResult::rewindsqlite_seekSQLiteResult::seeksqlite_single_querySQLiteDatabase::singleQuerysqlite_udf_decode_binarysqlite_udf_encode_binarysqlite_unbuffered_querySQLiteDatabase::unbufferedQuerysqlite_validSQLiteResult::validSQLiteUnbuffered::validSQLite3简介安装/配置需求安装运行时配置资源类型预定义常量SQLite3SQLite3::busyTimeoutSQLite3::changesSQLite3::closeSQLite3::__constructSQLite3::createAggregateSQLite3::createCollationSQLite3::createFunctionSQLite3::escapeStringSQLite3::execSQLite3::lastErrorCodeSQLite3::lastErrorMsgSQLite3::lastInsertRowIDSQLite3::loadExtensionSQLite3::openSQLite3::prepareSQLite3::querySQLite3::querySingleSQLite3::versionSQLite3StmtSQLite3Stmt::bindParamSQLite3Stmt::bindValueSQLite3Stmt::clearSQLite3Stmt::closeSQLite3Stmt::executeSQLite3Stmt::paramCountSQLite3Stmt::resetSQLite3ResultSQLite3Result::columnNameSQLite3Result::columnTypeSQLite3Result::fetchArraySQLite3Result::finalizeSQLite3Result::numColumnsSQLite3Result::resetSQLSRV简介安装/配置需求安装运行时配置资源类型预定义常量SQLSRV 函数sqlsrv_begin_transactionsqlsrv_cancelsqlsrv_client_infosqlsrv_closesqlsrv_commitsqlsrv_configuresqlsrv_connectsqlsrv_errorssqlsrv_executesqlsrv_fetch_arraysqlsrv_fetch_objectsqlsrv_fetchsqlsrv_field_metadatasqlsrv_free_stmtsqlsrv_get_configsqlsrv_get_fieldsqlsrv_has_rowssqlsrv_next_resultsqlsrv_num_fieldssqlsrv_num_rowssqlsrv_preparesqlsrv_querysqlsrv_rollbacksqlsrv_rows_affectedsqlsrv_send_stream_datasqlsrv_server_infoSybase简介安装/配置需求安装运行时配置资源类型预定义常量Sybase 函数sybase_affected_rowssybase_closesybase_connectsybase_data_seeksybase_deadlock_retry_countsybase_fetch_arraysybase_fetch_assocsybase_fetch_fieldsybase_fetch_objectsybase_fetch_rowsybase_field_seeksybase_free_resultsybase_get_last_messagesybase_min_client_severitysybase_min_error_severitysybase_min_message_severitysybase_min_server_severitysybase_num_fieldssybase_num_rowssybase_pconnectsybase_querysybase_resultsybase_select_dbsybase_set_message_handlersybase_unbuffered_querytokyo_tyrant简介安装/配置需求安装运行时配置资源类型预定义常量范例TokyoTyrantTokyoTyrant::addTokyoTyrant::connectTokyoTyrant::connectUriTokyoTyrant::__constructTokyoTyrant::copyTokyoTyrant::extTokyoTyrant::fwmKeysTokyoTyrant::getTokyoTyrant::getIteratorTokyoTyrant::numTokyoTyrant::outTokyoTyrant::putTokyoTyrant::putCatTokyoTyrant::putKeepTokyoTyrant::putNrTokyoTyrant::putShlTokyoTyrant::restoreTokyoTyrant::setMasterTokyoTyrant::sizeTokyoTyrant::statTokyoTyrant::syncTokyoTyrant::tuneTokyoTyrant::vanishTokyoTyrantTableTokyoTyrantTable::addTokyoTyrantTable::genUidTokyoTyrantTable::getTokyoTyrantTable::getIteratorTokyoTyrantTable::getQueryTokyoTyrantTable::outTokyoTyrantTable::putTokyoTyrantTable::putCatTokyoTyrantTable::putKeepTokyoTyrantTable::putNrTokyoTyrantTable::putShlTokyoTyrantTable::setIndexTokyoTyrantQueryTokyoTyrantQuery::addCondTokyoTyrantQuery::__constructTokyoTyrantQuery::countTokyoTyrantQuery::currentTokyoTyrantQuery::hintTokyoTyrantQuery::keyTokyoTyrantQuery::metaSearchTokyoTyrantQuery::nextTokyoTyrantQuery::outTokyoTyrantQuery::rewindTokyoTyrantQuery::searchTokyoTyrantQuery::setLimitTokyoTyrantQuery::setOrderTokyoTyrantQuery::validTokyoTyrantIteratorTokyoTyrantIterator::__constructTokyoTyrantIterator::currentTokyoTyrantIterator::keyTokyoTyrantIterator::nextTokyoTyrantIterator::rewindTokyoTyrantIterator::validTokyoTyrantException日期与时间相关扩展Calendar简介安装/配置需求安装运行时配置资源类型预定义常量日历 函数cal_days_in_monthcal_from_jdcal_infocal_to_jdeaster_dateeaster_daysFrenchToJDGregorianToJDJDDayOfWeekJDMonthNameJDToFrenchJDToGregorianjdtojewishJDToJulianjdtounixJewishToJDJulianToJDunixtojd日期/时间简介安装/配置需求安装运行时配置资源类型预定义常量DateTimeDateTime::adddate_addDateTime::__constructdate_createDateTime::createFromFormatdate_create_from_formatDateTime::getLastErrorsdate_get_last_errorsDateTime::modifydate_modifyDateTime::__set_stateDateTime::setDatedate_date_setDateTime::setISODatedate_isodate_setDateTime::setTimedate_time_setDateTime::setTimestampdate_timestamp_setDateTime::setTimezonedate_timezone_setDateTime::subdate_subDateTimeImmutableDateTimeImmutable::addDateTimeImmutable::__constructdate_create_immutableDateTimeImmutable::createFromFormatdate_create_immutable_from_formatDateTimeImmutable::createFromMutableDateTimeImmutable::getLastErrorsDateTimeImmutable::modifyDateTimeImmutable::__set_stateDateTimeImmutable::setDateDateTimeImmutable::setISODateDateTimeImmutable::setTimeDateTimeImmutable::setTimestampDateTimeImmutable::setTimezoneDateTimeImmutable::subDateTimeInterfaceDateTime::diffDateTimeImmutable::diffDateTimeInterface::diffdate_diffDateTime::formatDateTimeImmutable::formatDateTimeInterface::formatdate_formatDateTime::getOffsetDateTimeImmutable::getOffsetDateTimeInterface::getOffsetdate_offset_getDateTime::getTimestampDateTimeImmutable::getTimestampDateTimeInterface::getTimestampdate_timestamp_getDateTime::getTimezoneDateTimeImmutable::getTimezoneDateTimeInterface::getTimezonedate_timezone_getDateTime::__wakeupDateTimeImmutable::__wakeupDateTimeInterface::__wakeupDateTimeZoneDateTimeZone::__constructtimezone_openDateTimeZone::getLocationtimezone_location_getDateTimeZone::getNametimezone_name_getDateTimeZone::getOffsettimezone_offset_getDateTimeZone::getTransitionstimezone_transitions_getDateTimeZone::listAbbreviationstimezone_abbreviations_listDateTimeZone::listIdentifierstimezone_identifiers_listDateIntervalDateInterval::__constructDateInterval::createFromDateStringDateInterval::formatDatePeriodDatePeriod::__constructDate/Time 函数checkdatedate_adddate_create_from_formatdate_create_immutable_from_formatdate_create_immutabledate_createdate_date_setdate_default_timezone_getdate_default_timezone_setdate_diffdate_formatdate_get_last_errorsdate_interval_create_from_date_stringdate_interval_formatdate_isodate_setdate_modifydate_offset_getdate_parse_from_formatdate_parsedate_subdate_sun_infodate_sunrisedate_sunsetdate_time_setdate_timestamp_getdate_timestamp_setdate_timezone_getdate_timezone_setdategetdategettimeofdaygmdategmmktimegmstrftimeidatelocaltimemicrotimemktimestrftimestrptimestrtotimetimetimezone_abbreviations_listtimezone_identifiers_listtimezone_location_gettimezone_name_from_abbrtimezone_name_gettimezone_offset_gettimezone_opentimezone_transitions_gettimezone_version_getSupported Date and Time FormatsTime FormatsDate FormatsCompound FormatsRelative Formats所支持的时区列表非洲美洲南极洲北极亚洲大西洋澳洲欧洲印度太平洋地区其他HRTime简介安装/配置安装范例Basic usageHRTime\PerformanceCounterHRTime\PerformanceCounter::getElapsedTicksHRTime\PerformanceCounter::getFrequencyHRTime\PerformanceCounter::getLastElapsedTicksHRTime\PerformanceCounter::isRunningHRTime\PerformanceCounter::startHRTime\PerformanceCounter::stopHRTime\StopWatchHRTime\StopWatch::getElapsedTimeHRTime\StopWatch::getLastElapsedTimeHRTime\Unit文件系统相关扩展Direct IO简介安装/配置需求安装运行时配置资源类型预定义常量Direct IO 函数dio_closedio_fcntldio_opendio_readdio_seekdio_statdio_tcsetattrdio_truncatedio_write目录安装/配置需求安装运行时配置资源类型预定义常量DirectoryDirectory::closeDirectory::readDirectory::rewindDirectory 函数chdirchrootclosedirdirgetcwdopendirreaddirrewinddirscandirFileinfo简介安装/配置需求安装运行时配置资源类型预定义常量Fileinfo 函数finfo_bufferfinfo::bufferfinfo_closefinfo_filefinfo::filefinfo_openfinfo::__constructfinfo_set_flagsfinfo::set_flagsmime_content_typefinfofinfo::bufferfinfo::__constructfinfo::filefinfo::set_flagsFilesystem简介安装/配置需求安装运行时配置资源类型预定义常量Filesystem 函数basenamechgrpchmodchownclearstatcachecopydeletedirnamedisk_free_spacedisk_total_spacediskfreespacefclosefeoffflushfgetcfgetcsvfgetsfgetssfile_existsfile_get_contentsfile_put_contentsfilefileatimefilectimefilegroupfileinodefilemtimefileownerfilepermsfilesizefiletypeflockfnmatchfopenfpassthrufputcsvfputsfreadfscanffseekfstatftellftruncatefwriteglobis_diris_executableis_fileis_linkis_readableis_uploaded_fileis_writableis_writeablelchgrplchownlinklinkinfolstatmkdirmove_uploaded_fileparse_ini_fileparse_ini_stringpathinfopclosepopenreadfilereadlinkrealpath_cache_getrealpath_cache_sizerealpathrenamerewindrmdirset_file_bufferstatsymlinktempnamtmpfiletouchumaskunlinkInotify简介安装/配置需求安装/配置运行时配置资源类型预定义常量Inotify 函数inotify_add_watchinotify_initinotify_queue_leninotify_readinotify_rm_watchMimetype简介安装/配置需求安装运行时配置资源类型预定义常量Proctitle简介安装/配置需求安装运行时配置资源类型预定义常量Proctitle 函数setproctitlesetthreadtitlexattr简介安装/配置需求安装运行时配置资源类型预定义常量xattr 函数xattr_getxattr_listxattr_removexattr_setxattr_supportedxdiff简介安装/配置需求安装运行时配置资源类型预定义常量xdiff 函数xdiff_file_bdiff_sizexdiff_file_bdiffxdiff_file_bpatchxdiff_file_diff_binaryxdiff_file_diffxdiff_file_merge3xdiff_file_patch_binaryxdiff_file_patchxdiff_file_rabdiffxdiff_string_bdiff_sizexdiff_string_bdiffxdiff_string_bpatchxdiff_string_diff_binaryxdiff_string_diffxdiff_string_merge3xdiff_string_patch_binaryxdiff_string_patchxdiff_string_rabdiff国际化与字符编码支持Enchant简介安装/配置需求安装运行时配置资源类型预定义常量范例Enchant 函数enchant_broker_describeenchant_broker_dict_existsenchant_broker_free_dictenchant_broker_freeenchant_broker_get_dict_pathenchant_broker_get_errorenchant_broker_initenchant_broker_list_dictsenchant_broker_request_dictenchant_broker_request_pwl_dictenchant_broker_set_dict_pathenchant_broker_set_orderingenchant_dict_add_to_personalenchant_dict_add_to_sessionenchant_dict_checkenchant_dict_describeenchant_dict_get_errorenchant_dict_is_in_sessionenchant_dict_quick_checkenchant_dict_store_replacementenchant_dict_suggestFriBiDi简介安装/配置需求安装运行时配置资源类型预定义常量FriBiDi 函数fribidi_log2visGender简介安装/配置安装范例Usage example.Gender\GenderGender\Gender::connectGender\Gender::__constructGender\Gender::countryGender\Gender::getGender\Gender::isNickGender\Gender::similarNamesGettext简介安装/配置需求安装运行时配置资源类型预定义常量Gettext 函数bind_textdomain_codesetbindtextdomaindcgettextdcngettextdgettextdngettextgettextngettexttextdomainiconv简介安装/配置需求安装运行时配置资源类型预定义常量iconv 函数iconv_get_encodingiconv_mime_decode_headersiconv_mime_decodeiconv_mime_encodeiconv_set_encodingiconv_strleniconv_strposiconv_strrposiconv_substriconvob_iconv_handlerintl简介安装/配置需求安装运行时配置资源类型预定义常量范例Basic usage of this extensionCollatorCollator::asortcollator_asortCollator::comparecollator_compareCollator::__constructCollator::createcollator_createCollator::getAttributecollator_get_attributeCollator::getErrorCodecollator_get_error_codeCollator::getErrorMessagecollator_get_error_messageCollator::getLocalecollator_get_localeCollator::getSortKeycollator_get_sort_keyCollator::getStrengthcollator_get_strengthCollator::setAttributecollator_set_attributeCollator::setStrengthcollator_set_strengthCollator::sortWithSortKeyscollator_sort_with_sort_keysCollator::sortcollator_sortNumberFormatterNumberFormatter::createnumfmt_createNumberFormatter::__constructNumberFormatter::formatCurrencynumfmt_format_currencyNumberFormatter::formatnumfmt_formatNumberFormatter::getAttributenumfmt_get_attributeNumberFormatter::getErrorCodenumfmt_get_error_codeNumberFormatter::getErrorMessagenumfmt_get_error_messageNumberFormatter::getLocalenumfmt_get_localeNumberFormatter::getPatternnumfmt_get_patternNumberFormatter::getSymbolnumfmt_get_symbolNumberFormatter::getTextAttributenumfmt_get_text_attributeNumberFormatter::parseCurrencynumfmt_parse_currencyNumberFormatter::parsenumfmt_parseNumberFormatter::setAttributenumfmt_set_attributeNumberFormatter::setPatternnumfmt_set_patternNumberFormatter::setSymbolnumfmt_set_symbolNumberFormatter::setTextAttributenumfmt_set_text_attributeLocaleLocale::acceptFromHttplocale_accept_from_httpLocale::canonicalizelocale_canonicalizeLocale::composeLocalelocale_composeLocale::filterMatcheslocale_filter_matchesLocale::getAllVariantslocale_get_all_variantsLocale::getDefaultlocale_get_defaultLocale::getDisplayLanguagelocale_get_display_languageLocale::getDisplayNamelocale_get_display_nameLocale::getDisplayRegionlocale_get_display_regionLocale::getDisplayScriptlocale_get_display_scriptLocale::getDisplayVariantlocale_get_display_variantLocale::getKeywordslocale_get_keywordsLocale::getPrimaryLanguagelocale_get_primary_languageLocale::getRegionlocale_get_regionLocale::getScriptlocale_get_scriptLocale::lookuplocale_lookupLocale::parseLocalelocale_parseLocale::setDefaultlocale_set_defaultNormalizerNormalizer::isNormalizednormalizer_is_normalizedNormalizer::normalizenormalizer_normalizeMessageFormatterMessageFormatter::createMessageFormatter::__constructmsgfmt_createMessageFormatter::formatMessagemsgfmt_format_messageMessageFormatter::formatmsgfmt_formatMessageFormatter::getErrorCodemsgfmt_get_error_codeMessageFormatter::getErrorMessagemsgfmt_get_error_messageMessageFormatter::getLocalemsgfmt_get_localeMessageFormatter::getPatternmsgfmt_get_patternMessageFormatter::parseMessagemsgfmt_parse_messageMessageFormatter::parsemsgfmt_parseMessageFormatter::setPatternmsgfmt_set_patternIntlCalendarIntlCalendar::addIntlCalendar::afterIntlCalendar::beforeIntlCalendar::clearIntlCalendar::__constructIntlCalendar::createInstanceIntlCalendar::equalsIntlCalendar::fieldDifferenceIntlCalendar::fromDateTimeIntlCalendar::getIntlCalendar::getActualMaximumIntlCalendar::getActualMinimumIntlCalendar::getAvailableLocalesIntlCalendar::getDayOfWeekTypeIntlCalendar::getErrorCodeintlcal_get_error_codeIntlCalendar::getErrorMessageintlcal_get_error_messageIntlCalendar::getFirstDayOfWeekIntlCalendar::getGreatestMinimumIntlCalendar::getKeywordValuesForLocaleIntlCalendar::getLeastMaximumIntlCalendar::getLocaleIntlCalendar::getMaximumIntlCalendar::getMinimalDaysInFirstWeekIntlCalendar::getMinimumIntlCalendar::getNowIntlCalendar::getRepeatedWallTimeOptionIntlCalendar::getSkippedWallTimeOptionIntlCalendar::getTimeIntlCalendar::getTimeZoneIntlCalendar::getTypeIntlCalendar::getWeekendTransitionIntlCalendar::inDaylightTimeIntlCalendar::isEquivalentToIntlCalendar::isLenientIntlCalendar::isSetIntlCalendar::isWeekendIntlCalendar::rollIntlCalendar::setIntlCalendar::setFirstDayOfWeekIntlCalendar::setLenientIntlCalendar::setMinimalDaysInFirstWeekIntlCalendar::setRepeatedWallTimeOptionIntlCalendar::setSkippedWallTimeOptionIntlCalendar::setTimeIntlCalendar::setTimeZoneIntlCalendar::toDateTimeIntlTimeZoneIntlTimeZone::countEquivalentIDsIntlTimeZone::createDefaultIntlTimeZone::createEnumerationIntlTimeZone::createTimeZoneIntlTimeZone::fromDateTimeZoneIntlTimeZone::getCanonicalIDIntlTimeZone::getDisplayNameIntlTimeZone::getDSTSavingsIntlTimeZone::getEquivalentIDIntlTimeZone::getErrorCodeintltz_get_error_codeIntlTimeZone::getErrorMessageintltz_get_error_messageIntlTimeZone::getGMTIntlTimeZone::getIDIntlTimeZone::getOffsetIntlTimeZone::getRawOffsetIntlTimeZone::getTZDataVersionIntlTimeZone::hasSameRulesIntlTimeZone::toDateTimeZoneIntlTimeZone::useDaylightTimeIntlDateFormatterIntlDateFormatter::createdatefmt_createIntlDateFormatter::__constructIntlDateFormatter::formatdatefmt_formatIntlDateFormatter::formatObjectdatefmt_format_objectIntlDateFormatter::getCalendardatefmt_get_calendarIntlDateFormatter::getDateTypedatefmt_get_datetypeIntlDateFormatter::getErrorCodedatefmt_get_error_codeIntlDateFormatter::getErrorMessagedatefmt_get_error_messageIntlDateFormatter::getLocaledatefmt_get_localeIntlDateFormatter::getPatterndatefmt_get_patternIntlDateFormatter::getTimeTypedatefmt_get_timetypeIntlDateFormatter::getTimeZoneIddatefmt_get_timezone_idIntlDateFormatter::getCalendarObjectdatefmt_get_calendar_objectIntlDateFormatter::getTimeZonedatefmt_get_timezoneIntlDateFormatter::isLenientdatefmt_is_lenientIntlDateFormatter::localtimedatefmt_localtimeIntlDateFormatter::parsedatefmt_parseIntlDateFormatter::setCalendardatefmt_set_calendarIntlDateFormatter::setLenientdatefmt_set_lenientIntlDateFormatter::setPatterndatefmt_set_patternIntlDateFormatter::setTimeZoneIddatefmt_set_timezone_idIntlDateFormatter::setTimeZonedatefmt_set_timezoneResourceBundleResourceBundle::countresourcebundle_countResourceBundle::createresourcebundle_createResourceBundle::__constructResourceBundle::getErrorCoderesourcebundle_get_error_codeResourceBundle::getErrorMessageresourcebundle_get_error_messageResourceBundle::getresourcebundle_getResourceBundle::getLocalesresourcebundle_localesSpoofcheckerSpoofchecker::areConfusableSpoofchecker::__constructSpoofchecker::isSuspiciousSpoofchecker::setAllowedLocalesSpoofchecker::setChecksTransliteratorTransliterator::__constructTransliterator::createtransliterator_createTransliterator::createFromRulestransliterator_create_from_rulesTransliterator::createInversetransliterator_create_inverseTransliterator::getErrorCodetransliterator_get_error_codeTransliterator::getErrorMessagetransliterator_get_error_messageTransliterator::listIDstransliterator_list_idsTransliterator::transliteratetransliterator_transliterateIntlBreakIteratorIntlBreakIterator::__constructIntlBreakIterator::createCharacterInstanceIntlBreakIterator::createCodePointInstanceIntlBreakIterator::createLineInstanceIntlBreakIterator::createSentenceInstanceIntlBreakIterator::createTitleInstanceIntlBreakIterator::createWordInstanceIntlBreakIterator::currentIntlBreakIterator::firstIntlBreakIterator::followingIntlBreakIterator::getErrorCodeintl_get_error_codeIntlBreakIterator::getErrorMessageintl_get_error_messageIntlBreakIterator::getLocaleIntlBreakIterator::getPartsIteratorIntlBreakIterator::getTextIntlBreakIterator::isBoundaryIntlBreakIterator::lastIntlBreakIterator::nextIntlBreakIterator::precedingIntlBreakIterator::previousIntlBreakIterator::setTextIntlRuleBasedBreakIteratorIntlRuleBasedBreakIterator::__constructIntlRuleBasedBreakIterator::getBinaryRulesIntlRuleBasedBreakIterator::getRulesIntlRuleBasedBreakIterator::getRuleStatusIntlRuleBasedBreakIterator::getRuleStatusVecIntlCodePointBreakIteratorIntlCodePointBreakIterator::getLastCodePointIntlPartsIteratorIntlPartsIterator::getBreakIteratorUConverterUConverter::__constructUConverter::convertUConverter::fromUCallbackUConverter::getAliasesUConverter::getAvailableUConverter::getDestinationEncodingUConverter::getDestinationTypeUConverter::getErrorCodeintl_get_error_codeUConverter::getErrorMessageUConverter::getSourceEncodingUConverter::getSourceTypeUConverter::getStandardsUConverter::getSubstCharsUConverter::reasonTextUConverter::setDestinationEncodingUConverter::setSourceEncodingUConverter::setSubstCharsUConverter::toUCallbackUConverter::transcodeGrapheme 函数grapheme_extractgrapheme_striposgrapheme_stristrgrapheme_strlengrapheme_strposgrapheme_strriposgrapheme_strrposgrapheme_strstrgrapheme_substrIDN 函数idn_to_asciiidn_to_unicodeidn_to_utf8IntlCharIntlChar::charAgeIntlChar::charDigitValueIntlChar::charDirectionIntlChar::charFromNameIntlChar::charMirrorIntlChar::charNameIntlChar::charTypeIntlChar::chrIntlChar::digitIntlChar::enumCharNamesIntlChar::enumCharTypesIntlChar::foldCaseIntlChar::forDigitIntlChar::getBidiPairedBracketIntlChar::getBlockCodeIntlChar::getCombiningClassIntlChar::getFC_NFKC_ClosureIntlChar::getIntPropertyMaxValueIntlChar::getIntPropertyMinValueIntlChar::getIntPropertyValueIntlChar::getNumericValueIntlChar::getPropertyEnumIntlChar::getPropertyNameIntlChar::getPropertyValueEnumIntlChar::getPropertyValueNameIntlChar::getUnicodeVersionIntlChar::hasBinaryPropertyIntlChar::isalnumIntlChar::isalphaIntlChar::isbaseIntlChar::isblankIntlChar::iscntrlIntlChar::isdefinedIntlChar::isdigitIntlChar::isgraphIntlChar::isIDIgnorableIntlChar::isIDPartIntlChar::isIDStartIntlChar::isISOControlIntlChar::isJavaIDPartIntlChar::isJavaIDStartIntlChar::isJavaSpaceCharIntlChar::islowerIntlChar::isMirroredIntlChar::isprintIntlChar::ispunctIntlChar::isspaceIntlChar::istitleIntlChar::isUAlphabeticIntlChar::isULowercaseIntlChar::isupperIntlChar::isUUppercaseIntlChar::isUWhiteSpaceIntlChar::isWhitespaceIntlChar::isxdigitIntlChar::ordIntlChar::tolowerIntlChar::totitleIntlChar::toupperIntlExceptionIntlIteratorIntlIterator::currentIntlIterator::keyIntlIterator::nextIntlIterator::rewindIntlIterator::validintl 函数intl_error_nameintl_get_error_codeintl_get_error_messageintl_is_failure多字节字符串简介安装/配置需求安装运行时配置资源类型预定义常量支持编码的摘要日文字符多字节编码基础HTTP 输入和输出支持的字符编码函数重载功能PHP字符编码的要求多字节字符串 函数mb_check_encodingmb_convert_casemb_convert_encodingmb_convert_kanamb_convert_variablesmb_decode_mimeheadermb_decode_numericentitymb_detect_encodingmb_detect_ordermb_encode_mimeheadermb_encode_numericentitymb_encoding_aliasesmb_ereg_matchmb_ereg_replace_callbackmb_ereg_replacemb_ereg_search_getposmb_ereg_search_getregsmb_ereg_search_initmb_ereg_search_posmb_ereg_search_regsmb_ereg_search_setposmb_ereg_searchmb_eregmb_eregi_replacemb_eregimb_get_infomb_http_inputmb_http_outputmb_internal_encodingmb_languagemb_list_encodingsmb_output_handlermb_parse_strmb_preferred_mime_namemb_regex_encodingmb_regex_set_optionsmb_send_mailmb_splitmb_strcutmb_strimwidthmb_striposmb_stristrmb_strlenmb_strposmb_strrchrmb_strrichrmb_strriposmb_strrposmb_strstrmb_strtolowermb_strtouppermb_strwidthmb_substitute_charactermb_substr_countmb_substrPspell简介安装/配置需求安装运行时配置资源类型预定义常量Pspell 函数pspell_add_to_personalpspell_add_to_sessionpspell_checkpspell_clear_sessionpspell_config_createpspell_config_data_dirpspell_config_dict_dirpspell_config_ignorepspell_config_modepspell_config_personalpspell_config_replpspell_config_runtogetherpspell_config_save_replpspell_new_configpspell_new_personalpspell_newpspell_save_wordlistpspell_store_replacementpspell_suggestRecode简介安装/配置需求安装运行时配置资源类型预定义常量Recode 函数recode_filerecode_stringrecode图像生成和处理Cairo简介安装/配置需求安装运行时配置资源类型预定义常量范例Cairo 函数cairo_createcairo_font_face_get_typecairo_font_face_statuscairo_font_options_createcairo_font_options_equalcairo_font_options_get_antialiascairo_font_options_get_hint_metricscairo_font_options_get_hint_stylecairo_font_options_get_subpixel_ordercairo_font_options_hashcairo_font_options_mergecairo_font_options_set_antialiascairo_font_options_set_hint_metricscairo_font_options_set_hint_stylecairo_font_options_set_subpixel_ordercairo_font_options_statuscairo_format_stride_for_widthcairo_image_surface_create_for_datacairo_image_surface_create_from_pngcairo_image_surface_createcairo_image_surface_get_datacairo_image_surface_get_formatcairo_image_surface_get_heightcairo_image_surface_get_stridecairo_image_surface_get_widthcairo_matrix_create_scalecairo_matrix_create_translatecairo_matrix_invertcairo_matrix_multiplycairo_matrix_rotatecairo_matrix_transform_distancecairo_matrix_transform_pointcairo_matrix_translatecairo_pattern_add_color_stop_rgbcairo_pattern_add_color_stop_rgbacairo_pattern_create_for_surfacecairo_pattern_create_linearcairo_pattern_create_radialcairo_pattern_create_rgbcairo_pattern_create_rgbacairo_pattern_get_color_stop_countcairo_pattern_get_color_stop_rgbacairo_pattern_get_extendcairo_pattern_get_filtercairo_pattern_get_linear_pointscairo_pattern_get_matrixcairo_pattern_get_radial_circlescairo_pattern_get_rgbacairo_pattern_get_surfacecairo_pattern_get_typecairo_pattern_set_extendcairo_pattern_set_filtercairo_pattern_set_matrixcairo_pattern_statuscairo_pdf_surface_createcairo_pdf_surface_set_sizecairo_ps_get_levelscairo_ps_level_to_stringcairo_ps_surface_createcairo_ps_surface_dsc_begin_page_setupcairo_ps_surface_dsc_begin_setupcairo_ps_surface_dsc_commentcairo_ps_surface_get_epscairo_ps_surface_restrict_to_levelcairo_ps_surface_set_epscairo_ps_surface_set_sizecairo_scaled_font_createcairo_scaled_font_extentscairo_scaled_font_get_ctmcairo_scaled_font_get_font_facecairo_scaled_font_get_font_matrixcairo_scaled_font_get_font_optionscairo_scaled_font_get_scale_matrixcairo_scaled_font_get_typecairo_scaled_font_glyph_extentscairo_scaled_font_statuscairo_scaled_font_text_extentscairo_surface_copy_pagecairo_surface_create_similarcairo_surface_finishcairo_surface_flushcairo_surface_get_contentcairo_surface_get_device_offsetcairo_surface_get_font_optionscairo_surface_get_typecairo_surface_mark_dirty_rectanglecairo_surface_mark_dirtycairo_surface_set_device_offsetcairo_surface_set_fallback_resolutioncairo_surface_show_pagecairo_surface_statuscairo_surface_write_to_pngcairo_svg_surface_createcairo_svg_surface_restrict_to_versioncairo_svg_version_to_stringCairoCairo::availableFontscairo_available_fontsCairo::availableSurfacescairo_available_surfacesCairo::statusToStringcairo_status_to_stringCairo::versioncairo_versionCairo::versionStringcairo_version_stringCairoContextCairoContext::appendPathcairo_append_pathCairoContext::arccairo_arcCairoContext::arcNegativecairo_arc_negativeCairoContext::clipcairo_clipCairoContext::clipExtentscairo_clip_extentsCairoContext::clipPreservecairo_clip_preserveCairoContext::clipRectangleListcairo_clip_rectangle_listCairoContext::closePathcairo_close_pathCairoContext::__constructCairoContext::copyPagecairo_copy_pageCairoContext::copyPathcairo_copy_pathCairoContext::copyPathFlatcairo_copy_path_flatCairoContext::curveTocairo_curve_toCairoContext::deviceToUsercairo_device_to_userCairoContext::deviceToUserDistancecairo_device_to_user_distanceCairoContext::fillcairo_fillCairoContext::fillExtentscairo_fill_extentsCairoContext::fillPreservecairo_fill_preserveCairoContext::fontExtentscairo_font_extentsCairoContext::getAntialiascairo_get_antialiasCairoContext::getCurrentPointcairo_get_current_pointCairoContext::getDashcairo_get_dashCairoContext::getDashCountcairo_get_dash_countCairoContext::getFillRulecairo_get_fill_ruleCairoContext::getFontFacecairo_get_font_faceCairoContext::getFontMatrixcairo_get_font_matrixCairoContext::getFontOptionscairo_get_font_optionsCairoContext::getGroupTargetcairo_get_group_targetCairoContext::getLineCapcairo_get_line_capCairoContext::getLineJoincairo_get_line_joinCairoContext::getLineWidthcairo_get_line_widthCairoContext::getMatrixcairo_get_matrixCairoContext::getMiterLimitcairo_get_miter_limitCairoContext::getOperatorcairo_get_operatorCairoContext::getScaledFontcairo_get_scaled_fontCairoContext::getSourcecairo_get_sourceCairoContext::getTargetcairo_get_targetCairoContext::getTolerancecairo_get_toleranceCairoContext::glyphPathcairo_glyph_pathCairoContext::hasCurrentPointcairo_has_current_pointCairoContext::identityMatrixcairo_identity_matrixCairoContext::inFillcairo_in_fillCairoContext::inStrokecairo_in_strokeCairoContext::lineTocairo_line_toCairoContext::maskcairo_maskCairoContext::maskSurfacecairo_mask_surfaceCairoContext::moveTocairo_move_toCairoContext::newPathcairo_new_pathCairoContext::newSubPathcairo_new_sub_pathCairoContext::paintcairo_paintCairoContext::paintWithAlphacairo_paint_with_alphaCairoContext::pathExtentscairo_path_extentsCairoContext::popGroupcairo_pop_groupCairoContext::popGroupToSourcecairo_pop_group_to_sourceCairoContext::pushGroupcairo_push_groupCairoContext::pushGroupWithContentcairo_push_group_with_contentCairoContext::rectanglecairo_rectangleCairoContext::relCurveTocairo_rel_curve_toCairoContext::relLineTocairo_rel_line_toCairoContext::relMoveTocairo_rel_move_toCairoContext::resetClipcairo_reset_clipCairoContext::restorecairo_restoreCairoContext::rotatecairo_rotateCairoContext::savecairo_saveCairoContext::scalecairo_scaleCairoContext::selectFontFacecairo_select_font_faceCairoContext::setAntialiascairo_set_antialiasCairoContext::setDashcairo_set_dashCairoContext::setFillRulecairo_set_fill_ruleCairoContext::setFontFacecairo_set_font_faceCairoContext::setFontMatrixcairo_set_font_matrixCairoContext::setFontOptionscairo_set_font_optionsCairoContext::setFontSizecairo_set_font_sizeCairoContext::setLineCapcairo_set_line_capCairoContext::setLineJoincairo_set_line_joinCairoContext::setLineWidthcairo_set_line_widthCairoContext::setMatrixcairo_set_matrixCairoContext::setMiterLimitcairo_set_miter_limitCairoContext::setOperatorcairo_set_operatorCairoContext::setScaledFontcairo_set_scaled_fontCairoContext::setSourcecairo_set_sourceCairoContext::setSourceRGBcairo_set_sourceCairoContext::setSourceRGBAcairo_set_sourceCairoContext::setSourceSurfacecairo_set_source_surfaceCairoContext::setTolerancecairo_set_toleranceCairoContext::showPagecairo_show_pageCairoContext::showTextcairo_show_textCairoContext::statuscairo_statusCairoContext::strokecairo_strokeCairoContext::strokeExtentscairo_stroke_extentsCairoContext::strokePreservecairo_stroke_preserveCairoContext::textExtentscairo_text_extentsCairoContext::textPathcairo_text_pathCairoContext::transformcairo_transformCairoContext::translatecairo_translateCairoContext::userToDevicecairo_user_to_deviceCairoContext::userToDeviceDistancecairo_user_to_device_distanceCairoExceptionCairoStatusCairoSurfaceCairoSurface::__constructCairoSurface::copyPagecairo_copy_pageCairoSurface::createSimilarCairoSurface::finishCairoSurface::flushCairoSurface::getContentCairoSurface::getDeviceOffsetCairoSurface::getFontOptionscairo_get_font_optionsCairoSurface::getTypeCairoSurface::markDirtyCairoSurface::markDirtyRectangleCairoSurface::setDeviceOffsetCairoSurface::setFallbackResolutionCairoSurface::showPagecairo_show_pageCairoSurface::statuscairo_statusCairoSurface::writeToPngCairoSvgSurfaceCairoSvgSurface::__constructCairoSvgSurface::getVersionscairo_svg_surface_get_versionsCairoSvgSurface::restrictToVersionCairoSvgSurface::versionToStringCairoImageSurfaceCairoImageSurface::__constructCairoImageSurface::createForDataCairoImageSurface::createFromPngCairoImageSurface::getDataCairoImageSurface::getFormatCairoImageSurface::getHeightCairoImageSurface::getStrideCairoImageSurface::getWidthCairoPdfSurfaceCairoPdfSurface::__constructCairoPdfSurface::setSizeCairoPsSurfaceCairoPsSurface::__constructCairoPsSurface::dscBeginPageSetupCairoPsSurface::dscBeginSetupCairoPsSurface::dscCommentCairoPsSurface::getEpsCairoPsSurface::getLevelsCairoPsSurface::levelToStringCairoPsSurface::restrictToLevelCairoPsSurface::setEpsCairoPsSurface::setSizeCairoSurfaceTypeCairoFontFaceCairoFontFace::__constructCairoFontFace::getTypeCairoFontFace::statuscairo_font_face_statusCairoFontOptionsCairoFontOptions::__constructCairoFontOptions::equalCairoFontOptions::getAntialiascairo_get_antialiasCairoFontOptions::getHintMetricsCairoFontOptions::getHintStyleCairoFontOptions::getSubpixelOrderCairoFontOptions::hashCairoFontOptions::mergeCairoFontOptions::setAntialiascairo_set_antialiasCairoFontOptions::setHintMetricsCairoFontOptions::setHintStyleCairoFontOptions::setSubpixelOrderCairoFontOptions::statuscairo_statusCairoFontSlantCairoFontTypeCairoFontWeightCairoScaledFontCairoScaledFont::__constructCairoScaledFont::extentsCairoScaledFont::getCtmCairoScaledFont::getFontFacecairo_get_font_faceCairoScaledFont::getFontMatrixcairo_get_font_matrixCairoScaledFont::getFontOptionscairo_get_font_optionsCairoScaledFont::getScaleMatrixCairoScaledFont::getTypeCairoScaledFont::glyphExtentsCairoScaledFont::statuscairo_statusCairoScaledFont::textExtentscairo_text_extentsCairoToyFontFaceCairoPatternTypeCairoPatternCairoPattern::__constructCairoPattern::getMatrixcairo_get_matrixCairoPattern::getTypeCairoPattern::setMatrixcairo_set_matrixCairoPattern::statuscairo_statusCairoGradientPatternCairoGradientPattern::addColorStopRgbCairoGradientPattern::addColorStopRgbaCairoGradientPattern::getColorStopCountCairoGradientPattern::getColorStopRgbaCairoGradientPattern::getExtendCairoGradientPattern::setExtendCairoSolidPatternCairoSolidPattern::__constructCairoSolidPattern::getRgbaCairoSurfacePatternCairoSurfacePattern::__constructCairoSurfacePattern::getExtendCairoSurfacePattern::getFilterCairoSurfacePattern::getSurfaceCairoSurfacePattern::setExtendCairoSurfacePattern::setFilterCairoLinearGradientCairoLinearGradient::__constructCairoLinearGradient::getPointsCairoRadialGradientCairoRadialGradient::__constructCairoRadialGradient::getCirclesCairoAntialiasCairoContentCairoExtendCairoFormatCairoFormat::strideForWidthCairoFillRuleCairoFilterCairoHintMetricsCairoHintStyleCairoLineCapCairoLineJoinCairoMatrixCairoMatrix::__constructcairo_matrix_initCairoMatrix::initIdentitycairo_matrix_init_identityCairoMatrix::initRotatecairo_matrix_init_rotateCairoMatrix::initScalecairo_matrix_init_scalecairo_matrix_create_scaleCairoMatrix::initTranslatecairo_matrix_init_translateCairoMatrix::invertCairoMatrix::multiplyCairoMatrix::rotatecairo_rotateCairoMatrix::scalecairo_matrix_scaleCairoMatrix::transformDistanceCairoMatrix::transformPointCairoMatrix::translatecairo_translateCairoOperatorCairoPathCairoPsLevelCairoSubpixelOrderCairoSvgVersionExif简介安装/配置需求安装运行时配置资源类型预定义常量Exif 函数exif_imagetypeexif_read_dataexif_tagnameexif_thumbnailread_exif_dataGD简介安装/配置需求安装运行时配置资源类型预定义常量范例使用 PHP 创建 PNG 图像使用 Alpha 通道为图像加水印使用 imagecopymerge 函数创建半透明水印GD 和图像处理 函数gd_infogetimagesizegetimagesizefromstringimage_type_to_extensionimage_type_to_mime_typeimage2wbmpimageaffineimageaffinematrixconcatimageaffinematrixgetimagealphablendingimageantialiasimagearcimagecharimagecharupimagecolorallocateimagecolorallocatealphaimagecoloratimagecolorclosestimagecolorclosestalphaimagecolorclosesthwbimagecolordeallocateimagecolorexactimagecolorexactalphaimagecolormatchimagecolorresolveimagecolorresolvealphaimagecolorsetimagecolorsforindeximagecolorstotalimagecolortransparentimageconvolutionimagecopyimagecopymergeimagecopymergegrayimagecopyresampledimagecopyresizedimagecreateimagecreatefromgd2imagecreatefromgd2partimagecreatefromgdimagecreatefromgifimagecreatefromjpegimagecreatefrompngimagecreatefromstringimagecreatefromwbmpimagecreatefromwebpimagecreatefromxbmimagecreatefromxpmimagecreatetruecolorimagecropimagecropautoimagedashedlineimagedestroyimageellipseimagefillimagefilledarcimagefilledellipseimagefilledpolygonimagefilledrectangleimagefilltoborderimagefilterimageflipimagefontheightimagefontwidthimageftbboximagefttextimagegammacorrectimagegd2imagegdimagegifimagegrabscreenimagegrabwindowimageinterlaceimageistruecolorimagejpegimagelayereffectimagelineimageloadfontimagepalettecopyimagepalettetotruecolorimagepngimagepolygonimagepsbboximagepsencodefontimagepsextendfontimagepsfreefontimagepsloadfontimagepsslantfontimagepstextimagerectangleimagerotateimagesavealphaimagescaleimagesetbrushimagesetinterpolationimagesetpixelimagesetstyleimagesetthicknessimagesettileimagestringimagestringupimagesximagesyimagetruecolortopaletteimagettfbboximagettftextimagetypesimagewbmpimagewebpimagexbmiptcembediptcparsejpeg2wbmppng2wbmpGmagick简介安装/配置需求安装运行时配置预定义常量范例GmagickGmagick::addimageGmagick::addnoiseimageGmagick::annotateimageGmagick::blurimageGmagick::borderimageGmagick::charcoalimageGmagick::chopimageGmagick::clearGmagick::commentimageGmagick::compositeimageGmagick::__constructGmagick::cropimageGmagick::cropthumbnailimageGmagick::currentGmagick::cyclecolormapimageGmagick::deconstructimagesGmagick::despeckleimageGmagick::destroyGmagick::drawimageGmagick::edgeimageGmagick::embossimageGmagick::enhanceimageGmagick::equalizeimageGmagick::flipimageGmagick::flopimageGmagick::frameimageGmagick::gammaimageGmagick::getcopyrightGmagick::getfilenameGmagick::getimagebackgroundcolorGmagick::getimageblueprimaryGmagick::getimagebordercolorGmagick::getimagechanneldepthGmagick::getimagecolorsGmagick::getimagecolorspaceGmagick::getimagecomposeGmagick::getimagedelayGmagick::getimagedepthGmagick::getimagedisposeGmagick::getimageextremaGmagick::getimagefilenameGmagick::getimageformatGmagick::getimagegammaGmagick::getimagegreenprimaryGmagick::getimageheightGmagick::getimagehistogramGmagick::getimageindexGmagick::getimageinterlaceschemeGmagick::getimageiterationsGmagick::getimagematteGmagick::getimagemattecolorGmagick::getimageprofileGmagick::getimageredprimaryGmagick::getimagerenderingintentGmagick::getimageresolutionGmagick::getimagesceneGmagick::getimagesignatureGmagick::getimagetypeGmagick::getimageunitsGmagick::getimagewhitepointGmagick::getimagewidthGmagick::getpackagenameGmagick::getquantumdepthGmagick::getreleasedateGmagick::getsamplingfactorsGmagick::getsizeGmagick::getversionGmagick::hasnextimageGmagick::haspreviousimageGmagick::implodeimageGmagick::labelimageGmagick::levelimageGmagick::magnifyimageGmagick::mapimageGmagick::medianfilterimageGmagick::minifyimageGmagick::modulateimageGmagick::motionblurimageGmagick::newimageGmagick::nextimageGmagick::normalizeimageGmagick::oilpaintimageGmagick::previousimageGmagick::profileimageGmagick::quantizeimageGmagick::quantizeimagesGmagick::queryfontmetricsGmagick::queryfontsGmagick::queryformatsGmagick::radialblurimageGmagick::raiseimageGmagick::readGmagick::readimageGmagick::readimageblobGmagick::readimagefileGmagick::reducenoiseimageGmagick::removeimageGmagick::removeimageprofileGmagick::resampleimageGmagick::resizeimageGmagick::rollimageGmagick::rotateimageGmagick::scaleimageGmagick::separateimagechannelGmagick::setfilenameGmagick::setimagebackgroundcolorGmagick::setimageblueprimaryGmagick::setimagebordercolorGmagick::setimagechanneldepthGmagick::setimagecolorspaceGmagick::setimagecomposeGmagick::setimagedelayGmagick::setimagedepthGmagick::setimagedisposeGmagick::setimagefilenameGmagick::setimageformatGmagick::setimagegammaGmagick::setimagegreenprimaryGmagick::setimageindexGmagick::setimageinterlaceschemeGmagick::setimageiterationsGmagick::setimageprofileGmagick::setimageredprimaryGmagick::setimagerenderingintentGmagick::setimageresolutionGmagick::setimagesceneGmagick::setimagetypeGmagick::setimageunitsGmagick::setimagewhitepointGmagick::setsamplingfactorsGmagick::setsizeGmagick::shearimageGmagick::solarizeimageGmagick::spreadimageGmagick::stripimageGmagick::swirlimageGmagick::thumbnailimageGmagick::trimimageGmagick::writeGmagick::writeimageGmagickDrawGmagickDraw::annotateGmagickDraw::arcGmagickDraw::bezierGmagickDraw::ellipseGmagickDraw::getfillcolorGmagickDraw::getfillopacityGmagickDraw::getfontGmagickDraw::getfontsizeGmagickDraw::getfontstyleGmagickDraw::getfontweightGmagickDraw::getstrokecolorGmagickDraw::getstrokeopacityGmagickDraw::getstrokewidthGmagickDraw::gettextdecorationGmagickDraw::gettextencodingGmagickDraw::lineGmagickDraw::pointGmagickDraw::polygonGmagickDraw::polylineGmagickDraw::rectangleGmagickDraw::rotateGmagickDraw::roundrectangleGmagickDraw::scaleGmagickDraw::setfillcolorGmagickDraw::setfillopacityGmagickDraw::setfontGmagickDraw::setfontsizeGmagickDraw::setfontstyleGmagickDraw::setfontweightGmagickDraw::setstrokecolorGmagickDraw::setstrokeopacityGmagickDraw::setstrokewidthGmagickDraw::settextdecorationGmagickDraw::settextencodingGmagickPixelGmagickPixel::__constructGmagickPixel::getcolorGmagickPixel::getcolorcountGmagickPixel::getcolorvalueGmagickPixel::setcolorGmagickPixel::setcolorvalueImageMagick简介安装/配置需求安装运行时配置资源类型预定义常量范例Basic usageImagickImagick::adaptiveBlurImageImagick::adaptiveResizeImageImagick::adaptiveSharpenImageImagick::adaptiveThresholdImageImagick::addImageImagick::addNoiseImageImagick::affineTransformImageImagick::animateImagesImagick::annotateImageImagick::appendImagesImagick::autoLevelImageImagick::averageImagesImagick::blackThresholdImageImagick::blueShiftImageImagick::blurImageImagick::borderImageImagick::brightnessContrastImageImagick::charcoalImageImagick::chopImageImagick::clampImageImagick::clearImagick::clipImageImagick::clipImagePathImagick::clipPathImageImagick::cloneImagick::clutImageImagick::coalesceImagesImagick::colorFloodfillImageImagick::colorizeImageImagick::colorMatrixImageImagick::combineImagesImagick::commentImageImagick::compareImageChannelsImagick::compareImageLayersImagick::compareImagesImagick::compositeImageImagick::__constructImagick::contrastImageImagick::contrastStretchImageImagick::convolveImageImagick::countImagick::cropImageImagick::cropThumbnailImageImagick::currentImagick::cycleColormapImageImagick::decipherImageImagick::deconstructImagesImagick::deleteImageArtifactImagick::deleteImagePropertyImagick::deskewImageImagick::despeckleImageImagick::destroyImagick::displayImageImagick::displayImagesImagick::distortImageImagick::drawImageImagick::edgeImageImagick::embossImageImagick::encipherImageImagick::enhanceImageImagick::equalizeImageImagick::evaluateImageImagick::exportImagePixelsImagick::extentImageImagick::filterImagick::flattenImagesImagick::flipImageImagick::floodFillPaintImageImagick::flopImageImagick::forwardFourierTransformImageImagick::frameImageImagick::functionImageImagick::fxImageImagick::gammaImageImagick::gaussianBlurImageImagick::getColorspaceImagick::getCompressionImagick::getCompressionQualityImagick::getCopyrightImagick::getFilenameImagick::getFontImagick::getFormatImagick::getGravityImagick::getHomeURLImagick::getImageImagick::getImageAlphaChannelImagick::getImageArtifactImagick::getImageAttributeImagick::getImageBackgroundColorImagick::getImageBlobImagick::getImageBluePrimaryImagick::getImageBorderColorImagick::getImageChannelDepthImagick::getImageChannelDistortionImagick::getImageChannelDistortionsImagick::getImageChannelExtremaImagick::getImageChannelKurtosisImagick::getImageChannelMeanImagick::getImageChannelRangeImagick::getImageChannelStatisticsImagick::getImageClipMaskImagick::getImageColormapColorImagick::getImageColorsImagick::getImageColorspaceImagick::getImageComposeImagick::getImageCompressionImagick::getImageCompressionQualityImagick::getImageDelayImagick::getImageDepthImagick::getImageDisposeImagick::getImageDistortionImagick::getImageExtremaImagick::getImageFilenameImagick::getImageFormatImagick::getImageGammaImagick::getImageGeometryImagick::getImageGravityImagick::getImageGreenPrimaryImagick::getImageHeightImagick::getImageHistogramImagick::getImageIndexImagick::getImageInterlaceSchemeImagick::getImageInterpolateMethodImagick::getImageIterationsImagick::getImageLengthImagick::getImageMagickLicenseImagick::getImageMatteImagick::getImageMatteColorImagick::getImageMimeTypeImagick::getImageOrientationImagick::getImagePageImagick::getImagePixelColorImagick::getImageProfileImagick::getImageProfilesImagick::getImagePropertiesImagick::getImagePropertyImagick::getImageRedPrimaryImagick::getImageRegionImagick::getImageRenderingIntentImagick::getImageResolutionImagick::getImagesBlobImagick::getImageSceneImagick::getImageSignatureImagick::getImageSizeImagick::getImageTicksPerSecondImagick::getImageTotalInkDensityImagick::getImageTypeImagick::getImageUnitsImagick::getImageVirtualPixelMethodImagick::getImageWhitePointImagick::getImageWidthImagick::getInterlaceSchemeImagick::getIteratorIndexImagick::getNumberImagesImagick::getOptionImagick::getPackageNameImagick::getPageImagick::getPixelIteratorImagick::getPixelRegionIteratorImagick::getPointSizeImagick::getQuantumImagick::getQuantumDepthImagick::getQuantumRangeImagick::getRegistryImagick::getReleaseDateImagick::getResourceImagick::getResourceLimitImagick::getSamplingFactorsImagick::getSizeImagick::getSizeOffsetImagick::getVersionImagick::haldClutImageImagick::hasNextImageImagick::hasPreviousImageImagick::identifyFormatImagick::identifyImageImagick::implodeImageImagick::importImagePixelsImagick::inverseFourierTransformImageImagick::labelImageImagick::levelImageImagick::linearStretchImageImagick::liquidRescaleImageImagick::listRegistryImagick::magnifyImageImagick::mapImageImagick::matteFloodfillImageImagick::medianFilterImageImagick::mergeImageLayersImagick::minifyImageImagick::modulateImageImagick::montageImageImagick::morphImagesImagick::morphologyImagick::mosaicImagesImagick::motionBlurImageImagick::negateImageImagick::newImageImagick::newPseudoImageImagick::nextImageImagick::normalizeImageImagick::oilPaintImageImagick::opaquePaintImageImagick::optimizeImageLayersImagick::orderedPosterizeImageImagick::paintFloodfillImageImagick::paintOpaqueImageImagick::paintTransparentImageImagick::pingImageImagick::pingImageBlobImagick::pingImageFileImagick::polaroidImageImagick::posterizeImageImagick::previewImagesImagick::previousImageImagick::profileImageImagick::quantizeImageImagick::quantizeImagesImagick::queryFontMetricsImagick::queryFontsImagick::queryFormatsImagick::radialBlurImageImagick::raiseImageImagick::randomThresholdImageImagick::readImageImagick::readImageBlobImagick::readImageFileImagick::readimagesImagick::recolorImageImagick::reduceNoiseImageImagick::remapImageImagick::removeImageImagick::removeImageProfileImagick::renderImagick::resampleImageImagick::resetImagePageImagick::resizeImageImagick::rollImageImagick::rotateImageImagick::rotationalBlurImageImagick::roundCornersImagick::sampleImageImagick::scaleImageImagick::segmentImageImagick::selectiveBlurImageImagick::separateImageChannelImagick::sepiaToneImageImagick::setBackgroundColorImagick::setColorspaceImagick::setCompressionImagick::setCompressionQualityImagick::setFilenameImagick::setFirstIteratorImagick::setFontImagick::setFormatImagick::setGravityImagick::setImageImagick::setImageAlphaChannelImagick::setImageArtifactImagick::setImageAttributeImagick::setImageBackgroundColorImagick::setImageBiasImagick::setImageBiasQuantumImagick::setImageBluePrimaryImagick::setImageBorderColorImagick::setImageChannelDepthImagick::setImageClipMaskImagick::setImageColormapColorImagick::setImageColorspaceImagick::setImageComposeImagick::setImageCompressionImagick::setImageCompressionQualityImagick::setImageDelayImagick::setImageDepthImagick::setImageDisposeImagick::setImageExtentImagick::setImageFilenameImagick::setImageFormatImagick::setImageGammaImagick::setImageGravityImagick::setImageGreenPrimaryImagick::setImageIndexImagick::setImageInterlaceSchemeImagick::setImageInterpolateMethodImagick::setImageIterationsImagick::setImageMatteImagick::setImageMatteColorImagick::setImageOpacityImagick::setImageOrientationImagick::setImagePageImagick::setImageProfileImagick::setImagePropertyImagick::setImageRedPrimaryImagick::setImageRenderingIntentImagick::setImageResolutionImagick::setImageSceneImagick::setImageTicksPerSecondImagick::setImageTypeImagick::setImageUnitsImagick::setImageVirtualPixelMethodImagick::setImageWhitePointImagick::setInterlaceSchemeImagick::setIteratorIndexImagick::setLastIteratorImagick::setOptionImagick::setPageImagick::setPointSizeImagick::setProgressMonitorImagick::setRegistryImagick::setResolutionImagick::setResourceLimitImagick::setSamplingFactorsImagick::setSizeImagick::setSizeOffsetImagick::setTypeImagick::shadeImageImagick::shadowImageImagick::sharpenImageImagick::shaveImageImagick::shearImageImagick::sigmoidalContrastImageImagick::sketchImageImagick::smushImagesImagick::solarizeImageImagick::sparseColorImageImagick::spliceImageImagick::spreadImageImagick::statisticImageImagick::steganoImageImagick::stereoImageImagick::stripImageImagick::subImageMatchImagick::swirlImageImagick::textureImageImagick::thresholdImageImagick::thumbnailImageImagick::tintImageImagick::__toStringImagick::transformImageImagick::transformImageColorspaceImagick::transparentPaintImageImagick::transposeImageImagick::transverseImageImagick::trimImageImagick::uniqueImageColorsImagick::unsharpMaskImageImagick::validImagick::vignetteImageImagick::waveImageImagick::whiteThresholdImageImagick::writeImageImagick::writeImageFileImagick::writeImagesImagick::writeImagesFileImagickDrawImagickDraw::affineImagickDraw::annotationImagickDraw::arcImagickDraw::bezierImagickDraw::circleImagickDraw::clearImagickDraw::cloneImagickDraw::colorImagickDraw::commentImagickDraw::compositeImagickDraw::__constructImagickDraw::destroyImagickDraw::ellipseImagickDraw::getClipPathImagickDraw::getClipRuleImagickDraw::getClipUnitsImagickDraw::getFillColorImagickDraw::getFillOpacityImagickDraw::getFillRuleImagickDraw::getFontImagickDraw::getFontFamilyImagickDraw::getFontSizeImagickDraw::getFontStretchImagickDraw::getFontStyleImagickDraw::getFontWeightImagickDraw::getGravityImagickDraw::getStrokeAntialiasImagickDraw::getStrokeColorImagickDraw::getStrokeDashArrayImagickDraw::getStrokeDashOffsetImagickDraw::getStrokeLineCapImagickDraw::getStrokeLineJoinImagickDraw::getStrokeMiterLimitImagickDraw::getStrokeOpacityImagickDraw::getStrokeWidthImagickDraw::getTextAlignmentImagickDraw::getTextAntialiasImagickDraw::getTextDecorationImagickDraw::getTextEncodingImagickDraw::getTextInterlineSpacingImagickDraw::getTextInterwordSpacingImagickDraw::getTextKerningImagickDraw::getTextUnderColorImagickDraw::getVectorGraphicsImagickDraw::lineImagickDraw::matteImagickDraw::pathCloseImagickDraw::pathCurveToAbsoluteImagickDraw::pathCurveToQuadraticBezierAbsoluteImagickDraw::pathCurveToQuadraticBezierRelativeImagickDraw::pathCurveToQuadraticBezierSmoothAbsoluteImagickDraw::pathCurveToQuadraticBezierSmoothRelativeImagickDraw::pathCurveToRelativeImagickDraw::pathCurveToSmoothAbsoluteImagickDraw::pathCurveToSmoothRelativeImagickDraw::pathEllipticArcAbsoluteImagickDraw::pathEllipticArcRelativeImagickDraw::pathFinishImagickDraw::pathLineToAbsoluteImagickDraw::pathLineToHorizontalAbsoluteImagickDraw::pathLineToHorizontalRelativeImagickDraw::pathLineToRelativeImagickDraw::pathLineToVerticalAbsoluteImagickDraw::pathLineToVerticalRelativeImagickDraw::pathMoveToAbsoluteImagickDraw::pathMoveToRelativeImagickDraw::pathStartImagickDraw::pointImagickDraw::polygonImagickDraw::polylineImagickDraw::popImagickDraw::popClipPathImagickDraw::popDefsImagickDraw::popPatternImagickDraw::pushImagickDraw::pushClipPathImagickDraw::pushDefsImagickDraw::pushPatternImagickDraw::rectangleImagickDraw::renderImagickDraw::resetVectorGraphicsImagickDraw::rotateImagickDraw::roundRectangleImagickDraw::scaleImagickDraw::setClipPathImagickDraw::setClipRuleImagickDraw::setClipUnitsImagickDraw::setFillAlphaImagickDraw::setFillColorImagickDraw::setFillOpacityImagickDraw::setFillPatternURLImagickDraw::setFillRuleImagickDraw::setFontImagickDraw::setFontFamilyImagickDraw::setFontSizeImagickDraw::setFontStretchImagickDraw::setFontStyleImagickDraw::setFontWeightImagickDraw::setGravityImagickDraw::setResolutionImagickDraw::setStrokeAlphaImagickDraw::setStrokeAntialiasImagickDraw::setStrokeColorImagickDraw::setStrokeDashArrayImagickDraw::setStrokeDashOffsetImagickDraw::setStrokeLineCapImagickDraw::setStrokeLineJoinImagickDraw::setStrokeMiterLimitImagickDraw::setStrokeOpacityImagickDraw::setStrokePatternURLImagickDraw::setStrokeWidthImagickDraw::setTextAlignmentImagickDraw::setTextAntialiasImagickDraw::setTextDecorationImagickDraw::setTextEncodingImagickDraw::setTextInterlineSpacingImagickDraw::setTextInterwordSpacingImagickDraw::setTextKerningImagickDraw::setTextUnderColorImagickDraw::setVectorGraphicsImagickDraw::setViewboxImagickDraw::skewXImagickDraw::skewYImagickDraw::translateImagickPixelImagickPixel::clearImagickPixel::__constructImagickPixel::destroyImagickPixel::getColorImagickPixel::getColorAsStringImagickPixel::getColorCountImagickPixel::getColorQuantumImagickPixel::getColorValueImagickPixel::getColorValueQuantumImagickPixel::getHSLImagickPixel::getIndexImagickPixel::isPixelSimilarImagickPixel::isPixelSimilarQuantumImagickPixel::isSimilarImagickPixel::setColorImagickPixel::setColorCountImagickPixel::setColorValueImagickPixel::setColorValueQuantumImagickPixel::setHSLImagickPixel::setIndexImagickPixelIteratorImagickPixelIterator::clearImagickPixelIterator::__constructImagickPixelIterator::destroyImagickPixelIterator::getCurrentIteratorRowImagickPixelIterator::getIteratorRowImagickPixelIterator::getNextIteratorRowImagickPixelIterator::getPreviousIteratorRowImagickPixelIterator::newPixelIteratorImagickPixelIterator::newPixelRegionIteratorImagickPixelIterator::resetIteratorImagickPixelIterator::setIteratorFirstRowImagickPixelIterator::setIteratorLastRowImagickPixelIterator::setIteratorRowImagickPixelIterator::syncIterator邮件相关扩展Cyrus简介安装/配置需求安装运行时配置资源类型预定义常量Cyrus 函数cyrus_authenticatecyrus_bindcyrus_closecyrus_connectcyrus_querycyrus_unbindIMAP简介安装/配置需求安装运行时配置资源类型预定义常量IMAP 函数imap_8bitimap_alertsimap_appendimap_base64imap_binaryimap_bodyimap_bodystructimap_checkimap_clearflag_fullimap_closeimap_createimap_createmailboximap_deleteimap_deletemailboximap_errorsimap_expungeimap_fetch_overviewimap_fetchbodyimap_fetchheaderimap_fetchmimeimap_fetchstructureimap_fetchtextimap_gcimap_get_quotaimap_get_quotarootimap_getaclimap_getmailboxesimap_getsubscribedimap_headerimap_headerinfoimap_headersimap_last_errorimap_listimap_listmailboximap_listscanimap_listsubscribedimap_lsubimap_mail_composeimap_mail_copyimap_mail_moveimap_mailimap_mailboxmsginfoimap_mime_header_decodeimap_msgnoimap_num_msgimap_num_recentimap_openimap_pingimap_qprintimap_renameimap_renamemailboximap_reopenimap_rfc822_parse_adrlistimap_rfc822_parse_headersimap_rfc822_write_addressimap_savebodyimap_scanimap_scanmailboximap_searchimap_set_quotaimap_setaclimap_setflag_fullimap_sortimap_statusimap_subscribeimap_threadimap_timeoutimap_uidimap_undeleteimap_unsubscribeimap_utf7_decodeimap_utf7_encodeimap_utf8Mail简介安装/配置需求安装运行时配置资源类型预定义常量Mail 函数ezmlm_hashmailMailparse简介安装/配置需求安装运行时配置资源类型预定义常量Mailparse 函数mailparse_determine_best_xfer_encodingmailparse_msg_createmailparse_msg_extract_part_filemailparse_msg_extract_partmailparse_msg_extract_whole_part_filemailparse_msg_freemailparse_msg_get_part_datamailparse_msg_get_partmailparse_msg_get_structuremailparse_msg_parse_filemailparse_msg_parsemailparse_rfc822_parse_addressesmailparse_stream_encodemailparse_uudecode_allvpopmail简介安装/配置需求安装运行时配置资源类型预定义常量vpopmail 函数vpopmail_add_alias_domain_exvpopmail_add_alias_domainvpopmail_add_domain_exvpopmail_add_domainvpopmail_add_uservpopmail_alias_addvpopmail_alias_del_domainvpopmail_alias_delvpopmail_alias_get_allvpopmail_alias_getvpopmail_auth_uservpopmail_del_domain_exvpopmail_del_domainvpopmail_del_uservpopmail_errorvpopmail_passwdvpopmail_set_user_quota数学扩展BC Math简介安装/配置需求安装运行时配置资源类型预定义常量BC 数学 函数bcaddbccompbcdivbcmodbcmulbcpowbcpowmodbcscalebcsqrtbcsubGMP简介安装/配置需求安装运行时配置资源类型预定义常量范例GMP 函数gmp_absgmp_addgmp_andgmp_clrbitgmp_cmpgmp_comgmp_div_qgmp_div_qrgmp_div_rgmp_divgmp_divexactgmp_exportgmp_factgmp_gcdgmp_gcdextgmp_hamdistgmp_importgmp_initgmp_intvalgmp_invertgmp_jacobigmp_legendregmp_modgmp_mulgmp_neggmp_nextprimegmp_orgmp_perfect_squaregmp_popcountgmp_powgmp_powmgmp_prob_primegmp_random_bitsgmp_random_rangegmp_random_seedgmp_randomgmp_rootgmp_rootremgmp_scan0gmp_scan1gmp_setbitgmp_signgmp_sqrtgmp_sqrtremgmp_strvalgmp_subgmp_testbitgmp_xorGMPLapack简介安装/配置需求安装运行时配置资源类型预定义常量LapackLapack::eigenValuesLapack::identityLapack::leastSquaresByFactorisationLapack::leastSquaresBySVDLapack::pseudoInverseLapack::singularValuesLapack::solveLinearEquationLapackExceptionMath简介安装/配置需求安装运行时配置资源类型预定义常量Math 函数absacosacoshasinasinhatan2atanatanhbase_convertbindecceilcoscoshdecbindechexdecoctdeg2radexpexpm1floorfmodgetrandmaxhexdechypotintdivis_finiteis_infiniteis_nanlcg_valuelog10log1plogmaxminmt_getrandmaxmt_randmt_srandoctdecpipowrad2degrandroundsinsinhsqrtsrandtantanhStatistics简介安装/配置需求安装运行时配置资源类型预定义常量Statistic 函数stats_absolute_deviationstats_cdf_betastats_cdf_binomialstats_cdf_cauchystats_cdf_chisquarestats_cdf_exponentialstats_cdf_fstats_cdf_gammastats_cdf_laplacestats_cdf_logisticstats_cdf_negative_binomialstats_cdf_noncentral_chisquarestats_cdf_noncentral_fstats_cdf_poissonstats_cdf_tstats_cdf_uniformstats_cdf_weibullstats_covariancestats_den_uniformstats_dens_betastats_dens_cauchystats_dens_chisquarestats_dens_exponentialstats_dens_fstats_dens_gammastats_dens_laplacestats_dens_logisticstats_dens_negative_binomialstats_dens_normalstats_dens_pmf_binomialstats_dens_pmf_hypergeometricstats_dens_pmf_poissonstats_dens_tstats_dens_weibullstats_harmonic_meanstats_kurtosisstats_rand_gen_betastats_rand_gen_chisquarestats_rand_gen_exponentialstats_rand_gen_fstats_rand_gen_funiformstats_rand_gen_gammastats_rand_gen_ibinomial_negativestats_rand_gen_ibinomialstats_rand_gen_intstats_rand_gen_ipoissonstats_rand_gen_iuniformstats_rand_gen_noncenral_chisquarestats_rand_gen_noncentral_fstats_rand_gen_noncentral_tstats_rand_gen_normalstats_rand_gen_tstats_rand_get_seedsstats_rand_phrase_to_seedsstats_rand_ranfstats_rand_setallstats_skewstats_standard_deviationstats_stat_binomial_coefstats_stat_correlationstats_stat_gennchstats_stat_independent_tstats_stat_innerproductstats_stat_noncentral_tstats_stat_paired_tstats_stat_percentilestats_stat_powersumstats_varianceTrader简介安装/配置需求安装运行时配置预定义常量Trader 函数trader_acostrader_adtrader_addtrader_adosctrader_adxtrader_adxrtrader_apotrader_aroontrader_aroonosctrader_asintrader_atantrader_atrtrader_avgpricetrader_bbandstrader_betatrader_boptrader_ccitrader_cdl2crowstrader_cdl3blackcrowstrader_cdl3insidetrader_cdl3linestriketrader_cdl3outsidetrader_cdl3starsinsouthtrader_cdl3whitesoldierstrader_cdlabandonedbabytrader_cdladvanceblocktrader_cdlbeltholdtrader_cdlbreakawaytrader_cdlclosingmarubozutrader_cdlconcealbabyswalltrader_cdlcounterattacktrader_cdldarkcloudcovertrader_cdldojitrader_cdldojistartrader_cdldragonflydojitrader_cdlengulfingtrader_cdleveningdojistartrader_cdleveningstartrader_cdlgapsidesidewhitetrader_cdlgravestonedojitrader_cdlhammertrader_cdlhangingmantrader_cdlharamitrader_cdlharamicrosstrader_cdlhighwavetrader_cdlhikkaketrader_cdlhikkakemodtrader_cdlhomingpigeontrader_cdlidentical3crowstrader_cdlinnecktrader_cdlinvertedhammertrader_cdlkickingtrader_cdlkickingbylengthtrader_cdlladderbottomtrader_cdllongleggeddojitrader_cdllonglinetrader_cdlmarubozutrader_cdlmatchinglowtrader_cdlmatholdtrader_cdlmorningdojistartrader_cdlmorningstartrader_cdlonnecktrader_cdlpiercingtrader_cdlrickshawmantrader_cdlrisefall3methodstrader_cdlseparatinglinestrader_cdlshootingstartrader_cdlshortlinetrader_cdlspinningtoptrader_cdlstalledpatterntrader_cdlsticksandwichtrader_cdltakuritrader_cdltasukigaptrader_cdlthrustingtrader_cdltristartrader_cdlunique3rivertrader_cdlupsidegap2crowstrader_cdlxsidegap3methodstrader_ceiltrader_cmotrader_correltrader_costrader_coshtrader_dematrader_divtrader_dxtrader_ematrader_errnotrader_exptrader_floortrader_get_compattrader_get_unstable_periodtrader_ht_dcperiodtrader_ht_dcphasetrader_ht_phasortrader_ht_sinetrader_ht_trendlinetrader_ht_trendmodetrader_kamatrader_linearreg_angletrader_linearreg_intercepttrader_linearreg_slopetrader_linearregtrader_lntrader_log10trader_matrader_macdtrader_macdexttrader_macdfixtrader_mamatrader_mavptrader_maxtrader_maxindextrader_medpricetrader_mfitrader_midpointtrader_midpricetrader_mintrader_minindextrader_minmaxtrader_minmaxindextrader_minus_ditrader_minus_dmtrader_momtrader_multtrader_natrtrader_obvtrader_plus_ditrader_plus_dmtrader_ppotrader_roctrader_rocptrader_rocr100trader_rocrtrader_rsitrader_sartrader_sarexttrader_set_compattrader_set_unstable_periodtrader_sintrader_sinhtrader_smatrader_sqrttrader_stddevtrader_stochtrader_stochftrader_stochrsitrader_subtrader_sumtrader_t3trader_tantrader_tanhtrader_tematrader_trangetrader_trimatrader_trixtrader_tsftrader_typpricetrader_ultosctrader_vartrader_wclpricetrader_willrtrader_wma非文本内容的 MIME 输出FDF简介安装/配置需求安装运行时配置资源类型预定义常量范例FDF 函数fdf_add_doc_javascriptfdf_add_templatefdf_closefdf_createfdf_enum_valuesfdf_errnofdf_errorfdf_get_apfdf_get_attachmentfdf_get_encodingfdf_get_filefdf_get_flagsfdf_get_optfdf_get_statusfdf_get_valuefdf_get_versionfdf_headerfdf_next_field_namefdf_open_stringfdf_openfdf_remove_itemfdf_save_stringfdf_savefdf_set_apfdf_set_encodingfdf_set_filefdf_set_flagsfdf_set_javascript_actionfdf_set_on_import_javascriptfdf_set_optfdf_set_statusfdf_set_submit_form_actionfdf_set_target_framefdf_set_valuefdf_set_versionGnuPG简介安装/配置需求安装运行时配置资源类型预定义常量范例Clearsign textGnuPG 函数gnupg_adddecryptkeygnupg_addencryptkeygnupg_addsignkeygnupg_cleardecryptkeysgnupg_clearencryptkeysgnupg_clearsignkeysgnupg_decryptgnupg_decryptverifygnupg_encryptgnupg_encryptsigngnupg_exportgnupg_geterrorgnupg_getprotocolgnupg_importgnupg_initgnupg_keyinfognupg_setarmorgnupg_seterrormodegnupg_setsignmodegnupg_signgnupg_verifyharu简介安装/配置需求安装运行时配置资源类型预定义常量范例Basic PECL/haru exampleBuiltin Fonts And EncodingsBuiltin FontsBuiltin EncodingsHaruExceptionHaruDocHaruDoc::addPageHaruDoc::addPageLabelHaruDoc::__constructHaruDoc::createOutlineHaruDoc::getCurrentEncoderHaruDoc::getCurrentPageHaruDoc::getEncoderHaruDoc::getFontHaruDoc::getInfoAttrHaruDoc::getPageLayoutHaruDoc::getPageModeHaruDoc::getStreamSizeHaruDoc::insertPageHaruDoc::loadJPEGHaruDoc::loadPNGHaruDoc::loadRawHaruDoc::loadTTCHaruDoc::loadTTFHaruDoc::loadType1HaruDoc::outputHaruDoc::readFromStreamHaruDoc::resetErrorHaruDoc::resetStreamHaruDoc::saveHaruDoc::saveToStreamHaruDoc::setCompressionModeHaruDoc::setCurrentEncoderHaruDoc::setEncryptionModeHaruDoc::setInfoAttrHaruDoc::setInfoDateAttrHaruDoc::setOpenActionHaruDoc::setPageLayoutHaruDoc::setPageModeHaruDoc::setPagesConfigurationHaruDoc::setPasswordHaruDoc::setPermissionHaruDoc::useCNSEncodingsHaruDoc::useCNSFontsHaruDoc::useCNTEncodingsHaruDoc::useCNTFontsHaruDoc::useJPEncodingsHaruDoc::useJPFontsHaruDoc::useKREncodingsHaruDoc::useKRFontsHaruPageHaruPage::arcHaruPage::beginTextHaruPage::circleHaruPage::closePathHaruPage::concatHaruPage::createDestinationHaruPage::createLinkAnnotationHaruPage::createTextAnnotationHaruPage::createURLAnnotationHaruPage::curveTo2HaruPage::curveTo3HaruPage::curveToHaruPage::drawImageHaruPage::ellipseHaruPage::endPathHaruPage::endTextHaruPage::eofillHaruPage::eoFillStrokeHaruPage::fillHaruPage::fillStrokeHaruPage::getCharSpaceHaruPage::getCMYKFillHaruPage::getCMYKStrokeHaruPage::getCurrentFontHaruPage::getCurrentFontSizeHaruPage::getCurrentPosHaruPage::getCurrentTextPosHaruPage::getDashHaruPage::getFillingColorSpaceHaruPage::getFlatnessHaruPage::getGModeHaruPage::getGrayFillHaruPage::getGrayStrokeHaruPage::getHeightHaruPage::getHorizontalScalingHaruPage::getLineCapHaruPage::getLineJoinHaruPage::getLineWidthHaruPage::getMiterLimitHaruPage::getRGBFillHaruPage::getRGBStrokeHaruPage::getStrokingColorSpaceHaruPage::getTextLeadingHaruPage::getTextMatrixHaruPage::getTextRenderingModeHaruPage::getTextRiseHaruPage::getTextWidthHaruPage::getTransMatrixHaruPage::getWidthHaruPage::getWordSpaceHaruPage::lineToHaruPage::measureTextHaruPage::moveTextPosHaruPage::moveToHaruPage::moveToNextLineHaruPage::rectangleHaruPage::setCharSpaceHaruPage::setCMYKFillHaruPage::setCMYKStrokeHaruPage::setDashHaruPage::setFlatnessHaruPage::setFontAndSizeHaruPage::setGrayFillHaruPage::setGrayStrokeHaruPage::setHeightHaruPage::setHorizontalScalingHaruPage::setLineCapHaruPage::setLineJoinHaruPage::setLineWidthHaruPage::setMiterLimitHaruPage::setRGBFillHaruPage::setRGBStrokeHaruPage::setRotateHaruPage::setSizeHaruPage::setSlideShowHaruPage::setTextLeadingHaruPage::setTextMatrixHaruPage::setTextRenderingModeHaruPage::setTextRiseHaruPage::setWidthHaruPage::setWordSpaceHaruPage::showTextHaruPage::showTextNextLineHaruPage::strokeHaruPage::textOutHaruPage::textRectHaruFontHaruFont::getAscentHaruFont::getCapHeightHaruFont::getDescentHaruFont::getEncodingNameHaruFont::getFontNameHaruFont::getTextWidthHaruFont::getUnicodeWidthHaruFont::getXHeightHaruFont::measureTextHaruImageHaruImage::getBitsPerComponentHaruImage::getColorSpaceHaruImage::getHeightHaruImage::getSizeHaruImage::getWidthHaruImage::setColorMaskHaruImage::setMaskImageHaruEncoderHaruEncoder::getByteTypeHaruEncoder::getTypeHaruEncoder::getUnicodeHaruEncoder::getWritingModeHaruOutlineHaruOutline::setDestinationHaruOutline::setOpenedHaruAnnotationHaruAnnotation::setBorderStyleHaruAnnotation::setHighlightModeHaruAnnotation::setIconHaruAnnotation::setOpenedHaruDestinationHaruDestination::setFitHaruDestination::setFitBHaruDestination::setFitBHHaruDestination::setFitBVHaruDestination::setFitHHaruDestination::setFitRHaruDestination::setFitVHaruDestination::setXYZMing简介安装/配置需求安装运行时配置资源类型预定义常量范例SWFAction ExamplesSWFSPrite basic examplesMing 函数ming_keypressming_setcubicthresholdming_setscaleming_setswfcompressionming_useconstantsming_useswfversionSWFActionSWFAction::__constructSWFBitmapSWFBitmap::__constructSWFBitmap::getHeightSWFBitmap::getWidthSWFButtonSWFButton::addActionSWFButton::addASoundSWFButton::addShapeSWFButton::__constructSWFButton::setActionSWFButton::setDownSWFButton::setHitSWFButton::setMenuSWFButton::setOverSWFButton::setUpSWFDisplayItemSWFDisplayItem::addActionSWFDisplayItem::addColorSWFDisplayItem::endMaskSWFDisplayItem::getRotSWFDisplayItem::getXSWFDisplayItem::getXScaleSWFDisplayItem::getXSkewSWFDisplayItem::getYSWFDisplayItem::getYScaleSWFDisplayItem::getYSkewSWFDisplayItem::moveSWFDisplayItem::moveToSWFDisplayItem::multColorSWFDisplayItem::removeSWFDisplayItem::rotateSWFDisplayItem::rotateToSWFDisplayItem::scaleSWFDisplayItem::scaleToSWFDisplayItem::setDepthSWFDisplayItem::setMaskLevelSWFDisplayItem::setMatrixSWFDisplayItem::setNameSWFDisplayItem::setRatioSWFDisplayItem::skewXSWFDisplayItem::skewXToSWFDisplayItem::skewYSWFDisplayItem::skewYToSWFFillSWFFill::moveToSWFFill::rotateToSWFFill::scaleToSWFFill::skewXToSWFFill::skewYToSWFFontSWFFont::__constructSWFFont::getAscentSWFFont::getDescentSWFFont::getLeadingSWFFont::getShapeSWFFont::getUTF8WidthSWFFont::getWidthSWFFontCharSWFFontChar::addCharsSWFFontChar::addUTF8CharsSWFGradientSWFGradient::addEntrySWFGradient::__constructSWFMorphSWFMorph::__constructSWFMorph::getShape1SWFMorph::getShape2SWFMovieSWFMovie::addSWFMovie::addExportSWFMovie::addFontSWFMovie::__constructSWFMovie::importCharSWFMovie::importFontSWFMovie::labelFrameSWFMovie::nextFrameSWFMovie::outputSWFMovie::removeSWFMovie::saveSWFMovie::saveToFileSWFMovie::setbackgroundSWFMovie::setDimensionSWFMovie::setFramesSWFMovie::setRateSWFMovie::startSoundSWFMovie::stopSoundSWFMovie::streamMP3SWFMovie::writeExportsSWFPrebuiltClipSWFPrebuiltClip::__constructSWFShapeSWFShape::addFillSWFShape::__constructSWFShape::drawArcSWFShape::drawCircleSWFShape::drawCubicSWFShape::drawCubicToSWFShape::drawCurveSWFShape::drawCurveToSWFShape::drawGlyphSWFShape::drawLineSWFShape::drawLineToSWFShape::movePenSWFShape::movePenToSWFShape::setLeftFillSWFShape::setLineSWFShape::setRightFillSWFSoundSWFSound::__constructSWFSoundInstanceSWFSoundInstance::loopCountSWFSoundInstance::loopInPointSWFSoundInstance::loopOutPointSWFSoundInstance::noMultipleSWFSpriteSWFSprite::addSWFSprite::__constructSWFSprite::labelFrameSWFSprite::nextFrameSWFSprite::removeSWFSprite::setFramesSWFSprite::startSoundSWFSprite::stopSoundSWFTextSWFText::addStringSWFText::addUTF8StringSWFText::__constructSWFText::getAscentSWFText::getDescentSWFText::getLeadingSWFText::getUTF8WidthSWFText::getWidthSWFText::moveToSWFText::setColorSWFText::setFontSWFText::setHeightSWFText::setSpacingSWFTextFieldSWFTextField::addCharsSWFTextField::addStringSWFTextField::alignSWFTextField::__constructSWFTextField::setBoundsSWFTextField::setColorSWFTextField::setFontSWFTextField::setHeightSWFTextField::setIndentationSWFTextField::setLeftMarginSWFTextField::setLineSpacingSWFTextField::setMarginsSWFTextField::setNameSWFTextField::setPaddingSWFTextField::setRightMarginSWFVideoStreamSWFVideoStream::__constructSWFVideoStream::getNumFramesSWFVideoStream::setDimensionPDF简介安装/配置需求安装运行时配置资源类型预定义常量范例Basic Usage ExamplesPDF 函数PDF_activate_itemPDF_add_annotationPDF_add_bookmarkPDF_add_launchlinkPDF_add_locallinkPDF_add_nameddestPDF_add_notePDF_add_outlinePDF_add_pdflinkPDF_add_table_cellPDF_add_textflowPDF_add_thumbnailPDF_add_weblinkPDF_arcPDF_arcnPDF_attach_filePDF_begin_documentPDF_begin_fontPDF_begin_glyphPDF_begin_itemPDF_begin_layerPDF_begin_page_extPDF_begin_pagePDF_begin_patternPDF_begin_template_extPDF_begin_templatePDF_circlePDF_clipPDF_close_imagePDF_close_pdi_pagePDF_close_pdiPDF_closePDF_closepath_fill_strokePDF_closepath_strokePDF_closepathPDF_concatPDF_continue_textPDF_create_3dviewPDF_create_actionPDF_create_annotationPDF_create_bookmarkPDF_create_fieldPDF_create_fieldgroupPDF_create_gstatePDF_create_pvfPDF_create_textflowPDF_curvetoPDF_define_layerPDF_delete_pvfPDF_delete_tablePDF_delete_textflowPDF_deletePDF_encoding_set_charPDF_end_documentPDF_end_fontPDF_end_glyphPDF_end_itemPDF_end_layerPDF_end_page_extPDF_end_pagePDF_end_patternPDF_end_templatePDF_endpathPDF_fill_imageblockPDF_fill_pdfblockPDF_fill_strokePDF_fill_textblockPDF_fillPDF_findfontPDF_fit_imagePDF_fit_pdi_pagePDF_fit_tablePDF_fit_textflowPDF_fit_textlinePDF_get_apinamePDF_get_bufferPDF_get_errmsgPDF_get_errnumPDF_get_fontPDF_get_fontnamePDF_get_fontsizePDF_get_image_heightPDF_get_image_widthPDF_get_majorversionPDF_get_minorversionPDF_get_parameterPDF_get_pdi_parameterPDF_get_pdi_valuePDF_get_valuePDF_info_fontPDF_info_matchboxPDF_info_tablePDF_info_textflowPDF_info_textlinePDF_initgraphicsPDF_linetoPDF_load_3ddataPDF_load_fontPDF_load_iccprofilePDF_load_imagePDF_makespotcolorPDF_movetoPDF_newPDF_open_ccittPDF_open_filePDF_open_gifPDF_open_image_filePDF_open_imagePDF_open_jpegPDF_open_memory_imagePDF_open_pdi_documentPDF_open_pdi_pagePDF_open_pdiPDF_open_tiffPDF_pcos_get_numberPDF_pcos_get_streamPDF_pcos_get_stringPDF_place_imagePDF_place_pdi_pagePDF_process_pdiPDF_rectPDF_restorePDF_resume_pagePDF_rotatePDF_savePDF_scalePDF_set_border_colorPDF_set_border_dashPDF_set_border_stylePDF_set_char_spacingPDF_set_durationPDF_set_gstatePDF_set_horiz_scalingPDF_set_info_authorPDF_set_info_creatorPDF_set_info_keywordsPDF_set_info_subjectPDF_set_info_titlePDF_set_infoPDF_set_layer_dependencyPDF_set_leadingPDF_set_parameterPDF_set_text_matrixPDF_set_text_posPDF_set_text_renderingPDF_set_text_risePDF_set_valuePDF_set_word_spacingPDF_setcolorPDF_setdashPDF_setdashpatternPDF_setflatPDF_setfontPDF_setgray_fillPDF_setgray_strokePDF_setgrayPDF_setlinecapPDF_setlinejoinPDF_setlinewidthPDF_setmatrixPDF_setmiterlimitPDF_setpolydashPDF_setrgbcolor_fillPDF_setrgbcolor_strokePDF_setrgbcolorPDF_shading_patternPDF_shadingPDF_shfillPDF_show_boxedPDF_show_xyPDF_showPDF_skewPDF_stringwidthPDF_strokePDF_suspend_pagePDF_translatePDF_utf16_to_utf8PDF_utf32_to_utf16PDF_utf8_to_utf16PS简介安装/配置需求安装运行时配置资源类型预定义常量PS 函数ps_add_bookmarkps_add_launchlinkps_add_locallinkps_add_noteps_add_pdflinkps_add_weblinkps_arcps_arcnps_begin_pageps_begin_patternps_begin_templateps_circleps_clipps_close_imageps_closeps_closepath_strokeps_closepathps_continue_textps_curvetops_deleteps_end_pageps_end_patternps_end_templateps_fill_strokeps_fillps_findfontps_get_bufferps_get_parameterps_get_valueps_hyphenateps_include_fileps_linetops_makespotcolorps_movetops_newps_open_fileps_open_image_fileps_open_imageps_open_memory_imageps_place_imageps_rectps_restoreps_rotateps_saveps_scaleps_set_border_colorps_set_border_dashps_set_border_styleps_set_infops_set_parameterps_set_text_posps_set_valueps_setcolorps_setdashps_setflatps_setfontps_setgrayps_setlinecapps_setlinejoinps_setlinewidthps_setmiterlimitps_setoverprintmodeps_setpolydashps_shading_patternps_shadingps_shfillps_show_boxedps_show_xy2ps_show_xyps_show2ps_showps_string_geometryps_stringwidthps_strokeps_symbol_nameps_symbol_widthps_symbolps_translateRPM Reader简介安装/配置需求安装运行时配置资源类型预定义常量范例Basic usageRPM Reader 函数rpm_closerpm_get_tagrpm_is_validrpm_openrpm_version进程控制扩展Eio简介安装/配置需求安装运行时配置资源类型预定义常量范例Eio 函数eio_busyeio_canceleio_chmodeio_chowneio_closeeio_customeio_dup2eio_event_loopeio_fallocateeio_fchmodeio_fchowneio_fdatasynceio_fstateio_fstatvfseio_fsynceio_ftruncateeio_futimeeio_get_event_streameio_get_last_erroreio_grp_addeio_grp_canceleio_grp_limiteio_grpeio_initeio_linkeio_lstateio_mkdireio_mknodeio_nopeio_npendingeio_nreadyeio_nreqseio_nthreadseio_openeio_polleio_readeio_readaheadeio_readdireio_readlinkeio_realpatheio_renameeio_rmdireio_seekeio_sendfileeio_set_max_idleeio_set_max_paralleleio_set_max_poll_reqseio_set_max_poll_timeeio_set_min_paralleleio_stateio_statvfseio_symlinkeio_sync_file_rangeeio_synceio_syncfseio_truncateeio_unlinkeio_utimeeio_writeEv简介安装/配置需求安装运行时配置资源类型预定义常量范例WatchersWatcher callbacksPeriodic watcher operation modesEvEv::backendEv::depthEv::embeddableBackendsEv::feedSignalEv::feedSignalEventEv::iterationEv::nowEv::nowUpdateEv::recommendedBackendsEv::resumeEv::runEv::sleepEv::stopEv::supportedBackendsEv::suspendEv::timeEv::verifyEvCheckEvCheck::__constructEvCheck::createStoppedEvChildEvChild::__constructEvChild::createStoppedEvChild::setEvEmbedEvEmbed::__constructEvEmbed::createStoppedEvEmbed::setEvEmbed::sweepEvForkEvFork::__constructEvFork::createStoppedEvIdleEvIdle::__constructEvIdle::createStoppedEvIoEvIo::__constructEvIo::createStoppedEvIo::setEvLoopEvLoop::backendEvLoop::checkEvLoop::childEvLoop::__constructEvLoop::defaultLoopEvLoop::embedEvLoop::forkEvLoop::idleEvLoop::invokePendingEvLoop::ioEvLoop::loopForkEvLoop::nowEvLoop::nowUpdateEvLoop::periodicEvLoop::prepareEvLoop::resumeEvLoop::runEvLoop::signalEvLoop::statEvLoop::stopEvLoop::suspendEvLoop::timerEvLoop::verifyEvPeriodicEvPeriodic::againEvPeriodic::atEvPeriodic::__constructEvPeriodic::createStoppedEvPeriodic::setEvPrepareEvPrepare::__constructEvPrepare::createStoppedEvSignalEvSignal::__constructEvSignal::createStoppedEvSignal::setEvStatEvStat::attrEvStat::__constructEvStat::createStoppedEvStat::prevEvStat::setEvStat::statEvTimerEvTimer::againEvTimer::__constructEvTimer::createStoppedEvTimer::setEvWatcherEvWatcher::clearEvWatcher::__constructEvWatcher::feedEvWatcher::getLoopEvWatcher::invokeEvWatcher::keepaliveEvWatcher::setCallbackEvWatcher::startEvWatcher::stopExpect简介安装/配置需求安装运行时配置资源类型预定义常量范例Expect Usage ExamplesExpect 函数expect_expectlexpect_popenLibevent简介安装/配置需求安装运行时配置资源类型预定义常量范例Libevent 函数event_addevent_base_freeevent_base_loopevent_base_loopbreakevent_base_loopexitevent_base_newevent_base_priority_initevent_base_reinitevent_base_setevent_buffer_base_setevent_buffer_disableevent_buffer_enableevent_buffer_fd_setevent_buffer_freeevent_buffer_newevent_buffer_priority_setevent_buffer_readevent_buffer_set_callbackevent_buffer_timeout_setevent_buffer_watermark_setevent_buffer_writeevent_delevent_freeevent_newevent_priority_setevent_setevent_timer_addevent_timer_delevent_timer_newevent_timer_setPCNTL简介安装/配置需求安装运行时配置资源类型预定义常量范例示例PCNTL 函数pcntl_alarmpcntl_errnopcntl_execpcntl_forkpcntl_get_last_errorpcntl_getprioritypcntl_setprioritypcntl_signal_dispatchpcntl_signalpcntl_sigprocmaskpcntl_sigtimedwaitpcntl_sigwaitinfopcntl_strerrorpcntl_waitpcntl_waitpidpcntl_wexitstatuspcntl_wifexitedpcntl_wifsignaledpcntl_wifstoppedpcntl_wstopsigpcntl_wtermsigPOSIX简介安装/配置需求安装运行时配置资源类型预定义常量posix_access constantsposix_mknod constantsposix_setrlimit constantsPOSIX 函数posix_accessposix_ctermidposix_errnoposix_get_last_errorposix_getcwdposix_getegidposix_geteuidposix_getgidposix_getgrgidposix_getgrnamposix_getgroupsposix_getloginposix_getpgidposix_getpgrpposix_getpidposix_getppidposix_getpwnamposix_getpwuidposix_getrlimitposix_getsidposix_getuidposix_initgroupsposix_isattyposix_killposix_mkfifoposix_mknodposix_setegidposix_seteuidposix_setgidposix_setpgidposix_setrlimitposix_setsidposix_setuidposix_strerrorposix_timesposix_ttynameposix_uname程序执行简介安装/配置需求安装运行时配置资源类型预定义常量程序执行 函数escapeshellargescapeshellcmdexecpassthruproc_closeproc_get_statusproc_niceproc_openproc_terminateshell_execsystempthreads简介安装/配置需求安装运行时配置预定义常量ThreadedThreaded::chunkThreaded::countThreaded::extendThreaded::fromThreaded::getTerminationInfoThreaded::isRunningThreaded::isTerminatedThreaded::isWaitingThreaded::lockThreaded::mergeThreaded::notifyThreaded::popThreaded::runThreaded::shiftThreaded::synchronizedThreaded::unlockThreaded::waitThreadThread::detachThread::getCreatorIdThread::getCurrentThreadThread::getCurrentThreadIdThread::getThreadIdThread::globallyThread::isJoinedThread::isStartedThread::joinThread::killThread::startWorkerWorker::getStackedWorker::isShutdownWorker::isWorkingWorker::shutdownWorker::stackWorker::unstackCollectableCollectable::isGarbageCollectable::setGarbageModifiersPoolPool::collectPool::__constructPool::resizePool::shutdownPool::submitPool::submitToMutexMutex::createMutex::destroyMutex::lockMutex::trylockMutex::unlockCondCond::broadcastCond::createCond::destroyCond::signalCond::waitSemaphore简介安装/配置需求安装运行时配置资源类型预定义常量Semaphore 函数ftokmsg_get_queuemsg_queue_existsmsg_receivemsg_remove_queuemsg_sendmsg_set_queuemsg_stat_queuesem_acquiresem_getsem_releasesem_removeshm_attachshm_detachshm_get_varshm_has_varshm_put_varshm_remove_varshm_removeShared Memory简介安装/配置需求安装运行时配置资源类型预定义常量范例Basic usageShared Memory 函数shmop_closeshmop_deleteshmop_openshmop_readshmop_sizeshmop_writeSync简介安装/配置需求安装运行时配置资源类型预定义常量SyncMutexSyncMutex::__constructSyncMutex::lockSyncMutex::unlockSyncSemaphoreSyncSemaphore::__constructSyncSemaphore::lockSyncSemaphore::unlockSyncEventSyncEvent::__constructSyncEvent::fireSyncEvent::resetSyncEvent::waitSyncReaderWriterSyncReaderWriter::__constructSyncReaderWriter::readlockSyncReaderWriter::readunlockSyncReaderWriter::writelockSyncReaderWriter::writeunlock其它基本扩展GeoIP简介安装/配置需求安装运行时配置资源类型预定义常量GeoIP 函数geoip_asnum_by_namegeoip_continent_code_by_namegeoip_country_code_by_namegeoip_country_code3_by_namegeoip_country_name_by_namegeoip_database_infogeoip_db_availgeoip_db_filenamegeoip_db_get_all_infogeoip_domain_by_namegeoip_id_by_namegeoip_isp_by_namegeoip_netspeedcell_by_namegeoip_org_by_namegeoip_record_by_namegeoip_region_by_namegeoip_region_name_by_codegeoip_setup_custom_directorygeoip_time_zone_by_country_and_regionFANN简介安装/配置需求安装运行时配置资源类型预定义常量范例XOR trainingFann 函数fann_cascadetrain_on_datafann_cascadetrain_on_filefann_clear_scaling_paramsfann_copyfann_create_from_filefann_create_shortcut_arrayfann_create_shortcutfann_create_sparse_arrayfann_create_sparsefann_create_standard_arrayfann_create_standardfann_create_train_from_callbackfann_create_trainfann_descale_inputfann_descale_outputfann_descale_trainfann_destroy_trainfann_destroyfann_duplicate_train_datafann_get_activation_functionfann_get_activation_steepnessfann_get_bias_arrayfann_get_bit_fail_limitfann_get_bit_failfann_get_cascade_activation_functions_countfann_get_cascade_activation_functionsfann_get_cascade_activation_steepnesses_countfann_get_cascade_activation_steepnessesfann_get_cascade_candidate_change_fractionfann_get_cascade_candidate_limitfann_get_cascade_candidate_stagnation_epochsfann_get_cascade_max_cand_epochsfann_get_cascade_max_out_epochsfann_get_cascade_min_cand_epochsfann_get_cascade_min_out_epochsfann_get_cascade_num_candidate_groupsfann_get_cascade_num_candidatesfann_get_cascade_output_change_fractionfann_get_cascade_output_stagnation_epochsfann_get_cascade_weight_multiplierfann_get_connection_arrayfann_get_connection_ratefann_get_errnofann_get_errstrfann_get_layer_arrayfann_get_learning_momentumfann_get_learning_ratefann_get_MSEfann_get_network_typefann_get_num_inputfann_get_num_layersfann_get_num_outputfann_get_quickprop_decayfann_get_quickprop_mufann_get_rprop_decrease_factorfann_get_rprop_delta_maxfann_get_rprop_delta_minfann_get_rprop_delta_zerofann_get_rprop_increase_factorfann_get_sarprop_step_error_shiftfann_get_sarprop_step_error_threshold_factorfann_get_sarprop_temperaturefann_get_sarprop_weight_decay_shiftfann_get_total_connectionsfann_get_total_neuronsfann_get_train_error_functionfann_get_train_stop_functionfann_get_training_algorithmfann_init_weightsfann_length_train_datafann_merge_train_datafann_num_input_train_datafann_num_output_train_datafann_print_errorfann_randomize_weightsfann_read_train_from_filefann_reset_errnofann_reset_errstrfann_reset_MSEfann_runfann_save_trainfann_savefann_scale_input_train_datafann_scale_inputfann_scale_output_train_datafann_scale_outputfann_scale_train_datafann_scale_trainfann_set_activation_function_hiddenfann_set_activation_function_layerfann_set_activation_function_outputfann_set_activation_functionfann_set_activation_steepness_hiddenfann_set_activation_steepness_layerfann_set_activation_steepness_outputfann_set_activation_steepnessfann_set_bit_fail_limitfann_set_callbackfann_set_cascade_activation_functionsfann_set_cascade_activation_steepnessesfann_set_cascade_candidate_change_fractionfann_set_cascade_candidate_limitfann_set_cascade_candidate_stagnation_epochsfann_set_cascade_max_cand_epochsfann_set_cascade_max_out_epochsfann_set_cascade_min_cand_epochsfann_set_cascade_min_out_epochsfann_set_cascade_num_candidate_groupsfann_set_cascade_output_change_fractionfann_set_cascade_output_stagnation_epochsfann_set_cascade_weight_multiplierfann_set_error_logfann_set_input_scaling_paramsfann_set_learning_momentumfann_set_learning_ratefann_set_output_scaling_paramsfann_set_quickprop_decayfann_set_quickprop_mufann_set_rprop_decrease_factorfann_set_rprop_delta_maxfann_set_rprop_delta_minfann_set_rprop_delta_zerofann_set_rprop_increase_factorfann_set_sarprop_step_error_shiftfann_set_sarprop_step_error_threshold_factorfann_set_sarprop_temperaturefann_set_sarprop_weight_decay_shiftfann_set_scaling_paramsfann_set_train_error_functionfann_set_train_stop_functionfann_set_training_algorithmfann_set_weight_arrayfann_set_weightfann_shuffle_train_datafann_subset_train_datafann_test_datafann_testfann_train_epochfann_train_on_datafann_train_on_filefann_trainFANNConnectionFANNConnection::__constructFANNConnection::getFromNeuronFANNConnection::getToNeuronFANNConnection::getWeightFANNConnection::setWeightJSON简介安装/配置需求安装运行时配置资源类型预定义常量JsonSerializableJsonSerializable::jsonSerializeJSON 函数json_decodejson_encodejson_last_error_msgjson_last_errorJudy简介安装/配置需求安装运行时配置资源类型JudyJudy::byCountJudy::__constructJudy::countJudy::__destructJudy::firstJudy::firstEmptyJudy::freeJudy::getTypeJudy::lastJudy::lastEmptyJudy::memoryUsageJudy::nextJudy::nextEmptyJudy::offsetExistsJudy::offsetGetJudy::offsetSetJudy::offsetUnsetJudy::prevJudy::prevEmptyJudy::sizeJudy 函数judy_typejudy_versionLua简介安装/配置需求安装运行时配置资源类型LuaLua::assignLua::callLua::__callLua::__constructLua::evalLua::getVersionLua::includeLua::registerCallbackLuaClosureLuaClosure::__invokeMisc.简介安装/配置需求安装运行时配置资源类型预定义常量杂项 函数connection_abortedconnection_statusconstantdefinedefineddieevalexitget_browser__halt_compilerhighlight_filehighlight_stringignore_user_abortpackphp_check_syntaxphp_strip_whitespaceshow_sourcesleepsys_getloadavgtime_nanosleeptime_sleep_untiluniqidunpackusleepParsekit简介安装/配置需求安装运行时配置资源类型预定义常量Parsekit 函数parsekit_compile_fileparsekit_compile_stringparsekit_func_arginfoSPL简介安装/配置需求安装运行时配置资源类型预定义常量数据结构SplDoublyLinkedListSplDoublyLinkedList::addSplDoublyLinkedList::bottomSplDoublyLinkedList::__constructSplDoublyLinkedList::countSplDoublyLinkedList::currentSplDoublyLinkedList::getIteratorModeSplDoublyLinkedList::isEmptySplDoublyLinkedList::keySplDoublyLinkedList::nextSplDoublyLinkedList::offsetExistsSplDoublyLinkedList::offsetGetSplDoublyLinkedList::offsetSetSplDoublyLinkedList::offsetUnsetSplDoublyLinkedList::popSplDoublyLinkedList::prevSplDoublyLinkedList::pushSplDoublyLinkedList::rewindSplDoublyLinkedList::serializeSplDoublyLinkedList::setIteratorModeSplDoublyLinkedList::shiftSplDoublyLinkedList::topSplDoublyLinkedList::unserializeSplDoublyLinkedList::unshiftSplDoublyLinkedList::validSplStackSplStack::__constructSplStack::setIteratorModeSplQueueSplQueue::__constructSplQueue::dequeueSplQueue::enqueueSplQueue::setIteratorModeSplHeapSplHeap::compareSplHeap::__constructSplHeap::countSplHeap::currentSplHeap::extractSplHeap::insertSplHeap::isEmptySplHeap::keySplHeap::nextSplHeap::recoverFromCorruptionSplHeap::rewindSplHeap::topSplHeap::validSplMaxHeapSplMaxHeap::compareSplMinHeapSplMinHeap::compareSplPriorityQueueSplPriorityQueue::compareSplPriorityQueue::__constructSplPriorityQueue::countSplPriorityQueue::currentSplPriorityQueue::extractSplPriorityQueue::insertSplPriorityQueue::isEmptySplPriorityQueue::keySplPriorityQueue::nextSplPriorityQueue::recoverFromCorruptionSplPriorityQueue::rewindSplPriorityQueue::setExtractFlagsSplPriorityQueue::topSplPriorityQueue::validSplFixedArraySplFixedArray::__constructSplFixedArray::countSplFixedArray::currentSplFixedArray::fromArraySplFixedArray::getSizeSplFixedArray::keySplFixedArray::nextSplFixedArray::offsetExistsSplFixedArray::offsetGetSplFixedArray::offsetSetSplFixedArray::offsetUnsetSplFixedArray::rewindSplFixedArray::setSizeSplFixedArray::toArraySplFixedArray::validSplFixedArray::__wakeupSplObjectStorageSplObjectStorage::addAllSplObjectStorage::attachSplObjectStorage::containsSplObjectStorage::countSplObjectStorage::currentSplObjectStorage::detachSplObjectStorage::getHashSplObjectStorage::getInfoSplObjectStorage::keySplObjectStorage::nextSplObjectStorage::offsetExistsSplObjectStorage::offsetGetSplObjectStorage::offsetSetSplObjectStorage::offsetUnsetSplObjectStorage::removeAllSplObjectStorage::removeAllExceptSplObjectStorage::rewindSplObjectStorage::serializeSplObjectStorage::setInfoSplObjectStorage::unserializeSplObjectStorage::valid迭代器AppendIteratorAppendIterator::appendAppendIterator::__constructAppendIterator::currentAppendIterator::getArrayIteratorAppendIterator::getInnerIteratorAppendIterator::getIteratorIndexAppendIterator::keyAppendIterator::nextAppendIterator::rewindAppendIterator::validArrayIteratorArrayIterator::appendArrayIterator::asortArrayIterator::__constructArrayIterator::countArrayIterator::currentArrayIterator::getArrayCopyArrayIterator::getFlagsArrayIterator::keyArrayIterator::ksortArrayIterator::natcasesortArrayIterator::natsortArrayIterator::nextArrayIterator::offsetExistsArrayIterator::offsetGetArrayIterator::offsetSetArrayIterator::offsetUnsetArrayIterator::rewindArrayIterator::seekArrayIterator::serializeArrayIterator::setFlagsArrayIterator::uasortArrayIterator::uksortArrayIterator::unserializeArrayIterator::validCachingIteratorCachingIterator::__constructCachingIterator::countCachingIterator::currentCachingIterator::getCacheCachingIterator::getFlagsCachingIterator::getInnerIteratorCachingIterator::hasNextCachingIterator::keyCachingIterator::nextCachingIterator::offsetExistsCachingIterator::offsetGetCachingIterator::offsetSetCachingIterator::offsetUnsetCachingIterator::rewindCachingIterator::setFlagsCachingIterator::__toStringCachingIterator::validCallbackFilterIteratorCallbackFilterIterator::acceptCallbackFilterIterator::__constructDirectoryIteratorDirectoryIterator::__constructDirectoryIterator::currentDirectoryIterator::getATimeDirectoryIterator::getBasenameDirectoryIterator::getCTimeDirectoryIterator::getExtensionDirectoryIterator::getFilenameDirectoryIterator::getGroupDirectoryIterator::getInodeDirectoryIterator::getMTimeDirectoryIterator::getOwnerDirectoryIterator::getPathDirectoryIterator::getPathnameDirectoryIterator::getPermsDirectoryIterator::getSizeDirectoryIterator::getTypeDirectoryIterator::isDirDirectoryIterator::isDotDirectoryIterator::isExecutableDirectoryIterator::isFileDirectoryIterator::isLinkDirectoryIterator::isReadableDirectoryIterator::isWritableDirectoryIterator::keyDirectoryIterator::nextDirectoryIterator::rewindDirectoryIterator::seekDirectoryIterator::__toStringDirectoryIterator::validEmptyIteratorEmptyIterator::currentEmptyIterator::keyEmptyIterator::nextEmptyIterator::rewindEmptyIterator::validFilesystemIteratorFilesystemIterator::__constructFilesystemIterator::currentFilesystemIterator::getFlagsFilesystemIterator::keyFilesystemIterator::nextFilesystemIterator::rewindFilesystemIterator::setFlagsFilterIteratorFilterIterator::acceptFilterIterator::__constructFilterIterator::currentFilterIterator::getInnerIteratorFilterIterator::keyFilterIterator::nextFilterIterator::rewindFilterIterator::validGlobIteratorGlobIterator::__constructGlobIterator::countInfiniteIteratorInfiniteIterator::__constructInfiniteIterator::nextIteratorIteratorIteratorIterator::__constructIteratorIterator::currentIteratorIterator::getInnerIteratorIteratorIterator::keyIteratorIterator::nextIteratorIterator::rewindIteratorIterator::validLimitIteratorLimitIterator::__constructLimitIterator::currentLimitIterator::getInnerIteratorLimitIterator::getPositionLimitIterator::keyLimitIterator::nextLimitIterator::rewindLimitIterator::seekLimitIterator::validMultipleIteratorMultipleIterator::attachIteratorMultipleIterator::__constructMultipleIterator::containsIteratorMultipleIterator::countIteratorsMultipleIterator::currentMultipleIterator::detachIteratorMultipleIterator::getFlagsMultipleIterator::keyMultipleIterator::nextMultipleIterator::rewindMultipleIterator::setFlagsMultipleIterator::validNoRewindIteratorNoRewindIterator::__constructNoRewindIterator::currentNoRewindIterator::getInnerIteratorNoRewindIterator::keyNoRewindIterator::nextNoRewindIterator::rewindNoRewindIterator::validParentIteratorParentIterator::acceptParentIterator::__constructParentIterator::getChildrenParentIterator::hasChildrenParentIterator::nextParentIterator::rewindRecursiveArrayIteratorRecursiveArrayIterator::getChildrenRecursiveArrayIterator::hasChildrenRecursiveCachingIteratorRecursiveCachingIterator::__constructRecursiveCachingIterator::getChildrenRecursiveCachingIterator::hasChildrenRecursiveCallbackFilterIteratorRecursiveCallbackFilterIterator::__constructRecursiveCallbackFilterIterator::getChildrenRecursiveCallbackFilterIterator::hasChildrenRecursiveDirectoryIteratorRecursiveDirectoryIterator::__constructRecursiveDirectoryIterator::getChildrenRecursiveDirectoryIterator::getSubPathRecursiveDirectoryIterator::getSubPathnameRecursiveDirectoryIterator::hasChildrenRecursiveDirectoryIterator::keyRecursiveDirectoryIterator::nextRecursiveDirectoryIterator::rewindRecursiveFilterIteratorRecursiveFilterIterator::__constructRecursiveFilterIterator::getChildrenRecursiveFilterIterator::hasChildrenRecursiveIteratorIteratorRecursiveIteratorIterator::beginChildrenRecursiveIteratorIterator::beginIterationRecursiveIteratorIterator::callGetChildrenRecursiveIteratorIterator::callHasChildrenRecursiveIteratorIterator::__constructRecursiveIteratorIterator::currentRecursiveIteratorIterator::endChildrenRecursiveIteratorIterator::endIterationRecursiveIteratorIterator::getDepthRecursiveIteratorIterator::getInnerIteratorRecursiveIteratorIterator::getMaxDepthRecursiveIteratorIterator::getSubIteratorRecursiveIteratorIterator::keyRecursiveIteratorIterator::nextRecursiveIteratorIterator::nextElementRecursiveIteratorIterator::rewindRecursiveIteratorIterator::setMaxDepthRecursiveIteratorIterator::validRecursiveRegexIteratorRecursiveRegexIterator::__constructRecursiveRegexIterator::getChildrenRecursiveRegexIterator::hasChildrenRecursiveTreeIteratorRecursiveTreeIterator::beginChildrenRecursiveTreeIterator::beginIterationRecursiveTreeIterator::callGetChildrenRecursiveTreeIterator::callHasChildrenRecursiveTreeIterator::__constructRecursiveTreeIterator::currentRecursiveTreeIterator::endChildrenRecursiveTreeIterator::endIterationRecursiveTreeIterator::getEntryRecursiveTreeIterator::getPostfixRecursiveTreeIterator::getPrefixRecursiveTreeIterator::keyRecursiveTreeIterator::nextRecursiveTreeIterator::nextElementRecursiveTreeIterator::rewindRecursiveTreeIterator::setPrefixPartRecursiveTreeIterator::validRegexIteratorRegexIterator::acceptRegexIterator::__constructRegexIterator::getFlagsRegexIterator::getModeRegexIterator::getPregFlagsRegexIterator::getRegexRegexIterator::setFlagsRegexIterator::setModeRegexIterator::setPregFlags接口CountableCountable::countOuterIteratorOuterIterator::getInnerIteratorRecursiveIteratorRecursiveIterator::getChildrenRecursiveIterator::hasChildrenSeekableIteratorSeekableIterator::seek异常BadFunctionCallExceptionBadMethodCallExceptionDomainExceptionInvalidArgumentExceptionLengthExceptionLogicExceptionOutOfBoundsExceptionOutOfRangeExceptionOverflowExceptionRangeExceptionRuntimeExceptionUnderflowExceptionUnexpectedValueExceptionSPL 函数class_implementsclass_parentsclass_usesiterator_applyiterator_countiterator_to_arrayspl_autoload_callspl_autoload_extensionsspl_autoload_functionsspl_autoload_registerspl_autoload_unregisterspl_autoloadspl_classesspl_object_hash文件处理SplFileInfoSplFileInfo::__constructSplFileInfo::getATimeSplFileInfo::getBasenameSplFileInfo::getCTimeSplFileInfo::getExtensionSplFileInfo::getFileInfoSplFileInfo::getFilenameSplFileInfo::getGroupSplFileInfo::getInodeSplFileInfo::getLinkTargetSplFileInfo::getMTimeSplFileInfo::getOwnerSplFileInfo::getPathSplFileInfo::getPathInfoSplFileInfo::getPathnameSplFileInfo::getPermsSplFileInfo::getRealPathSplFileInfo::getSizeSplFileInfo::getTypeSplFileInfo::isDirSplFileInfo::isExecutableSplFileInfo::isFileSplFileInfo::isLinkSplFileInfo::isReadableSplFileInfo::isWritableSplFileInfo::openFileSplFileInfo::setFileClassSplFileInfo::setInfoClassSplFileInfo::__toStringSplFileObjectSplFileObject::__constructSplFileObject::currentSplFileObject::eofSplFileObject::fflushSplFileObject::fgetcSplFileObject::fgetcsvSplFileObject::fgetsSplFileObject::fgetssSplFileObject::flockSplFileObject::fpassthruSplFileObject::fputcsvSplFileObject::freadSplFileObject::fscanfSplFileObject::fseekSplFileObject::fstatSplFileObject::ftellSplFileObject::ftruncateSplFileObject::fwriteSplFileObject::getChildrenSplFileObject::getCsvControlSplFileObject::getCurrentLineSplFileObject::getFlagsSplFileObject::getMaxLineLenSplFileObject::hasChildrenSplFileObject::keySplFileObject::nextSplFileObject::rewindSplFileObject::seekSplFileObject::setCsvControlSplFileObject::setFlagsSplFileObject::setMaxLineLenSplFileObject::__toStringSplFileObject::validSplTempFileObjectSplTempFileObject::__construct各种类及接口ArrayObjectArrayObject::appendArrayObject::asortArrayObject::__constructArrayObject::countArrayObject::exchangeArrayArrayObject::getArrayCopyArrayObject::getFlagsArrayObject::getIteratorArrayObject::getIteratorClassArrayObject::ksortArrayObject::natcasesortArrayObject::natsortArrayObject::offsetExistsArrayObject::offsetGetArrayObject::offsetSetArrayObject::offsetUnsetArrayObject::serializeArrayObject::setFlagsArrayObject::setIteratorClassArrayObject::uasortArrayObject::uksortArrayObject::unserializeSplObserverSplObserver::updateSplSubjectSplSubject::attachSplSubject::detachSplSubject::notifySPL Types简介安装/配置需求安装运行时配置资源类型SplTypeSplType::__constructSplIntSplFloatSplEnumSplEnum::getConstListSplBoolSplStringStreams简介安装/配置需求安装运行时配置Stream Classes预定义常量Stream FiltersStream ContextsStream Errors范例Example class registered as stream wrapperphp_user_filterphp_user_filter::filterphp_user_filter::onClosephp_user_filter::onCreatestreamWrapperstreamWrapper::__constructstreamWrapper::__destructstreamWrapper::dir_closedirstreamWrapper::dir_opendirstreamWrapper::dir_readdirstreamWrapper::dir_rewinddirstreamWrapper::mkdirstreamWrapper::renamestreamWrapper::rmdirstreamWrapper::stream_caststreamWrapper::stream_closestreamWrapper::stream_eofstreamWrapper::stream_flushstreamWrapper::stream_lockstreamWrapper::stream_metadatastreamWrapper::stream_openstreamWrapper::stream_readstreamWrapper::stream_seekstreamWrapper::stream_set_optionstreamWrapper::stream_statstreamWrapper::stream_tellstreamWrapper::stream_truncatestreamWrapper::stream_writestreamWrapper::unlinkstreamWrapper::url_statStream 函数set_socket_blockingstream_bucket_appendstream_bucket_make_writeablestream_bucket_newstream_bucket_prependstream_context_createstream_context_get_defaultstream_context_get_optionsstream_context_get_paramsstream_context_set_defaultstream_context_set_optionstream_context_set_paramsstream_copy_to_streamstream_encodingstream_filter_appendstream_filter_prependstream_filter_registerstream_filter_removestream_get_contentsstream_get_filtersstream_get_linestream_get_meta_datastream_get_transportsstream_get_wrappersstream_is_localstream_notification_callbackstream_register_wrapperstream_resolve_include_pathstream_selectstream_set_blockingstream_set_chunk_sizestream_set_read_bufferstream_set_timeoutstream_set_write_bufferstream_socket_acceptstream_socket_clientstream_socket_enable_cryptostream_socket_get_namestream_socket_pairstream_socket_recvfromstream_socket_sendtostream_socket_serverstream_socket_shutdownstream_supports_lockstream_register_wrapperstream_wrapper_restorestream_wrapper_unregisterTidy简介安装/配置需求安装运行时配置资源类型预定义常量范例Tidy exampletidytidy::bodytidy_get_bodytidy::cleanRepairtidy_clean_repairtidy::__constructtidy::diagnosetidy_diagnosetidy::$errorBuffertidy_get_error_buffertidy::getConfigtidy_get_configtidy::getHtmlVertidy_get_html_vertidy::getOpttidy_getopttidy::getOptDoctidy_get_opt_doctidy::getReleasetidy_get_releasetidy::getStatustidy_get_statustidy::headtidy_get_headtidy::htmltidy_get_htmltidy::isXhtmltidy_is_xhtmltidy::isXmltidy_is_xmltidy::parseFiletidy_parse_filetidy::parseStringtidy_parse_stringtidy::repairFiletidy_repair_filetidy::repairStringtidy_repair_stringtidy::roottidy_get_roottidyNodetidyNode::getParenttidyNode::hasChildrentidyNode::hasSiblingstidyNode::isAsptidyNode::isCommenttidyNode::isHtmltidyNode::isJstetidyNode::isPhptidyNode::isTextTidy 函数ob_tidyhandlertidy_access_counttidy_config_counttidy_error_counttidy_get_outputtidy_load_configtidy_reset_configtidy_save_configtidy_set_encodingtidy_setopttidy_warning_countTokenizer简介安装/配置需求安装运行时配置资源类型预定义常量范例Tokenizer 函数token_get_alltoken_nameURLs简介安装/配置需求安装运行时配置资源类型预定义常量URL 函数base64_decodebase64_encodeget_headersget_meta_tagshttp_build_queryparse_urlrawurldecoderawurlencodeurldecodeurlencodeV8js简介安装/配置需求安装运行时配置资源类型范例V8JsV8Js::__constructV8Js::executeStringV8Js::getExtensionsV8Js::getPendingExceptionV8Js::registerExtensionV8JsExceptionV8JsException::getJsFileNameV8JsException::getJsLineNumberV8JsException::getJsSourceLineV8JsException::getJsTraceYaml简介安装/配置需求安装运行时配置资源类型预定义常量范例CallbacksParse callbacksEmit callbacksYaml 函数yaml_emit_fileyaml_emityaml_parse_fileyaml_parse_urlyaml_parseYaf简介安装/配置需求安装运行时配置资源类型预定义常量范例应用配置Yaf_ApplicationYaf_Application::appYaf_Application::bootstrapYaf_Application::clearLastErrorYaf_Application::__cloneYaf_Application::__constructYaf_Application::__destructYaf_Application::environYaf_Application::executeYaf_Application::getAppDirectoryYaf_Application::getConfigYaf_Application::getDispatcherYaf_Application::getLastErrorMsgYaf_Application::getLastErrorNoYaf_Application::getModulesYaf_Application::runYaf_Application::setAppDirectoryYaf_Application::__sleepYaf_Application::__wakeupYaf_Bootstrap_AbstractYaf_DispatcherYaf_Dispatcher::autoRenderYaf_Dispatcher::catchExceptionYaf_Dispatcher::__cloneYaf_Dispatcher::__constructYaf_Dispatcher::disableViewYaf_Dispatcher::dispatchYaf_Dispatcher::enableViewYaf_Dispatcher::flushInstantlyYaf_Dispatcher::getApplicationYaf_Dispatcher::getInstanceYaf_Dispatcher::getRequestYaf_Dispatcher::getRouterYaf_Dispatcher::initViewYaf_Dispatcher::registerPluginYaf_Dispatcher::returnResponseYaf_Dispatcher::setDefaultActionYaf_Dispatcher::setDefaultControllerYaf_Dispatcher::setDefaultModuleYaf_Dispatcher::setErrorHandlerYaf_Dispatcher::setRequestYaf_Dispatcher::setViewYaf_Dispatcher::__sleepYaf_Dispatcher::throwExceptionYaf_Dispatcher::__wakeupYaf_Config_AbstractYaf_Config_Abstract::getYaf_Config_Abstract::readonlyYaf_Config_Abstract::setYaf_Config_Abstract::toArrayYaf_Config_IniYaf_Config_Ini::__constructYaf_Config_Ini::countYaf_Config_Ini::currentYaf_Config_Ini::__getYaf_Config_Ini::__issetYaf_Config_Ini::keyYaf_Config_Ini::nextYaf_Config_Ini::offsetExistsYaf_Config_Ini::offsetGetYaf_Config_Ini::offsetSetYaf_Config_Ini::offsetUnsetYaf_Config_Ini::readonlyYaf_Config_Ini::rewindYaf_Config_Ini::__setYaf_Config_Ini::toArrayYaf_Config_Ini::validYaf_Config_SimpleYaf_Config_Simple::__constructYaf_Config_Simple::countYaf_Config_Simple::currentYaf_Config_Simple::__getYaf_Config_Simple::__issetYaf_Config_Simple::keyYaf_Config_Simple::nextYaf_Config_Simple::offsetExistsYaf_Config_Simple::offsetGetYaf_Config_Simple::offsetSetYaf_Config_Simple::offsetUnsetYaf_Config_Simple::readonlyYaf_Config_Simple::rewindYaf_Config_Simple::__setYaf_Config_Simple::toArrayYaf_Config_Simple::validYaf_Controller_AbstractYaf_Controller_Abstract::__cloneYaf_Controller_Abstract::__constructYaf_Controller_Abstract::displayYaf_Controller_Abstract::forwardYaf_Controller_Abstract::getInvokeArgYaf_Controller_Abstract::getInvokeArgsYaf_Controller_Abstract::getModuleNameYaf_Controller_Abstract::getRequestYaf_Controller_Abstract::getResponseYaf_Controller_Abstract::getViewYaf_Controller_Abstract::getViewpathYaf_Controller_Abstract::initYaf_Controller_Abstract::initViewYaf_Controller_Abstract::redirectYaf_Controller_Abstract::renderYaf_Controller_Abstract::setViewpathYaf_Action_AbstractYaf_Action_Abstract::executeYaf_Action_Abstract::getControllerYaf_View_InterfaceYaf_View_Interface::assignYaf_View_Interface::displayYaf_View_Interface::getScriptPathYaf_View_Interface::renderYaf_View_Interface::setScriptPathYaf_View_SimpleYaf_View_Simple::assignYaf_View_Simple::assignRefYaf_View_Simple::clearYaf_View_Simple::__constructYaf_View_Simple::displayYaf_View_Simple::evalYaf_View_Simple::__getYaf_View_Simple::getScriptPathYaf_View_Simple::__issetYaf_View_Simple::renderYaf_View_Simple::__setYaf_View_Simple::setScriptPathYaf_LoaderYaf_Loader::autoloadYaf_Loader::clearLocalNamespaceYaf_Loader::__cloneYaf_Loader::__constructYaf_Loader::getInstanceYaf_Loader::getLibraryPathYaf_Loader::getLocalNamespaceYaf_Loader::importYaf_Loader::isLocalNameYaf_Loader::registerLocalNamespaceYaf_Loader::setLibraryPathYaf_Loader::__sleepYaf_Loader::__wakeupYaf_Plugin_AbstractYaf_Plugin_Abstract::dispatchLoopShutdownYaf_Plugin_Abstract::dispatchLoopStartupYaf_Plugin_Abstract::postDispatchYaf_Plugin_Abstract::preDispatchYaf_Plugin_Abstract::preResponseYaf_Plugin_Abstract::routerShutdownYaf_Plugin_Abstract::routerStartupYaf_RegistryYaf_Registry::__cloneYaf_Registry::__constructYaf_Registry::delYaf_Registry::getYaf_Registry::hasYaf_Registry::setYaf_Request_AbstractYaf_Request_Abstract::getActionNameYaf_Request_Abstract::getBaseUriYaf_Request_Abstract::getControllerNameYaf_Request_Abstract::getEnvYaf_Request_Abstract::getExceptionYaf_Request_Abstract::getLanguageYaf_Request_Abstract::getMethodYaf_Request_Abstract::getModuleNameYaf_Request_Abstract::getParamYaf_Request_Abstract::getParamsYaf_Request_Abstract::getRequestUriYaf_Request_Abstract::getServerYaf_Request_Abstract::isCliYaf_Request_Abstract::isDispatchedYaf_Request_Abstract::isGetYaf_Request_Abstract::isHeadYaf_Request_Abstract::isOptionsYaf_Request_Abstract::isPostYaf_Request_Abstract::isPutYaf_Request_Abstract::isRoutedYaf_Request_Abstract::isXmlHttpRequestYaf_Request_Abstract::setActionNameYaf_Request_Abstract::setBaseUriYaf_Request_Abstract::setControllerNameYaf_Request_Abstract::setDispatchedYaf_Request_Abstract::setModuleNameYaf_Request_Abstract::setParamYaf_Request_Abstract::setRequestUriYaf_Request_Abstract::setRoutedYaf_Request_HttpYaf_Request_Http::__cloneYaf_Request_Http::__constructYaf_Request_Http::getYaf_Request_Http::getCookieYaf_Request_Http::getFilesYaf_Request_Http::getPostYaf_Request_Http::getQueryYaf_Request_Http::getRequestYaf_Request_Http::isXmlHttpRequestYaf_Request_SimpleYaf_Request_Simple::__cloneYaf_Request_Simple::__constructYaf_Request_Simple::getYaf_Request_Simple::getCookieYaf_Request_Simple::getFilesYaf_Request_Simple::getPostYaf_Request_Simple::getQueryYaf_Request_Simple::getRequestYaf_Request_Simple::isXmlHttpRequestYaf_Response_AbstractYaf_Response_Abstract::appendBodyYaf_Response_Abstract::clearBodyYaf_Response_Abstract::clearHeadersYaf_Response_Abstract::__cloneYaf_Response_Abstract::__constructYaf_Response_Abstract::__destructYaf_Response_Abstract::getBodyYaf_Response_Abstract::getHeaderYaf_Response_Abstract::prependBodyYaf_Response_Abstract::responseYaf_Response_Abstract::setAllHeadersYaf_Response_Abstract::setBodyYaf_Response_Abstract::setHeaderYaf_Response_Abstract::setRedirectYaf_Response_Abstract::__toStringYaf_Route_InterfaceYaf_Route_Interface::assembleYaf_Route_Interface::routeYaf_Route_MapYaf_Route_Map::assembleYaf_Route_Map::__constructYaf_Route_Map::routeYaf_Route_RegexYaf_Route_Regex::assembleYaf_Route_Regex::__constructYaf_Route_Regex::routeYaf_Route_RewriteYaf_Route_Rewrite::assembleYaf_Route_Rewrite::__constructYaf_Route_Rewrite::routeYaf_RouterYaf_Router::addConfigYaf_Router::addRouteYaf_Router::__constructYaf_Router::getCurrentRouteYaf_Router::getRouteYaf_Router::getRoutesYaf_Router::routeYaf_Route_SimpleYaf_Route_Simple::assembleYaf_Route_Simple::__constructYaf_Route_Simple::routeYaf_Route_StaticYaf_Route_Static::assembleYaf_Route_Static::matchYaf_Route_Static::routeYaf_Route_SupervarYaf_Route_Supervar::assembleYaf_Route_Supervar::__constructYaf_Route_Supervar::routeYaf_SessionYaf_Session::__cloneYaf_Session::__constructYaf_Session::countYaf_Session::currentYaf_Session::delYaf_Session::__getYaf_Session::getInstanceYaf_Session::hasYaf_Session::__issetYaf_Session::keyYaf_Session::nextYaf_Session::offsetExistsYaf_Session::offsetGetYaf_Session::offsetSetYaf_Session::offsetUnsetYaf_Session::rewindYaf_Session::__setYaf_Session::__sleepYaf_Session::startYaf_Session::__unsetYaf_Session::validYaf_Session::__wakeupYaf_ExceptionYaf_Exception::__constructYaf_Exception::getPreviousYaf_Exception_TypeErrorYaf_Exception_StartupErrorYaf_Exception_DispatchFailedYaf_Exception_RouterFailedYaf_Exception_LoadFailedYaf_Exception_LoadFailed_ModuleYaf_Exception_LoadFailed_ControllerYaf_Exception_LoadFailed_ActionYaf_Exception_LoadFailed_ViewTaint简介安装/配置需求安装运行时配置资源类型More DetailsFunctions and Statements which will spread the tainted mark of a tainted stringFunctions and statements which will check tainted stringFunctions which untaint the tainted stringTaint 函数is_taintedtaintuntaint其它服务chdb简介安装/配置需求安装运行时配置资源类型预定义常量范例chdbchdb::__constructchdb::getchdb 函数chdb_createcURL简介安装/配置需求安装运行时配置资源类型预定义常量范例curl 基础例子cURL 函数curl_closecurl_copy_handlecurl_errnocurl_errorcurl_escapecurl_execcurl_file_createcurl_getinfocurl_initcurl_multi_add_handlecurl_multi_closecurl_multi_execcurl_multi_getcontentcurl_multi_info_readcurl_multi_initcurl_multi_remove_handlecurl_multi_selectcurl_multi_setoptcurl_multi_strerrorcurl_pausecurl_resetcurl_setopt_arraycurl_setoptcurl_share_closecurl_share_initcurl_share_setoptcurl_strerrorcurl_unescapecurl_versionEvent简介安装/配置需求安装运行时配置资源类型范例Event flagsAbout event persistenceEvent callbacksConstructing signal eventsEventEvent::addEvent::addSignalEvent::addTimerEvent::__constructEvent::delEvent::delSignalEvent::delTimerEvent::freeEvent::getSupportedMethodsEvent::pendingEvent::setEvent::setPriorityEvent::setTimerEvent::signalEvent::timerEventBaseEventBase::__constructEventBase::dispatchEventBase::exitEventBase::freeEventBase::getFeaturesEventBase::getMethodEventBase::getTimeOfDayCachedEventBase::gotExitEventBase::gotStopEventBase::loopEventBase::priorityInitEventBase::reInitEventBase::stopEventBufferEventBuffer::addEventBuffer::addBufferEventBuffer::appendFromEventBuffer::__constructEventBuffer::copyoutEventBuffer::drainEventBuffer::enableLockingEventBuffer::expandEventBuffer::freezeEventBuffer::lockEventBuffer::prependEventBuffer::prependBufferEventBuffer::pullupEventBuffer::readEventBuffer::readFromEventBuffer::readLineEventBuffer::searchEventBuffer::searchEolEventBuffer::substrEventBuffer::unfreezeEventBuffer::unlockEventBuffer::writeEventBufferEventEventBufferEvent::closeEventBufferEvent::connectEventBufferEvent::connectHostEventBufferEvent::__constructEventBufferEvent::createPairEventBufferEvent::disableEventBufferEvent::enableEventBufferEvent::freeEventBufferEvent::getDnsErrorStringEventBufferEvent::getEnabledEventBufferEvent::getInputEventBufferEvent::getOutputEventBufferEvent::readEventBufferEvent::readBufferEventBufferEvent::setCallbacksEventBufferEvent::setPriorityEventBufferEvent::setTimeoutsEventBufferEvent::setWatermarkEventBufferEvent::sslErrorEventBufferEvent::sslFilterEventBufferEvent::sslGetCipherInfoEventBufferEvent::sslGetCipherNameEventBufferEvent::sslGetCipherVersionEventBufferEvent::sslGetProtocolEventBufferEvent::sslRenegotiateEventBufferEvent::sslSocketEventBufferEvent::writeEventBufferEvent::writeBufferAbout buffer event callbacksEventConfigEventConfig::avoidMethodEventConfig::__constructEventConfig::requireFeaturesEventConfig::setMaxDispatchIntervalEventDnsBaseEventDnsBase::addNameserverIpEventDnsBase::addSearchEventDnsBase::clearSearchEventDnsBase::__constructEventDnsBase::countNameserversEventDnsBase::loadHostsEventDnsBase::parseResolvConfEventDnsBase::setOptionEventDnsBase::setSearchNdotsEventHttpEventHttp::acceptEventHttp::addServerAliasEventHttp::bindEventHttp::__constructEventHttp::removeServerAliasEventHttp::setAllowedMethodsEventHttp::setCallbackEventHttp::setDefaultCallbackEventHttp::setMaxBodySizeEventHttp::setMaxHeadersSizeEventHttp::setTimeoutEventHttpConnectionEventHttpConnection::__constructEventHttpConnection::getBaseEventHttpConnection::getPeerEventHttpConnection::makeRequestEventHttpConnection::setCloseCallbackEventHttpConnection::setLocalAddressEventHttpConnection::setLocalPortEventHttpConnection::setMaxBodySizeEventHttpConnection::setMaxHeadersSizeEventHttpConnection::setRetriesEventHttpConnection::setTimeoutEventHttpRequestEventHttpRequest::addHeaderEventHttpRequest::cancelEventHttpRequest::clearHeadersEventHttpRequest::closeConnectionEventHttpRequest::__constructEventHttpRequest::findHeaderEventHttpRequest::freeEventHttpRequest::getBufferEventEventHttpRequest::getCommandEventHttpRequest::getConnectionEventHttpRequest::getHostEventHttpRequest::getInputBufferEventHttpRequest::getInputHeadersEventHttpRequest::getOutputBufferEventHttpRequest::getOutputHeadersEventHttpRequest::getResponseCodeEventHttpRequest::getUriEventHttpRequest::removeHeaderEventHttpRequest::sendErrorEventHttpRequest::sendReplyEventHttpRequest::sendReplyChunkEventHttpRequest::sendReplyEndEventHttpRequest::sendReplyStartEventListenerEventListener::__constructEventListener::disableEventListener::enableEventListener::getBaseEventListener::getSocketNameEventListener::setCallbackEventListener::setErrorCallbackEventSslContextEventSslContext::__constructEventUtilEventUtil::__constructEventUtil::getLastSocketErrnoEventUtil::getLastSocketErrorEventUtil::getSocketFdEventUtil::getSocketNameEventUtil::setSocketOptionEventUtil::sslRandPollFAM简介安装/配置需求安装运行时配置资源类型预定义常量FAM 函数fam_cancel_monitorfam_closefam_monitor_collectionfam_monitor_directoryfam_monitor_filefam_next_eventfam_openfam_pendingfam_resume_monitorfam_suspend_monitorFTP简介安装/配置需求安装运行时配置资源类型预定义常量范例基本用法FTP 函数ftp_allocftp_cdupftp_chdirftp_chmodftp_closeftp_connectftp_deleteftp_execftp_fgetftp_fputftp_get_optionftp_getftp_loginftp_mdtmftp_mkdirftp_nb_continueftp_nb_fgetftp_nb_fputftp_nb_getftp_nb_putftp_nlistftp_pasvftp_putftp_pwdftp_quitftp_rawftp_rawlistftp_renameftp_rmdirftp_set_optionftp_siteftp_sizeftp_ssl_connectftp_systypeGearman简介安装/配置需求安装运行时配置资源类型预定义常量范例Basic usageBasic Gearman client and worker, backgroundBasic Gearman client and worker, submitting tasksGearmanClientGearmanClient::addOptionsGearmanClient::addServerGearmanClient::addServersGearmanClient::addTaskGearmanClient::addTaskBackgroundGearmanClient::addTaskHighGearmanClient::addTaskHighBackgroundGearmanClient::addTaskLowGearmanClient::addTaskLowBackgroundGearmanClient::addTaskStatusGearmanClient::clearCallbacksGearmanClient::cloneGearmanClient::__constructGearmanClient::contextGearmanClient::dataGearmanClient::doGearmanClient::doBackgroundGearmanClient::doHighGearmanClient::doHighBackgroundGearmanClient::doJobHandleGearmanClient::doLowGearmanClient::doLowBackgroundGearmanClient::doNormalGearmanClient::doStatusGearmanClient::echoGearmanClient::errorGearmanClient::getErrnoGearmanClient::jobStatusgearman_job_statusGearmanClient::pingGearmanClient::removeOptionsGearmanClient::returnCodeGearmanClient::runTasksGearmanClient::setClientCallbackGearmanClient::setCompleteCallbackGearmanClient::setContextGearmanClient::setCreatedCallbackGearmanClient::setDataGearmanClient::setDataCallbackGearmanClient::setExceptionCallbackGearmanClient::setFailCallbackGearmanClient::setOptionsGearmanClient::setStatusCallbackGearmanClient::setTimeoutGearmanClient::setWarningCallbackGearmanClient::setWorkloadCallbackGearmanClient::timeoutGearmanJobGearmanJob::completeGearmanJob::__constructGearmanJob::dataGearmanJob::exceptionGearmanJob::failGearmanJob::functionNameGearmanJob::handleGearmanJob::returnCodeGearmanJob::sendCompleteGearmanJob::sendDataGearmanJob::sendExceptionGearmanJob::sendFailGearmanJob::sendStatusGearmanJob::sendWarningGearmanJob::setReturnGearmanJob::statusGearmanJob::uniqueGearmanJob::warningGearmanJob::workloadGearmanJob::workloadSizeGearmanTaskGearmanTask::__constructGearmanTask::createGearmanTask::dataGearmanTask::dataSizeGearmanTask::functionGearmanTask::functionNameGearmanTask::isKnownGearmanTask::isRunningGearmanTask::jobHandlegearman_job_handleGearmanTask::recvDataGearmanTask::returnCodeGearmanTask::sendDataGearmanTask::sendWorkloadGearmanTask::taskDenominatorGearmanTask::taskNumeratorGearmanTask::uniqueGearmanTask::uuidGearmanWorkerGearmanWorker::addFunctionGearmanWorker::addOptionsGearmanWorker::addServerGearmanWorker::addServersGearmanWorker::cloneGearmanWorker::__constructGearmanWorker::echoGearmanWorker::errorGearmanWorker::getErrnoGearmanWorker::optionsGearmanWorker::registerGearmanWorker::removeOptionsGearmanWorker::returnCodeGearmanWorker::setIdGearmanWorker::setOptionsGearmanWorker::setTimeoutGearmanWorker::timeoutGearmanWorker::unregisterGearmanWorker::unregisterAllGearmanWorker::waitGearmanWorker::workGearmanExceptionGopher简介安装/配置需求安装运行时配置资源类型预定义常量范例Basic ExampleGopher 函数gopher_parsedirGupnp简介安装/配置需求安装运行时配置资源类型预定义常量范例Browsing devices and servicesImplementing the BinaryLight deviceGupnp 函数gupnp_context_get_host_ipgupnp_context_get_portgupnp_context_get_subscription_timeoutgupnp_context_host_pathgupnp_context_newgupnp_context_set_subscription_timeoutgupnp_context_timeout_addgupnp_context_unhost_pathgupnp_control_point_browse_startgupnp_control_point_browse_stopgupnp_control_point_callback_setgupnp_control_point_newgupnp_device_action_callback_setgupnp_device_info_get_servicegupnp_device_info_getgupnp_root_device_get_availablegupnp_root_device_get_relative_locationgupnp_root_device_newgupnp_root_device_set_availablegupnp_root_device_startgupnp_root_device_stopgupnp_service_action_getgupnp_service_action_return_errorgupnp_service_action_returngupnp_service_action_setgupnp_service_freeze_notifygupnp_service_info_get_introspectiongupnp_service_info_getgupnp_service_introspection_get_state_variablegupnp_service_notifygupnp_service_proxy_action_getgupnp_service_proxy_action_setgupnp_service_proxy_add_notifygupnp_service_proxy_callback_setgupnp_service_proxy_get_subscribedgupnp_service_proxy_remove_notifygupnp_service_proxy_send_actiongupnp_service_proxy_set_subscribedgupnp_service_thaw_notifyHTTP简介安装/配置需求Installing the HTTP extension运行时配置资源类型预定义常量Request OptionsHttpDeflateStreamHttpDeflateStream::__constructHttpDeflateStream::factoryHttpDeflateStream::finishHttpDeflateStream::flushHttpDeflateStream::updateHttpInflateStreamHttpInflateStream::__constructHttpInflateStream::factoryHttpInflateStream::finishHttpInflateStream::flushHttpInflateStream::updateHttpMessageHttpMessage::addHeadersHttpMessage::__constructHttpMessage::detachHttpMessage::factoryHttpMessage::fromEnvHttpMessage::fromStringHttpMessage::getBodyHttpMessage::getHeaderHttpMessage::getHeadersHttpMessage::getHttpVersionHttpMessage::getParentMessageHttpMessage::getRequestMethodHttpMessage::getRequestUrlHttpMessage::getResponseCodeHttpMessage::getResponseStatusHttpMessage::getTypeHttpMessage::guessContentTypeHttpMessage::prependHttpMessage::reverseHttpMessage::sendHttpMessage::setBodyHttpMessage::setHeadersHttpMessage::setHttpVersionHttpMessage::setRequestMethodHttpMessage::setRequestUrlHttpMessage::setResponseCodeHttpMessage::setResponseStatusHttpMessage::setTypeHttpMessage::toMessageTypeObjectHttpMessage::toStringHttpQueryStringHttpQueryString::__constructHttpQueryString::getHttpQueryString::modHttpQueryString::setHttpQueryString::singletonHttpQueryString::toArrayHttpQueryString::toStringHttpQueryString::xlateHttpRequestHttpRequest::addCookiesHttpRequest::addHeadersHttpRequest::addPostFieldsHttpRequest::addPostFileHttpRequest::addPutDataHttpRequest::addQueryDataHttpRequest::addRawPostDataHttpRequest::addSslOptionsHttpRequest::clearHistoryHttpRequest::__constructHttpRequest::enableCookiesHttpRequest::getContentTypeHttpRequest::getCookiesHttpRequest::getHeadersHttpRequest::getHistoryHttpRequest::getMethodHttpRequest::getOptionsHttpRequest::getPostFieldsHttpRequest::getPostFilesHttpRequest::getPutDataHttpRequest::getPutFileHttpRequest::getQueryDataHttpRequest::getRawPostDataHttpRequest::getRawRequestMessageHttpRequest::getRawResponseMessageHttpRequest::getRequestMessageHttpRequest::getResponseBodyHttpRequest::getResponseCodeHttpRequest::getResponseCookiesHttpRequest::getResponseDataHttpRequest::getResponseHeaderHttpRequest::getResponseInfoHttpRequest::getResponseMessageHttpRequest::getResponseStatusHttpRequest::getSslOptionsHttpRequest::getUrlHttpRequest::resetCookiesHttpRequest::sendHttpRequest::setBodyHttpRequest::setContentTypeHttpRequest::setCookiesHttpRequest::setHeadersHttpRequest::setMethodHttpRequest::setOptionsHttpRequest::setPostFieldsHttpRequest::setPostFilesHttpRequest::setPutDataHttpRequest::setPutFileHttpRequest::setQueryDataHttpRequest::setRawPostDataHttpRequest::setSslOptionsHttpRequest::setUrlHttpRequestPoolHttpRequestPool::attachHttpRequestPool::__constructHttpRequestPool::__destructHttpRequestPool::detachHttpRequestPool::getAttachedRequestsHttpRequestPool::getFinishedRequestsHttpRequestPool::resetHttpRequestPool::sendHttpRequestPool::socketPerformHttpRequestPool::socketSelectHttpResponseHttpResponse::captureHttpResponse::getBufferSizeHttpResponse::getCacheHttpResponse::getCacheControlHttpResponse::getContentDispositionHttpResponse::getContentTypeHttpResponse::getDataHttpResponse::getETagHttpResponse::getFileHttpResponse::getGzipHttpResponse::getHeaderHttpResponse::getLastModifiedHttpResponse::getRequestBodyHttpResponse::getRequestBodyStreamHttpResponse::getRequestHeadersHttpResponse::getStreamHttpResponse::getThrottleDelayHttpResponse::guessContentTypeHttpResponse::redirectHttpResponse::sendHttpResponse::setBufferSizeHttpResponse::setCacheHttpResponse::setCacheControlHttpResponse::setContentDispositionHttpResponse::setContentTypeHttpResponse::setDataHttpResponse::setETagHttpResponse::setFileHttpResponse::setGzipHttpResponse::setHeaderHttpResponse::setLastModifiedHttpResponse::setStreamHttpResponse::setThrottleDelayHttpResponse::statusHTTP 函数http_cache_etaghttp_cache_last_modifiedhttp_chunked_decodehttp_deflatehttp_inflatehttp_build_cookiehttp_datehttp_get_request_body_streamhttp_get_request_bodyhttp_get_request_headershttp_match_etaghttp_match_modifiedhttp_match_request_headerhttp_supporthttp_negotiate_charsethttp_negotiate_content_typehttp_negotiate_languageob_deflatehandlerob_etaghandlerob_inflatehandlerhttp_parse_cookiehttp_parse_headershttp_parse_messagehttp_parse_paramshttp_persistent_handles_cleanhttp_persistent_handles_counthttp_persistent_handles_identhttp_gethttp_headhttp_post_datahttp_post_fieldshttp_put_datahttp_put_filehttp_put_streamhttp_request_body_encodehttp_request_method_existshttp_request_method_namehttp_request_method_registerhttp_request_method_unregisterhttp_requesthttp_redirecthttp_send_content_dispositionhttp_send_content_typehttp_send_datahttp_send_filehttp_send_last_modifiedhttp_send_statushttp_send_streamhttp_throttlehttp_build_strhttp_build_urlHyperwave API简介安装/配置需求安装运行时配置资源类型预定义常量Integration with ApacheHyperwave API 函数hw_api::checkinhw_api::checkouthw_api::childrenhw_api::contenthw_api::copyhw_api::dbstathw_api::dcstathw_api::dstanchorshw_api::dstofsrcanchorhw_api::findhw_api::ftstathw_api::hwstathw_api::identifyhw_api::infohw_api::inserthw_api::insertanchorhw_api::insertcollectionhw_api::insertdocumenthw_api::linkhw_api::lockhw_api::movehw_api::objecthw_api::objectbyanchorhw_api::parentshw_api::removehw_api::replacehw_api::setcommittedversionhw_api::srcanchorshw_api::srcsofdsthw_api::unlockhw_api::userhw_api::userlisthw_api_attribute::keyhw_api_attribute::langdepvaluehw_api_attribute::valuehw_api_attribute::valueshw_api_content::mimetypehw_api_content::readhw_api_error::counthw_api_error::reasonhw_api_object::assignhw_api_object::attreditablehw_api_object::counthw_api_object::inserthw_api_object::removehw_api_object::titlehw_api_object::valuehw_api_reason::descriptionhw_api_reason::typehwapi_attribute_newhwapi_content_newhwapi_hgcsphwapi_object_newLDAP简介安装/配置需求安装运行时配置资源类型预定义常量Using the PHP LDAP calls范例Basic usageLDAP 函数ldap_8859_to_t61ldap_addldap_bindldap_closeldap_compareldap_connectldap_control_paged_result_responseldap_control_paged_resultldap_count_entriesldap_deleteldap_dn2ufnldap_err2strldap_errnoldap_errorldap_escapeldap_explode_dnldap_first_attributeldap_first_entryldap_first_referenceldap_free_resultldap_get_attributesldap_get_dnldap_get_entriesldap_get_optionldap_get_values_lenldap_get_valuesldap_listldap_mod_addldap_mod_delldap_mod_replaceldap_modify_batchldap_modifyldap_next_attributeldap_next_entryldap_next_referenceldap_parse_referenceldap_parse_resultldap_readldap_renameldap_sasl_bindldap_searchldap_set_optionldap_set_rebind_procldap_sortldap_start_tlsldap_t61_to_8859ldap_unbindMemcache简介安装/配置需求安装运行时配置资源类型预定义常量范例示例MemcacheMemcache::addMemcache::addServerMemcache::closeMemcache::connectMemcache::decrementMemcache::deleteMemcache::flushMemcache::getMemcache::getExtendedStatsMemcache::getServerStatusMemcache::getStatsMemcache::getVersionMemcache::incrementMemcache::pconnectMemcache::replaceMemcache::setMemcache::setCompressThresholdMemcache::setServerParamsMemcache 函数memcache_debugMemcached简介安装/配置需求安装运行时配置资源类型预定义常量超时时间回调结果回调通读缓存回调Sessions支持MemcachedMemcached::addMemcached::addByKeyMemcached::addServerMemcached::addServersMemcached::appendMemcached::appendByKeyMemcached::casMemcached::casByKeyMemcached::__constructMemcached::decrementMemcached::decrementByKeyMemcached::deleteMemcached::deleteByKeyMemcached::deleteMultiMemcached::deleteMultiByKeyMemcached::fetchMemcached::fetchAllMemcached::flushMemcached::getMemcached::getAllKeysMemcached::getByKeyMemcached::getDelayedMemcached::getDelayedByKeyMemcached::getMultiMemcached::getMultiByKeyMemcached::getOptionMemcached::getResultCodeMemcached::getResultMessageMemcached::getServerByKeyMemcached::getServerListMemcached::getStatsMemcached::getVersionMemcached::incrementMemcached::incrementByKeyMemcached::isPersistentMemcached::isPristineMemcached::prependMemcached::prependByKeyMemcached::quitMemcached::replaceMemcached::replaceByKeyMemcached::resetServerListMemcached::setMemcached::setByKeyMemcached::setMultiMemcached::setMultiByKeyMemcached::setOptionMemcached::setOptionsMemcached::setSaslAuthDataMemcached::touchMemcached::touchByKeymqseries简介安装/配置需求安装运行时配置资源类型预定义常量mqseries 函数mqseries_backmqseries_beginmqseries_closemqseries_cmitmqseries_connmqseries_connxmqseries_discmqseries_getmqseries_inqmqseries_openmqseries_put1mqseries_putmqseries_setmqseries_strerror网络简介安装/配置需求安装运行时配置资源类型预定义常量网络 函数checkdnsrrcloselogdefine_syslog_variablesdns_check_recorddns_get_mxdns_get_recordfsockopengethostbyaddrgethostbynamegethostbynamelgethostnamegetmxrrgetprotobynamegetprotobynumbergetservbynamegetservbyportheader_register_callbackheader_removeheaderheaders_listheaders_senthttp_response_codeinet_ntopinet_ptonip2longlong2ipopenlogpfsockopensetcookiesetrawcookiesocket_get_statussocket_set_blockingsocket_set_timeoutsyslogRRD简介安装/配置需求安装运行时配置资源类型预定义常量范例Procedural PECL/rrd exampleOOP PECL/rrd exampleRRD 函数rrd_createrrd_errorrrd_fetchrrd_firstrrd_graphrrd_inforrd_lastrrd_lastupdaterrd_restorerrd_tunerrd_updaterrd_versionrrd_xportrrdc_disconnectRRDCreatorRRDCreator::addArchiveRRDCreator::addDataSourceRRDCreator::__constructRRDCreator::saveRRDGraphRRDGraph::__constructRRDGraph::saveRRDGraph::saveVerboseRRDGraph::setOptionsRRDUpdaterRRDUpdater::__constructRRDUpdater::updateSAM简介安装/配置需求安装运行时配置资源类型预定义常量范例ConnectionsMessagesMessaging operationsPublish/Subscribe and subscriptions to topicsError handlingSAM 函数SAMConnection::commitSAMConnection::connectSAMConnection::__constructSAMConnection::disconnectSAMConnection::errnoSAMConnection::errorSAMConnection::isConnectedSAMConnection::peekSAMConnection::peekAllSAMConnection::receiveSAMConnection::removeSAMConnection::rollbackSAMConnection::sendSAMConnection::setDebugSAMConnection::subscribeSAMConnection::unsubscribeSAMMessage::bodySAMMessage::__constructSAMMessage::headerSNMP简介安装/配置需求安装运行时配置资源类型预定义常量SNMP 函数snmp_get_quick_printsnmp_get_valueretrievalsnmp_read_mibsnmp_set_enum_printsnmp_set_oid_numeric_printsnmp_set_oid_output_formatsnmp_set_quick_printsnmp_set_valueretrievalsnmp2_getsnmp2_getnextsnmp2_real_walksnmp2_setsnmp2_walksnmp3_getsnmp3_getnextsnmp3_real_walksnmp3_setsnmp3_walksnmpgetsnmpgetnextsnmprealwalksnmpsetsnmpwalksnmpwalkoidSNMPSNMP::closeSNMP::__constructSNMP::getSNMP::getErrnoSNMP::getErrorSNMP::getnextSNMP::setSNMP::setSecuritySNMP::walkSNMPExceptionSockets简介安装/配置需求安装运行时配置资源类型预定义常量范例Socket ErrorsSocket 函数socket_acceptsocket_bindsocket_clear_errorsocket_closesocket_cmsg_spacesocket_connectsocket_create_listensocket_create_pairsocket_createsocket_get_optionsocket_getpeernamesocket_getsocknamesocket_import_streamsocket_last_errorsocket_listensocket_readsocket_recvsocket_recvfromsocket_recvmsgsocket_selectsocket_sendsocket_sendmsgsocket_sendtosocket_set_blocksocket_set_nonblocksocket_set_optionsocket_shutdownsocket_strerrorsocket_writeSSH2简介安装/配置需求安装运行时配置资源类型预定义常量SSH2 函数ssh2_auth_agentssh2_auth_hostbased_filessh2_auth_nonessh2_auth_passwordssh2_auth_pubkey_filessh2_connectssh2_execssh2_fetch_streamssh2_fingerprintssh2_methods_negotiatedssh2_publickey_addssh2_publickey_initssh2_publickey_listssh2_publickey_removessh2_scp_recvssh2_scp_sendssh2_sftp_chmodssh2_sftp_lstatssh2_sftp_mkdirssh2_sftp_readlinkssh2_sftp_realpathssh2_sftp_renamessh2_sftp_rmdirssh2_sftp_statssh2_sftp_symlinkssh2_sftp_unlinkssh2_sftpssh2_shellssh2_tunnelStomp简介安装/配置需求安装运行时配置资源类型范例Stomp 函数stomp_connect_errorstomp_versionStompStomp::abortstomp_abortStomp::ackstomp_ackStomp::beginstomp_beginStomp::commitstomp_commitStomp::__constructstomp_connectStomp::__destructstomp_closeStomp::errorstomp_errorStomp::getReadTimeoutstomp_get_read_timeoutStomp::getSessionIdstomp_get_session_idStomp::hasFramestomp_has_frameStomp::readFramestomp_read_frameStomp::sendstomp_sendStomp::setReadTimeoutstomp_set_read_timeoutStomp::subscribestomp_subscribeStomp::unsubscribestomp_unsubscribeStompFrameStompFrame::__constructStompExceptionStompException::getDetailsSVM简介安装/配置需求安装运行时配置资源类型范例SVMSVM::__constructSVM::crossvalidateSVM::getOptionsSVM::setOptionsSVM::trainSVMModelSVMModel::checkProbabilityModelSVMModel::__constructSVMModel::getLabelsSVMModel::getNrClassSVMModel::getSvmTypeSVMModel::getSvrProbabilitySVMModel::loadSVMModel::predict_probabilitySVMModel::predictSVMModel::saveSVN简介安装/配置需求安装运行时配置资源类型预定义常量SVN 函数svn_addsvn_auth_get_parametersvn_auth_set_parametersvn_blamesvn_catsvn_checkoutsvn_cleanupsvn_client_versionsvn_commitsvn_deletesvn_diffsvn_exportsvn_fs_abort_txnsvn_fs_apply_textsvn_fs_begin_txn2svn_fs_change_node_propsvn_fs_check_pathsvn_fs_contents_changedsvn_fs_copysvn_fs_deletesvn_fs_dir_entriessvn_fs_file_contentssvn_fs_file_lengthsvn_fs_is_dirsvn_fs_is_filesvn_fs_make_dirsvn_fs_make_filesvn_fs_node_created_revsvn_fs_node_propsvn_fs_props_changedsvn_fs_revision_propsvn_fs_revision_rootsvn_fs_txn_rootsvn_fs_youngest_revsvn_importsvn_logsvn_lssvn_mkdirsvn_repos_createsvn_repos_fs_begin_txn_for_commitsvn_repos_fs_commit_txnsvn_repos_fssvn_repos_hotcopysvn_repos_opensvn_repos_recoversvn_revertsvn_statussvn_updateTCP简介安装/配置需求安装运行时配置资源类型预定义常量TCP 函数tcpwrap_checkVarnish简介安装/配置需求安装运行时配置资源类型预定义常量范例Basic VarnishAdmin usageBasic VarnishStat usageBasic VarnishLog usageVarnishAdminVarnishAdmin::authVarnishAdmin::banVarnishAdmin::banUrlVarnishAdmin::clearPanicVarnishAdmin::connectVarnishAdmin::__constructVarnishAdmin::disconnectVarnishAdmin::getPanicVarnishAdmin::getParamsVarnishAdmin::isRunningVarnishAdmin::setCompatVarnishAdmin::setHostVarnishAdmin::setIdentVarnishAdmin::setParamVarnishAdmin::setPortVarnishAdmin::setSecretVarnishAdmin::setTimeoutVarnishAdmin::startVarnishAdmin::stopVarnishStatVarnishStat::__constructVarnishStat::getSnapshotVarnishLogVarnishLog::__constructVarnishLog::getLineVarnishLog::getTagNameYAZ简介安装/配置需求安装运行时配置资源类型预定义常量范例YAZ 函数yaz_addinfoyaz_ccl_confyaz_ccl_parseyaz_closeyaz_connectyaz_databaseyaz_elementyaz_errnoyaz_erroryaz_es_resultyaz_esyaz_get_optionyaz_hitsyaz_itemorderyaz_presentyaz_rangeyaz_recordyaz_scan_resultyaz_scanyaz_schemayaz_searchyaz_set_optionyaz_sortyaz_syntaxyaz_waitYP/NIS简介安装/配置需求安装运行时配置资源类型预定义常量YP/NIS 函数yp_allyp_catyp_err_stringyp_errnoyp_firstyp_get_default_domainyp_masteryp_matchyp_nextyp_order0MQ消息系统简介安装/配置需求ZMQZMQ::__constructZMQContextZMQContext::__constructZMQContext::getOptZMQContext::getSocketZMQContext::isPersistentZMQContext::setOptZMQSocketZMQSocket::bindZMQSocket::connectZMQSocket::__constructZMQSocket::disconnectZMQSocket::getEndpointsZMQSocket::getPersistentIdZMQSocket::getSocketTypeZMQSocket::getSockOptZMQSocket::isPersistentZMQSocket::recvZMQSocket::recvMultiZMQSocket::sendZMQSocket::sendmultiZMQSocket::setSockOptZMQSocket::unbindZMQPollZMQPoll::addZMQPoll::clearZMQPoll::countZMQPoll::getLastErrorsZMQPoll::pollZMQPoll::removeZMQDeviceZMQDevice::__constructZMQDevice::getIdleTimeoutZMQDevice::getTimerTimeoutZMQDevice::runZMQDevice::setIdleCallbackZMQDevice::setIdleTimeoutZMQDevice::setTimerCallbackZMQDevice::setTimerTimeout搜索引擎扩展mnoGoSearch简介安装/配置需求安装运行时配置资源类型预定义常量mnoGoSearch 函数udm_add_search_limitudm_alloc_agent_arrayudm_alloc_agentudm_api_versionudm_cat_listudm_cat_pathudm_check_charsetudm_clear_search_limitsudm_crc32udm_errnoudm_errorudm_findudm_free_agentudm_free_ispell_dataudm_free_resudm_get_doc_countudm_get_res_fieldudm_get_res_paramudm_hash32udm_load_ispell_dataudm_set_agent_paramSolr简介安装/配置需求安装运行时配置资源类型预定义常量Solr 函数solr_get_version范例SolrUtilsSolrUtils::digestXmlResponseSolrUtils::escapeQueryCharsSolrUtils::getSolrVersionSolrUtils::queryPhraseSolrInputDocumentSolrInputDocument::addFieldSolrInputDocument::clearSolrInputDocument::__cloneSolrInputDocument::__constructSolrInputDocument::deleteFieldSolrInputDocument::__destructSolrInputDocument::fieldExistsSolrInputDocument::getBoostSolrInputDocument::getFieldSolrInputDocument::getFieldBoostSolrInputDocument::getFieldCountSolrInputDocument::getFieldNamesSolrInputDocument::mergeSolrInputDocument::resetSolrInputDocument::setBoostSolrInputDocument::setFieldBoostSolrInputDocument::sortSolrInputDocument::toArraySolrDocumentSolrDocument::addFieldSolrDocument::clearSolrDocument::__cloneSolrDocument::__constructSolrDocument::currentSolrDocument::deleteFieldSolrDocument::__destructSolrDocument::fieldExistsSolrDocument::__getSolrDocument::getFieldSolrDocument::getFieldCountSolrDocument::getFieldNamesSolrDocument::getInputDocumentSolrDocument::__issetSolrDocument::keySolrDocument::mergeSolrDocument::nextSolrDocument::offsetExistsSolrDocument::offsetGetSolrDocument::offsetSetSolrDocument::offsetUnsetSolrDocument::resetSolrDocument::rewindSolrDocument::serializeSolrDocument::__setSolrDocument::sortSolrDocument::toArraySolrDocument::unserializeSolrDocument::__unsetSolrDocument::validSolrDocumentFieldSolrDocumentField::__constructSolrDocumentField::__destructSolrObjectSolrObject::__constructSolrObject::__destructSolrObject::getPropertyNamesSolrObject::offsetExistsSolrObject::offsetGetSolrObject::offsetSetSolrObject::offsetUnsetSolrClientSolrClient::addDocumentSolrClient::addDocumentsSolrClient::commitSolrClient::__constructSolrClient::deleteByIdSolrClient::deleteByIdsSolrClient::deleteByQueriesSolrClient::deleteByQuerySolrClient::__destructSolrClient::getByIdSolrClient::getByIdsSolrClient::getDebugSolrClient::getOptionsSolrClient::optimizeSolrClient::pingSolrClient::querySolrClient::requestSolrClient::rollbackSolrClient::setResponseWriterSolrClient::setServletSolrClient::systemSolrClient::threadsSolrResponseSolrResponse::getDigestedResponseSolrResponse::getHttpStatusSolrResponse::getHttpStatusMessageSolrResponse::getRawRequestSolrResponse::getRawRequestHeadersSolrResponse::getRawResponseSolrResponse::getRawResponseHeadersSolrResponse::getRequestUrlSolrResponse::getResponseSolrResponse::setParseModeSolrResponse::successSolrQueryResponseSolrQueryResponse::__constructSolrQueryResponse::__destructSolrUpdateResponseSolrUpdateResponse::__constructSolrUpdateResponse::__destructSolrPingResponseSolrPingResponse::__constructSolrPingResponse::__destructSolrPingResponse::getResponseSolrGenericResponseSolrGenericResponse::__constructSolrGenericResponse::__destructSolrParamsSolrParams::addSolrParams::addParamSolrParams::getSolrParams::getParamSolrParams::getParamsSolrParams::getPreparedParamsSolrParams::serializeSolrParams::setSolrParams::setParamSolrParams::toStringSolrParams::unserializeSolrModifiableParamsSolrModifiableParams::__constructSolrModifiableParams::__destructSolrQuerySolrQuery::addExpandFilterQuerySolrQuery::addExpandSortFieldSolrQuery::addFacetDateFieldSolrQuery::addFacetDateOtherSolrQuery::addFacetFieldSolrQuery::addFacetQuerySolrQuery::addFieldSolrQuery::addFilterQuerySolrQuery::addGroupFieldSolrQuery::addGroupFunctionSolrQuery::addGroupQuerySolrQuery::addGroupSortFieldSolrQuery::addHighlightFieldSolrQuery::addMltFieldSolrQuery::addMltQueryFieldSolrQuery::addSortFieldSolrQuery::addStatsFacetSolrQuery::addStatsFieldSolrQuery::collapseSolrQuery::__constructSolrQuery::__destructSolrQuery::getExpandSolrQuery::getExpandFilterQueriesSolrQuery::getExpandQuerySolrQuery::getExpandRowsSolrQuery::getExpandSortFieldsSolrQuery::getFacetSolrQuery::getFacetDateEndSolrQuery::getFacetDateFieldsSolrQuery::getFacetDateGapSolrQuery::getFacetDateHardEndSolrQuery::getFacetDateOtherSolrQuery::getFacetDateStartSolrQuery::getFacetFieldsSolrQuery::getFacetLimitSolrQuery::getFacetMethodSolrQuery::getFacetMinCountSolrQuery::getFacetMissingSolrQuery::getFacetOffsetSolrQuery::getFacetPrefixSolrQuery::getFacetQueriesSolrQuery::getFacetSortSolrQuery::getFieldsSolrQuery::getFilterQueriesSolrQuery::getGroupSolrQuery::getGroupCachePercentSolrQuery::getGroupFacetSolrQuery::getGroupFieldsSolrQuery::getGroupFormatSolrQuery::getGroupFunctionsSolrQuery::getGroupLimitSolrQuery::getGroupMainSolrQuery::getGroupNGroupsSolrQuery::getGroupOffsetSolrQuery::getGroupQueriesSolrQuery::getGroupSortFieldsSolrQuery::getGroupTruncateSolrQuery::getHighlightSolrQuery::getHighlightAlternateFieldSolrQuery::getHighlightFieldsSolrQuery::getHighlightFormatterSolrQuery::getHighlightFragmenterSolrQuery::getHighlightFragsizeSolrQuery::getHighlightHighlightMultiTermSolrQuery::getHighlightMaxAlternateFieldLengthSolrQuery::getHighlightMaxAnalyzedCharsSolrQuery::getHighlightMergeContiguousSolrQuery::getHighlightRegexMaxAnalyzedCharsSolrQuery::getHighlightRegexPatternSolrQuery::getHighlightRegexSlopSolrQuery::getHighlightRequireFieldMatchSolrQuery::getHighlightSimplePostSolrQuery::getHighlightSimplePreSolrQuery::getHighlightSnippetsSolrQuery::getHighlightUsePhraseHighlighterSolrQuery::getMltSolrQuery::getMltBoostSolrQuery::getMltCountSolrQuery::getMltFieldsSolrQuery::getMltMaxNumQueryTermsSolrQuery::getMltMaxNumTokensSolrQuery::getMltMaxWordLengthSolrQuery::getMltMinDocFrequencySolrQuery::getMltMinTermFrequencySolrQuery::getMltMinWordLengthSolrQuery::getMltQueryFieldsSolrQuery::getQuerySolrQuery::getRowsSolrQuery::getSortFieldsSolrQuery::getStartSolrQuery::getStatsSolrQuery::getStatsFacetsSolrQuery::getStatsFieldsSolrQuery::getTermsSolrQuery::getTermsFieldSolrQuery::getTermsIncludeLowerBoundSolrQuery::getTermsIncludeUpperBoundSolrQuery::getTermsLimitSolrQuery::getTermsLowerBoundSolrQuery::getTermsMaxCountSolrQuery::getTermsMinCountSolrQuery::getTermsPrefixSolrQuery::getTermsReturnRawSolrQuery::getTermsSortSolrQuery::getTermsUpperBoundSolrQuery::getTimeAllowedSolrQuery::removeExpandFilterQuerySolrQuery::removeExpandSortFieldSolrQuery::removeFacetDateFieldSolrQuery::removeFacetDateOtherSolrQuery::removeFacetFieldSolrQuery::removeFacetQuerySolrQuery::removeFieldSolrQuery::removeFilterQuerySolrQuery::removeHighlightFieldSolrQuery::removeMltFieldSolrQuery::removeMltQueryFieldSolrQuery::removeSortFieldSolrQuery::removeStatsFacetSolrQuery::removeStatsFieldSolrQuery::setEchoHandlerSolrQuery::setEchoParamsSolrQuery::setExpandSolrQuery::setExpandQuerySolrQuery::setExpandRowsSolrQuery::setExplainOtherSolrQuery::setFacetSolrQuery::setFacetDateEndSolrQuery::setFacetDateGapSolrQuery::setFacetDateHardEndSolrQuery::setFacetDateStartSolrQuery::setFacetEnumCacheMinDefaultFrequencySolrQuery::setFacetLimitSolrQuery::setFacetMethodSolrQuery::setFacetMinCountSolrQuery::setFacetMissingSolrQuery::setFacetOffsetSolrQuery::setFacetPrefixSolrQuery::setFacetSortSolrQuery::setGroupSolrQuery::setGroupCachePercentSolrQuery::setGroupFacetSolrQuery::setGroupFormatSolrQuery::setGroupLimitSolrQuery::setGroupMainSolrQuery::setGroupNGroupsSolrQuery::setGroupOffsetSolrQuery::setGroupTruncateSolrQuery::setHighlightSolrQuery::setHighlightAlternateFieldSolrQuery::setHighlightFormatterSolrQuery::setHighlightFragmenterSolrQuery::setHighlightFragsizeSolrQuery::setHighlightHighlightMultiTermSolrQuery::setHighlightMaxAlternateFieldLengthSolrQuery::setHighlightMaxAnalyzedCharsSolrQuery::setHighlightMergeContiguousSolrQuery::setHighlightRegexMaxAnalyzedCharsSolrQuery::setHighlightRegexPatternSolrQuery::setHighlightRegexSlopSolrQuery::setHighlightRequireFieldMatchSolrQuery::setHighlightSimplePostSolrQuery::setHighlightSimplePreSolrQuery::setHighlightSnippetsSolrQuery::setHighlightUsePhraseHighlighterSolrQuery::setMltSolrQuery::setMltBoostSolrQuery::setMltCountSolrQuery::setMltMaxNumQueryTermsSolrQuery::setMltMaxNumTokensSolrQuery::setMltMaxWordLengthSolrQuery::setMltMinDocFrequencySolrQuery::setMltMinTermFrequencySolrQuery::setMltMinWordLengthSolrQuery::setOmitHeaderSolrQuery::setQuerySolrQuery::setRowsSolrQuery::setShowDebugInfoSolrQuery::setStartSolrQuery::setStatsSolrQuery::setTermsSolrQuery::setTermsFieldSolrQuery::setTermsIncludeLowerBoundSolrQuery::setTermsIncludeUpperBoundSolrQuery::setTermsLimitSolrQuery::setTermsLowerBoundSolrQuery::setTermsMaxCountSolrQuery::setTermsMinCountSolrQuery::setTermsPrefixSolrQuery::setTermsReturnRawSolrQuery::setTermsSortSolrQuery::setTermsUpperBoundSolrQuery::setTimeAllowedSolrDisMaxQuerySolrDisMaxQuery::addBigramPhraseFieldSolrDisMaxQuery::addBoostQuerySolrDisMaxQuery::addPhraseFieldSolrDisMaxQuery::addQueryFieldSolrDisMaxQuery::addTrigramPhraseFieldSolrDisMaxQuery::addUserFieldSolrDisMaxQuery::__constructSolrDisMaxQuery::removeBigramPhraseFieldSolrDisMaxQuery::removeBoostQuerySolrDisMaxQuery::removePhraseFieldSolrDisMaxQuery::removeQueryFieldSolrDisMaxQuery::removeTrigramPhraseFieldSolrDisMaxQuery::removeUserFieldSolrDisMaxQuery::setBigramPhraseFieldsSolrDisMaxQuery::setBigramPhraseSlopSolrDisMaxQuery::setBoostFunctionSolrDisMaxQuery::setBoostQuerySolrDisMaxQuery::setMinimumMatchSolrDisMaxQuery::setPhraseFieldsSolrDisMaxQuery::setPhraseSlopSolrDisMaxQuery::setQueryAltSolrDisMaxQuery::setQueryPhraseSlopSolrDisMaxQuery::setTieBreakerSolrDisMaxQuery::setTrigramPhraseFieldsSolrDisMaxQuery::setTrigramPhraseSlopSolrDisMaxQuery::setUserFieldsSolrDisMaxQuery::useDisMaxQueryParserSolrDisMaxQuery::useEDisMaxQueryParserSolrCollapseFunctionSolrCollapseFunction::__constructSolrCollapseFunction::getFieldSolrCollapseFunction::getHintSolrCollapseFunction::getMaxSolrCollapseFunction::getMinSolrCollapseFunction::getNullPolicySolrCollapseFunction::getSizeSolrCollapseFunction::setFieldSolrCollapseFunction::setHintSolrCollapseFunction::setMaxSolrCollapseFunction::setMinSolrCollapseFunction::setNullPolicySolrCollapseFunction::setSizeSolrCollapseFunction::__toStringSolrExceptionSolrException::getInternalInfoSolrClientExceptionSolrClientException::getInternalInfoSolrServerExceptionSolrServerException::getInternalInfoSolrIllegalArgumentExceptionSolrIllegalArgumentException::getInternalInfoSolrIllegalOperationExceptionSolrIllegalOperationException::getInternalInfoSolrMissingMandatoryParameterExceptionSphinx简介安装/配置需求安装运行时配置资源类型预定义常量范例SphinxClientSphinxClient::addQuerySphinxClient::buildExcerptsSphinxClient::buildKeywordsSphinxClient::closeSphinxClient::__constructSphinxClient::escapeStringSphinxClient::getLastErrorSphinxClient::getLastWarningSphinxClient::openSphinxClient::querySphinxClient::resetFiltersSphinxClient::resetGroupBySphinxClient::runQueriesSphinxClient::setArrayResultSphinxClient::setConnectTimeoutSphinxClient::setFieldWeightsSphinxClient::setFilterSphinxClient::setFilterFloatRangeSphinxClient::setFilterRangeSphinxClient::setGeoAnchorSphinxClient::setGroupBySphinxClient::setGroupDistinctSphinxClient::setIDRangeSphinxClient::setIndexWeightsSphinxClient::setLimitsSphinxClient::setMatchModeSphinxClient::setMaxQueryTimeSphinxClient::setOverrideSphinxClient::setRankingModeSphinxClient::setRetriesSphinxClient::setSelectSphinxClient::setServerSphinxClient::setSortModeSphinxClient::statusSphinxClient::updateAttributesSwish简介安装/配置需求安装运行时配置资源类型预定义常量范例Basic usageSwish 函数Swish::__constructSwish::getMetaListSwish::getPropertyListSwish::prepareSwish::querySwishResult::getMetaListSwishResult::stemSwishResults::getParsedWordsSwishResults::getRemovedStopwordsSwishResults::nextResultSwishResults::seekResultSwishSearch::executeSwishSearch::resetLimitSwishSearch::setLimitSwishSearch::setPhraseDelimiterSwishSearch::setSortSwishSearch::setStructure针对服务器的扩展Apache简介安装/配置需求安装运行时配置资源类型预定义常量Apache 函数apache_child_terminateapache_get_modulesapache_get_versionapache_getenvapache_lookup_uriapache_noteapache_request_headersapache_reset_timeoutapache_response_headersapache_setenvgetallheadersvirtualFastCGI 进程管理器简介安装/配置FPM 函数fastcgi_finish_requestIIS简介安装/配置需求安装运行时配置资源类型预定义常量IIS 函数iis_add_serveriis_get_dir_securityiis_get_script_mapiis_get_server_by_commentiis_get_server_by_pathiis_get_server_rightsiis_get_service_stateiis_remove_serveriis_set_app_settingsiis_set_dir_securityiis_set_script_mapiis_set_server_rightsiis_start_serveriis_start_serviceiis_stop_serveriis_stop_serviceNSAPI简介安装/配置需求安装运行时配置资源类型预定义常量NSAPI 函数nsapi_request_headersnsapi_response_headersnsapi_virtualSession 扩展Msession简介安装/配置需求安装运行时配置资源类型预定义常量Msession 函数msession_connectmsession_countmsession_createmsession_destroymsession_disconnectmsession_findmsession_get_arraymsession_get_datamsession_getmsession_incmsession_listmsession_listvarmsession_lockmsession_pluginmsession_randstrmsession_set_arraymsession_set_datamsession_setmsession_timeoutmsession_uniqmsession_unlockSessions简介安装/配置需求安装运行时配置资源类型预定义常量范例基本用法传送会话ID自定义会话管理器Session 上传进度会话和安全Session 函数session_abortsession_cache_expiresession_cache_limitersession_commitsession_decodesession_destroysession_encodesession_get_cookie_paramssession_idsession_is_registeredsession_module_namesession_namesession_regenerate_idsession_register_shutdownsession_registersession_resetsession_save_pathsession_set_cookie_paramssession_set_save_handlersession_startsession_statussession_unregistersession_unsetsession_write_closeSessionHandlerSessionHandler::closeSessionHandler::create_sidSessionHandler::destroySessionHandler::gcSessionHandler::openSessionHandler::readSessionHandler::writeSessionHandlerInterfaceSessionHandlerInterface::closeSessionHandlerInterface::destroySessionHandlerInterface::gcSessionHandlerInterface::openSessionHandlerInterface::readSessionHandlerInterface::writeSession PgSQL简介安装/配置需求安装运行时配置资源类型Table definitions预定义常量Session PgSQL 函数session_pgsql_add_errorsession_pgsql_get_errorsession_pgsql_get_fieldsession_pgsql_resetsession_pgsql_set_fieldsession_pgsql_status文本处理BBCode简介安装/配置需求安装运行时配置资源类型预定义常量BBCode 函数bbcode_add_elementbbcode_add_smileybbcode_createbbcode_destroybbcode_parsebbcode_set_arg_parserbbcode_set_flagsPCRE简介安装/配置需求安装运行时配置资源类型预定义常量范例PCRE模式PCRE 正则语法简介分隔符元字符转义序列(反斜线)Unicode字符属性句点字符类(方括号)可选路径(|)内部选项设置子组(子模式)重复/量词后向引用断言一次性子组条件子组注释递归模式性能正则表达式模式中可用的模式修饰符与 perl 的不同之处与POSIX正则表达式的不同PCRE 函数preg_filterpreg_greppreg_last_errorpreg_match_allpreg_matchpreg_quotepreg_replace_callback_arraypreg_replace_callbackpreg_replacepreg_splitPOSIX Regex简介安装/配置需求安装运行时配置资源类型预定义常量范例POSIX Regex 函数ereg_replaceeregeregi_replaceeregisplitsplitisql_regcasessdeep简介安装/配置需求安装运行时配置资源类型预定义常量ssdeep 函数ssdeep_fuzzy_comparessdeep_fuzzy_hash_filenamessdeep_fuzzy_hash字符串简介安装/配置需求安装运行时配置资源类型预定义常量字符串 函数addcslashesaddslashesbin2hexchopchrchunk_splitconvert_cyr_stringconvert_uudecodeconvert_uuencodecount_charscrc32cryptechoexplodefprintfget_html_translation_tablehebrevhebrevchex2binhtml_entity_decodehtmlentitieshtmlspecialchars_decodehtmlspecialcharsimplodejoinlcfirstlevenshteinlocaleconvltrimmd5_filemd5metaphonemoney_formatnl_langinfonl2brnumber_formatordparse_strprintprintfquoted_printable_decodequoted_printable_encodequotemetartrimsetlocalesha1_filesha1similar_textsoundexsprintfsscanfstr_getcsvstr_ireplacestr_padstr_repeatstr_replacestr_rot13str_shufflestr_splitstr_word_countstrcasecmpstrchrstrcmpstrcollstrcspnstrip_tagsstripcslashesstriposstripslashesstristrstrlenstrnatcasecmpstrnatcmpstrncasecmpstrncmpstrpbrkstrposstrrchrstrrevstrriposstrrposstrspnstrstrstrtokstrtolowerstrtoupperstrtrsubstr_comparesubstr_countsubstr_replacesubstrtrimucfirstucwordsvfprintfvprintfvsprintfwordwrap更新日志变量与类型相关扩展数组简介安装/配置需求安装运行时配置资源类型预定义常量对数组进行排序数组 函数array_change_key_casearray_chunkarray_columnarray_combinearray_count_valuesarray_diff_assocarray_diff_keyarray_diff_uassocarray_diff_ukeyarray_diffarray_fill_keysarray_fillarray_filterarray_fliparray_intersect_assocarray_intersect_keyarray_intersect_uassocarray_intersect_ukeyarray_intersectarray_key_existsarray_keysarray_maparray_merge_recursivearray_mergearray_multisortarray_padarray_poparray_productarray_pusharray_randarray_reducearray_replace_recursivearray_replacearray_reversearray_searcharray_shiftarray_slicearray_splicearray_sumarray_udiff_assocarray_udiff_uassocarray_udiffarray_uintersect_assocarray_uintersect_uassocarray_uintersectarray_uniquearray_unshiftarray_valuesarray_walk_recursivearray_walkarrayarsortasortcompactcountcurrenteachendextractin_arraykey_existskeykrsortksortlistnatcasesortnatsortnextposprevrangeresetrsortshufflesizeofsortuasortuksortusort类/对象简介安装/配置需求安装运行时配置资源类型预定义常量范例类/对象 函数__autoloadcall_user_method_arraycall_user_methodclass_aliasclass_existsget_called_classget_class_methodsget_class_varsget_classget_declared_classesget_declared_interfacesget_declared_traitsget_object_varsget_parent_classinterface_existsis_ais_subclass_ofmethod_existsproperty_existstrait_existsClasskit简介安装/配置需求安装运行时配置资源类型预定义常量Classkit 函数classkit_importclasskit_method_addclasskit_method_copyclasskit_method_redefineclasskit_method_removeclasskit_method_renameCtype简介安装/配置需求安装运行时配置资源类型预定义常量Ctype 函数ctype_alnumctype_alphactype_cntrlctype_digitctype_graphctype_lowerctype_printctype_punctctype_spacectype_upperctype_xdigitFilter简介安装/配置需求安装运行时配置资源类型Types of filtersValidate filtersSanitize filtersOther filtersFilter flags预定义常量范例ValidationSanitizationFilter 函数filter_has_varfilter_idfilter_input_arrayfilter_inputfilter_listfilter_var_arrayfilter_varFunction Handling简介安装/配置需求安装运行时配置资源类型预定义常量Function handling 函数call_user_func_arraycall_user_funccreate_functionforward_static_call_arrayforward_static_callfunc_get_argfunc_get_argsfunc_num_argsfunction_existsget_defined_functionsregister_shutdown_functionregister_tick_functionunregister_tick_functionQuickhash简介安装/配置需求安装运行时配置预定义常量范例QuickHashIntSetQuickHashIntSet::addQuickHashIntSet::__constructQuickHashIntSet::deleteQuickHashIntSet::existsQuickHashIntSet::getSizeQuickHashIntSet::loadFromFileQuickHashIntSet::loadFromStringQuickHashIntSet::saveToFileQuickHashIntSet::saveToStringQuickHashIntHashQuickHashIntHash::addQuickHashIntHash::__constructQuickHashIntHash::deleteQuickHashIntHash::existsQuickHashIntHash::getQuickHashIntHash::getSizeQuickHashIntHash::loadFromFileQuickHashIntHash::loadFromStringQuickHashIntHash::saveToFileQuickHashIntHash::saveToStringQuickHashIntHash::setQuickHashIntHash::updateQuickHashStringIntHashQuickHashStringIntHash::addQuickHashStringIntHash::__constructQuickHashStringIntHash::deleteQuickHashStringIntHash::existsQuickHashStringIntHash::getQuickHashStringIntHash::getSizeQuickHashStringIntHash::loadFromFileQuickHashStringIntHash::loadFromStringQuickHashStringIntHash::saveToFileQuickHashStringIntHash::saveToStringQuickHashStringIntHash::setQuickHashStringIntHash::updateQuickHashIntStringHashQuickHashIntStringHash::addQuickHashIntStringHash::__constructQuickHashIntStringHash::deleteQuickHashIntStringHash::existsQuickHashIntStringHash::getQuickHashIntStringHash::getSizeQuickHashIntStringHash::loadFromFileQuickHashIntStringHash::loadFromStringQuickHashIntStringHash::saveToFileQuickHashIntStringHash::saveToStringQuickHashIntStringHash::setQuickHashIntStringHash::update反射简介安装/配置需求安装运行时配置资源类型预定义常量范例扩展ReflectionReflection::exportReflection::getModifierNamesReflectionClassReflectionClass::__constructReflectionClass::exportReflectionClass::getConstantReflectionClass::getConstantsReflectionClass::getConstructorReflectionClass::getDefaultPropertiesReflectionClass::getDocCommentReflectionClass::getEndLineReflectionClass::getExtensionReflectionClass::getExtensionNameReflectionClass::getFileNameReflectionClass::getInterfaceNamesReflectionClass::getInterfacesReflectionClass::getMethodReflectionClass::getMethodsReflectionClass::getModifiersReflectionClass::getNameReflectionClass::getNamespaceNameReflectionClass::getParentClassReflectionClass::getPropertiesReflectionClass::getPropertyReflectionClass::getShortNameReflectionClass::getStartLineReflectionClass::getStaticPropertiesReflectionClass::getStaticPropertyValueReflectionClass::getTraitAliasesReflectionClass::getTraitNamesReflectionClass::getTraitsReflectionClass::hasConstantReflectionClass::hasMethodReflectionClass::hasPropertyReflectionClass::implementsInterfaceReflectionClass::inNamespaceReflectionClass::isAbstractReflectionClass::isCloneableReflectionClass::isFinalReflectionClass::isInstanceReflectionClass::isInstantiableReflectionClass::isInterfaceReflectionClass::isInternalReflectionClass::isIterateableReflectionClass::isSubclassOfReflectionClass::isTraitReflectionClass::isUserDefinedReflectionClass::newInstanceReflectionClass::newInstanceArgsReflectionClass::newInstanceWithoutConstructorReflectionClass::setStaticPropertyValueReflectionClass::__toStringReflectionZendExtensionReflectionZendExtension::__cloneReflectionZendExtension::__constructReflectionZendExtension::exportReflectionZendExtension::getAuthorReflectionZendExtension::getCopyrightReflectionZendExtension::getNameReflectionZendExtension::getURLReflectionZendExtension::getVersionReflectionZendExtension::__toStringReflectionExtensionReflectionExtension::__cloneReflectionExtension::__constructReflectionExtension::exportReflectionExtension::getClassesReflectionExtension::getClassNamesReflectionExtension::getConstantsReflectionExtension::getDependenciesReflectionExtension::getFunctionsReflectionExtension::getINIEntriesReflectionExtension::getNameReflectionExtension::getVersionReflectionExtension::infoReflectionExtension::isPersistentReflectionExtension::isTemporaryReflectionExtension::__toStringReflectionFunctionReflectionFunction::__constructReflectionFunction::exportReflectionFunction::getClosureReflectionFunction::invokeReflectionFunction::invokeArgsReflectionFunction::isDisabledReflectionFunction::__toStringReflectionFunctionAbstractReflectionFunctionAbstract::__cloneReflectionFunctionAbstract::getClosureScopeClassReflectionFunctionAbstract::getClosureThisReflectionFunctionAbstract::getDocCommentReflectionFunctionAbstract::getEndLineReflectionFunctionAbstract::getExtensionReflectionFunctionAbstract::getExtensionNameReflectionFunctionAbstract::getFileNameReflectionFunctionAbstract::getNameReflectionFunctionAbstract::getNamespaceNameReflectionFunctionAbstract::getNumberOfParametersReflectionFunctionAbstract::getNumberOfRequiredParametersReflectionFunctionAbstract::getParametersReflectionFunctionAbstract::getReturnTypeReflectionFunctionAbstract::getShortNameReflectionFunctionAbstract::getStartLineReflectionFunctionAbstract::getStaticVariablesReflectionFunctionAbstract::hasReturnTypeReflectionFunctionAbstract::inNamespaceReflectionFunctionAbstract::isClosureReflectionFunctionAbstract::isDeprecatedReflectionFunctionAbstract::isGeneratorReflectionFunctionAbstract::isInternalReflectionFunctionAbstract::isUserDefinedReflectionFunctionAbstract::isVariadicReflectionFunctionAbstract::returnsReferenceReflectionFunctionAbstract::__toStringReflectionMethodReflectionMethod::__constructReflectionMethod::exportReflectionMethod::getClosureReflectionMethod::getDeclaringClassReflectionMethod::getModifiersReflectionMethod::getPrototypeReflectionMethod::invokeReflectionMethod::invokeArgsReflectionMethod::isAbstractReflectionMethod::isConstructorReflectionMethod::isDestructorReflectionMethod::isFinalReflectionMethod::isPrivateReflectionMethod::isProtectedReflectionMethod::isPublicReflectionMethod::isStaticReflectionMethod::setAccessibleReflectionMethod::__toStringReflectionObjectReflectionObject::__constructReflectionObject::exportReflectionParameterReflectionParameter::allowsNullReflectionParameter::canBePassedByValueReflectionParameter::__cloneReflectionParameter::__constructReflectionParameter::exportReflectionParameter::getClassReflectionParameter::getDeclaringClassReflectionParameter::getDeclaringFunctionReflectionParameter::getDefaultValueReflectionParameter::getDefaultValueConstantNameReflectionParameter::getNameReflectionParameter::getPositionReflectionParameter::getTypeReflectionParameter::hasTypeReflectionParameter::isArrayReflectionParameter::isCallableReflectionParameter::isDefaultValueAvailableReflectionParameter::isDefaultValueConstantReflectionParameter::isOptionalReflectionParameter::isPassedByReferenceReflectionParameter::isVariadicReflectionParameter::__toStringReflectionPropertyReflectionProperty::__cloneReflectionProperty::__constructReflectionProperty::exportReflectionProperty::getDeclaringClassReflectionProperty::getDocCommentReflectionProperty::getModifiersReflectionProperty::getNameReflectionProperty::getValueReflectionProperty::isDefaultReflectionProperty::isPrivateReflectionProperty::isProtectedReflectionProperty::isPublicReflectionProperty::isStaticReflectionProperty::setAccessibleReflectionProperty::setValueReflectionProperty::__toStringReflectorReflector::exportReflector::__toStringReflectionExceptionVariable handling简介安装/配置需求安装运行时配置资源类型预定义常量Variable handling 函数boolvaldebug_zval_dumpdoublevalemptyfloatvalget_defined_varsget_resource_typegettypeimport_request_variablesintvalis_arrayis_boolis_callableis_doubleis_floatis_intis_integeris_longis_nullis_numericis_objectis_realis_resourceis_scalaris_stringissetprint_rserializesettypestrvalunserializeunsetvar_dumpvar_exportWeb 服务OAuth简介安装/配置需求安装运行时配置资源类型预定义常量范例FireEagleOAuth 函数oauth_get_sbsoauth_urlencodeOAuthOAuth::__constructOAuth::__destructOAuth::disableDebugOAuth::disableRedirectsOAuth::disableSSLChecksOAuth::enableDebugOAuth::enableRedirectsOAuth::enableSSLChecksOAuth::fetchOAuth::generateSignatureOAuth::getAccessTokenOAuth::getCAPathOAuth::getLastResponseOAuth::getLastResponseHeadersOAuth::getLastResponseInfoOAuth::getRequestHeaderOAuth::getRequestTokenOAuth::setAuthTypeOAuth::setCAPathOAuth::setNonceOAuth::setRequestEngineOAuth::setRSACertificateOAuth::setSSLChecksOAuth::setTimestampOAuth::setTokenOAuth::setVersionOAuthProviderOAuthProvider::addRequiredParameterOAuthProvider::callconsumerHandlerOAuthProvider::callTimestampNonceHandlerOAuthProvider::calltokenHandlerOAuthProvider::checkOAuthRequestOAuthProvider::__constructOAuthProvider::consumerHandlerOAuthProvider::generateTokenOAuthProvider::is2LeggedEndpointOAuthProvider::isRequestTokenEndpointOAuthProvider::removeRequiredParameterOAuthProvider::reportProblemOAuthProvider::setParamOAuthProvider::setRequestTokenPathOAuthProvider::timestampNonceHandlerOAuthProvider::tokenHandlerOAuthExceptionSCA简介安装/配置需求安装运行时配置资源类型预定义常量范例The structure of a Service ComponentObtaining a proxy for another Service ComponentCalling another Service ComponentLocating and calling services from a script which is not an SCA ComponentExposing a Service Component as a Web serviceDeploying an SCA componentObtaining the WSDL for an SCA component offering a Service as a Web serviceUnderstanding how the WSDL is generatedWorking with Data StructuresError handlingSCA 函数SCA::createDataObjectSCA::getServiceSCA_LocalProxy::createDataObjectSCA_SoapProxy::createDataObjectSOAP简介安装/配置需求安装运行时配置资源类型预定义常量SOAP 函数is_soap_faultuse_soap_error_handlerSoapClientSoapClient::__callSoapClient::__constructSoapClient::__doRequestSoapClient::__getFunctionsSoapClient::__getLastRequestSoapClient::__getLastRequestHeadersSoapClient::__getLastResponseSoapClient::__getLastResponseHeadersSoapClient::__getTypesSoapClient::__setCookieSoapClient::__setLocationSoapClient::__setSoapHeadersSoapClient::__soapCallSoapClient::SoapClientSoapServerSoapServer::addFunctionSoapServer::addSoapHeaderSoapServer::__constructSoapServer::faultSoapServer::getFunctionsSoapServer::handleSoapServer::setClassSoapServer::setObjectSoapServer::setPersistenceSoapServer::SoapServerSoapFaultSoapFault::__constructSoapFault::SoapFaultSoapFault::__toStringSoapHeaderSoapHeader::__constructSoapHeader::SoapHeaderSoapParamSoapParam::__constructSoapParam::SoapParamSoapVarSoapVar::__constructSoapVar::SoapVarYar简介安装/配置需求安装运行时配置资源类型预定义常量范例Yar_ServerYar_Server::__constructYar_Server::handleYar_ClientYar_Client::__callYar_Client::__constructYar_Client::setOptYar_Concurrent_ClientYar_Concurrent_Client::callYar_Concurrent_Client::loopYar_Concurrent_Client::resetYar_Server_ExceptionYar_Server_Exception::getTypeYar_Client_ExceptionYar_Client_Exception::getTypeXML-RPC简介安装/配置需求安装运行时配置资源类型预定义常量XML-RPC 函数xmlrpc_decode_requestxmlrpc_decodexmlrpc_encode_requestxmlrpc_encodexmlrpc_get_typexmlrpc_is_faultxmlrpc_parse_method_descriptionsxmlrpc_server_add_introspection_dataxmlrpc_server_call_methodxmlrpc_server_createxmlrpc_server_destroyxmlrpc_server_register_introspection_callbackxmlrpc_server_register_methodxmlrpc_set_typeWindows 专用扩展COM简介安装/配置需求安装运行时配置资源类型预定义常量Errors and error handling范例For EachArrays and Array-style COM propertiesCOMDOTNETVARIANTCOM 函数com_create_guidcom_event_sinkcom_get_active_objectcom_load_typelibcom_message_pumpcom_print_typeinfovariant_absvariant_addvariant_andvariant_castvariant_catvariant_cmpvariant_date_from_timestampvariant_date_to_timestampvariant_divvariant_eqvvariant_fixvariant_get_typevariant_idivvariant_impvariant_intvariant_modvariant_mulvariant_negvariant_notvariant_orvariant_powvariant_roundvariant_set_typevariant_setvariant_subvariant_xorwin32ps简介安装/配置需求安装运行时配置资源类型预定义常量范例Win32ps exampleswin32ps 函数win32_ps_list_procswin32_ps_stat_memwin32_ps_stat_procwin32service简介安装/配置需求安装运行时配置资源类型预定义常量Win32Service Service Type BitmasksWin32Service Service Status ConstantsWin32Service Service Control Message ConstantsWin32Service Service Control Message Accepted BitmasksWin32Service Service Start Type ConstantsWin32Service Service Error Control ConstantsWin32Service Service Flag ConstantsWin32 Error CodesWin32 Base Priority Classes范例win32service 函数win32_continue_servicewin32_create_servicewin32_delete_servicewin32_get_last_control_messagewin32_pause_servicewin32_query_service_statuswin32_set_service_statuswin32_start_service_ctrl_dispatcherwin32_start_servicewin32_stop_serviceXML 操作DOM简介安装/配置需求安装运行时配置资源类型预定义常量范例DOMAttrDOMAttr::__constructDOMAttr::isIdDOMCdataSectionDOMCdataSection::__constructDOMCharacterDataDOMCharacterData::appendDataDOMCharacterData::deleteDataDOMCharacterData::insertDataDOMCharacterData::replaceDataDOMCharacterData::substringDataDOMCommentDOMComment::__constructDOMDocumentDOMDocument::__constructDOMDocument::createAttributeDOMDocument::createAttributeNSDOMDocument::createCDATASectionDOMDocument::createCommentDOMDocument::createDocumentFragmentDOMDocument::createElementDOMDocument::createElementNSDOMDocument::createEntityReferenceDOMDocument::createProcessingInstructionDOMDocument::createTextNodeDOMDocument::getElementByIdDOMDocument::getElementsByTagNameDOMDocument::getElementsByTagNameNSDOMDocument::importNodeDOMDocument::loadDOMDocument::loadHTMLDOMDocument::loadHTMLFileDOMDocument::loadXMLDOMDocument::normalizeDocumentDOMDocument::registerNodeClassDOMDocument::relaxNGValidateDOMDocument::relaxNGValidateSourceDOMDocument::saveDOMDocument::saveHTMLDOMDocument::saveHTMLFileDOMDocument::saveXMLDOMDocument::schemaValidateDOMDocument::schemaValidateSourceDOMDocument::validateDOMDocument::xincludeDOMDocumentFragmentDOMDocumentFragment::appendXMLDOMDocumentTypeDOMElementDOMElement::__constructDOMElement::getAttributeDOMElement::getAttributeNodeDOMElement::getAttributeNodeNSDOMElement::getAttributeNSDOMElement::getElementsByTagNameDOMElement::getElementsByTagNameNSDOMElement::hasAttributeDOMElement::hasAttributeNSDOMElement::removeAttributeDOMElement::removeAttributeNodeDOMElement::removeAttributeNSDOMElement::setAttributeDOMElement::setAttributeNodeDOMElement::setAttributeNodeNSDOMElement::setAttributeNSDOMElement::setIdAttributeDOMElement::setIdAttributeNodeDOMElement::setIdAttributeNSDOMEntityDOMEntityReferenceDOMEntityReference::__constructDOMExceptionDOMImplementationDOMImplementation::__constructDOMImplementation::createDocumentDOMImplementation::createDocumentTypeDOMImplementation::hasFeatureDOMNamedNodeMapDOMNamedNodeMap::getNamedItemDOMNamedNodeMap::getNamedItemNSDOMNamedNodeMap::itemDOMNodeDOMNode::appendChildDOMNode::C14NDOMNode::C14NFileDOMNode::cloneNodeDOMNode::getLineNoDOMNode::getNodePathDOMNode::hasAttributesDOMNode::hasChildNodesDOMNode::insertBeforeDOMNode::isDefaultNamespaceDOMNode::isSameNodeDOMNode::isSupportedDOMNode::lookupNamespaceURIDOMNode::lookupPrefixDOMNode::normalizeDOMNode::removeChildDOMNode::replaceChildDOMNodeListDOMNodelist::itemDOMNotationDOMProcessingInstructionDOMProcessingInstruction::__constructDOMTextDOMText::__constructDOMText::isWhitespaceInElementContentDOMText::splitTextDOMXPathDOMXPath::__constructDOMXPath::evaluateDOMXPath::queryDOMXPath::registerNamespaceDOMXPath::registerPhpFunctionsDOM 函数dom_import_simplexmllibxml简介安装/配置需求安装运行时配置资源类型预定义常量libXMLErrorlibxml 函数libxml_clear_errorslibxml_disable_entity_loaderlibxml_get_errorslibxml_get_last_errorlibxml_set_external_entity_loaderlibxml_set_streams_contextlibxml_use_internal_errorsSDO简介安装/配置需求安装运行时配置资源类型预定义常量Limitations范例Basic usageSetting and Getting Property ValuesWorking with Sequenced Data ObjectsReflecting on Service Data ObjectsSDO 函数SDO_DAS_ChangeSummary::beginLoggingSDO_DAS_ChangeSummary::endLoggingSDO_DAS_ChangeSummary::getChangeTypeSDO_DAS_ChangeSummary::getChangedDataObjectsSDO_DAS_ChangeSummary::getOldContainerSDO_DAS_ChangeSummary::getOldValuesSDO_DAS_ChangeSummary::isLoggingSDO_DAS_DataFactory::addPropertyToTypeSDO_DAS_DataFactory::addTypeSDO_DAS_DataFactory::getDataFactorySDO_DAS_DataObject::getChangeSummarySDO_DAS_Setting::getListIndexSDO_DAS_Setting::getPropertyIndexSDO_DAS_Setting::getPropertyNameSDO_DAS_Setting::getValueSDO_DAS_Setting::isSetSDO_DataFactory::createSDO_DataObject::clearSDO_DataObject::createDataObjectSDO_DataObject::getContainerSDO_DataObject::getSequenceSDO_DataObject::getTypeNameSDO_DataObject::getTypeNamespaceURISDO_Exception::getCauseSDO_List::insertSDO_Model_Property::getContainingTypeSDO_Model_Property::getDefaultSDO_Model_Property::getNameSDO_Model_Property::getTypeSDO_Model_Property::isContainmentSDO_Model_Property::isManySDO_Model_ReflectionDataObject::__constructSDO_Model_ReflectionDataObject::exportSDO_Model_ReflectionDataObject::getContainmentPropertySDO_Model_ReflectionDataObject::getInstancePropertiesSDO_Model_ReflectionDataObject::getTypeSDO_Model_Type::getBaseTypeSDO_Model_Type::getNameSDO_Model_Type::getNamespaceURISDO_Model_Type::getPropertiesSDO_Model_Type::getPropertySDO_Model_Type::isAbstractTypeSDO_Model_Type::isDataTypeSDO_Model_Type::isInstanceSDO_Model_Type::isOpenTypeSDO_Model_Type::isSequencedTypeSDO_Sequence::getPropertySDO_Sequence::insertSDO_Sequence::moveSDO-DAS-Relational简介安装/配置需求安装运行时配置资源类型预定义常量范例Creating, retrieving, updating and deleting dataSpecifying the metadataOne-table examplesTwo-table examplesThree-table exampleLimitationsSDO-DAS-Relational 函数SDO_DAS_Relational::applyChangesSDO_DAS_Relational::__constructSDO_DAS_Relational::createRootDataObjectSDO_DAS_Relational::executePreparedQuerySDO_DAS_Relational::executeQuerySDO DAS XML简介安装/配置需求安装运行时配置资源类型预定义常量范例SDO DAS XML 函数SDO_DAS_XML::addTypesSDO_DAS_XML::createSDO_DAS_XML::createDataObjectSDO_DAS_XML::createDocumentSDO_DAS_XML::loadFileSDO_DAS_XML::loadStringSDO_DAS_XML::saveFileSDO_DAS_XML::saveStringSDO_DAS_XML_Document::getRootDataObjectSDO_DAS_XML_Document::getRootElementNameSDO_DAS_XML_Document::getRootElementURISDO_DAS_XML_Document::setEncodingSDO_DAS_XML_Document::setXMLDeclarationSDO_DAS_XML_Document::setXMLVersionSimpleXML简介安装/配置需求安装运行时配置资源类型预定义常量范例Basic SimpleXML usageDealing with XML errorsSimpleXMLElementSimpleXMLElement::addAttributeSimpleXMLElement::addChildSimpleXMLElement::asXMLSimpleXMLElement::attributesSimpleXMLElement::childrenSimpleXMLElement::__constructSimpleXMLElement::countSimpleXMLElement::getDocNamespacesSimpleXMLElement::getNameSimpleXMLElement::getNamespacesSimpleXMLElement::registerXPathNamespaceSimpleXMLElement::saveXMLSimpleXMLElement::__toStringSimpleXMLElement::xpathSimpleXMLIteratorSimpleXMLIterator::currentSimpleXMLIterator::getChildrenSimpleXMLIterator::hasChildrenSimpleXMLIterator::keySimpleXMLIterator::nextSimpleXMLIterator::rewindSimpleXMLIterator::validSimpleXML 函数simplexml_import_domsimplexml_load_filesimplexml_load_stringWDDX简介安装/配置需求安装运行时配置资源类型预定义常量范例wddx examplesWDDX 函数wddx_add_varswddx_deserializewddx_packet_endwddx_packet_startwddx_serialize_valuewddx_serialize_varsXMLDiff简介安装/配置需求安装XMLDiff\BaseXMLDiff\Base::__constructXMLDiff\Base::diffXMLDiff\Base::mergeXMLDiff\DOMXMLDiff\DOM::diffXMLDiff\DOM::mergeXMLDiff\MemoryXMLDiff\Memory::diffXMLDiff\Memory::mergeXMLDiff\FileXMLDiff\File::diffXMLDiff\File::mergeXML 解析器简介安装/配置需求安装运行时配置资源类型预定义常量事件处理器Case Folding(大写转换)错误代码字符编码范例XML 元素结构例程XML 标签映射例程XML 外部实体例程XML 解析器函数utf8_decodeutf8_encodexml_error_stringxml_get_current_byte_indexxml_get_current_column_numberxml_get_current_line_numberxml_get_error_codexml_parse_into_structxml_parsexml_parser_create_nsxml_parser_createxml_parser_freexml_parser_get_optionxml_parser_set_optionxml_set_character_data_handlerxml_set_default_handlerxml_set_element_handlerxml_set_end_namespace_decl_handlerxml_set_external_entity_ref_handlerxml_set_notation_decl_handlerxml_set_objectxml_set_processing_instruction_handlerxml_set_start_namespace_decl_handlerxml_set_unparsed_entity_decl_handlerXMLReader简介安装/配置需求安装运行时配置资源类型XMLReaderXMLReader::closeXMLReader::expandXMLReader::getAttributeXMLReader::getAttributeNoXMLReader::getAttributeNsXMLReader::getParserPropertyXMLReader::isValidXMLReader::lookupNamespaceXMLReader::moveToAttributeXMLReader::moveToAttributeNoXMLReader::moveToAttributeNsXMLReader::moveToElementXMLReader::moveToFirstAttributeXMLReader::moveToNextAttributeXMLReader::nextXMLReader::openXMLReader::readXMLReader::readInnerXMLXMLReader::readOuterXMLXMLReader::readStringXMLReader::setParserPropertyXMLReader::setRelaxNGSchemaXMLReader::setRelaxNGSchemaSourceXMLReader::setSchemaXMLReader::XMLXMLWriter简介安装/配置需求安装运行时配置资源类型预定义常量XMLWriter 函数XMLWriter::endAttributexmlwriter_end_attributeXMLWriter::endCDataxmlwriter_end_cdataXMLWriter::endCommentxmlwriter_end_commentXMLWriter::endDocumentxmlwriter_end_documentXMLWriter::endDTDAttlistxmlwriter_end_dtd_attlistXMLWriter::endDTDElementxmlwriter_end_dtd_elementXMLWriter::endDTDEntityxmlwriter_end_dtd_entityXMLWriter::endDTDxmlwriter_end_dtdXMLWriter::endElementxmlwriter_end_elementXMLWriter::endPIxmlwriter_end_piXMLWriter::flushxmlwriter_flushXMLWriter::fullEndElementxmlwriter_full_end_elementXMLWriter::openMemoryxmlwriter_open_memoryXMLWriter::openURIxmlwriter_open_uriXMLWriter::outputMemoryxmlwriter_output_memoryXMLWriter::setIndentStringxmlwriter_set_indent_stringXMLWriter::setIndentxmlwriter_set_indentXMLWriter::startAttributeNSxmlwriter_start_attribute_nsXMLWriter::startAttributexmlwriter_start_attributeXMLWriter::startCDataxmlwriter_start_cdataXMLWriter::startCommentxmlwriter_start_commentXMLWriter::startDocumentxmlwriter_start_documentXMLWriter::startDTDAttlistxmlwriter_start_dtd_attlistXMLWriter::startDTDElementxmlwriter_start_dtd_elementXMLWriter::startDTDEntityxmlwriter_start_dtd_entityXMLWriter::startDTDxmlwriter_start_dtdXMLWriter::startElementNSxmlwriter_start_element_nsXMLWriter::startElementxmlwriter_start_elementXMLWriter::startPIxmlwriter_start_piXMLWriter::textxmlwriter_textXMLWriter::writeAttributeNSxmlwriter_write_attribute_nsXMLWriter::writeAttributexmlwriter_write_attributeXMLWriter::writeCDataxmlwriter_write_cdataXMLWriter::writeCommentxmlwriter_write_commentXMLWriter::writeDTDAttlistxmlwriter_write_dtd_attlistXMLWriter::writeDTDElementxmlwriter_write_dtd_elementXMLWriter::writeDTDEntityxmlwriter_write_dtd_entityXMLWriter::writeDTDxmlwriter_write_dtdXMLWriter::writeElementNSxmlwriter_write_element_nsXMLWriter::writeElementxmlwriter_write_elementXMLWriter::writePIxmlwriter_write_piXMLWriter::writeRawxmlwriter_write_rawXSL简介安装/配置需求安装运行时配置资源类型预定义常量范例Example collection.xml and collection.xsl filesError handling with libxml error handling functionsXSLTProcessorXSLTProcessor::__constructXSLTProcessor::getParameterXsltProcessor::getSecurityPrefsXSLTProcessor::hasExsltSupportXSLTProcessor::importStylesheetXSLTProcessor::registerPHPFunctionsXSLTProcessor::removeParameterXSLTProcessor::setParameterXSLTProcessor::setProfilingXsltProcessor::setSecurityPrefsXSLTProcessor::transformToDocXSLTProcessor::transformToUriXSLTProcessor::transformToXMLPHP 核心:骇客指南序言内存管理内存管理基础数据持久化线程安全的资源管理器变量的使用介绍创建变量并设置值函数的编写类和对象的使用资源的使用INI 设置的使用流的使用"counter" 扩展 - 一个连续的实例安装/配置简介运行时配置资源类型预定义常量范例简单接口扩展接口对象化接口CounterCounter::__constructCounter::getValueCounter::bumpValueCounter::resetValueCounter::getMetaCounter::getNamedCounter::setCounterClassBasiccounter_getcounter_bumpcounter_resetExtendedcounter_createcounter_get_valuecounter_bump_valuecounter_reset_valuecounter_get_metacounter_get_namedPHP 5 构建系统PHP 扩展开发构建ext_skel 脚本与 UNIX 构建系统交互: config.m4使用 Windows 构建系统:config.w32扩展的结构组成扩展的文件Basic constructsThe zend_module structureExtension globalsLife cycle of an extensionTesting an extensionPDO 驱动前提条件配置与管理Fleshing out your skeletonBuildingTestingPackaging and distributionpdo_dbh_t definitionpdo_stmt_t definitionConstantsError handling扩展相关 FAQZend Engine 2 API 参考Zend Engine 2 操作码列表Opcode Descriptions and ExamplesADDADD_ARRAY_ELEMENTADD_CHARADD_INTERFACEADD_STRINGADD_VARASSIGNASSIGN_ADDASSIGN_BW_ANDASSIGN_BW_ORASSIGN_BW_XORASSIGN_CONCATASSIGN_DIMASSIGN_DIVASSIGN_MODASSIGN_MULASSIGN_OBJASSIGN_REFASSIGN_SLASSIGN_SRASSIGN_SUBBEGIN_SILENCEBOOLBOOL_NOTBOOL_XORBRKBW_ANDBW_NOTBW_ORBW_XORCASECASTCATCHCLONECONCATCONTDECLARE_CLASSDECLARE_CONSTDECLARE_FUNCTIONDECLARE_INHERITED_CLASSDECLARE_INHERITED_CLASS_DELAYEDDIVDO_FCALLDO_FCALL_BY_NAMEECHOEND_SILENCEEXITEXT_FCALL_BEGINEXT_FCALL_ENDEXT_NOPEXT_STMTFE_FETCHFE_RESETFETCH_CLASSFETCH_CONSTANTFETCH_DIM_FUNC_ARGFETCH_DIM_ISFETCH_DIM_RFETCH_DIM_RWFETCH_DIM_TMP_VARFETCH_DIM_UNSETFETCH_DIM_WFETCH_FUNC_ARGFETCH_ISFETCH_OBJ_FUNC_ARGFETCH_OBJ_ISFETCH_OBJ_RFETCH_OBJ_RWFETCH_OBJ_UNSETFETCH_OBJ_WFETCH_RFETCH_RWFETCH_UNSETFETCH_WFREEGOTOHANDLE_EXCEPTIONINCLUDE_OR_EVALINIT_ARRAYINIT_FCALL_BY_NAMEINIT_METHOD_CALLINIT_NS_FCALL_BY_NAMEINIT_STATIC_METHOD_CALLINIT_STRINGINSTANCEOFIS_EQUALIS_IDENTICALIS_NOT_EQUALIS_NOT_IDENTICALIS_SMALLERIS_SMALLER_OR_EQUALISSET_ISEMPTY_DIM_OBJISSET_ISEMPTY_PROP_OBJISSET_ISEMPTY_VARJMPJMPNZJMPNZ_EXJMPZJMPZ_EXJMPZNZMODMULNEWNOPPOST_DECPOST_DEC_OBJPOST_INCPOST_INC_OBJPRE_DECPRE_DEC_OBJPRE_INCPRE_INC_OBJPRINTQM_ASSIGNRAISE_ABSTRACT_ERRORRECVRECV_INITRETURNRETURN_BY_REFSEND_REFSEND_VALSEND_VARSEND_VAR_NO_REFSLSRSUBSWITCH_FREETHROWTICKSUNSET_DIMUNSET_OBJUNSET_VARUSER_OPCODEVERIFY_ABSTRACT_CLASSZEND_DECLARE_LAMBDA_FUNCTIONZEND_JMP_SETZend Engine 1旧的介绍Streams API for PHP Extension AuthorsZend API:深入 PHP 内核TSRM APIFAQ一般信息PHP 是什么?PHP 这个缩写指的是什么?PHP 版本之间有什么联系?可以同时运行几个不同版本的 PHP 吗?PHP4 和 PHP5 有什么不同?我觉得自己发现了一个 bug!应该告诉谁?邮件列表有没有 PHP 的邮件列表?还有其它的团体吗?我可以建立我自己的PHP邮件列表吗?救命!我看来不能订阅/取消任何一个邮件列表!在哪里有个邮件列表的归档吗?我可以在邮件列表中问什么?向邮件列表发帖子时我需要包括些什么信息?获取 PHPPHP 可以从哪里得到?有预先编译好的可执行版本吗?编译一些可选的 PHP 扩展库所需的库文件可以从哪里得到?怎样使这些库起作用?我在 Windows 机器中从 SVN 里得到了最新版的 PHP 源代码,需要什么去编译它?哪里可以找到 browscap.ini 文件?数据库问题听说 PHP 有可能访问 Microsoft SQL Server,怎样访问?能访问 Microsoft Access 数据库吗?我升级到了 PHP 4,结果 MySQL 不断报告'Warning: MySQL: Unable to save result set in ..',这是怎么回事?Why is the MySQL extension (ext/mysql) that I've been using for over10 years discouraged from use? Is it deprecated? What do I use instead?How can I migrate?PHP 5 不再绑定 MySQL 客户端库,这对我意味着什么?我还能在 PHP 中使用 MySQL 吗?我试着使用 MySQL 结果得到'function undefined'错误,怎么办?在安装共享 MySQL 支持之后,只要一加载 libphp4.so,Apache就会 core dump。这个问题能解决吗?为什么我得到类似如下的错误:'Warning: 0 is not a MySQL result index in <file> on line <x>'或者'Warning: Supplied argument is not a valid MySQL result resource in <file> on line <x>'?安装为什么不应该在实际运作环境中的 Apache2 中使用线程化的 MPM?Unix/Windows:应该上哪儿去找我的 php.ini 文件?Unix:我安装了 PHP,但每次我打开一个页面时,只得到一条'Document Contains No Data'消息!这是怎么回事?Unix:我从 RPMS 安装了 PHP,但是 Apache 不处理 PHP 页面!这是怎么回事?Unix:我从 RPMS 安装了 PHP 3,但它没有把我需要的数据库支持编译进去!这是怎么回事?Unix:我给 Apache 加上了 FrontPage extensions 补丁,结果 PHP 突然不工作了。PHP 和 Apache FrontPage extensions 兼容吗?Unix/Windows:我已经安装了 PHP,但当我试着通过浏览器访问 PHP 脚本时,得到了一个空白页面。Unix/Windows:我已经安装了 PHP,但当我试着通过浏览器访问 PHP 脚本时,得到了一个服务器的 500 错误。某些操作系统:我已经在不出错的情况下安装了 PHP,但当我试着启动 Apache 时得到了一个未定义符号错误: [mybox:user /src/php4] root# apachectl configtest apachectl: /usr/local/apache/bin/httpd Undefined symbols: _compress _uncompressWindows:我已经安装了 PHP,但当我试着通过浏览器访问 PHP 脚本时,得到如下错误: cgi error: The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are:Windows:我已经照着所有的说明做了,但还是不能让 PHP 和 IIS 一起工作!当在 IIS,PWS,OmniHTTPD 或者 Xitami 中以 CGI 方式运行 PHP 时,出现如下错误:Security Alert! PHP CGI cannot be accessed directly..怎样得知我的 php.ini 是否被找到和应用了?似乎我做的修改都没有生效。怎样将 PHP 目录加入到 Windows 路径 PATH中去?怎样使 php.ini 文件在 Windows 下被 PHP 所用?有可能使 PHP 运作于 Apache 的 content negotiation(MultiViews 选项)吗?PHP 是否仅限于处理 GET 和 POST 请求方法?编译问题我用匿名 GIT 服务得到了最新版的 PHP,但是里面没有 configure 脚本!我在配置 PHP 和 Apache 一起工作时遇到了问题。说没找到 httpd.h,但这个文件明明就在那里!当运行 PHP 配置时( ./configure),遇到类似如下的问题: checking lex output file root... ./configure: lex: command not found configure: error: cannot find output from lex; giving up当试图启动 Apache 时,得到类似如下错误信息: fatal: relocation error: file /path/to/libphp4.so: symbol ap_block_alarms: referenced symbol not found当运行 configure 时,报告说找不到头文件或 GD 库或 gdbm,或其它的什么包!当编译 language-parser.tab.c文件时,报错说 yytname undeclared。当我运行 make时,看上去一切正常,可当连接最后的程序时报告说找不到某些文件而失败了。当连接 PHP 时,报告说有一些未定义的引用。我不知道怎样把 PHP 和 Apache 1.3 一起编译。我按照所有的步骤在 UNIX 下安装了PHP 的 Apache 模块版本,但我的 PHP 脚本被显示在浏览器中或者提示保存此文件。说要用:--activate-module=src/modules/php4/libphp4.a,但是此文件根本不存在,于是我改成了 --activate-module=src/modules/php4/libmodphp4.a,结果不行。怎么回事?当我用 --activate-module=src/modules/php4/libphp4.a试着把 PHP 编译成 Apache 的静态模块时,报告说我的编译器不服从 ANSI 标准。当我用 --with-apxs编译 PHP 时得到奇怪的错误信息。在 make的过程中,在 microtime 中出错,还有很多 RUSAGE_之类的东西。当带 MySQL 编译 PHP 时,可以正确地运行configure,但是在make的过程中出现了类似以下的错误信息: ext/mysql/ libmysqlclient /my_tempnam.o(.text+0x46): In function my_tempnam': /php4/ext/mysql/ libmysqlclient /my_tempnam.c:103: the 我想升级我的 PHP。上哪里找到我用来配置目前的 PHP 的 ./configure的参数呢?和 GD 库一起编译 PHP 时,要么给出一个奇怪的编译错误,要么在运行时出现 segfaults。当编译 PHP 时我看到一些随机的错误,好像死了。我用的是 Solaris,不知道有没有关系。使用 PHP我忘了PHP函数的参数顺序,它们是随机的吗?我想写一个可以处理任何表单来的数据的通用 PHP 脚本。我怎么知道哪个 POST 方法变量可用呢?我需要在所有的单引号(')前加一个反斜线(),使它们变成(\'),我如何能够通过正则表达式来实现?我同样希望能够将(")转换成("),将(\)转换成(\)。我所有的(")和(')都被变成了(")和('),我如何才能去掉这些不必要的反斜线?它们为什么及如何出现?PHP 选项 register_globals 对我有什么影响?当我这样做时,输出显示的次序是错的: <?phpfunction myfunc($argument){echo $argument + 10;}$variable = 10;echo "myfunc($variable) = " . myfunc($variable);?>这是怎么回事?下面代码怎么没有分成两行显示? <pre><?php echo "This should be the first line."; ?><?php echo "This should show up after the new line above."; ?></pre>我得到消息'Warning: Cannot send session cookie - headers already sent...'或者'Cannot add header information - headers already sent...'。我需要直接访问请求报头中的信息,怎么能办到?当我用 IIS 进行 HTTP 认证时得到'No Input file specified'消息。Windows:不能访问另一台电脑上用 IIS 共享的文件。我怎样混合使用 XML 和 PHP?它不认我的 <?xml 标记!怎样用 FrontPage 或者其它非要把我的代码移来移去的 HTML 编辑器来编辑 PHP?哪里可以找到所有可用的 PHP 预定义变量的完整列表?怎样才能不用非免费的商业库(例如 PDFLib) 来生成 PDF 文档?我想要个免费的并且不需要再连接别的 PDF 库。我试着在用户自定义函数中访问一个标准的 CGI 变量(例如 $DOCUMENT_ROOT 或 $HTTP_REFERER),但是找不到,哪里出了错?有些 PHP 选项可以接受缩写的字节值,与仅能接受 integer字节值相反。都有哪些缩写字节值?可以将其用于 php.ini 之外吗?Windows: I keep getting connection timeouts when using localhost, whereas "127.0.0.1"works?密码散列为什么需要把应用程序中用户的密码进行散列化?为何诸如 md5 和sha1 这样的常见散列函数不适合用在密码保护场景?如果不建议使用常用散列函数保护密码, 那么我应该如何对密码进行散列处理?'盐'是什么?我应该如何保存'盐'?PHP 和 HTML当我通过表单/URL 传值时需要用什么编码/解码方法?我在试用 <input type="image"> 标记,但是没有 $foo.x和 $foo.y变量,它们哪去了?怎样在 HTML 的 <form> 中建立数组?怎样从可多选的 HTML 的 select multiple 标记中得到所有结果?怎样从 Javascript 传递一个变量到 PHP?PHP 和 COM我建立了一个 DLL 来做某种计算。有办法在 PHP 中运行这个 DLL 吗?'Unsupported variant type: xxxx (0xxxxx)'是什么意思?在 PHP 中有可能操纵可视对象吗?可以将一个 COM 对象保存在 session 中吗?怎样可以捕获 COM 的错误?我能像在 Perl 中一样从 PHP 脚本生成 DLL 文件吗?'Unable to obtain IDispatch interface for CLSID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}'是什么意思?怎样从远端服务器运行 COM 对象?我得到一个'DCOM is disabled in C:\path...\scriptname.php on line 6'信息,应该怎么办?有可能在 PHP 页面中加载/操纵 ActiveX 对象吗?有可能得到一个组件在运行中的实例吗?有办法处理 COM 对象中发送的事件吗?我在尝试调用一个打开了多于一个接口的 COM 对象中的方法时碰到问题,应该怎么办?这么说 PHP 可以和 COM 一起工作,那么 COM+ 呢?如果 PHP 可以操纵 COM 对象,那么可以设想结合 PHP 用 MTS 来管理组件资源吗?从 PHP 4 移植到 PHP 5从 PHP 4 向 PHP 5 移植PHP 5 中还能用 MySQL 吗?好像找不到了。听说 PHP 有个全新的 OOP 模型,那现有的 OOP 代码还能运行吗?上哪去找这些新的 OOP 特性的信息?除了 OOP 模型,PHP 5 还有哪些改动?此外,有没有专门针对 PHP 5 的手册?杂类问题在 Windows 中怎样处理 bz2 压缩的文档?在函数定义中,参数旁边的 & 是什么意思?例如 asort。怎么处理 register_globals?附录PHP 及其相关工程的历史PHP 的历史PHP 相关工程的历史PHP 相关书籍PHP 相关文章Migrating from PHP 5.6.x to PHP 7.0.x不向后兼容的变更新特性Changes in SAPI ModulesDeprecated features in PHP 7.0.xChanged functionsNew functionsNew Classes and InterfacesNew Global ConstantsRemoved Extensions and SAPIsOther Changes从PHP 5.5.x 移植到 PHP 5.6.x向后不兼容新特性PHP 5.6.x 中已废止的特性Changed functions新加函数OpenSSL changes in PHP 5.6.x扩展中的变动新加的全局常量从 PHP 5.4.x 迁移到 PHP 5.5.xPHP 5.5.x 中的变更不向后兼容的变更新的特性PHP 5.5.x 中废弃的特性变更的函数新的函数新的类和接口新的方法扩展中的其他变更新的全局常量INI 文件处理的变化PHP 内部的变化从 PHP 5.3.X 迁移到 PHP 5.4.XPHP 5.4.x 中的变更不向后兼容的变更新特性SAPI 模块中的变化在 PHP 5.4.x 中过时的特性变更的函数新的函数新的类和接口新的方法移除的扩展扩展中的其他变化新的全局常量INI 文件处理的变化其他变化从 PHP 5.2.x 移植到 PHP 5.3.xPHP 5.3.x 的变化不向下兼容的变化新特性Windows 支持改变SAPI 模块的改变PHP 5.3.x 中弃用的功能PHP 5.3.x 保留的功能新参数新函数新的流包装器新的流过滤器新增的类常量新增的方法新的扩展被移除的扩展Other changes to extensions新类新的全局常量INI 文件处理改变其他改变Migrating from PHP 5.1.x to PHP 5.2.xWhat has changed in PHP 5.2.xBackward Incompatible ChangesNew Error MessagesChanges in PHP datetime supportNew ParametersNew FunctionsNew MethodsRemoved ExtensionsNew ExtensionsNew ClassesNew Global ConstantsNew Class ConstantsNew INI Configuration DirectivesError ReportingOther EnhancementsMigrating from PHP 5.0.x to PHP 5.1.xKey PHP 5.1.x featuresChanges in reference handlingReading []Integer values in function parametersClass and object changesExtensionsDate/time supportChanges in database supportChecking for E_STRICT从 PHP 4 移植到 PHP 5PHP 5 中有哪些改变未向下兼容的改变CLI 和 CGI移植配置文件新函数新指令数据库新对象模型错误报告类与对象(PHP 4)继承构造函数范围解析操作符(::)parent序列化对象 - 会话中的对象魔术函数 __sleep 和 __wakeup构造函数中的引用对象的比较PHP 的调试关于调试器配置选项核心配置选项列表php.ini 配置php.ini 配置选项列表php.ini 配置段列表php.ini 核心配置选项说明扩展库列表/归类按字母顺序按归属分按状态分函数别名列表保留字列表关键词列表预定义类预定义常量资源类型列表可用过滤器列表字符串过滤器转换过滤器压缩过滤器加密过滤器所支持的套接字传输器(Socket Transports)列表Internet 领域:TCP,UDP,SSL 和 TLSUnix 领域:Unix 和 UDGPHP 类型比较表解析器代号列表用户空间命名指南全局命名空间规则提示关于本手册手册的格式关于用户注释如何阅读函数的定义(函数原型)本手册中所涉及的 PHP 版本如何得到关于 PHP 更多的信息如何帮助改进本文档如何生成手册的各种格式手册译文Creative Commons Attribution 3.0索引
文字

imagecopyresampled

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagecopyresampled重采样拷贝部分图像并调整大小

说明

bool imagecopyresampled ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h )

imagecopyresampled() 将一幅图像中的一块正方形区域拷贝到另一个图像中,平滑地插入像素值,因此,尤其是,减小了图像的大小而仍然保持了极大的清晰度。

In other words, imagecopyresampled() will take a rectangular area from src_image of width src_w and height src_h at position (src_x,src_y) and place it in a rectangular area of dst_image of width dst_w and height dst_h at position (dst_x,dst_y).

如果源和目标的宽度和高度不同,则会进行相应的图像收缩和拉伸。坐标指的是左上角。本函数可用来在同一幅图内部拷贝(如果 dst_imagesrc_image 相同的话)区域,但如果区域交迭的话则结果不可预知。

参数

dst_image

目标图象连接资源。

src_image

源图象连接资源。

dst_x

目标 X 坐标点。

dst_y

目标 Y 坐标点。

src_x

源的 X 坐标点。

src_y

源的 Y 坐标点。

dst_w

目标宽度。

dst_h

目标高度。

src_w

源图象的宽度。

src_h

源图象的高度。

返回值

成功时返回 TRUE , 或者在失败时返回 FALSE

范例

Example #1 简单的例子

这个例子会将图像调整为原有尺寸的一半。

<?php
// 这个文件
$filename  'test.jpg' ;
$percent  0.5 ;

// 内容类型
header ( 'Content-Type: image/jpeg' );

// 获取新的尺寸
list( $width $height ) =  getimagesize ( $filename );
$new_width  $width  $percent ;
$new_height  $height  $percent ;

// 重新取样
$image_p  imagecreatetruecolor ( $new_width $new_height );
$image  imagecreatefromjpeg ( $filename );
imagecopyresampled ( $image_p $image 0 0 0 0 $new_width $new_height $width $height );

// 输出
imagejpeg ( $image_p null 100 );
?>

以上例程的输出类似于:

输出的例子:简单的例子

Example #2 按比例对图像重新采样

这个例子会以最大宽度高度为 200 像素显示一个图像。

<?php
// 源文件
$filename  'test.jpg' ;

// 设置最大宽高
$width  200 ;
$height  200 ;

// Content type
header ( 'Content-Type: image/jpeg' );

// 获取新尺寸
list( $width_orig $height_orig ) =  getimagesize ( $filename );

$ratio_orig  $width_orig / $height_orig ;

if (
$width / $height  $ratio_orig ) {
   
$width  $height * $ratio_orig ;
} else {
   
$height  $width / $ratio_orig ;
}

// 重新取样
$image_p  imagecreatetruecolor ( $width $height );
$image  imagecreatefromjpeg ( $filename );
imagecopyresampled ( $image_p $image 0 0 0 0 $width $height $width_orig $height_orig );

// 输出
imagejpeg ( $image_p null 100 );
?>

以上例程的输出类似于:

输出例子:按比例对图像重新采样

注释

Note:

因为调色板图像限制(255+1 种颜色)有个问题。重采样或过滤图像通常需要多于 255 种颜色,计算新的被重采样的像素及其颜色时采用了一种近似值。对调色板图像尝试分配一个新颜色时,如果失败我们选择了计算结果最接近(理论上)的颜色。这并不总是视觉上最接近的颜色。这可能会产生怪异的结果,例如空白(或者视觉上是空白)的图像。要跳过这个问题,请使用真彩色图像作为目标图像,例如用 imagecreatetruecolor() 创建的。

参见

imagecopyresized() - 拷贝部分图像并调整大小

用户评论:

[#1] julien at go-on-web dot com [2014-04-02 08:59:53]

Windows does not accept floating width and height...

So, in "Example #2 Resampling an image proportionally", prefer :
<?php
if ($width/$height $ratio_orig) {
   
$width round$height*$ratio_orig );
} else {
   
$height round$width/$ratio_orig );
}
?>

(used "round")
otherwise your image wont be resized.

[#2] kazuya [2014-03-11 02:24:11]

<?php

$new_file 
img_resize("./img/""test.jpg","copy_test.jpg",300);
echo 
"<IMG src = '$new_file'>";

function 
img_resize($path,$tmp_name,$new_name,$new_width){
    if (!
file_exists($path.$filename)){
        echo 
"file not found!";
        exit;
    }
    if (!
is_writable($path)){
        echo 
"error:permission denied!";
        exit;
    }
    list(
$width$height) = getimagesize($path $tmp_name);
    
$new_height abs($new_width $height $width); 
    
$image_p imagecreatetruecolor($new_width$new_height);
    
$image imagecreatefromjpeg($path $tmp_name); 
    
imagecopyresampled($image_p$image0000,
                        
$new_width$new_height$width$height); 
    
imagejpeg($image_p$path $new_name); 
    return 
$path.$new_name;
}

?>

[#3] sam at durosoft.com [2013-08-17 18:18:54]

The ultimate smart image re-sizing routine. You provide the original image, and a desired width and/or height. The function will intelligently re-size the original image to fit, centered, within the specified dimensions. Either width or height can be omitted to have the re-size "lock" only on width or height. Fantastic for thumbnail generation. Designed to work with PNG's.

function resize_image_smart($orig, $dest_width=null, $dest_height=null)
{
  $orig_width = imagesx($orig);
  $orig_height = imagesy($orig);
  $vertical_offset = 0;
  $horizontal_offset = 0;
  if($dest_width == null)
  {
    if($dest_height == null)
    {
      die('$dest_width and $dest_height cant both be null!');
    }
    // height is locked
    $dest_width = $dest_height * $orig_width / $orig_height;
  } else {
    if($dest_height == null)
    {
      // width is locked
      $dest_height = $dest_width * $orig_height / $orig_width;
    } else {
      // both dimensions are locked
      $vertical_offset = $dest_height - ($orig_height * $dest_width) / $orig_width;
      $horizontal_offset = $dest_width - ($dest_height * $orig_width) / $orig_height;
      if($vertical_offset < 0) $vertical_offset = 0;
      if($horizontal_offset < 0) $horizontal_offset = 0;
    }
  }
  $img = imagecreatetruecolor($dest_width, $dest_height);
  imagesavealpha($img, true);
  imagealphablending($img, false);
  $transparent = imagecolorallocatealpha($img, 0, 0, 0, 127);
  imagefill($img, 0, 0, $transparent);
  imagecopyresampled($img, $orig, round($horizontal_offset / 2),
                                  round($vertical_offset / 2),
                                  0,
                                  0,
                                  round($dest_width - $horizontal_offset),
                                  round($dest_height - $vertical_offset),
                                  $orig_width,
                                  $orig_height);
  return $img;
}

[#4] wbcarts at juno dot com [2013-07-20 19:58:59]

FOUR RECTANGLES -- The Tools to Use this Function Creatively

A rectangle is not an image, but every image has a Rectangled boundary with x=0 and y=0. The width and height are obtained with the getimagesize function.

Because this function allows subimage areas to be defined, there are actually four rectangled areas that we need to be aware of.

* R1 -- Source Image Boundaries
* R2 -- Source Copy Area Boundaries
* R3 -- Destination Image Boundaries
* R4 -- Destination Resampled Placement Area Boundaries

+-----------------------+  +-----------------+
|          R1           |  |        R3       |
|                       |  |                 |
|    +------------+     |  |                 |
|    |            |     |  |                 |
|    |            |     |  |      +------+   |
|    |     R2     |     |  |      |      |   |
|    |            |     |  |      |  R4  |   |
|    |            |     |  |      |      |   |
|    |            |     |  |      +------+   |
|    +------------+     |  |                 |
|                       |  +-----------------+
|                       |
+-----------------------+

R1 contains all of the original pixel data. If R2 goes outside of R1 in any direction, then R2 will contain stuff that doesn't help. A lot of the time R2 == R1 exactly.

R3 defines the area that holds the resampled image data. If R4 goes outside of R3 in any direction, then the resampled image data in R4 will be clipped by R3. In other words, R3 has the final say as to which of R4's pixels will be included in the final image. Most of the time, R4 == R3.

In the end, R2 (and the pixels in it) will be strecthed, squeezed, and placed exactly over R4.

There are plenty of good examples on this page to create thumbnails etc. But what if R3 was not destined to be a thumbnail? What if we wanted to take the entire R1 image and shrink it to fit inside R2 for example, leaving the original picture as a border? With the knowledge we have just gained it is a simple matter of creating the Source & Destination Images from the same .jpg file, then R2 should be equal to R1, and R4 should be smaller and completely inside R3.

When we think of these rectangles as tools and not images, it becomes easier to see what's going on.

[#5] wbcarts at juno dot com [2013-07-18 19:14:32]

FOUR RECTANGLES

                  $src_image                                   $dst_image
+------------+---------------------------------+   +------------+--------------------+
|            |                                 |   |            |                    |
|            |                                 |   |         $dst_y                  |
|            |                                 |   |            |                    |
|         $src_y                               |   +-- $dst_x --+----$dst_width----+ |
|            |                                 |   |            |                  | |
|            |                                 |   |            |    Resampled     | |
|            |                                 |   |            |                  | |
+-- $src_x --+------ $src_width ------+        |   |       $dst_height             | |
|            |                        |        |   |            |                  | |
|            |                        |        |   |            |                  | |
|            |                        |        |   |            |                  | |
|            |                        |        |   |            +------------------+ |
|            |        Sample          |        |   |                                 |
|            |                        |        |   |                                 |
|            |                        |        |   |                                 |
|       $src_height                   |        |   |                                 |
|            |                        |        |   +---------------------------------+
|            |                        |        |
|            |                        |        |
|            +------------------------+        |
|                                              |
|                                              |
+----------------------------------------------+

[#6] hoangvu4000 at gmail dot com [2013-05-26 17:50:38]

My complete function to resize an image  with exif data

<?php
function CreateThumbnail($pic,$thumb,$thumbwidth$quality 100)
{
         
        
$im1=ImageCreateFromJPEG($pic);
        if(
function_exists("exif_read_data")){
                
$exif exif_read_data($pic);
                if(!empty(
$exif['Orientation'])) {
                switch(
$exif['Orientation']) {
                case 
8:
                    
$im1 imagerotate($im1,90,0);
                    break;
                case 
3:
                    
$im1 imagerotate($im1,180,0);
                    break;
                case 
6:
                    
$im1 imagerotate($im1,-90,0);
                    break;
                } 
                }
        }
        
$info = @getimagesize($pic);
        
        
$width $info[0];
         
        
$w2=ImageSx($im1);
        
$h2=ImageSy($im1);
        
$w1 = ($thumbwidth <= $info[0]) ? $thumbwidth $info[0]  ;
         
        
$h1=floor($h2*($w1/$w2));
        
$im2=imagecreatetruecolor($w1,$h1);
         
        
imagecopyresampled ($im2,$im1,0,0,0,0,$w1,$h1,$w2,$h2); 
        
$path=addslashes($thumb);
        
ImageJPEG($im2,$path,$quality);
        
ImageDestroy($im1);
        
ImageDestroy($im2);
         
}
?>

[#7] alex-thennstaett-remove at gmx dot net [2012-11-10 17:06:05]

Having updated GD-Library from 2.0.35-r1 to 2.0.35-r3 using negative numbers for $dstX or $dstY started to produce unpredictable results, such as inserting shrinked images and enlarging $dstH or $dstW all by itself. While it did work fine previously, one should avoid using or calculating negative numbers for imagecopyresampled from the beginning.

[#8] jagarock at gmail dot com [2011-10-21 13:27:14]

A simple function that will crop xxx px from the bottom of the image.

<?php
function cropBottom($image,$bottom) {
list(
$width$height) = getimagesize($image); 
$img imagecreatefromjpeg($image); 
$crop imagecreatetruecolor($width,$height-$bottom);
imagecopyresampled $crop$img0000$width$height$width$height );
imagejpeg($crop,$image,85);
}
?>

[#9] promaty at gmail dot com [2011-05-18 05:26:34]

Here is my ultimate image resizer that preserves transparency for gif's and png's and has an option to crop images to fixed dimensions (preserves image proportions by default)

<?php
function image_resize($src$dst$width$height$crop=0){

  if(!list(
$w$h) = getimagesize($src)) return "Unsupported picture type!";

  
$type strtolower(substr(strrchr($src,"."),1));
  if(
$type == 'jpeg'$type 'jpg';
  switch(
$type){
    case 
'bmp'$img imagecreatefromwbmp($src); break;
    case 
'gif'$img imagecreatefromgif($src); break;
    case 
'jpg'$img imagecreatefromjpeg($src); break;
    case 
'png'$img imagecreatefrompng($src); break;
    default : return 
"Unsupported picture type!";
  }

  
// resize
  
if($crop){
    if(
$w $width or $h $height) return "Picture is too small!";
    
$ratio max($width/$w$height/$h);
    
$h $height $ratio;
    
$x = ($w $width $ratio) / 2;
    
$w $width $ratio;
  }
  else{
    if(
$w $width and $h $height) return "Picture is too small!";
    
$ratio min($width/$w$height/$h);
    
$width $w $ratio;
    
$height $h $ratio;
    
$x 0;
  }

  
$new imagecreatetruecolor($width$height);

  
// preserve transparency
  
if($type == "gif" or $type == "png"){
    
imagecolortransparent($newimagecolorallocatealpha($new000127));
    
imagealphablending($newfalse);
    
imagesavealpha($newtrue);
  }

  
imagecopyresampled($new$img00$x0$width$height$w$h);

  switch(
$type){
    case 
'bmp'imagewbmp($new$dst); break;
    case 
'gif'imagegif($new$dst); break;
    case 
'jpg'imagejpeg($new$dst); break;
    case 
'png'imagepng($new$dst); break;
  }
  return 
true;
}
?>


Example that I use when uploading new images to the server.

This saves the original picture in the form:
original.type

and creates a new thumbnail:
100x100.type

<?php
  $pic_type 
strtolower(strrchr($picture['name'],"."));
  
$pic_name "original$pic_type";
  
move_uploaded_file($picture['tmp_name'], $pic_name);
  if (
true !== ($pic_error = @image_resize($pic_name"100x100$pic_type"1001001))) {
    echo 
$pic_error;
    
unlink($pic_name);
  }
  else echo 
"OK!";
?>


Cheers!

[#10] guru_boy87 at hotmail dot com [2010-06-23 04:52:45]

Function to resize an image.

<?php
function resizeImage($originalImage,$toWidth,$toHeight)
{

    list(
$width$height) = getimagesize($originalImage);
    
$xscale=$width/$toWidth;
    
$yscale=$height/$toHeight;

    if (
$yscale>$xscale){
        
$new_width round($width * (1/$yscale));
        
$new_height round($height * (1/$yscale));
    }
    else {
        
$new_width round($width * (1/$xscale));
        
$new_height round($height * (1/$xscale));
    }
    
    
    
$imageResized imagecreatetruecolor($new_width$new_height);
    
$imageTmp     imagecreatefromjpeg ($originalImage);
    
imagecopyresampled($imageResized$imageTmp0000$new_width$new_height$width$height);

    return 
$imageResized;
    

}
?>

[#11] seifer at loveletslive dot com [2009-10-25 05:27:12]

Okay so I saw that others have posted this already but I just messed around and made it so figured I would share it.

Mine works, not to say others don't, I haven't tested them.

This function creates a thumbnail of the specfied size.
If the thumbnail is a different ration it will automatically crop the center of the source image.

It works if the source image is bigger or smaller than the desired "cropped thumbnail."

Here is the code...
<?php
function CroppedThumbnail($imgSrc,$thumbnail_width,$thumbnail_height) { //$imgSrc is a FILE - Returns an image resource.
    //getting the image dimensions  
    
list($width_orig$height_orig) = getimagesize($imgSrc);   
    
$myImage imagecreatefromjpeg($imgSrc);
    
$ratio_orig $width_orig/$height_orig;
    
    if (
$thumbnail_width/$thumbnail_height $ratio_orig) {
       
$new_height $thumbnail_width/$ratio_orig;
       
$new_width $thumbnail_width;
    } else {
       
$new_width $thumbnail_height*$ratio_orig;
       
$new_height $thumbnail_height;
    }
    
    
$x_mid $new_width/2;  //horizontal middle
    
$y_mid $new_height/2//vertical middle
    
    
$process imagecreatetruecolor(round($new_width), round($new_height)); 
    
    
imagecopyresampled($process$myImage0000$new_width$new_height$width_orig$height_orig);
    
$thumb imagecreatetruecolor($thumbnail_width$thumbnail_height); 
    
imagecopyresampled($thumb$process00, ($x_mid-($thumbnail_width/2)), ($y_mid-($thumbnail_height/2)), $thumbnail_width$thumbnail_height$thumbnail_width$thumbnail_height);

    
imagedestroy($process);
    
imagedestroy($myImage);
    return 
$thumb;
}

//Create the thumbnail
$newThumb CroppedThumbnail("MyImageName.jpg",75,100);

// And display the image...
header('Content-type: image/jpeg');
imagejpeg($newThumb);
?>

[#12] michael at heymichael dot com [2009-10-22 22:08:01]

imagecopyresampled() works amazingly well, but here is something NOT to try with it:

The resize routine I wrote looks for pixel widths, and resizes images based on the notion that if their widths and heights are too big, so are their byte sizes. It worked out well at first.

But when I saw huge byte-size images slipping through beneath my 1000px-wide benchmark, I figured I'd subject the smaller-width images to resizing if their filesize() exceeded 100K.

The idea was that I'd "resize" them keeping their original widths and heights (i.e. in (1) below, $newW = $oldW, $newH = $oldH), and letting the "75" at (2) below reduce the byte size.

DON'T try that. imagecopyresampled() will lock up the server trying to resize an 800px-wide image to a "new" width of 800px. (I caught that on my Windows server before ever putting it on the destination Linux server, so take that with a grain of salt.)

I got around it by making $newW = ($picW * 0.99), etc. You get the byte-size reduction you want without locking up.

(1) imagecopyresampled($image_p, $image, 0, 0, 0, 0, $newW, $newH, $picW, $picH);

(2) imagejpeg($image_p, $theFile, 75);

[#13] asgaroth dot belem at gmail dot com [2009-08-27 12:42:50]

In case you are having trouble ( like I did ) and getting some kind of noise in the resampled image.

then changing imagecopyresampled() with imagecopyresized()  removes the noise, found that here: http://bugs.php.net/bug.php?id=45030

Do not ask me why. but it works.

[#14] asgaroth dot belem at gmail dot com [2009-08-26 11:38:01]

About preserving the  transparency when resizing PNGs this was the only thing that worked for me:

<?php imagealphablending($new_watermarkfalse);
        
$color imagecolortransparent($new_watermarkimagecolorallocatealpha($new_watermark000127));
        
imagefill($new_watermark00$color);
        
imagesavealpha($new_watermarktrue);
        
imagecopyresampled($new_watermark$watermark0000$new_watermark_width$new_watermark_heightimagesx($watermark),imagesy($watermark)); 
?>


Tried without success:

<?php imagealphablending($new_watermarkfalse);
        
$color imagecolortransparent($new_watermarkimagecolorallocate($new_watermark000));
        
imagefill($new_watermark00$color);
        
imagesavealpha($new_watermarktrue);
        
imagecopyresampled($new_watermark$watermark0000$new_watermark_width$new_watermark_heightimagesx($watermark),imagesy($watermark));
 
?>


hope it helps someone.

[#15] z3n666 at gmail dot com [2009-04-27 11:19:06]

I was looking around and couldn't find a function that resizes images to any ratio without leaving a blank area, so i wrote this one. It's able to resize images to any size ratio, when the ratio is no match with the original it will crop proportional area on the original and resize it.

<?php

function _ckdir($fn) {
    if (
strpos($fn,"/") !== false) {
        
$p=substr($fn,0,strrpos($fn,"/"));
        if (!
is_dir($p)) {
            
_o("Mkdir: ".$p);
            
mkdir($p,777,true);
        }
    }
}
function 
img_resizer($src,$quality,$w,$h,$saveas) {
    

    
$r=1;
    
$e=strtolower(substr($src,strrpos($src,".")+1,3));
    if ((
$e == "jpg") || ($e == "peg")) {
        
$OldImage=ImageCreateFromJpeg($src) or $r=0;
    } elseif (
$e == "gif") {
        
$OldImage=ImageCreateFromGif($src) or $r=0;
    } elseif (
$e == "bmp") {
        
$OldImage=ImageCreateFromwbmp($src) or $r=0;
    } elseif (
$e == "png") {
        
$OldImage=ImageCreateFromPng($src) or $r=0;
    } else {
        
_o("Not a Valid Image! (".$e.") -- ".$src);$r=0;
    }
    if (
$r) {
        list(
$width,$height)=getimagesize($src);
        
// check if ratios match
        
$_ratio=array($width/$height,$w/$h);
        if (
$_ratio[0] != $_ratio[1]) { // crop image

            // find the right scale to use
            
$_scale=min((float)($width/$w),(float)($height/$h));

            
// coords to crop
            
$cropX=(float)($width-($_scale*$w));
            
$cropY=(float)($height-($_scale*$h));    
            
            
// cropped image size
            
$cropW=(float)($width-$cropX);
            
$cropH=(float)($height-$cropY);
            
            
$crop=ImageCreateTrueColor($cropW,$cropH);
            
// crop the middle part of the image to fit proportions
            
ImageCopy(
                
$crop,
                
$OldImage,
                
0,
                
0,
                (int)(
$cropX/2),
                (int)(
$cropY/2),
                
$cropW,
                
$cropH
            
);
        }
        
        
// do the thumbnail
        
$NewThumb=ImageCreateTrueColor($w,$h);
        if (isset(
$crop)) { // been cropped
            
ImageCopyResampled(
                
$NewThumb,
                
$crop,
                
0,
                
0,
                
0,
                
0,
                
$w,
                
$h,
                
$cropW,
                
$cropH
            
);
            
ImageDestroy($crop);
        } else { 
// ratio match, regular resize
            
ImageCopyResampled(
                
$NewThumb,
                
$OldImage,
                
0,
                
0,
                
0,
                
0,
                
$w,
                
$h,
                
$width,
                
$height
            
);
        }
        
_ckdir($saveas);
        
ImageJpeg($NewThumb,$saveas,$quality);
        
ImageDestroy($NewThumb);
        
ImageDestroy($OldImage);
    }
    return 
$r;
}

?>

[#16] satanas147 at gmail dot com [2009-04-02 08:33:32]

Another add-on to previous php5 class for thumbnail (with a merge of Matt and Zorro's proposals).
This is dedicated to generate thumbnail on the fly for a webpage using the subclass thumbnail.
It saves the generated thumb as myimage_tn, in the same directory.
I'm quite new with php5, so I think this could be optimized, but it seems to work fine.

<?php
// Imaging
class imaging
{
    
// Variables
    
private $img_input;
    private 
$img_output;
    private 
$img_src;
    private 
$format;
    private 
$quality 80;
    private 
$x_input;
    private 
$y_input;
    private 
$x_output;
    private 
$y_output;
    private 
$resize;

    
// Set image
    
public function set_img($img)
    {
        
// Find format
        
$ext strtoupper(pathinfo($imgPATHINFO_EXTENSION));
        
// JPEG image
        
if(is_file($img) && ($ext == "JPG" OR $ext == "JPEG"))
        {
            
$this->format $ext;
            
$this->img_input ImageCreateFromJPEG($img);
            
$this->img_src $img;
        }
        
// PNG image
        
elseif(is_file($img) && $ext == "PNG")
        {
            
$this->format $ext;
            
$this->img_input ImageCreateFromPNG($img);
            
$this->img_src $img;
        }
        
// GIF image
        
elseif(is_file($img) && $ext == "GIF")
        {
            
$this->format $ext;
            
$this->img_input ImageCreateFromGIF($img);
            
$this->img_src $img;
        }
        
// Get dimensions
        
$this->x_input imagesx($this->img_input);
        
$this->y_input imagesy($this->img_input);
    }

    
// Set maximum image size (pixels)
    
public function set_size($max_x 100,$max_y 100)
    {
        
// Resize
        
if($this->x_input $max_x || $this->y_input $max_y)
        {
            
$a$max_x $max_y;
            
$b$this->x_input $this->y_input;
            if (
$a<$b)
            {
                
$this->x_output $max_x;
                
$this->y_output = ($max_x $this->x_input) * $this->y_input;
            }
            else
            {
                
$this->y_output $max_y;
                
$this->x_output = ($max_y $this->y_input) * $this->x_input;
            }
            
// Ready
            
$this->resize TRUE;
        }
        
// Don't resize       
        
else { $this->resize FALSE; }
    }
    
// Set image quality (JPEG only)
    
public function set_quality($quality)
    {
        if(
is_int($quality))
        {
            
$this->quality $quality;
        }
    }
    
// Save image
    
public function save_img($path)
    {
        
// Resize
        
if($this->resize)
        {
            
$this->img_output ImageCreateTrueColor($this->x_output$this->y_output);
            
ImageCopyResampled($this->img_output$this->img_input0000$this->x_output$this->y_output$this->x_input$this->y_input);
        }
        
// Save JPEG
        
if($this->format == "JPG" OR $this->format == "JPEG")
        {
            if(
$this->resize) { imageJPEG($this->img_output$path$this->quality); }
            else { 
copy($this->img_src$path); }
        }
        
// Save PNG
        
elseif($this->format == "PNG")
        {
            if(
$this->resize) { imagePNG($this->img_output$path); }
            else { 
copy($this->img_src$path); }
        }
        
// Save GIF
        
elseif($this->format == "GIF")
        {
            if(
$this->resize) { imageGIF($this->img_output$path); }
            else { 
copy($this->img_src$path); }
        }
    }
    
// Get width
    
public function get_width()
    {
        return 
$this->x_input;
    }
    
// Get height
    
public function get_height()
    {
        return 
$this->y_input;
    }
    
// Clear image cache
    
public function clear_cache()
    {
        @
ImageDestroy($this->img_input);
        @
ImageDestroy($this->img_output);
    }
}
class 
thumbnail extends imaging {
    private 
$image;
    private 
$width;
    private 
$height;
    
    function 
__construct($image,$width,$height) {
parent::set_img($image);
parent::set_quality(80);
parent::set_size($width,$height);
            
$this->thumbnailpathinfo($imagePATHINFO_DIRNAME).pathinfo($imagePATHINFO_FILENAME).'_tn.'.pathinfo($imagePATHINFO_EXTENSION);
parent::save_img($this->thumbnail);
parent::clear_cache();
        }
    function 
__toString() {
            return 
$this->thumbnail;
    }
}

********
DEMO *
********
$thumb = new thumbnail('./image_dir/sub_dir/myimage.jpg',100,100);
echo 
'<img src=\''.$thumb.'\' alt=\'myimage\' title=\'myimage\'/>';

    
?>

[#17] zuegs [2009-03-31 22:52:29]

Resampling GIFs and retain transparency dosen't work always, as dependent on the resample factor the resulting resampled image has some pattern-noise that prevents "imagegif" to find all the transparent-pixels.
One way to fix this, is to reset all pixels with high alpha to full-transparent:
<?php
// load/create images
$img_src=imagecreatefromgif($g_srcfile);
$img_dst=imagecreatetruecolor($g_iw,$g_ih);
imagealphablending($img_dstfalse);

// get and reallocate transparency-color
$transindex imagecolortransparent($img_src);
if(
$transindex >= 0) {
  
$transcol imagecolorsforindex($img_src$transindex);
  
$transindex imagecolorallocatealpha($img_dst$transcol['red'], $transcol['green'], $transcol['blue'], 127);
  
imagefill($img_dst00$transindex);
}

// resample
imagecopyresampled($img_dst$img_src0000$g_iw$g_ih$g_is[0], $g_is[1]);

// restore transparency
if($transindex >= 0) {
  
imagecolortransparent($img_dst$transindex);
  for(
$y=0$y<$g_ih; ++$y)
    for(
$x=0$x<$g_iw; ++$x)
      if(((
imagecolorat($img_dst$x$y)>>24) & 0x7F) >= 100imagesetpixel($img_dst$x$y$transindex);

// save GIF
imagetruecolortopalette($img_dsttrue255);
imagesavealpha($img_dstfalse);
imagegif($img_dst$g_dstfile); 
imagedestroy($img_dst); 
?>

[#18] Warren [2009-01-17 23:15:06]

This is a function I wrote for making thumbnails -  it will accept a source *image resource* and destination *path*, plus the max dimension and whether the thumbnail should be square.

I chose to accept a resource as the source to make it a bit more efficient to create multiple sizes. For example:

<?php
$src_im
=@imagecreatefromjpeg($pathtofile);
$large resize($src_im,$destination_large,1024);
@
imagedestroy($src_im);
$medium resize($large,$destination_medium,500);
@
imagedestroy($large);
$small resize($medium,$destination_small,125);
@
imagedestroy($medium);
$square resize($small,$destination_square,75,TRUE);
@
imagedestroy($small);
@
imagedestroy($square);

function 
resize($src_im$dpath$maxd$square=false) {
    
$src_width imagesx($src_im);
    
$src_height imagesy($src_im);
    
$src_w=$src_width;
    
$src_h=$src_height;
    
$src_x=0;
    
$src_y=0;
    if(
$square){
        
$dst_w $maxd;
        
$dst_h $maxd;
        if(
$src_width>$src_height){
            
$src_x ceil(($src_width-$src_height)/2);
            
$src_w=$src_height;
            
$src_h=$src_height;
        }else{
            
$src_y ceil(($src_height-$src_width)/2);
            
$src_w=$src_width;
            
$src_h=$src_width;
        }
    }else{
        if(
$src_width>$src_height){
            
$dst_w=$maxd;
            
$dst_h=floor($src_height*($dst_w/$src_width));
        }else{
            
$dst_h=$maxd;
            
$dst_w=floor($src_width*($dst_h/$src_height));
        }
    }
    
$dst_im=@imagecreatetruecolor($dst_w,$dst_h);
    @
imagecopyresampled($dst_im$src_im00$src_x$src_y$dst_w$dst_h$src_w$src_h);
    @
imagejpeg($dst_im,$dpath);
    return 
$dst_im;
}
?>

[#19] MBorgPL at gmail dot com [2008-12-28 10:53:23]

Another addition to zorroswordsman at gmail dot com's resize class. 

The function takes $_FILES['sent_image'] as 1st parameter. The 2nd is complete destination path. 

It only moves images. 

It returns destination path if succeeded, and false if any error occurred. 

<?php
public function move_image($tmp_img$dest_img)
{
    
//verifies if the uploaded file is an image
    
if (strpos($tmp_img['type'], 'image') !== false
        {
        
//moves the uploaded file into the destination place
        
if (move_uploaded_file($tmp_img['tmp_name'], $dest_img)) {
            return 
$dest_img;
        }
    }        
    return 
false;
}
?>

[#20] MBorg_PL [2008-12-27 15:39:24]

Another tiny ammendment to zorroswordsman at gmail dot com's resize class AND matt at rees-jenkins dot co dot uk addition. The class may resize to different width and height not only same ones:

<?php
// Set maximum image size (pixels)
public function set_size($max_x 100,$max_y 100)
{
    
    
// Resize
    
if($this->x_input $max_x || $this->y_input $max_y)
    {

        
$a$max_x $max_y;
        
$b$this->x_input $this->y_input;
        
        if (
$a<$b)
        {

            
$this->x_output $max_x;
            
$this->y_output = ($max_x $this->x_input) * $this->y_input;

        }
        else
        {

            
$this->y_output $max_y;
            
$this->x_output = ($max_y $this->y_input) * $this->x_input;

        }
        
// Ready
        
        
$this->resize TRUE;
        
    }
    
    
// Don't resize        
    
else { $this->resize FALSE; }
    
}
?>


And the use of the class is now:

<?php

##### DEMO #####

// Image
$src "myimage.jpg";

// Begin
$img = new imaging;
$img->set_img($src);
$img->set_quality(80);

// Small thumbnail
$img->set_size(250,150);
$img->save_img("small_250x150_" $src);

// Baby thumbnail
$img->set_size(50,250);
$img->save_img("baby_50x250_" $src);

// Finalize
$img->clear_cache();

?>

[#21] matt at rees-jenkins dot co dot uk [2008-10-14 03:32:18]

A tiny ammendment to zorroswordsman at gmail dot com's resize class. It was only resizing if both the width AND height where greater than the desired size. This should fix it:

<?php
// Set maximum image size (pixels)
function set_size($size 100)
{
    
// Resize
    
if($this->x_input $size || $this->y_input $size)
    {
        
// Wide
        
if($this->x_input >= $this->y_input)
        {
            
$this->x_output $size;
            
$this->y_output = ($this->x_output $this->x_input) * $this->y_input;
        }
        
// Tall
        
else
        {
            
$this->y_output $size;
            
$this->x_output = ($this->y_output $this->y_input) * $this->x_input;
        }
        
// Ready
        
$this->resize TRUE;
    }
    
// Don't resize
    
else { $this->resize FALSE; }
}
?>

[#22] zorroswordsman at gmail dot com [2008-09-24 19:46:43]

I've created a PHP5 image resize class, using ImageCopyResampled, that someone might find useful, with support for JPEG, PNG, and GIF formats. It retains the original image's aspect ratio when resizing, and doesn't resize or resample if the original width and height is smaller then the desired resize.

<?php

// Imaging
class imaging
{

    
// Variables
    
private $img_input;
    private 
$img_output;
    private 
$img_src;
    private 
$format;
    private 
$quality 80;
    private 
$x_input;
    private 
$y_input;
    private 
$x_output;
    private 
$y_output;
    private 
$resize;

    
// Set image
    
public function set_img($img)
    {

        
// Find format
        
$ext strtoupper(pathinfo($imgPATHINFO_EXTENSION));

        
// JPEG image
        
if(is_file($img) && ($ext == "JPG" OR $ext == "JPEG"))
        {

            
$this->format $ext;
            
$this->img_input ImageCreateFromJPEG($img);
            
$this->img_src $img;
            

        }

        
// PNG image
        
elseif(is_file($img) && $ext == "PNG")
        {

            
$this->format $ext;
            
$this->img_input ImageCreateFromPNG($img);
            
$this->img_src $img;

        }

        
// GIF image
        
elseif(is_file($img) && $ext == "GIF")
        {

            
$this->format $ext;
            
$this->img_input ImageCreateFromGIF($img);
            
$this->img_src $img;

        }

        
// Get dimensions
        
$this->x_input imagesx($this->img_input);
        
$this->y_input imagesy($this->img_input);

    }

    
// Set maximum image size (pixels)
    
public function set_size($size 100)
    {

        
// Resize
        
if($this->x_input $size && $this->y_input $size)
        {

            
// Wide
            
if($this->x_input >= $this->y_input)
            {

                
$this->x_output $size;
                
$this->y_output = ($this->x_output $this->x_input) * $this->y_input;

            }

            
// Tall
            
else
            {

                
$this->y_output $size;
                
$this->x_output = ($this->y_output $this->y_input) * $this->x_input;

            }

            
// Ready
            
$this->resize TRUE;

        }

        
// Don't resize
        
else { $this->resize FALSE; }

    }

    
// Set image quality (JPEG only)
    
public function set_quality($quality)
    {

        if(
is_int($quality))
        {

            
$this->quality $quality;

        }

    }

    
// Save image
    
public function save_img($path)
    {

        
// Resize
        
if($this->resize)
        {

            
$this->img_output ImageCreateTrueColor($this->x_output$this->y_output);
            
ImageCopyResampled($this->img_output$this->img_input0000$this->x_output$this->y_output$this->x_input$this->y_input);

        }

        
// Save JPEG
        
if($this->format == "JPG" OR $this->format == "JPEG")
        {

            if(
$this->resize) { imageJPEG($this->img_output$path$this->quality); }
            else { 
copy($this->img_src$path); }

        }

        
// Save PNG
        
elseif($this->format == "PNG")
        {

            if(
$this->resize) { imagePNG($this->img_output$path); }
            else { 
copy($this->img_src$path); }

        }

        
// Save GIF
        
elseif($this->format == "GIF")
        {

            if(
$this->resize) { imageGIF($this->img_output$path); }
            else { 
copy($this->img_src$path); }

        }

    }

    
// Get width
    
public function get_width()
    {

        return 
$this->x_input;

    }

    
// Get height
    
public function get_height()
    {

        return 
$this->y_input;

    }

    
// Clear image cache
    
public function clear_cache()
    {

        @
ImageDestroy($this->img_input);
        @
ImageDestroy($this->img_output);

    }

}

##### DEMO #####

// Image
$src "myimage.jpg";

// Begin
$img = new imaging;
$img->set_img($src);
$img->set_quality(80);

// Small thumbnail
$img->set_size(200);
$img->save_img("small_" $src);

// Baby thumbnail
$img->set_size(50);
$img->save_img("baby_" $src);

// Finalize
$img->clear_cache();

?>

[#23] crash [2008-08-12 06:49:49]

The suggestion of converting a gif to a png to retain transparency was useful. However the steps used to maintain the transparency work for a gif as well, so the conversion step is not necessary. Just do everything the same, and save as a gif anyway. i.e.

<?php
$g_iw is 
new image width
$g_ih is 
new image height

$img_src
=imagecreatefromgif($g_srcfile);
$img_dst=imagecreatetruecolor($g_iw,$g_ih);

//preserve alpha
imagecolortransparent($img_dstimagecolorallocate($img_dst000));
imagealphablending($img_dstfalse);
imagesavealpha($img_dsttrue);
imagecopyresampled($img_dst$img_src0000$g_iw$g_ih$g_is[0], $g_is[1]);

imagegif($img_dst$g_dstfile); 
imagedestroy($img_dst); 
?>

[#24] swizec at swizec dot com [2008-07-17 02:20:49]

Wrote a function for sanitising user uploaded images. It saves the native image in size roughly 800x600 so it still fits on most screens when opened, makes a desired size thumbnail and turns all images into high quality jpegs for smaller bandwidth use.

Thumbnails are made in a similar way a designer would make them in photoshop, first resize the most troublesome dimension to desired size, then crop the rest out so the image retains proportions and most of it ends up in the thumbnail.

<?php 

// $image is $_FILES[ <image name> ]
// $imageId is the id used in a database or wherever for this image
// $thumbWidth and $thumbHeight are desired dimensions for the thumbnail
function processImage$image$imageId$thumbWidth$thumbHeight )
{
    
$type $image'type' ];
    
$galleryPath 'images/collection/';
    
    if ( 
strpos$type'image/' ) === FALSE )
    { 
// not an image
        
return FALSE;
    }
    
$type str_replace'image/'''$type );
    
$createFunc 'imagecreatefrom' $type;
    
    
$im $createFunc$image'tmp_name' ] );
    
    
$size getimagesize$image'tmp_name' ] );
    
    
$w $size];
    
$h $size];
    if ( 
$w 800 || $h 600 )
    { 
// we make sure the image isn't too huge
        
if ( $w 800 )
        {
            
$nw 800;
            
$nh ceil$nw*($h/$w) );
        }elseif( 
$h 600 )
        {
            
$nh 600;
            
$nw ceil$nh*($w/$h) );
        }
        
        
$im2 imagecreatetruecolor$nw$nh );
        
imagecopyresampled$im2$im0000$nw$nh$w$h );
        
imagedestroy$im );
        
        
$im $im2;
        
$w $nw;
        
$h $nh;
    }
    
    
// create thumbnail
    
$tw $thumbWidth;
    
$th $thumbHeight;
    
$imT imagecreatetruecolor$tw$th );
    
    if ( 
$tw/$th $th/$tw )
    { 
// wider
        
$tmph $h*($tw/$w);
        
$temp imagecreatetruecolor$tw$tmph );
        
imagecopyresampled$temp$im0000$tw$tmph$w$h ); // resize to width
        
imagecopyresampled$imT$temp000$tmph/2-$th/2$tw$th$tw$th ); // crop
        
imagedestroy$temp );
    }else
    { 
// taller
        
$tmpw $w*($th/$h );
        
$imT imagecreatetruecolor$tmpw$th );
        
imagecopyresampled$imT$im0000$tmpw$h$w$h ); // resize to height
        
imagecopyresampled$imT$temp00$tmpw/2-$tw/20$tw$th$tw$th ); // crop
        
imagedestroy$temp );
    }
    
    
// save the image
    
imagejpeg$im$galleryPath $imgid '.jpg'100 );
    
imagejpeg$imT$galleryPath $imgid '_thumb.jpg'100 );
}

?>

[#25] mattura gmail com [2008-05-19 10:53:17]

Here's a little function I wrote to resize images to a maximum dimension - based on what facebook does in the galleries. You put in a source, destination and a maximum dimension in pixels (eg 300), and for example if the image is long and thin, the longest edge will be 300px, yet the image retains proportions. A square image will become 300x300, a 6x4 (landscape) will become 300x200, a 4x6 (portrait) - 200x300 etc.
It works on jpg images, but other formats can easily be added.
<?php
function createThumb($spath$dpath$maxd) {
 
$src=@imagecreatefromjpeg($spath);
 if (!
$src) {return false;} else {
  
$srcw=imagesx($src);
  
$srch=imagesy($src);
  if (
$srcw<$srch) {$height=$maxd;$width=floor($srcw*$height/$srch);}
  else {
$width=$maxd;$height=floor($srch*$width/$srcw);}
  if (
$width>$srcw && $height>$srch) {$width=$srcw;$height=$srch;}  //if image is actually smaller than you want, leave small (remove this line to resize anyway)
  
$thumb=imagecreatetruecolor($width$height);
  if (
$height<100) {imagecopyresized($thumb$src0000$width$heightimagesx($src), imagesy($src));}
  else {
imagecopyresampled($thumb$src0000$width$heightimagesx($src), imagesy($src));}
  
imagejpeg($thumb$dpath);
  return 
true;
 }
}
?>

[#26] bobbyboyojones at hotmail dot com [2008-03-18 11:41:14]

I hated that enlarging an image resulted in giant pixels rather than a smoother look, so I wrote this function.  It takes longer, but gives a much nicer look.

<?php

function imagecopyresampledSMOOTH(&$dst_img, &$src_img$dst_x$dst_y$src_x$src_y$dst_w$dst_h$src_w$src_h$mult=1.25){
    
// don't use a $mult that's too close to an int or this function won't make much of a difference

    
$tgt_w round($src_w $mult);
    
$tgt_h round($src_h $mult);
    
    
// using $mult <= 1 will make the current step w/h smaller (or the same), don't allow this, always resize by at least 1 pixel larger
    
if($tgt_w <= $src_w){ $tgt_w += 1; }
    if(
$tgt_h <= $src_h){ $tgt_h += 1; }
    
    
// if the current step w/h is larger than the final height, adjust it back to the final size
    // this check also makes it so that if we are doing a resize to smaller image, it happens in one step (since that's already smooth)
    
if($tgt_w $dst_w){ $tgt_w $dst_w; }
    if(
$tgt_h $dst_h){ $tgt_h $dst_h; }

    
$tmpImg imagecreatetruecolor($tgt_w$tgt_h);

    
imagecopyresampled($tmpImg$src_img00$src_x$src_y$tgt_w$tgt_h$src_w$src_h);
    
imagecopy($dst_img$tmpImg$dst_x$dst_y00$tgt_w$tgt_h);
    
imagedestroy($tmpImg);

    
// as long as the final w/h has not been reached, reep on resizing
    
if($tgt_w $dst_w OR $tgt_h $dst_h){
        
imagecopyresampledSMOOTH($dst_img$dst_img$dst_x$dst_y$dst_x$dst_y$dst_w$dst_h$tgt_w$tgt_h$mult);
    }
}

?>

[#27] arnar at netvistun dot is [2008-03-16 10:58:17]

A small thumb script. Lets you specify max height and width. The thumb will always be of a rectangular shape while the image itself retains it's proportions. Very clean.

<?php
// The file
$filename 'a.jpg';

// Set a maximum height and width
$width 80;
$height 80;

$thumbsize 80;

// Content type
header('Content-type: image/jpeg');

// Get new dimensions
list($width_orig$height_orig) = getimagesize($filename);

$ratio_orig $width_orig/$height_orig;

if (
$width/$height $ratio_orig) {
   
$width $height*$ratio_orig;
} else {
   
$height $width/$ratio_orig;
}

// Resample
$image_p imagecreatetruecolor($thumbsize$thumbsize);
$image imagecreatefromjpeg($filename);
imagecopyresampled($image_p$image, -($width/2) + ($thumbsize/2), -($height/2) + ($thumbsize/2), 00$width$height$width_orig$height_orig);

// Output
imagejpeg($image_pnull100);
?>

[#28] rayg at daylongraphics dot com [2008-03-07 02:45:46]

Here's a simple function to resample one JPEG imagefile to another while keeping aspect ratio of the source within the destination's dimensions. You can also tune the allowable distortion if you end up making too many thumbnails with thin blank areas around them. Should work when enlarging images too. Function returns true if it worked, false if not.

function resample_picfile($src, $dst, $w, $h)
{
// If distortion stretching is within the range below,
// then let image be distorted.
$lowend = 0.8;
$highend = 1.25;

$src_img = imagecreatefromjpeg($src);
if($src_img)
{
$dst_img = ImageCreateTrueColor($w, $h);


if($dst_img)
{
$src_w = imageSX($src_img);
$src_h = imageSY($src_img);

$scaleX = (float)$w / $src_w;
$scaleY = (float)$h / $src_h;
$scale = min($scaleX, $scaleY);

$dstW = $w;
$dstH = $h;
$dstX = $dstY = 0;

$scaleR = $scaleX / $scaleY;
if($scaleR < $lowend || $scaleR > $highend)
{
$dstW = (int)($scale * $src_w + 0.5);
$dstH = (int)($scale * $src_h + 0.5);

// Keep pic centered in frame.
$dstX = (int)(0.5 * ($w - $dstW));
$dstY = (int)(0.5 * ($h - $dstH));
}

imagecopyresampled(
$dst_img, $src_img, $dstX, $dstY, 0, 0, 
$dstW, $dstH, $src_w, $src_h); 
imagejpeg($dst_img, $dst); 
imagedestroy($dst_img);
}
imagedestroy($src_img);
return file_exists($dst);
}
return false;
}

[#29] RandomFeatureRequest [2008-03-02 07:51:31]

If anyone felt like implementing Bicubic Sharper and/or Bicubic Smoother, that would seriously rock.

[#30] wm at violet dot bg [2008-02-20 13:16:22]

This is a fixed version of ImageCopyResampledBicubic posted by liviu.malaescu
The original version wasn't respecting src_x & src_y args

<?php
    
function ImageCopyResampledBicubic(&$dst_image, &$src_image$dst_x$dst_y$src_x$src_y$dst_w$dst_h$src_w$src_h)  {
        
// we should first cut the piece we are interested in from the source
        
$src_img ImageCreateTrueColor($src_w$src_h);
        
imagecopy($src_img$src_image00$src_x$src_y$src_w$src_h);

        
// this one is used as temporary image
        
$dst_img ImageCreateTrueColor($dst_w$dst_h);

        
ImagePaletteCopy($dst_img$src_img);
        
$rX $src_w $dst_w;
        
$rY $src_h $dst_h;
        
$w 0;
        for (
$y 0$y $dst_h$y++)  {
            
$ow $w$w round(($y 1) * $rY);
            
$t 0;
            for (
$x 0$x $dst_w$x++)  {
                
$r $g $b 0$a 0;
                
$ot $t$t round(($x 1) * $rX);
                for (
$u 0$u < ($w $ow); $u++)  {
                    for (
$p 0$p < ($t $ot); $p++)  {
                        
$c ImageColorsForIndex($src_imgImageColorAt($src_img$ot $p$ow $u));
                        
$r += $c['red'];
                        
$g += $c['green'];
                        
$b += $c['blue'];
                        
$a++;
                    }
                }
                
ImageSetPixel($dst_img$x$yImageColorClosest($dst_img$r $a$g $a$b $a));
            }
        }

        
// apply the temp image over the returned image and use the destination x,y coordinates
        
imagecopy($dst_image$dst_img$dst_x$dst_y00$dst_w$dst_h);

        
// we should return true since ImageCopyResampled/ImageCopyResized do it
        
return true;
    }
?>

[#31] Michael Shepanski [2008-01-14 22:09:17]

Here is a function I thought I would share that will resample and copy an image with rounded corners.

<?php

function imageRoundedCopyResampled(&$dstimg, &$srcimg$dstx$dsty$srcx,
                                   
$srcy$dstw$dsth$srcw$srch$radius) {
    
# Resize the Source Image
    
$srcResized imagecreatetruecolor($dstw$dsth);
    
imagecopyresampled($srcResized$srcimg00$srcx$srcy,
                       
$dstw$dsth$srcw$srch);
    
# Copy the Body without corners
    
imagecopy($dstimg$srcResized$dstx+$radius$dsty,
              
$radius0$dstw-($radius*2), $dsth);
    
imagecopy($dstimg$srcResized$dstx$dsty+$radius,
              
0$radius$dstw$dsth-($radius*2));
    
# Create a list of iterations; array(array(X1, X2, CenterX, CenterY), ...)
    # Iterations in order are: Top-Left, Top-Right, Bottom-Left, Bottom-Right
    
$iterations = array(
        array(
00$radius$radius),
        array(
$dstw-$radius0$dstw-$radius$radius),
        array(
0$dsth-$radius$radius$dsth-$radius),
        array(
$dstw-$radius$dsth-$radius$dstw-$radius$dsth-$radius)
    );
    
# Loop through each corner 'iteration'
    
foreach($iterations as $iteration) {
        list(
$x1,$y1,$cx,$cy) = $iteration;
        for (
$y=$y1$y<=$y1+$radius$y++) {
            for (
$x=$x1$x<=$x1+$radius$x++) {
                
# If length (X,Y)->(CX,CY) is less then radius draw the point
                
$length sqrt(pow(($cx $x), 2) + pow(($cy $y), 2));
                if (
$length $radius) {
                    
imagecopy($dstimg$srcResized$x+$dstx$y+$dsty,
                              
$x$y11);
                }
            }
        }
    }
}
?>

[#32] matt1walsh DESPAMMER gmail dot com [2007-11-19 19:15:26]

None of the stuff I've seen for resizing transparent GIFs works consistently and yields a good image. The hack I thought of is silly, but it works okay -- convert GIF to PNG. This worked for me.

$g_iw is new image width
$g_ih is new image height

$img_src=imagecreatefromgif($g_srcfile);
$img_dst=imagecreatetruecolor($g_iw,$g_ih);

//preserve alpha
imagecolortransparent($img_dst, imagecolorallocate($img_dst, 0, 0, 0));
imagealphablending($img_dst, false);
imagesavealpha($img_dst, true);
imagecopyresampled($img_dst, $img_src, 0, 0, 0, 0, $g_iw, $g_ih, $g_is[0], $g_is[1]);

imagepng($img_dst, $g_dstfile); 
imagedestroy($img_dst);

[#33] Dave McCourt [2007-11-12 05:32:04]

This function is taken from lots of web sources so thanks to all for posting. It creates square or landscape thumbnails from .jpgs  from either portait or landscape original images. I decide in advance which way I want the thumbs to display for consistency. I usually sharpen the images as well post-upload, to save on server resources. I can post this code if anyone wants it. I hope this helps someone...

# create thumbnails from jpgs
# usage:
# create_jpgthumb(uploaded file, final file (with path), thumb height, thumb width, jpg quality, scale thumb (true) or fixed size (false); 
function create_jpgthumb($original, $thumbnail, $max_width, $max_height, $quality, $scale = true) {

list ($src_width, $src_height, $type, $w) = getimagesize($original);

if (!$srcImage = @imagecreatefromjpeg($original)) {
return false;
}

# image resizes to natural height and width
if ($scale == true) {

if ($src_width > $src_height ) {
$thumb_width = $max_width;
$thumb_height = floor($src_height * ($max_width / $src_width));
} else if ($src_width < $src_height ) {
$thumb_height = $max_height;
$thumb_width = floor($src_width * ($max_height / $src_height));
} else {
$thumb_width = $max_height;
$thumb_height = $max_height;
}

if (!@$destImage = imagecreatetruecolor($thumb_width, $thumb_height)) {
return false;
}

if (!@imagecopyresampled($destImage, $srcImage, 0, 0, 0, 0, $thumb_width, $thumb_height, $src_width, $src_height)) {
return false;
}

# image is fixed to supplied width and height and cropped
} else if ($scale == false) {

$ratio = $max_width / $max_height;

# thumbnail is landscape
 if ($ratio > 1) {
 
# uploaded pic is landscape
if ($src_width > $src_height) {

$thumb_width = $max_width;
$thumb_height = ceil($max_width * ($src_height / $src_width));

if ($thumb_height > $max_width) {
$thumb_height = $max_width;
$thumb_width = ceil($max_width * ($src_width / $src_height));
}

# uploaded pic is portrait
} else {

$thumb_height = $max_width;
$thumb_width = ceil($max_width * ($src_height / $src_width));

if ($thumb_width > $max_width) {
$thumb_width = $max_width;
$thumb_height = ceil($max_width * ($src_height / $src_width));
}

$off_h = ($src_height - $src_width) / 2;

}

if (!@$destImage = imagecreatetruecolor($max_width, $max_height)) {
return false;
}

if (!@imagecopyresampled($destImage, $srcImage, 0, 0, 0, $off_h, $thumb_width, $thumb_height, $src_width, $src_height)) {
return false;
}

# thumbnail is square
 } else {
 
if ($src_width > $src_height) {
$off_w = ($src_width - $src_height) / 2;
$off_h = 0;
$src_width = $src_height;
} else if ($src_height > $src_width) {
$off_w = 0;
$off_h = ($src_height - $src_width) / 2;
$src_height = $src_width;
} else {
$off_w = 0;
$off_h = 0;
}

if (!@$destImage = imagecreatetruecolor($max_width, $max_height)) {
return false;
}

if (!@imagecopyresampled($destImage, $srcImage, 0, 0, $off_w, $off_h, $max_width, $max_height, $src_width, $src_height)) {
return false;
}

 }
 

}

@imagedestroy($srcImage);

if (!@imageantialias($destImage, true)) {
return false;
}

if (!@imagejpeg($destImage, $thumbnail, $quality)) {
return false;
}

@imagedestroy($destImage);

return true;
}

[#34] tim dot daldini at gmail dot be [2007-10-03 20:57:01]

Tim's function is a whole lot faster, however, the quality setting doesnt seem right since resizing very big images doesnt affect quality of the resulting thumbnails that much on quality 1 for example.

Anyone has figured out how to use a more correct quality setting by comparing image surfaces (for example) basing on Tim's function?

images with a total of 10Megapixels that contain 5Megapixels when resized should use the same quality setting like images that contain 1Megapixels but only 0.5 when resized.

Not hard to understand, but the memoryload would be a lot lower if the function could decide to use a setting of quality 1 automatically when resizing big images to small thumbnails. This would be handy especially when using the function for images of various sizes in the same application.

[#35] liviu dot malaescu at gmail dot com [2007-09-25 12:37:54]

3800x2500px - 2s
3807x6768 - 4.7s 
Tested on a core2duo e4300/1gb ram - only one core used.
It reduces first with nearest-neighbour and then with bicubic on the smaller image. 
Thumb quality is fine :)

<?php
$cale_in 
"test.jpg"//input-file
$cale_out "test_thumb.jpg"//output-file
$make_thumbs "YES";
$thumbsize[0] = 100;
$thumbsize[1] = 75;
ini_set("memory_limit""134217728"); // needed for huge pictures

// Bicubic resampling, not written by me
function ImageCopyResampleBicubic 
(&$dst_img, &$src_img$dst_x$dst_y$src_x$src_y$dst_w$dst_h$src_w$src_h)  {
    
ImagePaletteCopy ($dst_img$src_img);
    
$rX $src_w $dst_w;
    
$rY $src_h $dst_h;
    
$w 0;
    for (
$y $dst_y$y $dst_h$y++)  {
        
$ow $w$w round(($y 1) * $rY);
        
$t 0;
        for (
$x $dst_x$x $dst_w$x++)  {
            
$r $g $b 0$a 0;
            
$ot $t$t round(($x 1) * $rX);
            for (
$u 0$u < ($w $ow); $u++)  { 
                for (
$p 0$p < ($t $ot); $p++)  {
                    
$c ImageColorsForIndex ($src_img
ImageColorAt ($src_img$ot $p$ow $u));
                    
$r += $c['red'];
                    
$g += $c['green'];
                    
$b += $c['blue'];
                    
$a++;
                }
            }
            
ImageSetPixel ($dst_img$x$y
ImageColorClosest ($dst_img$r $a$g $a$b $a)); 
        }
    }
}

function 
makeThumb($cale_in)  {
    global 
$thumbsize;
    
$sursa imagecreatefromjpeg($cale_in);
    
$is_jpeg getimagesize($cale_in);
    
$ws $is_jpeg[0];
    
$hs $is_jpeg[1];
    if(
$ws $thumbsize[0] && $hs $thumbsize[1])
    {
        
$aspect $ws/$hs;
        if(
$aspect <= 1.333333)  {
            
$hd $thumbsize[1];
            
$wd floor($hd*$aspect);
        }
        else  {
            
$wd $thumbsize[0];
            
$hd floor($wd/$aspect);
        } 
        
$Z ceil(log(($ws*$hs)/(4*$thumbsize[0]*$thumbsize[1])))+1;
        if(
log(($ws*$hs)/(4*$thumbsize[0]*$thumbsize[1])) < 0$Z=1;
        
$dx $dy 0;
        if(
$Z 1) {
            
$dest imagecreatetruecolor(round($ws/$Z), round($hs/$Z));
            for(
$i=0$i $hs$i+=$Z) {
                for(
$j=0$j $ws$j+=$Z) {
                    
$rgb imagecolorat($sursa$j$i);
                    
$r = ($rgb >> 16) & 0xFF;
                    
$g = ($rgb >> 8) & 0xFF;
                    
$b $rgb 0xFF;
                    
$pcol imagecolorallocate($dest$r$g$b);
                    
imagesetpixel($dest$dx$dy$pcol);
                    
$dx++;
                }
                
$dx=0;
                
$dy++;
            }
        }
        else 
        {
            
$dest imagecreatetruecolor($ws$hs);
            
imagecopy($dest$sursa0000$ws$hs );    
        }
        
imagedestroy($sursa);
        
$destrs imagecreatetruecolor($wd$hd);
        
ImageCopyResampleBicubic($destrs,$dest,0,0,0,0,
$wd,$hd,round($ws/$Z),round($hs/$Z));
        
ImageJpeg($destrs$cale_out100);    
        echo 
"Z:$Z <b>|</b> ($ws x $hs) -> ($wd x $hd) @ ".$ws/$hs;
    }    
}

function 
mf() {
    list(
$usec$sec) = explode(" "microtime());
    
$x[0] = $sec;  $x[1] = $usec;
    return 
$x;
}

$timp1 mf(); //starting to count
makeThumb($cale_in); //makes the actual thumb
$timp2 mf(); //timer ends
$dsec $timp2[0] - $timp1[0];
$dusec $timp2[1] - $timp1[1];
echo 
"<b>|</b> Time : <b>".round($dusec+$dsec,6)."s</b> <b>|</b><br />";

?>

[#36] tim at leethost dot com [2007-09-07 21:25:23]

Here's an improved and corrected version of my fastimagecopyresampled script.  Because I typically scale entire images it appears my previous code was not properly tested.  In any case, this new script has been thoroughly tested, cleaned up, and enhanced.  The code is a little tighter and quality values between 0 and 1 will yield a mosaic effect (basically lowering quality below the pervious lowest value of 1).  I would still suggest using a quality of 2 to 4 as that's the primary purpose of this script, which is high quality and fast results.  Don't be afraid of using a quality value of 1.5 for extreme cases where you have a bunch of very large images from digital cameras (like those 10M pixel cameras theses days) and creating thumbnails in batch mode.  Even a quality of 1.5 is a big improvement over imagecopyresized and is ultra-fast.

Anyway, enjoy and I hope this is the bug-free last version.

<?php
function fastimagecopyresampled (&$dst_image$src_image$dst_x$dst_y$src_x$src_y$dst_w$dst_h$src_w$src_h$quality 3) {
  
// Plug-and-Play fastimagecopyresampled function replaces much slower imagecopyresampled.
  // Just include this function and change all "imagecopyresampled" references to "fastimagecopyresampled".
  // Typically from 30 to 60 times faster when reducing high resolution images down to thumbnail size using the default quality setting.
  // Author: Tim Eckel - Date: 09/07/07 - Version: 1.1 - Project: FreeRingers.net - Freely distributable - These comments must remain.
  //
  // Optional "quality" parameter (defaults is 3). Fractional values are allowed, for example 1.5. Must be greater than zero.
  // Between 0 and 1 = Fast, but mosaic results, closer to 0 increases the mosaic effect.
  // 1 = Up to 350 times faster. Poor results, looks very similar to imagecopyresized.
  // 2 = Up to 95 times faster.  Images appear a little sharp, some prefer this over a quality of 3.
  // 3 = Up to 60 times faster.  Will give high quality smooth results very close to imagecopyresampled, just faster.
  // 4 = Up to 25 times faster.  Almost identical to imagecopyresampled for most images.
  // 5 = No speedup. Just uses imagecopyresampled, no advantage over imagecopyresampled.

  
if (empty($src_image) || empty($dst_image) || $quality <= 0) { return false; }
  if (
$quality && (($dst_w $quality) < $src_w || ($dst_h $quality) < $src_h)) {
    
$temp imagecreatetruecolor ($dst_w $quality 1$dst_h $quality 1);
    
imagecopyresized ($temp$src_image00$src_x$src_y$dst_w $quality 1$dst_h $quality 1$src_w$src_h);
    
imagecopyresampled ($dst_image$temp$dst_x$dst_y00$dst_w$dst_h$dst_w $quality$dst_h $quality);
    
imagedestroy ($temp);
  } else 
imagecopyresampled ($dst_image$src_image$dst_x$dst_y$src_x$src_y$dst_w$dst_h$src_w$src_h);
  return 
true;
}
?>

[#37] eblejr AT phrebh DOT com [2007-09-05 11:38:43]

Tim's code is fast, but if you're trying to put resampled images anywhere but in the top-left corner, it doesn't work.

[#38] Blendermf [2007-07-04 20:48:13]

tim, your resampling gives me better results than the gd function. It looks just as good as what my image resizing software does.

[#39] kristijan at leftor dot ba [2007-06-05 02:09:38]

There is bug in POST from tim at leethost dot com
25-Jan-2007 02:00.

Function work correctly when you making thumb from 0,0 to width/height. But if you want copy resized picture to other coordinates then you must change code in this:

function fastimagecopyresampled (&$dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h, $quality = 3) {
 if (empty($src_image) || empty($dst_image)) { return false; }
 if ($quality <= 1)
 {
   $temp = imagecreatetruecolor ($dst_w + 1, $dst_h + 1);
   imagecopyresized ($temp, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w + 1, $dst_h + 1, $src_w, $src_h);
   imagecopyresized ($dst_image, $temp, 0, 0, 0, 0, $dst_w, $dst_h, $dst_w, $dst_h);
   imagedestroy ($temp);
 }
 elseif ($quality < 5 && (($dst_w * $quality) < $src_w || ($dst_h * $quality) < $src_h))
 {
   $tmp_w = $dst_w * $quality;
   $tmp_h = $dst_h * $quality;
   $temp = imagecreatetruecolor ($tmp_w + 1, $tmp_h + 1);
   imagecopyresized ($temp, $src_image, 0, 0, $src_x, $src_y, $tmp_w + 1, $tmp_h + 1, $src_w, $src_h);
   imagecopyresampled ($dst_image, $temp, $dst_x, $dst_y, 0, 0, $dst_w, $dst_h, $tmp_w, $tmp_h);
   imagedestroy ($temp);
 } else
 {
   imagecopyresampled ($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h);
 }
 return true;
}

[#40] rich at corephp dot co dot uk [2007-05-20 15:05:08]

Be wary of this function when resizing images to make them *larger* than the original due to the memory consumption rate. For example a 200KB JPEG file (1024x768) will take up 4MB of memory when loaded, but when resampled to twice the the size the memory use jumps to 20.1MB. imagecopyresized does the same. Allow approx. 5 bytes per *pixel* for memory allowance when dealing with true colour images.

[#41] tim at leethost dot com [2007-01-25 14:00:34]

Here's a simple plug-and-play replacement to imagecopyresampled that will deliver results that are almost identical except MUCH faster (very typically 30 times faster).  I've been using this function for a few years but figured everyone could benefit from it.

For example, a 10 megapixel camera image (3872x2592 resolution) converted to thumbnail size using the default quality is 60 times faster than using imagecopyresampled (only 0.15 seconds from 8.9 seconds) and the image quality is almost identical.  There's also an optional "quality" parameter that allows you to select the quality you want (1 is lowest quality but fastest, 5 is highest quality but slowest, 3 is default).  All existing imagecopyresampled parameters fully work so it's truly plug-and-play.  It also automatically decides if it would be better to just use imagecopyresampled depending on source and destination image sizes.

My image analysis shows imagecopyresized renders on average 2.4% of pixels significantly different than imagecopyresampled.  These significantly different pixels give imagecopyresized the jagged, blocky, aliasing look.  Using fastimagecopyresampled with a quality of 2, the significantly different pixel rate is reduced to 0.8%.  With a quality of 3 (the default) it's reduced to 0.5% and at a quality of 4 it's reduced to only 0.03% but is still very typically 10-15 times faster for thumbnail creation.

Enjoy!

<?php
function fastimagecopyresampled (&$dst_image$src_image$dst_x$dst_y$src_x$src_y$dst_w$dst_h$src_w$src_h$quality 3) {
  
// Plug-and-Play fastimagecopyresampled function replaces much slower imagecopyresampled.
  // Just include this function and change all "imagecopyresampled" references to "fastimagecopyresampled".
  // Typically from 30 to 60 times faster when reducing high resolution images down to thumbnail size using the default quality setting.
  // Author: Tim Eckel - Date: 12/17/04 - Project: FreeRingers.net - Freely distributable.
  //
  // Optional "quality" parameter (defaults is 3).  Fractional values are allowed, for example 1.5.
  // 1 = Up to 600 times faster.  Poor results, just uses imagecopyresized but removes black edges.
  // 2 = Up to 95 times faster.  Images may appear too sharp, some people may prefer it.
  // 3 = Up to 60 times faster.  Will give high quality smooth results very close to imagecopyresampled.
  // 4 = Up to 25 times faster.  Almost identical to imagecopyresampled for most images.
  // 5 = No speedup.  Just uses imagecopyresampled, highest quality but no advantage over imagecopyresampled.

  
if (empty($src_image) || empty($dst_image)) { return false; }
  if (
$quality <= 1) {
    
$temp imagecreatetruecolor ($dst_w 1$dst_h 1);
    
imagecopyresized ($temp$src_image$dst_x$dst_y$src_x$src_y$dst_w 1$dst_h 1$src_w$src_h);
    
imagecopyresized ($dst_image$temp0000$dst_w$dst_h$dst_w$dst_h);
    
imagedestroy ($temp);
  } elseif (
$quality && (($dst_w $quality) < $src_w || ($dst_h $quality) < $src_h)) {
    
$tmp_w $dst_w $quality;
    
$tmp_h $dst_h $quality;
    
$temp imagecreatetruecolor ($tmp_w 1$tmp_h 1);
    
imagecopyresized ($temp$src_image$dst_x $quality$dst_y $quality$src_x$src_y$tmp_w 1$tmp_h 1$src_w$src_h);
    
imagecopyresampled ($dst_image$temp0000$dst_w$dst_h$tmp_w$tmp_h);
    
imagedestroy ($temp);
  } else {
    
imagecopyresampled ($dst_image$src_image$dst_x$dst_y$src_x$src_y$dst_w$dst_h$src_w$src_h);
  }
  return 
true;
}
?>

[#42] mr bitmap [2006-11-17 07:18:54]

For all those that are using imagecreatefromwbmp() for.BMP files, I believe you are wrong.

imagecreatefromwbmp() is for WBMP image files used for WAP devices not windows BMP images.

I don't think PHP has any built in Windows BMP functions. 

There are many examples here that make this mistake.

See the documentation for imagecreatefromwbmp()

[#43] caio at daisuki dot com dot br [2006-07-14 14:51:04]

Ok guys, the ultimate image merging tool, enjoy:

  function watermark($sourcefile, $watermarkfiles, $destination, $quality=90) {
  
  
  $ih = getimagesize($sourcefile);
  $ispng = $ih[2] == 3;
  if ($ispng)
    $sourcefile_id = imagecreatefrompng($sourcefile);
  else
    $sourcefile_id = imagecreatefromjpeg($sourcefile);
   
  $sourcefile_width=imageSX($sourcefile_id);
  $sourcefile_height=imageSY($sourcefile_id);   
  
  foreach ($watermarkfiles as $x => $watermarkfile) {
    $watermarkfile_id = imagecreatefrompng($watermarkfile['filename']);
    imageAlphaBlending($watermarkfile_id, false);
    imageSaveAlpha($watermarkfile_id, true);     
    $watermarkfile_width=imageSX($watermarkfile_id);
    $watermarkfile_height=imageSY($watermarkfile_id);
    
    // resample?
    if (isset($watermarkfile['resample'])) {
      $im_dest = imagecreatetruecolor ($watermarkfile['resample'][0], $watermarkfile['resample'][1]);
      imagealphablending($im_dest, false);
      imagecopyresampled($im_dest, $watermarkfile_id, 0, 0, 0, 0, $watermarkfile['resample'][0], $watermarkfile['resample'][1], $watermarkfile_width, $watermarkfile_height);
      imagesavealpha($im_dest, true);
      imagedestroy($watermarkfile_id);
      $watermarkfile_id = $im_dest;
      $watermarkfile_width = $watermarkfile['resample'][0];
      $watermarkfile_height = $watermarkfile['resample'][1];
    }
    
    // position ? if none given, centered
    if (isset($watermarkfile['position']))
      list($dest_x,$dest_y) = $watermarkfile['position'];
    else {
      $dest_x = ( $sourcefile_width / 2 ) - ( $watermarkfile_width / 2 ); // centered
      $dest_y = ( $sourcefile_height / 2 ) - ( $watermarkfile_height / 2 ); // centered
    }
    
    imagecopy($sourcefile_id, $watermarkfile_id, $dest_x, $dest_y, 0, 0, $watermarkfile_width, $watermarkfile_height);
    imagedestroy($watermarkfile_id);
  }
  if ($ispng)
    imagepng($sourcefile_id,$destination);
  else
    imagejpeg($sourcefile_id,$destination,$quality); 
  imagedestroy($sourcefile_id);
}

[#44] spencejames2000 at yahoo dot co dot uk [2006-05-13 06:27:14]

For anyone suffering from the srcX and srcY bug (some versions of gd ignore them completely - see http://bugs.php.net/bug.php?id=12780 for details), a quick solution is to use this code snippet:

<?php
function imgcopyresampled(&$dst_img$src_img$dst_x$dst_y$src_x$src_y$dst_w$dst_h$src_w$src_h)
{
    
$tmp_img imagecreatetruecolor($src_w$src_h);
    
$rv2 imagecopy($tmp_img$src_img0,0$src_x$src_y$src_w$src_h);
    
$rv1 imagecopyresampled($dst_img$tmp_img$dst_x,$dst_y0,0$dst_w$dst_h$src_w$src_h);
    
imagedestroy($tmp_img);
    return(
$rv1 and $rv2);
}
?>


By using imagecopy to extract the relevant portion of the source image, it works a lot more quickly than pike's solution below, and also without the extra blur.

It may be useful to use override_function in existing projects, although I have not tested this myself.

[#45] Tyron Madlener (tyron.at) [2006-05-11 01:43:42]

Creating a thumbnail (120x90 pixel) of a big image (3000x2000 pixel) took me about 5 seconds with imagecopyresampled()

Thats pretty much, so I tested a little how I could improve the speed. I found that imagecopyresized is way faster but results in poor quality.
So I combined both - I first reduce the big image via imagecopyresized to 1024x768 pixel and then create the small thumbnail via imagecopyresampled. The resulting quality is almost the same. In my tests, resizing took only about 2.2 seconds now - twice as fast :)

I also tried using that bicubic image resizing function in some earlier post here, but it was only faster when the thumbnails were smaller than 120x90 and the quality was not very good.

Here's the code if you wanna (I guess there are still a few possibilites to do some more optimiztions tough):

<?php
function CreateThumb($file,$maxwdt,$maxhgt$dest) {
    list(
$owdt,$ohgt,$otype)=@getimagesize($file);

  switch(
$otype) {
    case 
1:  $newimg=imagecreatefromgif($file); break;
    case 
2:  $newimg=imagecreatefromjpeg($file); break;
    case 
3:  $newimg=imagecreatefrompng($file); break;
    default: echo 
"Unkown filetype (file $file, typ $otype)"; return;
  }
    
  if(
$newimg) {
    if(
$owdt>1500 || $ohgt>1200)
            list(
$owdt$ohgt) = Resample($newimg$owdt$ohgt1024,768,0);
            
    
Resample($newimg$owdt$ohgt$maxwdt$maxhgt);
        
        if(!
$dest) return $newimg;
        
        if(!
is_dir(dirname($dest)))
            
mkdir(dirname($dest));
    
    switch(
$otype) {
      case 
1imagegif($newimg,dest); break;     
      case 
2imagejpeg($newimg,$dest,90); break; 
      case 
3imagepng($newimg,$dest);  break; 
    }
        
        
imagedestroy($newimg);
    
    
chmod($dest,0644);
  }
}

function 
Resample(&$img$owdt$ohgt$maxwdt$maxhgt$quality=1) { 
  if(!
$maxwdt$divwdt=0;
   else 
$divwdt=Max(1,$owdt/$maxwdt);
   
  if(!
$maxhgt$divhgt=0;
   else 
$divhgt=Max(1,$ohgt/$maxhgt);
    
  if(
$divwdt>=$divhgt) {
    
$newwdt=$maxwdt;
    
$newhgt=round($ohgt/$divwdt);
  } else {
    
$newhgt=$maxhgt;
    
$newwdt=round($owdt/$divhgt);
  }
    
    
$tn=imagecreatetruecolor($newwdt,$newhgt);
    if(
$quality)
        
imagecopyresampled($tn,$img,0,0,0,0,$newwdt,$newhgt,$owdt,$ohgt);        
    else 
        
imagecopyresized($tn,$img,0,0,0,0,$newwdt,$newhgt,$owdt,$ohgt);

    
imagedestroy($img);
    
    
$img $tn;
    
    return array(
$newwdt$newhgt);
}
?>

[#46] mracek at xko dot cz [2006-03-09 00:01:56]

Here is function which:
- resize and crop (crop format 4:3 or 1:1)
- methode resample/resize
- open jpg, gif, bmp, png
- save jpg (85%), gif, bmp, png
- show images

$FILE_MIMES = array(
'image/pjpeg'=>"jpg",
'image/jpeg'=>"jpg",
'image/jpg'=>"jpg",
'image/png'=>"png",
'image/x-png'=>"png",
'image/gif'=>"gif",
'image/bmp'=>"bmp");
$FILE_EXTS  = array('.jpeg','.jpg','.png','.gif','.bmp');
$MAX_SIZE  = 16777216;

$lng=array(
's_imgDimension'=>array(
       "80",
       "320"
       ),
's_imgCrop'    =>array(
       "- auto -",
       "na sirku",
       "na vysku",
       "ctverec",
       "- zadne -"
       ),
's_imgFormat'    =>array(
       "4/3",
       "1/1"
       ),
's_imgType'    =>array(
       "jpg",
       "png",
       "gif",
       "bmp"
       ),
's_imgMethode'    =>array(
       "resample",
       "resize"
       )
);

function PPimageTransform($photo1,$type1,$dim,$crop,
$format,$methode,$photo2,$type2)
{
if ($photo1!=="" && File_Exists($photo1))
{
   if (!($crop>0 && $crop<5)) $crop=0;
   width=x"
   list($w,$h) = GetImageSize($photo1);
   $w=($w<1)?1:$w;
   $h=($h<1)?1:$h;
   $wh=$w/$h;

   // format
   $format=($format=='4/3')?4/3:1;

   // auto crop
   if ($crop==0)
       {
       $z1=$format-  ($format-1)/2;
       $z2=$format+(1-$format-1)/2;
           if ($wh>$z1) {$crop=1;}
       elseif ($wh<$z2) {$crop=2;}
       else        {$crop=3;}
       }

   // scale
   if ($crop==4)
       {
       $a=$w>$h?$w:$h;
       $scale=$dim/$a;
       $nw=$w*$scale;$nw=($nw<1)?1:$nw;
       $nh=$h*$scale;$nh=($nh<1)?1:$nh;

       $d=array(0,0,floor($nw),floor($nh));
       $s=array(0,0,$w,$h);
       }
   else
       {
           if ($crop==3) {$nw=1;$nh=1;}
       elseif ($crop==2) {$nw=1/$format;$nh=1;}
       elseif ($crop==1) {$nw=1;$nh=1/$format;}
       $nw*=$dim;$nw=($nw<1)?1:$nw;
       $nh*=$dim;$nh=($nh<1)?1:$nh;
  
       $s1=$nw/$w;
       $s2=$nh/$h;
       $h1=$nh*$s1;
       $w2=$nw*$s2;

       $s1=($h1<=$nh)?$s1:0;
       $s2=($w2<=$nw)?$s2:0;
       $scale=($s1>$s2)?$s1:$s2;
       $scale=($scale<=0)?1:$scale;

       $d=array(0,0,floor($nw),floor($nh));
       $x1=floor(($w-$d[2]/$scale)/2);$x1=$x1<0?0:$x1;
       $y1=floor(($h-$d[3]/$scale)/2);$y1=$y1<0?0:$y1;
       $s=array($x1,$y1,floor($w-2*$x1),floor($h-2*$y1));
       }

   // input/output
   switch($type1)
       {
       case 'jpg': $imgIn = ImageCreateFromJPEG; break;
       case 'png': $imgIn = ImageCreateFromPNG;  break;
       case 'gif': $imgIn = ImageCreateFromGIF;  break;
       case 'bmp': $imgIn = ImageCreateFromWBMP; break;
       default: return FALSE; break;
       }
   switch($type2)
       {
       case 'jpg': $imgOut = ImageJPEG; break;
       case 'png': $imgOut = ImagePNG;  break;
       case 'gif': $imgOut = ImageGIF;  break;
       case 'bmp': $imgOut = ImageWBMP; break;
       default: return FALSE; break;
       }

   // resample (d-destination, s-source)
   $image1 = $imgIn($photo1);
   if ($methode==0)
       {
       $image2 = ImageCreateTruecolor($d[2],$d[3]);
       ImageCopyResampled($image2, $image1,
 $d[0],$d[1], $s[0],$s[1], $d[2],$d[3], $s[2],$s[3]);
       }
   else    {
       $image2 = ImageCreate($d[2],$d[3]);
       ImageCopyResized($image2, $image1,
$d[0],$d[1], $s[0],$s[1], $d[2],$d[3], $s[2],$s[3]);
       }

   // output
   if ($type2=='jpg')
       {$imgOut($image2,$photo2,85);}
   else    {$imgOut($image2,$photo2);}
   ImageDestroy($image2);
   ImageDestroy($image1);
   }
}

[#47] dmitry at dest dot by [2006-03-07 06:03:05]

Simple script on change of width and automatic creation of height, and also creation of the signature in the right we string to a corner. (Only for Jpg)

function easyResize($img_sourse, $save_to, $quality, $width, $str) { 
$size = GetImageSize($img_sourse);
$im_in = ImageCreateFromJPEG($img_sourse);

$new_height = ($width * $size[1]) / $size[0]; // Generate new height for image
$im_out = imagecreatetruecolor($width, $new_height);

ImageCopyResampled($im_out, $im_in, 0, 0, 0, 0, $width, $new_height, $size[0], $size[1]);

#Find X & Y for note
$X_var = ImageSX($im_out); 
$X_var = $X_var - 130;
$Y_var = ImageSY($im_out); 
$Y_var = $Y_var - 25;

#Color
$white = ImageColorAllocate($im_out, 0, 0, 0);

#Add note(simple: site address)
ImageString($im_out,2,$X_var,$Y_var,$str,$white);

ImageJPEG($im_out, $save_to, $quality); // Create image
ImageDestroy($im_in);
ImageDestroy($im_out);
}

// $str -  Inscription on the image;

[#48] areddan at silverarm dot ie [2006-01-29 06:30:54]

$file =$_FILES[userfile];
//name of the input form file upload element is userfile

//$to_file is a full path including filename 
//to where you want the thumnail to be copied to .
//example /usr/www/users/www/images/thumbs/thumb1.jpg

copy($file[tmp_name],$to_file) or die("The file $file[tmp_name] you are trying to upload couldn't be copied to $to_file");

//Extra stuff to put into the output to allow for jpeg / png or gif

//replace line: imagegif($thumb2, $fileout); //write to file with the following

switch($format)
       {
           case 'image/jpeg':
           imagejpeg($thumb2, $fileout,90); //write to file
           break;
           case 'image/gif';
           imagegif($thumb2, $fileout); //write to file
           break;
           case 'image/png':
           imagepng($thumb2, $fileout); //write to file
           break;
       }

[#49] areddan at silverarm dot ie [2006-01-27 00:40:46]

<?php
// The file
$filein ''// File in
$fileout 'ttt.gif'// Fileout - optional 

$imagethumbsize_w 100// thumbnail size (area cropped in middle of image)
$imagethumbsize_h 75// thumbnail size (area cropped in middle of image)
resize_then_crop$filein,$fileout,$imagethumbsize_w,
$imagethumbsize_h,"255","255","255");

//Author Alan Reddan Silverarm Solutions
//Date 27/01/2005
//Function that works well with images.
//It takes the image and reduces its size to best fit. i.e If you have an image
//that is 200 X 100 and you want a thumbnail of 75 X 50,
//it first resizes the image to 100 X 50
//and then takes out a portion 75 X 50 from then center of the input image.
//So loads of image information is retained.
//The corollary also holds if your input image is 100 X 200
//it first resizes image to 75 X 150 and then takes out a
//portion 75 X 75 from the centre
// The advantage here is that function decides on whether
//resize is by width or height itself.
//it also decides whether to use the height or the width as the base start point
//in the case that athumbnail is rectangular

function resize_then_crop$filein,$fileout,
$imagethumbsize_w,$imagethumbsize_h,$red,$green,$blue)
{

// Get new dimensions
list($width$height) = getimagesize($filein);
$new_width $width $percent;
$new_height $height $percent;

   if(
preg_match("/.jpg/i""$filein"))
   {
       
$format 'image/jpeg';
   }
   if (
preg_match("/.gif/i""$filein"))
   {
       
$format 'image/gif';
   }
   if(
preg_match("/.png/i""$filein"))
   {
       
$format 'image/png';
   }
   
       switch(
$format)
       {
           case 
'image/jpeg':
           
$image imagecreatefromjpeg($filein);
           break;
           case 
'image/gif';
           
$image imagecreatefromgif($filein);
           break;
           case 
'image/png':
           
$image imagecreatefrompng($filein);
           break;
       }

$width $imagethumbsize_w ;
$height $imagethumbsize_h ;
list(
$width_orig$height_orig) = getimagesize($filein);

if (
$width_orig $height_orig) {
  
$height = ($imagethumbsize_w $width_orig) * $height_orig;
} else {
    
$width = ($imagethumbsize_h $height_orig) * $width_orig;
}

if (
$width $imagethumbsize_w)
//if the width is smaller than supplied thumbnail size 
{
$width $imagethumbsize_w;
$height = ($imagethumbsize_w$width_orig) * $height_orig;;
}

if (
$height $imagethumbsize_h)
//if the height is smaller than supplied thumbnail size 
{
$height $imagethumbsize_h;
$width = ($imagethumbsize_h $height_orig) * $width_orig;
}

$thumb imagecreatetruecolor($width $height);  
$bgcolor imagecolorallocate($thumb$red$green$blue);   
ImageFilledRectangle($thumb00$width$height$bgcolor);
imagealphablending($thumbtrue);

imagecopyresampled($thumb$image0000,
$width$height$width_orig$height_orig);
$thumb2 imagecreatetruecolor($imagethumbsize_w $imagethumbsize_h);
// true color for best quality
$bgcolor imagecolorallocate($thumb2$red$green$blue);   
ImageFilledRectangle($thumb200,
$imagethumbsize_w $imagethumbsize_h $white);
imagealphablending($thumb2true);

$w1 =($width/2) - ($imagethumbsize_w/2);
$h1 = ($height/2) - ($imagethumbsize_h/2);

imagecopyresampled($thumb2$thumb0,0$w1$h1,
$imagethumbsize_w $imagethumbsize_h ,$imagethumbsize_w$imagethumbsize_h);

// Output
//header('Content-type: image/gif');
//imagegif($thumb); //output to browser first image when testing

if ($fileout !="")imagegif($thumb2$fileout); //write to file
header('Content-type: image/gif');
imagegif($thumb2); //output to browser
}
?>

[#50] com.hotmail@backglancer [2006-01-07 22:32:25]

wrote this for a game I was helping develop:

Auto Tile Maker -- takes the image and cuts it in several smaller pieces, deleting the original... i mean.. this is just for those of you who are lazy, coz the script is simple..
modify at will.

<?php
// $newfile is the full address of your newly uploaded file
// $floc = is the location of that file ending with /
// $t is the $_FILES['blah'] of your uploaded file.
// whatever... you guys understand enough to modify this code

$size getimagesize($newfile);
list(
$w$h) = $size;

if (
$h 20 || $w 20) {
    
$type array_pop($size);
    switch (
$type) {
        case 
'image/jpeg' $src_image imagecreatefromjpeg($newfile); break;
        
// insert more cases here :) i'm lazy too
        
default : echo 'not an image!'; return;
    }

    
$i 0;
    for (
$y 0$y $h$y += 20) {
    for (
$x 0$x $w$x += 20) {
        
$i++; // new file names will be like 1monkey.gif 2monkey.gif etc..
        
$new_image imagecreatetruecolor(2020);

        
imagecopyresampled ($new_image$src_image,
            
00,
            
$x$y,
            
2020,
            
2020
            
);
        
imagegif($new_image$floc.$i.$t['name']);
        
imagedestroy($new_image);

    } 
// x
    
// y
    
unlink($newfile);
}
?>

[#51] smrtak at 4um dot cz [2005-12-06 11:48:24]

class cobrazek 
    { 
        function resizeMaxJpeg($file,$mx,$my,$q=85) 
        { 
            $dst = cobrazek::resizeMax(imagecreatefromjpeg($file),$mx,$my); 
            if(!$dst) 
                return false; 
            if(!imagejpeg($dst,$file,$q)) 
                return false; 
            return true; 
        } 
        function resizeMax($src,$mx,$my) 
        { 
            //zjisti velikost 
            $sx = imagesx($src); 
            $sy = imagesy($src); 
            //spocitej cilovou velikost 
            $v = min(min($mx,$sx)/$sx,min($my,$sy)/$sy); 
            $dx = $v*$sx; 
            $dy = $v*$sy; 
            $dst = imagecreatetruecolor($dx,$dy); 
            //resample 
            imagecopyresampled ($dst,$src,0,0,0,0,$dx,$dy,$sx,$sy); 
            //vystup 
            return $dst; 
        } 
    }

[#52] pike-php at kw dot nl [2005-11-14 14:21:51]

If you have a bug that imagecopyresampled is completely ignoring srcX and srcY (a known and closed bug - http://bugs.php.net/bug.php?id=12780)  you can ofcourse apply two operations to do the same. E.g., instead of saying

ImageCopyResampled($dst_img, $src_img, 0, 0, $srcX, $srcY, $dstW, $dstH, $srcW, $srcH);

you can say

ImageCopyResampled($tmp_img, $src_img, -$srcX, -$srcY, "BUG","BUG", $orgW, $orgH, $orgW, $orgH);
ImageCopyResampled($dst_img, $tmp_img, 0, 0, "BUG","BUG", $dstW, $dstH, $srcW, $srcH);

which has the same effect but is twice as slow and blurry. you may replace "BUG","BUG" with anything you like without sideeffects :)

$2c,
*pike

[#53] George_A [2005-11-07 14:49:49]

For the best image quality...
How to get new proportional size of the image if the desible size of source image is approximatly equal to needed size. If needed size differs from source size on less than the user factor then transformation isn`t apply.


function imageCopyResize($image, $xSize, $ySize, $needed_user_factor, $new_image_path = "")
{
 //example: neded_user_factor = 0.2
 if($xSize == 0 || $ySize == 0)
    return array("At the leat one pair of size is 0",0,0);

 $size = getImageSize($image);
 $width = $size[0];
 $height = $size[1];
 $x_ratio = $xSize / $size[0]; 
 $y_ratio = $ySize / $size[1]; 
 if($x_ratio > $y_ratio)    $res_ratio = $y_ratio;
 else $res_ratio = $x_ratio;
 if(abs($res_ratio - 1) > $needed_user_factor)
    {
     $width = ceil($width * $res_ratio);
     $height = ceil($height * $res_ratio);
    }
 $fileinfo = pathinfo($image);
 $file_type = strtolower($fileinfo["extension"]);
 if($file_type == "jpg" || $file_type == "jpeg")
    $src = ImageCreateFromJpeg($image);
 else if($file_type == "gif")
    $src = ImageCreateFromGif($image);
 else if($file_type == "png")
    $src = ImageCreateFromPNG($image);
 else if($file_type == "bmp")    
    $src = ImageCreateFromBmp($image);    //Thanks Previous Coder
 else
   return array("Unknown image format: ".$file_type, 0, 0);   
 $output_path = ($new_image_path == "")?$image:$new_image_path;
 $dst = ImageCreateTrueColor($width, $height);
 ImageCopyResized($dst, $src, 0,0,0,0,$width, $height, $size[0], $size[1]);
 if($file_type == "jpg" || $file_type == "jpeg")
    ImageJpeg($dst, $output_path, 100);
 else if($file_type == "gif" || $file_type == "bmp")
     ImageGif($dst, $output_path);
 else if($file_type == "png")
    ImagePNG($dst, $output_path);

 ImageDestroy($src);
 ImageDestroy($dst);
 return array("", $width, $height);
}

[#54] erik at phpcastle dot com [2005-11-05 02:21:05]

I've changed the script from info at lontronics dot nl a little bit so the thumbnail is not cutted off when this is not necessary.

<?php
// Resize function

// $pictype is optional. When empty the image will not be cutted off
function resize($filename$dest$width$height$pictype "")
{
  
$format strtolower(substr(strrchr($filename,"."),1));
  switch(
$format)
  {
    case 
'gif' :
    
$type ="gif";
    
$img imagecreatefromgif($filename);
    break;
    case 
'png' :
    
$type ="png";
    
$img imagecreatefrompng($filename);
    break;
    case 
'jpg' :
    
$type ="jpg";
    
$img imagecreatefromjpeg($filename);
    break;
    case 
'jpeg' :
    
$type ="jpg";
    
$img imagecreatefromjpeg($filename);
    break;
    default :
    die (
"ERROR; UNSUPPORTED IMAGE TYPE");
    break;
  }

  list(
$org_width$org_height) = getimagesize($filename);
  
$xoffset 0;
  
$yoffset 0;
  if (
$pictype == "thumb"// To minimize destortion
  
{
    if (
$org_width $width $org_height$height)
    {
      
$xtmp $org_width;
      
$xratio 1-((($org_width/$org_height)-($width/$height))/2);
      
$org_width $org_width $xratio;
      
$xoffset = ($xtmp $org_width)/2;
    }
    elseif (
$org_height$height $org_width $width)
    {
      
$ytmp $org_height;
      
$yratio 1-((($width/$height)-($org_width/$org_height))/2);
      
$org_height $org_height $yratio;
      
$yoffset = ($ytmp $org_height)/2;
    }
  
//Added this else part -------------
  
} else {    
      
$xtmp $org_width/$width;
      
$new_width $width;
      
$new_height $org_height/$xtmp;
      if (
$new_height $height){
        
$ytmp $org_height/$height;
        
$new_height $height;
        
$new_width $org_width/$ytmp;
      }
      
$width round($new_width);
      
$height round($new_height);
  }
  

  
$img_n=imagecreatetruecolor ($width$height);
  
imagecopyresampled($img_n$img00$xoffset$yoffset$width$height$org_width$org_height);

  if(
$type=="gif")
  {
    
imagegif($img_n$dest);
  }
  elseif(
$type=="jpg")
  {
    
imagejpeg($img_n$dest);
  }
  elseif(
$type=="png")
  {
    
imagepng($img_n$dest);
  }
  elseif(
$type=="bmp")
  {
    
imagewbmp($img_n$dest);
  }
  Return 
true;
}
?>

[#55] info at lontronics dot nl [2005-10-28 03:08:30]

For an internet photoalbum I was looking for a script which I could simply drop in a directory with images and which would do the rest.
Therefor I am using the following resize script now. I have made the little thumb-part because I want to have all the same size thumbnails, but with as less as possible distortion. Therefor, images with other dimensions are resized, but also cut off a little.

Als $pictype = thumb, the extra dimension calculations are used
$width and $height are the new dimensions of $filename, the image
$dest is the directory where the new image must be copied in.

The script:

// Resize function
function resize($filename, $dest, $width, $height, $pictype)
{
$format = strtolower(substr(strrchr($filename,"."),1));
switch($format)
{
case 'gif' :
$type ="gif";
$img = imagecreatefromgif($filename);
break;
case 'png' :
$type ="png";
$img = imagecreatefrompng($filename);
break;
case 'jpg' :
$type ="jpg";
$img = imagecreatefromjpeg($filename);
break;
case 'jpeg' :
$type ="jpg";
$img = imagecreatefromjpeg($filename);
break;
default : 
die ("ERROR; UNSUPPORTED IMAGE TYPE");
break;
}

list($org_width, $org_height) = getimagesize($filename);
$xoffset = 0;
$yoffset = 0;
if ($pictype == "thumb") // To minimize destortion
{
if ($org_width / $width > $org_height/ $height)
{
$xtmp = $org_width;
$xratio = 1-((($org_width/$org_height)-($width/$height))/2);
$org_width = $org_width * $xratio;
$xoffset = ($xtmp - $org_width)/2;
}
elseif ($org_height/ $height > $org_width / $width)
{
$ytmp = $org_height;
$yratio = 1-((($width/$height)-($org_width/$org_height))/2);
$org_height = $org_height * $yratio;
$yoffset = ($ytmp - $org_height)/2;
}
}

$img_n=imagecreatetruecolor ($width, $height);
imagecopyresampled($img_n, $img, 0, 0, $xoffset, $yoffset, $width, $height, $org_width, $org_height);

if($type=="gif")
{
imagegif($img_n, $dest);
}
elseif($type=="jpg")
{
imagejpeg($img_n, $dest);
}
elseif($type=="png")
{
imagepng($img_n, $dest);
}
elseif($type=="bmp")
{
imagewbmp($img_n, $dest);
}
Return true;
}

[#56] Nicolas dot Grasset at notup2u dot net [2005-10-20 14:33:12]

If you are looking for a function that can resample your photos to a given size, no matter its original size and/or ratio, here it is. And to make more fun (beacause life has to be fun), you can even chose a border size for the picture!

$position can either be topleft, topright, bottomleft, bottomright or center.

<?php

function imagecopyresampledselection($filename$desired_width$desired_height$bordersize$position)
{    
    
// Get new dimensions
    
list($width$height) = getimagesize($filename);
    if(
$desired_width/$desired_height $width/$height):
        
$new_width $desired_width;
        
$new_height $height * ($desired_width $width);
    else:
        
$new_width $width * ($desired_height $height);
        
$new_height $desired_height;
    endif;
    
    
// Resize
    
$image_p imagecreatetruecolor($new_width$new_height);
    
$image_f imagecreatetruecolor($desired_width$desired_height);
    
$image imagecreatefromjpeg($filename);
    
imagecopyresampled($image_p$image0000$new_width$new_height$width$height);
    
    
// Adjust position
    
switch($position)
    {
        case(
"topleft"):
            
$x $bordersize;
            
$y $bordersize;
            break;
            
        case(
"topright"):
            
$x $new_width $desired_width $bordersize;
            
$y $bordersize;
            break;
        
        case(
"bottomleft"):
            
$x $bordersize;
            
$y $new_height $desired_height $bordersize;
            break;
        
        case(
"bottomright"):
            
$x $new_width $desired_width $bordersize;
            
$y $new_height $desired_height $bordersize;
            break;
        
        case(
"center"):
            
$x = ($new_width $desired_width) / $bordersize;
            
$y = ($new_height $desired_height) / $bordersize;
            break;
    }
    
    
// Resample with 1px border
    
imagecopyresampled($image_f$image_p$bordersize$bordersize$x$y,     $desired_width    $bordersize
                                                                                
$desired_height    $bordersize
                                                                                
$desired_width    $bordersize
                                                                                
$desired_height    $bordersize);
    
    return 
$image_f;
}

$image_f imagecopyresampledselection('test.jpg'5713191"center");
header('Content-type: image/jpeg');
imagejpeg($image_fnull100);

?>
 

To see a result, just browse http://www.notup2u.net/v8

Nicolas Grasset

[#57] [2005-08-11 17:19:55]

Here is my own custom utility which I call "Thumbnailer" (I know it is cheesy).
It's rather short, and it will take JPEG (you can change that easily), and
format it to a specified output width and height as a PNG
(or whatever else you choose):
<?php
//Dimensions
$outWidth=100$outHeight=75;
//Do it
$imgSrc=imagecreatefromjpeg("[source]");
$srcWidth=imagesx($imgSrc);
$srcHeight=imagesy($imgSrc);
//Make thumbnails
$imgOut=imagecreatetruecolor($outWidth,$outHeight);
imagerectangle($imgOut,0,0,$outWidth,$outHeight,
 
imagecolorallocate($imgOut,0,0,0));
//Copy them proportionatly
$dx=0$dy=0$dw=$outWidth$dh=$outHeight;
if (
$outWidth*$srcHeight!=$outHeight*$srcWidth) { //Non-proportional, cut-off
 //Which dimensions is larger
 
if ($srcWidth>$srcHeight) { //Empty space on top and bottom
  
$dw=$outWidth;
  
$dh=($dw*$srcHeight)/$srcWidth;
  
$dy=($outHeight-$dh)/2;
 }
 else { 
//Empty space on left and right
  
$dh=$outHeight;
  
$dw=($dh*$srcWidth)/$srcHeight;
  
$dx=($outWidth-$dw)/2;
 }
}
imagecopyresampled($imgOut,$imgSrc,$dx,$dy,0,0,
 
$dw,$dh,$srcWidth,$srcHeight); //imagecopyresized for lower quality
//Create the thumbnail and destroy everything else
imagepng($imgOut,"[out]");
echo 
"Image created successfully: $outWidth x $outHeight, ".round(filesize("[source]")/1024)." KB<br>";
imagedestroy($imgSrc);
imagedestroy($imgOut);
?>

I just use this as a loop to create thumbnails for a series of ordered images.

[#58] phpman at paodj dot net [2005-07-19 15:27:37]

<?php

function img_resize($path,$w=0,$h=0,$quality=100,$save=''){

  
$image_data=@getimagesize($path);

  
$image_type=$image_data[2];
  
$gd_ext=array('','jpg','gif');
  if(
$image_type!=1&&$image_type!=2) return false;
  if(
$save==''header('Content-type: '.$image_data['mime']); else $save=eregi_replace('%ext',$gd_ext[$image_type],$save);

  if(
$w!=0){
    
$rapporto=$image_data[0]/$w;
    if(
$h!=0){
      if(
$image_data[1]/$rapporto>$h$rapporto=$image_data[1]/$h;
    }
  }elseif(
$h!=0){
    
$tmp_h=$image_data[1]/$h;
  }else{
    return 
false;
  }

  
$thumb_w=$image_data[0]/$rapporto;
  
$thumb_h=$image_data[1]/$rapporto;

  if(
$image_type==1$img_src=@imagecreatefromgif($path);
  elseif(
$image_type==2$img_src=@imagecreatefromjpeg($path);

  
$img_thumb=@imagecreatetruecolor($thumb_w,$thumb_h);
  
$result=@imagecopyresampled($img_thumb,$img_src,
0,0,0,0,$thumb_w,$thumb_h,$image_data[0],$image_data[1]);
  if(!
$img_src||!$img_thumb||!$result) return false;

  if(
$image_type==1$result=@imagegif($img_thumb,$save);
  elseif(
$image_type==2$result=@imagejpeg($img_thumb,$save,$quality);

  return 
$result;
}

?>


This script resize images. It can also make thumbs. It use the resample of images for hight quality result.

It can show the result or save it (if $save isn't null).
It respect the width and/or the height of image.
It can replace the destination file extestion dinamically (filename.%ext)
Support gif & jpg.

Return false if something goes wrong.

[#59] [2005-07-04 17:46:46]

It should be noted that the imagecopyresampled() function is much more blurry than Photoshop CS's default bicubic funtion. And looks similar to a blury version of Photoshop's bilinear function. The documentation fails to note which algorithm is used in resampling.

[#60] Pie pie [2005-05-25 17:21:43]

Confirming on what fluffle said, and to say his code will also crop and resize an image what is smaller than 100x100 pixels if you want. This is important because it means your images no matter how you decide to rezise them, will maintain their aspect ratios and with a minimum amount of image loss.

//Get file type
$mime = $orig_image_mimetype;
$type = substr($mime, strpos($mime,'/')+1);
switch($type) {
case 'jpeg':
case 'pjpeg':
$big = imagecreatefromjpeg($file);
break;
case 'png':
case 'x-png':
$big = imagecreatefrompng($file);
  break;
case 'gif':
$big = imagecreatefromgif($file);
break;
default:
return FALSE;
break;
}

The above code is what I use to support multiple file type resizing. I then use the same thing again when it's time to output the image using $result = imagejpeg($thumb,'',80), imagepng($thumb), and imagegif($thumb).

[#61] fluffle <at> gmail <dot> com [2005-05-21 01:35:14]

Just to clarify that src_w and src_h do not necessarily need to be the source image width and height, as they specify the size of the rectangle cropped from the source picture, with its top left corner situated at (src_x, src_y).

For example, the code below crops a jpeg image to be square, with the square situated in the centre of the original image, and then resizes it to a 100x100 thumbnail.

list($ow, $oh) = getimagesize($image_filename);
$big = imagecreatefromjpeg($image_filename);
$thumb = imagecreatetruecolor(100,100);
if ($ow > $oh) {
    $off_w = ($ow-$oh)/2;
    $off_h = 0;
    $ow = $oh;
} elseif ($oh > $ow) {
    $off_w = 0;
    $off_h = ($oh-$ow)/2;
    $oh = $ow;
} else {
    $off_w = 0;
    $off_h = 0;
}
imagecopyresampled($thumb, $big, 0, 0, $off_w, $off_h, 100, 100, $ow, $oh);

[#62] carnivorous_winds_fr AT yahoo DOT fr [2005-05-18 22:47:27]

I tried this code from a previous post.

<?php
...
         
$t_im imageCreateTrueColor($t_wd,$t_ht);
         
imageAntiAlias($t_im,true);
         
imagealphablending($t_imfalse);
         
imagesavealpha($t_im,true);
         
$transparent imagecolorallocatealpha($t_im2552552550);
         for(
$x=0;$x<$t_wd;$x++) {
           for(
$y=0;$y<$t_ht;$y++) {
             
imageSetPixel$t_im$x$y$transparent );
           }
         }
         
imageCopyResampled($t_im$o_im0000$t_wd$t_ht$o_wd$o_ht);
         
imagePNG($t_im$image_name);
...
?>


It seems that it is not working correctly. In my test the source picture in ImageCopyResampled() is smaller than the destination picture $t_im, the remaining part is white !

I changed transparent alpha channel to 127, and I tried to replace loops with imagefilledrectangle().

It works fine and these resource greedy loops are removed.

Here is the code with my change.

<?php
...
         
$t_im imageCreateTrueColor($t_wd,$t_ht);
         
imageAntiAlias($t_im,true);
         
imagealphablending($t_imfalse);
         
imagesavealpha($t_im,true);
         
$transparent imagecolorallocatealpha($t_im255255255127);
         
imagefilledrectangle($t_img00$t_wd$t_ht$transparent);
         
imageCopyResampled($t_im$o_im0000$t_wd$t_ht$o_wd$o_ht);
         
imagePNG($t_im$image_name);
...
?>

[#63] del at kartoon dot net [2005-05-05 01:38:27]

This snippet allows you to grab a thumbnail from the center of a large image.  This was used for a client photo gallery for art to give a teaser of the image to come (only a small portion).  You could get dynamic with this value.  I also put in a scaling factor in case you want to scale down first before chopping.

<?php
// The file
$filename 'moon.jpg';
$percent 1.0// if you want to scale down first
$imagethumbsize 200// thumbnail size (area cropped in middle of image)
// Content type
header('Content-type: image/jpeg');

// Get new dimensions
list($width$height) = getimagesize($filename);
$new_width $width $percent;
$new_height $height $percent;

// Resample
$image_p imagecreatetruecolor($imagethumbsize $imagethumbsize);  // true color for best quality
$image imagecreatefromjpeg($filename);

// basically take this line and put in your versin the -($new_width/2) + ($imagethumbsize/2) & -($new_height/2) + ($imagethumbsize/2) for
// the 2/3 position in the 3 and 4 place for imagecopyresampled
// -($new_width/2) + ($imagethumbsize/2)
// AND
// -($new_height/2) + ($imagethumbsize/2)
// are the trick
imagecopyresampled($image_p$image, -($new_width/2) + ($imagethumbsize/2), -($new_height/2) + ($imagethumbsize/2), 00$new_width $new_width $width$height);

// Output

imagejpeg($image_pnull100);
?>

[#64] djneoform at gmail dot com [2005-03-04 06:21:33]

Here's a function i made that will force a given set of constraints on an image (usrfull if you want to make thumbnails that are all the same size) while keeping aspect ratio.

It resizes, then crops the extra off the top or bottom.

function forceConstraints($srcFile, $srcType, $dstType, $dstWidth, $dstHeight, $dstPath)
{
if ($srcType == "image/jpeg")
$handle = @imagecreatefromjpeg($srcFile);
else if ($srcType == "image/png")
$handle = @imagecreatefrompng($srcFile);
else if ($srcType == "image/gif")
$handle = @imagecreatefromgif($srcFile);
else
return false;

if (!$handle)
return false;

$srcWidth  = @imagesx($handle);
$srcHeight = @imagesy($handle);

if ($srcWidth >= $dstWidth && $srcHeight >= $dstHeight)
{
$newHandle = @imagecreatetruecolor($dstWidth, $dstHeight);
if (!$newHandle)
return false;

if($srcHeight < $srcWidth)
{
$ratio = (double)($srcHeight / $dstHeight);

$cpyWidth = round($dstWidth * $ratio);
if ($cpyWidth > $srcWidth)
{
$ratio = (double)($srcWidth / $dstWidth);
$cpyWidth = $srcWidth;
$cpyHeight = round($dstHeight * $ratio);
$xOffset = 0;
$yOffset = round(($srcHeight - $cpyHeight) / 2);
} else {
$cpyHeight = $srcHeight;
$xOffset = round(($srcWidth - $cpyWidth) / 2);
$yOffset = 0;
}

} else {
$ratio = (double)($srcWidth / $dstWidth);

$cpyHeight = round($dstHeight * $ratio);
if ($cpyHeight > $srcHeight)
{
$ratio = (double)($srcHeight / $dstHeight);
$cpyHeight = $srcHeight;
$cpyWidth = round($dstWidth * $ratio);
$xOffset = round(($srcWidth - $cpyWidth) / 2);
$yOffset = 0;
} else {
$cpyWidth = $srcWidth;
$xOffset = 0;
$yOffset = round(($srcHeight - $cpyHeight) / 2);
}
}

if (!@imagecopyresampled($newHandle, $handle, 0, 0, $xOffset, $yOffset, $dstWidth, $dstHeight, $cpyWidth, $cpyHeight))
return false;
@imagedestroy($handle);

if ($dstType == "png")
@imagepng($newHandle, $dstPath.".png");
else if ($dstType == "jpg")
@imagejpeg($newHandle, $dstPath.".jpg", 90);
else if ($dstType == "gif")
@imagegif($newHandle, $dstPath.".gif");
else
return false;
@imagedestroy($newHandle);
return true;

} else {
return "Sorry, that image is too small. The image must be at least ".$dstWidth."x".$dstHeight." pixels in size.";
}
}

[#65] afrowuk at tiscali dot co dot uk [2005-01-02 07:17:22]

This simple function resizes a JPG image file giving just a maximum width, and resizes keeping the aspect ratio. This is useful if you have to resize a JPG image that must fit the width of i.e. a div element, but doesn't have to have a maximum height.
<?php
function resizeJPG($jpgFile$width) {

    
// Get new dimensions
    
list($width_orig$height_orig) = getimagesize($jpgFile);
    
$height = (int) (($width $width_orig) * $height_orig);

    
// Resample
    
$image_p imagecreatetruecolor($width$height);
    
$image imagecreatefromjpeg($jpgFile);
    
imagecopyresampled($image_p$image0000$width$height$width_orig$height_orig);

    
// Output
    
imagejpeg($image_p$jpgFile100);

}
?>


-Stu

[#66] stemplar444 at yahoo dot com [2004-08-11 22:57:40]

Two comments regarding imageCopyResampleBicubic() published here. 

Quality:
More grainy than imagecopyresampled(). Not very good for bigger destination images, I think.

Speed:
In my tests, it was only faster if destination size was smaller than ~200x200 pixel. The function becomes slower and slower the bigger the destination image gets. In contrast, imagecopyresampled() finished at the same speed, no matter how big the destination was. My source image resoloution ~ 1500x2000 pixel.

[#67] ron at korving dot demon dot nl [2004-08-07 14:25:21]

This Bicubic resample algorithm is based on the one Scott posted earlier, only this one is about 50% faster for truecolor images and about 10% faster for palette images.

<?php

function imageCopyResampleBicubic($dst_img$src_img$dst_x$dst_y$src_x$src_y$dst_w$dst_h$src_w$src_h)
{
  
$scaleX = ($src_w 1) / $dst_w;
  
$scaleY = ($src_h 1) / $dst_h;

  
$scaleX2 $scaleX 2.0;
  
$scaleY2 $scaleY 2.0;

  
$tc imageistruecolor($src_img);

  for (
$y $src_y$y $src_y $dst_h$y++)
  {
    
$sY   $y $scaleY;
    
$siY  = (int) $sY;
    
$siY2 = (int) $sY $scaleY2;

    for (
$x $src_x$x $src_x $dst_w$x++)
    {
      
$sX   $x $scaleX;
      
$siX  = (int) $sX;
      
$siX2 = (int) $sX $scaleX2;

      if (
$tc)
      {
        
$c1 imagecolorat($src_img$siX$siY2);
        
$c2 imagecolorat($src_img$siX$siY);
        
$c3 imagecolorat($src_img$siX2$siY2);
        
$c4 imagecolorat($src_img$siX2$siY);

        
$r = (($c1 $c2 $c3 $c4) >> 2) & 0xFF0000;
        
$g = ((($c1 0xFF00) + ($c2 0xFF00) + ($c3 0xFF00) + ($c4 0xFF00)) >> 2) & 0xFF00;
        
$b = ((($c1 0xFF)   + ($c2 0xFF)   + ($c3 0xFF)   + ($c4 0xFF))   >> 2);

        
imagesetpixel($dst_img$dst_x $x $src_x$dst_y $y $src_y$r+$g+$b);
      }
      else
      {
        
$c1 imagecolorsforindex($src_imgimagecolorat($src_img$siX$siY2));
        
$c2 imagecolorsforindex($src_imgimagecolorat($src_img$siX$siY));
        
$c3 imagecolorsforindex($src_imgimagecolorat($src_img$siX2$siY2));
        
$c4 imagecolorsforindex($src_imgimagecolorat($src_img$siX2$siY));

        
$r = ($c1['red']   + $c2['red']   + $c3['red']   + $c4['red']  ) << 14;
        
$g = ($c1['green'] + $c2['green'] + $c3['green'] + $c4['green']) << 6;
        
$b = ($c1['blue']  + $c2['blue']  + $c3['blue']  + $c4['blue'] ) >> 2;

        
imagesetpixel($dst_img$dst_x $x $src_x$dst_y $y $src_y$r+$g+$b);
      }
    }
  }
}

?>

[#68] [2004-07-15 17:09:49]

In add to all the posts that describes how to create thumbnails:

If you are trying to resample a png image with its transparency you need to do this workaround:

<?php
...
          
$t_im imageCreateTrueColor($t_wd,$t_ht);
          
imageAntiAlias($t_im,true);
          
imagealphablending($t_imfalse);
          
imagesavealpha($t_im,true);
          
$transparent imagecolorallocatealpha($t_im2552552550);
          for(
$x=0;$x<$t_wd;$x++) {
            for(
$y=0;$y<$t_ht;$y++) {
              
imageSetPixel$t_im$x$y$transparent );
            }
          }
          
imageCopyResampled($t_im$o_im0000$t_wd$t_ht$o_wd$o_ht);
          
imagePNG($t_im$image_name);
...
?>


The alphablending must be off so the imagesavealpha can be true.

The double FORs is need to fix the problem with imagefill function that not support colors with alpha setted.

It is TO SLOWLIER than imagefill, but do a nice work with static images.

Take a look and enjoy the nice result.

(this workaround needs the gd2 library)

[s]
Pigmeu

[#69] m.kumar [at] gmx.at [2001-08-30 21:10:59]

For those who think that resampling loads the server too badly, have a look at this fine article over at zend:

http://www.zend.com/zend/art/scriptcaching.php

it describes how to create static html from scripts, however, this technique is pretty easily applicable to images.

I've written a short script to outline how to adapt my above mentioned article for caching of thumbnails. see:
http://tzu.nme.at/php/cache.phps

上一篇:下一篇: