标签: codeigniter

在IIS上删除Codeigniter的index.php?

我知道我可以使用以下web.config代码删除url的'index.php'部分:

<rewrite>
  <rules>
    <rule name="Rule" stopProcessing="true">
      <match url="^(.*)$" ignoreCase="false" />
      <conditions>
        <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
        <add input="{URL}" pattern="^/favicon.ico$" ignoreCase="false" negate="true" />
      </conditions>
      <action type="Rewrite" url="index.php/{R:1}" appendQueryString="true" />
    </rule>
  </rules>
</rewrite>
Run Code Online (Sandbox Code Playgroud)

问题是我在子目录(mydomain.com/codeigniter)中安装了CI,并且我无法理解web.config文件.

你知道怎么改变它,所以它适用于子目录吗?

谢谢 :)

windows iis rewrite codeigniter

6
推荐指数
1
解决办法
8115
查看次数

如何将参数传递给Codeigniter中URL帮助器中的重定向方法?

我是Codeigniter的新手,我希望在验证失败后重定向到控制器:

if(!validate)
{
  redirect('/poll/list');
}
Run Code Online (Sandbox Code Playgroud)

但我需要传递一个变量,$error以显示一些错误指示,但我不知道如何将参数传递给redirect方法中URL helper,并且想法?

codeigniter

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

将自定义回调添加到Codeigniter表单验证

我想用@ mywork.com限制我的电子邮件注册我在My_Form_validation中做了以下内容.

public function email_check($email)
    {
        $findme='mywork.com';
        $pos = strpos($email,$findme);
        if ($pos===FALSE)
        {
            $this->CI->form_validation->set_message('email_check', "The %s field does not have our email.");
            return FALSE;
        }
        else
        {
            return TRUE;
        }
    }
Run Code Online (Sandbox Code Playgroud)

我用它如下.我对用户名和密码使用CI规则,它适用于电子邮件,它接受任何电子邮件地址.任何我感谢任何帮助.

