Nasıl 2 farklı bağlantılar oluşturmak için 2 değerleri ve preg_replace ile preg_match_all kullanırım

1 Cevap php

Ben bir tablo görüntüleyen olduğum bir metin dosyası var. Belirli bir Bölümde belirli Başlık bulmak için preg_match_all kullanıyorum ve bunu bir bağlantı yapmak için preg_replace ile Başlık ve Bölüm değiştirilmesi am ..

Örneğin aşağıdaki gibi bir metin dosyası içindeki içeriği şöyledir:

Dec 04 20:15 Naruto 123
Dec 04 17:42 Naruto 98
Dec 04 16:19 D Gray Man 001
Dec 04 16:05 Bleach 128
Dec 04 12:13 50 x 50 44

Ve ben o bulunduğu web sayfasına bir bağlantı ile Başlık ait ve Bölümler ... (yani Naruto 123) yerine duyuyorum.

Ben de yürürlüğe web sayfası in bulunduğu KlasörYolu almak gerekir

  • KlasörYolu anime başlığıdır. Biz Naruto 123 için yapıyor olsaydı Yani klasör yolu Naruto / olduğunu.

Yani sonunda bağlantı bu gibi görünecektir:

http://website/folderpath/animetitle animechapter

Ben sorun ben KlasörYolu en doğru alabiliriz ama ben 2 veya daha fazla ayrı bağlantı oluşturamazsınız. Benim kod aynı bağlantı ile Naruto 123 ve Naruto 98. değiştirir.

İşte ne benim kodu:

  <?

  $data=file_get_contents('series-updates.txt'); //get data from file

$regexp[0]="/(Naruto)[[:space:]](\w+)/";

$regexp[1]="/Naruto/";

preg_match($regexp[0], $data, $matches); //match Manga Title with Chapter for URL

$url= $matches[0];

preg_match($regexp[1], $data, $matches2); //match Manga Title for folderpath

$folderpath= $matches2[0];

$patterns= '/(Naruto)[[:space:]](\w+)/';

$replacements= '<a href="'.$folderpath.'/'.$url.'">'.$url.'</a>';

$data=preg_replace($patterns,$replacements, $data);

  $dat=explode("\n",$data); //split data at new lines

  echo '<table cellspacing=0>';

  foreach ($dat AS $value) { //loop

echo '<tr><td>'.$value.'</td></tr>';

  }

  echo '</table>';

  ?>

Burada bir kod çıktısı:

http://xennetworks.com/output3.php

Ben bağlantılar için preg_match_all kullanırsanız ben DİZİ çıktı almak ve seni istiyorum sonucunu görmek istedim çünkü ** AYRICA, php kod yerine preg_match_all preg_match kullanıyorum nedenidir.

1 Cevap

Ben bağlantı URL aradığınızı emin değilim ama boyutu için bu deneyin:

$s= <<<STR
Dec 04 20:15 Naruto 123
Dec 04 17:42 Naruto 98
Dec 04 16:19 D Gray Man 001
Dec 04 16:05 Bleach 128
Dec 04 12:13 50 x 50 44
STR;

preg_match_all('/\w{3}\s\d{2}\s\d{2}:\d{2}\s(.+)?\s(\d{2,})/', $s, $m);

for ($i=0; $i<count($m[1]); $i++) {
 $url= sprintf('http://xennetworks.com/%s %s', $m[1][$i], $m[2][$i]);
 echo("$url\n");
}