草庐IT

preg-replace-callback

全部标签

php - 字符串损坏或 preg_match 错误?

NO-BREAKSPACE和许多其他UTF-8符号need2bytestoitsrepresentation;因此,在假定的UTF8字符串上下文中,非ASCII(>127)的孤立(不以xC2开头)字节是无法识别的字符……好吧,这只是布局问题(!),但是它破坏了整个字符串?如何避免这种“非预期行为”?(它occursinsomefunctionsandnotinothers)。示例(仅使用preg_match生成非预期行为):header("Content-Type:text/plain;charset=utf-8");//sameiftext/html//PHPVersion5.5.4

php - Callback_handler 不会触发 WooCommerce

我正在为WooCommerce构建一个支付网关,支付在异地URL中进行。我需要该页面能够向WooCommerce插件发送消息,而“回调”URL正是我所需要的。WooCommerce似乎有这个,但我无法让它工作。你应该能够ping:http://yoursite/wc-api/WC_your_gateway然后你应该添加add_action('woocommerce_api_callback','callback_handler');然后它应该触发这样的功能公共(public)函数callback_handler(){}但是当我转到该URL时,我在我的页面上看到的只是一个1-我的处理程序

php - 如果 preg_match 有多个单词

是否可以对多个单词使用带有preg_match的if语句,并在找到所有单词时使条件为真?$line="oneblah,twoblahblahthree";//notworkingcodeif(preg_match('[one|two|three]',$line)){echo"matchedallthree";}else{echo"didn'tmatchallthree";}已经尝试了很多东西,但即使找到一个词也总是满足条件.. 最佳答案 使用积极的前瞻:preg_match("%(?=.*one)(?=.*two)(?=.*thre

PHP preg_replace非贪心麻烦

我一直在使用以下站点来测试PHP正则表达式,因此我不必经常上传:http://www.spaweditor.com/scripts/regex/index.php我正在使用以下正则表达式:/(.*?)\.{3}/在以下字符串上(替换为空):Non-importantdata...importantdata...moreimportantdata并且preg_replace正在返回:moreimportantdata但我希望它返回:importantdata...moreimportantdata我以为?是非贪婪修饰符。这是怎么回事? 最佳答案

PHP 5.4 安装后 : preg_match(): Compilation failed: unknown option bit(s) set at offset 0

我最近在我的LionOSX64位上将我的PHP升级到版本5.4.1,我在Codeigniter中遇到了一个错误:Severity:WarningMessage:preg_match():Compilationfailed:unknownoptionbit(s)setatoffset0Filename:core/Utf8.phpLineNumber:44我用谷歌搜索了这个问题,这似乎是PHP中的PCRE库的问题,我遵循了thistutorial这表明我用自制软件安装了pcre(我正在运行pcre8.30),但这并没有解决问题。我尝试四处寻找解决方案,但没有找到有用的解决方案-是否有解决此

php - 使用 preg_replace 将一个字符的多个实例转换为一个 (aa = a)?

我有一个字符串,我想将多次出现的-转换为一次-。我已经尝试过preg_replace('/--+/g','-',$string)但它什么也没有返回.. 最佳答案 你不应该在模式中使用g,你可以简化你的正则表达式:preg_replace('/-+/','-',$string);不需要反斜杠转义。关于http://ideone.com/IOlpv:输出:asdfsdfd-sdfsdfs-sdf-sdf 关于php-使用preg_replace将一个字符的多个实例转换为一个(aa=a)?,我

php - preg_match 和(非英语)拉丁字符?

我有一个XHTML表单,我要求人们在其中输入他们的全名。然后,我使用以下模式将其与preg_match()匹配:/^[\p{L}\s]+$/在我运行PHP5.2.13(PCRE7.92009-04-11)的本地服务器上,这工作正常。在运行PHP5.2.10(PCRE7.32007-08-28)的虚拟主机上,当输入的字符串包含丹麦拉丁字符ø(http://www.ltg.ed.ac.uk/~richard/utf-8.cgi?input=%F8&mode=char)时,它不匹配。这是一个错误吗?有变通办法吗?提前致谢! 最佳答案 所以

php - preg_replace() 仅字符串的特定部分

我总是有正则表达式的麻烦,我基本上有一个url,例如:http://somedomain.com/something_here/bla/bla/bla/bla.jpg我需要的是一个preg_replace()来将something_here替换为一个空字符串,并保留其他所有内容。我试过以下方法,它替换了错误的部分:$image[0]=preg_replace('/http:\/\/(.*)\/(.*)\/wp-content\/uploads\/(.*)/','$2'.'',$image[0]);这最终只留下我想替换的部分,而不是实际替换它! 最佳答案

php - str_replace : Match whole word only

由于str_replace()在“:Name:Name_en”中两次匹配“:Name”,我只想匹配整个单词的结果。由于thisanswer,我想切换到preg_replace().$str=":Name:Name_en";echo$str.chr(10);$str=preg_replace('/\b'.':Name'.'\b/i','"Test"',$str);echo$str;但是由于冒号的缘故,这不起作用。没有更换发生。RegExp会是什么样子?\b是单词边界。但是我认为冒号不属于这样的词界。 最佳答案 您不需要在字符串的开头使

php - ldap_mod_replace() [function.ldap-mod-replace] : Modify: Server is unwilling to perform

出现错误:Serverisunwillingtoperform同时通过PHP在AD中更改unicodePwd。但是,我能够搜索、添加、删除和修改用户的任何属性。使用Administrator账号绑定(bind),admin拥有修改任何用户密码的全部权限。这是我使用的代码: 最佳答案 要通过LDAP在AD中设置密码,您需要做很多事情才能完全正确。您需要使用SSL连接(ldaps://)密码需要用引号括起来(引用的)密码需要以16位unicode(UTF-16LE)编码假设你试图设置的密码是普通的ascii字符,unicode转换可以通