Если вы используете Arch Linux , вы можете установить пакет rename
из AUR
, который предоставляет команду renamexm
как /usr/bin/renamexm
] и его страницу manual вместе с ней.
Это действительно мощный инструмент для быстрого переименования файлов и каталогов.
]
rename -l Developers.mp3 # or --lowcase
rename -u developers.mp3 # or --upcase, long option
-R --recursive # directory and its children
-t --test # dry run, output but don't rename
-o --owner # change file owner as well to user specified
-v --verbose # output what file is renamed and its new name
-s/str/str2 # substite string on pattern
--yes # Confirm all actions
Вы можете выбрать образец Разработчики .mp3 из здесь , если необходимо;)
blockquote>
Вы можете использовать counter:
$i = 0;
$len = count($array);
foreach ($array as $item) {
if ($i == 0) {
// first
} else if ($i == $len - 1) {
// last
}
// …
$i++;
}
foreach ($arquivos as $key => $item) {
reset($arquivos);
// FIRST AHEAD
if ($key === key($arquivos) || $key !== end(array_keys($arquivos)))
$pdf->cat(null, null, $key);
// LAST
if ($key === end(array_keys($arquivos))) {
$pdf->cat(null, null, $key)
->execute();
}
}
1: Почему бы не использовать простой оператор для
? Предполагая, что вы используете реальный массив, а не Iterator
, вы можете легко проверить, равна ли переменная счетчика 0 или на единицу меньше всего числа элементов. На мой взгляд, это наиболее чистое и понятное решение ...
$array = array( ... );
$count = count( $array );
for ( $i = 0; $i < $count; $i++ )
{
$current = $array[ $i ];
if ( $i == 0 )
{
// process first element
}
if ( $i == $count - 1 )
{
// process last element
}
}
2: Вам следует рассмотреть возможность использования Nested Sets для хранения вашей древовидной структуры. Кроме того, вы можете улучшить все это, используя рекурсивные функции.
Вы можете удалить первый и последний элементы из массива и обработать их отдельно.
Примерно так:
<?php
$array = something();
$first = array_shift($array);
$last = array_pop($array);
// do something with $first
foreach ($array as $item) {
// do something with $item
}
// do something with $last
?>
Удаление всего форматирования в CSS вместо встроенных тегов улучшит ваш код и ускорит время загрузки.
Вы также можете избежать смешивания HTML с логикой php, когда это возможно.
Страницу можно было бы сделать более читаемой и удобной в обслуживании, разделив такие элементы следующим образом:
<?php
function create_menu($params) {
//retirive menu items
//get collection
$collection = get('xxcollection') ;
foreach($collection as $c) show_collection($c);
}
function show_subcat($val) {
?>
<div class="sub_node" style="display:none">
<img src="../images/dtree/join.gif" align="absmiddle" style="padding-left:2px;" />
<a id="'.$val['xsubcatid'].'" href="javascript:void(0)" onclick="getProduct(this , event)" class="sub_node_links" >
<?php echo $val['xsubcatname']; ?>
</a>
</div>
<?php
}
function show_cat($item) {
?>
<div class="node" >
<img src="../images/dtree/plus.gif" align="absmiddle" class="node_item" id="plus" />
<img src="../images/dtree/folder.gif" align="absmiddle" id="folder">
<?php echo $item['xcatname']; ?>
<?php
$subcat = get_where('xxsubcategory' , array('xcatid'=>$item['xcatid'])) ;
foreach($subcat as $val) show_subcat($val);
?>
</div>
<?php
}
function show_collection($c) {
?>
<div class="parent" style="direction:rtl">
<img src="../images/dtree/minus.gif" align="absmiddle" class="parent_item" id="minus" />
<img src="../images/dtree/base.gif" align="absmiddle" id="base">
<?php echo $c['xcollectionname']; ?>
<?php
//get categories
$cat = get_where('xxcategory' , array('xcollectionid'=>$c['xcollectionid']));
foreach($cat as $item) show_cat($item);
?>
</div>
<?php
}
?>