Solved

How to get from directory every file which has prefix "_th."?

Posted on 2009-07-12
19
377 Views
Last Modified: 2013-12-13
I've got.
$path[0] = URL.'v/'.$this->u['id'].'/'; $_name = _PATH.'v/'.$this->u['id'].'/';

		

		$i = 0; if($h = opendir($pth)) {

			while(false !== ($f = readdir($h))) {

				if($f <> '.' and $f <> '..' and substr($f,0,4) <> IMG_TH and substr($f,0,8) <> IMG_AV)

					if(is_readable($pth.$f))

						if(!is_dir($pth.$f)) {

							$stat = stat($pth.$f);

							$item['size'] = sprintf("%.2f",$stat['size']/1000);

							$x .= '<tr class=\'v\''; if($this->u['avatar'] == $f) $x .= 'style=\'background-color:#ccc\' '; $x .= 'onclick=\'javascript:_get("pic","'.$f.'");\'>

											<td valign=\'top\'><img src=\''.TPL.'img/dir/file.gif\' alt=\'\' /></td>

											<td valign=\'top\'><div class=\'fl\'><a href=\'#\' onclick=\'javascript:_get("pic","'.$f.'");\'>'.$f.'</a><div class=\'clearfix\' id=\''.$i.'\' style=\'display:none;\'>Do you want to delete picture?&nbsp;&nbsp;&nbsp;&nbsp;<a href=\''.URL.'profile/photo/d/'.$f.'\'>Yes</a>&nbsp;&nbsp;<a href=\''.URL.'profile/photo/\'>No</a></div></div><div class=\'fr\'>'.$item['size'].'kb&nbsp;&nbsp;&nbsp;&nbsp;</div></div class=\'fix\'></div></td>

											<td valign=\'top\'>'._ago($stat['mtime']).' ago</td>

											<td valign=\'top\' class=\'sp4\'><img src=\''.TPL.'img/ico/del2.gif\' class=\'pointer\' id=\'pp'.$i.'\' alt=\'delete picture\' /> <a href=\''.URL.$this->u['id'].'/p/'.substr($f,0,-4).'\'>&rarr;</a></td>

										</tr>

										<script type=\'text/javascript\'>$(document).ready(function(){$("#pp'.$i.'").click(function(){$("#'.$i.'").toggle("slow")})});</script>';

							$i++;

							

							if(!file_exists($_name.IMG_TH.$f)) include_once(URL.DIR_LIB.'thumb/'.INX.PHP.'?f='.$path[0].$f.'&w='.IMG_.'&h='.IMG_.'&id='.$this->u['id'].'&t='.$f.'&pre=th');

						}

			} closedir($h);

		} $x .= '</table></div>'; return $x;

Open in new window

0
Comment
Question by:AndyPSV
  • 9
  • 7
  • 3
19 Comments
 
LVL 108

Expert Comment

by:Ray Paseur
Comment Utility
I think you might want to use scandir() and iterate over the results set.
0
 
LVL 108

Expert Comment

by:Ray Paseur
Comment Utility
0
 
LVL 108

Expert Comment

by:Ray Paseur
Comment Utility

<?php // RAY_temp_scandir.php

error_reporting(E_ALL);
 

$file_array = scandir( getcwd() );

$my_files = array();
 

foreach ($file_array as $name)

{

    if (substr($name,0,4) == '_th.')

    {

        $my_files[] = $name;

    }

}
 

var_dump($my_files);

Open in new window

0
 
LVL 6

Expert Comment

by:basic612
Comment Utility
Use glob to return an array of file names

$files = glob('_th.*');

0
 
LVL 6

Assisted Solution

by:basic612
basic612 earned 100 total points
Comment Utility
Use glob to return an array of file names

$files = glob('_th.*');

0
 
LVL 108

Expert Comment

by:Ray Paseur
Comment Utility
@basic612:  Good point.  I always forget about glob(), but it is an easy way to get the information.  

I stopped using it when I had some special characters in the file names and it was having trouble with that.  Also, I'm fairly sure that scandir() and glob() do not touch() the files, but it might be worth verifying that if the date of last use matters to the OP.

