Интересно, можете ли вы помочь. У меня есть нагрузок файлов, которые выглядят следующим образом:PHP - Если имя файла содержит ...... затем перейдите в каталог
2014-02-10 JB123456G
и это:
2012-02-01 NA657432B
В PHP я хочу, чтобы отфильтровать эти файлы в соответствующий каталог. Так, например, «2014-02-10 JB123456G» в папку «JB». Я думал о том, чтобы делать это как оператор If, чтобы определить, содержит ли имя файла буквы «JB», а затем переместится в каталог JB. На данный момент у меня есть:
if(JFile::exists($searchpath .DS. 'JB.png')){
JFile::move($searchpath .DS. 'JB.png', JPATH_BASE .DS. 'upload' .DS. 'JB' .DS. 'JB.png'); }
Я знаю, что нужно изменить «JB.png» к чему-то, но не совсем уверен, что кто-то рекомендовал Regex сделал некоторые исследования, но не совсем уверен, как добавить, что в нем. перемещает файл JB.png в папку JB, но, очевидно, он будет перемещать только это точное имя файла и не будет перемещать имя файла: 2014-02-10 JB123456G.png.
Любая помощь приветствуется.
Благодаря
Обновление:
Вот мой полный код PHP:
<?php
echo "Start Moving Files to Folder - Steps 1-7 <br><br>";
define('_JEXEC', 1);
define('JPATH', dirname(__FILE__));
if (!defined('DS')){
define('DS', DIRECTORY_SEPARATOR);
$parts = explode(DS, JPATH);
$script_root = implode(DS, $parts) ;
// check path
$x = array_search ('administrator', $parts );
if (!$x) exit;
$path = '';
for ($i=0; $i < $x; $i++){
$path = $path.$parts[$i].DS;
}
// remove last DS
$path = substr($path, 0, -1);
if (!defined('JPATH_BASE')){
define('JPATH_BASE', $path);
}
if (!defined('JPATH_SITE')){
define('JPATH_SITE', $path);
}
/* Required Files */
require_once (JPATH_SITE . DS . 'includes' . DS . 'defines.php');
require_once (JPATH_SITE . DS . 'includes' . DS . 'framework.php');
require_once (JPATH_SITE . DS . 'libraries' . DS . 'joomla' . DS . 'factory.php');
echo "Step 1 - Required Files Set<br><br>";
//Import filesystem libraries.
jimport('joomla.filesystem.path');
jimport('joomla.filesystem.file');
jimport('joomla.filesystem.folder');
jimport('joomla.user.user');
echo "Step 2 - Import Filesystem libraries <br><br>";
//First we set up parameters
$searchpath = JPATH_BASE . DS . "upload";
echo "Step 3 - Set Search Parameters to directory root/upload<br><br>";
//Then we create the subfolder called Images
//if (!JFolder::create($searchpath . DS ."Images")) {
//Throw error message and stop script
//}
//echo "Step 4 - Create Subfolder if necessary <br><br>";
echo "Step 5 - Read all png files and place them into an array <br><br>";
//Now we read all png files and put them in an array.
$png_files = JFolder::files($searchpath,'.png');
$doc_files = JFolder::files($searchpath,'.doc');
echo "Step 6 - Move all files into new folder <br><br>";
//Now we need some stuff from the JFile:: class to move all files into the new folder
if(JFile::exists($searchpath .DS. 'j.png')){
JFile::move($searchpath .DS. 'j.png', JPATH_BASE .DS. 'upload' .DS. 'Nathan' .DS. 'j.png'); }
echo "Step 7 - Move the whole subdirectory to the root of the component<br><br>";
//Lastly, we are moving the complete subdir to the root of the component.
if (JFolder::move($searchpath . DS. ".png",JPATH_BASE)) {
//Redirect with perhaps a happy message
} else {
//Throw an error
}
}
?>
А как я это делаю? Я новичок в PHP. – Simpson