専門家の方、この正規表現のどこが間違っているのでしょうか?
Jun 13, 2016 pm 01:16 PM
href
quot
str
専門家の方、この正規表現の何が問題なのか教えてください。 ?
要件: 文字列 $str の href 内のハイパーリンクを抽出します。抽出されたハイパーリンクに「id=number」が含まれている場合は go.php?id=number に置き換え、それ以外の場合は # に置き換えて、置き換えたリンクを配置します。現状では抽出はできても、元の場所に戻すと<a>タグ全体が置き換えられてしまうのですが、何が問題だったのでしょうか? ?
$str='<a target="_blank" href="http://meal.taabao.com/mealDetail.htm?meal_id=7499092&item_num_id=14204771432&seller_id=702397429"><img src= "http://info-database.csdn.net/Upload/2012-07-02/ibm-db2-190_240-0628.jpg">';
$str=preg_replace(' [a-zA-z]+://[^s]*','endecode::showdescurl("$2")',$str);
echo $str;
endecode クラスの静的メソッド: showdescurl コードは次のとおりです:
- PHP コード
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> static function showdescurl($url){ if(strpos($url,'id') !==false){ preg_match('/id=(\d+)/i',$url,$ar); return 'go.php?id='.$ar[1]; }else{ return '#'; } }
ログイン後にコピー
------解決策-- - ------------------
$str = preg_replace('#(?<=href...)([a-zA-z]+://)([^'"]*)#e','endecode::showdescurl("$2 ")',$str);
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

人気の記事
レポ:チームメイトを復活させる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
1週間前
By 尊渡假赌尊渡假赌尊渡假赌
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD

人気の記事
レポ:チームメイトを復活させる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
1週間前
By 尊渡假赌尊渡假赌尊渡假赌
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック
Gmailメールのログイン入り口はどこですか?
7297
9


Java チュートリアル
1622
14


CakePHP チュートリアル
1342
46


Laravel チュートリアル
1259
25


PHP チュートリアル
1206
29



Python の __str__ と __repr__ の類似点と相違点は何ですか?
