问题列表 - 第24619页

PHP代码无法在IE上运行

我有一个带旗帜的网站.如果单击它,则网站的语言会发生变化.

这是显示标志的代码,这是一个带有post事件的表单:

   <?php 
    $pagename = $_SERVER['REQUEST_URI'];
    echo '<form action="'.$pagename.'" method="post">
    <input name="formlanguage" type="image" ';
    if ($_SESSION['lang'] == 0)
    {
        echo 'alt="English" src="images/en.png" value="1" ';
    }
    else
    {
        echo 'alt="Deutsch" src="images/de.png" value="0" ';
    }
    echo '/></form>';
    ?>  
Run Code Online (Sandbox Code Playgroud)

以下是对此的响应,这部分总是在IE上失败:

if (isset($_POST['formlanguage']))
{
    $_SESSION['lang']=$_POST['formlanguage'];
}
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚为什么它适用于Chrome但不适用于IE.我假设它可能是IE的设置.但这可能是什么?

php forms internet-explorer postback

0
推荐指数
1
解决办法
951
查看次数

最有用的Explorer shell扩展

我想知道哪些是您作为开发人员使用的最常见(也是最有用的)shell扩展.我打赌列表上有以下内容,但我想知道你要添加的其他内容:

  • Tortoise SVN
  • Tortoise Hg
  • 乌龟XXX(Git,CVS,等等)

还有其他值得一提吗?

windows windows-shell

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

使用XPath选择多个条件

我有一个XML文档,看起来像这样:

<meadinkent>
 <record>
  <comp_div>MENSWEAR</comp_div> 
  <sty_ret_type>ACCESSORIES</sty_ret_type> 
  <sty_pdt_type>BELTS</sty_pdt_type> 
  <pdt_category>AWESOME_BELTS</pdt_category> 
  </record>
<medinkent>
Run Code Online (Sandbox Code Playgroud)

我想使用XPath来选择匹配所有四个元素的节点,并且我无法正确获取布尔语法.我正在尝试将前两个匹配作为测试:

"/meadinkent/record/comp_div[.='" & comp_div & "'] and /meadinkent/record/sty_ret_type[.='" & sty_ret_type & "']"
Run Code Online (Sandbox Code Playgroud)

哪个失败,说没有返回节点.显然我是非常愚蠢的 - 我做错了什么?

干杯,mAtt

xpath

27
推荐指数
2
解决办法
7万
查看次数

一致的C实现#define NULL可以是古怪的东西

我问,因为在这个帖子中引发了讨论.

尝试在其他人的回复下使用评论进行严肃的来回讨论并不容易或有趣.所以我想听听我们的C专家的想法,一次不限制500个字符.

C标准几乎没有什么可说的NULL和空指针常量.我只能找到两个相关部分.第一:

3.2.2.3指针

具有值0的整型常量表达式,或者类型为void*的表达式,称为空指针常量.如果为指针的相等性分配或比较空指针常量,则将常量转换为该类型的指针.这种称为空指针的指针保证与指向任何对象或函数的指针不相等.

第二个:

4.1.5通用定义

宏是

NULL
Run Code Online (Sandbox Code Playgroud)

它扩展为实现定义的空指针常量;

问题是,可以NULL扩展为实现定义的空指针常量,该常量与3.2.2.3中列举的那些不同吗?

特别是,它可以定义为:

#define NULL __builtin_magic_null_pointer
Run Code Online (Sandbox Code Playgroud)

甚至:

#define NULL ((void*)-1)
Run Code Online (Sandbox Code Playgroud)

我对3.2.2.3的解释是,它指定0的整数常量表达式和0强制转换为类型void*的整型常量表达式必须是实现可识别的空指针常量的形式,但它不是意思是一份详尽的清单.我相信实现可以自由地将其他源构造识别为空指针常量,只要没有其他规则被破坏.

例如,可以证明这一点

#define NULL (-1)
Run Code Online (Sandbox Code Playgroud)

不是法律定义,因为在

if (NULL) 
   do_stuff(); 
Run Code Online (Sandbox Code Playgroud)

do_stuff() 不能被称为,而与

if (-1)
   do_stuff();
Run Code Online (Sandbox Code Playgroud)

do_stuff()必须被召唤; 因为它们是等价的,所以这不是法律定义NULL.

但是标准说整数到指针的转换(反之亦然)是实现定义的,因此它可以定义-1到指针的转换,作为产生空指针的转换.在这种情况下

if ((void*)-1) 
Run Code Online (Sandbox Code Playgroud)

会评价为假,一切都会好的.

那么别人怎么想呢?

