當前位置:首頁 » 編程語言 » phprender

phprender

發布時間: 2022-12-13 16:17:23

1. yii2怎麼直接render()一個php語法的字元串

用htmlentities()把特殊符號都過濾掉試試

$string=htmlentities('<?phpecho"phpline";?>');
echo$string;

希望能夠幫助你,望採納。謝謝

2. thinkphp5原生查詢時,查詢結果怎麼分頁,具體代碼應該怎麼寫

造成這個錯誤的原因是 Db::query($sql)返回的是數組,解決方法:
$list = Db::table('procts')->field('id,name,price')->paginate(5);
視圖:
遍歷$list元素
分頁{$list->render()}

3. php報錯:Undefined variable

在控制器中 修改如下:
$this->render('list', $asde);
修改成
$this->render('list', array('asde'=>$asde));

4. yii 前端如何使用php的變數

你是說視圖?
yii視圖默認不使用模板引擎,用原生的php
首先在控制器
$this->render('viewFile',array(
'var' => 'string',

));

然後視圖:
<?php
echo $var;
?>

5. PHP新手的提問

看來你用的是YII框架, YII::app()是YII底層封裝好的方法,返回一個單例,在面向對象中,「::」 主要用來調用靜態方法;「->」 是一個對象實例訪問自己的屬性或方法;「=>」 在這裡面是數組的表示方法,即鍵值對。建議你如果是新手,不要一開始就看框架,基礎知識很重要

