我有一个名为像一些文件:fileONE-13
和fileFive-22
等我试图让一个PHP代码执行以下操作:如果不管最后-
之前= fileONE-
,然后回显的东西,如果不管最后-
= fileFive-
之前,则呼应的东西否则..等等。
但是我到目前为止只是回声只有第一个,即使bookname
是不同的。
<?php
$filename = basename($_SERVER['REQUEST_URI'], '?' . $_SERVER['QUERY_STRING']);
$chapterNo = substr(strrchr($filename, "-"), 1, 2);
$bookname = substr($filename, 0, strrpos($filename, '-'));
if ($bookname = "fileONE-") { echo "This is File 1 - $chapterNo"; }
elseif ($bookname = "fileFive-") { echo "This is File 5 - $chapterNo"; }
?>
我也试图与$bookname == "fileONE-"
等。但它没有采取任何行动。
你是从VB来了吗? :)在PHP和其他你测试==不是=所以,你做了什么,至今分配“fileONE-”变量$ BOOKNAME。所以基本上
if ("fileONE-") { //code }
这是真的。进行这些更改:
if ($bookname == "fileONE-") { echo "This is File 1 - $chapterNo"; }
elseif ($bookname == "fileFive-") { echo "This is File 5 - $chapterNo"; }
鉴于你的榜样“fileONE-13”,strrpos($filename, '-')
返回7
,所以当你设置$bookname
你基本上说“得到$filename
前7个字符开始位置0”。也就是说,它不会包括你检查,对在-
报表if
。
PHP也使用==
,不=
的比较。正如siggi_pop已经指出,if ($bookname = "fileONE-")
总是返回true
为你重新分配$bookname
。
你的if语句应该是这样的:
if ($bookname == "fileONE") { echo "This is File 1 - $chapterNo"; }
elseif ($bookname == "fileFive") { echo "This is File 5 - $chapterNo"; }