如何使用 URL 检查 smarty 上是否存在图像文件?
How can i check if image file exists on smarty using URL?
我想检查 smarty
上的服务器上是否存在 webp 图像。 URL
是一个绝对 URL
就像 this.
我试过了
{if file_exists("https://example.com/image.webp")}
{/if}
和
{if 'https://example.com/image.webp'}
{/if}
但是 none 正在工作。谁能告诉我怎么做?
在您的控制器中,您应该执行如下操作:
if (file_exists($filename))
您也可以像现在这样在视图中执行此操作,但建议您将逻辑与视图分开。
不要忘记将绝对路径添加到 $filename
变量。
编辑:
为了聪明,您可以在 php 脚本中执行以下操作:
$smarty = new Smarty();
$fileExist = false;
if (file_exists($filename)) {
$fileExists = true;
}
$smarty->assign('fileExists', $fileExists);
$smarty->display('index.tpl');
在 view/template 中,您可以简单地执行以下操作:
{if $fileExists}
在 smarty 中,您不能在 URL 上使用 file_exists()
,但可以在本地文件上使用它
我认为,最好的方法是检查您的控制器。
第一种方法:
在您的控制器中,您可以编写类似的内容(仅限路径):
https://www.php.net/manual/fr/function.file-exists.php
$filename = '/example.com/image.webp'
if(!file_exist($filename))
$filename = '/example.com/other_image.webp'
然后return变量$filename
其他方式:
如果你想检查图像是否存在于 URL 那么你应该使用这个:
$file = 'http://www.example.com/somefile.jpg';
$file_headers = @get_headers($file);
if($file_headers[0] == 'HTTP/1.1 404 Not Found') {
$exists = false;
}
else {
$exists = true;
}
然后 //do something...
我想检查 smarty
上的服务器上是否存在 webp 图像。 URL
是一个绝对 URL
就像 this.
我试过了
{if file_exists("https://example.com/image.webp")}
{/if}
和
{if 'https://example.com/image.webp'}
{/if}
但是 none 正在工作。谁能告诉我怎么做?
在您的控制器中,您应该执行如下操作:
if (file_exists($filename))
您也可以像现在这样在视图中执行此操作,但建议您将逻辑与视图分开。
不要忘记将绝对路径添加到 $filename
变量。
编辑:
为了聪明,您可以在 php 脚本中执行以下操作:
$smarty = new Smarty();
$fileExist = false;
if (file_exists($filename)) {
$fileExists = true;
}
$smarty->assign('fileExists', $fileExists);
$smarty->display('index.tpl');
在 view/template 中,您可以简单地执行以下操作:
{if $fileExists}
在 smarty 中,您不能在 URL 上使用 file_exists()
,但可以在本地文件上使用它
我认为,最好的方法是检查您的控制器。
第一种方法:
在您的控制器中,您可以编写类似的内容(仅限路径): https://www.php.net/manual/fr/function.file-exists.php
$filename = '/example.com/image.webp'
if(!file_exist($filename))
$filename = '/example.com/other_image.webp'
然后return变量$filename
其他方式:
如果你想检查图像是否存在于 URL 那么你应该使用这个:
$file = 'http://www.example.com/somefile.jpg';
$file_headers = @get_headers($file);
if($file_headers[0] == 'HTTP/1.1 404 Not Found') {
$exists = false;
}
else {
$exists = true;
}
然后 //do something...