上次我在PHP中寻求帮助时得到了很好的回复。感谢你们所有人。现在我正在使用MVC PHP学习和创建网站。我想问你,我可以创建一个自定义函数来使用html标签吗?我试图记住我在哪里看到它的一个例子。实际上我之前在开源项目中看过它。
就像这样:
htmltag(script(src=address, type=javascript))
它的输出是html,如:
<script src="address" type="javascript"></script>
我可以创建这样的东西吗?我想这样做:
public function script($var1, $var2){
$var1 = array(
'type'=>'',
'charset' => '',
'src' => ''
);
$var2 = false;
print("<script $var1>$var2</script>");
}
所以有人可以指导我吗?我需要先创建课程吗?我会等你的回复朋友。
答案 0 :(得分:1)
Javascript 适用于DOM,see the reference
function htmltag(name,atts) {
var tag = document.createElement(name);
for(var i in atts) tag.setAttribute(i, atts[i]);
return tag;
}
var img = htmltag("img", {
src: "https://kevcom.com/images/linux/linux.logo.2gp.jpg",
alt: "linux logo"
});
document.body.appendChild(img);
请注意,img
这里是对象(XML节点),而不仅仅是纯文本,因此您可以在其上附加事件等。如果您只想从中提取纯HTML代码,请使用{{1} }。在the fiddle上进行测试。
注意:img.outerHTML
相当于浏览器中的Ctrl + P :-)它不是PHP中的打印等效项。
在 PHP 中,您可以使用来自DOM的DOM::createElement和其他方法,这些方法与来自javascript的方法非常相似。 Personaly我更喜欢更简单的东西:
print
实施例
function tag($name,$atts="",$content="") {
$str_atts = "";
if(is_array($atts)) {
foreach($atts as $key=>$val) if(!($val===null || $val===false)) $str_atts.= " $key=\"$val\"";
} else $str_atts = " ".preg_replace("/=(?!\")(\S+)/m","=\"\\1\"",$atts);
if($name=="img" && !strpos($str_atts,"alt=")) $str_atts.= " alt=\"\"";
if(in_array($name,array("input","img","col","br","hr","meta"))) $name.= "/";
if(substr($name,-1)=="/") { $name = substr($name,0,-1); return "<{$name}{$str_atts}/>"; }
else return "<{$name}{$str_atts}>$content</$name>";
}