标签: codeigniter

url编码正斜杠打破我的codeigniter应用程序

我正在尝试创建一个像这样工作的url字符串:

/app/process/example.com/index.html
Run Code Online (Sandbox Code Playgroud)

换句话说,

/app/process/$URL
Run Code Online (Sandbox Code Playgroud)

我然后检索网址

$this->uri->segment(3);
Run Code Online (Sandbox Code Playgroud)

URL中的正斜杠当然是访问uri段的问题,所以我将继续并对url编码URL部分:

/app/process/example.com%2Findex.html
Run Code Online (Sandbox Code Playgroud)

..但现在我得到一个404说...

Not Found

The requested URL /app/process/example.com/index.html was not found on this server. 
Run Code Online (Sandbox Code Playgroud)

似乎我的正斜杠的url编码打破了CI​​的URI解析器.

我该怎么做才能解决这个问题?

php url uri codeigniter urlencode

13
推荐指数
3
解决办法
2万
查看次数

php按值复制数组元素,而不是通过引用

我有以下代码:

$data['x'] = $this->x->getResults();  

$data['y'] = $data['x'];

//some code here to modify $data['y']
//this causes (undesirably) $data['x] to be modified as well
Run Code Online (Sandbox Code Playgroud)

我猜因为$ data的所有元素都是引用,修改$ data ['y']也会修改$ data ['x'] ..这不是我想要的.我希望$ data ['x']保持不变.有没有办法取消引用这里的元素,以便我可以按值复制元素?

谢谢.

更新:$ this-> x-> getResults(); 返回一个对象数组.所以我可以做类似的事情:$ data ['x'] [0] - > date_create ...

更新:我最近克隆数组的尝试看起来像这样:

   $data['x'] = $this->x->getResults();     
   $data['y'] = $data['y'];
   foreach($data['x'] as $key=>$row) {
       $data['y'][$key]->some_attr = clone $row->some_attr;
   }
Run Code Online (Sandbox Code Playgroud)

我离开这里了吗?我一直得到一个"非对象调用的__clone方法"错误.从阅读响应看来,我最好的选择是迭代每个元素并克隆它(这是我试图用该代码做的事情......).

更新:刚刚解决了!:在foreach循环中我只需要将行更改为:

$data['y'][$key] = clone $row;
Run Code Online (Sandbox Code Playgroud)

它的工作原理!感谢大家的帮助.

php arrays pointers codeigniter

13
推荐指数
3
解决办法
3万
查看次数

在CodeIgniter中为我的Web应用程序创建移动版本

我正在使用CodeIgniter开发一个新的Web应用程序,我想创建一个移动版本,当用户通过手机访问时,用户可以重定向到该移动版本.

应用程序的移动版本应该有不同的流程,因此代码中交换CSS/HTML文件对我来说不是一个选项,因为移动版本和Web版本将在其控制器和视图中处理不同的东西,同时共享相同的模型.

无论如何我怎么能有效地做到这一点?

非常感谢您的帮助.:)

php codeigniter mobile-website

13
推荐指数
1
解决办法
6575
查看次数

在codeigniter中使用slugs

我听说有人用slu to来生成干净的网址.我不知道它是如何工作的.目前我有一个codeigniter网站,生成这样的网址

www.site.com/index.php/blog/view/7
Run Code Online (Sandbox Code Playgroud)

根据我的理解,通过维持一个slug字段,可以实现网址

www.site.com/index.php/blog/view/once-upon-a-time
Run Code Online (Sandbox Code Playgroud)

这是怎么做到的?特别是参考codeigniter?

php codeigniter clean-urls slug

13
推荐指数
1
解决办法
4万
查看次数

加载自定义CodeIgniter库时传递参数

我正在尝试实现一个我编写为CodeIgniter库的类.

不知怎的,我无法让CI的load()方法将多个参数传递给类的构造函数.

我的类被设计为获得3个参数,2个数组和一个可选字符串.

构造函数看起来有点像这样:

public function __construct($array, $array,$string=""){
/** code **/
}
Run Code Online (Sandbox Code Playgroud)

控制器的相关部分:

function index(){
  $array1 = array('key1'=>'value','key2'=>'value');
  $array2 = array('key1'=>'value','key2'=>'value');
  $string = "value";
  $params = array($array1,$array2,$string);
  $this->load->library("MyClass",$params);
}
Run Code Online (Sandbox Code Playgroud)

加载控制器会生成此错误:

Message: Missing argument 2 for MyClass::__construct()
Run Code Online (Sandbox Code Playgroud)

这真让我感到困惑.似乎第一个参数被发送得很好,然后它在第二个参数上窒息.任何关于为什么会发生这种情况的线索将不胜感激.

php arguments class-library codeigniter

13
推荐指数
1
解决办法
2万
查看次数

在没有浏览器超时的情况下在PHP中处理大量数据

我有大约50,000个手机号码.我正在尝试使用第三方API处理并向这些号码发送批量短信,但浏览器会冻结几分钟.我正在寻找更好的选择.

