2017年8月

分享一个判断是否移动设备的方法

Detect Mobile Browsers

检测各种手机,有各种代码版。

代码简洁美观,不再使用脑残法。


附上脑残法:

function isMobile() {
  // 如果有HTTP_X_WAP_PROFILE则一定是移动设备
  if (isset($_SERVER['HTTP_X_WAP_PROFILE'])) {
    return true;
  }
  // 如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息
  if (isset($_SERVER['HTTP_VIA'])) {
    // 找不到为flase,否则为true
    return stristr($_SERVER['HTTP_VIA'], "wap") ? true : false;
  }
  // 脑残法,判断手机发送的客户端标志,兼容性有待提高。其中'MicroMessenger'是电脑微信
  if (isset($_SERVER['HTTP_USER_AGENT'])) {
    $clientkeywords = array('nokia','sony','ericsson','mot','samsung','htc','sgh','lg','sharp','sie-','philips','panasonic','alcatel',
    'lenovo','iphone','ipod','blackberry','meizu','android','netfront','symbian','ucweb','windowsce','palm','operamini','operamobi',
    'openwave','nexusone','cldc','midp','wap','mobile','MicroMessenger');
    // 从HTTP_USER_AGENT中查找手机浏览器的关键字
    if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT']))) {
      return true;
    }
  }
  // 协议法,因为有可能不准确,放到最后判断
  if (isset ($_SERVER['HTTP_ACCEPT'])) {
    // 如果只支持wml并且不支持html那一定是移动设备
    // 如果支持wml和html但是wml在html之前则是移动设备
    if ((strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') !== false) && (strpos($_SERVER['HTTP_ACCEPT'], 'text/html') ===
    false || (strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') < strpos($_SERVER['HTTP_ACCEPT'], 'text/html')))) {
      return true;
    }
  }
  return false;
}





关于在deepin安装lnmp导致桌面卸载的完美解决方案

折腾了两天,从一个完全不懂linux 的通过安装 lnmp
发现麻痹,我的桌面,我的所有软件都不见了,然后就是各种蛋疼,找问题啊,其实就是不想放弃使用deepin 那么多炫酷的软件,后来去看了
lnmp的 sh 脚本,有几个脚本是可疑的,然后注释了 remove 的命令,但发现竟然安装不了,后来我去查看了一下 lnmp
的安装日志,发现 lnmp 他安装其中一个依赖的时候,要求卸载 N多deepin
自带的桌面软件,我就像,既然你要我卸载,行先安装先,我就复制这些插件名称,等会再安装,后面我针对性的写一个安装脚本,竟然成功了,握草,然后漂亮的 deepin界面又出来了,感谢 感谢
注意问题:
lnmp 只能安装 mysql 不能安装 MariaDB 不知道出啥问题
我重新把那些卸载的依赖安装回来也没测试过会不会对 php 有什么影响。


for
packages in adwaita-icon-theme bamfdaemon blur-effect byzanz chmsee
cups cups-core-drivers cups-filters cups-filters-core-drivers dde
dde-api dde-calendar dde-control-center dde-daemon dde-desktop
dde-disk-mount-plugin dde-dock dde-file-manager dde-launcher
dde-polkit-agent dde-qml-dbus-factory dde-qt5integration dde-session-ui
dde-trash-plugin deepin-appstore deepin-boot-maker deepin-cloud-scanner
deepin-crosswalk deepin-image-viewer deepin-manual deepin-menu
deepin-metacity deepin-movie deepin-music deepin-notifications
deepin-qml-widgets deepin-remote-assistance deepin-screen-recorder
deepin-screenshot deepin-shortcut-viewer deepin-social-sharing
deepin-terminal deepin-voice-recorder deepin-wine-helper:i386 deepin-wm
deepin-wm-switcher deepin.com.qq.im:i386 dmusic-plugin-baidumusic
dra-chromium fcitx-config-common fcitx-config-gtk fcitx-frontend-gtk2
fcitx-frontend-gtk3 fcitx-frontend-qt4 fcitx-frontend-qt5
fcitx-sogoupinyin-uk file-roller foomatic-db-engine
foomatic-db-gutenprint gcr gdebi gedit ghostscript gir1.2-gdkpixbuf-2.0
gir1.2-gtk-3.0 gir1.2-gtksource-3.0 gir1.2-peas-1.0 gir1.2-vte-2.91 gksu
gnome-calculator gnome-font-viewer gnome-icon-theme gnome-keyring
gnome-system-monitor gnome-themes-standard google-chrome-stable gparted
gstreamer1.0-plugins-bad gstreamer1.0-plugins-good gtk-update-icon-cache
gtk2-engines gtk2-engines-murrine gtk2-engines-pixbuf gvfs-backends
hpijs-ppds hplip ijsgutenprint imagemagick imagemagick-6.q16
libappindicator1 libbamf3-0 libcanberra-gtk3-0 libclutter-1.0-0
libclutter-gtk-1.0-0 libcogl-pango20 libcogl-path20 libcogl20
libcupsfilters1 libdbusmenu-gtk4 libdde-file-manager
libdeepin-metacity-private3 libdeepin-mutter0g libdeepin-wm0
libdframeworkdbus libdjvulibre21 libdtksettingsview libdtkwidget
libevdocument3-4 libevview3-3 libfcitx-qt0 libfcitx-qt5-1
libffmpegthumbnailer4v5 libflashplugin-pepper libfontembed1
libfreeimage3 libgcr-ui-3-1 libgd3 libgd3:i386 libgdk-pixbuf2.0-0
libgksu2-0 libglade2-0 libgnome-desktop-3-12 libgphoto2-6
libgphoto2-6:i386 libgranite3 libgs9 libgspell-1-1 libgtk-3-0
libgtk2.0-0 libgtkmm-2.4-1v5 libgtkmm-3.0-1v5 libgtksourceview-3.0-1
libgxps2 libindicator7 libjpeg62-turbo libjpeg62-turbo:i386
liblcms2-utils liblept5 liblightdm-qt5-3-0 libmagickcore-6.q16-3
libmagickwand-6.q16-3 libmng1 libnautilus-extension1a libnm-gtk0 libnma0
libnotify-bin libnotify4 libopencv-calib3d2.4v5
libopencv-features2d2.4v5 libopencv-highgui2.4-deb0
libopencv-objdetect2.4v5 liboxideqt-qmlplugin liboxideqtcore0
liboxideqtquick0 libpeas-1.0-0 libpolkit-qt5-1-1 libpoppler-cpp0v5
libpoppler-glib8 libpoppler64 libqgsttools-p1 libqt4-declarative
libqt5designer5 libqt5gui5 libqt5help5 libqt5libqgtk2 libqt5multimedia5
libqt5multimedia5-plugins libqt5multimediawidgets5 libqt5opengl5
libqt5printsupport5 libqt5quick5 libqt5quickwidgets5 libqt5svg5
libqt5webkit5 libqt5widgets5 libqt5x11extras5 libqt5xdg2
libqt5xdgiconloader2 libqtav11 libqtgui4 libraw15 librsvg2-2
librsvg2-common libsane libsane:i386 libsane-drs libspandsp2 libspectre1
libtesseract3 libtiff5 libtiff5:i386 libv4l-0 libv4l-0:i386
libv4lconvert0 libv4lconvert0:i386 libvte-2.91-0 libwebkit2gtk-4.0-37
libwebkitgtk-1.0-0 libwnck-3-0 libwnck22 libyelp0 libzbar0 mintdrivers
miraclecast netease-cloud-music network-manager-integration-plugins
network-manager-l2tp-gnome network-manager-openconnect-gnome
network-manager-openvpn-gnome network-manager-pptp-gnome
network-manager-strongswan network-manager-vpnc-gnome
open-vm-tools-desktop pinentry-gnome3 poppler-utils printer-driver-c2050
printer-driver-c2esp printer-driver-deepin-cloud-print
printer-driver-foo2zjs printer-driver-gutenprint printer-driver-hpcups
printer-driver-hpijs printer-driver-pnm2ppa printer-driver-postscript-hp
printer-driver-ptouch printer-driver-pxljr printer-driver-sag-gdi
printer-driver-splix python-deepin-utils python-glade2 python-gtk2
python-pyqt5 python-pyqt5.qtmultimedia python-pyqt5.qtquick
python-webkit python-wnck python3-aptdaemon.gtk3widgets python3-dae
python3-pil python3-pyqt5 python3-pyqt5.qtmultimedia
python3-pyqt5.qtquick python3-pyqt5.qtwebkit qml-module-qtav
qml-module-qtgraphicaleffects qml-module-qtquick-controls
qml-module-qtquick-dialogs qml-module-qtquick-layouts
qml-module-qtquick-privatewidgets qml-module-qtquick-window2
qml-module-qtquick2 qml-module-qtwebkit simple-scan sogoupinyin startdde
system-config-printer system-config-printer-common tesseract-ocr
thunderbird thunderbird-locale-zh-hans yelp youdao-dict zenity;

   do apt-get --no-install-recommends install -y $packages         ; done


你直接复制到终端运行就好了 ,如果新手遇到权限不足问题 记住 永远的 命令前面加上 
sudo


欢迎大家加我QQ:3406336919 有问题可以联系我,我也希望和各位大大一起交流 deepin 下的 php 开发环境搭建


转:http://tieba.baidu.com/p/5147968432

ubuntu下U盘刻录工具,用来刻录windows系统

不需要工具,
命令就行。
首先下载windows的安装镜像。
然后打开终端输入命令
cd /home/user/下载(进入windows镜像所在目录,这个是个例子)
sudo dd if=windows.iso of=/dev/sdb(这个命令是把windows安装镜像烧录到u盘)
然后等完成就行了。


Gitlab 服务器url修改后,项目path的修改

本地搭建的gitlab 服务器,在 /etc/gitlab/gitlab.rb 中 external_url 通常是局域网ip的形式。如下所示

external_url 'http://192.168.1.106:90'11

如果遇到本地的ip地址改变后,此时的 external_url也应对要做出对应的修改。 在修改后,在网页中,看到项目的path路径,有可能还没有更改过来,此时需要手动的进行修改。

查看 下列目录下的gitlab.yml 软链接对应的文件

 cd /opt/gitlab/embedded/service/gitlab-rails/config    11
lrwxrwxrwx 1 root root 43 6月  17 21:13 gitlab.yml -> /var/opt/gitlab/gitlab-rails/etc/gitlab.yml1212

修改 gitlab.yml

 #
  # 1. GitLab app settings
  # ==========================

  ## GitLab settings
  gitlab:    ## Web server settings (note: host is the FQDN, do not include http://)
    host: 192.168.1.106
    port: 90
    https: false1234567891012345678910

此处对应的Host ,然后 重启,就可以看到项目的path得到了修改。

sudo gitlab-ctl restart

转:http://blog.csdn.net/u013377887/article/details/73717729