草庐IT

preg_reg_other

全部标签

PHP 错误 : php_network_getaddresses: getaddrinfo failed: (while getting information from other site.)

尝试从外部来源获取信息时,我收到以下错误:Warning:php_network_getaddresses:getaddrinfofailed:Temporaryfailureinnameresolutioninline#...昨天一切都很好,那么这个脚本怎么了,它不起作用并给我上面的错误?解决此问题的任何解决方案或提示?$uri="http://api.hostip.info/?ip=$ip&position=true";$dom->load($uri);我也尝试过将DNS转换为IP,但随后收到警告:failedtoopen$uri="174.129.200.54/?ip=$ip&p

php - PHP preg_functions 多字节安全吗?

PHP中没有可用的多字节“preg”函数,那么这是否意味着默认的preg_functions都是mb安全的?在php文档中找不到任何提及。 最佳答案 pcre开箱即用地支持utf8,请参阅“u”修饰符的文档。说明(\xC3\xA4是德语字母“ä”的utf8编码)echopreg_replace('~\w~','@',"a\xC3\xA4b");这与“@@¤@”相呼应,因为“\xC3”和“\xA4”被视为不同的符号echopreg_replace('~\w~u','@',"a\xC3\xA4b");(注意'u')打印“@@@”,因为“

php 只允许使用 preg_match 的字母、数字、空格和特定符号

在我的php上,我使用preg_match来验证输入文本。if(preg_match('/^[a-zA-Z0-9]+$/',$firstname)){}但这只允许字母数字,不允许空格。我想允许空格、字母和数字。和句点(.)和破折号(-)请帮帮我好吗?提前致谢。 最佳答案 使用preg_match('/^[a-z0-9.\-]+$/i',$firstname) 关于php只允许使用preg_match的字母、数字、空格和特定符号,我们在StackOverflow上找到一个类似的问题:

php - 将点语法如 "this.that.other"转换为 PHP 中的多维数组

正如标题所暗示的那样,我正在尝试创建一个解析器并尝试找到最佳解决方案以将某些内容从点命名空间转换为多维数组,这样s1.t1.column.1=size:33%会和一样$source['s1']['t1']['column']['1']='size:33%'; 最佳答案 试试这个数字...functionassignArrayByPath(&$arr,$path,$value,$separator='.'){$keys=explode($separator,$path);foreach($keysas$key){$arr=&$arr[

php - PHP 中的 preg_match 和 UTF-8

我正在尝试使用preg_match搜索UTF8编码的字符串.preg_match('/H/u',"\xC2\xA1Hola!",$a_matches,PREG_OFFSET_CAPTURE);echo$a_matches[0][1];这应该打印1,因为“H”在字符串“¡Hola!”中的索引1处。但它打印2。所以它似乎没有将主题视为UTF8编码的字符串,即使我传递了“u”modifier。在正则表达式中。我的php.ini中有以下设置,并且其他UTF8函数正在运行:mbstring.func_overload=7mbstring.language=Neutralmbstring.inte

php - preg_match() vs strpos() 用于匹配查找?

对于单值检查,两者中哪一个是首选,为什么?$string=='Thequickbrownfoxjumpsoverthelazydog';if(strpos($string,'fox')!==false){//dotheroutine}#versusif(preg_match('/fox/i',$string)){//dotheroutine} 最佳答案 我更喜欢strpos而不是preg_match,因为正则表达式的执行成本通常更高。根据preg_match的官方php文档:Donotusepreg_match()ifyouonly

PHP 使用 preg_replace : "Delimiter must not be alphanumeric or backslash" error

我正在尝试像这样获取一串文本:$string="This(1)is(2)my(3)example(4)text";在括号内有正整数的每个实例中,我想用整数本身替换它。我现在使用的代码是:$result=preg_replace("\((\d+)\)","$0",$string);但我不断得到一个Delimitermustnotbealphanumericorbackslash.警告有什么想法吗?我知道这里还有其他问题可以回答问题,但我对正则表达式的了解不足以将其切换到此示例。 最佳答案 你快到了。您正在使用:$result=preg

php - 不间断的 utf-8 0xc2a0 空间和 preg_replace 奇怪的行为

在我的字符串中,我有utf-8不间断空格(0xc2a0),我想用其他内容替换它。当我使用$str=preg_replace('~\xc2\xa0~','X',$str);它工作正常。但是当我使用$str=preg_replace('~\x{C2A0}~siu','W',$str);未找到(并替换)不间断空格。为什么?第二个正则表达式有什么问题?格式\x{C2A0}是正确的,我也使用了u标志。 最佳答案 实际上关于PHP中转义序列的文档是错误的。当您使用\xc2\xa0语法时,它会搜索UTF-8字符。但是使用\x{c2a0}语法,它会

PHP is_numeric 或 preg_match 0-9 验证

这对我来说不是什么大问题(据我所知),这更像是我感兴趣的事情。但是,使用is_numeric而不是preg_match(反之亦然)来验证用户输入值的主要区别是什么?示例一:示例二:我假设两者的作用完全相同,但是否有任何特定差异可能会在以后以某种方式导致问题?有没有“最好的方法”或我没有看到的东西让它们与众不同。 最佳答案 is_numeric()测试值是否为数字。但它不一定必须是整数-它可以是十进制数或科学记数法中的数字。您给出的preg_match()示例仅检查值是否包含数字0到9;任意数量,任意顺序。请注意,您给出的正则表达式也

PHP preg_match() 和 preg_match_all() 函数

preg_match()是做什么的和preg_match_all()函数的作用以及如何使用它们? 最佳答案 preg_match停止查看第一个匹配项。另一方面,preg_match_all会继续查找,直到处理完整个字符串。找到匹配后,它会使用字符串的其余部分来尝试应用另一个匹配。http://php.net/manual/en/function.preg-match-all.php 关于PHPpreg_match()和preg_match_all()函数,我们在StackOverflow