我正在尝试用PHP进行一些验证,其中之一是检查输入的字符串中是否有特定的单词。问题是,当我将指定的单词放在第一位时,我的代码似乎无法正常工作。代码如下:$word="aabbccdd";if(strpos($word,'aa')==false){echo"wronginput";}但是如果我将$word更改为bbaaccdd或bbccddaa,它就可以工作。不过,我想知道如何解决这个问题。 最佳答案 如果您的字符串不存在,strpos将返回false。否则,它返回字符串的位置。在这种情况下,'aa'位于字符串的开头,这意味着它位于位
当我使用ASPClassic脚本生成XML文件并在PHP页面中导入XML文件时,导入过程工作正常。但是,当我通过PHP脚本(而不是ASPClassic)生成相同的XML并在相同的导入过程中使用它时,它就不起作用了。$xml=iconv("UTF-16","UTF-8",$xml);我在导入过程中注意到:在我的代码中的$xml=iconv("UTF-16","UTF-8",$xml);行之前,XML文件的格式正确。但在$xml=iconv("UTF-16","UTF-8",$xml);行之后,XML文件已损坏。当我注释掉这行代码并使用PHPXML文件时,它工作正常。
Warning:strpos()[function.strpos]:Emptydelimiter是什么意思?我有这个:if(strpos(''',$text)===false){$text=str_replace(''',"'",$text);} 最佳答案 我猜,$text是一个空字符串(感谢Mark指出细节)编辑:另外,另一个猜测是您的参数顺序错误。strpos的方法签名是intstrpos(string$haystack,mixed$needle[,int$offset=0])参见http://php.net
更新:我在查看strrpos的文档时认为它是strpos的文档。很抱歉犯了这个愚蠢的错误。根据thedocs,它表示当您提供一个负值作为偏移量参数时,该函数将从字符串末尾开始那么多字符,向后搜索。它甚至在示例#2中显示了这一点。为什么我不能让这段代码正常工作?$val=strpos('/imports/products/nin_avatar.png','/',-2);我正在尝试获取字符串中最后一个正斜杠的索引,但它一直返回false。我尝试了几种不同的负偏移,但似乎都不起作用。我做错了什么吗? 最佳答案 它似乎在新版本的PHP中按照
我收到这个错误:PHPFatalerror:Calltoundefinedfunctionmb_strpos()in/my/file.php这很奇怪,因为mb_strpos()在PHP4中引入,我正在运行PHP5.3.3$php-vPHP5.3.3(cli)(built:Feb22201219:38:14)Copyright(c)1997-2010ThePHPGroupZendEnginev2.3.0,Copyright(c)1998-2010ZendTechnologies有没有人遇到过类似的问题并且知道如何解决?我搜索了一下,但无法弄清楚。附言。我正在运行centOS5。
我在stackoverflow上找到了这个例子:if(strpos($a,'are')!==false){echo'true';}但是我如何让它搜索两个词。我需要这样的东西:如果$a包含单词“are”或“be”或两者都echo“contains”;我尝试了xor和|| 最佳答案 只需分别检查两个单词并使用bool运算符or来检查$a中是否包含其中一个或两个:if(strpos($a,'are')!==false||strpos($a,'be')!==false){echo"contains";}请注意,由于or运算符,如果第一个检查
我想知道如何完成多个strpos检查。让我澄清一下:我想让strpos检查变量“COLOR”,看看变量中是否有从1到8的任何数字。如果存在1到8之间的任何数字,我想回显“已选择”。例子:假设变量中只有数字1,它将回显“selected”。假设数字12和3在变量中,它将回显“selected”。假设变量中有数字3925,它将回显“selected”(因为那个3!!)。假设变量中只有数字9,它不会回显。假设数字92548在变量中,它不会回显。 最佳答案 尝试多个preg匹配if(preg_match('/word|word2/i',$s
我有一些包含多字节智能引号字符的UTF-8内容。我发现这段代码可以轻松地将这些字符转换为ASCII直引号(ASCII代码34):$content=iconv("UTF-8","ASCII//TRANSLIT",$content);或$content=iconv("UTF-8","ISO-8859-1//TRANSLIT",$content);但是,我宁愿将它们转换为扩展的ASCII智能引号(Latin1编码中的ASCII代码147和148)。有谁知道如何做到这一点? 最佳答案 您正在寻找CP-1252其中包含0x91-0x94(14
我一直对iconv有疑问。现在我必须将字符串转换为Windows-1250,这似乎不起作用:$string="ľaľahopapľuha,ogrcalmikrpce!";echo$string.'('.mb_detect_encoding($string).')';$string_encoded=iconv(mb_detect_encoding($string),'Windows-1250//TRANSLIT',$string);echo$string_encoded.'('.mb_detect_encoding($string_encoded).')';$string_encoded
当您有一个不同于UTF-8的字符集,并且需要将其转换为JSON格式以将其迁移到数据库时,可以在PHP中使用两种方法,调用utf8_encode()和iconv()。我想知道哪个性能更好,什么时候使用它们更方便。 最佳答案 whenyouhaveacharsetdifferentofUTF-8不-utf8_encode()仅适用于将ISO-8859-1字符串转换为UTF-8。Iconv提供了大量的源和目标编码。关于性能,我不知道utf8_encode()在内部如何工作以及它使用什么库,但我的预测是不会有太大差异-至少在“正常”上不会以