我要求每个人特别记住中描述的"假设"规则2.1.2.3 Program execution.它是巨大的,有点迂回,所以我不会在这里粘贴它,但它实质上说,一个实现只需要产生与标准描述的抽象机器所需的相同的可观察副作用.它表示,只要程序的可观察副作用不被它们改变,任何优化,转换或编译器想要对程序执行的任何其他操作都是完全合法的.

因此,如果您希望证明特定的定义NULL不合法,您需要提出一个可以证明它的程序.任何一个像我一样公然打破标准中的其他条款,或者可以合法地检测编译器必须做的任何魔法来使奇怪的NULL定义工作.

Steve Jessop发现了一个程序检测方法的例子,NULL它没有被定义为3.2.2.3中两种形式的空指针常量之一,它是将常量字符串化:

#define stringize_helper(x) #x
#define stringize(x) stringize_helper(x) 
Run Code Online (Sandbox Code Playgroud)

使用这个宏,人们可以

puts(stringize(NULL));
Run Code Online (Sandbox Code Playgroud)

并"检测"NULL不会扩展到3.2.2.3中的一个表单.这足以使其他定义非法吗?我只是不知道.

谢谢!

c null standards

26
推荐指数
2
解决办法
4429
查看次数

PHP字符串拆分

我需要将一个字符串拆分为2,2,3,3个字符的块,并且能够通过使用unpack在Perl中执行此操作:

unpack("A2A2A3A3", 'thisisloremipsum');
Run Code Online (Sandbox Code Playgroud)

但是同样的功能在PHP中不起作用,它给出了这个输出:

Array
(
    [A2A3A3] => th
)
Run Code Online (Sandbox Code Playgroud)

我怎么能通过使用unpack来做到这一点?我不想为它编写一个函数,应该可以解压但是如何?

提前致谢,

php split unpack

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

原子引用计数共享不可变数据是否需要内存屏障?

我有一些不可变的数据结构,我想使用引用计数来管理,在SMP系统上的线程之间共享它们.

这是发布代码的样子:

void avocado_release(struct avocado *p)
{
    if (atomic_dec(p->refcount) == 0) {
        free(p->pit);
        free(p->juicy_innards);
        free(p);
    }
}
Run Code Online (Sandbox Code Playgroud)

是否atomic_dec需要在它的内存屏障?如果是这样,什么样的记忆障碍?

附加说明:应用程序必须在PowerPC和x86上运行,因此欢迎任何特定于处理器的信息.我已经知道GCC原子内置.至于不变性,refcount是唯一在对象持续时间内发生变化的字段.

c multithreading atomic refcounting memory-barriers

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

定制Cocoas NSFontPanel

Cocoas NSFontPanel有哪些自定义选项?

可在iWork Pages中访问的NSFontPanel顶部有"Text Underline","Text Strikethrough"和"Document Color"控件.我们在NSFontPanel中不需要这些.有没有办法删除或禁用这些控件?

macos fonts cocoa panel nsfontpanel

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

即使配置设置为允许,也无法生成SVN存储密码

我做了本书所说的一切,即从.subversion/auth中删除了认证文件,并明确地将相关配置参数设置为'yes',即使这是默认设置,但是shell SVN命令每次都要求输入密码.存储库位于cvsdude.com上,客户端是Linux.我也使用Subclipse插件缓存密码OK.

我依稀记得当我开始使用它时,命令交互式询问我是否要保存清除密码,我说不.这个选择可以存储在某个位置并优先于配置吗?

svn

30
推荐指数
9
解决办法
5万
查看次数

Android:上传视频时OutOfMemoryError - 如何最好的块?

我遇到了与此处描述的问题相同的问题,但我将提供更多详细信息.在尝试在Android上传视频时,我正在将其读入内存,如果视频很大,我会收到OutOfMemoryError.

这是我的代码:

// get bytestream to upload
videoByteArray = getBytesFromFile(cR, fileUriString);

public static byte[] getBytesFromFile(ContentResolver cR, String fileUriString) throws IOException {
    Uri tempuri = Uri.parse(fileUriString);
    InputStream is = cR.openInputStream(tempuri);
    byte[] b3 = readBytes(is);
    is.close();
    return b3;
}
public static byte[] readBytes(InputStream inputStream) throws IOException {
    ByteArrayOutputStream byteBuffer = new ByteArrayOutputStream();
    // this is storage overwritten on each iteration with bytes
    int bufferSize = 1024;
    byte[] buffer = new byte[bufferSize];
    int len = 0;
    while ((len = inputStream.read(buffer)) != …
Run Code Online (Sandbox Code Playgroud)

android

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

如何在LISP中创建列表并从用户接受列表元素?

如何在LISP中创建列表并从用户接受列表元素?

lisp list

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