我有一些文件名为:fileONE-13
和fileFive-22
等。我正在尝试制作一个执行以下操作的php代码:如果在最后一个-
= {{1}之前},然后回显某些内容,如果最后一个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"; }
?>
等。但是什么也没做。
答案 0 :(得分:1)
给出示例“ 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"; }
答案 1 :(得分:0)
您来自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"; }