yjiang's cake

php模拟python的`__main__`

<?php
function ismain(){
    $debug = debug_backtrace();
    if(PHP_SAPI === 'cli' && count($debug)==1 && $debug[0]["function"]==__FUNCTION__){
        return true;
    }
    return false;
}
if ( ismain()){
    // do something... 
}

全文检索 `xunsearch` 简记

配置文件

    project.name = news
    project.default_charset = utf-8
    server.index = 192.168.219.129:8383
    server.search = 192.168.219.129:8384

    [pid]
    type = id

    [title]
    type = title

    [category_id]
    index = self
    type = string
    tokenizer = split(,)

    [new_cat_id]
    index = self
    type = string
    tokenizer = full

参考xunsearch项目配置详解

  • type [字段类型], 为numeric时, 仅用于区间检索, 否则使用string
  • index [索引方式], 为self时, 可以用 field:xxx 来检索指定的field字段
  • tokenizer [分词器], 为full时, 字段作为一个整体检索词(例如ID); 为split(,)时, 将按照,分割内容

php下使用composer安装及使用

安装

 composer require hightman/xunsearch

引用

require_once __DIR__ . '/vendor/autoload.php';

$xs = new XS('./test/test.ini');
//创建索引对象
$index = $xs->index;
//创建搜索对象
$search = $xs->search;

清空索引

cli 方式

    ./util/Indexer.php --clean <project_name>

php

    //创建索引对象$index后
    $index->clean();

brew upgrade 导致的php扩展失效

brew reinstall <modules> --build-from-source

php curl upload file

if (function_exists('curl_file_create')) { // php 5.5+
  $cFile = curl_file_create($file_name_with_full_path);
} else { // 
  $cFile = '@' . realpath($file_name_with_full_path);
}
$post = array('extra_info' => '123456','file_contents'=> $cFile);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$target_url);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$result=curl_exec ($ch);
curl_close ($ch);

在php5.5以后, 需要使用 curl_file_create 来创建Curl文件对象

不重新编译php的情况下增加扩展

常用扩展可以使用php-pear来安装,但是php自带的扩展并不行,例如'curl' 'sysvchm'

#获取php-config路径
#whereis php-config

cd <php编译文件目录>/ext/curl/

phpize

./cinfigure -with-php-config=<php-config路径>

make && make install

cp module/curl.so <php扩展目录>

重启php进程

Copyright © 2016 yjiang's cake

返回顶部