iは、例えば、文字列よくある質問スクリプトのヘルプ
$str = "[H]Test[/H] My test string [H]Test2[/H] My second Test string";
を持っていると私は内部のリストを作りたい「[H]」と彼らは
<a href="#faq-1">Test</a>
<a href="#faq-2">Test2</a>
のようなことをクリックしますとともにしたいです
iは、例えば、文字列よくある質問スクリプトのヘルプ
$str = "[H]Test[/H] My test string [H]Test2[/H] My second Test string";
を持っていると私は内部のリストを作りたい「[H]」と彼らは
<a href="#faq-1">Test</a>
<a href="#faq-2">Test2</a>
のようなことをクリックしますとともにしたいです
$str
で
<a name="faq-1"></a>Test
<a name="faq-2"></a>Test2
任意のヘルプをしてください含めます
ここに私が思いついたことがあります。
<?php
$str = "[H]Test[/H] My test string [H]Test2[/H] My second Test string";
/**
* Helper class
*/
class FaqHelper {
static $count = 1;
static $listItems = array();
static $prefix = 'faq-';
static function GetList() {
$items = '';
foreach (self::$listItems as $id => $label) {
$items .= '<li><a href="#' . self::$prefix . $id .'">' . $label . '</a></li>';
}
return '<ul>'. $items .'</ul>';
}
static function ReplaceCallback($matches)
{
$id = self::$count;
$label = $matches[1];
self::$listItems[$id] = $label;
$res = '<span id="'. self::$prefix . $id .'">' . $label . '</span>';
self::$count++;
return $res;
}
}
$text = preg_replace_callback(
"#\[H\]([^\[]+)\[/H\]#",
array('FaqHelper', "ReplaceCallback"),
$str
);
$list = FaqHelper::GetList();
echo $list;
echo '<br /><br />';
echo $text;
?>
正規表現を使用するのに適した場所 – Ibu
ここで質問する前に、いくつかの検索を行うことを検討してください。 –
私は本当に理解できません。同じ場所にリンクしている[H]タグの中にリストを作りたいですか?テキスト内の要素にリンクする別のリストが必要なのではないでしょうか。 – kjetilh