我想替换从example.comsample.com的所有字符串值,不包括图像扩展名.png.jpeg.jpg等.

$body = ' www.example.com, example.com, example.com/hello.html, example.com/logo.png, example.com/yourbaby.php , example.com/newimage.jpg, www.example.com/newimage.jpg';

//values    
$oldomain = ['example.com','www.']; 
$newdomain= ['sample.com', ''];
$excludeextension = [".png", ".jpg", ".jpeg"];

//Replace    
$body = str_replace($olddomain, $newdomain, $body);
$body = str_replace($excludeextension, '', $body);

//output    
 echo $body; 

Output i am looking for :

sample.com, sample.com, sample.com/hello.html, example.com/logo.png, sample.com/yourbaby.php , example.com/newimage.jpg, www.example.com/newimage.jpg

Expectation

https://example.com -> https://sample.com

https://www.example.com -> https://sample.com

https://subdomain.example.com -> https://subdomain.sample.com

https://www.example.com/image.png -> https://www.example.com/image.png

https://example.com/image.png -> https://example.com/image.png

推荐答案

你可以使用str_replace()和一些爆炸和内爆来做到这一点.

$body = ' www.example.com, example.com, example.com/hello.html, example.com/logo.png, example.com/yourbaby.php, example.com/newimage.jpg, www.example.com/newimage.jpg';

$oldomain = ['example.com','www.']; 
$newdomain= ['sample.com', ''];
$excludeextension = ["png", "jpg", "jpeg"];

$doms = explode(',', $body);
foreach ($doms as &$dom) {
    // get extension
    $pi = pathinfo($dom);
    if ( ! in_array( $pi['extension'], $excludeextension) ){
        $dom = str_replace($oldomain, $newdomain, $dom);
    }

}
$NewStr = implode($doms);
echo $NewStr;

结果

sample.com sample.com sample.com/hello.html example.com/logo.png sample.com/yourbaby.php example.com/newimage.jpg www.example.com/newimage.jpg

Php相关问答推荐

419注册期间Laravel 11中的错误

Laravel通过(扩展FormRequest类)方法验证表单请求

Postgrid Webhook不叫laravel

PHP FFI—将PHP数组转换为C指针数组

EBay Inventory API createOrReplaceInventoryItem出错

在WooCommerce上克隆订单时使用`add_product()`添加产品元数据

dyld[45923]:未加载库:/usr/local/opt/libavif/lib/libavif.15dylib

如何在 apache Laragon - laravel 10 中允许方法 DELETE?

使用简码在 WooCommerce 我的帐户中显示一些用户数据

Shopware 6 插件:如何删除布尔配置并将其迁移到多选配置

使用自定义规则进行 Livewire 验证不会显示错误

在 PHP 8.2 中使用 PHP Spreadsheet 和 CodeIgniter 3 导出 Excel 时出错

为什么foreach循环会输出每个结果?

Shopware 6:无法在新的自定义插件中保存关联字段(媒体)

使用 RSA 2048 公钥验证 RSA PKCS#1v1.5 SHA 256 签名

按数字然后按字符串对关联 PHP 数组进行排序

获取具有所有特定相关模型的模型

我想更新表格中的结果并将它们发布到浏览器,但它不起作用

标头内容类型:image/jpeg 无效

为什么 PDO 允许使用带命名占位符的索引数组,但仅在禁用仿真时才允许?