GoFuckBiz.info
Форум успешных вебмастеров - GoFuckBiz.info
SEO · трафик · партнерские программы

   Форум успешных вебмастеров - Gofuckbiz.com > Бизнес-решения > Скрипты, программы и технические решения > Нужен простенький скрипт

Просмотр полной версии : Нужен простенький скрипт

20.06.2009, 17:30
Metal
найти в данной папке все картинки (JPG) рекурсивно и вывести пути на экран.
решения для шелла не предлагать.
20.06.2009, 18:09
capitan
$dir = "images";
foreach (scandir($dir) as $f){
if (preg_match("/\.jpg/", $f))
echo "$dir/$f\r\n";
}
21.06.2009, 01:18
JMen
$dir = "images";
foreach (scandir($dir) as $f){
if (preg_match("/\.jpg/", $f))
echo "$dir/$f\r\n";
}
твой не рекурсивный и не отличает окончания от части слова. Правильно будет примерно так:
$exts = array(
'jpg' => 1,
'jpeg' => 1,
);

function readDirMy($folder) {
global $allFiles;

$files = glob($folder.'/*');

foreach ($files as $file)
if (is_dir($file))
readDirMy($file);
else
$allFiles[] = $file;
}

readDirMy(dirname(__FILE__));

foreach ($allFiles as $fileName) if (
strpos($fileName, '.') !== false &&
key_exists(strtolower(substr($fileName, strpos($fileName, '.') + 1)), $exts))
echo $fileName."<br>\n";
21.06.2009, 01:37
[[seomafia]]
есть же функция glob ))

<?php
$dira = 'images';
$files_array = glob($dira.'/*.jpg');
foreach($files_array as $file) {
echo trim($file).'<br>';
}
?>
21.06.2009, 01:41
JMen
вот смотрю я на вас и думаю... нафиг вам php? :) берите смело букварь! :)
21.06.2009, 01:53
[[seomafia]]
вот смотрю я на вас и думаю... нафиг вам php? :) берите смело букварь! :)

Это ты к чему? К тому что ты в 5 раз больше мусора написал в своем скрипте? :pardon:
21.06.2009, 02:03
JMen
];172866']Это ты к чему? К тому что ты в 5 раз больше мусора написал в своем скрипте? :pardon:

Это я к тому что твой скрипт не рекурсивный.
21.06.2009, 02:49
capitan
Это я к тому что твой скрипт не рекурсивный.

рекурсия не нужна для вывода картинок из папки.
21.06.2009, 02:52
JMen
не, долбаёб - ты :) а я умный :)

В папке могут быть другие папки. И рекурсия нужна чтобы из всех подпапок данной папки (а так - же из подпапок подпапок) так - же выдернуть картинки :)
21.06.2009, 02:57
capitan
не, долбаёб - ты :) а я умный :)

В папке могут быть другие папки. И рекурсия нужна чтобы из всех подпапок данной папки (а так - же из подпапок подпапок) так - же выдернуть картинки :)

про подпапки в задании ничего не сказано, речь идёт только о папке: "найти в данной папке все картинки (JPG)"
21.06.2009, 03:00
JMen
в задании написано рекурсивно, это подразумевает именно то что я сказал и написал. Перестань со мной общаться в подобном тоне, и впредь батьке перечить не смей.
21.06.2009, 03:05
capitan
в задании написано рекурсивно, это подразумевает именно то что я сказал и написал. Перестань со мной общаться в подобном тоне, и впредь батьке перечить не смей.

купи себе новые очки
21.06.2009, 03:15
Bes
capitan и зря ты так...JMen мудрый мужик и помогал тут многим..

И вобще без мата давайте.
21.06.2009, 03:21
capitan
capitan и зря ты так...JMen мудрый мужик и помогал тут многим..

И вобще без мата давайте.

неудавшихся Дартаньянов из себя обычно корчат не мудрые, а мудаки :d
21.06.2009, 03:33
mr. werewolf
ну хз, имхо JMen прав... в задание указано чтоб делалось это рекурсивно...
21.06.2009, 03:35
Lucas
capitan и зря ты так...JMen мудрый мужик и помогал тут многим..

