我有两个字符串变量,我想测试第二个tring值中是否存在第一个字符串值,这就是我所做的:
$str1 = "Invoice_History";
$str2 = "uploadedFiles/Invoice_History_d22556.csv";//this is not a file it is just a string path
var_dump(strpos($str1,$str2)); ==> bool(false)
结果为false
,但字符串中存在字符串"Invoice_History"
"uploadedFiles/Invoice_History_d22556.csv"
为什么它会给出错误?
有没有办法以工作方式执行此操作?
答案 0 :(得分:0)
strpos()
在字符串中查找字符串,而不是文本文件中的字符串。你必须得到文件的内容才能看到它。
<?php
$listOfFiles[0] = "uploadedFiles/Invoice_History_d22556.csv";
$file1NamePos = "Invoice_List";
$fileContents = file_get_contents($listOfFiles[0]); // These are the actual file contents
if ( strpos($fileContents, $file1NamePos) !== false )
{
// If string exists inside the file, you'll get here
}
?>
答案 1 :(得分:0)
strpos函数意味着“找到字符串中第一次出现子字符串的位置”
如果您在“uploadedFiles / Invoice_History_d22556.csv”字符串中搜索“Invoice_List”,则由于子字符串不存在,因此始终为false。
答案 2 :(得分:0)
$str1 = "Invoice_History";
$str2 = "uploadedFiles/Invoice_History_d22556.csv";//this is not a file it is just a string path
var_dump(strpos($str2,$str1));
strpos是strpos(haystack,needle)所以要查找的字符串先行,然后是要查找的字符串。 (这会返回14)
答案 3 :(得分:0)
strpos - 查找字符串中第一次出现子字符串的位置。 1 例如:
$mystring = 'abc';
$findme = 'a';
$pos = strpos($mystring, $findme);
//$pos = int(0)
在您的示例中字符串&#34; Invoice_List&#34;不属于&#34; uploadedFiles / Invoice_History_d22556.csv&#34;然后php将false返回给你。
如果您尝试使用
$listOfFiles[0] = "uploadedFiles/Invoice_History_d22556.csv";
$file1NamePos = "Invoice";
var_dump(strpos($listOfFiles[0],$file1NamePos)); //==> int(15)
这转向你int(15)。