2012-03-24 6 views
-1

Possible Duplicate:
how can i solve “ Deprecated: Function eregi() is deprecated” error
Converting ereg expressions to pregЗамена устаревшего eregi

Я пытаюсь просто выводить массив всех изображений в папке на моем сервере. К сожалению, я мало знаю о php. Я получаю устаревшую ошибку eregi, и я не знаю, как это исправить. Я пробовал preg_match и stripos, возможно, неправильно, безрезультатно. Помогите!

<? 
//PHP SCRIPT: getimages.php 
Header("content-type: application/x-javascript"); 

//This function gets the file names of all images in the current directory 
//and ouputs them as a JavaScript array 
function returnimages($dirname=".") { 
$pattern="(\.jpg$)|(\.png$)|(\.jpeg$)|(\.gif$)"; //valid image extensions 
$files = array(); 
$curimage=0; 
if($handle = opendir($dirname)) { 
while(false !== ($file = readdir($handle))){ 
if(eregi($pattern, $file)){ //if this file is a valid image 
//Output it as a JavaScript array element 
echo 'smootharray['.$curimage.']="'.$file .'";'; 
$curimage++; 
} 
} 

closedir($handle); 
} 
return($files); 
} 

echo 'var smootharray=new Array();'; //Define array in JavaScript 
returnimages() //Output the array elements containing the image file names 
?> 

Кроме того, я звоню это в WordPress, как если бы это был сценарий, например, так:

<script type='text/javascript' src='http://www.foxterrier.com/wp-content/themes/shape/smooths/getimages.php?ver=3.3.1'></script> 

Затем я использую другой сценарий, который использует массив и плагин JQuery цикла. Казалось, что он работает на моем старом сервере, но теперь не на новом (возможно, из-за ошибок eregi). Является ли это кодирование проблематичным, и если да, то что лучше? Благодаря!

+0

Спасибо Кэрри, но я посмотрел на много устаревших eregi нитей, и я не могу понять это. – Zade

ответ

4

Вместо этого вы можете использовать preg_match. http://www.php.net/manual/en/function.preg-match.php

Он имеет несколько иной синтаксис, но в вашем случае ваш шаблон регулярного выражения должен работать с preg_match.

Пример:

if(preg_match("/(\.jpg$)|(\.png$)|(\.jpeg$)|(\.gif$)/", $file)){ 
    echo "HIT"; 
} 
+0

Спасибо. Я думаю, у вас слишком много закрывающих круглых скобок. Во всяком случае, моя новая строка говорит: if (preg_match («/ (\. Jpg $) | (\ .png $) | (\. Jpeg $) | (\. Gif $) /)", $ file) { и это дает «unsached syntaxerror: неожиданный токен <». То же самое, если я переключу) "на"), если (preg_match ("/ (\. Jpg $) | (\ .png $) | (\. Jpeg $) | (\. Gif $) /"), $ файл) { – Zade

+0

Да, извините, у меня была опечатка. Сейчас я отредактирую его. – Gohn67

+0

Хорошо, я сделал редактирование, я поставил закрытие цитаты в неправильном месте. Надеюсь, это сработает для вас сейчас. – Gohn67

Смежные вопросы