6. Fatal error: Call to undefined method Controller***::render() in /.../***.php on line 6

錯誤是提示控制器類下的render() 方法未定義.你檢查下Controller*** 類或Controller類中有沒有定義過render()方法.

7. php的圖片驗證碼代碼

這個是phpcms的驗證碼,經過十幾萬個網站經驗的,非常好用
<?php

session_start();

$enablegd = 1;
//判斷圖像處理函數是否存在
$funcs = array('imagecreatetruecolor','imagecolorallocate','imagefill','imagestring','imageline','imagerotate','imagedestroy','imagecolorallocatealpha','imageellipse','imagepng');
foreach($funcs as $func)
{
if(!function_exists($func))
{
$enablegd = 0;
break;
}
}

ob_clean(); //清理緩沖

if($enablegd)
{
//create captcha
$consts = 'cdfgkmnpqrstwxyz23456';
$vowels = 'aek23456789';
for ($x = 0; $x < 6; $x++)
{
$const[$x] = substr($consts, mt_rand(0,strlen($consts)-1),1); //獲取$consts中的一個隨機數
$vow[$x] = substr($vowels, mt_rand(0,strlen($vowels)-1),1); //獲取$vowels中的一個隨機數
}
$radomstring = $const[0] . $vow[0] .$const[2] . $const[1] . $vow[1] . $const[3] . $vow[3] . $const[4];
$_SESSION['checkcode'] = $string = substr($radomstring,0,4); //顯示4個字元

$imageX = strlen($radomstring)*8; //圖像的寬
$imageY = 20; //圖像的高
$im = imagecreatetruecolor($imageX,$imageY); //新建一個真彩色圖像

//creates two variables to store color
$background = imagecolorallocate($im, rand(180, 250), rand(180, 250), rand(180, 250)); //背景色
$foregroundArr = array(imagecolorallocate($im, rand(0, 20), rand(0, 20), rand(0, 20)),
imagecolorallocate($im, rand(0, 20), rand(0, 10), rand(245, 255)),
imagecolorallocate($im, rand(245, 255), rand(0, 20), rand(0, 10)),
imagecolorallocate($im, rand(245, 255), rand(0, 20), rand(245, 255))
);
$foreground2 = imagecolorallocatealpha($im, rand(20, 100), rand(20, 100), rand(20, 100),80); //分配顏色並說明透明度
$middleground = imagecolorallocate($im, rand(200, 160), rand(200, 160), rand(200, 160)); //中間背景
$middleground2 = imagecolorallocatealpha($im, rand(180, 140), rand(180, 140), rand(180, 140),80); //中間背景2

//與左上角的顏色相同的都會被填充
imagefill($im, 0, 0, imagecolorallocate($im, 250, 253, 254));
//往圖像上寫入文字
imagettftext($im, 12, rand(30, -30), 5, rand(14, 16), $foregroundArr[rand(0,3)], XINCHENG_ROOT.'include/fonts/ALGER.TTF', $string[0]);
imagettftext($im, 12, rand(50, -50), 20, rand(14, 16), $foregroundArr[rand(0,3)], XINCHENG_ROOT.'include/fonts/ARIALNI.TTF', $string[1]);
imagettftext($im, 12, rand(50, -50), 35, rand(14, 16), $foregroundArr[rand(0,3)], XINCHENG_ROOT.'include/fonts/ALGER.TTF', $string[2]);
imagettftext($im, 12, rand(30, -30), 50, rand(14, 16), $foregroundArr[rand(0,3)], XINCHENG_ROOT.'include/fonts/arial.ttf', $string[3]);

//畫邊框
$border = imagecolorallocate($im, 133, 153, 193);
imagerectangle($im, 0, 0, $imageX - 1, $imageY - 1, $border);

//畫一些隨機出現的點
$pointcol = imagecolorallocate($im, rand(0,255), rand(0,255), rand(0,255));
for ($i=0;$i<80;$i++)
{
imagesetpixel($im,rand(2,$imageX-2),rand(2,$imageX-2),$pointcol);
}
//畫隨機出現的線
for ($x=0; $x<9;$x++)
{
if(mt_rand(0,$x)%2==0)
{
imageline($im, rand(0, 120), rand(0, 120), rand(0, 120), rand(0, 120), rand(0, 999999)); //畫線
imageellipse($im, rand(0, 120), rand(0, 120), rand(0, 120), rand(0, 120), $middleground2); //畫橢圓
}
else
{
imageline($im, rand(0, 120), rand(0, 120), rand(0, 120), rand(0, 120), rand(0, 999999));
imageellipse($im, rand(0, 120), rand(0, 120), rand(0, 120), rand(0, 120), $middleground);
}
}
//output to browser
header("content-type:image/png\r\n");
imagepng($im);
imagedestroy($im);
}
else
{
$files = glob(XINCHENG_ROOT.'images/checkcode/*.jpg');
if(!is_array($files)) die('請檢查文件目錄完整性:/images/checkcode/');

$checkcodefile = $files[rand(0, count($files)-1)]; //隨機其中一個文件
$_SESSION['checkcode'] = substr(basename($checkcodefile), 0, 4); //獲得文件名

header("content-type:image/jpeg\r\n");
include $checkcodefile;
}
?>

8. 為什麼說PHP是首選的Web開發語言

作者:2gua
鏈接:https://zhuanlan.hu.com/p/19904737
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。

1. PHP是為Web而生的,天然與HTML、JavaScript有親近感,也就是原生味兒十足。即使是PHP與HTML代碼混雜,從某種角度而言,也能幫助初學者直觀地了解Web技術機理,壞事有時候也是好事。另一方面,開源PHP的C風格、Unix/Linux范兒讓其在Apache、Nginx等Web應用伺服器上表現優異。總之,PHP與Web是渾然天成的結合方式。
2. 要掌握PHP,我建議從備受詬病的「代碼凌亂」編程風格 -- 或許是從PHP與HTML混合編程開始,待直觀了解Web開發技術之後,再考慮代碼組織和結構的重構,這樣有助於自己以更加原生的方式掌握Web的秘密。那麼,什麼是更加原生的方式呢?隨手舉個例子:典型的404狀態碼。
用PHP的實現(404.php、404.html):

<?php
header("HTTP/1.1 404 Not Found");
include("404.html");
exit;
?>

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
</head>
<body>
<p>404頁面。</p>
</body>
</html>

再看看如http://ASP.NET MVC中的實現:
public ActionResult Details(int id)
{
return HttpNotFound();
}

雖然封裝得很好,但是,跟PHP方式比較就知道,http://ASP.NET MVC中的實現確實比較抽象不夠直觀,而且是在控制器里直接定義和跳轉的。在PHP中,顯而易見,一下就明白了代碼中header的含義:HTTP-Version、Status-Code、Reason-Phrase。
順帶說說Rails中的處理方式,抽象程度也很高:
render :template => '......', :status => 404

3. 與PHP類似的還有JSP,但JSP往往需要與JEE其他技術模塊相配合使用,體系足夠龐大,需要有長期准備。其他如http://ASP.NET MVC、Rails等框架的抽象度較高,也不建議作為首選。
4. 不得不提Node.js,Node.js是目前很火的技術,號稱「全棧」的希望所在,常拿來跟PHP爭論比較:什麼並發、線程、進程等等。在這里無意評論孰優孰劣,但至少PHP可以讓你多掌握一門技術,而不止是JavaScript。此外,PHP的大型業務的成熟應用案例可是比比皆是吖。
5. 那麼,是不是該一直堅持指哪打哪的「代碼凌亂」方式呢?當然不應該。PHP提供的OOP特性足夠強大,在技能與理解程度達到一定高度時,完全可以以OOP的方式來組織代碼。在PHP領域,各種框架非常多,比如Laravel、CI、FuelPHP、Yii、Symfony、Zend Framework等等,屆時隨便選一個都可以進行規范化開發。「代碼凌亂」關鍵不在於工具本身,而在於人自己!要知道用Java也能寫出爛代碼。
6. PHP的資料非常豐富。

7. 最後,有一個稍稍題外話的看法,早前我還覺得在RESTful方式不斷普及下,由於RESTful Web Services使用標準的 HTTP 方法(GET/PUT/POST/DELETE)來抽象Web服務能力,服務端的重點將移至MC,而服務端視圖模版的應用會減少,客戶端的支撐需求會越來越多。比如各種前端庫、框架將得到快速推進,越來越多的需求處理會前置到前端來處理。但現在我感覺這種狀態考慮得太過理想了,就像數據頻繁大量更迭及處理的場景,更適合服務端(如模版引擎)完成;再具體地,又如大數據量的分頁,如果都在瀏覽器中實現,性能就一定會有很大問題。此外,頻繁Ajax調用、客戶端緩存機制的缺失,也將引起種種問題,再進一步來看,單頁面應用(SPA)也就並非適合每一個業務場景,服務端視圖模版還是有比較多的適用領域的。

9. PHP ZEND 報錯An error occurred Application error

你沒有定義路由,其實那不是真正的訪問indexAction()因為zf找不到action會在自動指向indexaction()就是這樣

10. 如何為PHP項目統一設置404頁面

包括yii框架下

一、Apache + PHP製作自定義404頁面的方法。

首先處理文件真的不存在的情況,方法是利用Apache的.htaccess定義,

方法是新建.htaccess,在.htaccess最開頭加上:ErrorDocument 404 /404.PHP(/404.php是自定義404頁面)。

二、在yii框架下設置

當請求的頁面不存在時,yii會拋出一個CHttpException的異常,異常code為404,那麼yii中是怎麼處理該類異常的呢,有下面三種方法:
1、啥也不用做,yii會自己處理
當拋出該類異常時,yii會默認去渲染framework/view/下的 errorxxx.php(error404.php)模板文件
2、在protected/views/system下新建errorxxx.php,yii會去渲染該文件
3、配置異常處理器
在配置文件main.php中添加如下配置,設置異常處理控制器為site/error

'errorHandler'=>array(
//use'site/error'actiontodisplayerrors
'errorAction'=>'site/error',
),

然後在SiteController.php中添加,error控制器:

publicfunctionactionError()
{
if($error=Yii::app()->errorHandler->error)
{print_r($error);
if(Yii::app()->request->isAjaxRequest)
echo$error['message'];
else
$this->render('error',$error);
}
}

最後在view/site/ 下添加error.php模板文件:

<?php
$this->pageTitle=Yii::app()->name.'-Error';
$this->breadcrumbs=array(
'Error',
);
?>

<h2>Error<?phpecho$code;?></h2>

<divclass="error">
<?phpechoCHtml::encode($message);?>
</div>
熱點內容
演算法是步驟 發布:2025-01-23 01:47:22 瀏覽:237
ip訪問控制實驗 發布:2025-01-23 01:41:51 瀏覽:105
crv20萬能落地什麼配置 發布:2025-01-23 01:35:33 瀏覽:172
s10手機怎麼查配置 發布:2025-01-23 01:34:48 瀏覽:890
九陰真經3d免費腳本 發布:2025-01-23 01:33:47 瀏覽:686
gcc編譯分為哪幾個階段 發布:2025-01-23 01:33:45 瀏覽:806
戰地5怎麼看哪個伺服器 發布:2025-01-23 01:33:07 瀏覽:367
首選域名伺服器怎麼設置 發布:2025-01-23 01:32:18 瀏覽:156
android手機代理 發布:2025-01-23 01:28:42 瀏覽:113
sdt編譯 發布:2025-01-23 01:28:37 瀏覽:951