И вобще без мата давайте.
+100500 за JMen'a! capitan за 2 топика на ебланилку по полной заработал
21.06.2009, 03:57
capitan
пусть будет по вашему, остаюсь при своём мнении. Хотел лишь помочь ТС-у
21.06.2009, 09:46
deschain
Ебланить за наезды и оскорбления!
21.06.2009, 09:59
yami
это к тому, что ты долбоёб, и рекурсия не нужна для вывода картинок из папки.

охуенная помощь, ага.
+1 за JMen.
21.06.2009, 10:17
crazymachine
Рекурсия точно упомянута, +1 за JMen'a
21.06.2009, 11:53
Hector
capitan быдло какое-то, научись общаться
21.06.2009, 13:33
ewolwer
рекурсия указана, +1 за гугл, мир, деньги!))
из матов можно употреблять только слово "лифчик" ))
21.06.2009, 15:09
capitan
Yami, Hector
Следите сами товарищи за базаром:
1)человек попросил помощи;
2)я дал абсолютно верное решение его задачи, аналогичное и также абсолютно верное решение поставленной задачи дал [[seomafia]];
3)в это время в беседу вклинивается JMen с решением совершенно другой задачи про подпапки и при этом в хамской манере школьника-выскочки поучает "нафиг вам php? берите смело букварь!"
:gofuck:
21.06.2009, 15:25
creator123
забаньте уже неадеквата, пока он не прочитает первый пост в этой теме вслух 500 раз.
21.06.2009, 15:27
[[seomafia]]
Да ладно, Jmen первый начал вы*бываться.
21.06.2009, 15:28
capitan
забаньте уже неадеквата, пока он не прочитает первый пост в этой теме вслух 500 раз.

Вот и читай, читать умеешь? "в данной папке", а не в "данных папках и их подпапками и подпапками подпапок и ваще всём дереве каталогов"

[[seomafia]] +1
21.06.2009, 15:33
creator123
иди учи учебник по слову "рекурсивно". Достал уже. чесслово.
21.06.2009, 15:53
capitan
иди учи учебник по слову "рекурсивно". Достал уже. чесслово.
Умник, "рекурсивно" - это предполагаемый подход к алгоритму, а задача поставлена - "в данной папке". Это действительно можно сделать рекурсивно (другими словами - через жопу), но для поиска файлов в данной папке это лишнее.
21.06.2009, 16:07
deschain
Капитан,
"в данной папке ... рекурсивно"

есть папка:
/folder/

в ней есть подпапки:
/folder1/
/folder2/
...

Ну и где ты тут прав? Поиск осуществляется рекурсивно в текущей папке, с проходом по вложенным папкам и поиском там.
21.06.2009, 16:44
JackL
На питоне что то вроде этого будет )) но я проеб с raw strings работать вроде не будет))


import os, re

def lister(yourpath, file_list):
a = os.listdir(yourpath)
for item in a:
if os.path.isdir(item):
k = r'%s/%s'%yourpath, item
lister(k, file_list)
elif os.path.isfile(item) and re.match(".*(jpg|png)$", r'item'):
file_list.append(r'%s/%s' % yourpath,item)
else:
pass
return(file_list)


File_list = []
yourpath = r'/usr/home'
lister (yourpath, File_list)
# теперь со списком можно что хочешь делать (в файло или на экран)
print File_list
21.06.2009, 16:46
JackL
и еще ретурн впринципе там не нужен / он список и так будет модифицировать
21.06.2009, 16:49
LeXxiK
на форуме две недели, а уже матом кроет, +1 к заебланить!
21.06.2009, 16:51
capitan
Капитан,
"в данной папке ... рекурсивно"

есть папка:
/folder/

в ней есть подпапки:
/folder1/
/folder2/
...

Ну и где ты тут прав? Поиск осуществляется рекурсивно в текущей папке, с проходом по вложенным папкам и поиском там.

