草庐IT

php - 是否有类似 Python 的 PHP ctype 的东西?无需编写扩展即可访问库?

Python有ctypes访问库。在PHP中,您可以为所有内容编写扩展。像libgd这样的流行扩展几乎随处可用。有没有像Python的ctypes一样工作的扩展,让您无需编写PHP扩展就可以访问库? 最佳答案 您正在寻找ffi. 关于php-是否有类似Python的PHPctype的东西?无需编写扩展即可访问库?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2152584/

php - ctype_alpha 但允许空格(php)

我想知道在使用ctype_alpha检查时是否可以在文本字段中允许空格。由于ctype_alpha只允许字母,我不知道如何让用户在字段中输入空格。我确实尝试过使用ctype_space但这没有用。我只是希望用户只能键入字母,并且如果他们“愿意”,他们可以选择包含空格。我希望我不必使用正则表达式。elseif(!ctype_alpha($fname)){echo"Yournamemayonlycontainalphabeticalletters";} 最佳答案 这就是我要做的if(!ctype_alpha(str_replace(''

php - 如何使用 ctype_alnum() 允许下划线和破折号?

如何在使用ctype_alnum()时将_和-的异常(exception)添加为有效字符??我有以下代码:if(ctype_alnum($username)){returnTRUE;}elseif(!ctype_alnum($username)){$this->form_validation->set_message('_check_username','Invalidusername!Alphanumericsonly.');returnFALSE;} 最佳答案 由于ctype_alnum只验证字母数字字符,试试这个:$sUser

php - 什么是 setlocale(LC_CTYPE, 'C' );实际上呢?

当我的PHP脚本以UTF-8编码运行时,使用非ASCII字符,一些PHP函数如strtolower()不起作用。我可以使用mb_strtolower,但是这个脚本可以在各种不同的平台和配置上运行,并且多字节字符串扩展可能不可用。我可以在使用前检查该函数是否存在,但我的代码中到处都是字符串函数,我不想替换每个实例。有人建议使用set_locale(LC_CTYPE,'C'),他说这会导致字符串函数正常工作。这听起来不错,但我不想在不确切了解其作用的情况下介绍该更改。我以前用set_locale改变数字的格式,但是我以前没有用过LC_CTYPE标志,我不太明白它的作用。值'C'是什么意思?

c++ - 覆盖 ctype<wchar_t>

我正在编写一个lambda演算解释器来娱乐和练习。我通过添加ctype让iostreams正确标记标识符将标点符号定义为空格的方面:structtoken_ctype:ctype{maskt[table_size];token_ctype():ctype(t){for(size_ttx=0;tx(classic_table()可能会更干净,但在OSX上不起作用!)然后在我点击标识符时交换facet:localetoken_loc(in.getloc(),newtoken_ctype);…localeconst&oldloc=in.imbue(token_loc);in.unget()>

C++ std::ctype<char>::widen() 的作用是什么?

根据C++标准(C++17草案(N4659)的§30.7.5.2.4),out不会对ch执行扩大操作,如果ch是char和out是std::ostream.这是否意味着std::ctype::widen()(即char->char)是否由标准保证为基本源字符集中所有字符的恒等函数(widen(ch)==ch)?如果是这样,这是否反过来意味着标准要求所有语言环境使用基本源字符集中相同的非宽(或多字节)字符编码?如果不是,好像是out,对于文字的字符编码有特殊选择,可能无法在所有语言环境中工作,即使它在某些语言环境中工作。也就是说,可能无法选择字rune字编码,例如out同时适用于所有语言

python - 如何在 python 中使用 ctypes 获取 Windows 窗口名称

我尝试通过具有长对象的句柄获取Windows窗口标题名称和pids。我的代码有效,但有问题。当我应该得到10个或更多时,我只得到4个窗口标题。任何人都可以帮助并告诉我如何修复此代码吗?我认为问题在于我如何转换长对象(我不太了解它们,以及一般的ctypes)。from__future__importprint_functionfromctypesimport*psapi=windll.psapititles=[]#getwindowtitlefrompiddefgwtfp():max_array=c_ulong*4096pProcessIds=max_array()pBytesRetur

python - ctypes中的编译器依赖

我有一个第三方闭源库,它是用visualstudio2010构建的windowsdll。首先,我计划使用例如为该dll构建一个扩展模块。痛饮。然而,它是用VS2010构建的,而所有python2发行版都是用VS2008构建的,这破坏了这一事实。现在ctypes好像没有这个限制了。我使用VS2010构建了一个简单的dll(dependencywalker显示dll链接到msvcr100.dll),其功能为:intfnTestLib2(inta,intb){returna+b;}将其加载到ctypes中并fcn=mydll.fnTestLib2fcn.argtypes=[ctypes.c_

Python ctypes 和没有足够的参数(缺少 4 个字节)

我要调用的函数是:voidFormatError(HRESULThrError,PCHARpszText);使用windll从自定义dll。c_p=c_char_p()windll.thedll.FormatError(errcode,c_p)结果:ValueError:Procedureprobablycalledwithnotenougharguments(4bytesmissing)改为使用cdll将字节丢失计数器增加到12。上面的错误代码是从同一dll的另一个函数返回的错误代码。如何正确接听电话? 最佳答案 至少,如果您正确

Python ctypes : SetWindowsHookEx callback function never called

我正在尝试用Python编写一个程序,它知道何时显示警告框/对话框。它处理多个显示器,我希望它在任务栏图标闪烁、弹出错误/通知等时在辅助显示器上显示可视化。据我所知,检测这些事件的方法是使用消息Hook,如下所述:http://msdn.microsoft.com/en-us/library/ms632589%28v=vs.85%29.aspx我什至幸运地找到了一个从Python访问SetWindowsHookEx函数的示例。(此特定示例使用鼠标信号,但我可以更改常量以监听不同的消息)。http://www.python-forum.org/pythonforum/viewtopic.