function register_form($container)
    {
....
....

/ Set Rules
$config = array(
...//for username
// for email            
    array(
  'field'=>'email',
  'label'=>$this->CI->lang->line('userlib_email'),
  'rules'=>"trim|required|max_length[254]|valid_email|callback_email_check|callback_spare_email"
   ),
...// for password
 );

$this->CI->form_validation->set_rules($config);
Run Code Online (Sandbox Code Playgroud)

php validation codeigniter

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

为什么CodeIgniter的Curl库比在PHP中使用Curl慢?

最近我用Curl将我的抓取代码移动到了CodeIgniter.我正在使用来自http://philsturgeon.co.uk/code/codeigniter-curl的 Curl CI库.我把抓取过程放在一个控制器中,然后我发现我的抓取的执行时间比我在普通PHP中构建的执行时间要慢.

CodeIgniter输出结果需要12秒,而普通PHP只需要6秒.两者都包括HTML DOM解析器的解析过程.

这是我在CodeIgniter中的Curl代码:

function curl($url, $postdata=false)
{
  $agent = "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)";

  $this->curl->create($url);
  $this->curl->ssl(false);
  $options = array(
    'URL'             => $url,
    'HEADER'          => 0,
    'AUTOREFERER'     => true,
    'FOLLOWLOCATION'  => true,
    'TIMEOUT'         => 60,
    'RETURNTRANSFER'  => 1,
    'USERAGENT'       => $agent,
    'COOKIEJAR'       => dirname(__FILE__) . "/cookie.txt",
    'COOKIEFILE'      => dirname(__FILE__) . "/cookie.txt",
  );

  if($postdata)
  {
    $this->curl->post($postdata, $options);
  }
  else
  {
    $this->curl->options($options);
  }

  return $this->curl->execute();
}
Run Code Online (Sandbox Code Playgroud)

非codeigniter(纯PHP)代码:

function curl($ url,$ binary = false,$ …

php performance curl codeigniter

6
推荐指数
1
解决办法
4287
查看次数

codeigniter group_by仅返回第一行

我在codeigniter中遇到这个问题:我尝试从数据库制作导航树系统.

模型:

function getServices()
{
 $this->db->select('service_url, service_title, category_title');    
 $this->db->join('services_category', 'services_category.id=services.category_id');    
 $this->db->group_by('category_title');
 $this->db->order_by('service_title', 'ASC');    
 $query = $this->db->get('services');

 if($query->result() == TRUE)    
 {    
    foreach($query->result_array() as $row)
    {
       $result[] = $row;
    }
    return $result;
  }
}
Run Code Online (Sandbox Code Playgroud)

视图:

<?php if(isset($services) && $services) : foreach($services as $s) : ?>    
   <ul>
     <li><a href="#"><?php echo $s['category_title'] ?></a>    
       <ul>
        <li><?php echo anchor('services/' . $s['service_url'], $s['service_title']); ?></li>
       </ul>    
     </li>    
   </ul>    
<?php endforeach; ?>    
<?php endif; ?>
Run Code Online (Sandbox Code Playgroud)

现在到目前为止一直很好,结果是按照预期的方式返回每个类别,但是服务每个类别只返回一个服务,而在某些类别中有15个服务.有人帮我一把,或解释出了什么问题?非常感谢.

"我不是php或codeigniter的专家,我刚开始不久,所以请不要拍初学者."

注意:我试过没有group_by和order_by,并且正在返回所有服务,但类别正在重复,

例如:

category-a
   service1
category-a
   service2
category-b
   service10
category-b
   service11
category-c
   service30 …
Run Code Online (Sandbox Code Playgroud)

group-by codeigniter

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

如何为php中的htmlentities()函数默认设置ENT_QUOTES标志

我正在使用htmlentities($data, ENT_QUOTES)从数据库中提取的任何数据,然后再显示它.

有没有办法我可以ENT_QUOTES默认为htmlentities()函数设置标志,这样即使我写htmlentities($data)它也应该工作htmlentities($data, ENT_QUOTES).

正如php的文档中所写,默认是ENT_COMPAT | ENT_HTML401.

为了您的信息,我使用codeigniter框架,php5.

更新1:使用迈克尔建议的自定义函数包装可以提供帮助,但我已经在没有ENT_QUOTES标志的网站中随处使用了这个,并且想知道php是否提供了一种方法来更改其功能的默认值.

更新2:我认为由codeigniter提供的html_escape()内置函数(由Wesley建议)对我来说是最好的,所以我不必编写自己的包装函数.

php codeigniter html-entities

6
推荐指数
1
解决办法
1680
查看次数

具有set_value的CodeIgniter form_radio

我的表单和单选按钮有点麻烦,输入文本我这样做:

<?php echo form_input('lastname', set_value('lastname'), 'id=lastname'); ?>
<?php echo form_error('lastname'); ?>
Run Code Online (Sandbox Code Playgroud)

并且当验证运行并且填写的输入字段获得返回的值时...我正在寻找的是使用单选按钮执行此操作的方法

<tr><td><?php echo form_label('Gender: ', 'gender'); ?></td><td><?php echo form_label('Male', 'male') . form_radio('gender', 'M', '', 'id=male'); ?><br><?php echo form_label('Female', 'female') . form_radio('gender', 'F', '', 'id=female'); ?></td><td><?php echo form_error('gender'); ?></td></tr>
Run Code Online (Sandbox Code Playgroud)

正如你可以看到我的单选按钮的值已经是F或M ......如何选择返回的按钮?

codeigniter radio-button

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

验证是否在codeigniter中选择了要上载的文件

嗨,我对上传文件部分有些麻烦.基本上我有一个带有上传徽标部分的表单,其中如果用户没有选择徽标,他/她仍然可以同时更新他/她的个人资料,用户也可以选择上传徽标但它有一些限制.现在我不知道如何验证该部分是否知道他/她是否选择了图像.这是我目前在CI控制器中的代码:

if (//CHECK IF THERE IS A FILE FOR UPLOAD){
                $new_name = $data['id'];

                $config['upload_path'] = './Logos/';
                $config['allowed_types'] = 'jpg|png|gif';
                $config['max_size'] = '100';
                $config['max_width']  = '100';
                $config['max_height']  = '100';

                $this->load->library('upload', $config);

                    if ( ! $this->upload->do_upload())
                    {
                        array_push($data['error_message'], "You have the following errors in your entry:\n");
                        array_push($data['error_message'], "- Logo must be 100x100 pixels in size not exceeding 100KB with JPG,PNG or GIF format");
                        array_push($data['error_message'], "\nLogo upload failed.");
                        $data['check_error'] = true;
                    }
                    else
                    {
                        $data = array('upload_data' => $this->upload->data());

                        //DO UPDATE PART HERE …
Run Code Online (Sandbox Code Playgroud)

php codeigniter

6
推荐指数
1
解决办法
9241
查看次数

在另一个视图中加载视图

我已经使用django一段时间了,我决定开始一个新项目,但这次在Codeigniter中,我曾经在我的视图中扩展模板文件,并将内容放在{%block content%}块内,但它看起来是在CodeIgniter中有所不同.

在CodeIgniter中我有类似的东西:

<?php
     $this->load->view('header');
     $this->load->view('form_add_customer');
     $this->load->view('footer');
?>
Run Code Online (Sandbox Code Playgroud)

但有没有办法像这样有一个标题,内容和页脚的独特文件?

<html>
    <head><title>Test</title></head>
    <body>
        <div id="header">Welcome</div>
        <div id="content">
        </div>
        <div id="footer"> 2013 - Tectcom Telecom</div>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

并在内容div中放置一个带有表单的视图文件?

codeigniter codeigniter-2

6
推荐指数
1
解决办法
7940
查看次数

从codeigniter中的site_url函数中删除index.php

我通过设置.htaccess文件从url中删除了index.php.现在我想从site_url()返回值中删除index.php,因为我不希望搜索引擎缓存我的URL包含index.php.例如,当我在项目的一部分中使用site_url()时,搜索引擎会缓存URL,如http://url/index.php/controller.我从system/helper中的site_url函数中删除了index.php,但我认为redirect和form_open函数无法正常工作.

php url uri codeigniter

6
推荐指数
2
解决办法
3175
查看次数