我知道我可以使用以下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文件.
你知道怎么改变它,所以它适用于子目录吗?
谢谢 :)
我是Codeigniter的新手,我希望在验证失败后重定向到控制器:
if(!validate)
{
redirect('/poll/list');
}
Run Code Online (Sandbox Code Playgroud)
但我需要传递一个变量,$error以显示一些错误指示,但我不知道如何将参数传递给redirect方法中URL helper,并且想法?
我想用@ 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) 最近我用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,$ …
我在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) 我正在使用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 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 ......如何选择返回的按钮?
嗨,我对上传文件部分有些麻烦.基本上我有一个带有上传徽标部分的表单,其中如果用户没有选择徽标,他/她仍然可以同时更新他/她的个人资料,用户也可以选择上传徽标但它有一些限制.现在我不知道如何验证该部分是否知道他/她是否选择了图像.这是我目前在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) 我已经使用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中放置一个带有表单的视图文件?
我通过设置.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函数无法正常工作.
codeigniter ×10
php ×5
curl ×1
group-by ×1
iis ×1
performance ×1
radio-button ×1
rewrite ×1
uri ×1
url ×1
validation ×1
windows ×1