php去掉索引
㈠ 在php中怎麼刪除數組鍵值 讓它變為索引數組
PHP 中的 array_values() 函數可以實現
array_values() 函數返回一個包含給定數組中所有鍵值的數組,但不保留鍵名。
被返回的數組將使用數值鍵,從 0 開始且以 1 遞增。
例子
<?php
$a=array("a"=>"Cat","b"=>"Dog","c"=>"Horse");
print_r(array_values($a));
?>
輸出:
Array ( [0] => Cat [1] => Dog [2] => Horse )
㈡ 怎樣去除數組中數字索引
php可以通過unset刪除數組中的值 如果如果沒有key的數組 $forasp = array(1,6,9); var_export($forasp); unset($forasp[0]); var_export($forasp); //輸出結果 array ( 0 => 1, 1 => 6, 2 => 9, )array ( 1 => 6, 2 => 9, ) 如果有key的數組 $forasp = array("site"=>"forasp","name"=>"網站名"); var_export($forasp); unset($forasp['site']); var_export($forasp); array ( 'site' => 'forasp', 'name' => '網站名', )array ( 'name' => '網站名', ) 這樣就可以通過php unset 刪除數組中的某個值!
㈢ php 數組如何去掉索引值
不可能去掉,默認都會有數字作為索引值。不然怎麼取值
㈣ 怎麼在thinkphp中url去掉控制器與index.php
可以通過URL重寫隱藏應用的入口文件index.php,下面是相關伺服器的配置參考:
[ Apache ]
httpd.conf配置文件中載入了mod_rewrite.so模塊
AllowOverride None 將None改為 All
把下面的內容保存為.htaccess文件放到應用入口文件的同級目錄下
<IfMole mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]</IfMole>
[ IIS ]
如果你的伺服器環境支持ISAPI_Rewrite的話,可以配置httpd.ini文件,添加下面的內容:
RewriteRule (.*)$ /index\.php\?s=$1 [I]
在IIS的高版本下面可以配置web.Config,在中間添加rewrite節點:
<rewrite> <rules> <rule name="OrgPage" stopProcessing="true"> <match url="^(.*)$" /> <conditions logicalGrouping="MatchAll"> <add input="{HTTP_HOST}" pattern="^(.*)$" /> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> </conditions> <action type="Rewrite" url="index.php/{R:1}" /> </rule> </rules> </rewrite>
[ Nginx ]
在Nginx低版本中,是不支持PATHINFO的,但是可以通過在Nginx.conf中配置轉發規則實現:
location / { // …..省略部分代碼 if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=$1 last; break; } }
其實內部是轉發到了ThinkPHP提供的兼容模式的URL,利用這種方式,可以解決其他不支持PATHINFO的WEB伺服器環境。
如果你的ThinkPHP安裝在二級目錄,Nginx的偽靜態方法設置如下,其中youdomain是所在的目錄名稱。
location /youdomain/ { if (!-e $request_filename){ rewrite ^/youdomain/(.*)$ /youdomain/index.php?s=$1 last; }}
原來的訪問URL:
http://serverName/index.php/模塊/控制器/操作/[參數名/參數值...]
設置後,我們可以採用下面的方式訪問:
http://serverName/模塊/控制器/操作/[參數名/參數值...]
默認情況下,URL地址中的模塊不能省略,如果你需要簡化某個模塊的URL訪問地址,可以通過設置模塊列表和默認模塊或者採用子域名部署到模塊的方式解決,請參考後面的模塊和域名部署部分。
㈤ PHP網站,怎麼實現去除.php後綴
在伺服器配置一下偽靜態,也叫rewrite,不同的伺服器配置方法不一樣,你根據自己的伺服器來配置就行了。
㈥ php把索引數組的第一個元素移除後索引不重置
直接使用php內置函數unset,代碼如下:
//測試數組
$a1=array(1,2,3);
//刪除索引數組第一個值$a1[0]
unset($a1[0]);
//測試結果
echo"<pre>";
print_r($a1);
echo"</pre>";
exit;
結果為:
Array
(
[1] => 2
[2] => 3
)
㈦ 怎樣去除 PHP 數組的默認索引
定義數組的索引之後就不會出現默認索引,如果需要取值可以使用循環
㈧ 改變數組在PHP中的索引問題,怎麼解決
類似於重置數組信息,這個可以使用php的一個內置函數array_values();
例如:
<?php $a=array("a"=>"Cat","b"=>"Dog","c"=>"Horse"); print_r(array_values($a)); // 輸出: // Array ( [0] => Cat [1] => Dog [2] => Horse )?>
㈨ PHP程序中怎麼解決「未定義的索引」這個問題
通常出現未定義的索引問題是由於數組沒有這個值造成的,數組分為關聯數組和索引數組,索引數組是數字下標;關聯數組是鍵值下標。
$POST['id']之所以報未定義索引是因為$POST這個數組里沒有包含下標鍵值為id的值。
解決辦法: 判斷數組中是否包含下標鍵值為id的值,如果沒有,則返回錯誤信息,如何判斷呢,最簡單的方法就是用函數isset來判斷,如isset($POST['id']),存在則返回true,反之則為false;
三元判斷法,不存在給一個默認的數值, 如 $POST['id'] = isset($POST['id'])?$POST['id']:"1";
㈩ 如何去掉index.php目錄
apache去掉index.php
1.編輯conf/httpd.conf配置文件
#LoadMole rewrite_mole moles/mod_rewrite.so 把該行前的#去掉
同時對應Directory下要配置 AllowOverride All
2.在 CI 根目錄下(即在index.php,system的同級目錄下)新建立一個配置文件,命名為: .htaccess 內容如下:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|robots\.txt)
RewriteRule ^(.*)$ index.php/$1
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(application|moles|plugins|system|themes) index.php/$1 [L]
3.把system/application/config/config.php 中$config['index_page'] = "index.php";改為$config['index_page'] = "";
4.重啟apache
php CI 實戰教程:[9]如何去掉index.php目錄
nginx去掉index.php
1.編輯nginx.conf文件
vi /usr/local/xxxxx/nginx/conf/nginx.conf
#nginx去掉index.php
location / {
rewrite ^/$ /index.php last;
#防止某些文件夾被直接訪問
rewrite ^/(?!index\.php|robots\.txt|uploadedImages|resource|images|js|css|styles|static)(.*)$ /index.php/$1 last;
}
2.config/config.php下配置$config['index_page'] = '';
3..重啟nginx
去掉默認的index方法,如圖的URL配置如:
config/routes.php,配置$route['catalogues/(:any)'] = "catalogues/index/$1";
其中(:any)表示匹配所有除CI保留關鍵字外的內容,後面的$1為index傳入的參數內容。
多個參數採用多個(:any),如兩個參數的為:$route['catalogues/(:any)/(:any)'] = "catalogues/index/$1/$2";
註:route規則如果同一目錄下精確配置要在模糊配置上面,否則不起作用,如:
$route['catalogues/more'] = "catalogues/more";
$route['catalogues/(:any)'] = "catalogues/index/$1";
php CI 實戰教程:[9]如何去掉index.php目錄
END
注意事項
route規則如果同一目錄下精確配置要在模糊配置上面,否則不起作用
nginx伺服器不需要.htaccess文件