标签: preg-replace

如何从字符串中删除PHP代码?

我有一个包含php代码的字符串,我需要从字符串中删除php代码,例如:

<?php $db1 = new ps_DB() ?><p>Dummy</p>
Run Code Online (Sandbox Code Playgroud)

应该回来 <p>Dummy</p>

例如,没有php的字符串<p>Dummy</p>应该返回相同的字符串.

我知道这可以用正则表达式来完成,但是4小时后我还没有找到解决方案.

php preg-replace

7
推荐指数
1
解决办法
6233
查看次数

PHP:从array_values()中的值中剥离标记

我想在使用制表符进行内爆之前从array_values()内部的值中删除标记.

我试过下面的这一行,但是我有一个错误,

$output = implode("\t",strip_tags(array_keys($item)));
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想剥离换行符,双倍空格,值的标签,

$output = implode("\t",preg_replace(array("/\t/", "/\s{2,}/", "/\n/"), array("", " ", " "), strip_tags(array_keys($item))));
Run Code Online (Sandbox Code Playgroud)

但我认为我的方法不正确!

这是整个功能,

function process_data($items){

    # set the variable
    $output = null;

    # check if the data is an items and is not empty
    if (is_array($items)  && !empty($items))
    {
        # start the row at 0
        $row = 0;

        # loop the items
        foreach($items as $item)
        {
            if (is_array($item) && !empty($item))
            {
                if ($row == 0)
                {
                    # write the column headers
                    $output = implode("\t",array_keys($item)); …
Run Code Online (Sandbox Code Playgroud)

php arrays preg-replace implode strip-tags

7
推荐指数
1
解决办法
8678
查看次数

regex/preg_replace 替换子域

我需要使用 preg_replace 用单个元素替换两个子域元素。我的正则表达式技能几乎不存在。网址的形式如下:

user1.common.domain.org
user2.common.domain.org
something.common.domain.org
else.common.domain.org
Run Code Online (Sandbox Code Playgroud)

并且需要替换为:

newvalue.domain.org
Run Code Online (Sandbox Code Playgroud)

php regex preg-replace

7
推荐指数
1
解决办法
3248
查看次数

街道名称与街道号码分开

我试图将街道名称与具有以下模式的街道号码分开:

  1. "街12号"---名称:街道,号码:12
  2. "street12"---名称:街道,数量:12
  3. "街道12a"---名称:街道,编号:12a
  4. "street12a"---名称:街道,编号:12a

获取街道名称的正则表达式是什么,以及在php和python中获取街道号的正则表达式?

注意:这个数字总是在街道名称之后,所以我想这应该缩短它.

谢谢.

php python regex preg-replace

7
推荐指数
3
解决办法
1万
查看次数

preg_replace()正则表达式匹配CSS文件中的相对url()路径

我正在组合一些CSS文件并将它们写入单独目录中的文件.我正在尝试替换相对url()值以使用新文件位置,忽略任何绝对URL.这是一些示例CSS:

#TEST {
    background:url(test.jpg);
    background:url( 'test.jpg' );
    background:url("test.jpg"  );
    background:url(http://example.com/test.jpg);
    background:url('https://example.com/test.jpg');
    background:url("http://example.com/test.jpg");
    background:url( '//example.com/test.jpg' );
    background:url( "//example.com/test.jpg" );
    background:url(//example.com/test.jpg);
}
Run Code Online (Sandbox Code Playgroud)

任何不能开始的东西http://,https://或者//应该$path在它之前注入的东西(只有前3个匹配).

期望的输出:

#TEST {
    background:url(/themes/default/css/test.jpg);
    background:url( '/themes/default/css/test.jpg' );
    background:url("/themes/default/css/test.jpg"  );
    background:url(http://example.com/test.jpg);
    background:url('https://example.com/test.jpg');
    background:url("http://example.com/test.jpg");
    background:url( '//example.com/test.jpg' );
    background:url( "//example.com/test.jpg" );
    background:url(//example.com/test.jpg);
}
Run Code Online (Sandbox Code Playgroud)

但是,此代码与之相反:

$path = '/themes/default/css/';
$search = '#url\(\s*([\'"]?)((http(s)?:)?//)#';
$replace = "url($1{$path}$2";
$css = preg_replace($search, $replace, $css);
Run Code Online (Sandbox Code Playgroud)

我知道你可以使用像!^(http)匹配,与开头的字符串http,但一切我尝试失败(我===坏的正则表达式).我一直在使用在线正则表达式测试仪来解决这个问题,但我确实陷入困境.

这可能不是我用来解决实际问题(确保路径在编译的CSS中工作),但任何人都可以帮我解决这个正则表达式问题,或者有更好的解决方案吗?

php regex preg-replace

7
推荐指数
1
解决办法
4806
查看次数

php preg_replace如果包含单词的出现,则删除整行(来自多行的块)

伙计们(preg_replace大师);

我正在寻找一个preg_replace片段,我可以在一个php文件中使用,如果一个单词出现在一个特定的行,整行被删除/替换为空行

伪代码:

$unwanted_lines=array("word1","word2"."word3");
$new_block_of_lines=preg_replace($unwanted_lines, block_of_lines);
Run Code Online (Sandbox Code Playgroud)

Thanx,Marco

php regex preg-replace

7
推荐指数
1
解决办法
6373
查看次数

如何在树枝上做一个preg_replace

我目前正在尝试使用视图的当前URL创建变量.要获取网址,我使用{%set uri = app.request.uri%}(uri是我的变量,这是该特定视图的当前网址).问题是,我只对使url唯一(它的结尾 - 数组中的唯一对象 - 碰巧是uri)的原因感兴趣,而不是开始(我的应用程序的路径).我以为我可以使用preg_replace这样做,但是TWIG没有这个功能.只是想知道是否有人知道如何完成我想要做的事情?

我是Symfony的新手(也是PHP的新手),所以我的解释可能不太清楚(抱歉).

防爆.

{% set uri = app.request.uri %}
Run Code Online (Sandbox Code Playgroud)

输出:http://website.com/http : //item.org/1

我想修改uri变量只有http://item.org/1(而不是我网站的路径).

我正在考虑使用preg_replace创建一个Twig扩展允许我这样做..但不确定它是否是最好的方法(没经验).


总体目标:视图中"uri"的唯一值通过具有属性的对象数组($ results)中的另一个视图附加到网站路径,其中一个是"uri".我的最终目标是只显示$ results数组中对象的所有相关属性(或行).我想我可以通过首先在foreach中创建一个键(我的uri变量)并返回与该键匹配的数组中的行来完成此操作.这就是为什么我试图用url创建一个变量,以便我可以将它作为我的foreach循环的一个键来迭代$ results.我没有使用数据库或Doctrine.

提前谢谢你的帮助!

preg-replace preg-match symfony twig

7
推荐指数
1
解决办法
9906
查看次数

preg_replace导致美元符号被删除

我有一个电子邮件系统,用户在那里写一条消息并发送消息.我刚发现的主要问题是考虑这个代码

    $findEmail = $this->Data->field('body', array('id' => 1610));

    //$getUserEmailTemplate will take frm dbase and e.g: 
    //Hi, @@MESSAGE@@. From: StackOverflow
    //It should change @@MESSAGE@@ part to data from $findEmail (in this example is the $74.97 ...)

    $getUserEmailTemplate = $findUser['User']['email_template'];
    $emailMessage = preg_replace('/\B@@MESSAGE@@\B/u', $findEmail, $getUserEmailTemplate);

    debug($findEmail);
    debug($emailMessage);
Run Code Online (Sandbox Code Playgroud)

并考虑$ findemail结果的电子邮件的此输入:

$74.97
$735.00s
Run Code Online (Sandbox Code Playgroud)

$ email消息将导致:

.97
5.00s
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?我觉得我的preg_replace模式存在问题.

用户模板可以是任何东西,只要有@@ MESSAGE @@,该部分将被更改为用户消息输入.

谢谢

php regex string cakephp preg-replace

7
推荐指数
2
解决办法
2014
查看次数

从JSON字符串中删除所有不必要的空格(在PHP中)

如何从JSON字符串中删除所有不必要的空格(在PHP中)?

我假设我需要使用preg_replace和一些聪明的正则表达式,以便不触及作为值的一部分的空格.

一个简单的例子是:

之前: '{"key":"维持空格的值"}'

之后: '{"key":"维持空格的值"}'

基本上,我正在寻找一种方法来尽可能地缩小和打包字符串而不更改任何数据.

php regex json preg-replace minify

7
推荐指数
2
解决办法
1万
查看次数

从字符串中删除重复的连续词

我想从字符串中删除重复的单词(仅连续的)。

$str = 'abc,def,fgh,fgh,xna,fgh,xyz,xyz,xyz,tr,tr,xna';
Run Code Online (Sandbox Code Playgroud)

我想要的输出字符串是:

abc,def,fgh,xna,fgh,xyz,tr,xna
Run Code Online (Sandbox Code Playgroud)

我可以使用以下方法在php中获得所需的结果:

$ip = explode(',', $str);
$op = [];$last = null;
for($i=0;$i<count($ip);$i++){
    if ($last == $ip[$i]) {
        continue;
    }
    $op[]=$last=$ip[$i];
}
$ip = implode(',', $op);
Run Code Online (Sandbox Code Playgroud)

但是一直在寻找正则表达式方法。到目前为止,我已经熟悉了这两个正则表达式:

$after = preg_replace('/(?:^|,)([^,]+)(?=.*,\1(?:,|$))/m', '', $str);
output : abc,def,fgh,xyz,tr,xna

$after = preg_replace('/([^,]+)(,[ ]*\1)+/m', '', $str);
output : abc,degh,fgh,xna,fgh,,,xna
Run Code Online (Sandbox Code Playgroud)

php regex preg-replace

7
推荐指数
1
解决办法
74
查看次数

标签 统计

preg-replace ×10

php ×9

regex ×7

arrays ×1

cakephp ×1

implode ×1

json ×1

minify ×1

preg-match ×1

python ×1

string ×1

strip-tags ×1

symfony ×1

twig ×1