str_contains() 给出 HTTP 错误 500 | WordPress的
str_contains() gives HTTP ERROR 500 | Wordpress
我正在尝试获取所有扩展名为 jpeg、jpg 或 png 且标题包含“100x100”文本的文件的列表。
我可以轻松获得按扩展名过滤的文件列表,这工作正常,但是当我向其中添加条件时 && str_contains($value,'100x100')
然后页面不工作并显示 HTTP ERROR 500
函数:
function scan_files(){
$upload_dir = wp_upload_dir();
$folder = $upload_dir['basedir'];
$files = list_files( $folder );
foreach($files as $value){
if(pathinfo($value, PATHINFO_EXTENSION)=='jpeg'||pathinfo($value, PATHINFO_EXTENSION)=='jpg'||pathinfo($value, PATHINFO_EXTENSION)=='png' && str_contains($value,'100x100')){
$filtered_files[] = $value;
}
}
echo "<pre>";
print_r($filtered_files);
}
有人能帮忙吗?
更新
根据@luk2302 的评论,我已经更正了 )
问题,页面工作正常,但值未被过滤,另外根据@CBroe 的评论,我正在使用 php7所以我用 strpos
替换了 str_contains
但它仍然没有给出预期的结果。
新代码:
function scan_files(){
$upload_dir = wp_upload_dir();
$folder = $upload_dir['basedir'];
$files = list_files( $folder );
foreach($files as $value){
if(pathinfo($value, PATHINFO_EXTENSION)=='jpeg'||pathinfo($value, PATHINFO_EXTENSION)=='jpg'||pathinfo($value, PATHINFO_EXTENSION)=='png' && strpos($value,'100x100')!==false){
$filtered_files[] = $value;
}
}
echo "<pre>";
print_r($filtered_files);
}
更改此行:
if(pathinfo($value, PATHINFO_EXTENSION)=='jpeg'||pathinfo($value, PATHINFO_EXTENSION)=='jpg'||pathinfo($value, PATHINFO_EXTENSION)=='png' && strpos($value,'100x100')!==false){
收件人:
if((pathinfo($value, PATHINFO_EXTENSION)=='jpeg'||pathinfo($value, PATHINFO_EXTENSION)=='jpg'||pathinfo($value, PATHINFO_EXTENSION)=='png') && strpos($value,'100x100')!==false){
请注意路径信息语句周围的额外括号。您想要检查是否有任何扩展名是真实的并且路径包含您的键值。如果扩展名是 png,您的原始代码将只过滤文件名。
我正在尝试获取所有扩展名为 jpeg、jpg 或 png 且标题包含“100x100”文本的文件的列表。
我可以轻松获得按扩展名过滤的文件列表,这工作正常,但是当我向其中添加条件时 && str_contains($value,'100x100')
然后页面不工作并显示 HTTP ERROR 500
函数:
function scan_files(){
$upload_dir = wp_upload_dir();
$folder = $upload_dir['basedir'];
$files = list_files( $folder );
foreach($files as $value){
if(pathinfo($value, PATHINFO_EXTENSION)=='jpeg'||pathinfo($value, PATHINFO_EXTENSION)=='jpg'||pathinfo($value, PATHINFO_EXTENSION)=='png' && str_contains($value,'100x100')){
$filtered_files[] = $value;
}
}
echo "<pre>";
print_r($filtered_files);
}
有人能帮忙吗?
更新
根据@luk2302 的评论,我已经更正了 )
问题,页面工作正常,但值未被过滤,另外根据@CBroe 的评论,我正在使用 php7所以我用 strpos
替换了 str_contains
但它仍然没有给出预期的结果。
新代码:
function scan_files(){
$upload_dir = wp_upload_dir();
$folder = $upload_dir['basedir'];
$files = list_files( $folder );
foreach($files as $value){
if(pathinfo($value, PATHINFO_EXTENSION)=='jpeg'||pathinfo($value, PATHINFO_EXTENSION)=='jpg'||pathinfo($value, PATHINFO_EXTENSION)=='png' && strpos($value,'100x100')!==false){
$filtered_files[] = $value;
}
}
echo "<pre>";
print_r($filtered_files);
}
更改此行:
if(pathinfo($value, PATHINFO_EXTENSION)=='jpeg'||pathinfo($value, PATHINFO_EXTENSION)=='jpg'||pathinfo($value, PATHINFO_EXTENSION)=='png' && strpos($value,'100x100')!==false){
收件人:
if((pathinfo($value, PATHINFO_EXTENSION)=='jpeg'||pathinfo($value, PATHINFO_EXTENSION)=='jpg'||pathinfo($value, PATHINFO_EXTENSION)=='png') && strpos($value,'100x100')!==false){
请注意路径信息语句周围的额外括号。您想要检查是否有任何扩展名是真实的并且路径包含您的键值。如果扩展名是 png,您的原始代码将只过滤文件名。