0

次の行での使用を説明するのを手伝ってくれる人はいますかpreg_replace():

if ( isset( $data['title'] ) ) $this->title = preg_replace ( "/[^\.\,\-\_\'\"\@\?\!\:\$ a-zA-Z0-9()]/", "", $data['title'] );
 // $title is variable for storing title of a blog post

変数のプロパティが設定されている完全なコンストラクター コードを次に示します。

public function __construct( $data=array() ) {
    if ( isset( $data['id'] ) ) $this->id = (int) $data['id'];
    if ( isset( $data['publicationDate'] ) ) $this->publicationDate = (int) $data['publicationDate'];
    if ( isset( $data['title'] ) ) $this->title = preg_replace ( "/[^\.\,\-\_\'\"\@\?\!\:\$ a-zA-Z0-9()]/", "", $data['title'] );
    if ( isset( $data['summary'] ) ) $this->summary = preg_replace ( "/[^\.\,\-\_\'\"\@\?\!\:\$ a-zA-Z0-9()]/", "", $data['summary'] );
    if ( isset( $data['content'] ) ) $this->content = $data['content'];
  }

の使用法を理解できず、preg_replaceここで必要です。これを説明するのを手伝ってください-事前に感謝します

4

2 に答える 2

1

preg_replace は「検索パターン」を探し、見つかった部分文字列を値にpreg_replace ( "/[^\.\,\-\_\'\"\@\?\!\:\$ a-zA-Z0-9()]/", "", $data['title'] )置き換えるため、いくつかの記号を探して空の文字列に置き換えます

パターン /[^...]/ は、このリストにないすべての記号を意味します。つまり、このコードはすべての非英数字と一部の句読点を空の文字列に置き換えa#bます。「許可された」記号で。aba?ba?b

多くの \ 記号について混乱しないでください。これらはエスケープするためだけに必要なので、基本的に使用できる記号のリストは次のとおりです。.,-_'"@?!:$ a-zA-Z0-9()

于 2013-10-09T22:03:59.013 に答える