Questions tagged «php»

PHP是一种广泛使用的高级动态,面向对象和解释性脚本语言,主要用于服务器端Web开发。用于有关PHP语言的问题。

10
关键字“ use”在PHP中如何工作,我可以用它导入类吗?
我有一个带班级的文件Resp。路径是: C:\xampp\htdocs\One\Classes\Resp.php 我index.php在此目录中有一个文件: C:\xampp\htdocs\Two\Http\index.php 在这个index.php文件中,我想实例化一个类Resp。 $a = new Resp(); 我知道我可以使用require或include关键字将文件包含在类中: require("One\Classes\Resp.php"); // I've set the include_path correctly already ";C:\xampp\htdocs". It works. $a = new Resp(); 但是我想不使用require或导入类include。我试图了解use关键字的工作原理。我尝试了这些步骤,但没有任何效果: use One\Classes\Resp; use xampp\htdocs\One\Classes\Resp; use htdocs\One\Classes\Resp; use One\Classes; use htdocs\One\Classes; /* nothing works */ $a = new Resp(); 它说: Fatal error: Class 'One\Classes\Resp' not …
136 php  import  include 

23
清理字符串以使它们的URL和文件名安全?
我正在尝试提出一个功能,该功能可以很好地清理某些字符串,以使它们可以安全地在URL中使用(如post slug),也可以安全地用作文件名。例如,当有人上传文件时,我要确保我从名称中删除所有危险字符。 到目前为止,我已经提出了以下功能,希望该功能可以解决此问题,并允许外来UTF-8数据。 /** * Convert a string to the file/URL safe "slug" form * * @param string $string the string to clean * @param bool $is_filename TRUE will allow additional filename characters * @return string */ function sanitize($string = '', $is_filename = FALSE) { // Replace all weird characters …


13
突出显示PHP中两个字符串之间的区别
突出显示PHP中两个字符串之间的区别的最简单方法是什么? 我正在考虑“堆栈溢出”编辑历史记录页面的内容,其中新文本为绿色,已删除文本为红色。如果有任何预写的函数或类可用,那将是理想的。
136 php  string  diff  word-diff 

4
MVC(Laravel)在哪里添加逻辑
假设每当我执行CRUD操作或以特定方式修改关系时,我也想做其他事情。例如,每当有人发布帖子时,我也希望将某些内容保存到表中进行分析。也许不是最好的例子,但总的来说,这种“分组”功能很多。 通常我会看到这种逻辑被放入控制器。在您要在很多地方重现此功能之前,这一切都很好。当您开始使用局部函数,创建API并生成虚拟内容时,将其保持干燥就成为一个问题。 我所看到的管理事件的方法是事件,存储库,库以及添加到模型中。这是我对每种方法的理解: 服务:大多数人可能会在这里放置此代码。我对服务的主要问题是,有时很难在其中找到特定的功能,而当人们专注于使用Eloquent时,我感到它们被忘记了。我怎么会知道我publishPost()何时需要在库中调用方法$post->is_published = 1? 我认为此方法运行良好的唯一条件是仅使用服务(理想情况下,使控制器能够以某种方式使Eloquent无法访问)。 最终,如果您的请求通常遵循您的模型结构,这似乎只会创建大量多余的文件。 存储库:据我了解,这基本上就像是服务,但是有一个接口,您可以在ORM之间进行切换,而这是我不需要的。 事件:从某种意义上讲,我认为这是最优雅的系统,因为您知道总是在Eloquent方法上调用模型事件,因此您可以像平时那样编写控制器。我可以看到它们变得凌乱,并且如果有人有使用事件进行关键耦合的大型项目的示例,我想看看。 模型:传统上,我会有执行CRUD并处理关键耦合的类。实际上,这使事情变得容易,因为您知道CRUD的所有功能以及其中要做的一切。 很简单,但是在MVC架构中,这通常不是我所看到的。从某种意义上说,尽管与服务相比,我更喜欢此方法,因为它更容易找到,并且可以跟踪的文件更少。它可能会变得有些混乱。我想听听这种方法的缺点,以及为什么大多数人似乎不这样做。 每种方法的优点/缺点是什么?我想念什么吗?

15
如何在Laravel 5+中获取客户端IP地址
我正在尝试在Laravel中获取客户端的IP地址。 通过使用,很容易在PHP中获得客户端的IP $_SERVER["REMOTE_ADDR"]。在核心PHP中它可以正常工作,但是当我在Laravel中使用相同的东西时,它将返回服务器IP而不是访问者的IP。

17
如何从字符串中删除扩展名(仅实际扩展名!)
我正在寻找一个小的功能,该功能允许我从文件名中删除扩展名。 我通过谷歌搜索发现了许多示例,但是它们很糟糕,因为它们只是用“。”删除了字符串的一部分。。他们使用点作为限制器,只是剪切字符串。 看这些脚本, $from = preg_replace('/\.[^.]+$/','',$from); 要么 $from=substr($from, 0, (strlen ($from)) - (strlen (strrchr($filename,'.')))); 当我们添加这样的字符串时: 这是字符串的例子 它将仅返回“ This” ... 该扩展名可以包含3个或4个字符,因此我们必须检查点是否位于4或5位,然后将其删除。 如何做呢?
135 php 

6
将JSON从PHP返回到JavaScript?
我有一个通过jQuery AJAX调用的PHP脚本。我希望PHP脚本将JSON格式的数据返回给javascript。这是PHP脚本中的伪代码: $json = "{"; foreach($result as $addr) { foreach($addr as $line) { $json .= $line . "\n"; } $json .= "\n\n"; } $json .= "}"; 基本上,我需要将两个for循环的结果插入$ json中。
135 php  javascript  json 

10
用PHP解析RSS / Atom提要的最佳方法
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为话题成为Stack Overflow。 5年前关闭。 改善这个问题 我目前正在使用Magpie RSS,但当RSS或Atom提要格式不正确时,有时会掉下来。还有其他使用PHP解析RSS和Atom提要的选项吗?
135 php  parsing  rss  atom-feed 

20
跟踪数据库架构更改的机制
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 跟踪和/或自动执行数据库架构更改的最佳方法是什么?我们的团队使用Subversion进行版本控制,并且我们已经能够以这种方式自动执行某些任务(将构建推送到登台服务器,将经过测试的代码部署到生产服务器),但是我们仍在手动进行数据库更新。我想找到或创建一个解决方案,使我们能够在具有不同环境的服务器之间高效地工作,同时继续使用Subversion作为后端,通过该后端代码和数据库更新被推送到各种服务器。 许多流行的软件包都包括自动更新脚本,该脚本可检测数据库版本并应用必要的更改。这是在更大范围内(跨多个项目,有时跨多种环境和语言)执行此操作的最佳方法吗?如果是这样,是否有任何现有代码可以简化流程,或者最好只是推出我们自己的解决方案?之前有没有人实现过类似的东西并将其集成到Subversion提交后钩子中,还是一个坏主意? 尽管支持多个平台的解决方案是更可取的,但是我们绝对需要支持Linux / Apache / MySQL / PHP堆栈,因为我们的大部分工作都在该平台上。
135 php  mysql  database  svn  migration 




10
PHP中的大写布尔与小写
在学习PHP时,我读到某个地方应该始终使用booleans TRUE和的FALSE大写版本,因为使用“普通”小写版本true和false并不是“安全”的。 现在已经很多年了,我编写的每个PHP脚本都使用大写版本。但是,现在,我对此表示质疑,因为我已经看到很多用小写版本(即Zend Framework)编写的PHP。 是/曾经有理由使用大写版本,还是完全可以使用小写? 编辑:忘记提及这也适用于NULL和null。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.