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:

  1. /file/posted_images/user_#_238dnc8305nd83bn.jpg
  2. /file/posted_images/user_#_jnzdcv8934basc982.gif
  3. /file/posted_images/user_#_2s9n8c8932hcv9cv03.png
  4. /file/posted_images/user_#_938ubnxcuc8235cvnv346938.jpg
  5. /file/posted_images/user_#_jd83n490x92ui408cy22.jpg
  6. /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