Allora ragazzi, ho questo script che mi estrae dei dati dal DB con un LIKE.
Codice PHP:
<?php
define('IN_ICYPHOENIX', true);
if (!defined('IP_ROOT_PATH')) define('IP_ROOT_PATH', './');
include(IP_ROOT_PATH . 'cms/common.' . PHP_EXT);
// Start session management
$userdata = session_pagestart($user_ip);
init_userprefs($userdata);
// End session management
if (($userdata['user_level'] == ADMIN) && ($userdata['session_logged_in']))
{
$dir = IP_ROOT_PATH . POSTED_IMAGES_PATH;
$sql = "SELECT post_text FROM " . POSTS_TABLE . " LIKE '%" . POSTED_IMAGES_PATH . "%'";
if (!($result = $db->sql_query($sql)))
{
message_die(GENERAL_ERROR, 'Could not read posts info.', '', __LINE__, __FILE__, $sql);
}
print 'File da cancellare (Lista Post DB):<br /><ul>';
while($row = $db->sql_fetchrow($result))
{
print '<li>' . $row['post_text'] . '</li>';
}
print '</ul>';
$dir_handle = (opendir($dir)) ? opendir($dir) : die('Impossibile aprire ' . $dir);
$file_not_delete = array(
'.',
'..',
'file.gif',
'file.jpg',
'file.png',
);
print 'File da cancellare:<br /><ul>';
while ($file = readdir($dir_handle))
{
if(!in_array($file, $file_not_delete))
{
print '<li>' . $file . '</li>';
}
}
print '</ul>';
closedir($dir_handle);
}
else
{
message_die(GENERAL_MESSAGE, $lang['Not_Auth_View']);
}
?>
Nel risultato devo prendere solo una parte della stringa.
Cioè, dovrei fare una specie di LIKE in php che mi stampi a video quello che inizia con la costante POSTED_IMAGES_PATH (/file/posted_images/) e finisce con l'estensione (.gif || .png || .jpg).
In poche parole dovrei avere una lista simile:
- /file/posted_images/user_#_238dnc8305nd83bn.jpg
- /file/posted_images/user_#_jnzdcv8934basc982.gif
- /file/posted_images/user_#_2s9n8c8932hcv9cv03.png
- /file/posted_images/user_#_938ubnxcuc8235cvnv346938.jpg
- /file/posted_images/user_#_jd83n490x92ui408cy22.jpg
- /file/posted_images/user_#_jnxc892b409zxhw08903ì2.jpg
E così via, per ogni link simile che si trova nel risultato del DB.
Mi potreste aiutare? Credo ci vogliano le espressioni regolari (regular_expression), la funzione preg_match(), forse implode(), explode() e strlen().
Grazie in anticipo a tutti