亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 PHP preg_replace 交換字符串?

如何使用 PHP preg_replace 交換字符串?

PHP
鴻蒙傳說 2022-11-12 13:46:19
我有 CSS 代碼,我想將left 與 right和right 與 left交換。這是示例 CSS:.test{text-align:left;margin-left:10px;float:right}.test_right{text-align:left;border-right:0px;border-left:1px}.test_left{float:right}應該:.test{text-align:right;margin-right:10px;float:left}.test_right{text-align:right;border-left:0px;border-right:1px}.test_left{float:left}我有以下 preg_replace,但它只匹配每個 {} 中的 1 個實例,我需要它匹配所有實例。$css = preg_replace('/({.*?)left(.*?})/i', '$1right$2', $css);另一個問題是我不能左右交換,因為在我運行第一個 preg_replace 之后一切都會正確。我該如何解決這個問題?也許使用 preg_replace_callback?
查看完整描述

1 回答

?
開心每一天1111

TA貢獻1836條經驗 獲得超13個贊

我能夠成功地弄清楚。


function callback($match)

{

    $matchit = strtr($match[0], array('left' => 'right', 'right' => 'left'));

    return $matchit;

}


$css= preg_replace_callback('/{(.*?)}/i', 'callback', $css);

echo $css;

preg_replace_callback 返回 { 和 } 之間的任何內容?;卣{函數正在替換左右。


我正在進一步完善此功能以添加某種忽略觸發器,以便 PHP 將忽略某些類/ID。此外,它還需要對填充和邊距等進行一些反轉。整個事情將被制作成一個類,供任何使用 PHP 的人輕松地將 CSS 轉換為 RTL。


更新:


您可以改用此 preg_replace:


$css = preg_replace_callback('/{(?!\/\*i\*\/)(.*?)}/i', 'callback', $css);

然后您可以將 /*i*/ 放入您希望它忽略的任何行中。例如:


.test{/*i*/margin-left:0px;text-align:right}


查看完整回答
反對 回復 2022-11-12
  • 1 回答
  • 0 關注
  • 123 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號