Получить вначале строки, у которых текст в поле типа TEXT
заполнен.
SELECT * FROM `table` ORDER BY CHAR_LENGTH(`content`)>0 DESC, `pos` ASC;
Получить вначале строки, у которых текст в поле типа TEXT
заполнен.
SELECT * FROM `table` ORDER BY CHAR_LENGTH(`content`)>0 DESC, `pos` ASC;
Делаем экспорт каталога товаров имея дамп БД от WordPress.
В результате массив, который обрабатываем отталкиваясь от задачи.
Многие данные могут быть специфическими для конкретного проекта.
<?php //config $mysql=array( 'host'=>'localhost', 'user'=>'db_user', 'password'=>'db_password', 'database'=>'db_name', ); mysql_connect($mysql['host'],$mysql['user'],$mysql['password']) or die ('error mysql_connect'); mysql_select_db($mysql['database']) or die ('error mysql_select_db'); mysql_query("set names 'utf8'"); //database functions function get_from_base($what,$from,$where='(1)',$order='id'){ if(trim($what)!=''&&trim($from)!=''&&trim($where)!=''&&trim($order)!=''){ $arr=array(); $query="select ".$what." from ".$from." where ".$where." order by ".$order; $result=mysql_query($query); echo mysql_error(); if(mysql_num_rows($result)>0){ while($tmp=mysql_fetch_assoc($result)){ $arr[]=$tmp; } return $arr; } }else{ return false; } } function get_one_from_base($what,$from,$where='(1)',$order='id'){ if(trim($what)!=''&&trim($from)!=''&&trim($where)!=''&&trim($order)!=''){ $arr=array(); $query="select ".$what." from ".$from." where ".$where." order by ".$order; $result=mysql_query($query); echo mysql_error(); if($result){ if(mysql_num_rows($result)>0){ return mysql_fetch_assoc($result); } } } return false; } //work functions function make_tree($parent,$parent_chpu=''){ $tree=array(); $cats=get_from_base('*','wp_term_taxonomy',"`taxonomy`='product_cat' AND `parent`='".$parent."'",'term_taxonomy_id'); if(count($cats)>0){ $cat_chpu=$parent_chpu; for($i=0;$i<=count($cats)-1;$i++){ //$tree[$i]=$cats[$i]; $tree[$i]=array( 'wid'=>$cats[$i]['term_id'], 'description'=>$cats[$i]['description'], ); $term=get_one_from_base('*','wp_terms',"`term_id`='".$cats[$i]['term_id']."'",'term_id'); if($term['term_id']){ //$tree[$i]['term']=$term; $tree[$i]['name']=$term['name']; $tree[$i]['chpu']=urldecode($term['slug']); $cat_chpu=$parent_chpu.'/'.urldecode($term['slug']); } $tree[$i]['link']='/product-category'.$cat_chpu; $tree[$i]['childs']=make_tree($cats[$i]['term_taxonomy_id'],$cat_chpu); $tree[$i]['items']=get_products($cats[$i]['term_taxonomy_id'],$cat_chpu); } } return $tree; } function get_products($parent,$parent_chpu=''){ $products=array(); $relationships=get_from_base('*','wp_term_relationships',"`term_taxonomy_id`='".$parent."'",'object_id'); if(count($relationships)>0){ foreach($relationships as $i=>$object){ $product=get_one_from_base('*','wp_posts','`post_type`="product" and `ID`='.$object['object_id'],'ID'); $product['meta']=get_from_base('*','wp_postmeta','`post_id`="'.$object['object_id'].'"','meta_id'); //$products[]=$product; $products[$i]=array( 'wid'=>$product['ID'], 'name'=>$product['post_title'], 'announce'=>prepare_html($product['post_excerpt']), 'content'=>prepare_html($product['post_content']), 'chpu'=>urldecode($product['post_name']), 'link'=>'/shop'.$parent_chpu.'/'.urldecode($product['post_name']), //'meta'=>$product['meta'], ); if(count($product['meta'])>0){ foreach($product['meta'] as $meta){ if($meta['meta_value']){ switch($meta['meta_key']){ case '_price': $products[$i]['price']=$meta['meta_value']; break; case '_thumbnail_id': $photo=get_one_from_base('*','wp_posts','`ID`='.$meta['meta_value'],'ID'); if($photo['ID']){ $photo_url=parse_url($photo['guid']); $products[$i]['photo']=$photo_url['path']; } break; case '_sku': $products[$i]['part']=$meta['meta_value']; break; } } } } } } return $products; } function prepare_html($html){ $html=str_replace("\r\n\r\n","</p><p>",$html); $html=str_replace("\r\n","<br/>",$html); return "<p>".$html."</p>"; } //work $tree=make_tree(0); echo '<pre>';print_r($tree);echo '</pre >'; ?>
Для пакетного изменения кодировки из windows-1251 в uft-8.
Изменить кодировку всех *.php
файлов в папке:
find . -name "*.php" -exec iconv -f WINDOWS-1251 -t UTF-8 {} -o tmp \; -exec mv tmp {} \;
Изменить кодировку просто всех файлов в папке:
find . -type f -exec iconv -f WINDOWS-1251 -t UTF-8 {} -o tmp \; -exec mv tmp {} \;
1. В /etc/ssh/sshd_config
UseDNS no GSSAPIAuthentication no
затем service sshd restart
2. (Установлено случайно) очистить файл /var/log/btmp
:
cat /dev/null > /var/log/btmp
/var/log/btmp
— это лог неудачных попыток авторизации
/var/log/wtmp
— удачных
смотреть что в нем:
last -f /var/log/btmp
или
utmpdump /var/log/btmp
Для ротации этого лога:
mcedit /etc/logrotate.d/btmp
/var/log/btmp { monthly minsize 1M create 0600 root utmp rotate 1 }
phpbrew config phpbrew fpm restart
Решение на python чтобы распаковать zip архив, не имея установленной unzip (и не имея возможности или желания установить):
touch pyunzip
#!/usr/bin/env python3 import sys from zipfile import PyZipFile for zip_file in sys.argv[1:]: pzf = PyZipFile(zip_file) pzf.extractall()
chmod +x pyunzip ./pyunzip archive.zip
Еще возможен вариант на perl, (но без unzip он работать не стал):
#!/usr/bin/env perl use Archive::Extract; foreach my $filepath (@ARGV){ my $archive = Archive::Extract->new( archive => $filepath ); $archive->extract; }
touch perlunzip chmod +x perlunzip ./perlunzip archive.zip
You do not have 'Archive::Zip' installed - Please install it as soon as possible. at ./perlunzip line 5. No '/bin/unzip' program found at ./perlunzip line 5. Extract failed; no extractors available at ./perlunzip line 5.
Чтобы добавить правила для нескольких location:
location ~ ^/(path|path2/|file3.html|image4.png) { #rules }