1 файл может находиться только в 1 папке. Если файл находится в папке folder1, то он не находится в папке folder. Речь шла конкретно о файлах из папки folder. Иначе задача была бы сформулирована соответствующим образом - "в папке и во всех вложенных по отношению к ней подпапках".
21.06.2009, 16:52
capitan
на форуме две недели, а уже матом кроет, +1 к заебланить!

то есть матом можно крыть только если на форуме находишься продолжительное время? Где такое в правилах? :d
Ок, потёр матюк, который так несказанно возмутил высококультурное сообщество форума :))
21.06.2009, 16:55
JackL
Capitan человек имел ввиду все файлы находящиеся в папке и во всех папках находящихся во всех дочерних папках - это и значит рекурсия
21.06.2009, 16:57
capitan
Capitan человек имел ввиду все файлы находящиеся в папке и во всех папках находящихся во всех дочерних папках - это и значит рекурсия

я то понял, что ты имел ввиду, но задача другая поставлена. Если ТС-ом имелось ввиду именно это, то следует чётче формулировать задачу, чтобы не возникало неоднозначных трактовок.
21.06.2009, 17:11
yami
я то понял, что ты имел ввиду, но задача другая поставлена. Если ТС-ом имелось ввиду именно это, то следует чётче формулировать задачу, чтобы не возникало неоднозначных трактовок.

ты читать умеешь? "рекурсивно в этой папке" = "в папке и во всех вложенных по отношению к ней подпапках". прочитай значение этого слова уже.
21.06.2009, 17:47
Andro
1 файл может находиться только в 1 папке. Если файл находится в папке folder1, то он не находится в папке folder.
Это зависит от файловай системы))

Речь шла конкретно о файлах из папки folder. Иначе задача была бы сформулирована соответствующим образом - "в папке и во всех вложенных по отношению к ней подпапках".
чувак, когда говорят "осуществить рекурсивный поиск в дире", имеется введу "осуществить поиск в текущей дире и всех вложенных дирах". Так что задача была поставленна коротко и четко, просто ты ее не понял...
21.06.2009, 18:29
deschain
capitan, даже если ТС имел ввиду поиск в одной папки, без прохода рекурсией по подпапкам, и именно твоя версия верна, то я всё равно в даной ситуации ты перегнул палку с матами и оскорблениями.
ЖМен никак не оскоблял, прочти ещё раз его мессагу, ты же накинулся с матами, оскоблениями и продолжил это в следующих своих сообщениях. Это не круто, чувак. Достаточно было отшутиться или написать что-либо с более спокойной формулировкой. А так ты сам себе здесь жизнь усложнил, к сожалению.
21.06.2009, 23:20
JMen
ты читать умеешь? "рекурсивно в этой папке" = "в папке и во всех вложенных по отношению к ней подпапках". прочитай значение этого слова уже.

Это бесполезно... Для него важно отстоять тот факт что он прав, а я (и все кто с ним не согласен) мудаки :) Предмет обсуждения и смысл терминов в данном случае не имеют значения. Т.е. единственное что можно сделать - игнорировать.

ТС явно осознаёт что значит рекурсия, да и непонятно почему в аську не стукнулся, я ему, помнится, что - то уже писал так - же, вечерком, на халяву.
22.06.2009, 17:45
adultru
имеется виндоус програмка-конект по фтп к хосту где лежат папки с пикчами сохраняется пути просто урл ставишь в поле и в текствике сохраняются пути к картинкам
если интересует пиши в пм
26.06.2009, 10:15
seoengineer
<?php
header('Content-Type: text/plain');

function recursive($dir) {
foreach(glob($dir.'*') as $fname) {
if(is_dir($fname)) recursive($fname.DIRECTORY_SEPARATOR);
if(preg_match('/\.(jpg|jpeg)$/i', $fname)) print $fname."\n";
}
}

recursive(getcwd());
?>

Работает на vBulletin® версия 3.8.4. Copyright ©2000-2010, Jelsoft Enterprises Ltd. Перевод: zCarot