PHP删除内容中的部分URL
我有一个字符串,其中包含不同数量的Url。我想删除每个Url的“?category_id=x”部分。x将是一个不断变化的数字PHP删除内容中的部分URL,php,Php,我有一个字符串,其中包含不同数量的Url。我想删除每个Url的“?category_id=x”部分。x将是一个不断变化的数字 var old_string = "some text <a href='/platforms/item/something?category_id=x'>some text</a> some more text <a href='/platforms/item/something?category_id=x'>some text<
var old_string = "some text <a href='/platforms/item/something?category_id=x'>some text</a> some more text <a href='/platforms/item/something?category_id=x'>some text</a>..."
var new_string = "some text <a href='/platforms/item/something'>some text</a> some more text <a href='/platforms/item/something'>some text</a>...."
var old\u string=“一些文本更多文本…”
var new_string=“一些文本更多文本…”
我怎样才能做到这一点。Regex?有一个parse_url函数,允许分离url字符串的组件
来源:-如果您已经从字符串中提取了url,那么使用parse\u url的答案是最好的。 我想你没有
<?php
$old_string = "some text <a href='/platforms/item/something?category_id=x'>some text</a> some more text <a href='/platforms/item/something?category_id=x'>some text</a>...";
// if you know there won't be any other url parameters:
$new_string = preg_replace('!\?category_id=(x|\d+)!','', $old_string );
// otherwise, remove query string from all URLs:
$new_string = preg_replace('!(href=(?:\'|")[^\?\'"]+)\?[^\'"#]*!','\1', $old_string );
检查此代码不是PHP。它看起来像JavaScript
array(3) {
["host"]=>
string(15) "www.example.com"
["path"]=>
string(5) "/path"
["query"]=>
string(17) "googleguy=googley"
}
<?php
$old_string = "some text <a href='/platforms/item/something?category_id=x'>some text</a> some more text <a href='/platforms/item/something?category_id=x'>some text</a>...";
// if you know there won't be any other url parameters:
$new_string = preg_replace('!\?category_id=(x|\d+)!','', $old_string );
// otherwise, remove query string from all URLs:
$new_string = preg_replace('!(href=(?:\'|")[^\?\'"]+)\?[^\'"#]*!','\1', $old_string );
old_string.replace( /(href=(?:"|')[^\?'"]+)\?[^'"#]*/g, '$1' );
<?php
$old_string = "some text <a href='/platforms/item/something?category_id=x'>some text</a> some more text <a href='/platforms/item/something?category_id=x'>some text</a>...";
preg_match( '/<a href=\'(.*?)\'>/', $old_string, $match );
$url = parse_url($match[1]) ;
$new_string = "some text <a href='".$url["host"].$url["path"];
$new_string .= "'>some text</a> some more text <a href='/platforms/item/something? category_id=x'>some text</a>...";
echo htmlentities($new_string);
//output
// some text <a href='/platforms/item/something'>some text</a> some more text <a href='/platforms/item/something?category_id=x'>some text</a>...
?>