我必须根据某些条件从我的PHP脚本中显示一个页面.我有一个if条件,如果条件满足,我正在做"包含".
if(condition here){
include "myFile.php?id='$someVar'";
}
Run Code Online (Sandbox Code Playgroud)
现在问题是服务器有一个文件"myFile.php",但我想用一个参数(id)调用这个文件,"id"的值会随着每次调用而改变.
有人可以告诉我如何实现这一目标吗?谢谢.
我有这个代码(它没有给我预期的结果)
#subject_content.html
{% block main-menu %}
{% include "subject_base.html" %}
{% endblock %}
#subject_base.html
....
....
<div id="homework" class="tab-section">
<h2>Homework</h2>
{% include "subject_file_upload.html" %}
</div>
Run Code Online (Sandbox Code Playgroud)
儿童模板:
#subject_file_upload.html
<form action="." method="post" enctype="multipart/form-data">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="submit">
</form>
Run Code Online (Sandbox Code Playgroud)
和我的看法
#views.py
@login_required
def subject(request,username, subject):
if request.method == "POST":
form = CarsForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return HttpResponseRedirect("/")
form = CarsForm()
return render_to_response('subject_content.html', {'form':form}, context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)
上面的代码以我希望的方式创建HTML,但是表单不会更新数据库.
但,
如果我跳过中间模板并直接转到上传表单,它可以正常工作:
#subject_content.html
{% block main-menu %}
{% include "subject_file_upload.html" %}
{% endblock …
Run Code Online (Sandbox Code Playgroud) 我正在尝试将变量传递给包含文件.我的主机改变了PHP版本,现在无论我尝试什么解决方案都行不通.
我想我已经尝试了所有可以找到的选项.我确定这是最简单的事情!
需要从调用的第一个文件设置和评估变量(它实际上是$_SERVER['PHP_SELF']
,并且需要返回该文件的路径,而不是包含的文件second.php
).
选项一
在第一个文件中:
global $variable;
$variable = "apple";
include('second.php');
Run Code Online (Sandbox Code Playgroud)
在第二个文件中:
echo $variable;
Run Code Online (Sandbox Code Playgroud)
选项二
在第一个文件中:
function passvariable(){
$variable = "apple";
return $variable;
}
passvariable();
Run Code Online (Sandbox Code Playgroud)
选项三
$variable = "apple";
include "myfile.php?var=$variable"; // and I tried with http: and full site address too.
$variable = $_GET["var"]
echo $variable
Run Code Online (Sandbox Code Playgroud)
这些都不适合我.PHP版本是5.2.16.
我错过了什么?
谢谢!
我对Android XML布局中的标签<merge>
和<include>
标签感到好奇.我已经阅读了两个教程,但还没有找到一个简单的示例用法.
如果有人可以提供这样的例子或给出一个指针,那将会很高兴.
所以,当我们做以下事情时:
#include <stdio.h>
Run Code Online (Sandbox Code Playgroud)
与
#include "myFile.h"
Run Code Online (Sandbox Code Playgroud)
在我的情况下,编译器GCC知道stdio.h(甚至目标文件)在我的硬盘上的位置.它只是利用了我没有互动的文件.
我认为在我的Ubuntu Linux机器上存储的文件是/usr/include/
.编译器如何知道在哪里查找这些文件?这是可配置的还是仅仅是预期的默认值?我在哪里寻找这种配置?
由于我问这些包含文件的问题,文件的来源是什么?我知道在Linux社区中这可能是模糊的,但谁管理这些?谁将为Windows编译器提供和管理相同的文件.
我一直认为他们的印象来与编译器,但是这是一个假设...
我正在尝试将变量从一个包含文件传递到另一个包含文件.除非我在第二个包含文件中将变量声明为全局变量,否则这不起作用.但是,我不需要在调用第一个include的文件中将其声明为全局.例如:
front.inc:
$name = 'james';
Run Code Online (Sandbox Code Playgroud)
index.php文件:
include('front.inc');
echo $name;
include('end.inc');
Run Code Online (Sandbox Code Playgroud)
输出:詹姆斯
end.inc:
echo $name;
Run Code Online (Sandbox Code Playgroud)
输出:没什么
如果我在end.inc中回显$ name之前声明全局$ name,那么它可以正常工作.这篇文章接受的答案解释了这取决于您的服务器配置:将PHP中的变量从一个文件传递到另一个文件
我正在使用Apache服务器.我如何配置它以便声明$ name是全局的?一个与另一个有优点/缺点吗?
这似乎是一个非常简单的问题,但不知怎的,我的Google-Fu让我失望了.
在Perl中包含其他文件的函数的语法是什么?我正在寻找类似C的东西#include "blah.h"
我看到了使用Perl模块的选项,但这似乎需要对我当前的代码进行无意义的重写.
是否可以指定要从命令行包含的额外头文件(使用GCC 4/C++)?
或者除了#include之外还有其他方式可以包含文件吗?
背景:我正在尝试在自己的PC上编译大型代码库.代码通常是在一个集群中编译的,它有一个复杂的构建系统(SoftRelTools anybody?),它与操作系统交织在一起,因此几乎不可能在其他地方安装它(实际上是数百个makefile和shell脚本,而且很难网络驱动器的编码路径).但是,实际的代码相当简单,编译得很好,但它缺少很多包含(大多数是la" include <vector>
"和" include <math.h>
").我猜测构建系统通常会处理这个问题,但我必须通过代码并手动添加包含,我宁愿避免.
我有一个非常大的代码库(读取:数千个模块),它们在许多项目中共享代码,这些代码都运行在具有不同C++编译器的不同操作系统上.毋庸置疑,维护构建过程可能相当繁琐.
在代码库中有几个地方可以清理代码,只要有一种方法可以让预处理器忽略#includes
当前文件夹中不存在的文件.有谁知道实现这一目标的方法?
目前,我们使用了一个#ifdef
围绕#include
在共享文件,与该#define语句是否没有第二个项目特定的文件#include
存在于该项目.这有效,但很难看.人们在添加或删除项目中的文件时经常忘记正确更新定义.我已经考虑过编写一个预构建工具来保持这个文件是最新的,但是如果有一个独立于平台的方法来对预处理器做这个,我宁愿那样做.有任何想法吗?
我正在尝试编写一个小的构建脚本 - 并且想要确定包含是否包含系统.所以我希望g ++告诉我它正在使用的包含路径.
cpp -v似乎是最好的镜头,但它并没有给我C++路径.
所以我尝试过:
g++ -Xpreprocessor -v
Run Code Online (Sandbox Code Playgroud)
哪个不能正常工作 - g ++捕获-v为它自己的详细输出.
谢谢,奥利弗