Best to all, ~Ray
0
 

Author Comment

by:AndyPSV
Comment Utility
shit
Fatal error: Call to undefined function: scandir() in C:\Program Files\WebServ\httpd\mod\u\index.php on line 25
0
 

Author Comment

by:AndyPSV
Comment Utility
anybody knows how to modify the sample above?
0
 
LVL 6

Expert Comment

by:basic612
Comment Utility
try this one:

$files = glob('_th.*');

print_r($files);

Open in new window

0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 
LVL 108

Expert Comment

by:Ray Paseur
Comment Utility
Good grief!  What level of PHP are you using?
0
 
LVL 108

Expert Comment

by:Ray Paseur
Comment Utility
Can you please tell us the values for the defined constants and the undefined variables in that script?
0
 

Author Comment

by:AndyPSV
Comment Utility
I get:

Array
(
    [0] => C:\Program Files\WebServ\httpd\v/1/_th.AndyPSV.gif
    [1] => C:\Program Files\WebServ\httpd\v/1/_th.AndyPSVavatar.gif
    [2] => C:\Program Files\WebServ\httpd\v/1/_th.AndyPSVavatar.jpg
    [3] => C:\Program Files\WebServ\httpd\v/1/_th.AndyPSVavatar2.gif
    [4] => C:\Program Files\WebServ\httpd\v/1/_th.AndyPSVavatar2_copy.gif
    [5] => C:\Program Files\WebServ\httpd\v/1/_th.images_11.jpg
    [6] => C:\Program Files\WebServ\httpd\v/1/_th.images_5.jpg
    [7] => C:\Program Files\WebServ\httpd\v/1/_th.images_6.jpg
    [8] => C:\Program Files\WebServ\httpd\v/1/_th.images_7.jpg
    [9] => C:\Program Files\WebServ\httpd\v/1/_th.images_8.jpg
)

But, how to get: http://localhost....../
0
 
LVL 108

Expert Comment

by:Ray Paseur
Comment Utility
"But, how to get: http://localhost....../"

Do you mean how to turn the directory addresses into links?
0
 

Author Comment

by:AndyPSV
Comment Utility
_PATH = C:\Program Files\WebServ\httpd\
URL = http://localhost/
0
 
LVL 108

Expert Comment

by:Ray Paseur
Comment Utility
Sorry - the building is being closed, so I have to leave now.  I will look at it again in the morning.  Best regards, ~Ray
0
 

Author Comment

by:AndyPSV
Comment Utility
Yes, str_replace?
0
 

Author Comment

by:AndyPSV
Comment Utility
I want to be universal, after uploading to other linux machine etc
0
 
LVL 108

Accepted Solution

by:
Ray Paseur earned 400 total points
Comment Utility
Yes, almost certainly.  Use foreach() to iterate over the array.

Gotta go!
0
 

Author Comment

by:AndyPSV
Comment Utility
$files = glob('v/'.$this->u['id'].'/'.'_th.*');
print_r($files);

Array
(
    [0] => v/1/_th.AndyPSV.gif
    [1] => v/1/_th.AndyPSVavatar.gif
    [2] => v/1/_th.AndyPSVavatar.jpg
    [3] => v/1/_th.AndyPSVavatar2.gif
    [4] => v/1/_th.AndyPSVavatar2_copy.gif
    [5] => v/1/_th.images_11.jpg
    [6] => v/1/_th.images_5.jpg
    [7] => v/1/_th.images_6.jpg
    [8] => v/1/_th.images_7.jpg
    [9] => v/1/_th.images_8.jpg
)

now it's brilliant
0

Featured Post

What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

Join & Write a Comment

These days socially coordinated efforts have turned into a critical requirement for enterprises.
Since pre-biblical times, humans have sought ways to keep secrets, and share the secrets selectively.  This article explores the ways PHP can be used to hide and encrypt information.
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
The viewer will learn how to create a basic form using some HTML5 and PHP for later processing. Set up your basic HTML file. Open your form tag and set the method and action attributes.: (CODE) Set up your first few inputs one for the name and …

744 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

8 Experts available now in Live!

Get 1:1 Help Now