- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
编辑:字符串正在被浏览器输出和解释。愚蠢的错误。
在我的项目中,我创建了一个类来生成我需要的 HTML 标记,而不是自己全部输出。我有一个名为 generateTag($control, $isCardValue = true)
的函数在名为 Card
的 php 类中.此函数根据通过数组参数 $control
传递的属性生成 HTML 标记.该函数如下所示:
public function generateTag($control, $isCardValue = true) {
if ($isCardValue) {
// First we convert the 'class' element to an array
if (isset($control['class']) && gettype($control['class']) !== 'array') {
$control['class'] = array($control['class']);
}
// Then we add the 'card-value' class to that array.
$control['class'][] = 'card-value';
}
// The tag key is mandatory
$tag = '<' . $control['tag'];
// All keys other than 'tag' & 'content' are considered attributes for the HTML tag.
foreach ($control as $key => $value) {
switch ($key) {
case 'tag':
break;
case 'content':
break;
default:
if (gettype($value) === 'array') {
$tag .= ' ' . $key . '="' . implode(' ', $value) . '"';
} elseif (gettype($value) === 'NULL') {
$tag .= ' ' . $key;
} else {
$tag .= ' ' . $key . '="' . $value . '"';
}
break;
}
}
$tag .= '>';
// If the 'content' key is not passed through $control, we assume that the tag
// doesn't need to be closed (e.g. <input> doesn't need a closing tag)
if (isset($control['content'])) {
if (gettype($control['content']) === 'array') {
foreach ($control['content'] as $child) {
$tag .= $this->generateTag($child);
}
} else {
$tag .= $control['content'];
}
$tag .= '</' . $control['tag'] . '>';
}
return $tag;
}
我使用这个函数创建所有 <option>
<select>
的标签盒子。我只是循环遍历一个数组来生成标签:
foreach ($lists['tags'] as $key => $tag) {
$tag_options[$key] = array(
'tag' => 'option',
'value' => $tag['tag_id'],
'content' => $tag['tag_name_en'],
);
var_dump($card->generateTag($tag_options[$key], false));
}
这就是事情变得奇怪的地方。我对生成的字符串调用 var_dump,得到以下输出:
string(32) "" string(35) "" string(33) "" string(33) "" string(38) "" string(32) "" string(42) "" string(30) "" string(41) "" string(34) "" string(35) "" string(34) "" string(29) "" string(36) "" string(37) "" string(31) "" string(36) "" string(67) "" string(36) "" string(33) "" string(36) "" string(36) ""
它似乎正在创建一个长度为 ~35 的空字符串?最奇怪的是,当我调用 substr($tag_options[$key], 0, 1)
, 它给了我 <
正如它应该。但是当我调用 substr($tag_options[$key], 0, 2)
,它给了我长度为 2 的“空”字符串。对正在发生的事情有什么看法吗?
最佳答案
由于您是在浏览器中查看输出,它仍然会将每个字符串中的 HTML 解析为 HTML,您不会在呈现的页面上看到它。 var_dump
不进行 HTML 编码。
正如您所发现的,它适用于您页面的源代码。 :)
关于长度为 32 的 PHP 空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17617515/
我正在尝试用 Java 构建一个字符串,该字符串的长度最多为 3,最少为 1。 我正在根据整数数组的内容构建字符串,如果数组的内容为 -1,我想在字符串中输出一个空字符。否则字符串将包含整数的字符版本
我有一个类,其中有一个方法可以在字符串中包含 NUL 字符的情况下终止程序。具体表达是这样的: stringVar.indexOf('\u0000') < 0 这个字符串是通过 Scanner 从用户
我有一个 wchar_t 数组。我需要在数组中的特定位置添加一个 unicode 空字符。 wchar_t var1[100]; var1[79] = '\u0000'; 我尝试了上面的方法,但出现以
好吧,这听起来可能是重复的,但我已经尝试了所有可能性,例如 str.strip()、str.rstrip()、str.splitline (),还 if-else 检查像: if str is not
System.out.println("-----------------------------------------------------------"); System.out.pr
我有一个奇怪的问题。我从公司内部的许多不同应用程序接收数据,并将这些数据显示在网站上。根据发送数据的系统,数据本身可能在字符串中包含一些奇怪的字符。我的问题是我有一个用户可以搜索以允许其中包含此数据的
我遇到了 aSSL ,这似乎有几年历史了,想知道是否有人有其他“安全”AJAX 连接代码示例?显然,这不如使用 SSL 证书安全,但使用 null character SSL在那里进行攻击(最近针对
我有一个类似于以下内容的 pyspark 数据框: df = sql_context.createDataFrame([ Row(a=3, b=[4,5,6],c=[10,11,12], d='b
我有以下要执行的查询: MyModel.objects.annotate(current_name=Coalesce('nickname', 'name')).order_by('current_na
每当 rails 变量等于 nil(或者实际上每当我使用 rails 代码(参见第 3 个代码示例))时,我的 html 中就会得到一串空字符。 new.html.haml %h1.editable.
我是一名优秀的程序员,十分优秀!