찾다

 >  Q&A  >  본문

PHP 함수는 정규 표현식의 값을 호출할 수 없습니다

문제를 해결하기 위해서는 질문과 같이 콘텐츠에 표시된 사용자 ID를 읽어 데이터베이스에서 사용자 이름을 검색하는 것이 목적입니다.
문제는 "$1"만 읽을 수 있지만 값을 얻을 수 없다는 것입니다.

함수 usvid($csse,$uvid){
    전역 $db,$DBprefix;
    echo $csse.$uvid; $sql_usersid=mysql_query($query_usersid); $sql_usersid=mysql_fetch_array( $sql_usersid)){
    $bbs_H=$usersid['사용자 이름'] }
    $bbs_H를 반환합니다.
    }

함수 vubb($str){
    $str=preg_replace("/\[userid=(.+?)\](.+?)\[\/userid\]/is",usvid("$1",'$2'),$str);
    $str을 반환;
    }
    
    echo vubb("[userid=10000]xy[/userid]");
怪我咯怪我咯2797일 전422

모든 응답(3)나는 대답할 것이다

  • 巴扎黑

    巴扎黑2017-05-16 13:02:47

    1. preg_replace의 두 번째 매개변수는 문자열이나 배열만 될 수 있습니다. 함수 사용법이 잘못되었습니다

    2. 올바른 preg_replace_callback으로 변경하세요. 두 번째 매개변수는 콜백 함수입니다

    예제를 다음과 같이 다시 작성하세요(올바른지 여부는 테스트되지 않음):

    으아악

    글쓴이가 다시 시도할 수 있도록 4줄만 변경했습니다. 실수가 있으면 양해해 주세요.

    회신하다
    0
  • 怪我咯

    怪我咯2017-05-16 13:02:47

    초대해주셔서 감사합니다!

    그럼 질문 있으신가요?

    SQL에 대한 나의 해석은 다음과 같습니다.

    으아아아

    회신하다
    0
  • 巴扎黑

    巴扎黑2017-05-16 13:02:47

    으아악

    테스트했는데 출력 SQL이 요청한 것과 동일합니다.
    select * from users where Uid='10000' order by Uid desc

    회신하다
    0
  • 취소회신하다