草庐IT

PHP preg_match_all 正则表达式从 css 获取像素值( "px")

我正在寻找与PHP的preg_match_all()函数一起使用的正则表达式,它将为我提供CSS文件中的所有px值。例如,如果使用下面的css,那么预期结果将是一个数组:array("11px","0.45px","11.0005px","1.1px","888.888px")$pattern字符串是我目前所拥有的——但是它似乎没有用。我尝试使用的逻辑是:小数点前最多4位,小数点符号可选,小数点后可选,最多4位,后面跟“px”。$pattern="/([0-9]{1,4}\.*[0-9]{1,4}*px)/";$css='.some_class{font-size:11px;margi

php - 如何使用 preg_match_all 从字符串中检索三个参数?

我试图从文本中获取所有出现的代码片段和3个参数。我使用正则表达式和preg_match_allPHP函数来执行此操作。如果我在文本中只出现一次该片段,则效果很好。如果有两个或更多,我会得到一个奇怪的结果。我不是很擅长正则表达式,所以我很难理解我错过了什么。函数publicfunctiongetGallerySnippetOccurrences($text){$ptn='/{#+gallery+(src|width|height)=\[(.*)\]+(src|width|height)=\[(.*)\]+(src|width|height)=\[(.*)\]+#}/';if(preg_m

PHP preg_match_all 在长字符串上失败

这是我的代码:$long=str_repeat('averylongstringtext',100);//trychanging100to5000$str=ashortstringtext$longSTR;preg_match_all('@([^]+)@sU',$str,$matched);print_r($matched);它完全按预期工作。但是,在你将100次重复更改为5000次之后,运行print_r($matched);而且您只会得到短字符串出现的结果。我的问题是如何使preg_match或preg_match_all处理大字符串文本(大至1MB或更大)?

php - preg_match_all - 在字符串中查找完整 url 的正则表达式

我花了4个多小时试图找到我的php代码的正则表达式模式,但运气不佳。我有一个带有html代码的字符串。它有很多url格式,例如:example.comhttp://example.comhttp://www.example.comhttp://example.com/some.phphttp://example.com/some.php?var1=1http://example.com/some.php?var1=1&var2=2etc.我有以下部分工作的php代码:preg_match_all('/\b(?:(?:https?|ftp|file):\/\/|www\.|ftp\.)[

php - 获取重音 preg_match_all 语法 PHP

我有这个preg_match_all来获取主题标签:preg_match_all('/(^|[^a-z0-9_])#([a-z0-9_]+)/ui',$text,$matchedHashtags);它工作得很好,但如果发现一些强调就会停止:#hash//works#hash_hash//works#hash_não//getjust$hash_n我需要改变什么? 最佳答案 您可以使用Unicodecategory信件。\p{L}匹配来自所有Unicodescripts的字母(≅语言)。正则表达式:/(?regex101Demo另一种

php - Laravel 验证 : required_with_all condition always passing

根据laravelvalidationdocumentation:required_with_all:foo,bar,...Thefieldundervalidationmustbepresentonlyifalloftheotherspecifiedfieldsarepresent.这是我的测试:Route::get('/test/{param}',function($param){$screenRules=array('foo'=>'string','param'=>'required_with_all:foo',);$validator=Validator::make(array

php - 调用字符串上的成员函数 all()(查看 :

我正在尝试使用Laravelrequestvalidationmethod创建一个登录页面和凭据验证->如果用户未通过身份验证,它将返回错误“密码错误....”我在两种不同的情况下看到错误:-1-当没有填写任何东西点击登录按钮时:-htmlspecialchars()expectsparameter1tobestring,objectgiven(View:C:\xampp\htdocs\nfbweb\resources\views\login.blade.php)2-填写随机/错误的用户名和密码时:ErrorExceptioninf65ed669c524327dfe53b3286e02

php - 即使在 Allow From All 和 Chmod 777 之后,解决 Apache 上的 403 权限被拒绝错误?

我的DocumentRoot在~/Dropbox/Websites中。它在vhosts和httpd.conf中设置为AllowFromAll和AllowOverrideAll,我什至递归地在整个DocumentRoot上设置了777权限(它只是一个本地开发环境,我永远不会这样做,不要'担心)。这在Ubuntu和Windows上就像一个魅力,但在OSX上它一直告诉我权限被拒绝。我还能尝试什么?有没有办法查看为什么权限被拒绝?如果我至少得到像“_www不允许访问此文件夹”或“.htaccess不允许进入此文件夹”这样的提示,那就太好了,但这条通用消息的帮助为零。我还尝试将目录的所有者更改为

php - 如何在 Laravel 中的 Input::all() 之后附加额外的值

http://localhost/posts/post_id页面中有一个评论表单当我提交表单时,我想将post_id值附加到Input::all()因为表单不包含post_id。而post_id在评论表中的列名为post_id,创建评论的路径是comments.store任何的想法?谢谢! 最佳答案 我认为这应该可行:Input::merge(array('post_id'=>$post_id)); 关于php-如何在Laravel中的Input::all()之后附加额外的值,我们在St

php - <li> 元素的 preg_match_all

我正在尝试返回列表的计数。该列表如下所示:1234我只是不知道如何计算li标签的数量。我不在乎内容,只在乎数量。这是我的:preg_match_all('!.*?.*?.*?!',$content,$matches);丑陋的我知道,当我count($matches[0]);时我只收到一个匹配项谁能指出我做错了什么和/或为什么?谢谢编辑:我知道用正则表达式解析HTML是bad,但我现在在这件事上别无选择。 最佳答案 .*?.*?.*?^^^我要指出的部分是消耗所有字符直到(甚至是部分)。消耗它们后,没有更多的匹配,它到此结束,只给出一