草庐IT

php - mysql-php 使用静态连接还是非静态连接?

我是这个主题的新手。我只是想连接我的数据库并获取数据。当使用静态连接时,它可以工作,但使用非静态连接则不行。正如我所说,我对Php了解不多,可能会遗漏一些简单的东西。尝试获取非静态时出错由于发生内部服务器错误,页面无法显示。我的代码>$connection)){$config=parse_ini_file('./configOop.ini');$this->$connection=newmysqli($config['dbhost'],$config['username'],$config['password'],$config['dbname']);}else{}return$thi

php - 是否可以向 Laravel 模型添加非持久属性?

我正在使用Laravel(Lumen)创建一个API,其中的对象包含一个字段,该字段是一个文件的路径。这些路径在数据库中存储为相对路径,但在将它们返回给用户时,我必须将它们转换为绝对url。现在我想知道是否有一种方便的方法可以将非持久字段添加到模型对象中。明明有Mutators但它们会持久保存到数据库中。我也想过创建一个后中间件,它遍历对象树并转换它找到的每个path字段,但这不是一种优雅的方式。这是我需要的最终转换:[{"id":1,"title":"Sometitle","media":[{"id":435,"path":"relative/path/to/some/file.ex

php - 试图获取非对象错误的属性 - Laravel

这个问题在这里已经有了答案:LaravelForeignKey'Tryingtogetpropertyofnon-object'(1个回答)关闭3年前。我正在用laravel开发一个博客,我在处理两个表之间的外键时遇到了问题:posts和categories.我创建了两个模型:Post(对于posts表)和Category(对于类别表)。在我看来,我写了这段代码:PostedIn:{{$post->category->id}},但显示此错误:ErrorException:Tryingtogetpropertyofnon-objectforeignkeyerror发布模型:classPo

php - 用于检测连续数字的正则表达式 - 不适用于非英语输入

大家好,我有这段代码可以检查5个或更多连续数字:if(preg_match("/\d{5}/",$input,$matches)>0)returntrue;它适用于英语输入,但当输入字符串包含阿拉伯语/多字节字符时它会出错-即使输入文本中没有数字,它有时也会返回true。有什么想法吗? 最佳答案 您似乎在使用PHP。这样做:if(preg_match("/\d{5}/u",$input,$matches)>0)returntrue;注意表达式末尾的“u”修饰符。它告诉preg_*使用unicode模式进行匹配。

php - 如何防止服务器端从非预期来源接收数据

我有一个名为addItem的PHP服务。当有人在客户端提交表单时调用此服务。我如何确保只有在从预期表单调用时才会添加项目?例如,试图阻止某人通过自动curl调用提交内容。谢谢你,三通 最佳答案 简短的回答是你不能。只要表单可访问,您用于保护表单的任何方法都可以自动处理。您永远不应指望用户发送的数据是安全的。但是,您可以采取一些措施来让任何想要欺骗您的表单的人都变得更具挑战性。添加CAPTCHA这可能会过滤掉几乎所有脚本提交,但也会对普通用户产生最大的负面影响。采用某种形式的CSRF保护(无论如何你都应该拥有)。这意味着任何想要通过表

php - 用于调用非静态函数的 php 中的 "::"在类外工作

据我所知,::用于在子类中调用静态函数和基类函数。据我所知,通常我们必须创建一个类的实例才能在类外使用它。classa{publicfunctionfoo(){//}}使用这个类:$instance=newa();$instance->foo();但我们可以调用foo函数而不创建任何实例并且仅使用::。例如,下面的代码是在课外编写的并且运行良好:a::foo();为什么有效?如何? 最佳答案 使用Class::method()语法调用非静态方法会调用该方法,但如果它试图访问$this则会引发错误。它本质上是PHP4的(非常小的)面向

php - 关联 PHP 数组(包含对象)的非破坏性 JSON 编码/解码

我能够以解码值与原始输入匹配的方式对索引数组进行JSON编码和解码:$array_indexed=['A'];$encoded=json_encode($array_indexed);$decoded=json_decode($encoded);var_dump($array_indexed);array(1){[0]=>string(1)"A"}var_dump($decoded);array(1){[0]=>string(1)"A"}然而,当我对关联数组进行编码时,我最终得到一个对象:$array_associate=['FOO'=>'BAR'];$encoded=json_enc

php - 用于替换未包含在标签之间的单词的正则表达式(非 html)

有限的正则表达式经验,我在PHP中使用preg_replace。我想替换不在[no-glossary]...[/no-glossary]标签之间的指定“单词”。如果它们不是“单词”和标签之间的空格,或者如果它们是“单词”之后的空格,我的表达式就有效,但是如果我在单词之前放置一个空格(预期),它就会失败!这些工作:$html='Donotreplace[no-glossary]this[/no-glossary]replacethis.';$html='Donotreplace[no-glossary]this[/no-glossary]replacethis.';这不是:$html='

php - 在非对象上调用成员函数 removeElement()

我正在创建一个表单,以便能够向一组链接到特定类(class)的学生发送电子邮件。默认情况下,必须选择给定类(class)的所有学生,但消息的发件人必须能够取消选择学生以将他们排除在接收消息之外。发给全群没问题。从选择中删除学生时会出现问题。我将SonataAdmin的sonata_type_model与自定义查询一起使用。在生成的表单上,如果我不更改选择选项并提交表单,一切正常。当我从列表中删除一个项目时,我在提交表单后收到错误消息:错误:在/xxx/xxx/xxx/vendor/sonata-project/doctrine-orm-admin-bundle/Model/ModelM

php - 替换所有非字母数字字符的组合

我需要从各种字符串创建url。因此,尝试用连字符(-)替换所有非字母数字字符及其所有组合$string="blue-sky";$string=preg_replace("/[^A-Za-z0-9]/",'-',$string);echo$string;结果-blue---sky预期-blue-sky。 最佳答案 使用+符号用一个替换字符替换多个字符:string=preg_replace("/[^A-Za-z0-9]+/",'-',$string); 关于php-替换所有非字母数字字符的