数据处理涉及检查移动号码类型(例如CDMA),为所有号码分配唯一ID以便进一步参考,检查网络/国家独特费用等.

我想在数据库中排队数据并使用cron每分钟批量发送大约5k,但如果有很多消息则需要时间.我还有什么其他选择?

我在XAMPP服务器上使用Codeigniter 2.

php mysql codeigniter codeigniter-2

13
推荐指数
1
解决办法
1万
查看次数

更新数据库字段错误CodeIgniter

我在CodeIgniter 2.1中收到以下错误消息:

A PHP Error was encountered

Severity: Notice

Message: Array to string conversion

Filename: database/DB_active_rec.php

Line Number: 1407
Run Code Online (Sandbox Code Playgroud)

我正在尝试更新数据库中的字段.我有这个代码,每个教程对于批量上传都是一样的.无论如何它仍然有效但事情是它显示这样的错误.

这就是我在我的模型中所拥有的:

function update2($data){
   $this->db->update_batch('users',$data, "id");
}
Run Code Online (Sandbox Code Playgroud)

这就是我在我的控制器中所拥有的:

public function updateValues(){
    $this->load->model('get_db');
    $newRow = array(
        array(
            'id' => '3',
            'firstname' => 'Rapphie'
        ),
        array(
            'id' => '2',
            'firstname' => 'Charmie'
        )
    );
    $this->get_db->update2($newRow);
    echo "it has been updated";
}
Run Code Online (Sandbox Code Playgroud)

php mysql codeigniter codeigniter-2

13
推荐指数
2
解决办法
7702
查看次数

CodeIgniter控制器构造函数

我对codeigniter很新,我想知道控制器中构造函数的含义是什么.我在codeigniter教程中看到了以下代码 -

class upload extends CI_Controller {

    function __construct() {
        parent::__construct();
        $this->load->helper(form);
    }

    // rest of the class...
Run Code Online (Sandbox Code Playgroud)

我的问题是何时调用构造函数 - 每次控制器发出请求时是否调用它(例如,控制器类是否为它接收的每个请求实例化?)

php codeigniter

13
推荐指数
1
解决办法
5万
查看次数

Codeigniter回显[:: 1]而不是localhost

我使用CodeIgniter 3作为Web平台,并尝试将语义UI UI导入到我的页面中.我是通过base_url()在CSS导入的href属性中使用CodeIgniter的方法来实现的.

但是,semantic.css本身会导入我服务器上存在的其他一些字体,然后由于跨源资源共享策略而无法加载这些字体.这是chrome给我的错误消息:

来自"来源" http://[::1]的字体已被阻止通过跨源资源共享策略加载:请求的资源上不存在"Access-Control-Allow-Origin"标头.原产地" :HTTP //本地主机,因此"是不允许访问.

这是因为[::1]我输入浏览器时,base_url()回应域已经存在而不是localhost.

出于某种原因,在我看来,chrome(以及Edge)并不认为[::1]和localhost是同一个主机,或者我可能只是愚蠢.我所知道的是,如果我将主semantic.css文件的路径和硬代码localhost更改为它,它可以工作,如果不是使用localhost请求我的页面,它也可以使用[::1]

我已经完成了与此类似的其他项目,从未"[::1]"出现过这种情况.究竟是什么导致php回应这样的路径?

php codeigniter codeigniter-2 codeigniter-3

13
推荐指数
3
解决办法
2万
查看次数

在codeigniter中加入四个表

我有四张桌子如下

人数:

------------------------------------------------------------------------------------------------
| list_id                              |user_id | name | category | fees | details |created_on |
------------------------------------------------------------------------------------------------
| 90cc57a4-f782-4c57-ac98-1965c57ece57 |user 100 |satwik| music   | 500  | dummy   |2015-08-02 |
------------------------------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

将我的list_id从随机字符串更改为UUID.
从这个关于php.net的评论
看到这个stackoverflow问题
在列表表中list_id是主键,我知道使用autoincreament是最好的,但我的要求是这样的.和s.no是其余表的主键.

我需要从PHP端生成一个随机密钥,因为要在会话中设置list_id并避免在会话中设置list_id的另一个查询. 喜欢:

----------------------------------------------------------------
|.sno | list_id                              | user_id | likes |
----------------------------------------------------------------
| 1   | 90cc57a4-f782-4c57-ac98-1965c57ece57 | user110 |  1    |
----------------------------------------------------------------
| 2   | 90cc57a4-f782-4c57-ac98-1965c57ece57 | user215 |  1    |
----------------------------------------------------------------
| 3   | 90cc57a4-f782-4c57-ac98-1965c57ece57 | user200 |  1    |
----------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

评论:

-------------------------------------------------------------------------
|.sno | …
Run Code Online (Sandbox Code Playgroud)

php mysql database join codeigniter

12
推荐指数
2
解决办法
1315
查看次数