我正在寻找最可靠的方法来返回给出全名的人的名字和姓氏,到目前为止,我能想到的最好的是以下正则表达式:
$name = preg_replace('~\b(\p{L}+)\b.+\b(\p{L}+)\b~i', '$1 $2', $name);
Run Code Online (Sandbox Code Playgroud)
预期的输出应该是这样的:
William -> William // Regex Fails
William Henry -> William Henry
William Henry Gates -> William Gates
Run Code Online (Sandbox Code Playgroud)
我也希望它支持口音,例如"João".
编辑:我理解一些名称将无法正确识别,但这对我来说不是问题,因为这将用于本地站点,其中最后一个字是姓氏(虽然可能不是整个姓氏) )但这不是一个问题,因为我想要的只是一个快速的方式来说"亲爱的FIRST_NAME LAST_NAME"......所以所有这些讨论虽然完全有效,但对我来说毫无用处.
有人可以帮我弄这个吗?
我正在构建一个小的MVC系统(学习),我在视图文件中显示变量时遇到了一些问题.
这来自我的View类:
private $vars = array();
public function __set($key, $value)
{
$this->vars[$key] = $value;
}
public function __get($key)
{
return $this->vars[$key];
}
public function __toString()
{
return $this->vars[$key];
}
public function show($file)
{
global $router;
$folder = strtolower($router->current_controller);
$path = VIEWPATH.$folder.'/'.$file.'.phtml';
if ( ! file_exists($path))
{
die("Template: $file, not found");
}
include ($path);
}
Run Code Online (Sandbox Code Playgroud)
这是来自我的控制器:
$test = new View();
$test->name = 'karl';
$test->show('name_view');
Run Code Online (Sandbox Code Playgroud)
和视图文件(name_view)
echo $name // doesn't work
echo $this->name // Works
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?也许我想要做一些全球化的事情?
THX/Tobias
编辑:我刚刚在包含视图文件之前在视图类中提取了vars数组,然后它工作了..谢谢大家的帮助.
我有一个.php文件,里面有几个查询.我想将输出文件作为.html文件...
有没有办法做到这一点.我目前通过使用我的浏览器将执行的PHP文件保存为.html文件来实现此目的.但是,当我推出我的产品时,不应该是客户的情况.
请提前建议,谢谢...
如果我在输入字段中键入文本并按下ENTER我知道的所有浏览器的默认行为是提交表单,但是如果我ENTER在textarea中按下一个新行.
每当我按下TABtextarea 时,有没有办法模仿这种行为(缩进,不提交表格)? Bespin似乎做到了,但是在一个canvas元素中.
我觉得失去了与使用RegexBuddy给出的正则表达式的Unicode属性,我不能对任何数量的属性和数学符号属性的区别似乎只匹配+,但不-,*,/,^例如.
RegexBuddy Unicode Properties http://i47.tinypic.com/mbqw6w.png
是否有关于正则表达式Unicode属性的示例的文档/参考?
我有一个CodeIgniter项目,它有一个非常简单的测试应用程序.
Controller打开一个视图(PHP页面),其中包含一个文本框和一个提交按钮.当我按下提交按钮,而不是重定向到控制器中的相应函数调用,我被重定向到localhost/xampp.
这是我视图上的代码,它应该重定向到名为"welcome"的控制器中的save_genre函数.
<?php echo form_open('welcome/save_genre');?>
<label for="radio_genre">Radio Genre</label>
<input type="text" name="radio_genre" id="radio_genre"></input>
<?php echo form_submit('submit','Save'); ?>
</form>
Run Code Online (Sandbox Code Playgroud)
什么想法可能是错的?我认为这不是代码,而是设置或文件错误的地方,但我不知道从哪里开始寻找.
编辑:
<body>
<h1>Welcome!</h1>
<form action="http://localhost/index.php/welcome/save_genre" method="post">
<label for="radio_genre">Radio Genre</label>
<input type="text" name="radio_genre" id="radio_genre"></input>
<input type="submit" name="submit" value="Save" />
</form>
</body>
Run Code Online (Sandbox Code Playgroud)
编辑:好的 - 我自己重新创建了项目,然后带来了我的PHP文件,它工作正常.所以创建项目的人做了一些奇怪的事情.
现在因为我刚接触使用PHP中的对象,我觉得在我的脑海中,我认为PHP对象是一个庞大而笨重的东西.这让我想减少使用它们,我感觉就像我正在使用非常简单的代码并且通过将它放入对象中而使它过于复杂.
如果我有一个数据库,缓存,会话,核心和用户对象,我需要在彼此内部和其他未提及的类中访问它们,我决定将所有这些存储在一个注册表对象中.因此,由于我对对象如何工作的知识有限,在我看来,将注册表对象传递给一个简单的对象几乎是非常重要的.就像注册表一样,它里面有5个对象.这是错的吗?注册实际上只是传递了这些对象在内存中的位置吗?或者我真的将一个非常大的物体传递到我的所有物体中?
对不起,如果这根本没有意义,希望它确实如此.我只是想更好地了解它们如何在性能方面发挥作用.
有谁知道以下函数中使用的校验和算法的正式/官方名称?
function Checksum($number, $encode = true)
{
if ($encode === true)
{
$result = 0;
$number = str_split($number, 1);
foreach ($number as $value)
{
$result = ($result + ord($value) - 48) * 10 % 97;
}
return implode('', $number) . sprintf('%02u', (98 - $result * 10 % 97) % 97);
}
else if ($number === Checksum(substr($number, 0, -2), true))
{
return substr($number, 0, -2);
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
function ifMB($entity, $reference, $amount = 0.00)
{
$stack = 923;
$weights = …Run Code Online (Sandbox Code Playgroud) 我仍然非常擅长CSS,拥有以下CSS/HTML:
<input type="reset" value="Clear" style="float: right;" />
<input type="submit" value="Send" style="float: right;" />
Run Code Online (Sandbox Code Playgroud)
产生以下结果:
alt text http://i49.tinypic.com/10wtjdi.png
而不是所需的输出:
alt text http://i47.tinypic.com/acblzm.png
更改HTML元素的顺序似乎可以解决问题,但也是违反直觉的.
这类问题的一般解决方案是什么?
我想在Go中有一个数组/切片,其中包含可变数量的元素(在编译时不知道),并且能够以不同方式添加不同类型的新元素,例如:
data[0] := "string"
data[1] // slice
data[1][0] := "another string"
data[1][1] := 42 // int
Run Code Online (Sandbox Code Playgroud)
这有可能吗?