草庐IT

php - 实现网址正则表达式

我在网上找到了以下内容,但我无法实现它(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?这是我希望php执行的操作:采取以下内容:Lookhere:http://www.rocketlanguages.com/spanish/resources/pronunciation_spanish_accents.php然后把它变成:Lookhere:http://www.rocketlanguages.com/span...anish_accents.php如

php - preg_split 混合 HTML 和 PHP 标记,引号和注释除外

我有一个混合了HTML的php页面。一些示例代码:sometext";?>/**/someHTMLtextsomeHTMLincomments-->";END;?>SomemoreHTML我想在每个PHP和HTML标记处进行拆分,但保留引号或注释中的任何PHP标记或HTML标记不变/忽略。这是我目前所拥有的:$array=preg_split("/((^)|())/i",$string,-1);我遇到的问题是在最后的$array中缺少一些HTML右括号'>'。我想保持HTML打开和关闭标签完好无损。有时我以它应该是这样的:[0]echo"sometext";[1]someHTMLtex

php解析ps aux | grep ...结果

我有一个系统脚本,它运行并将“psaux|greputilities”的结果通过管道传输到一个文本文件,并对文本文件进行chown,以便网络服务可以读取该文件并在我的网络应用程序中显示结果。这是原始结果的示例:user120520.20.113718413056?Ss10:000:00php/home/user/public_html/utilities/runProcFile.phpcust1cronuser120540.20.113718413064?Ss10:000:00php/home/user/public_html/utilities/runProcFile.phpcust

php - Sed 正则表达式通过网络浏览器工作不同

基本问题编码因为这个问题可能看起来与编码有关,所有内容的编码-文本文件、bash脚本文件、终端、提供PHP脚本的网页、PHP脚本本身-都是UTF-8。脚本我确实有很长的bash脚本,它对文本文件执行一系列操作。就此问题而言,只有一个sed命令很重要:#!/bin/bashsed-r's:([”]):\1:g'-i$1它应该做的是在关闭智能引号之前删除空格。方括号和圆括号在那里,因为我使用了更长的正则表达式和更多的字符,并希望捕获它以进行替换。重现问题的示例文本文件:Loremipsum“dolorsitamet,”consecteturadipisicingelit.Numquameo

php - 2 个 PHP 系统上的正则表达式输出不同?

给定这个测试脚本:Ubuntu上的PHP5.5.3,我得到:en_GB.UTF-843697474c3a043697474c3a0Mac上的PHP5.5.9(通过Macports)en_GB.UTF-843697474c3a043697474c3为什么Macports版本会以不同方式处理à字符?我知道c3a0在ASCII中被视为两个字节时,是Ã后跟一个不间断的空格。我想知道为什么一个系统将2个字节视为没有u修饰符的UTF-8。 最佳答案 使用/umodifier:u(PCRE_UTF8)Thismodifierturnsonaddi

php - 如何编写正则表达式从这些 URL 中提取数字?

我正在尝试编写一个正则表达式来匹配这些URL中的数字(12345678和1234567890)。http://www.example.com/p/12345678http://www.example.com/p/12345678?foo=barhttp://www.example.com/p/some-text-123/1234567890?foo=bar规则:数字总是在斜杠之后数字可以有不同的长度正则表达式必须检查URL中是否包含/p/数字可能在URL的末尾,或者后面可能有变量我的尝试:\/p\/([0-9]+)匹配第一个和第二个,但不匹配第三个。所以我尝试了:\/p\/[^\/?]

php - 正则表达式 X/Y 坐标

我有符合这种模式的数据:(x|y)。x和y可以是负数,在这种情况下符号-存在。我正在尝试构建一个正则表达式来匹配x和y。这是我当前的表达方式,它对我来说似乎有效但不起作用:/\((-?\d+)\|(-?\d+)\)/这是原始数据:‭(-112|‭‭-522‬‬)‭(-112|‭‭522‬‬)(112|-‭‭522‬‬)(112|‭‭522‬‬)有什么想法吗? 最佳答案 您的测试数据中有一些不可见的Unicode字符。删除它们,您的正则表达式将workjustfine.例如,您的(-112|-522)示例实际上是\u0028\u002

php - 以这种方式处理方程式是否安全?

我正在使用用户提供的字符串,例如“m*0.2”,其中“m”是$value并评估该字符串。允许用户使用4种基本数学运算符、小数和负数。省略任何使用其他任何东西的尝试。$equation=$metric['formatter'];$equation=preg_replace("/[^0-9*m.\/\+\-]/","",$equation);//stripsextraparamsif(strlen($equation)>1){$equation=str_replace("m",'$value',$equation);$code='$newValue='.$equation.';';if(v

php - 如何正确转义字符串以用于 PHP 中的正则表达式?

我正在尝试转义一个字符串,以便在PHP的正则表达式中使用。到目前为止我试过:preg_quote(addslashes($string));我认为我需要addslashes才能正确说明字符串中的所有引号。然后preg_quote转义正则表达式字符。但是,问题是引号是用反斜杠转义的,例如\'。但是随后preg_quote用另一个反斜杠转义反斜杠,例如\\'。因此,这再次使报价未转义。切换这两个函数也不起作用,因为这会留下未转义的反斜杠,然后将其解释为特殊的正则表达式字符。PHP中是否有函数来完成该任务?或者怎么做? 最佳答案 正确的方

php - htaccess 命令只允许来自同一服务器的请求(不指定 IP)

我想要实现的是使用htaccess仅允许来自同一服务器的请求,但通过使用可用变量而不指定IP来实现。目标是能够对相应文件夹中的文件运行cron作业和ajax请求,但如果尝试直接访问则返回404页面。这是我目前所拥有的:Options-MultiViews+FollowSymLinksRewriteEngineOnRewriteCond%{REMOTE_ADDR}!%{SERVER_ADDR}[NC]RewriteRule^(.*)$/error404.html[L,R=404]这适用于ajax。如果服务器碰巧使用相同的传出IP,它也适用于cronjobs,但如果服务器的传出IP与站点的